:root{
    --bg:#FAFAF8;
    --ink:#1A1A1A;
    --accent:#A85C2E;
    --line:#E0D8CD;
    --cream:#E0D8CD;
    --serif:'Iowan Old Style','Palatino Linotype',Georgia,'Times New Roman',serif;
    --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:var(--serif);
    -webkit-font-smoothing:antialiased;
  }

  /* ---------- HEADER ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 48px;
    background:#F3F0E9;
    border-bottom:1px solid var(--cream);
    transition:padding .3s ease;
  }
  header.scrolled{
    padding:12px 48px;
  }
  .brand{
    display:flex; align-items:center; gap:14px;
    text-decoration:none; color:var(--ink);
  }
  .mark{width:34px; height:auto; flex-shrink:0;}
  .wordmark{
    font-family:var(--serif);
    font-size:15px;
    letter-spacing:.04em;
    line-height:1.15;
  }
  .wordmark .full{display:block; font-size:16px;}
  .wordmark .sub{display:block; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#4a4944; margin-top:3px;}
  .wordmark .domain-tag{
    display:block; font-size:10.5px; letter-spacing:.1em;
    color:#8C744C; margin-top:5px; font-style:italic;
    text-decoration:none; transition:color .2s ease;
  }
  .wordmark .domain-tag:hover{color:var(--accent);}
  .lang-toggle{
    font-family:var(--sans); font-size:12px; letter-spacing:.06em;
    display:flex; gap:6px; cursor:pointer; user-select:none;
    color:#55534c;
  }
  .lang-toggle span{transition:color .2s ease;}
  .lang-toggle span.active{color:var(--ink); font-weight:600;}
  .lang-toggle span:hover{color:var(--ink);}

  /* ---------- BRAND INTRO ---------- */
  .brand-intro{
    padding:118px 48px 20px;
    text-align:center;
  }
  .brand-intro-tagline{
    font-family:var(--sans); font-size:11px; letter-spacing:.12em;
    text-transform:uppercase; color:var(--accent); text-align:center;
    max-width:460px; margin:0 auto; line-height:1.5;
  }
  @media (max-width:720px){
    .brand-intro{padding:130px 22px 18px;}
    .brand-intro-tagline{max-width:320px;}
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    height:56vh; min-height:400px; max-height:560px;
    overflow:hidden;
  }
  .slide{
    position:absolute; inset:0;
    opacity:0;
    transition:opacity 1.4s ease;
  }
  .slide.active{opacity:1;}
  .slide .bg{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
  }
  .slide .veil{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(15,13,11,.62) 0%, rgba(15,13,11,.28) 45%, rgba(15,13,11,.15) 100%);
  }

  /* nivel 1 — recurso */
  #s1 .bg{background-image:url('assets/hero-s1.jpg'); background-size:cover; background-position:center;}
  /* nivel 2 — tecnología */
  #s2 .bg{background-image:url('assets/hero-s2.jpg'); background-size:cover; background-position:center;}
  /* nivel 3 — infraestructura */
  #s3 .bg{background-image:url('assets/hero-s3.jpg'); background-size:cover; background-position:center;}
  /* nivel 4 — marco regulatorio */
  #s4 .bg{background-image:url('assets/hero-s4.jpg'); background-size:cover; background-position:center;}
  /* nivel 5 — contratos */
  #s5 .bg{background-image:url('assets/hero-s5.jpg'); background-size:cover; background-position:center;}

  .hero-content{
    position:relative; z-index:2;
    height:100%;
    display:flex; flex-direction:column; justify-content:flex-start;
    padding:60px 48px 0;
    max-width:640px;
  }
  .eyebrow{
    font-family:var(--sans); font-size:11px; letter-spacing:.18em;
    text-transform:uppercase; color:#e7dfd2; margin-bottom:18px;
    opacity:0; transform:translateY(8px);
  }
  .slide.active .eyebrow{opacity:1; transform:none; transition:opacity .8s ease .4s, transform .8s ease .4s;}
  .headline{
    font-family:var(--serif); font-weight:400;
    font-size:clamp(20px,2.6vw,32px);
    line-height:1.32; color:#FAFAF8;
    opacity:0; transform:translateY(8px);
  }
  .slide.active .headline{opacity:1; transform:none; transition:opacity .9s ease .55s, transform .9s ease .55s;}

  .hero-foot{
    position:absolute; left:48px; right:48px; bottom:36px; z-index:3;
    display:flex; align-items:center; justify-content:flex-end;
  }
  .dots{display:flex; gap:9px;}
  .dot{
    width:6px; height:6px; border-radius:50%;
    background:rgba(250,250,248,.35);
    cursor:pointer; transition:background .3s ease, transform .3s ease;
  }
  .dot.active{background:var(--accent); transform:scale(1.3);}

  /* ---------- SECTION BANNER (Enfoque / Informes / Contacto) ---------- */
  .section-banner{
    position:relative;
    display:grid;
    grid-template-columns:minmax(280px, 460px) 1fr;
    height:clamp(240px, 30vw, 360px);
    overflow:hidden;
    background:var(--ink);
    scroll-margin-top:69px;
  }
  .section-banner-text{
    position:relative; z-index:2;
    display:flex; flex-direction:column; justify-content:center;
    padding:0 48px;
  }
  .section-banner-eyebrow{
    position:relative;
    font-family:var(--sans); font-size:11px; letter-spacing:.18em;
    text-transform:uppercase; color:var(--accent);
    margin-bottom:18px; padding-left:46px;
  }
  .section-banner-eyebrow::before{
    content:''; position:absolute; left:0; top:50%;
    width:34px; height:1px; background:var(--accent);
  }
  .section-banner-title{
    font-family:var(--serif); font-weight:400;
    font-size:clamp(32px, 4vw, 48px);
    line-height:1.1; color:var(--bg); letter-spacing:.01em;
  }
  .section-banner-tagline{
    font-family:var(--serif); font-style:italic; font-size:15px;
    color:#d6d1c7; margin-top:14px; max-width:360px; line-height:1.55;
  }
  .section-banner-meta{
    margin-top:20px; display:flex; flex-direction:column; gap:6px;
  }
  .section-banner-meta .section-banner-name{
    font-family:var(--serif); font-size:14.5px; color:var(--bg);
    margin-bottom:3px;
  }
  .section-banner-meta a{
    font-family:var(--sans); font-size:12.5px; letter-spacing:.02em;
    color:var(--bg); opacity:.82; text-decoration:none;
    transition:color .2s ease, opacity .2s ease;
  }
  .section-banner-meta a:hover{color:var(--accent); opacity:1;}
  .section-banner-photo{
    position:relative;
    background-size:cover; background-position:center;
  }
  .section-banner-photo::before{
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(90deg, var(--ink) 0%, rgba(26,26,26,0) 34%);
  }
  /* Contacto: sin foto, se usa la marca como sello grande sangrado */
  .section-banner--contacto .section-banner-photo{
    background:var(--ink); overflow:hidden;
    display:flex; align-items:center; justify-content:center;
  }
  .section-banner--contacto .section-banner-photo::before{
    background:none;
  }
  .banner-signature{
    display:flex; flex-direction:column; align-items:center;
    gap:16px;
  }
  .banner-signature .banner-mark{
    position:static;
    height:120px; width:auto;
    opacity:.95; pointer-events:none;
    filter:invert(1);
  }
  .banner-signature-tagline{
    font-family:var(--serif); font-style:italic; font-size:14.5px;
    color:#d6d1c7; text-align:center; max-width:280px; line-height:1.55;
  }
  @media (max-width:720px){
    .section-banner{
      grid-template-columns:1fr; height:auto; scroll-margin-top:89px;
    }
    .section-banner-photo{height:150px; order:-1;}
    .section-banner-photo::before{
      background:linear-gradient(180deg, rgba(26,26,26,0) 55%, var(--ink) 100%);
    }
    .section-banner--contacto .section-banner-photo{height:190px;}
    .banner-signature{gap:10px;}
    .banner-signature .banner-mark{height:70px;}
    .banner-signature-tagline{font-size:13px; max-width:220px;}
    .section-banner-text{padding:26px 22px 22px;}
    .section-banner-title{font-size:30px;}
  }

  /* ---------- header tagline + menu ---------- */
  .header-tagline{
    font-family:var(--sans); font-size:12px; letter-spacing:.05em;
    color:#3a3936; max-width:340px; line-height:1.45;
    text-align:center; flex:1; padding:0 24px;
    text-transform:uppercase;
  }
  .header-right{display:flex; align-items:center; gap:34px;}
  .header-nav{display:flex; align-items:center; gap:26px;}
  .header-nav a{
    font-family:var(--sans); font-size:12px; letter-spacing:.07em;
    text-transform:uppercase; color:var(--ink); text-decoration:none;
    position:relative; padding-bottom:3px;
  }
  .header-nav a::after{
    content:''; position:absolute; left:0; bottom:0;
    width:0; height:1px; background:var(--accent);
    transition:width .25s ease;
  }
  .header-nav a:hover::after{width:100%;}
  .header-social-stack{
    display:flex; flex-direction:column; align-items:flex-end; gap:9px;
  }
  .header-social-row{display:flex; align-items:center; gap:9px;}
  .social-link{
    height:26px; min-width:26px; padding:0 8px; border-radius:13px;
    border:1px solid var(--ink); color:var(--ink);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--sans); font-size:11px; font-weight:600;
    text-decoration:none; letter-spacing:.02em; flex-shrink:0;
    transition:background .2s ease, color .2s ease;
  }
  .social-link:not(.social-link--wide){width:26px; padding:0; border-radius:50%;}
  .social-link:hover{background:var(--ink); color:var(--bg);}

  @media (max-width:720px){
    header{padding:14px 22px; flex-wrap:wrap; row-gap:12px;}
    header.scrolled{padding:10px 22px;}
    .header-right{flex-wrap:wrap; justify-content:flex-end; row-gap:12px;}
    .header-tagline{display:none;}
    .wordmark .sub, .wordmark .domain-tag{display:none;}
    .header-nav{order:3; flex-basis:100%; justify-content:center; gap:22px;}
    .header-nav a{font-size:11px;}
    .hero-content{padding:50px 22px 0;}
    .headline{font-size:22px; line-height:1.38;}
    .hero-foot{left:22px; right:22px;}
  }

  /* ---------- ENFOQUE ---------- */
  .enfoque{
    padding:64px 48px 130px;
    max-width:1280px;
    margin:0 auto;
  }
  .enfoque-grid{
    display:grid;
    grid-template-columns:minmax(0,560px) 1fr;
    gap:44px;
  }

  /* apertura jerarquizada */
  .enfoque-lead-setup{
    font-family:var(--serif); font-size:16px; line-height:1.8;
    color:#3a3a36; max-width:470px; margin-bottom:26px;
  }
  .enfoque-thesis{
    font-family:var(--serif); font-weight:400; font-size:clamp(24px,2.4vw,32px);
    line-height:1.4; color:var(--ink); max-width:500px;
    margin:10px 0 34px; padding-left:26px; position:relative;
  }
  .enfoque-thesis::before{
    content:''; position:absolute; left:0; top:8px; bottom:8px;
    width:2px; background:var(--accent);
  }
  .enfoque-lead-bridge{
    font-family:var(--sans); font-size:13px; letter-spacing:.02em;
    font-style:italic; color:#9a9a92; max-width:440px;
  }
  .servicios-lead{
    font-family:var(--sans); font-size:14px; letter-spacing:.02em;
    color:#4a4a45; margin:0 0 34px;
  }

  /* principios numerados */
  .enfoque-principles{margin-top:68px;}
  .principle{
    display:grid; grid-template-columns:44px 1fr; gap:20px;
    padding:32px 0;
    border-top:1px solid var(--line);
    align-items:start;
  }
  .principle:last-of-type{border-bottom:1px solid var(--line);}
  .principle-num{
    font-family:var(--serif); font-size:15px; color:var(--ink);
    padding-top:3px; letter-spacing:.02em; opacity:.55;
  }
  .principle-body h3{
    font-family:var(--serif); font-weight:400; font-size:18px;
    margin-bottom:10px; letter-spacing:.01em;
  }
  .principle-body p{
    font-family:var(--sans); font-size:14px; line-height:1.7;
    color:#4a4a45; max-width:460px;
  }

  /* credenciales en columnas */
  .credentials-grid{
    margin-top:48px; padding-top:26px; border-top:1px solid var(--line);
    display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  }
  .credentials-item{
    font-family:var(--sans); font-size:10.5px; letter-spacing:.03em;
    color:#8a8a84; line-height:1.6;
    padding:0 22px; border-left:1px solid var(--cream);
  }
  .credentials-item:first-child{padding-left:0; border-left:none;}
  .credentials-secondary{
    margin-top:22px; padding-top:20px; border-top:1px solid var(--line);
    font-family:var(--sans); font-size:12px; line-height:1.7;
    letter-spacing:.02em; color:#4a4a45;
  }
  .credentials-secondary--closed{
    padding-bottom:20px; border-bottom:1px solid var(--line);
  }

  /* panel del globo con divisor vertical */
  .enfoque-side{
    border-left:1px solid var(--cream);
    padding-left:44px;
  }
  .enfoque-side-inner{
    position:sticky; top:110px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
  }
  .enfoque-side .globe-img{width:56%; max-width:230px; height:auto;}
  .enfoque-countries{
    margin-top:32px;
    display:grid; grid-template-columns:repeat(2,auto); gap:11px 30px;
    justify-content:center;
  }
  .enfoque-countries span{
    font-family:var(--sans); font-size:11px; letter-spacing:.12em;
    text-transform:uppercase; color:#8a8a84;
  }

  /* ---------- PERSPECTIVAS ---------- */
  .perspectivas{
    padding:64px 48px 150px;
    max-width:1280px; margin:0 auto;
    scroll-margin-top:69px;
  }

  /* ---------- DESPLEGABLE "INFORMES" EN EL NAV ---------- */
  .nav-dropdown{position:relative;}
  .nav-dropdown-trigger{
    font-family:var(--sans); font-size:12px; letter-spacing:.07em;
    text-transform:uppercase; color:var(--ink); background:none; border:none;
    cursor:pointer; padding:0 0 3px; position:relative;
  }
  .nav-dropdown-trigger::after{
    content:''; position:absolute; left:0; bottom:0;
    width:0; height:1px; background:var(--accent);
    transition:width .25s ease;
  }
  .nav-dropdown-trigger:hover::after,
  .nav-dropdown.open .nav-dropdown-trigger::after{width:100%;}
  .nav-dropdown-menu{
    display:none; position:absolute; top:calc(100% + 18px); left:50%;
    transform:translateX(-50%); min-width:280px; z-index:110;
    background:var(--bg); border:1px solid var(--line);
    box-shadow:0 12px 28px rgba(0,0,0,.12);
  }
  .nav-dropdown.open .nav-dropdown-menu{display:block;}
  .nav-dropdown-menu a{
    display:block; padding:14px 18px;
    font-family:var(--serif); font-size:14px; line-height:1.4;
    color:var(--ink); text-decoration:none;
    border-top:1px solid var(--cream);
  }
  .nav-dropdown-menu a:first-child{border-top:none;}
  .nav-dropdown-menu a:hover{color:var(--accent); background:var(--cream);}
  .perspectiva-card{
    padding:38px 0;
    border-top:1px solid var(--cream);
    display:grid; grid-template-columns:52px 1fr; gap:20px;
    scroll-margin-top:96px;
  }
  .perspectiva-card:last-of-type{border-bottom:1px solid var(--cream);}
  .perspectiva-num{
    font-family:var(--serif); font-size:14px; color:var(--accent); padding-top:2px;
  }
  .perspectiva-context{
    font-family:var(--sans); font-size:11px; letter-spacing:.08em;
    text-transform:uppercase; color:#8a8a84; margin-bottom:12px;
  }
  .perspectiva-title{
    font-family:var(--serif); font-size:21px; color:var(--ink);
    margin-bottom:14px; line-height:1.3;
  }
  .perspectiva-thesis{
    font-family:var(--sans); font-size:14.5px; line-height:1.8;
    color:#3a3a36; max-width:540px;
  }
  .perspectiva-abstract{max-width:560px;}
  .perspectiva-abstract p{
    font-family:var(--sans); font-size:14.5px; line-height:1.8;
    color:#3a3a36; margin-bottom:16px;
  }
  .perspectiva-abstract p:last-child{margin-bottom:0;}
  .perspectiva-cta{
    display:inline-block; margin-top:16px;
    font-family:var(--sans); font-size:11.5px; letter-spacing:.06em;
    text-transform:uppercase; color:var(--accent); text-decoration:none;
    border-bottom:1px solid var(--accent); padding-bottom:2px;
  }
  .perspectiva-cta:hover{color:var(--ink); border-color:var(--ink);}

  /* ---------- REPORT REQUEST FORM (correo corporativo, sin gate de descarga) ---------- */
  .report-request-form{margin-top:20px; max-width:440px;}
  .report-request-form label{
    display:block; font-family:var(--sans); font-size:10.5px; letter-spacing:.08em;
    text-transform:uppercase; color:#8a8a84; margin-bottom:8px;
  }
  .report-request-fields{
    display:grid; grid-template-columns:1fr 1fr; gap:14px 10px;
    margin-bottom:14px;
  }
  .report-request-row{display:flex; gap:10px; flex-wrap:wrap;}
  .report-request-input{
    width:100%; flex:1; min-width:190px; padding:11px 14px;
    font-family:var(--sans); font-size:13px; color:var(--ink);
    background:var(--bg); border:1px solid var(--line); border-radius:2px;
    outline:none; transition:border-color .2s ease;
  }
  select.report-request-input{cursor:pointer;}
  .report-request-input:focus{border-color:var(--accent);}
  .report-request-input.invalid{border-color:#b23b3b;}
  @media (max-width:480px){
    .report-request-fields{grid-template-columns:1fr;}
  }
  .report-request-row button{
    padding:11px 18px; white-space:nowrap;
    font-family:var(--sans); font-size:11.5px; letter-spacing:.05em;
    text-transform:uppercase; color:var(--bg); background:var(--ink);
    border:1px solid var(--ink); border-radius:2px; cursor:pointer;
    transition:background .2s ease, color .2s ease;
  }
  .report-request-row button:hover{background:var(--accent); border-color:var(--accent);}
  .report-request-error{
    display:none; margin-top:9px; font-family:var(--sans); font-size:11.5px;
    line-height:1.6; color:#b23b3b;
  }
  .report-request-error.show{display:block;}
  .report-request-fallback{
    display:none; margin-top:7px; font-family:var(--sans); font-size:12px;
    line-height:1.6; color:#8a8a84;
  }
  .report-request-fallback.show{display:block;}
  .report-request-fallback a{
    color:var(--accent); text-decoration:none; border-bottom:1px solid var(--accent);
    padding-bottom:1px;
  }
  .report-request-fallback a:hover{color:var(--ink); border-color:var(--ink);}
  .report-request-success{
    display:none; margin-top:9px; font-family:var(--sans); font-size:12.5px;
    line-height:1.6; color:var(--ink);
  }
  .report-request-success.show{display:block;}
  @media (max-width:480px){
    .report-request-row{flex-direction:column;}
    .report-request-row button{width:100%;}
  }

  .informes-request{
    padding:44px 0 0; border-top:1px solid var(--cream); margin-top:8px;
  }
  .informes-request-title{
    font-family:var(--serif); font-size:22px; color:var(--ink); margin-bottom:8px;
  }
  .informes-request-copy{
    font-family:var(--sans); font-size:13.5px; line-height:1.7;
    color:#8a8a84; margin-bottom:22px; max-width:440px;
  }

  .perspectiva-expand{
    display:block; margin-top:14px; background:none; border:none; cursor:pointer;
    font-family:var(--sans); font-size:11.5px; letter-spacing:.06em;
    text-transform:uppercase; color:#8a8a84; padding:0;
  }
  .perspectiva-expand:hover{color:var(--ink);}
  .perspectiva-excerpt{
    max-height:0; overflow:hidden; opacity:0;
    transition:max-height .5s ease, opacity .4s ease, margin .4s ease;
  }
  .perspectiva-excerpt.open{
    max-height:600px; opacity:1; margin:18px 0 4px;
  }
  .perspectiva-excerpt p{
    font-family:var(--serif); font-size:14.5px; line-height:1.85;
    color:#3a3a36; max-width:540px; margin-bottom:14px;
  }
  .perspectiva-excerpt-em{
    font-style:italic; color:var(--ink) !important;
  }
  @media (max-width:720px){
    .perspectivas{padding:90px 22px 100px;}
    .perspectiva-card{grid-template-columns:1fr; gap:8px;}
  }

  .credentials{
    margin-top:50px; padding-top:26px; border-top:1px solid var(--line);
    font-family:var(--sans); font-size:11.5px; letter-spacing:.03em;
    color:#8a8a84; line-height:1.9;
  }

  @media (max-width:900px){
    .enfoque{padding:110px 22px 90px;}
    .enfoque-grid{grid-template-columns:1fr; gap:40px;}
    .enfoque-side{order:-1; border-left:none; padding-left:0;}
    .enfoque-side-inner{position:static;}
    .enfoque-principles{margin-top:44px;}
    .credentials-grid{grid-template-columns:1fr; gap:14px;}
    .credentials-item{padding-left:0; border-left:none;}
  }
  /* ---------- FOOTER ---------- */
  .site-footer{
    padding:44px 48px; border-top:1px solid var(--cream);
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:16px;
  }
  .footer-tagline{
    font-family:var(--sans); font-size:11px; letter-spacing:.05em;
    color:#8a8a84; max-width:340px;
  }
  .footer-meta{
    display:flex; flex-direction:column; align-items:flex-end;
    font-family:var(--sans); font-size:11px; color:#8a8a84; line-height:1.7;
    text-align:right;
  }
  .footer-email{
    font-family:var(--serif); font-size:16px; color:var(--ink);
    text-decoration:none; margin-bottom:4px;
    border-bottom:1px solid transparent; transition:border-color .2s ease, color .2s ease;
  }
  .footer-email:hover{color:var(--accent); border-color:var(--accent);}
  @media (max-width:720px){
    .site-footer{padding:32px 22px; flex-direction:column; align-items:flex-start;}
    .footer-tagline{max-width:260px;}
    .footer-meta{align-items:flex-start; text-align:left;}
  }
