:root{
  /* Paleta de marca */
  --primary:#0B3D3B;
  --accent:#14B8A6;
  --secondary:#99F6EA;
  --surface:#E6FFFB;
  --bg:#F8FFFE;
  /* Tonos derivados del principal, para pasos entre superficies */
  --primary-deep:#072C2A;
  --primary-lift:#124E4B;
  /* Único color fuera de marca: el faltante de caja debe leerse como alerta */
  --alert:#B3361F;
  --alert-on-dark:#FFA48F;
  --font:'Switzer','Segoe UI',system-ui,sans-serif;
  --step-small:clamp(.8125rem,.79rem + .1vw,.875rem);
  --step-body:clamp(1.0625rem,1rem + .25vw,1.1875rem);
  --step-lead:clamp(1.25rem,1.1rem + .7vw,1.625rem);
  --step-head:clamp(1.75rem,1.1rem + 3.2vw,4rem);
  --step-hero:clamp(2.35rem,5.2vw,5rem);
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-expo:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.76,0,.24,1);
  --t-press:140ms;
  --t-hover:180ms;
  --t-ui:240ms;
  --margin:clamp(18px,2.8vw,40px);
  --gap:clamp(20px,2.4vw,32px);
  --radius:4px;
  --nav-h:68px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--bg);scrollbar-color:var(--accent) var(--surface)}
body{margin:0;font:400 var(--step-body)/1.5 var(--font);letter-spacing:-.005em;color:var(--primary);background:var(--bg);overflow-x:clip;-webkit-font-smoothing:antialiased;font-variant-numeric:lining-nums}
h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0;padding:0}
ol,ul{list-style:none}
a{color:inherit}
img,svg{display:block}
section[id]{scroll-margin-top:var(--nav-h)}
::selection{background:var(--secondary);color:var(--primary)}
.wrap{width:100%;max-width:1520px;margin-inline:auto;padding-inline:var(--margin)}
.skip{position:fixed;left:16px;top:-60px;z-index:100;background:var(--primary);color:var(--bg);padding:10px 14px}
.skip:focus{top:16px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.on-dark :focus-visible{outline-color:var(--secondary)}

/* Tipografía */
.display{font-size:var(--step-head);font-weight:600;line-height:1;letter-spacing:-.035em;text-wrap:balance}
.lede{font-size:var(--step-lead);line-height:1.3;letter-spacing:-.015em;max-width:34ch;margin-top:clamp(18px,2vw,28px)}
.on-dark{background:var(--primary);color:var(--surface)}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:14px 26px;border:0;border-radius:var(--radius);font:600 var(--step-body)/1.2 var(--font);text-decoration:none;cursor:pointer;transition:transform var(--t-press) var(--ease-out),background-color var(--t-hover) ease,color var(--t-hover) ease}
.btn:active{transform:scale(.97)}
.btn i{font-style:normal;transition:transform 320ms var(--ease-out)}
.btn-accent{background:var(--accent);color:var(--primary)}
.btn-solid{background:var(--primary);color:var(--bg)}
.btn-quiet{background:var(--surface);color:var(--primary)}
@media (hover:hover) and (pointer:fine){
  .btn:hover i{transform:translateX(5px)}
  .btn-accent:hover{background:var(--secondary)}
  .btn-solid:hover{background:var(--primary-lift)}
  .btn-quiet:hover{background:var(--secondary)}
}

/* Navegación */
.nav{position:sticky;z-index:50;top:0;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:var(--nav-h);padding:10px var(--margin);background:var(--bg)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;transition:opacity var(--t-hover) ease}
.brand img:first-child{width:42px;height:42px}
.brand-name{width:128px;height:auto}
.nav-links{display:flex;gap:clamp(16px,2vw,30px)}
.nav-links a{font-size:1rem;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:.3em;transition:text-decoration-color var(--t-hover) ease}
.nav-mobile-cta{display:none}
.nav-cta{min-height:44px;padding:10px 18px;font-size:1rem}
.nav-toggle{display:none;width:44px;height:44px;background:none;border:0;cursor:pointer;position:relative}
.nav-toggle span{position:absolute;left:10px;right:10px;height:2px;background:var(--primary);transition:transform var(--t-ui) var(--ease-out),top var(--t-ui) var(--ease-out)}
.nav-toggle span:nth-child(1){top:17px}.nav-toggle span:nth-child(2){top:26px}
.nav-toggle[aria-expanded=true] span:nth-child(1){top:21px;transform:rotate(45deg)}
.nav-toggle[aria-expanded=true] span:nth-child(2){top:21px;transform:rotate(-45deg)}
@media (hover:hover) and (pointer:fine){.nav-links a:hover{text-decoration-color:var(--accent)}}

