/* Smartech Security · «Hoja de especificación» · hoja de estilos del sitio (22-10-2026)
   Fuente única de color y tipografía: grupo-favinca/smartech/guia/tokens.css (copiados abajo sin cambios).
   Reglas de la guía: 70 % Niebla · 20 % Grafito · 10 % Cobalto; el cobalto solo en la acción o la capa elegida;
   verde «Verificado» solo en constancias; esquinas de 6 px; movimiento 180-260 ms ease-out; nada flota. */
:root{
  --niebla:#F5F7FA; --blanco:#FFFFFF; --linea:#D8DEE6; --grafito:#0E1116; --grafito-2:#1A1F27; --gris:#556070;
  --cad:#8DBBFF; --verificado:#0A7D57; --cobalto:#0048B1; --cobalto-claro:#E7EDFD;
  --bg:var(--niebla); --surface:var(--blanco); --raised:#EEF1F5; --ink:var(--grafito); --muted:var(--gris);
  --line:var(--linea); --accent:var(--cobalto); --on-accent:#FFFFFF; --second:var(--cobalto); --cifra:var(--accent); --band:var(--grafito); --on-band:#F5F7FA;
  --band-muted:#9AA5B4; --band-accent:var(--cad);
  --fd:'Geist',ui-sans-serif,system-ui,sans-serif; --ft:'Geist',ui-sans-serif,system-ui,sans-serif;
  --fm:'Geist Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
  --r:6px;
  /* derivados (no son colores nuevos: mezclas de los de la guía) */
  --cobalto-h:#003D96;               /* hover del botón: el azul del logo 15 % más oscuro */
  --acento-neg:#4A86E8;              /* el azul del logo aclarado para leerse sobre grafito (logo negativo, borde de conos) */
  --cono:rgba(0,72,177,.45); --cono-borde:var(--acento-neg); --intrusion:#3CC48F;
  --line-band:color-mix(in srgb,var(--on-band) 16%,transparent);
  --sombra:0 1px 0 rgba(14,17,22,.04),0 18px 40px -22px rgba(14,17,22,.28);
  --ease:cubic-bezier(.2,.7,.2,1); --t:220ms;
  --nav-h:68px;
  --gut:clamp(16px,4vw,56px);
  --max:1440px;
  /* escala tipográfica (brief §10): base 17 px; saltos de ≈1,4 en escritorio (1440) para que cada nivel se distinga, ≈1,2 en móvil (390) */
  --t-nota:14px; --t-0:17px;
  --t-1:clamp(20px,calc(19px + .257vw),22px);          /* entradilla, h3, citas */
  --t-2:clamp(26px,calc(23.6px + .62vw),32.5px);       /* h2 de prosa y de formulario */
  --t-3:clamp(28px,calc(19.6px + 2.15vw),50.6px);      /* h2 de sección */
  --t-4:clamp(34px,calc(23.5px + 3.2vw),69.6px);       /* h1 de página, cifras */
  --t-5:clamp(44px,calc(18.3px + 5.57vw),98.5px);      /* h1 de la portada */
}

