/* Admisión Universitaria — Editorial 2026. Sin dependencias del CSS viejo. */
:root{--paper:#faf6ee;--ink:#1a1713;--muted:#6e675c;--line:#ddd5c6;--accent:#e8490f;--serif:"Fraunces",Georgia,serif;--sans:"Inter",system-ui,sans-serif;--mono:"IBM Plex Mono",monospace;--w:1200px;--ease:cubic-bezier(.22,1,.36,1)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:400 1rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
ul{list-style:none}
img{max-width:100%;display:block}
::selection{background:var(--accent);color:var(--paper)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}

.wrap{width:min(var(--w),92vw);margin-inline:auto}
.kicker{font:500 .72rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:1.1rem}
.h2{font:600 clamp(2rem,1.2rem+2.8vw,3.4rem)/1.08 var(--serif);letter-spacing:-.01em;max-width:20ch}
.h2 em{font-style:italic;font-weight:400}
.sec{border-top:1px solid var(--line);padding-block:clamp(4rem,3rem+4vw,7rem)}
.sec-head{display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:start;margin-bottom:3rem}
.sec-num{font:400 .8rem/2.2 var(--mono);color:var(--muted)}
@media(max-width:700px){.sec-head{grid-template-columns:1fr}}

.rv{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.on{opacity:1;transform:none}

.btn{display:inline-flex;align-items:center;gap:.6rem;font:600 .95rem/1 var(--sans);padding:1.05rem 1.9rem;border:1px solid var(--ink);transition:background .2s,color .2s,border-color .2s}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--paper)}
.btn .ar{transition:transform .25s var(--ease)}
.btn:hover .ar{transform:translateX(4px)}

.prog{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;z-index:200}

.ticker{background:var(--ink);color:var(--paper);overflow:hidden;padding:.55rem 0;font:500 .72rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.ticker-track{display:flex;gap:3.5rem;width:max-content;animation:tk 30s linear infinite;white-space:nowrap}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker b{color:#ffb703;font-weight:500}
@keyframes tk{to{transform:translateX(-50%)}}

.hd{position:sticky;top:0;z-index:100;background:rgba(250,246,238,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hd-in{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{font:600 1.1rem var(--serif)}
.logo i{font-style:normal;color:var(--accent)}
.nav{display:flex;gap:1.8rem;align-items:center;font-size:.88rem}
.nav a:not(.btn){color:var(--muted);border-bottom:1px solid transparent;padding-bottom:2px;transition:color .2s,border-color .2s}
.nav a:not(.btn):hover{color:var(--ink);border-color:var(--ink)}
.nav .btn{padding:.65rem 1.2rem;font-size:.82rem}
@media(max-width:820px){.nav a:not(.btn){display:none}}

.hero{padding-block:clamp(3.5rem,3rem+4vw,6.5rem)}
.hero-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(2rem,4vw,5rem);align-items:end}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}}
.hero h1{font:400 clamp(2.6rem,1.4rem+5.2vw,5.4rem)/1.03 var(--serif);letter-spacing:-.015em}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero h1 .u{position:relative;white-space:nowrap}
.hero h1 .u::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.09em;background:var(--accent);transform:scaleX(0);transform-origin:left;animation:uline 1s var(--ease) .6s forwards}
@keyframes uline{to{transform:scaleX(1)}}
.hero .sub{color:var(--muted);max-width:46ch;margin-top:1.6rem;font-size:1.05rem}
.hero .sub b{color:var(--ink);font-weight:600}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.2rem}
.hero-foot{font:400 .78rem/1.5 var(--mono);color:var(--muted);margin-top:1.4rem}

.spec{border:1px solid var(--ink);background:#fffdf8}
.spec-head{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.2rem;border-bottom:1px solid var(--ink);font:500 .7rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.spec-head .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:bl 1.6s infinite}
@keyframes bl{50%{opacity:.2}}
.spec dl{display:grid;grid-template-columns:1fr auto}
.spec dt,.spec dd{padding:.75rem 1.2rem;border-bottom:1px solid var(--line);font-size:.85rem}
.spec dt{color:var(--muted)}
.spec dd{font:500 .85rem var(--mono);text-align:right}
.spec dd.hot{color:var(--accent)}
.spec dt:nth-last-of-type(1),.spec dd:nth-last-of-type(1){border-bottom:0}
.spec-cd{display:flex;justify-content:space-between;padding:1rem 1.2rem;border-top:1px solid var(--ink);background:var(--ink);color:var(--paper)}
.spec-cd .cell{text-align:center}
.spec-cd .n{font:500 1.5rem/1 var(--mono);font-variant-numeric:tabular-nums}
.spec-cd .l{font:400 .58rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;opacity:.55;margin-top:.35rem}

.stats{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}
.stat{padding:2rem 1.5rem;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat .n{font:600 clamp(2rem,1.4rem+2.4vw,3.2rem)/1 var(--serif);font-variant-numeric:tabular-nums}
.stat .n small{font-size:.55em;color:var(--accent)}
.stat .t{font:400 .72rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:.6rem}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}}