/* Portada: el titular a la izquierda y el cierre del mes en un escenario recortado */
.hero{position:relative;display:grid;grid-template-columns:repeat(12,1fr);column-gap:0;grid-template-rows:auto 1fr;min-height:calc(100svh - var(--nav-h));padding-inline:var(--margin);overflow:clip}
.hero-title{grid-column:1/-1;grid-row:1;padding-top:clamp(28px,5vh,56px);font-size:var(--step-hero);font-weight:600;line-height:.98;letter-spacing:-.04em}
.hero-title .line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.hero-title [data-line]{display:block}
.hero-copy{grid-column:1/5;grid-row:2;padding:clamp(28px,4vh,44px) var(--gap) 40px 0}
.hero-copy p{font-size:var(--step-body);max-width:40ch}
.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:26px}
.hero-link{font-weight:500;text-underline-offset:.25em;text-decoration-thickness:2px;text-decoration-color:var(--accent);transition:text-decoration-color var(--t-hover) ease}
.hero-stage{grid-column:5/-1;grid-row:2;margin-right:calc(var(--margin) * -1);margin-top:clamp(24px,4vh,40px);padding:clamp(28px,3.6vw,56px);background:var(--primary);clip-path:polygon(clamp(60px,10vw,150px) 0,100% 0,100% 100%,0 100%,0 clamp(60px,10vw,150px));display:flex;min-height:430px}
.panel{flex:1;display:flex;flex-direction:column;min-width:0;padding:clamp(16px,2vw,28px);background:var(--bg);color:var(--primary);border-radius:var(--radius)}
.panel-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 18px;margin-bottom:18px;font-size:var(--step-small)}
.panel-head b{font-size:1rem;font-weight:600}
.panel-sentence{margin-top:14px;font-size:var(--step-small)}
.panel-sentence b{font-weight:600}

/* Cascada: de las ventas a lo que queda */
.wf{flex:1;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(6px,1.2vw,14px);min-height:200px}
.wf-col{position:relative;min-height:0}
.wf-col b{position:absolute;left:0;right:0;bottom:calc(46px + (100% - 72px)*var(--b)/100);height:calc((100% - 72px)*var(--h)/100);background:var(--primary);transform-origin:top;transition:transform 900ms var(--ease-expo)}
.wf-col.is-neg b{background:var(--secondary)}
.wf-col.is-keep b{background:var(--accent);transform-origin:bottom}
.wf-col i{position:absolute;left:0;right:0;text-align:center;font-size:var(--step-small);font-weight:600;font-style:normal;bottom:calc(46px + (100% - 72px)*(var(--b) + var(--h))/100 + 5px);transition:opacity 400ms ease 500ms}
.wf-col span{position:absolute;bottom:0;left:0;right:0;height:40px;font-size:var(--step-small);line-height:1.2;text-align:center}
.wf-col:nth-child(2) b{transition-delay:90ms}.wf-col:nth-child(3) b{transition-delay:180ms}.wf-col:nth-child(4) b{transition-delay:270ms}.wf-col:nth-child(5) b{transition-delay:380ms}

/* Reveal */
@media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(22px);transition:opacity 700ms var(--ease-out) var(--d,0ms),transform 900ms var(--ease-expo) var(--d,0ms)}
  .js .reveal.in{opacity:1;transform:none}
  .js .hero-title [data-line]{transform:translateY(105%);animation:line-up 900ms var(--ease-expo) forwards;animation-delay:calc(var(--i) * 90ms + 80ms)}
  .js .hero-copy{opacity:0;transform:translateY(12px);animation:load-rise 500ms var(--ease-out) 420ms forwards}
  .js .hero-stage{animation:shutter 1100ms var(--ease-in-out) 120ms both}
  .js .hero-stage .panel{animation:settle 1300ms var(--ease-expo) 120ms both}
  .js .hero-stage:not(.is-built) .wf-col b{transform:scaleY(0)}
  .js .hero-stage:not(.is-built) .wf-col i{opacity:0}
}
@keyframes line-up{to{transform:none}}
@keyframes load-rise{to{opacity:1;transform:none}}
@keyframes shutter{from{transform:translateY(46px);opacity:0}to{transform:none;opacity:1}}
@keyframes settle{from{transform:scale(1.05)}to{transform:none}}

