/* =============================================================
   REPÚBLICA PRODUCTIVA · Executive Hub · v2
   Experiencia modular: Recorrido País → Hub → Capas explorables
   HTML5 + CSS3 + JS vanilla · sin build · sin backend · cPanel-ready
   ============================================================= */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* ============================ 1 · TOKENS ============================ */
:root{
  --navy:#102a43; --navy-deep:#091a2c; --navy-mid:#1c3d5e; --navy-soft:#2c5277;
  --green:#2f8f5b; --green-deep:#1f6b43; --green-bright:#46b97a; --green-light:#8fd2ab; --green-pale:#e7f1ea;
  --gold:#cba75a; --gold-deep:#9c7c33; --gold-pale:#f5edda;
  --cream:#f7f5ef; --cream-deep:#efece2; --paper:#ffffff;
  --ink:#13202c; --ink-soft:#46566a; --ink-faint:#7d8fa1; --line:#e2ddd0; --line-soft:#ece8dd;
  --red:#b1402a; --red-soft:#f6e3dd; --amber:#cf8a2c; --amber-soft:#f8eddb;

  --serif:'Fraunces','Source Serif 4',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;

  --radius:16px; --radius-sm:10px;
  --shadow-sm:0 1px 3px rgba(16,42,67,.06),0 2px 14px rgba(16,42,67,.05);
  --shadow-md:0 12px 40px rgba(16,42,67,.12);
  --shadow-lg:0 30px 80px rgba(16,42,67,.20);
  --ease:cubic-bezier(.22,.61,.36,1);
  --head-h:66px;
}

/* ============================ 2 · RESET ============================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--head-h) + 14px);}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}*{animation-duration:.001ms!important;transition-duration:.001ms!important;}}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
::selection{background:var(--green-light);color:var(--navy-deep);}
:focus-visible{outline:3px solid var(--green-bright);outline-offset:3px;border-radius:4px;}

/* ============================ 3 · CONTENEDORES (legibilidad) ============================ */
.container{width:min(92vw,1180px);margin-inline:auto;}
.c-narrow{width:min(92vw,760px);margin-inline:auto;}
.c-readable{width:min(92vw,940px);margin-inline:auto;}
.c-wide{width:min(94vw,1180px);margin-inline:auto;}
.c-full{width:min(95vw,1400px);margin-inline:auto;}

.section{position:relative;padding:clamp(72px,9vw,128px) 0;}
.section--tight{padding:clamp(54px,6vw,84px) 0;}
.bg-cream{background:var(--cream);}
.bg-cream-deep{background:var(--cream-deep);}
.bg-paper{background:var(--paper);}
.bg-navy{background:var(--navy);color:#fff;}
.bg-navy-deep{background:var(--navy-deep);color:#fff;}
.bg-green{background:var(--green-deep);color:#fff;}

/* ============================ 4 · TIPOGRAFÍA ============================ */
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.12;letter-spacing:-.015em;color:var(--navy);}
.bg-navy h1,.bg-navy h2,.bg-navy h3,.bg-navy h4,.bg-navy-deep h1,.bg-navy-deep h2,.bg-navy-deep h3,.bg-navy-deep h4,.bg-green h2,.bg-green h3,.bg-green h4{color:#fff;}

.kicker{font-family:var(--mono);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--green-deep);display:inline-flex;align-items:center;gap:12px;margin-bottom:22px;}
.kicker::before{content:"";width:34px;height:1.5px;background:var(--green);display:inline-block;}
.bg-navy .kicker,.bg-navy-deep .kicker,.bg-green .kicker{color:var(--green-light);}
.bg-navy .kicker::before,.bg-navy-deep .kicker::before,.bg-green .kicker::before{background:var(--green-light);}
.kicker .idx{color:var(--ink-faint);letter-spacing:.1em;}
.bg-navy .kicker .idx,.bg-navy-deep .kicker .idx{color:rgba(255,255,255,.5);}

.sec-title{font-size:clamp(30px,4.2vw,50px);max-width:22ch;margin-bottom:22px;line-height:1.1;}
.sec-lede{font-size:clamp(18px,1.4vw,21px);color:var(--ink-soft);max-width:62ch;line-height:1.62;}
.bg-navy .sec-lede,.bg-navy-deep .sec-lede,.bg-green .sec-lede{color:rgba(255,255,255,.82);}

/* Frase de impacto — ancho amplio, NO columna estrecha */
.statement{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3.6vw,46px);line-height:1.22;letter-spacing:-.018em;max-width:min(92vw,16ch);}
.statement .hl{color:var(--green-bright);font-style:italic;font-weight:600;}
.bg-cream .statement .hl,.bg-paper .statement .hl,.bg-cream-deep .statement .hl{color:var(--green-deep);}

/* Pregunta presidencial — bloque ancho, 4–5 líneas, centrado y legible */
.question{font-family:var(--serif);font-weight:600;color:#fff;font-size:clamp(2rem,4.4vw,4rem);line-height:1.16;letter-spacing:-.02em;max-width:min(94vw,1080px);margin-inline:auto;text-align:center;text-wrap:balance;}
.question .brk{display:none;}
@media(min-width:780px){.question .brk{display:inline;}}
.answer{font-family:var(--serif);font-style:italic;font-weight:600;font-size:clamp(1.6rem,3vw,2.6rem);color:var(--green-light);text-align:center;margin-top:clamp(34px,5vw,56px);}

/* ============================ 5 · REVEAL ============================ */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);will-change:opacity,transform;}
.reveal.is-in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.07s;}.reveal.d2{transition-delay:.14s;}.reveal.d3{transition-delay:.21s;}.reveal.d4{transition-delay:.28s;}.reveal.d5{transition-delay:.35s;}
.reveal-x{opacity:0;transform:translateX(-30px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal-x.is-in{opacity:1;transform:none;}

/* ============================ 6 · INTRO SPLASH ============================ */
.intro{position:fixed;inset:0;z-index:2000;background:radial-gradient(120% 100% at 50% 30%,#163a5c,var(--navy) 55%,var(--navy-deep));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;transition:opacity .8s var(--ease),visibility .8s;}
.intro.hide{opacity:0;visibility:hidden;}
.intro__logo{width:min(64vw,440px);opacity:0;transform:scale(.82);animation:introLogo 1.5s var(--ease) forwards;}
.intro__bar{width:min(50vw,260px);height:3px;background:rgba(255,255,255,.14);border-radius:3px;overflow:hidden;opacity:0;animation:fadeIn .6s ease .5s forwards;}
.intro__bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--green-bright));animation:introBar 1.5s var(--ease) .35s forwards;}
.intro__tag{font-family:var(--mono);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--green-light);opacity:0;animation:fadeIn .8s ease .8s forwards;}
@keyframes introLogo{0%{opacity:0;transform:scale(.82);}55%{opacity:1;transform:scale(1);}100%{opacity:1;transform:scale(1.02);}}
@keyframes introBar{to{width:100%;}}
@keyframes fadeIn{to{opacity:1;}}
.no-anim .intro__logo{animation:none;opacity:1;transform:none;}

/* --- Silueta RD energizándose --- */
.intro__map{width:min(74vw,520px);margin-bottom:6px;}
.intro__logo{width:min(50vw,300px);}
.dr-path{fill:none;stroke:rgba(143,210,171,.5);stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;
  stroke-dasharray:2700;stroke-dashoffset:2700;animation:drDraw 1.7s var(--ease) .15s forwards;}