/* ── base ─────────────────────────────────────────────────────────────── */
[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 16px)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--ft);font-variant-numeric:lining-nums;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg,video,picture{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
p{margin:0 0 1em;text-wrap:pretty}
table{font-variant-numeric:lining-nums tabular-nums}
h1,h2,h3,h4{margin:0;font-family:var(--fd);font-weight:600;letter-spacing:-.035em;line-height:1.02;text-wrap:balance}
ul,ol{margin:0;padding:0}
button{font:inherit;color:inherit}
::selection{background:var(--cobalto-claro);color:var(--grafito)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.banda :focus-visible,.pie :focus-visible{outline-color:var(--cad)}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--grafito);color:#fff;padding:12px 16px;border-radius:var(--r);transition:top var(--t) var(--ease)}
.skip:focus{top:12px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:240ms;animation-timing-function:var(--ease)}

/* ── tipografía ───────────────────────────────────────────────────────── */
/* títulos a dos líneas: cada parte es un bloque; la longitud de cada parte se escribe para que quepa */
.t-l,.t-in{display:block}
.h1{font-size:var(--t-5);font-weight:700;line-height:1;letter-spacing:-.045em}
/* jerarquía por color: la segunda línea de cada h1 y h2 va en el azul de la marca (sobre grafito, el azul aclarado);
   la jerarquía entre niveles la da el tamaño (≈1,4 por salto) y el peso (h1 700, h2 600) */
.h1 .t-l+.t-l,.h2 .t-l+.t-l,.prosa h2 .t-l+.t-l,.form-ok h2 .t-l+.t-l{color:var(--accent)}
.banda .h1 .t-l+.t-l,.banda .h2 .t-l+.t-l{color:var(--acento-neg)}
.cap-tit .t-l+.t-l{color:var(--muted)}
.h2{font-size:var(--t-3);letter-spacing:-.04em}
.h3{font-size:var(--t-1);line-height:1.2;letter-spacing:-.02em}
.lead{font-size:var(--t-1);line-height:1.5;font-weight:400;color:var(--ink);max-width:56ch}
.muted{color:var(--muted)}
.eti{font:500 12px/1.4 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 18px;
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.eti b{font-weight:500;color:var(--ink)}
.eti .n{color:var(--accent)}
.banda .eti{color:var(--band-muted)}.banda .eti b{color:var(--on-band)}.banda .eti .n{color:var(--cad)}
.mono{font-family:var(--fm);font-size:.88em;letter-spacing:.02em}
.num{font-variant-numeric:lining-nums tabular-nums}
.prosa{max-width:68ch}
.prosa h2{font-size:var(--t-2);line-height:1.08;margin:1.6em 0 .5em}
.prosa h3{font-size:var(--t-1);letter-spacing:-.02em;line-height:1.25;margin:1.5em 0 .4em}
.prosa ul,.prosa ol{padding-left:1.2em;margin:0 0 1.1em}
.prosa li{margin:.3em 0}
.prosa blockquote{margin:1.6em 0;padding:4px 0 4px 20px;border-left:2px solid var(--accent)}
.prosa blockquote p{font:500 var(--t-1)/1.35 var(--fd);letter-spacing:-.015em;margin:0 0 .4em}
.prosa blockquote cite{font:500 12px/1.4 var(--fm);letter-spacing:.06em;color:var(--muted);font-style:normal}
.prosa a{color:var(--accent)}
.prosa table{width:100%;border-collapse:collapse;margin:1em 0 1.4em;font-size:15px}
.prosa th,.prosa td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.prosa th{font:500 11px/1.3 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.fuentes{margin-top:2.4em;padding-top:18px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.fuentes ol{padding-left:1.2em}.fuentes li{margin:.35em 0}
.fuentes a{color:var(--muted)}

/* ── estructura ───────────────────────────────────────────────────────── */
.in{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.sec{padding:clamp(64px,8vw,120px) 0;position:relative}
.sec.t{padding-top:clamp(40px,5vw,72px)}
.sec.blanco{background:var(--surface)}
.sec.realzado{background:var(--raised)}
.banda{background:var(--band);color:var(--on-band)}
.banda .muted{color:var(--band-muted)}
.reticula{background-image:linear-gradient(color-mix(in srgb,var(--linea) 70%,transparent) 1px,transparent 1px),
  linear-gradient(90deg,color-mix(in srgb,var(--linea) 70%,transparent) 1px,transparent 1px);
  background-size:32px 32px;background-position:-1px -1px}
.banda.reticula{background-image:linear-gradient(var(--line-band) 1px,transparent 1px),linear-gradient(90deg,var(--line-band) 1px,transparent 1px)}
.cab-sec{display:grid;gap:18px 48px;grid-template-columns:minmax(0,1fr);margin-bottom:clamp(36px,4vw,56px)}

.cab-sec p{max-width:60ch;margin:0}
@media (min-width:1100px){.cab-sec.lado{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:end}}
.rejilla{display:grid;gap:clamp(16px,2vw,24px)}

/* línea de cota: separador de plano con trazos de extremo y rótulo */
.cota{display:flex;align-items:center;gap:12px;font:500 11px/1 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 28px}
.cota::before,.cota::after{content:"";height:1px;background:var(--line);flex:1;
  box-shadow:inset 1px 0 0 var(--muted)}
.cota::before{max-width:40px;flex:none;width:40px}
.banda .cota{color:var(--band-muted)}.banda .cota::before,.banda .cota::after{background:var(--line-band)}

/* ── botones ──────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 20px;border-radius:var(--r);
  font:600 15px/1.2 var(--ft);letter-spacing:.005em;text-decoration:none;white-space:nowrap;cursor:pointer;border:1.5px solid transparent;
  transition:background-color var(--t) var(--ease),color var(--t) var(--ease),border-color var(--t) var(--ease),transform 120ms var(--ease)}
.btn:active{transform:translateY(1px)}
.btn svg{width:16px;height:16px;flex:none;transition:transform var(--t) var(--ease)}
.btn-1{background:var(--accent);color:var(--on-accent)}
.btn-1:hover{background:var(--cobalto-h)}
.btn-1:hover svg{transform:translateX(3px)}
.btn-2{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-2:hover{background:var(--ink);color:var(--niebla)}
.banda .btn-2{border-color:var(--on-band);color:var(--on-band)}
.banda .btn-2:hover{background:var(--on-band);color:var(--grafito)}
.btn-3{color:var(--accent);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;min-height:44px;display:inline-flex;align-items:center;gap:8px}
.btn-3:hover{text-decoration-thickness:2px}
.btn-3 svg,.btn svg{width:16px;height:16px;flex:none}
.banda .btn-3{color:var(--cad)}
.ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* sello de constancia verificada (verde solo aquí) */
.sello{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--surface);font:500 12px/1.4 var(--fm);letter-spacing:.04em;color:var(--ink);text-decoration:none}
.sello b{color:var(--verificado);font-weight:500;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.sello b svg{width:14px;height:14px}
a.sello:hover{border-color:var(--ink)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font:500 12px/1.4 var(--fm);letter-spacing:.04em;color:var(--muted);background:var(--surface)}
.chip.pend{border-style:dashed}
.banda .chip{background:transparent;border-color:var(--line-band);color:var(--band-muted)}

/* ── navegación ───────────────────────────────────────────────────────── */
.nav{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--surface) 94%,transparent);transition:background-color var(--t) var(--ease),border-color var(--t) var(--ease);backdrop-filter:saturate(1.4) blur(10px);
  -webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.js .nav.sobre{background:color-mix(in srgb,var(--grafito) 92%,transparent);border-bottom-color:var(--line-band)}
.js .nav.sobre .nav-logo{--logo-tinta:var(--on-band);--logo-acento:var(--acento-neg)}
.js .nav.sobre .nav-links>a,.js .nav.sobre .nav-btn,.js .nav.sobre .nav-tel{color:var(--on-band)}
.js .nav.sobre .nav-links>a:hover,.js .nav.sobre .nav-btn:hover,.js .nav.sobre .nav-btn[aria-expanded=true]{background:color-mix(in srgb,var(--on-band) 10%,transparent)}
.js .nav.sobre .nav-tel:hover{color:var(--cad)}
.js .nav.sobre .nav-toggle{background:transparent;border-color:var(--line-band);color:var(--on-band)}
.js .nav.sobre :focus-visible{outline-color:var(--cad)}
.nav-in{max-width:var(--max);margin:0 auto;padding:0 var(--gut);height:var(--nav-h);display:flex;align-items:center;gap:20px}
.nav-logo{display:block;flex:none;width:156px;--logo-tinta:var(--grafito);--logo-acento:var(--accent)}
.nav-logo .logo{width:100%;height:auto}
.nav-links{display:none;align-items:center;gap:2px;margin-left:auto}
.nav-links>a,.nav-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 11px;border-radius:var(--r);border:0;background:none;
  font:500 15px/1 var(--ft);color:var(--ink);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--t) var(--ease)}
.nav-links>a:hover,.nav-btn:hover,.nav-btn[aria-expanded=true]{background:var(--raised)}
.nav-links>a[aria-current=page],.nav-btn.actual{box-shadow:inset 0 -2px 0 var(--accent);border-radius:var(--r) var(--r) 0 0}
.nav-btn svg{width:12px;height:12px;transition:transform var(--t) var(--ease)}
.nav-btn[aria-expanded=true] svg{transform:rotate(180deg)}
.nav-item{position:relative}
.nav-panel{position:absolute;top:calc(100% + 10px);left:-12px;width:max-content;min-width:560px;max-width:640px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sombra);padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:2px;
  opacity:0;transform:translateY(-4px);visibility:hidden;transition:opacity 180ms var(--ease),transform 180ms var(--ease),visibility 0s 180ms}
.nav-item.abierto .nav-panel{opacity:1;transform:none;visibility:visible;transition:opacity 180ms var(--ease),transform 180ms var(--ease)}
.nav-panel a{display:grid;grid-template-columns:44px 1fr;gap:2px 10px;padding:10px;border-radius:var(--r);text-decoration:none;min-height:44px}
.nav-panel a:hover,.nav-panel a:focus-visible{background:var(--niebla)}
.nav-panel a span{font:500 11px/1.6 var(--fm);letter-spacing:.08em;color:var(--muted)}
.nav-panel a b{font-weight:600;font-size:15px;line-height:1.3;white-space:nowrap}
.nav-panel a small{grid-column:2;color:var(--muted);font-size:13px;line-height:1.35}
.nav-panel .todo{grid-column:1/-1;border-top:1px solid var(--line);margin-top:6px;padding-top:12px;display:flex;font-weight:600;color:var(--accent)}
.nav-tel{display:none;font:500 14px/1 var(--fm);letter-spacing:.02em;text-decoration:none;white-space:nowrap;min-height:44px;align-items:center;padding:0 6px}
.nav-tel:hover{color:var(--accent)}
.nav-cta{margin-left:auto;min-height:44px;padding:10px 16px;font-size:14px}
.nav-cta .largo{display:none}
.nav-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:44px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);cursor:pointer;font:500 14px var(--ft)}
.nav-toggle i{display:block;width:16px;height:1.5px;background:currentColor;position:relative;transition:transform var(--t) var(--ease)}
.nav-toggle i::before,.nav-toggle i::after{content:"";position:absolute;left:0;width:16px;height:1.5px;background:currentColor;transition:transform var(--t) var(--ease)}
.nav-toggle i::before{top:-5px}.nav-toggle i::after{top:5px}
.nav-toggle[aria-expanded=true] i{background:transparent}
.nav-toggle[aria-expanded=true] i::before{transform:translateY(5px) rotate(45deg)}
.nav-toggle[aria-expanded=true] i::after{transform:translateY(-5px) rotate(-45deg)}
.menu-movil{position:fixed;inset:var(--nav-h) 0 0 0;background:var(--niebla);overflow-y:auto;overscroll-behavior:contain;padding:12px var(--gut) 40px;z-index:39}
.menu-movil[hidden]{display:none}
.menu-movil details{border-bottom:1px solid var(--line)}
.menu-movil summary{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:56px;font:600 20px/1.2 var(--fd);letter-spacing:-.02em;cursor:pointer}
.menu-movil summary::-webkit-details-marker{display:none}
.menu-movil summary::after{content:"+";font:400 22px var(--fm);color:var(--muted)}
.menu-movil details[open] summary::after{content:"−"}
.menu-movil details a{display:flex;justify-content:space-between;align-items:center;min-height:48px;text-decoration:none;font-size:16px;border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.menu-movil details a span{font:500 11px var(--fm);letter-spacing:.1em;color:var(--muted)}
.menu-movil>a{display:flex;align-items:center;min-height:56px;border-bottom:1px solid var(--line);font:600 20px/1.2 var(--fd);letter-spacing:-.02em;text-decoration:none}
.menu-movil .pie-menu{margin-top:28px;display:grid;gap:12px}
.menu-movil .pie-menu .btn{width:100%}
.menu-movil .pie-menu p{font:500 12px/1.5 var(--fm);letter-spacing:.06em;color:var(--muted);margin:8px 0 0}
body.menu-abierto{overflow:hidden}
@media (min-width:600px){.nav-cta .largo{display:inline}.nav-cta .corto{display:none}}
@media (min-width:1240px){.nav-links{display:flex}.nav-toggle,.menu-movil{display:none!important}.nav-cta{margin-left:8px}.nav-logo{width:170px}}
@media (min-width:1440px){.nav-tel{display:inline-flex}}
@media (max-width:420px){.nav-logo{width:132px}.nav-in{gap:10px}.nav-toggle span{display:none}}

/* ── hero de la home: plano → obra, a sangre sobre grafito ─────────────── */
/* Sin cajas: la lámina ocupa todo el ancho; el cajetín es una línea de lectura y los pasos, un riel de progreso.
   --fy: punto focal vertical de la lámina · --sal: salida del texto (0 → 1, escritorio) · --avance: llenado del riel */
.hero{position:relative;background:var(--grafito);color:var(--on-band);--fy:.7;--sal:0;--avance:1}
.hero-recorrido{position:relative;height:300vh}
.hero-fijo{position:relative;height:100%}
.hero-in{height:100%;max-width:var(--max);margin:0 auto;padding:clamp(28px,5vw,52px) var(--gut) 0}
.hero-txt{position:relative;z-index:2;max-width:640px;margin-bottom:clamp(28px,4vw,40px);container-type:inline-size}
/* el h1 de la portada se mide contra su columna: «before installed.» tiene que caber en una línea */
.hero-txt .h1{margin:0 0 24px;font-size:min(var(--t-5),13.6cqi);color:var(--on-band)}
.hero-txt .lead{margin:0 0 30px;color:color-mix(in srgb,var(--on-band) 80%,var(--grafito))}
.hero-sello{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;width:fit-content;min-height:44px;margin-top:18px;
  font:500 12px/1.4 var(--fm);letter-spacing:.04em;color:var(--band-muted);text-decoration:none;transition:color var(--t) var(--ease)}
.hero-sello b{display:inline-flex;align-items:center;gap:6px;color:var(--intrusion);font-weight:500;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}
.hero-sello b svg{width:14px;height:14px}
.hero-sello:hover{color:var(--on-band)}
.hero-hoja{position:sticky;top:var(--nav-h);z-index:1;min-height:calc(100svh - var(--nav-h));margin:0 calc(var(--gut) * -1);padding:12px 0 18px;
  display:flex;flex-direction:column;justify-content:flex-start;background:var(--grafito)}
.marco{position:relative;order:0;height:min(74.875vw,calc(100svh - var(--nav-h) - 170px));min-height:240px;overflow:hidden;container-type:size;background:var(--grafito);isolation:isolate}
/* la lámina conserva su proporción (1600 × 1198) y cubre el marco: foto, plano y capas quedan alineados siempre */
.lienzo{position:absolute;--w:max(100cqw,133.556cqh);--h:calc(var(--w) * .74875);width:var(--w);height:var(--h);
  left:calc((100cqw - var(--w)) / 2);top:calc((100cqh - var(--h)) * var(--fy));transform-origin:60% 62%}
.lienzo picture,.lienzo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.marco::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(14,17,22,.4) 0,rgba(14,17,22,0) 20%),linear-gradient(0deg,rgba(14,17,22,.5) 0,rgba(14,17,22,0) 24%)}
.h-foto{position:absolute;inset:0;overflow:hidden}
.js .h-foto{clip-path:inset(0 100% 0 0)}
.h-foto-in{position:absolute;inset:0}
.h-scan{position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--cad);box-shadow:0 0 0 1px rgba(14,17,22,.25);opacity:0}
.h-scan span{position:absolute;top:50%;left:10px;font:500 10px/1 var(--fm);letter-spacing:.14em;color:var(--grafito);background:var(--cad);padding:5px 7px;border-radius:3px;white-space:nowrap}
.h-capas{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.h-capas .cono{fill:var(--cono);stroke:var(--cono-borde);stroke-width:1.5;vector-effect:non-scaling-stroke}
.h-capas .cam{fill:var(--blanco);stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}
.h-capas .cam-c{fill:var(--accent)}
.h-capas .acc{fill:var(--blanco);stroke:var(--grafito);stroke-width:2;vector-effect:non-scaling-stroke}
.h-capas .acc-c{fill:var(--accent)}
.h-capas .ruta{fill:none;stroke:var(--blanco);stroke-width:2;stroke-dasharray:6 6;vector-effect:non-scaling-stroke}
.h-capas .peri{fill:none;stroke:var(--intrusion);stroke-width:3;stroke-dasharray:10 6;vector-effect:non-scaling-stroke}
.h-capas .ctc{fill:var(--grafito);stroke:var(--intrusion);stroke-width:2;vector-effect:non-scaling-stroke}
.h-capas .tag rect{fill:var(--grafito);stroke:none}
.h-capas .tag text{font:500 19px var(--fm);letter-spacing:.06em;fill:var(--niebla)}
.h-capas .tag.v rect{fill:var(--accent)}
.h-capas .tag.i rect{fill:var(--verificado)}
.h-capas [data-capa]{opacity:0}
/* cajetín: una línea de lectura, sin recuadros */
.hero-hoja .cajetin{order:1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 22px;margin:0;padding:14px var(--gut) 0;
  font:500 11px/1.3 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}
.cajetin small{font-size:inherit;color:var(--band-muted);margin-right:4px}
.cajetin strong{font-weight:500;color:var(--on-band)}
.cajetin .estado{display:inline-flex;align-items:center;gap:8px}
.cajetin .estado i{width:7px;height:7px;border-radius:50%;background:var(--cad)}
.cajetin .estado strong{color:var(--cad)}
.cajetin .estado.ok i{background:var(--intrusion)}
.cajetin .estado.ok strong{color:var(--intrusion)}
/* pasos: riel de progreso con cinco marcas */
.hero-riel{order:2;position:relative;margin:14px var(--gut) 0}
.h-pasos{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0}
.h-pasos li{position:relative}
.h-pasos li::before{content:"";position:absolute;left:0;top:-4px;width:1px;height:9px;background:color-mix(in srgb,var(--on-band) 34%,transparent);transition:background-color var(--t) var(--ease)}
.h-pasos li:has(> [aria-current=step])::before{background:var(--cad)}
.h-pasos button{width:100%;min-height:48px;display:flex;align-items:center;gap:10px;padding:12px 8px 4px 0;border:0;background:none;cursor:pointer;text-align:left;
  font:500 11px/1.2 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted);transition:color var(--t) var(--ease)}