/* Problema */
.problem{background:var(--surface);padding-block:clamp(84px,11vw,190px)}
.problem-grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);align-items:start}
.problem-head{grid-column:1/7;position:sticky;top:calc(var(--nav-h) + 40px)}
.ledger{grid-column:7/-1;display:grid;gap:8px}
.ledger li{padding:clamp(22px,2.6vw,36px);background:var(--bg);border-radius:var(--radius)}
.ledger b{display:block;font-size:var(--step-lead);font-weight:600;line-height:1.15;letter-spacing:-.02em;margin-bottom:10px}

/* Tres preguntas */
.story{padding-block:clamp(84px,11vw,190px) clamp(60px,7vw,110px)}
.story-head{margin-bottom:clamp(40px,6vw,90px)}
.story-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(36px,6vw,100px)}
.stage{position:sticky;top:calc(var(--nav-h) + 24px);height:min(70vh,560px);align-self:start;background:var(--surface);color:var(--primary);border-radius:var(--radius);overflow:hidden}
.scene{position:absolute;inset:0;display:flex;flex-direction:column;padding:clamp(20px,2.5vw,34px);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity 280ms ease,transform 400ms var(--ease-out),visibility 280ms}
.scene.is-active{opacity:1;visibility:visible;transform:none}
.scene figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;font-size:var(--step-small);margin-bottom:22px}
.scene figcaption span{font-size:1rem;font-weight:600}
.scene figcaption em{font-style:normal}
.steps{display:grid}
.step{min-height:70vh;display:flex;flex-direction:column;justify-content:center;opacity:.45;transition:opacity var(--t-ui) ease}
.step.is-active,html:not(.js) .step{opacity:1}
.step h3{font-size:clamp(1.6rem,1.1rem + 2vw,3rem);font-weight:600;line-height:1.02;letter-spacing:-.03em;margin-bottom:18px}
.step p{max-width:44ch}
.step-fig{display:none}

/* Margen por línea */
.lines-chart{flex:1;display:flex;flex-direction:column;justify-content:center;gap:clamp(16px,2.4vw,30px)}
.lines-chart li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:baseline}
.lines-chart b{font-weight:600}
.lines-chart small{font-size:var(--step-small)}
.lines-chart strong{font-size:var(--step-lead);font-weight:600;letter-spacing:-.02em}
.lines-chart u{grid-column:1/-1;display:block;height:16px;background:var(--bg);text-decoration:none;overflow:hidden}
.lines-chart u::before{content:'';display:block;height:100%;width:calc(var(--m) * 6%);background:var(--primary);transform-origin:left;transform:scaleX(0);transition:transform 800ms var(--ease-expo) var(--d,0ms)}
.lines-chart .low u::before{background:var(--alert)}
.is-active .lines-chart u::before,.step-fig .lines-chart u::before{transform:none}
.lines-note{margin-top:16px;font-size:var(--step-body)}
.lines-note b{font-weight:600}

/* Semanas */
.wk{flex:1;min-height:0;position:relative;display:grid;grid-template-columns:repeat(13,1fr);gap:clamp(3px,.6vw,7px)}
.wk::after{content:'';position:absolute;left:0;right:0;top:75%;height:2px;background:var(--primary)}
.wk i{position:relative;display:block;height:100%}
.wk i::before{content:'';position:absolute;left:0;right:0;bottom:25%;height:calc(var(--v)*1.3%);background:var(--primary);transform:scaleY(0);transform-origin:bottom;transition:transform 700ms var(--ease-expo)}
.wk i.neg::before{bottom:auto;top:75%;background:var(--alert);transform-origin:top}
.is-active .wk i::before,.step-fig .wk i::before{transform:none}
.wk i:nth-child(n+4)::before{transition-delay:70ms}.wk i:nth-child(n+7)::before{transition-delay:140ms}.wk i:nth-child(n+10)::before{transition-delay:210ms}
.wk-note{margin-top:16px}
.wk-note b{color:var(--alert);font-weight:600}

/* Decisiones */
.dec{flex:1;display:flex;flex-direction:column;justify-content:center;gap:8px}
.dec li{display:flex;gap:16px;align-items:flex-start;padding:clamp(14px,1.6vw,20px);background:var(--bg);border-radius:var(--radius);opacity:0;transform:translateX(16px);transition:opacity 400ms ease,transform 600ms var(--ease-expo)}
.is-active .dec li,.step-fig .dec li{opacity:1;transform:none}
.dec li:nth-child(2){transition-delay:70ms}.dec li:nth-child(3){transition-delay:140ms}
.dec b{display:block;font-weight:600;line-height:1.25}
.dec small{display:block;margin-top:3px;font-size:var(--step-small)}