.dr-fill{fill:rgba(143,210,171,.05);}
@keyframes drDraw{to{stroke-dashoffset:0;}}
.dot{fill:#46b97a;opacity:0;transform:scale(0);transform-box:fill-box;transform-origin:center;
  filter:drop-shadow(0 0 4px rgba(70,185,122,.95));}
.dot.lit{animation:dotPop .55s var(--ease) forwards;}
@keyframes dotPop{0%{opacity:0;transform:scale(0);}55%{opacity:1;transform:scale(1.55);}100%{opacity:.95;transform:scale(1);}}
.dot.pulse{opacity:.6;transform:none;animation:dotPulse 2.6s ease-in-out infinite;}
@keyframes dotPulse{0%,100%{opacity:.5;}50%{opacity:1;}}
.no-anim .dr-path{stroke-dashoffset:0;animation:none;}
.no-anim .dot{opacity:.92;transform:none;animation:none;}
@media(max-width:760px){.intro__map{width:84vw;}.intro__logo{width:64vw;}}

/* Silueta RD en el hero (acento de fondo) */
.hero__map{position:absolute;right:3%;top:13%;width:min(44vw,560px);opacity:.62;pointer-events:none;z-index:2;}
.hero__map .dr-path{stroke:rgba(143,210,171,.34);stroke-dashoffset:0;animation:none;}
@media(max-width:980px){.hero__map{opacity:.28;width:70vw;right:-6%;top:auto;bottom:6%;}}