.plist{border-top:1px solid var(--line)}
.plist li{display:grid;grid-template-columns:80px 1fr 1.2fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.plist .i{font:400 .8rem var(--mono);color:var(--accent)}
.plist h3{font:600 1.35rem var(--serif)}
.plist p{color:var(--muted);font-size:.95rem}
@media(max-width:760px){.plist li{grid-template-columns:1fr;gap:.5rem}}

.mrow{display:grid;grid-template-columns:80px 1fr 1.3fr auto;gap:2rem;padding:1.8rem 0;border-bottom:1px solid var(--line);align-items:center;transition:background .25s,padding-left .25s}
.mrow:hover{background:#f3ecdd;padding-left:1rem}
.mrow .i{font:400 .8rem var(--mono);color:var(--muted)}
.mrow h3{font:600 1.3rem var(--serif)}
.mrow p{color:var(--muted);font-size:.92rem}

.mrow .tagm{font:500 .65rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);padding:.45rem .8rem;white-space:nowrap}
.mrow:hover .tagm{border-color:var(--accent);color:var(--accent)}
@media(max-width:820px){.mrow{grid-template-columns:1fr;gap:.5rem}.mrow .tagm{justify-self:start}}

.exam-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}
@media(max-width:900px){.exam-grid{grid-template-columns:1fr}}
.doc{border:1px solid var(--ink);background:#fffdf8}
.doc-bar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:.9rem 1.4rem;border-bottom:1px solid var(--ink);font:500 .7rem/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.doc table{width:100%;border-collapse:collapse;font-size:.9rem}
.doc th{font:500 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;text-align:left;padding:.9rem 1.4rem;border-bottom:1px solid var(--ink);color:var(--muted)}
.doc td{padding:.85rem 1.4rem;border-bottom:1px solid var(--line)}
.doc td:last-child,.doc th:last-child{text-align:right;font-family:var(--mono)}
.doc tbody tr:hover td{background:#f3ecdd}
.doc .tot td{border-top:1px solid var(--ink);border-bottom:0;font-weight:600}
.doc .tot td:last-child{color:var(--accent)}
.areas{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-bottom:0}
.area{padding:1.2rem 1.4rem;border-bottom:1px solid var(--line);transition:background .2s}
.area:nth-child(odd){border-right:1px solid var(--line)}
.area:hover{background:#f3ecdd}
.area b{font:500 .8rem var(--mono);color:var(--accent);display:block}
.area span{font-size:.85rem;color:var(--muted)}
.mats{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem}
.mats span{font:400 .75rem var(--mono);border:1px solid var(--line);padding:.4rem .8rem}

.plans{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ink)}
.plan{padding:2.4rem 2rem;border-right:1px solid var(--ink);display:flex;flex-direction:column;gap:1rem;position:relative;transition:background .25s}
.plan:last-child{border-right:0}
.plan:hover{background:#f3ecdd}
.plan.f{background:var(--ink);color:var(--paper)}
.plan.f .mu{color:#b3aca0}
.plan.f:hover{background:#000}
.plan .tag{position:absolute;top:-1px;right:-1px;background:var(--accent);color:var(--paper);font:500 .62rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:.5rem .9rem}
.plan .dur{font:400 3.2rem/1 var(--serif)}
.plan .dur small{font-size:.32em;font-family:var(--mono);color:var(--accent)}
.plan h3{font:600 1.1rem var(--serif)}
.plan .mu{color:var(--muted);font-size:.88rem;flex:1}
.plan .btn{justify-content:center}
.plan.f .btn{border-color:var(--paper);color:var(--paper)}
.plan.f .btn:hover{background:var(--accent);border-color:var(--accent)}
@media(max-width:820px){.plans{grid-template-columns:1fr}.plan{border-right:0;border-bottom:1px solid var(--ink)}.plan:last-child{border-bottom:0}}

.bens{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);margin-top:3rem}
.ben{padding:1.6rem 1.3rem;border-right:1px solid var(--line)}
.ben:last-child{border-right:0}
.ben b{font:500 .75rem var(--mono);color:var(--accent);display:block;margin-bottom:.5rem}
.ben h4{font:600 .98rem var(--serif);margin-bottom:.3rem}
.ben p{font-size:.8rem;color:var(--muted)}
@media(max-width:900px){.bens{grid-template-columns:1fr 1fr}.ben{border-bottom:1px solid var(--line)}}
.inc{columns:2;column-gap:3rem;margin-top:2.5rem;max-width:700px}
.inc li{break-inside:avoid;padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.92rem;color:var(--muted)}
.inc li::before{content:"— ";color:var(--accent)}
@media(max-width:560px){.inc{columns:1}}

.testi{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}
.tst{padding:2.2rem;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:1.4rem}
.tst:last-child{border-right:0}
.tst blockquote{font:italic 400 1.12rem/1.5 var(--serif)}
.tst .res{font:500 .7rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.tst .who{margin-top:auto;font-size:.85rem}
.tst .who b{display:block}
.tst .who span{color:var(--muted);font:400 .75rem var(--mono)}
@media(max-width:820px){.testi{grid-template-columns:1fr}.tst{border-right:0;border-bottom:1px solid var(--line)}.tst:last-child{border-bottom:0}}

.guar{border:1px solid var(--ink);background:#fffdf8;display:grid;grid-template-columns:1fr auto;gap:2rem;padding:clamp(2rem,4vw,3.5rem);align-items:center}
.guar h2{font:600 clamp(1.6rem,1.2rem+1.8vw,2.4rem)/1.15 var(--serif);max-width:22ch}
.guar h2 em{font-style:italic;color:var(--accent)}
.guar p{color:var(--muted);max-width:52ch;margin-top:.8rem;font-size:.95rem}
.guar .gbtn{margin-top:1.6rem}
.guar .stamp{font:500 .68rem/1.7 var(--mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--ink);padding:1.2rem;text-align:center;transform:rotate(3deg);transition:transform .3s var(--ease)}
.guar:hover .stamp{transform:rotate(0)}
@media(max-width:760px){.guar{grid-template-columns:1fr}.guar .stamp{justify-self:start;transform:none}}

.faq{max-width:760px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.4rem 0;font:600 1.05rem var(--serif);display:flex;justify-content:space-between;gap:1rem;align-items:baseline}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 1.3rem var(--mono);color:var(--accent);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 0 1.4rem;color:var(--muted);font-size:.93rem;max-width:60ch}

.final{background:var(--ink);color:var(--paper);padding-block:clamp(4.5rem,4rem+4vw,7.5rem);margin-top:clamp(4rem,3rem+4vw,7rem)}
.final .kicker{color:#ffb703}
.final h2{font:400 clamp(2.2rem,1.4rem+3.6vw,4.2rem)/1.08 var(--serif);max-width:22ch}
.final h2 em{font-style:italic;color:#ffb703}
.final p{color:#b3aca0;max-width:52ch;margin-top:1.2rem}
.final .btn{border-color:var(--paper);color:var(--paper);margin-top:2.2rem}
.final .btn:hover{background:var(--accent);border-color:var(--accent)}
.final .tel{font:400 .8rem/1.8 var(--mono);color:#b3aca0;margin-top:1.4rem}
.final .tel a:hover{color:var(--paper)}

.ft{border-top:1px solid var(--line);padding:3rem 0 6rem;font-size:.85rem}
.ft-g{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem}
.ft h4{font:500 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}
.ft li{margin-bottom:.45rem}
.ft a{color:var(--muted)}
.ft a:hover{color:var(--ink)}
.ft .ft-desc{color:var(--muted);margin-top:.8rem;max-width:38ch}
.ft .legal{border-top:1px solid var(--line);padding-top:1.4rem;font:400 .72rem/1.7 var(--mono);color:var(--muted)}
@media(max-width:720px){.ft-g{grid-template-columns:1fr}}

.wa{position:fixed;right:1.1rem;bottom:5rem;z-index:99;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--ink);transition:background .2s,transform .25s var(--ease)}
.wa:hover{background:var(--accent);transform:scale(1.08)}
.wa svg{width:24px;height:24px;fill:var(--paper)}
@media(min-width:821px){.wa{bottom:1.2rem}}
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:98;display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.7rem 1.1rem calc(.7rem + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--ink);transform:translateY(110%);transition:transform .4s var(--ease)}
.sticky.on{transform:none}
.sticky .t{font:500 .7rem/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sticky .btn{padding:.75rem 1.3rem;font-size:.85rem;white-space:nowrap}
@media(min-width:821px){.sticky{display:none}}

/* ================================================================
   PATCH v1.1 — Ritmo vertical sistemático
   Una sola fuente de verdad para el espaciado entre secciones.
   ================================================================ */
:root{
  --sp-section: clamp(5rem, 4rem + 5vw, 8.5rem);   /* entre secciones */
  --sp-head:    clamp(2.75rem, 2rem + 2.5vw, 4.5rem); /* título → contenido */
  --sp-block:   clamp(2.25rem, 1.75rem + 1.5vw, 3.5rem); /* entre bloques internos */
}

/* 1. TODAS las secciones respiran igual (incluida stats, que estaba en cero) */
.sec,
main > section.wrap{
  padding-block: var(--sp-section);
}

/* 2. Separación título → contenido, consistente */
.sec-head{ margin-bottom: var(--sp-head); }

/* 3. Bloques internos: separación explícita, no heredada por accidente */
.bens{ margin-top: var(--sp-block); }
.inc{ margin-top: var(--sp-block); }
.mats{ margin-top: 1.6rem; }

/* 4. El hero cierra con aire antes de la línea de stats */
.hero{ padding-block: clamp(4rem, 3rem + 4vw, 7rem); }

/* 5. Anclas del menú: el header sticky ya no tapa los títulos */
.sec, .final{ scroll-margin-top: 76px; }

/* 6. La sección final ya no necesita margin-top ad-hoc:
      el ritmo lo da el padding de la sección anterior */
.final{ margin-top: 0; }

/* ================================================================
   PATCH v1.2 — Escala tipográfica única + defaults defensivos.
   Regla senior: ningún texto queda sin tamaño ni separación,
   tenga clase o no. Una sola fuente de verdad (tokens --fs-*).
   ================================================================ */
:root{
  --fs-h1:   clamp(2.6rem, 1.4rem + 5.2vw, 5.4rem);
  --fs-h2:   clamp(2rem, 1.2rem + 2.8vw, 3.4rem);
  --fs-h3:   clamp(1.2rem, 1.05rem + .6vw, 1.45rem);
  --fs-h4:   clamp(1rem, .95rem + .3vw, 1.15rem);
  --fs-body: clamp(.95rem, .9rem + .25vw, 1.05rem);
}

/* --- 1. DEFAULTS: cualquier heading/párrafo dentro de main,
       con o sin clase, recibe tamaño y jerarquía correctos --- */
main h1{ font:400 var(--fs-h1)/1.05 var(--serif); letter-spacing:-.015em; }
main h2{ font:600 var(--fs-h2)/1.12 var(--serif); letter-spacing:-.01em; }
main h3{ font:600 var(--fs-h3)/1.25 var(--serif); }
main h4{ font:600 var(--fs-h4)/1.3  var(--serif); }
main p { font-size:var(--fs-body); }

/* --- 2. SEPARACIÓN texto→texto: ningún par pegado ---
       (margen entre hermanos adyacentes; los grids con gap no se afectan
        porque gap se suma, y donde hay gap estos márgenes son inocuos) --- */
main h2 + p{ margin-top:1.1rem; }
main h3 + p{ margin-top:.5rem; }
main h4 + p{ margin-top:.35rem; }
main p + p{ margin-top:.8rem; }
main .kicker + h1,
main .kicker + h2{ margin-top:.2rem; }

/* --- 3. Clase .lead (existía en el HTML, faltaba en el CSS) --- */
.lead{ color:var(--muted); max-width:58ch; font-size:var(--fs-body); margin-top:1.1rem; }

/* --- 4. Re-alinear los tamaños con clase a la MISMA escala
       (antes cada uno tenía su número mágico) --- */
.h2{ font-size:var(--fs-h2); }
.plist h3, .mrow h3{ font-size:var(--fs-h3); }
.plan h3, .tst .who b{ font-size:var(--fs-h4); }
.plist p, .mrow p, .plan .mu, .faq .a, .guar p{ font-size:var(--fs-body); }

/* --- 5. Separación interna que faltaba en bloques específicos --- */

/* Hero: subtítulo, CTAs y nota con ritmo escalonado claro */
.hero .sub{ margin-top:1.8rem; }
.hero-ctas{ margin-top:2.4rem; }
.hero-foot{ margin-top:1.5rem; }

/* Diagnóstico y método: aire dentro de cada fila */
.plist li{ padding-block:2.4rem; }
.plist h3{ margin-bottom:.4rem; }
.mrow{ padding-block:2.2rem; }

/* Examen: la tabla no toca las áreas en móvil */
.exam-grid{ gap:clamp(2rem,3vw,3.5rem); }
.areas{ margin-top:0; }
@media(max-width:900px){ .exam-grid > .rv:last-child{ margin-top:.5rem; } }

/* Planes: respiración interna consistente */
.plan{ gap:1.1rem; }
.plan .dur{ margin-bottom:.2rem; }

/* Testimonios: cita separada del resultado y del autor */
.tst{ gap:1.5rem; }

/* Garantía: título → texto → botón con ritmo propio
   (dentro de .guar hay h2 sin .h2, ya cubierto por defaults del punto 1) */
.guar h2{ margin-top:.2rem; }

/* FAQ: pregunta con aire y respuesta indentada ópticamente */
.faq summary{ padding-block:1.5rem; }
.faq .a{ padding-bottom:1.6rem; }

/* CTA final: escalonado igual que el hero */
.final h2{ margin-top:.2rem; }
.final p{ margin-top:1.4rem; }
.final .btn{ margin-top:2.4rem; }
.final .tel{ margin-top:1.6rem; }

/* Footer: descripción y columnas con separación propia */
.ft-g{ gap:clamp(2rem,4vw,3.5rem); row-gap:2.5rem; }

/* --- 6. Móvil: el ritmo se comprime proporcionalmente, no se rompe --- */
@media(max-width:700px){
  :root{
    --sp-section: clamp(3.5rem, 3rem + 3vw, 5rem);
    --sp-head:    2.25rem;
    --sp-block:   2rem;
  }
  .plist li{ padding-block:1.8rem; }
  .mrow{ padding-block:1.6rem; }
  .hero-ctas .btn{ width:100%; justify-content:center; }
}

/* ================================================================
   PATCH v1.3 — Nivel clase mundial: menú móvil, skip-link,
   textura de papel, stagger y pulido óptico.
   ================================================================ */

/* 1. Skip-link accesible (visible solo con teclado) */
.skip{position:fixed;top:-100%;left:1rem;z-index:300;background:var(--ink);color:var(--paper);padding:.8rem 1.4rem;font:600 .85rem var(--sans);transition:top .2s}
.skip:focus{top:1rem}

/* 2. Hamburguesa (solo móvil) */
.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;cursor:pointer;background:none;border:0;padding:10px}
.burger span{display:block;height:2px;background:var(--ink);transition:transform .3s var(--ease),opacity .3s}
.burger[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
@media(max-width:820px){.burger{display:flex}}

/* 3. Menú móvil desplegable */
.mmenu{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);background:var(--paper);padding:.5rem 4vw 1.5rem}
.mmenu[hidden]{display:none}
.mmenu a:not(.btn){font:600 1.15rem/1 var(--serif);padding:1.1rem 0;border-bottom:1px solid var(--line)}
.mmenu .btn{margin-top:1.2rem;justify-content:center}
@media(min-width:821px){.mmenu{display:none!important}}

/* 4. Textura de papel sutil (grain SVG inline, cero requests) */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .04 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* 5. Pulido óptico fino */
.hero h1{text-wrap:balance}
.h2,main h2{text-wrap:balance}
main p,.lead{text-wrap:pretty}
.spec dd,.stat .n,.spec-cd .n{font-variant-numeric:tabular-nums}
.doc table{font-variant-numeric:tabular-nums}
html{-webkit-text-size-adjust:100%}

/* Botón variante papel: autocontenido para fondos oscuros */
.btn-paper{background:transparent;border-color:var(--paper);color:var(--paper)}
.btn-paper:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}
/* El h2 final decide sus propios saltos según viewport */
.final h2{max-width:18ch;text-wrap:balance}