/* Cinta */
.tape{background:var(--accent);color:var(--primary);padding-block:clamp(26px,4vw,56px);overflow:hidden}
.tape-row{display:flex;width:max-content;gap:.9em;font-size:clamp(2rem,5.6vw,5.4rem);font-weight:600;line-height:1.14;letter-spacing:-.04em;white-space:nowrap;will-change:transform}
.tape-alt{margin-left:-22vw}

/* Simulador */
.sim{background:var(--secondary);padding-block:clamp(84px,10vw,170px)}
.sim-head{margin-bottom:clamp(30px,4vw,56px)}
.sim-head .lede{max-width:46ch}
.sim-box{display:grid;grid-template-columns:minmax(280px,.72fr) 1.3fr;background:var(--primary);color:var(--surface);border-radius:var(--radius);overflow:hidden}
.sim-controls{display:grid;gap:24px;align-content:center;padding:clamp(22px,3vw,44px);background:var(--primary-deep)}
.sim-controls label{display:grid;gap:10px;font-size:1rem}
.sim-controls label>span{display:flex;justify-content:space-between;gap:10px}
.sim-controls output{font-weight:600;color:var(--secondary);white-space:nowrap;font-variant-numeric:tabular-nums}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:32px;background:none;margin:0;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:6px;background:linear-gradient(90deg,var(--accent) var(--p,50%),var(--primary-lift) var(--p,50%))}
input[type=range]::-moz-range-track{height:6px;background:var(--primary-lift)}
input[type=range]::-moz-range-progress{height:6px;background:var(--accent)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-9px;background:var(--secondary);border:0;border-radius:var(--radius);transition:transform var(--t-press) var(--ease-out)}
input[type=range]::-moz-range-thumb{width:24px;height:24px;background:var(--secondary);border:0;border-radius:var(--radius)}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.14)}
.sim-view{padding:clamp(20px,3vw,40px);min-width:0}
.sim-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.sim-kpis small{display:block;font-size:var(--step-small);margin-bottom:2px}
.sim-kpis b{font-size:var(--step-head);font-weight:600;line-height:1.05;letter-spacing:-.035em;color:var(--secondary);white-space:nowrap;font-variant-numeric:tabular-nums}
.sim-kpis b.bad{color:var(--alert-on-dark)}
.sim-chart{width:100%;height:auto;overflow:visible}
.sim-chart rect{transition:y 400ms var(--ease-out),height 400ms var(--ease-out),fill 200ms ease}
.sim-chart text{font:400 13px var(--font);fill:var(--surface)}
.sim-msg{margin-top:14px;min-height:3.2em}
.sim-foot{margin-top:18px;font-size:var(--step-small);max-width:80ch}

/* Planes: los tres suben como una gráfica */
.plans{background:var(--bg);padding-block:clamp(84px,10vw,170px)}
.plans-head{margin-bottom:clamp(30px,4vw,56px)}
.diag{display:grid;grid-template-columns:1.25fr 1.15fr auto;gap:clamp(22px,4vw,56px);align-items:center;padding:clamp(24px,3.4vw,44px);background:var(--surface);border-radius:var(--radius)}
.diag h3{font-size:var(--step-lead);font-weight:600;line-height:1.1;letter-spacing:-.02em;margin-bottom:10px}
.diag-facts{display:grid;gap:12px}
.diag-facts div{display:flex;justify-content:space-between;align-items:baseline;gap:18px}
.diag-facts dt{font-size:1rem}
.diag-facts dd{font-weight:600;text-align:right}
.diag-facts .price{font-size:var(--step-lead);letter-spacing:-.02em}
.stairs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:end;margin-top:clamp(40px,5vw,72px)}
.plan{display:flex;flex-direction:column;padding:clamp(24px,2.4vw,34px) clamp(24px,2.4vw,34px) 0;border-radius:var(--radius);overflow:hidden}
.plan:nth-child(1){background:var(--surface);min-height:500px}
.plan:nth-child(2){background:var(--secondary);min-height:590px}
.plan:nth-child(3){background:var(--primary);color:var(--surface);min-height:680px}
.plan h3{font-size:var(--step-lead);font-weight:600;line-height:1.1;letter-spacing:-.02em}
.plan-q{margin-bottom:20px;font-weight:500}
.plan-price{display:flex;align-items:baseline;gap:6px;margin:18px 0 6px}
.plan-price b{font-size:clamp(2.25rem,1.6rem + 2vw,3.5rem);font-weight:600;line-height:1;letter-spacing:-.04em}
.plan-plus{font-weight:600;margin-bottom:8px}
.plan ul{display:grid;gap:10px;margin-bottom:28px}
.plan li{position:relative;padding-left:22px;line-height:1.35}
.plan li::before{content:'';position:absolute;left:0;top:.42em;width:10px;height:10px;background:var(--primary)}
.plan:nth-child(3) li::before{background:var(--accent)}
.plan-strip{margin:auto calc(clamp(24px,2.4vw,34px) * -1) 0;justify-content:space-between;min-height:64px;border-radius:0;padding-inline:clamp(24px,2.4vw,34px)}
.plans-note{margin-top:18px;font-size:var(--step-small)}