/* --- Intro: fases + máquina de escribir --- */
.intro__phase{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;opacity:0;pointer-events:none;transition:opacity .7s var(--ease);padding:24px;}
.intro__phase.show{opacity:1;pointer-events:auto;}
.intro__line{font-family:var(--serif);font-weight:500;color:#fff;font-size:clamp(1.7rem,4.6vw,3.7rem);line-height:1.2;letter-spacing:-.02em;text-align:center;max-width:min(94vw,1000px);min-height:1.2em;}
.intro__line .ch{opacity:0;transition:opacity .3s ease;}
.intro__line .ch.on{opacity:1;}
.intro__line .ch.hl{color:var(--green-light);font-style:italic;}
.caret{display:inline-block;width:3px;height:.92em;background:var(--green-bright);vertical-align:-.08em;margin-left:3px;border-radius:2px;animation:blink 1s step-end infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:0;}}
.intro__skip{position:absolute;bottom:24px;right:28px;color:rgba(255,255,255,.55);font-size:13px;font-weight:600;letter-spacing:.02em;z-index:5;transition:color .2s;}
.intro__skip:hover{color:#fff;}

/* --- Pregunta presidencial en 3 beats --- */
.qstack{display:flex;flex-direction:column;}
.qbeat{min-height:56vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;}
.qbeat__n{font-family:var(--serif);font-size:clamp(64px,11vw,150px);font-weight:700;color:rgba(143,210,171,.12);line-height:.9;margin-bottom:-.18em;}
.qbeat .question{font-size:clamp(1.9rem,4.2vw,3.7rem);}
.qbeat.reveal{transform:translateY(46px) scale(.97);}
.qbeat.reveal.is-in{transform:none;}
.qanswer{min-height:48vh;display:flex;align-items:center;justify-content:center;}
.qanswer .answer{font-size:clamp(2rem,4vw,3.4rem);margin-top:0;}
.qanswer .answer .sip{color:#fff;font-style:normal;font-weight:600;}
@media(max-width:760px){.qbeat{min-height:64vh;}.qanswer{min-height:54vh;}}

/* --- Banner: vehículo financiero a definir --- */
.fin-banner{display:flex;gap:16px;align-items:flex-start;background:linear-gradient(150deg,#16395a,var(--navy-deep));color:#fff;border:1px solid rgba(143,210,171,.3);border-radius:16px;padding:24px 28px;margin-top:8px;}
.fin-banner svg{flex:none;width:30px;height:30px;color:var(--green-light);margin-top:2px;}
.fin-banner h4{color:#fff;font-size:19px;margin-bottom:6px;}
.fin-banner p{color:rgba(255,255,255,.84);font-size:15px;line-height:1.55;}
.fin-banner b{color:var(--green-light);font-weight:600;}

/* --- Etapas del análisis de viabilidad --- */
.etapas{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:30px;counter-reset:et;}
.etapa{background:var(--paper);border:1px solid var(--line-soft);border-radius:13px;padding:20px 18px;position:relative;transition:all .3s var(--ease);}
.etapa:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:var(--green-light);}
.etapa .en{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--green-deep);font-weight:600;margin-bottom:10px;}
.etapa h4{font-size:15.5px;line-height:1.25;margin-bottom:7px;}
.etapa p{font-size:13px;color:var(--ink-soft);line-height:1.45;}
@media(max-width:1080px){.etapas{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.etapas{grid-template-columns:1fr;}}
.tagline-pill{display:inline-flex;align-items:center;gap:8px;background:var(--green-pale);color:var(--green-deep);border:1px solid #bfe0cb;border-radius:100px;padding:7px 15px;font-size:13px;font-weight:600;font-family:var(--mono);letter-spacing:.04em;margin-top:8px;}

/* ============================ 7 · PROGRESS + HEADER ============================ */
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--green),var(--green-bright));z-index:120;transition:width .1s linear;}

.header{position:fixed;top:0;left:0;right:0;height:var(--head-h);z-index:110;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 clamp(16px,3vw,34px);background:rgba(9,26,44,.72);backdrop-filter:saturate(150%) blur(14px);border-bottom:1px solid rgba(255,255,255,.08);transition:background .4s var(--ease),border-color .4s;}
.header.solid{background:rgba(255,255,255,.94);border-bottom-color:var(--line);}
.header__logo{display:flex;align-items:center;flex:none;}
.header__logo img{height:30px;width:auto;}
.header__logo .lc{display:none;}
.header.solid .lw{display:none;}
.header.solid .lc{display:block;}
.nav{display:flex;align-items:center;gap:3px;overflow-x:auto;scrollbar-width:none;}
.nav::-webkit-scrollbar{display:none;}
.nav button{font-size:14px;font-weight:600;color:rgba(255,255,255,.7);padding:8px 13px;border-radius:9px;white-space:nowrap;transition:all .2s var(--ease);letter-spacing:.005em;}
.nav button:hover{color:#fff;background:rgba(255,255,255,.08);}
.nav button.active{color:#fff;background:var(--green);}
.header.solid .nav button{color:var(--ink-soft);}
.header.solid .nav button:hover{color:var(--navy);background:var(--cream);}
.header.solid .nav button.active{color:#fff;background:var(--green);}
.header__actions{display:flex;align-items:center;gap:8px;flex:none;}
.icnbtn{width:38px;height:38px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;color:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.16);transition:all .2s var(--ease);}
.icnbtn:hover{background:rgba(255,255,255,.12);color:#fff;}
.icnbtn svg{width:18px;height:18px;}
.icnbtn.on{background:var(--green);border-color:var(--green);color:#fff;}
.header.solid .icnbtn{color:var(--ink-soft);border-color:var(--line);}
.header.solid .icnbtn:hover{background:var(--cream);color:var(--navy);}
.header.solid .icnbtn.on{background:var(--green);color:#fff;border-color:var(--green);}

/* ============================ 8 · BOTONES ============================ */
.btn{font-weight:600;font-size:15px;padding:13px 24px;border-radius:100px;display:inline-flex;align-items:center;gap:9px;transition:all .25s var(--ease);white-space:nowrap;}
.btn svg{width:18px;height:18px;}
.btn--solid{background:var(--green);color:#fff;box-shadow:0 8px 22px rgba(47,143,91,.34);}
.btn--solid:hover{background:var(--green-deep);transform:translateY(-2px);box-shadow:0 12px 28px rgba(47,143,91,.42);}
.btn--ghost{color:#fff;border:1px solid rgba(255,255,255,.34);}
.btn--ghost:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6);}
.btn--dark{background:var(--navy);color:#fff;}
.btn--dark:hover{background:var(--navy-deep);transform:translateY(-2px);}
.btn--lg{padding:16px 30px;font-size:16px;}

/* ============================ 9 · DOTNAV CONTEXTUAL ============================ */
.dotnav{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;gap:12px;}
.dotnav a{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--ink-faint);opacity:.5;transition:all .3s var(--ease);position:relative;}
.dotnav a:hover{opacity:1;border-color:var(--green);}
.dotnav a.active{background:var(--green);border-color:var(--green);opacity:1;transform:scale(1.18);}
.dotnav a::after{content:attr(data-label);position:absolute;right:22px;top:50%;transform:translateY(-50%) translateX(6px);background:var(--navy-deep);color:#fff;font-size:12px;font-weight:600;white-space:nowrap;padding:5px 11px;border-radius:7px;opacity:0;pointer-events:none;transition:all .25s var(--ease);}
.dotnav a:hover::after{opacity:1;transform:translateY(-50%) translateX(0);}
@media(max-width:1280px){.dotnav{display:none;}}

/* ============================ 10 · VIEWS ============================ */
.view{display:none;}
.view.active{display:block;animation:viewIn .55s var(--ease);}
@keyframes viewIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
main{padding-top:0;}

/* ============================ 11 · HERO ============================ */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;background:radial-gradient(120% 100% at 80% 0%,#163a5c 0%,var(--navy) 44%,var(--navy-deep) 100%);color:#fff;overflow:hidden;padding:calc(var(--head-h) + 40px) 0 70px;}
.hero__grid{position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgba(143,210,171,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(143,210,171,.06) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(120% 90% at 72% 12%,#000 30%,transparent 80%);mask-image:radial-gradient(120% 90% at 72% 12%,#000 30%,transparent 80%);}
.hero__glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;}
.hero__glow--g{width:560px;height:560px;background:radial-gradient(circle,rgba(70,185,122,.5),transparent 70%);right:-120px;top:-80px;}
.hero__glow--b{width:480px;height:480px;background:radial-gradient(circle,rgba(40,90,140,.6),transparent 70%);left:-100px;bottom:-120px;}
.hero__sun{position:absolute;right:5%;top:16%;width:min(30vw,360px);opacity:.85;pointer-events:none;animation:spin 80s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.hero__inner{position:relative;z-index:3;}
.hero__eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--green-light);margin-bottom:28px;display:flex;align-items:center;gap:14px;}
.hero__eyebrow::before{content:"";width:46px;height:1.5px;background:var(--green-light);}
.hero h1{color:#fff;font-size:clamp(2.6rem,6.4vw,5.4rem);font-weight:600;line-height:1.04;letter-spacing:-.025em;max-width:18ch;margin-bottom:26px;}
.hero h1 .em{background:linear-gradient(120deg,var(--green-light),var(--green-bright));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-style:italic;}
.hero__sub{font-size:clamp(18px,1.6vw,22px);color:rgba(255,255,255,.85);max-width:60ch;line-height:1.6;margin-bottom:38px;}
.hero__claims{display:flex;flex-wrap:wrap;gap:11px;margin-bottom:44px;max-width:880px;}
.claim{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.06);border:1px solid rgba(143,210,171,.28);padding:11px 18px;border-radius:100px;backdrop-filter:blur(6px);}
.claim svg{width:18px;height:18px;color:var(--green-light);flex:none;}
.claim b{font-weight:600;font-size:14.5px;}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;}
.hero__scroll{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:9px;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.55);}
.hero__scroll .mouse{width:24px;height:38px;border:1.5px solid rgba(255,255,255,.4);border-radius:14px;position:relative;}
.hero__scroll .mouse::after{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);width:3px;height:7px;border-radius:3px;background:var(--green-light);animation:wheel 1.6s infinite;}
@keyframes wheel{0%{opacity:0;transform:translateX(-50%) translateY(0);}40%{opacity:1;}80%{opacity:0;transform:translateX(-50%) translateY(10px);}}

/* ============================ 12 · CARDS ============================ */
.grid{display:grid;gap:22px;}
.g-2{grid-template-columns:repeat(2,1fr);}
.g-3{grid-template-columns:repeat(3,1fr);}
.g-4{grid-template-columns:repeat(4,1fr);}
.card{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius);padding:30px;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s;}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--line);}
.card__ic{width:50px;height:50px;border-radius:13px;background:var(--green-pale);color:var(--green-deep);display:flex;align-items:center;justify-content:center;margin-bottom:20px;}
.card__ic svg{width:25px;height:25px;}
.card h3{font-size:21px;margin-bottom:10px;}
.card h4{font-size:18px;margin-bottom:8px;}
.card p{color:var(--ink-soft);font-size:15.5px;line-height:1.6;}
.card--cost .card__ic{background:var(--red-soft);color:var(--red);}
.card--cost .big{font-family:var(--serif);font-size:clamp(34px,3.4vw,42px);font-weight:600;color:var(--navy);line-height:1;margin:6px 0 4px;}
.card--cost .unit{font-size:14px;color:var(--ink-faint);font-weight:500;}
.bg-navy .card,.bg-navy-deep .card{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.1);}
.bg-navy .card:hover,.bg-navy-deep .card:hover{background:rgba(255,255,255,.075);border-color:rgba(143,210,171,.3);}
.bg-navy .card p,.bg-navy-deep .card p{color:rgba(255,255,255,.76);}
.bg-navy .card h3,.bg-navy .card h4,.bg-navy-deep .card h3,.bg-navy-deep .card h4,.bg-green .card h3,.bg-green .card h4{color:#fff;}
.bg-navy .card__ic,.bg-navy-deep .card__ic{background:rgba(143,210,171,.16);color:var(--green-light);}

/* ============================ 13 · PILARES ============================ */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:46px;}
.pillar{position:relative;background:var(--paper);border:1px solid var(--line-soft);border-radius:14px;padding:24px 22px;cursor:pointer;transition:all .35s var(--ease);overflow:hidden;text-align:left;}
.pillar::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--green);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease);}
.pillar:hover,.pillar.open{box-shadow:var(--shadow-md);transform:translateY(-3px);}
.pillar:hover::before,.pillar.open::before,.pillar.lit::before{transform:scaleY(1);}
.pillar.lit{box-shadow:0 0 0 2px var(--green-light),var(--shadow-md);}
.pillar.core{background:linear-gradient(160deg,#16395a,var(--navy));border-color:transparent;}
.pillar.core .pillar__name{color:#fff;}.pillar.core .pillar__num{color:var(--green-light);}.pillar.core .pillar__ic{color:var(--green-light);}.pillar.core .pillar__more{color:rgba(255,255,255,.82);}
.pillar__num{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--green-deep);}
.pillar__ic{width:36px;height:36px;margin:13px 0 11px;color:var(--green-deep);}
.pillar__ic svg{width:100%;height:100%;}
.pillar__name{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--navy);line-height:1.2;margin-bottom:7px;}
.pillar__more{max-height:0;overflow:hidden;opacity:0;transition:max-height .4s var(--ease),opacity .35s,margin .4s;font-size:14px;line-height:1.55;color:var(--ink-soft);}
.pillar.open .pillar__more{max-height:220px;opacity:1;margin-top:6px;}
.pillar__tag{display:inline-block;margin-top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--green-deep);background:var(--green-pale);padding:4px 9px;border-radius:5px;}
.pillar.core .pillar__tag{background:rgba(143,210,171,.18);color:var(--green-light);}