.h-pasos button span{opacity:.55}
.h-pasos button b{font-weight:500;white-space:nowrap}
.h-pasos button:hover,.h-pasos button[aria-current=step]{color:var(--on-band)}
.h-pasos button[aria-current=step] span{color:var(--cad);opacity:1}
.riel{position:absolute;left:0;right:0;top:0;height:1px;background:var(--line-band);pointer-events:none}
.riel i{position:absolute;inset:0;background:var(--cad);transform-origin:0 50%;transform:scaleX(var(--avance))}
/* nota de la etapa: en la letra de los títulos, más chica; el nombre de la etapa en azul, como la segunda línea del h1 */
.hero-info{display:contents}
.hero-hoja .h-nota{order:3;margin:12px var(--gut) 0;max-width:62ch;min-height:7.4em;font:500 16px/1.4 var(--fd);letter-spacing:-.01em;
  color:color-mix(in srgb,var(--on-band) 90%,var(--grafito))}
.h-nota b{display:block;margin-bottom:4px;font:700 22px/1.1 var(--fd);letter-spacing:-.03em;color:var(--acento-neg)}
.hero-pista{display:none;align-items:center;gap:10px;margin:0;font:500 11px/1 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--band-muted)}
.hero-pista i{display:block;width:1px;height:28px;background:var(--line-band);position:relative;overflow:hidden}
.hero-pista i::after{content:"";position:absolute;left:0;top:0;width:1px;height:10px;background:var(--on-band);animation:pista 1.8s var(--ease) infinite}
@keyframes pista{from{transform:translateY(-10px)}to{transform:translateY(28px)}}
/* sin JS o con movimiento reducido: queda la obra terminada con todas las capas, quieta, sin recorrido */
html:not(.js) .h-capas [data-capa]{opacity:1}
html:not(.js) .hero-recorrido{height:auto}
html:not(.js) .hero-hoja{position:relative;top:0;min-height:0;padding-top:0}
html:not(.js) .marco{height:min(74.875vw,86vh)}
html:not(.js) .hero{--fy:.6}
@media (prefers-reduced-motion:reduce){
  .hero{--fy:.6}
  .hero-recorrido{height:auto}
  .hero-hoja{position:relative;top:0;min-height:0;padding-top:0}
  .marco{height:min(74.875vw,86vh)}
}
@media (max-width:767px){
  .marco{height:min(88vw,calc(100svh - var(--nav-h) - 190px))}
  .h-capas .tag{display:none}
  .cajetin .c-proy{display:none}
  .cajetin .c-rev{margin-left:auto}
  .h-pasos button{gap:0;padding-right:4px;font-size:9.5px;letter-spacing:.06em}
  .h-pasos button span{display:none}
}
@media (max-width:1099px) and (max-height:620px){.hero-hoja{position:relative;top:0;min-height:0}}
/* escritorio con movimiento: escenario fijo a pantalla completa; el texto se retira al empezar el recorrido */
@media (min-width:1100px) and (prefers-reduced-motion:no-preference){
  .js .hero-recorrido{height:340vh}
  .js .hero-fijo{position:sticky;top:var(--nav-h);height:calc(100dvh - var(--nav-h));min-height:600px;overflow:hidden;
    --borde:max(var(--gut),calc((100% - var(--max)) / 2 + var(--gut)))}
  .js .hero-in{height:100%;display:flex;align-items:center;padding:0 var(--gut) 96px}
  .js .hero-txt .lead{max-width:600px}
  .js .hero-txt{width:100%;max-width:min(700px,48vw);margin:0;opacity:calc(1 - var(--sal) * 1.7);transform:translate3d(0,calc(var(--sal) * -56px),0)}
  .js .hero.salio .hero-txt{visibility:hidden}
  .js .hero-hoja{position:absolute;inset:0;z-index:0;min-height:0;margin:0;padding:0;display:block}
  .js .marco{position:absolute;inset:0;height:auto;min-height:0}
  .js .marco::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:calc(1 - var(--sal) * .94);
    background:linear-gradient(90deg,rgba(14,17,22,.95) 0,rgba(14,17,22,.9) 36%,rgba(14,17,22,.6) 50%,rgba(14,17,22,0) 70%)}
  .js .marco::after{background:linear-gradient(180deg,rgba(14,17,22,.6) 0,rgba(14,17,22,0) 16%),
    radial-gradient(50% 36% at 100% 100%,rgba(14,17,22,.8) 0,rgba(14,17,22,0) 100%),radial-gradient(42% 26% at 0 100%,rgba(14,17,22,.6) 0,rgba(14,17,22,0) 100%),
    linear-gradient(0deg,rgba(14,17,22,.9) 0,rgba(14,17,22,.55) 9%,rgba(14,17,22,0) 22%)}
  /* la ficha del plano y la nota de la etapa van juntas en un panel translúcido, para leerse sobre el plano y sobre la foto */
  /* ocupa el lugar que deja el título al retirarse: a la izquierda, a media altura, donde no tapa ningún dispositivo */
  .js .hero-info{display:block;position:absolute;left:var(--borde);top:calc(50% - 6px);z-index:3;width:min(410px,34vw);padding:16px 20px 20px;
    transform:translate3d(0,calc(-50% + (1 - var(--sal)) * 28px),0);
    background:rgba(14,17,22,.6);-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);
    border:1px solid rgba(245,247,250,.14);border-radius:var(--r);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 40px -20px rgba(0,0,0,.6);opacity:calc(var(--sal) * 2.5 - 1.5)}
  .js .hero-hoja .cajetin{gap:4px 16px;margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid rgba(245,247,250,.14);font-size:10.5px;letter-spacing:.1em}
  .js .hero-riel{position:absolute;left:var(--borde);right:var(--borde);bottom:12px;z-index:3;margin:0}
  .js .hero-hoja .h-nota{margin:0;max-width:none;min-height:0;font-size:18px;line-height:1.38;color:var(--on-band)}
  .js .h-nota b{margin-bottom:6px;font-size:28px}
  .js .hero-pista{position:absolute;right:var(--borde);bottom:92px;z-index:3;display:flex;opacity:calc(1 - var(--sal) * 2.5)}
}