/* Camino */
.path{padding-block:clamp(84px,10vw,170px)}
.path-line{position:relative;margin-top:clamp(40px,5vw,72px)}
.path-track{position:absolute;left:0;right:0;top:6px;height:6px;background:var(--primary-lift)}
.path-track i{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
.path ol{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,3vw,44px)}
.path li{position:relative;padding-top:44px}
.path li::before{content:'';position:absolute;top:0;left:0;width:18px;height:18px;background:var(--primary-lift);transition:background-color 200ms ease,transform 400ms var(--ease-out)}
.path li.on::before{background:var(--secondary);transform:scale(1.12)}
.path li b{display:block;font-size:var(--step-lead);font-weight:600;line-height:1.1;letter-spacing:-.02em;margin-bottom:8px}

/* Sobre mí */
.about{background:var(--bg);padding-block:clamp(84px,10vw,170px)}
.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,7vw,110px);align-items:center}
.about-copy>p{margin-top:20px;max-width:60ch}
.portrait{aspect-ratio:1;max-width:460px;width:100%;overflow:clip;border-radius:var(--radius)}
.portrait img{width:100%;height:100%;object-fit:cover}
.about-facts{margin-top:30px;display:grid;gap:8px}
.about-facts div{display:grid;grid-template-columns:130px 1fr;gap:14px;padding:14px 18px;background:var(--surface);border-radius:var(--radius)}
.about-facts dt{font-weight:600}