/* Rieles / motores */
.rails{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px;}
.rail{border-radius:14px;padding:26px;color:#fff;}
.rail .r-k{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.82;margin-bottom:10px;}
.rail h4{color:#fff;font-size:19px;margin-bottom:8px;}
.rail p{font-size:14.5px;opacity:.86;line-height:1.55;}
.rail--inst{background:linear-gradient(150deg,var(--navy-mid),var(--navy));}
.rail--fin{background:linear-gradient(150deg,var(--green),var(--green-deep));}
.rail--tec{background:linear-gradient(150deg,#3a5572,var(--navy-deep));}

/* ============================ 14 · HUB ============================ */
.hub-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px;}
.hubcard{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:30px;text-align:left;cursor:pointer;transition:all .4s var(--ease);overflow:hidden;display:flex;flex-direction:column;min-height:260px;}
.hubcard::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--green),var(--green-bright));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);}
.hubcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--green-light);}
.hubcard:hover::after{transform:scaleX(1);}
.hubcard__n{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--green-deep);margin-bottom:18px;}
.hubcard__ic{width:54px;height:54px;border-radius:14px;background:var(--green-pale);color:var(--green-deep);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.hubcard__ic svg{width:28px;height:28px;}
.hubcard h3{font-size:23px;margin-bottom:10px;}
.hubcard p{color:var(--ink-soft);font-size:15px;line-height:1.55;flex:1;}
.hubcard__go{margin-top:18px;display:inline-flex;align-items:center;gap:8px;color:var(--green-deep);font-weight:600;font-size:14.5px;}
.hubcard__go svg{width:17px;height:17px;transition:transform .3s var(--ease);}
.hubcard:hover .hubcard__go svg{transform:translateX(4px);}
.hubcard.feat{grid-column:span 1;background:linear-gradient(160deg,#16395a,var(--navy-deep));border-color:transparent;}
.hubcard.feat .hubcard__n{color:var(--green-light);}
.hubcard.feat h3{color:#fff;}
.hubcard.feat p{color:rgba(255,255,255,.78);}
.hubcard.feat .hubcard__ic{background:rgba(143,210,171,.16);color:var(--green-light);}
.hubcard.feat .hubcard__go{color:var(--green-light);}

/* ============================ 15 · LAYER HEADER + TABS ============================ */
.layer-hero{background:linear-gradient(150deg,#16395a,var(--navy-deep));color:#fff;padding:calc(var(--head-h) + 54px) 0 44px;position:relative;overflow:hidden;}
.layer-hero::after{content:"";position:absolute;right:-60px;top:-60px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(70,185,122,.3),transparent 70%);filter:blur(40px);}
.layer-hero__inner{position:relative;z-index:2;}
.layer-hero h1{color:#fff;font-size:clamp(30px,4.4vw,52px);max-width:20ch;margin-bottom:16px;}
.layer-hero p{color:rgba(255,255,255,.82);font-size:clamp(17px,1.4vw,20px);max-width:60ch;line-height:1.55;}
.backhub{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--green-light);margin-bottom:22px;transition:gap .25s var(--ease);}
.backhub:hover{gap:12px;}
.backhub svg{width:16px;height:16px;}

.tabs{position:sticky;top:var(--head-h);z-index:80;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.tabs__inner{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:10px 0;}
.tabs__inner::-webkit-scrollbar{display:none;}
.tabbtn{font-size:14.5px;font-weight:600;color:var(--ink-soft);padding:10px 18px;border-radius:10px;white-space:nowrap;transition:all .2s var(--ease);display:inline-flex;align-items:center;gap:9px;}
.tabbtn .tn{font-family:var(--mono);font-size:11px;color:var(--ink-faint);}
.tabbtn:hover{background:var(--cream);color:var(--navy);}
.tabbtn.active{background:var(--green);color:#fff;}
.tabbtn.active .tn{color:rgba(255,255,255,.7);}

.panel{display:none;}
.panel.active{display:block;animation:viewIn .45s var(--ease);}
body.expert .panel{display:block!important;border-top:1px solid var(--line-soft);}
body.expert .panel:first-child{border-top:none;}
body.expert .tabs{display:none;}
.expert-banner{display:none;}
body.expert .expert-banner{display:flex;}

/* ============================ 16 · TABLAS ============================ */
.tbl-wrap{overflow-x:auto;margin-top:8px;border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow-sm);}
table.tbl{width:100%;border-collapse:collapse;font-size:15px;background:var(--paper);min-width:580px;}
table.tbl thead th{background:var(--navy);color:#fff;text-align:left;padding:15px 18px;font-family:var(--mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;font-weight:600;}
table.tbl tbody td{padding:15px 18px;border-bottom:1px solid var(--line-soft);vertical-align:top;color:var(--ink-soft);line-height:1.55;}
table.tbl tbody tr:last-child td{border-bottom:none;}
table.tbl tbody tr:nth-child(even){background:var(--cream);}
table.tbl .lead{font-weight:600;color:var(--navy);}
table.tbl .mono{font-family:var(--mono);font-size:12.5px;color:var(--green-deep);font-weight:500;white-space:nowrap;}
table.tbl .big{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--green-deep);}

/* ============================ 17 · FLOW VSU ============================ */
.flow{position:relative;margin-top:46px;}
.flow__line{position:absolute;left:27px;top:14px;bottom:14px;width:2px;background:var(--line);}
.flow__prog{position:absolute;left:27px;top:14px;width:2px;background:linear-gradient(var(--green-light),var(--green-deep));height:0;transition:height .3s var(--ease);}
.flow__step{position:relative;display:grid;grid-template-columns:56px 1fr;gap:22px;padding:12px 0;align-items:start;}
.flow__num{width:54px;height:54px;border-radius:50%;background:var(--paper);border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:20px;color:var(--ink-faint);position:relative;z-index:2;transition:all .4s var(--ease);}
.flow__step.lit .flow__num{border-color:var(--green);color:#fff;background:var(--green);box-shadow:0 4px 14px rgba(47,143,91,.3);}
.flow__body{background:var(--paper);border:1px solid var(--line-soft);border-radius:13px;padding:18px 22px;transition:all .35s var(--ease);}
.flow__step.lit .flow__body{box-shadow:var(--shadow-md);}
.flow__body h4{font-size:17px;margin-bottom:4px;}
.flow__body p{font-size:14.5px;color:var(--ink-soft);line-height:1.55;}
.flow__actor{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:5px;margin-bottom:8px;font-weight:600;}
.actor-cli{background:var(--green-pale);color:var(--green-deep);}
.actor-epc{background:#e6eef6;color:var(--navy-mid);}
.actor-ede{background:var(--gold-pale);color:var(--gold-deep);}
.actor-fid{background:#ede7f3;color:#5b4a78;}

/* ============================ 18 · TIERS ============================ */
.tier-switch{display:flex;gap:8px;margin-top:30px;flex-wrap:wrap;}
.tier-switch button{padding:12px 22px;border-radius:100px;border:1px solid var(--line);background:var(--paper);font-weight:600;font-size:15px;color:var(--ink-soft);transition:all .25s var(--ease);}
.tier-switch button:hover{border-color:var(--green-light);}
.tier-switch button.active{background:var(--navy);color:#fff;border-color:var(--navy);}
.tier-panel{display:none;margin-top:26px;}
.tier-panel.active{display:block;animation:viewIn .4s var(--ease);}
.tier-detail{display:grid;grid-template-columns:340px 1fr;gap:24px;align-items:start;}
.tier-cap{border-radius:18px;padding:30px;color:#fff;}
.tier-cap.t1{background:linear-gradient(150deg,var(--green),var(--green-deep));}
.tier-cap.t2{background:linear-gradient(150deg,var(--navy-mid),var(--navy));}
.tier-cap.t3{background:linear-gradient(150deg,#37506b,var(--navy-deep));}
.tier-cap .lbl{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.85;}
.tier-cap .nm{font-family:var(--serif);font-size:30px;font-weight:700;color:#fff;margin:6px 0 16px;}
.tier-cap .rng{display:inline-block;background:rgba(255,255,255,.18);padding:8px 16px;border-radius:100px;font-size:14px;font-weight:600;}
.tier-cap .prof{font-size:14px;opacity:.85;margin-top:16px;line-height:1.5;}
.tier-reqs{background:var(--paper);border:1px solid var(--line-soft);border-radius:16px;padding:28px;}
.tier-reqs .h{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:16px;}
.tier-reqs ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px 26px;}
.tier-reqs li{display:flex;gap:11px;font-size:14.5px;color:var(--ink-soft);line-height:1.5;}
.tier-reqs li svg{width:18px;height:18px;color:var(--green);flex:none;margin-top:2px;}

/* ============================ 19 · SIMULADOR ANTI-SOBRECARGA ============================ */
.sim{display:grid;grid-template-columns:1fr 360px;gap:26px;margin-top:30px;align-items:start;}
.sim__controls{background:var(--paper);border:1px solid var(--line-soft);border-radius:18px;padding:28px;}
.sim__row{margin-bottom:22px;}
.sim__row:last-child{margin-bottom:0;}
.sim__row label{display:flex;justify-content:space-between;font-size:14.5px;font-weight:600;color:var(--navy);margin-bottom:10px;}
.sim__row label .v{font-family:var(--mono);color:var(--green-deep);}
.sim__row input[type=range]{width:100%;height:6px;border-radius:6px;background:var(--line);appearance:none;-webkit-appearance:none;outline:none;}
.sim__row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--green);cursor:pointer;border:3px solid #fff;box-shadow:0 2px 8px rgba(47,143,91,.4);}
.sim__row input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--green);cursor:pointer;border:3px solid #fff;}
.sim__result{border-radius:18px;padding:30px;text-align:center;position:sticky;top:calc(var(--head-h) + 80px);transition:background .4s var(--ease);}
.sim__result.g{background:var(--green-pale);border:1px solid #bfe0cb;}
.sim__result.y{background:var(--amber-soft);border:1px solid #ecd6ad;}
.sim__result.r{background:var(--red-soft);border:1px solid #e8c5bc;}
.sim__light{width:80px;height:80px;border-radius:50%;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;transition:all .4s var(--ease);}
.sim__result.g .sim__light{background:var(--green);box-shadow:0 0 0 8px rgba(47,143,91,.16);}
.sim__result.y .sim__light{background:var(--amber);box-shadow:0 0 0 8px rgba(207,138,44,.16);}
.sim__result.r .sim__light{background:var(--red);box-shadow:0 0 0 8px rgba(177,64,42,.16);}
.sim__light svg{width:38px;height:38px;color:#fff;}
.sim__verdict{font-family:var(--serif);font-size:24px;font-weight:700;margin-bottom:8px;}
.sim__result.g .sim__verdict{color:var(--green-deep);}.sim__result.y .sim__verdict{color:var(--gold-deep);}.sim__result.r .sim__verdict{color:var(--red);}
.sim__desc{font-size:14px;line-height:1.5;}
.sim__result.g .sim__desc{color:#3a6b50;}.sim__result.y .sim__desc{color:#8a6a2c;}.sim__result.r .sim__desc{color:#8d4233;}
.sim__score{font-family:var(--mono);font-size:12px;margin-top:14px;opacity:.7;}

/* ============================ 20 · COMPARADOR INYECCIÓN ============================ */
.toggle2{display:inline-flex;background:var(--cream-deep);border-radius:100px;padding:5px;margin-top:28px;gap:4px;}
.toggle2 button{padding:11px 24px;border-radius:100px;font-weight:600;font-size:15px;color:var(--ink-soft);transition:all .25s var(--ease);}
.toggle2 button.active{background:var(--navy);color:#fff;box-shadow:var(--shadow-sm);}
.inj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:26px;}
.inj-card{background:var(--paper);border:1px solid var(--line-soft);border-radius:14px;padding:22px;transition:all .35s var(--ease);}
.inj-card.dim{opacity:.4;filter:saturate(.4);}
.inj-card .ik{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px;}
.inj-card .iv{font-size:16px;color:var(--ink);line-height:1.5;}
.inj-card .iv b{color:var(--navy);}

/* ============================ 21 · MILESTONES ============================ */
.milestones{margin-top:40px;}
.ms{display:grid;grid-template-columns:140px 1fr 130px;border:1px solid var(--line);border-bottom:none;background:var(--paper);align-items:stretch;}
.ms:first-child{border-radius:14px 14px 0 0;}
.ms:last-child{border-radius:0 0 14px 14px;border-bottom:1px solid var(--line);}
.ms__when{background:var(--cream);padding:22px 18px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line-soft);}
.ms__when .hn{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--green-deep);font-weight:600;}
.ms__when .ht{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--navy);margin-top:4px;line-height:1.15;}
.ms__body{padding:20px 24px;}
.ms__body .trig{font-family:var(--mono);font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:9px;}
.ms__body ul{list-style:none;display:flex;flex-wrap:wrap;gap:7px;}
.ms__body li{font-size:13px;background:var(--cream);border:1px solid var(--line-soft);padding:5px 11px;border-radius:7px;color:var(--ink-soft);}
.ms__pct{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--green-pale),#fff);border-left:1px solid var(--line-soft);padding:20px 12px;}
.ms__pct .p{font-family:var(--serif);font-size:30px;font-weight:700;color:var(--green-deep);line-height:1;}
.ms__pct .pl{font-size:10px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;margin-top:5px;text-align:center;}
.ms--ret .ms__when{background:var(--gold-pale);}
.ms--ret .ms__when .hn,.ms--ret .ms__when .ht{color:var(--gold-deep);}
.ms--ret .ms__pct{background:linear-gradient(160deg,var(--gold-pale),#fff);}
.ms--ret .ms__pct .p{color:var(--gold-deep);}

/* ============================ 22 · DIAGRAMA FINANCIERO ============================ */
.finflow{margin-top:44px;display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;}
.finnode{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow-sm);cursor:pointer;transition:all .3s var(--ease);}
.finnode:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:var(--green-light);}
.finnode .fk{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:10px;}
.finnode h4{font-size:17px;margin-bottom:6px;}
.finnode ul{list-style:none;display:flex;flex-direction:column;gap:5px;margin-top:6px;}
.finnode li{font-size:13px;color:var(--ink-soft);padding-left:13px;position:relative;}
.finnode li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--green);}
.finnode.hub{background:linear-gradient(155deg,var(--green),var(--green-deep));color:#fff;border-color:transparent;}
.finnode.hub .fk{color:rgba(255,255,255,.72);}.finnode.hub h4{color:#fff;}
.finarrow{display:flex;align-items:center;justify-content:center;padding:0 6px;color:var(--green);}
.finarrow svg{width:30px;height:30px;}

/* ============================ 23 · DASHBOARD ============================ */
.dash{background:var(--navy-deep);border-radius:20px;padding:clamp(22px,3vw,34px);margin-top:30px;box-shadow:var(--shadow-lg);}
.dash__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.1);flex-wrap:wrap;}
.dash__bar .dt{display:flex;align-items:center;gap:12px;color:#fff;font-family:var(--serif);font-size:18px;font-weight:600;}
.dash__bar .dt .ind{width:9px;height:9px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 0 4px rgba(70,185,122,.25);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(70,185,122,.25);}50%{box-shadow:0 0 0 8px rgba(70,185,122,0);}}
.dash__tabs{display:flex;gap:8px;flex-wrap:wrap;}
.dash__tabs span{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5);padding:5px 12px;border-radius:7px;border:1px solid rgba(255,255,255,.12);}
.dash__tabs span.on{background:rgba(143,210,171,.18);color:var(--green-light);border-color:transparent;}
.dash__kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;}
.kpi{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:13px;padding:20px;}
.kpi .kv{font-family:var(--serif);font-size:clamp(26px,2.6vw,32px);font-weight:700;color:#fff;line-height:1;}
.kpi .kv .suf{color:var(--green-light);font-size:.6em;}
.kpi .kl{font-size:12.5px;color:rgba(255,255,255,.62);margin-top:8px;}
.kpi .kt{font-size:11px;color:var(--green-light);margin-top:6px;display:flex;align-items:center;gap:4px;font-weight:600;}
.dash__row{display:grid;grid-template-columns:2fr 1fr;gap:16px;}
.dash__panel{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:13px;padding:22px;}
.dash__panel .ph{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:18px;}
.pipe{display:flex;flex-direction:column;gap:14px;}
.pipe__row{display:grid;grid-template-columns:130px 1fr 42px;gap:12px;align-items:center;}
.pipe__row .pn{font-size:12.5px;color:rgba(255,255,255,.78);}
.pipe__track{height:9px;background:rgba(255,255,255,.08);border-radius:6px;overflow:hidden;}
.pipe__fill{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--green),var(--green-bright));width:0;transition:width 1.4s var(--ease);}
.pipe__row .pv{font-family:var(--mono);font-size:12px;color:#fff;text-align:right;}
.alerts{display:flex;flex-direction:column;gap:11px;}
.alert{display:flex;gap:11px;align-items:flex-start;font-size:12.5px;color:rgba(255,255,255,.8);line-height:1.4;}
.alert .ad{width:8px;height:8px;border-radius:50%;flex:none;margin-top:5px;}
.alert .ad.r{background:var(--red);}.alert .ad.y{background:var(--amber);}.alert .ad.g{background:var(--green-bright);}

/* ============================ 24 · O&M LANES / SPLIT / NOTES ============================ */
.principle{background:linear-gradient(155deg,var(--navy),var(--navy-deep));color:#fff;border-radius:18px;padding:clamp(26px,3vw,36px);display:flex;gap:22px;align-items:flex-start;}
.principle .pi{flex:none;width:42px;height:42px;color:var(--green-light);}
.principle h3{font-size:21px;color:#fff;margin-bottom:8px;}
.principle p{font-size:16px;color:rgba(255,255,255,.84);line-height:1.6;}
.lanes{border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:8px;box-shadow:var(--shadow-sm);}
.lane{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid var(--line-soft);}
.lane:last-child{border-bottom:none;}
.lane__when{padding:22px 18px;display:flex;flex-direction:column;gap:4px;justify-content:center;color:#fff;}
.lane__when .ph{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.88;}
.lane__when .yr{font-family:var(--serif);font-size:22px;font-weight:700;line-height:1.05;}
.lane__what{padding:20px 24px;background:var(--paper);}
.lane__what .who{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:6px;}
.lane__what p{font-size:14.5px;color:var(--ink-soft);line-height:1.5;}
.tag{display:inline-block;margin-top:10px;font-size:11px;font-weight:600;padding:4px 11px;border-radius:100px;}
.tag-must{background:var(--red-soft);color:var(--red);}
.tag-open{background:var(--green-pale);color:var(--green-deep);}
.split{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px;}
.splitcard{border-radius:14px;padding:24px;}
.splitcard h4{font-family:var(--mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:9px;}
.splitcard h4 svg{width:19px;height:19px;}
.splitcard ul{list-style:none;display:flex;flex-direction:column;gap:9px;}
.splitcard li{font-size:14px;line-height:1.5;padding-left:18px;position:relative;}
.splitcard li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;}
.splitcard.pos{background:var(--green-pale);border:1px solid #bfe0cb;}
.splitcard.pos h4{color:var(--green-deep);}.splitcard.pos li{color:#3a6b50;}.splitcard.pos li::before{background:var(--green);}
.splitcard.neg{background:var(--red-soft);border:1px solid #e8c5bc;}
.splitcard.neg h4{color:var(--red);}.splitcard.neg li{color:#8d4233;}.splitcard.neg li::before{background:var(--red);}
.splitcard.navy{background:#eef2f6;border:1px solid #d8e1ea;}
.splitcard.navy h4{color:var(--navy);}.splitcard.navy li{color:var(--navy-mid);}.splitcard.navy li::before{background:var(--navy-mid);}
.note-bar{display:flex;gap:14px;align-items:flex-start;background:var(--amber-soft);border-left:4px solid var(--amber);border-radius:0 12px 12px 0;padding:17px 20px;margin-top:18px;}
.note-bar svg{flex:none;width:22px;height:22px;color:var(--amber);margin-top:1px;}
.note-bar p{font-size:14px;color:#7a5418;line-height:1.55;}
.note-bar b{color:#5e3f12;}
.bench{display:flex;gap:15px;align-items:flex-start;background:var(--green-pale);border:1px solid #c8e2d1;border-radius:13px;padding:20px 22px;margin-top:18px;}
.bench svg{flex:none;width:24px;height:24px;color:var(--green-deep);margin-top:1px;}
.bench .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--green-deep);font-weight:600;display:block;margin-bottom:5px;}
.bench p{font-size:14px;color:#37614a;line-height:1.55;}

.checklist{background:var(--cream);border:1px solid var(--line-soft);border-radius:16px;padding:30px;}
.checklist .ct{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);font-weight:600;margin-bottom:20px;display:flex;align-items:center;gap:10px;}
.checklist .ct svg{width:20px;height:20px;color:var(--green-deep);}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 26px;}
.check{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--ink);line-height:1.45;}
.check .tk{flex:none;width:21px;height:21px;border-radius:6px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.check .tk svg{width:13px;height:13px;}

.lawpills{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;}
.lawpill{display:inline-flex;align-items:center;gap:9px;background:var(--paper);border:1px solid var(--line);border-radius:100px;padding:10px 17px;font-size:14px;font-weight:500;color:var(--navy);box-shadow:var(--shadow-sm);}
.lawpill svg{width:17px;height:17px;color:var(--green);flex:none;}

/* ============================ 25 · REFERENTES ============================ */
.refs{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:30px;}
.ref{background:var(--paper);border:1px solid var(--line-soft);border-radius:16px;padding:28px;transition:all .4s var(--ease);}
.ref:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);}
.ref__head{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.ref__flag{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:16px;color:#fff;flex:none;}
.ref__head h4{font-size:19px;margin-bottom:2px;}
.ref__head .sub{font-size:13px;color:var(--ink-faint);}
.ref__sect{margin-top:14px;}
.ref__sect .rk{font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:7px;}
.ref__sect p{font-size:14px;color:var(--ink-soft);line-height:1.55;}
.ref__sect.learn{background:var(--green-pale);border-radius:10px;padding:13px 15px;}
.ref__sect.learn .rk{color:var(--green-deep);}.ref__sect.learn p{color:#37614a;}

/* ============================ 26 · ROLES / RIESGOS ============================ */
.roles{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:30px;}
.role{display:grid;grid-template-columns:130px 1fr;gap:18px;background:var(--paper);border:1px solid var(--line-soft);border-radius:13px;padding:20px 22px;align-items:center;}
.role__who{font-family:var(--serif);font-size:17px;font-weight:700;color:var(--navy);border-right:1px solid var(--line-soft);padding-right:16px;line-height:1.15;}
.role__what{font-size:14px;color:var(--ink-soft);line-height:1.5;}

.risks-x{display:grid;grid-template-columns:340px 1fr;gap:22px;margin-top:30px;align-items:start;}
.risk-list{display:flex;flex-direction:column;gap:8px;}
.risk-list button{text-align:left;padding:16px 18px;border-radius:12px;border:1px solid var(--line-soft);background:var(--paper);display:flex;gap:12px;align-items:center;transition:all .25s var(--ease);font-size:14.5px;font-weight:600;color:var(--navy);}
.risk-list button svg{width:19px;height:19px;color:var(--red);flex:none;}
.risk-list button:hover{border-color:var(--red);}
.risk-list button.active{background:var(--navy);color:#fff;border-color:var(--navy);}
.risk-list button.active svg{color:var(--green-light);}
.risk-detail{background:var(--paper);border:1px solid var(--line-soft);border-radius:16px;padding:30px;position:sticky;top:calc(var(--head-h) + 80px);min-height:200px;}
.risk-detail .rk{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:8px;}
.risk-detail h4{font-size:22px;margin-bottom:16px;}
.risk-detail .mit{display:flex;gap:13px;align-items:flex-start;background:var(--green-pale);border-radius:12px;padding:18px;}
.risk-detail .mit svg{width:22px;height:22px;color:var(--green-deep);flex:none;margin-top:1px;}
.risk-detail .mit .mk{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--green-deep);font-weight:600;margin-bottom:5px;}
.risk-detail .mit p{font-size:15px;color:#37614a;line-height:1.55;}

/* ============================ 27 · COUNTERS ============================ */
.counters{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;margin-top:40px;background:var(--line-soft);border-radius:18px;overflow:hidden;border:1px solid var(--line-soft);}
.counter{background:var(--navy-deep);padding:32px 22px;text-align:center;position:relative;}
.counter .cv{font-family:var(--serif);font-size:clamp(28px,3.2vw,44px);font-weight:700;color:#fff;line-height:1;}
.counter .cv .suf{color:var(--green-light);font-size:.58em;}
.counter .cl{font-size:12.5px;color:rgba(255,255,255,.64);margin-top:12px;line-height:1.35;}
.counter::after{content:"";position:absolute;left:50%;bottom:16px;transform:translateX(-50%);width:24px;height:2px;background:var(--green);opacity:.5;}

/* ============================ 28 · ROADMAP ============================ */
.roadmap{margin-top:40px;position:relative;}
.roadmap::before{content:"";position:absolute;left:128px;top:10px;bottom:10px;width:2px;background:linear-gradient(var(--green-light),var(--green-deep));}
.phase{display:grid;grid-template-columns:128px 1fr;gap:36px;padding:8px 0 30px;position:relative;}
.phase:last-child{padding-bottom:0;}
.phase__tag{text-align:right;padding-right:16px;position:relative;}
.phase__tag .d{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--navy);}
.phase__tag .dl{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-top:3px;}
.phase__tag::after{content:"";position:absolute;right:-9px;top:7px;width:14px;height:14px;border-radius:50%;background:var(--green);border:3px solid var(--cream);box-shadow:0 0 0 2px var(--green);}
.phase__card{background:var(--paper);border:1px solid var(--line-soft);border-radius:13px;padding:22px 24px;}
.phase__card h4{font-size:18px;margin-bottom:12px;}
.phase__card ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;}
.phase__card li{font-size:14px;color:var(--ink-soft);padding-left:16px;position:relative;line-height:1.4;}
.phase__card li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--green);}

/* ============================ 29 · MAPA INSTITUCIONAL ============================ */
.mapwrap{display:grid;grid-template-columns:1fr 380px;gap:24px;margin-top:30px;align-items:start;}
.mapcanvas{background:linear-gradient(160deg,#0e2740,var(--navy-deep));border-radius:20px;padding:18px;box-shadow:var(--shadow-lg);}
.mapcanvas svg{width:100%;height:auto;display:block;}
.mapnode{cursor:pointer;transition:opacity .2s;}
.mapnode rect,.mapnode circle{transition:all .25s var(--ease);}
.mapnode:hover .nbg,.mapnode.sel .nbg{fill:var(--green);}
.mapnode:hover text,.mapnode.sel text{fill:#fff;}
.mapnode.sel .nbg{stroke:var(--green-light);stroke-width:2;}
.mapinfo{background:var(--paper);border:1px solid var(--line-soft);border-radius:18px;padding:28px;position:sticky;top:calc(var(--head-h) + 80px);min-height:380px;}
.mapinfo .mk{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);font-weight:600;margin-bottom:8px;}
.mapinfo h3{font-size:24px;margin-bottom:18px;}
.mapinfo .mrow{margin-bottom:16px;}
.mapinfo .mrow .ml{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px;}
.mapinfo .mrow p{font-size:14.5px;color:var(--ink-soft);line-height:1.5;}
.mapinfo .mrow.no p{color:var(--red);}
.mapinfo .hint{font-size:13.5px;color:var(--ink-faint);font-style:italic;}

/* ============================ 30 · AUDIENCIAS / VOCERÍA ============================ */
.audiences{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:30px;}
.aud{background:var(--paper);border:1px solid var(--line-soft);border-radius:13px;padding:20px 22px;border-left:3px solid var(--green);}
.aud .at{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--green-deep);font-weight:600;margin-bottom:8px;}
.aud p{font-size:15px;color:var(--ink);line-height:1.5;font-style:italic;}

/* ============================ 31 · PROPS (cierre país) ============================ */
.triad{display:flex;justify-content:center;gap:0;margin:46px auto;max-width:780px;}
.triad__item{flex:1;padding:0 24px;border-right:1px solid rgba(255,255,255,.16);text-align:center;}
.triad__item:last-child{border-right:none;}
.triad__item .tv{font-family:var(--serif);font-size:clamp(22px,2.6vw,30px);font-weight:700;color:#fff;}
.triad__item .tl{font-size:14px;color:rgba(255,255,255,.62);margin-top:8px;}

/* ============================ 32 · CLOSING ============================ */
.closing{background:radial-gradient(120% 100% at 50% 0%,#163a5c,var(--navy) 50%,var(--navy-deep));color:#fff;text-align:center;padding:clamp(80px,12vw,140px) 0;position:relative;overflow:hidden;}
.closing__glow{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(70,185,122,.3),transparent 70%);filter:blur(80px);left:50%;top:-200px;transform:translateX(-50%);}
.closing__inner{position:relative;z-index:2;}
.closing__logo{height:54px;margin:0 auto 40px;opacity:.95;}
.closing .lead{font-family:var(--serif);font-size:clamp(24px,3.4vw,42px);font-weight:500;line-height:1.26;max-width:24ch;margin:0 auto 12px;letter-spacing:-.02em;}
.closing .lead .hl{color:var(--green-light);font-style:italic;}
.closing__final{font-family:var(--serif);font-size:clamp(20px,2.4vw,28px);font-style:italic;color:var(--green-light);margin-top:36px;font-weight:500;}

/* ============================ 33 · FOOTER ============================ */
.footer{background:var(--navy-deep);color:rgba(255,255,255,.6);padding:50px 0 40px;border-top:1px solid rgba(255,255,255,.08);}
.footer__row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
.footer img{height:30px;opacity:.85;}
.footer p{font-size:14px;line-height:1.6;max-width:62ch;}
.footer .disc{font-size:12px;color:rgba(255,255,255,.4);margin-top:18px;border-top:1px solid rgba(255,255,255,.08);padding-top:18px;}

/* nota validación */
.valid-note{display:inline-flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--ink-faint);font-style:italic;margin-top:16px;max-width:70ch;line-height:1.5;}
.valid-note svg{width:15px;height:15px;color:var(--amber);flex:none;margin-top:2px;}
.bg-navy .valid-note,.bg-navy-deep .valid-note{color:rgba(255,255,255,.55);}

/* solar diag */
.solardiag{margin-top:44px;background:linear-gradient(160deg,#fff,var(--cream));border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:var(--shadow-sm);}
.solardiag svg{width:100%;height:auto;}

.hr{height:1px;background:var(--line-soft);margin:40px 0;}

/* expert banner */
.expert-banner{align-items:center;gap:10px;background:var(--gold-pale);border:1px solid #e9d6a8;border-radius:12px;padding:12px 18px;margin-bottom:24px;font-size:14px;color:var(--gold-deep);font-weight:600;}
.expert-banner svg{width:18px;height:18px;flex:none;}

/* ============================ 34 · MODO PRESENTACIÓN ============================ */
body.present .header__actions .nav,body.present .dotnav{}
body.present{font-size:19px;}
body.present .view.active .section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;scroll-snap-align:start;}
body.present{scroll-snap-type:y proximity;}
body.present .hero__scroll{opacity:0;}
.present-exit{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:200;display:none;background:var(--navy-deep);color:#fff;padding:11px 22px;border-radius:100px;font-size:14px;font-weight:600;align-items:center;gap:10px;box-shadow:var(--shadow-lg);}
body.present .present-exit{display:inline-flex;}

/* ============================ 35 · RESPONSIVE ============================ */
@media(max-width:1080px){
  .g-4,.counters{grid-template-columns:repeat(2,1fr);}
  .pillars{grid-template-columns:repeat(2,1fr);}
  .rails,.hub-cards,.refs,.roles,.audiences,.inj-grid{grid-template-columns:1fr;}
  .finflow{grid-template-columns:1fr;}
  .finarrow{transform:rotate(90deg);padding:10px 0;}
  .dash__kpis{grid-template-columns:repeat(2,1fr);}
  .dash__row{grid-template-columns:1fr;}
  .tier-detail{grid-template-columns:1fr;}
  .sim,.risks-x,.mapwrap{grid-template-columns:1fr;}
  .sim__result,.risk-detail,.mapinfo{position:static;}
  .tier-reqs ul{grid-template-columns:1fr;}
}
@media(max-width:760px){
  body{font-size:16px;}
  .header__logo img{height:26px;}
  .nav{display:none;}
  .g-2,.g-3,.check-grid{grid-template-columns:1fr;}
  .counters{grid-template-columns:1fr 1fr;}
  .ms{grid-template-columns:1fr;}
  .ms__when{border-right:none;border-bottom:1px solid var(--line-soft);flex-direction:row;gap:10px;align-items:center;}
  .ms__pct{border-left:none;border-top:1px solid var(--line-soft);flex-direction:row;gap:10px;}
  .lane{grid-template-columns:104px 1fr;}
  .split{grid-template-columns:1fr;}
  .roadmap::before{left:88px;}
  .phase{grid-template-columns:88px 1fr;gap:20px;}
  .phase__card ul{grid-template-columns:1fr;}
  .role{grid-template-columns:1fr;}
  .role__who{border-right:none;border-bottom:1px solid var(--line-soft);padding-right:0;padding-bottom:10px;}
  .triad{flex-direction:column;gap:24px;}
  .triad__item{border-right:none;border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:24px;}
  .triad__item:last-child{border-bottom:none;}
  .hero__claims{gap:9px;}
}

/* mobile menu drawer */
.menu-toggle{display:none;}
@media(max-width:760px){
  .menu-toggle{display:inline-flex;}
  .nav.open{display:flex;position:fixed;top:var(--head-h);left:0;right:0;flex-direction:column;background:var(--navy-deep);padding:16px;gap:6px;border-bottom:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-lg);}
  .nav.open button{width:100%;text-align:left;color:#fff;font-size:16px;padding:13px 16px;}
}

/* ============================ 36 · PRINT ============================ */
@media print{
  @page{margin:14mm;}
  body{background:#fff;color:#000;font-size:12pt;}
  .header,.dotnav,.progress,.hero__scroll,.present-exit,.intro,.icnbtn,.btn,.backhub,.tabs{display:none!important;}
  .view{display:block!important;}
  .panel{display:block!important;}
  .section{padding:18px 0;page-break-inside:avoid;}
  .reveal,.reveal-x{opacity:1!important;transform:none!important;}
  .hero{min-height:auto;background:var(--navy)!important;}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  .card,.tier-cap,.ref,.pillar,.hubcard{break-inside:avoid;}
}