/* ── franja de prueba inmediata (debajo del hero) ─────────────────────── */
.prueba{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.prueba-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.prueba-in>div{padding:28px clamp(16px,2vw,28px);border-left:1px solid var(--line)}
.prueba-in>div:first-child{border-left:0;padding-left:0}
.prueba .n{font:600 var(--t-4)/1 var(--fd);letter-spacing:-.04em;color:var(--cifra);margin:0 0 8px}
.prueba .n.mono-n{font:500 var(--t-2)/1.1 var(--fm);letter-spacing:.01em;color:var(--ink)}
.prueba .l{font-weight:600;margin:0 0 4px;line-height:1.35}
.prueba .f{font:500 11px/1.45 var(--fm);letter-spacing:.06em;color:var(--muted);margin:0}
.prueba .f a{color:inherit}
@media (max-width:1099px){.prueba-in{grid-template-columns:repeat(2,minmax(0,1fr))}.prueba-in>div:nth-child(3){border-left:0;padding-left:0}.prueba-in>div:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:599px){.prueba-in{grid-template-columns:minmax(0,1fr)}.prueba-in>div{border-left:0;padding-left:0}.prueba-in>div+div{border-top:1px solid var(--line)}}

/* ── libro de contratos (tabla que se vuelve fichas en móvil) ─────────── */
.libro{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:15px}
.libro th{font:500 11px/1.3 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:left;padding:14px 16px;background:var(--niebla);border-bottom:1px solid var(--line);white-space:nowrap}
.libro td{padding:16px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.45}
.libro tr:last-child td{border-bottom:0}
.libro .ent{font-weight:600}
.libro .ent small{display:block;font-weight:400;color:var(--muted);font-size:14px;margin-top:2px}
.libro .sol{font:500 13px/1.4 var(--fm);letter-spacing:.02em;white-space:nowrap}
.libro .ver{white-space:nowrap}
.libro .ver a{font:500 12px/1.3 var(--fm);letter-spacing:.06em;color:var(--verificado);text-decoration:none;display:inline-flex;gap:6px;align-items:center;min-height:32px}
.libro .ver a:hover{text-decoration:underline}
.libro .ver svg{width:14px;height:14px;flex:none}
svg{flex-shrink:0}
.libro tbody tr{transition:background-color var(--t) var(--ease)}
.libro tbody tr:hover{background:color-mix(in srgb,var(--cobalto-claro) 45%,transparent)}
.libro .caso{font-weight:600;color:var(--accent);font-size:14px}
@media (max-width:899px){
  .libro,.libro tbody,.libro tr,.libro td{display:block;width:100%}
  .libro thead{display:none}
  .libro{border:0;background:none}
  .libro tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;padding:6px 0}
  .libro td{border:0;padding:8px 16px;display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px}
  .libro td::before{content:attr(data-th);font:500 10.5px/1.6 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .libro .sol{white-space:normal}
}

/* ── hoja (tarjeta con aspecto de lámina) ─────────────────────────────── */
.hoja-c{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(20px,2.4vw,32px);position:relative}
.hoja-c .tag{position:absolute;top:0;right:0;font:500 10.5px/1 var(--fm);letter-spacing:.14em;color:var(--muted);padding:8px 10px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0 var(--r) 0 var(--r)}
.hoja-c h3{margin:0 0 10px}
.hoja-c p:last-child{margin-bottom:0}
.banda .hoja-c{background:var(--grafito-2);border-color:var(--line-band)}
.banda .hoja-c .tag{border-color:var(--line-band);color:var(--band-muted)}

/* ── método: pasos con entregables ────────────────────────────────────── */
.pasos{list-style:none;counter-reset:p;display:grid;gap:0;border-top:1px solid var(--line)}
.paso{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(0,1fr);gap:16px 32px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start}
.paso .k{font:500 12px/1.6 var(--fm);letter-spacing:.14em;color:var(--accent)}
.paso h3{margin:0 0 8px}
.paso p{margin:0;color:var(--muted)}
.paso .ent{margin:0;list-style:none;display:grid;gap:8px}
.paso .ent li{display:grid;grid-template-columns:18px 1fr;gap:8px;font-size:15px;line-height:1.45}
.paso .ent li::before{content:"";width:10px;height:10px;margin-top:6px;border:1.5px solid var(--ink);border-radius:2px}
.banda .pasos,.banda .paso{border-color:var(--line-band)}
.banda .paso p{color:var(--band-muted)}
.banda .paso .k{color:var(--cad)}
.banda .paso .ent li::before{border-color:var(--cad)}
@media (max-width:899px){.paso{grid-template-columns:56px minmax(0,1fr)}.paso .ent{grid-column:2}}

/* ── antes / después ──────────────────────────────────────────────────── */
.ad{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,4vw,64px);align-items:center}
.ad-comp{position:relative;aspect-ratio:3/4;max-height:78vh;border-radius:var(--r);overflow:hidden;background:var(--grafito);user-select:none;touch-action:pan-y;--x:50%;justify-self:center;width:100%;max-width:560px}
.ad-comp picture,.ad-comp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ad-comp .antes{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--x)) 0 0)}
.ad-comp .rot{position:absolute;bottom:14px;font:500 11px/1 var(--fm);letter-spacing:.14em;text-transform:uppercase;padding:7px 9px;border-radius:3px;background:rgba(14,17,22,.82);color:#fff;pointer-events:none}
.ad-comp .rot.a{left:14px}.ad-comp .rot.d{right:14px;background:var(--accent)}
@media (max-width:519px){.ad-comp .rot .lg{display:none}}
.ad-comp .linea{position:absolute;top:0;bottom:0;left:var(--x);width:2px;margin-left:-1px;background:#fff;pointer-events:none}
.ad-comp .tirador{position:absolute;top:50%;left:var(--x);width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:#fff;box-shadow:0 2px 12px rgba(14,17,22,.35);display:grid;place-items:center;pointer-events:none}
.ad-comp .tirador svg{width:22px;height:22px}
.ad-comp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ad-comp input:focus-visible~.tirador{outline:2px solid var(--accent);outline-offset:3px}
@media (max-width:899px){.ad{grid-template-columns:minmax(0,1fr)}.ad-comp{max-height:none}}

/* ── plano por capas (interacción insignia) ───────────────────────────── */
.plano{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:clamp(20px,2.4vw,36px);align-items:start}
.plano-svg{background:var(--grafito);border-radius:var(--r);border:1px solid var(--line-band);overflow:hidden}
.plano-svg svg{width:100%;height:auto}
/* planta 3D (kie) debajo del plano: misma caja que el SVG; se oscurece y enfría para que las capas manden */
.plano.plano-3d .plano-svg{position:relative}
.plano.plano-3d .plano-svg picture{position:absolute;inset:0}
.plano.plano-3d .plano-svg picture img{width:100%;height:100%;object-fit:fill;filter:saturate(.78) brightness(.74) contrast(1.05)}
.plano.plano-3d .plano-svg svg{position:relative}
.plano.plano-3d .f{fill:none}
.plano.plano-3d .m{stroke:color-mix(in srgb,var(--cad) 55%,transparent);stroke-width:1.2}
.plano.plano-3d .m2{stroke:rgba(245,247,250,.35)}
.plano.plano-3d .tx{fill:#F5F7FA;stroke:rgba(14,17,22,.85);stroke-width:3px;paint-order:stroke;stroke-linejoin:round}
.plano.plano-3d .cono{fill:rgba(0,72,177,.5);stroke:var(--cono-borde);stroke-width:1.4}
.plano .f{fill:var(--grafito)}
.plano .m{fill:none;stroke:var(--cad);stroke-width:1.6}
.plano .m2{fill:none;stroke:#5C6B80;stroke-width:1}
.plano .tx{font:500 10px var(--fm);fill:#9AA5B4;letter-spacing:.12em}
.plano .txc{font:500 9px var(--fm);fill:#F5F7FA;letter-spacing:.08em}
.plano [data-l]{transition:opacity 240ms var(--ease)}
.plano [data-l].off{opacity:0}
.plano .cono{fill:var(--cono);stroke:var(--cono-borde);stroke-width:1}
.plano .d{fill:#F5F7FA}
.plano .ac{fill:none;stroke:#F5F7FA;stroke-width:2}
.plano .pir{fill:rgba(10,125,87,.25);stroke:#3CC48F;stroke-dasharray:4 3}
.plano .d2{fill:#3CC48F}
.plano .ic{fill:none;stroke:var(--cad);stroke-width:1.6}
.capas-btn{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.capas-btn button{display:inline-flex;align-items:center;gap:8px;font:500 12px/1 var(--fm);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line-band);background:transparent;color:var(--on-band);border-radius:var(--r);padding:10px 14px;min-height:44px;cursor:pointer;transition:background-color var(--t) var(--ease),border-color var(--t) var(--ease)}
.capas-btn button i{width:10px;height:10px;border-radius:2px;border:1.5px solid currentColor}
.capas-btn button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.capas-btn button[aria-pressed=true] i{background:#fff;border-color:#fff}
.capas-btn button:hover{border-color:var(--on-band)}
.cuadro{border:1px solid var(--line-band);border-radius:var(--r);font-size:14px;overflow:hidden}
.cuadro .cab{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line-band);font:500 11px/1.3 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}
.cuadro table{width:100%;border-collapse:collapse}
.cuadro td{padding:10px 14px;border-bottom:1px solid var(--line-band);vertical-align:top}
.cuadro tr:last-child td{border-bottom:0}
.cuadro td:first-child{font:500 12px/1.5 var(--fm);letter-spacing:.06em;color:var(--cad);white-space:nowrap;width:1%}
.cuadro td:last-child{text-align:right;font:500 13px/1.5 var(--fm);white-space:nowrap}
.cuadro tr{transition:opacity 240ms var(--ease)}
.cuadro tr.off{opacity:.28}
.cuadro .tot{display:flex;justify-content:space-between;padding:12px 14px;border-top:1px solid var(--line-band);font:500 12px/1.3 var(--fm);letter-spacing:.1em;text-transform:uppercase}
.cuadro .tot b{font-weight:500;color:var(--cad)}
.plano-nota{font-size:13.5px;color:var(--band-muted);margin:14px 0 0;line-height:1.5}
@media (max-width:1099px){.plano{grid-template-columns:minmax(0,1fr)}}

/* ── compradores (bloques asimétricos con foto real) ──────────────────── */
.compradores{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.comp{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;
  transition:border-color var(--t) var(--ease),transform var(--t) var(--ease)}
.comp:hover{border-color:var(--ink)}
.comp:active{transform:translateY(1px)}
.comp figure{margin:0;position:relative;overflow:hidden;background:var(--raised)}
.comp figure img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease)}
.comp:hover figure img{transform:scale(1.03)}
.comp .txt{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.comp .txt .k{font:500 11px/1.3 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.comp h3{font-size:var(--t-1);line-height:1.15}
.comp p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.5}
.comp .ir{margin-top:auto;padding-top:10px;font-weight:600;color:var(--accent);display:inline-flex;align-items:center;gap:8px;font-size:15px}
.comp .ir svg{width:15px;height:15px;transition:transform var(--t) var(--ease)}
.comp:hover .ir svg{transform:translateX(3px)}
.comp.a{grid-column:span 7}.comp.b{grid-column:span 5}.comp.c{grid-column:span 5}.comp.d{grid-column:span 7}
.comp.a figure,.comp.d figure{aspect-ratio:16/9}.comp.b figure,.comp.c figure{aspect-ratio:4/3}
.comp .dib{aspect-ratio:16/9;background:var(--grafito);display:grid;place-items:center;padding:8%}
.comp .dib svg{width:100%;height:auto}
@media (max-width:899px){.comp.a,.comp.b,.comp.c,.comp.d{grid-column:1/-1}.comp figure{aspect-ratio:16/10!important}}

/* ── objeciones (acordeón) ────────────────────────────────────────────── */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:16px;align-items:center;padding:22px 0;min-height:56px;
  font:600 var(--t-1)/1.3 var(--fd);letter-spacing:-.015em}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{width:28px;height:28px;border:1px solid var(--line);border-radius:var(--r);position:relative;transition:background-color var(--t) var(--ease),border-color var(--t) var(--ease)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;margin:-.75px 0 0 -6px;background:currentColor;transition:transform var(--t) var(--ease)}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i{background:var(--ink);color:var(--niebla);border-color:var(--ink)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq summary:hover i{border-color:var(--ink)}
.faq .r{padding:0 44px 24px 0;max-width:72ch;color:var(--ink)}
.faq .r p:last-child{margin-bottom:0}
.faq .r .ref{font:500 11px/1.5 var(--fm);letter-spacing:.06em;color:var(--muted);margin-top:10px}
.faq .r .ref a{color:inherit}
.faq-lado{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(28px,4vw,72px);align-items:start}
.faq-lado .cab-sec{position:sticky;top:calc(var(--nav-h) + 32px)}
@media (max-width:1099px){.faq-lado{grid-template-columns:minmax(0,1fr)}.faq-lado .cab-sec{position:static}}

/* ── lista editorial (artículos, casos) ───────────────────────────────── */
.lista-ed{border-top:1px solid var(--line)}
.lista-ed a{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:8px 28px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;
  transition:padding-left var(--t) var(--ease)}
.lista-ed a:hover{padding-left:8px}
.lista-ed .k{font:500 11px/1.6 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.lista-ed h3{font-size:var(--t-1);line-height:1.2}
.lista-ed p{grid-column:2;margin:4px 0 0;color:var(--muted);font-size:15.5px;max-width:70ch}
.lista-ed .ir{font-weight:600;color:var(--accent);font-size:14px;white-space:nowrap}
@media (max-width:767px){.lista-ed a{grid-template-columns:minmax(0,1fr)}.lista-ed p{grid-column:1}.lista-ed .ir{display:none}}

/* ── banda de llamado final ───────────────────────────────────────────── */
.cta-final{position:relative;overflow:hidden;isolation:isolate}
.cta-final>.in{position:relative;z-index:1}
/* fondo con profundidad: la retícula del plano se vuelve un piso que se aleja hacia un horizonte con luz cobalto */
.cta-fondo{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;perspective:620px;perspective-origin:50% 26%;
  background:radial-gradient(70% 55% at 50% 28%,rgba(0,72,177,.34) 0,rgba(0,72,177,.1) 45%,rgba(0,72,177,0) 75%)}
.cta-fondo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,var(--grafito) 0,rgba(14,17,22,.7) 14%,rgba(14,17,22,0) 36%),
    linear-gradient(90deg,rgba(14,17,22,.55) 0,rgba(14,17,22,0) 30%,rgba(14,17,22,0) 70%,rgba(14,17,22,.55) 100%)}
.cta-fondo .piso{position:absolute;left:-70%;right:-70%;bottom:0;height:300%;transform-origin:50% 100%;transform:rotateX(78deg);overflow:hidden;
  -webkit-mask-image:linear-gradient(0deg,#000 0,#000 30%,transparent 82%);mask-image:linear-gradient(0deg,#000 0,#000 30%,transparent 82%)}
.cta-fondo .piso i{position:absolute;left:0;right:0;top:-72px;bottom:0;
  background-image:linear-gradient(color-mix(in srgb,var(--acento-neg) 52%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--acento-neg) 52%,transparent) 1px,transparent 1px);
  background-size:72px 72px;background-position:50% 0;animation:piso 7s linear infinite}
@keyframes piso{to{transform:translateY(72px)}}
@media (prefers-reduced-motion:reduce){.cta-fondo .piso i{animation:none}}
.cta-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,72px);align-items:end}

.cta-datos{display:grid;gap:0;border-top:1px solid var(--line-band)}
.cta-datos>*{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line-band);text-decoration:none}
.cta-datos span{font:500 11px/1.6 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}
.cta-datos b{font-weight:500;overflow-wrap:anywhere}
@media (max-width:519px){.cta-datos>*{grid-template-columns:84px minmax(0,1fr)}}
.cta-datos a:hover b{color:var(--cad)}
@media (max-width:899px){.cta-grid{grid-template-columns:minmax(0,1fr)}}

/* ── pie ──────────────────────────────────────────────────────────────── */
.pie{background:var(--grafito);color:var(--on-band);padding:clamp(56px,6vw,88px) 0 28px;font-size:15px;--logo-tinta:#FFFFFF;--logo-acento:var(--acento-neg)}
.pie-top{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(4,minmax(0,1fr));gap:36px 28px;padding-bottom:44px;border-bottom:1px solid var(--line-band)}
.pie .logo{width:190px;height:auto;margin-bottom:22px}
.pie p{color:var(--band-muted);margin:0 0 10px;max-width:36ch}
.pie .pie-t{font:500 11px/1.4 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--band-muted);margin:0 0 14px}
.pie ul{list-style:none;display:grid;gap:2px}
.pie li a{display:inline-flex;align-items:center;min-height:36px;text-decoration:none;color:var(--on-band);white-space:nowrap}
.pie li a:hover{color:var(--cad)}
.pie-lic{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line-band);font:500 12px/1.5 var(--fm);letter-spacing:.06em}
.pie-lic a{color:var(--on-band)}
.pie-lic span{color:var(--band-muted)}
.pie-bajo{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 28px;padding-top:22px;font-size:13px;color:var(--band-muted)}
.pie-bajo a{color:var(--band-muted);text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.pie-bajo a:hover{color:var(--on-band)}
.pie-bajo nav{display:flex;flex-wrap:wrap;gap:4px 20px}
.pie .pie-der{margin:0;max-width:none}
.pie-der span{display:inline-block;margin-right:18px}
.pie-der span+span{white-space:nowrap}
@media (max-width:1099px){.pie-top{grid-template-columns:repeat(2,minmax(0,1fr))}.pie-top>div:first-child{grid-column:1/-1}}
@media (max-width:479px){.pie-top{grid-template-columns:minmax(0,1fr)}}

/* ── cabecera de páginas internas ─────────────────────────────────────── */
.cab-pag{padding:clamp(40px,6vw,88px) 0 clamp(40px,5vw,72px);border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.cab-pag .in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,4vw,64px);align-items:end}
.cab-pag.sola .in{grid-template-columns:minmax(0,1fr)}
.cab-pag .h1{font-size:var(--t-4);margin:0 0 20px}
.cab-pag .lead{margin:0 0 28px}
.cab-pag .lead:last-child{margin-bottom:0}
.migas{display:flex;flex-wrap:wrap;gap:6px 10px;font:500 11px/1.6 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 22px;list-style:none}
.migas a{color:var(--muted);text-decoration:none}
.migas a:hover{color:var(--ink);text-decoration:underline}
.migas li+li::before{content:"/";margin-right:10px;color:var(--line)}
.cab-media{margin:0;position:relative}
.cab-media .fr{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--raised)}
.cab-media img{width:100%;height:100%;object-fit:cover}
.cab-media figcaption{font:500 11px/1.5 var(--fm);letter-spacing:.06em;color:var(--muted);margin-top:10px}
.cab-ficha{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);font-size:14.5px}
.cab-ficha dl{margin:0}
.cab-ficha div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
.cab-ficha div:last-child{border-bottom:0}
.cab-ficha dt{font:500 10.5px/1.7 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.cab-ficha dd{margin:0;line-height:1.45}
@media (max-width:1099px){.cab-pag .in{grid-template-columns:minmax(0,1fr);align-items:start}}

/* ── contenido de páginas internas ────────────────────────────────────── */
.dos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,72px);align-items:start}
.dos.pesa-izq{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
.dos.pesa-der{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
@media (max-width:899px){.dos,.dos.pesa-izq,.dos.pesa-der{grid-template-columns:minmax(0,1fr)}}
.alcance{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.alcance li{padding:18px 18px 18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 12px;align-content:start}
.alcance li:nth-child(odd){border-right:1px solid var(--line)}
.alcance li:nth-child(even){padding-left:18px}
.alcance .k{font:500 11px/1.8 var(--fm);letter-spacing:.1em;color:var(--accent)}
.alcance b{font-weight:600;display:block;margin-bottom:2px;line-height:1.35}
.alcance li>span:not(.k){color:var(--muted);font-size:15px;line-height:1.5;grid-column:2}
.alcance .k{grid-column:1;grid-row:1/span 2}
.alcance li>div{grid-column:2}
.alcance.una{grid-template-columns:minmax(0,1fr)}
.alcance.una li{border-right:0;padding-left:0}
@media (max-width:767px){.alcance{grid-template-columns:minmax(0,1fr)}.alcance li{border-right:0!important;padding-left:0!important}}
.espec{width:100%;border-collapse:collapse;font-size:15px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.espec th,.espec td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.45}
.espec th{width:34%;font:500 11px/1.6 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--niebla)}
.espec tr:last-child th,.espec tr:last-child td{border-bottom:0}
@media (max-width:599px){.espec th,.espec td{display:block;width:100%}.espec th{border-bottom:0;padding-bottom:4px}}
.foto-pie{margin:0}
.foto-pie .fr{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--raised)}
.foto-pie img{width:100%;height:100%;object-fit:cover}
.foto-pie figcaption{font:500 11px/1.5 var(--fm);letter-spacing:.06em;color:var(--muted);margin-top:10px}
.foto-pie figcaption b{color:var(--ink);font-weight:500}
.banda .foto-pie figcaption{color:var(--band-muted)}.banda .foto-pie figcaption b{color:var(--on-band)}
.nota-pend{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px dashed var(--line);border-radius:var(--r);background:var(--surface);font-size:14px;color:var(--muted);line-height:1.5;margin:0}
.nota-pend b{font:500 10.5px/1.8 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);white-space:nowrap}
.cita{margin:0;padding:clamp(24px,3vw,36px);border-left:2px solid var(--accent);background:var(--surface);border-radius:0 var(--r) var(--r) 0}
.cita p{font:500 var(--t-1)/1.3 var(--fd);letter-spacing:-.02em;margin:0 0 14px}
.cita footer{font:500 11px/1.5 var(--fm);letter-spacing:.08em;color:var(--muted)}
.banda .cita{background:var(--grafito-2)}.banda .cita footer{color:var(--band-muted)}
.indice-tarj{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,1.6vw,20px)}
.tarj{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;align-items:start;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;
  transition:border-color var(--t) var(--ease),transform 120ms var(--ease)}
.tarj:hover{border-color:var(--ink)}
.tarj:active{transform:translateY(1px)}
.tarj .k{grid-column:1/-1;font:500 11px/1.4 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.tarj h3{font-size:var(--t-1)}
.tarj p{grid-column:1/-1;margin:0;color:var(--muted);font-size:15.5px;line-height:1.5}
.tarj svg.fl{width:20px;height:20px;color:var(--accent);transition:transform var(--t) var(--ease);margin-top:4px}
.tarj:hover svg.fl{transform:translateX(3px)}
.tarj.ancha{grid-column:1/-1}
@media (max-width:767px){.indice-tarj{grid-template-columns:minmax(0,1fr)}}
.rel{display:flex;flex-wrap:wrap;gap:8px}
.rel a{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);text-decoration:none;font-size:15px;font-weight:500}
.rel a:hover{border-color:var(--ink)}

/* ── formularios ──────────────────────────────────────────────────────── */
.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.form-cab{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px clamp(18px,2.4vw,28px);border-bottom:1px solid var(--line);font:500 11px/1.4 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.form-cab>span{white-space:nowrap}
@media (max-width:519px){.form-cab{flex-wrap:wrap;row-gap:10px}.form-cab>span:first-child{flex-basis:100%}}
.form-prog{display:flex;gap:4px}
.form-prog i{width:28px;height:4px;border-radius:2px;background:var(--line);transition:background-color var(--t) var(--ease)}
.form-prog i.ok{background:var(--accent)}
.form-cuerpo{padding:clamp(20px,2.6vw,32px)}
.form fieldset{border:0;margin:0;padding:0;min-width:0}
.form legend{font:600 var(--t-1)/1.25 var(--fd);letter-spacing:-.02em;margin:0 0 6px;padding:0}
.form .ayuda{color:var(--muted);font-size:15px;margin:0 0 22px}
.campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}
.campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.campo.ancho{grid-column:1/-1}
.campo label,.campo .lbl{font-weight:600;font-size:14.5px}
.campo label small,.campo .lbl small{font-weight:400;color:var(--muted)}
.campo input,.campo select,.campo textarea{width:100%;font:16px/1.4 var(--ft);color:var(--ink);background:var(--niebla);border:1.5px solid var(--line);border-radius:var(--r);padding:12px 14px;min-height:48px;
  transition:border-color var(--t) var(--ease),background-color var(--t) var(--ease)}
.campo textarea{min-height:120px;resize:vertical}
.campo select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%23556070' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px;padding-right:40px}
.campo input:hover,.campo select:hover,.campo textarea:hover{border-color:#B8C2CF}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--cobalto-claro)}
.campo .err{display:none;font-size:13.5px;color:#B42318;line-height:1.4}
.campo.mal input,.campo.mal select,.campo.mal textarea{border-color:#B42318;background:#FEF6F5}
.campo.mal .err{display:block}
.campo .hint{font-size:13px;color:var(--muted);line-height:1.4}
.opciones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.opcion{position:relative}
.opcion input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.opcion span{display:flex;flex-direction:column;gap:2px;padding:14px 16px 14px 44px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--niebla);min-height:56px;justify-content:center;position:relative;
  transition:border-color var(--t) var(--ease),background-color var(--t) var(--ease)}
.opcion span::before{content:"";position:absolute;left:16px;top:50%;width:16px;height:16px;margin-top:-8px;border:1.5px solid #8A95A5;border-radius:3px;background:#fff;transition:all var(--t) var(--ease)}
.opcion input[type=radio]+span::before{border-radius:50%}
.opcion b{font-weight:600;font-size:15px;line-height:1.3}
.opcion small{color:var(--muted);font-size:13.5px;line-height:1.35}
.opcion input:checked+span{border-color:var(--accent);background:var(--cobalto-claro)}
.opcion input:checked+span::before{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px #fff}
.opcion input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.opcion:hover span{border-color:#B8C2CF}
.form-pie{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px clamp(20px,2.6vw,32px);border-top:1px solid var(--line);background:var(--niebla)}
.form-pie .legal{font-size:13px;color:var(--muted);margin:0;max-width:52ch;line-height:1.45}
.form-pie .legal a{color:inherit}
.form-pie .ctas{margin-left:auto}
.paso-f[hidden]{display:none}
.form-ok{padding:clamp(28px,4vw,48px);text-align:left}
.form-ok[hidden]{display:none}
.form-ok .marca{width:48px;height:48px;border-radius:50%;background:color-mix(in srgb,var(--verificado) 12%,#fff);color:var(--verificado);display:grid;place-items:center;margin-bottom:18px}
.form-ok .marca svg{width:24px;height:24px}
.form-ok h2{font-size:var(--t-2);line-height:1.08;margin:0 0 10px}
.form-ok p{color:var(--muted);max-width:56ch}
.form-ok ol{list-style:none;display:grid;gap:0;margin:20px 0 24px;border-top:1px solid var(--line);max-width:560px}
.form-ok li{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.form-ok li span{font:500 11px/1.8 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.aviso-demo{font:500 11px/1.5 var(--fm);letter-spacing:.06em;color:var(--muted);margin:14px 0 0}
@media (max-width:599px){.campos,.opciones{grid-template-columns:minmax(0,1fr)}.form-pie .ctas{margin-left:0;width:100%}.form-pie .ctas .btn{flex:1}}

/* ── artículo ─────────────────────────────────────────────────────────── */
.art{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(32px,5vw,88px);align-items:start}
.art-lado{position:sticky;top:calc(var(--nav-h) + 28px);display:grid;gap:18px}
.art-meta{display:flex;flex-wrap:wrap;gap:8px 18px;font:500 11px/1.6 var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.toc{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:16px 18px}
.toc p{font:500 10.5px/1.4 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.toc ol{list-style:none;display:grid;gap:2px;counter-reset:t}
.toc a{display:grid;grid-template-columns:26px 1fr;font-size:14px;line-height:1.4;text-decoration:none;padding:6px 0;color:var(--muted)}
.toc a::before{counter-increment:t;content:counter(t,decimal-leading-zero);font:500 11px/1.7 var(--fm);color:var(--line)}
.toc a:hover,.toc a.actual{color:var(--ink)}
.toc a.actual::before{color:var(--accent)}
.caja-cta{border-radius:var(--r);padding:20px;background:var(--grafito);color:var(--on-band)}
.caja-cta p{color:var(--band-muted);font-size:14.5px;margin:6px 0 16px;line-height:1.5}
.caja-cta strong{font:600 19px/1.25 var(--fd);letter-spacing:-.015em;display:block}
.caja-cta .btn{width:100%}
@media (max-width:1099px){.art{grid-template-columns:minmax(0,1fr)}.art-lado{position:static;grid-template-columns:minmax(0,1fr)}}

/* ── capability statement (imprimible) ────────────────────────────────── */
.cap-hoja{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(24px,4vw,48px);max-width:1000px;margin:0 auto}
.cap-cab{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding-bottom:22px;border-bottom:2px solid var(--grafito);margin-bottom:24px;--logo-tinta:var(--grafito);--logo-acento:var(--accent)}
.cap-cab .logo{width:220px}
.cap-cab .meta{font:500 11px/1.6 var(--fm);letter-spacing:.08em;text-align:right;color:var(--muted);margin:0}
.cap-tit{font:600 var(--t-2)/1.05 var(--fd);letter-spacing:-.03em;text-align:right;margin:0 0 10px}
.cap-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:28px 40px}
.cap-hoja h3{font:500 11px/1.4 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.cap-hoja section{margin-bottom:22px}
.cap-hoja p,.cap-hoja li{font-size:14.5px;line-height:1.5}
.cap-hoja ul{padding-left:1.1em}
.cap-hoja table{width:100%;border-collapse:collapse;font-size:13.5px}
.cap-hoja td{padding:7px 0;border-bottom:1px solid var(--line);vertical-align:top}
.cap-nota{font-size:13px!important}
.cap-hoja td:first-child{font:500 10.5px/1.7 var(--fm);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);width:38%;padding-right:10px}
@media (max-width:767px){.cap-grid{grid-template-columns:minmax(0,1fr)}.cap-cab{flex-direction:column}.cap-cab .meta,.cap-tit{text-align:left}}
@media print{
  @page{size:letter;margin:12mm}
  body{background:#fff;font-size:12px}
  .nav,.pie,.cta-final,.no-print,.skip,.cab-pag{display:none!important}
  .sec{padding:0}
  .cap-hoja{border:0;padding:0;max-width:none}
  .cap-cab{flex-direction:row!important;padding-bottom:14px;margin-bottom:16px}
  .cap-cab .logo{width:190px}
  .cap-cab .meta,.cap-tit{text-align:right!important}.cap-cab .meta{font-size:9.5px}
  .cap-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr)!important;gap:0 26px}
  .cap-hoja section{margin-bottom:13px}
  .cap-hoja h3{font-size:9px;margin-bottom:6px;padding-bottom:5px}
  .cap-tit{font-size:20px!important;margin-bottom:4px!important}
  .cap-hoja p,.cap-hoja li{font-size:10.5px;line-height:1.42}
  .cap-hoja ul{margin:0}
  .cap-hoja table{font-size:10px}
  .cap-hoja td{padding:4px 0}
  .cap-hoja td:first-child{font-size:8.5px;width:34%}
  .cap-hoja .chip{font-size:9px;padding:1px 7px}
  .cap-nota{font-size:9.5px!important}
  a{text-decoration:none}
}

/* ── piezas de páginas internas: cifras, línea de tiempo, verificación, formularios ── */
.plano-quieto{display:block}
.datos{display:grid;grid-template-columns:repeat(var(--c,3),minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.datos>div{padding:28px clamp(16px,2vw,28px);border-left:1px solid var(--line)}
.datos>div:first-child{border-left:0;padding-left:0}
.datos .n{font:600 var(--t-4)/1 var(--fd);letter-spacing:-.04em;color:var(--cifra);margin:0 0 12px;font-variant-numeric:lining-nums tabular-nums}
.datos .l{font-weight:600;margin:0 0 8px;line-height:1.35;max-width:34ch}
.datos .f{font:500 11px/1.5 var(--fm);letter-spacing:.06em;color:var(--muted);margin:0}
.datos .f a{color:inherit}
@media (max-width:767px){.datos{grid-template-columns:minmax(0,1fr)}.datos>div{border-left:0;padding-left:0}.datos>div+div{border-top:1px solid var(--line)}}
.linea{--ya:120px;list-style:none;margin:0;padding:0;max-width:900px}
.linea li{display:grid;grid-template-columns:var(--ya) 24px minmax(0,1fr);gap:0 16px;padding:0 0 30px;position:relative}
.linea li::before{content:"";grid-column:2;grid-row:1;width:11px;height:11px;margin:7px auto 0;border:2px solid var(--accent);border-radius:2px;background:var(--bg);position:relative;z-index:1}
.linea li::after{content:"";position:absolute;left:calc(var(--ya) + 28px - .5px);top:22px;bottom:-4px;width:1px;background:var(--line)}
.linea li:last-child{padding-bottom:0}.linea li:last-child::after{display:none}
.linea .a{grid-column:1;grid-row:1;font:500 var(--t-1)/1.1 var(--fm);text-align:right;font-variant-numeric:lining-nums}
.linea li>div{grid-column:3;grid-row:1}
.linea b{display:block;font-weight:600;margin-bottom:4px;line-height:1.35}
.linea p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.5;max-width:60ch}
@media (max-width:599px){.linea{--ya:52px}.linea .a{font-size:17px;text-align:left}}
.lista-ver{margin:0;padding-left:1.2em;display:grid;gap:10px;font-size:15px;line-height:1.5}
.lista-ver a{color:var(--accent)}
.fuentes-lista{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);max-width:900px}
.fuentes-lista li{border-bottom:1px solid var(--line)}
.fuentes-lista a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;padding:14px 0;text-decoration:none;font-weight:500;line-height:1.4}
.fuentes-lista a::after{content:"";flex:none;width:14px;height:14px;background:currentColor;color:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 3H3v10h10v-3M9 3h4v4M13 3L7 9' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 3H3v10h10v-3M9 3h4v4M13 3L7 9' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") center/contain no-repeat}
.fuentes-lista a:hover{color:var(--accent)}
.form-lado{display:grid;gap:18px;position:sticky;top:calc(var(--nav-h) + 24px)}
.pasos-cortos{list-style:none;margin:0;padding:0;counter-reset:p}
.pasos-cortos li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:2px 10px;padding:12px 0;border-top:1px solid var(--line)}
.pasos-cortos li::before{counter-increment:p;content:counter(p,decimal-leading-zero);font:500 11px/1.9 var(--fm);color:var(--accent);grid-row:span 2}
.pasos-cortos b{font-weight:600;line-height:1.35}
.pasos-cortos span{color:var(--muted);font-size:14.5px;line-height:1.45}
.cta-datos.claro{border-top-color:var(--line)}
.cta-datos.claro>*{border-bottom-color:var(--line);grid-template-columns:minmax(0,1fr);gap:4px}
.cta-datos.claro span{color:var(--muted)}
.cta-datos.claro b{overflow-wrap:break-word}
.cta-datos.claro a:hover b{color:var(--accent)}
@media (max-width:899px){.form-lado{position:static}}
.art-h1{font-size:var(--t-4)!important}
.art-fig{margin:1.8em 0}
.art-fig img{width:100%;max-width:420px;height:auto;border-radius:var(--r);border:1px solid var(--line)}
.art-fig figcaption{font:500 11px/1.5 var(--fm);letter-spacing:.06em;color:var(--muted);margin-top:10px;max-width:56ch}
@media (max-width:1099px){.art-lado .toc{display:none}}

/* ── revelados (con JS; sin JS todo visible) ──────────────────────────── */
.js .rv{opacity:0;transform:translateY(14px)}
.js .rv.visto{opacity:1;transform:none;transition:opacity 260ms var(--ease),transform 260ms var(--ease);transition-delay:calc(var(--i,0) * 50ms)}
.linea-m{display:block;overflow:hidden;padding:0 .04em .14em;margin:0 -.04em -.14em}

/* ── 404 ──────────────────────────────────────────────────────────────── */
.e404{min-height:calc(100dvh - var(--nav-h));display:grid;align-content:center}
.e404 .cod{font:500 clamp(80px,14vw,200px)/.9 var(--fm);letter-spacing:-.04em;color:var(--linea);margin:0 0 12px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}