/* Preguntas */
.faq{background:var(--surface);padding-block:clamp(84px,10vw,170px)}
.faq-grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);align-items:start}
.faq-grid>div:first-child{grid-column:1/5;position:sticky;top:calc(var(--nav-h) + 28px)}
.faq-list{grid-column:5/-1;display:grid;gap:8px}
.faq-list details{background:var(--bg);border-radius:var(--radius);transition:background-color var(--t-ui) ease;interpolate-size:allow-keywords}
.faq-list details[open]{background:var(--accent)}
.faq summary{position:relative;list-style:none;cursor:pointer;padding:22px 60px 22px 24px;font-size:var(--step-lead);font-weight:500;line-height:1.15;letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before,.faq summary::after{content:'';position:absolute;right:24px;top:50%;width:16px;height:3px;margin-top:-1.5px;background:var(--primary);transition:transform var(--t-ui) var(--ease-out)}
.faq summary::after{transform:rotate(90deg)}
.faq details[open] summary::after{transform:rotate(0)}
.faq details p{padding:0 60px 24px 24px;max-width:62ch}
.faq details::details-content{block-size:0;overflow:clip;transition:block-size 300ms var(--ease-out),content-visibility 300ms allow-discrete}
.faq details[open]::details-content{block-size:auto}

/* Contacto */
.contact{padding-top:clamp(84px,10vw,170px)}
.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,6vw,90px);align-items:start}
.contact-direct{display:grid;justify-items:start;gap:10px;margin-top:30px}
.contact-direct a{font-size:var(--step-lead);letter-spacing:-.015em;text-underline-offset:.2em;text-decoration-thickness:2px;text-decoration-color:var(--accent);overflow-wrap:anywhere;transition:color var(--t-hover) ease}
.form{display:grid;gap:18px;padding:clamp(22px,3vw,38px);background:var(--primary-deep);border-radius:var(--radius)}
.form label{display:grid;gap:6px;font-size:1rem}
.form input,.form select,.form textarea{width:100%;min-height:50px;padding:12px 14px;font:400 16px/1.4 var(--font);color:var(--surface);caret-color:var(--secondary);background:var(--primary-lift);border:0;border-radius:var(--radius);transition:background-color var(--t-hover) ease}
.form select option{background:var(--primary);color:var(--surface)}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid var(--secondary);outline-offset:0}
.form textarea{resize:vertical}
.form small{font-size:var(--step-small)}
.form .btn:hover{color:var(--primary)}
.foot-name{margin-top:clamp(64px,8vw,120px)}
.foot-name img{width:100%;height:auto}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;padding-block:22px 28px;font-size:var(--step-small)}
@media (hover:hover) and (pointer:fine){
  .contact-direct a:hover{color:var(--secondary)}
  .form input:hover,.form select:hover,.form textarea:hover{background:#17605C}
  .hero-link:hover{text-decoration-color:var(--primary)}
}

.mobile-bar{display:none}

/* Tablet */
@media (max-width:1120px){
  .diag{grid-template-columns:1fr 1fr}
  .diag .btn{grid-column:1/-1}
  .plan:nth-child(n){min-height:0}
}
@media (max-width:1080px){.nav-cta{display:none}}
@media (max-width:960px){
  .nav-toggle{display:block}
  .nav-links{position:absolute;top:100%;left:0;right:0;display:grid;gap:0;padding:6px var(--margin) 14px;background:var(--bg);opacity:0;visibility:hidden;transform:translateY(-6px);transform-origin:top right;transition:opacity 170ms ease,transform 170ms var(--ease-out),visibility 170ms}
  .nav-links.open{opacity:1;visibility:visible;transform:none;transition-duration:var(--t-ui)}
  .nav-links a{padding:13px 0;font-size:1.125rem}
  .nav-mobile-cta{display:block;font-weight:600}
  .hero{display:block;min-height:0;padding-inline:0}
  .hero-title{padding:28px var(--margin) 0;font-size:clamp(1.85rem,7.6vw,4.6rem)}
  .hero-copy{padding:20px var(--margin) 32px}
  .hero-stage{margin:0;padding:clamp(56px,10vw,84px) 16px 16px;clip-path:polygon(72px 0,100% 0,100% 100%,0 100%,0 72px);min-height:440px}
  .problem-head,.ledger,.faq-grid>div:first-child,.faq-list{grid-column:1/-1}
  .problem-head,.faq-grid>div:first-child{position:static;margin-bottom:28px}
  .story-grid,.sim-box,.about-grid,.contact-grid{grid-template-columns:1fr}
  .stage{display:none}
  html:not(.js) .stage{display:block;position:relative;top:0}
  .step{min-height:0;opacity:1;padding-block:30px}
  .step-fig{display:block;position:relative;margin-top:22px;height:380px;background:var(--surface);color:var(--primary);border-radius:var(--radius);overflow:hidden}
  .step-fig .scene{opacity:1;visibility:visible;transform:none}
  .stairs{grid-template-columns:1fr;align-items:stretch}
  .path ol{grid-template-columns:1fr;gap:0}
  .path-track{left:6px;right:auto;top:0;bottom:0;width:6px;height:auto}
  .path-track i{transform:scaleY(0);transform-origin:top}
  .path li{padding:0 0 30px 40px}
  .portrait{max-width:220px}
  .mobile-bar{position:fixed;z-index:45;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;font-weight:600;text-decoration:none;color:var(--primary);background:var(--accent);border-radius:var(--radius);transform:translateY(90px);transition:transform 300ms var(--ease-out)}
  .mobile-bar i{font-style:normal}
  .mobile-bar.show{transform:none}
  .foot{padding-bottom:92px}
}
@media (max-width:640px){
  .brand-name{width:112px}
  .hero-actions .btn{width:100%}
  .diag{grid-template-columns:1fr}
  .sim-kpis{grid-template-columns:1fr 1fr}
  .sim-kpis div:first-child{grid-column:1/-1}
  .about-facts div{grid-template-columns:1fr;gap:0}
  .wf-col span{font-size:.8125rem;height:62px}
  .wf-col b{bottom:calc(66px + (100% - 92px)*var(--b)/100);height:calc((100% - 92px)*var(--h)/100)}
  .wf-col i{bottom:calc(66px + (100% - 92px)*(var(--b) + var(--h))/100 + 5px)}
  .sim-chart text{font-size:22px}
  .sim-chart text:nth-of-type(even){display:none}
  .faq summary{padding:18px 52px 18px 18px}
  .faq details p{padding:0 18px 20px}
  .faq summary::before,.faq summary::after{right:18px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;transition-delay:0ms!important}
}
