/* =====================================================================
   G&C Consultores · ClaroScuro — Sistema de diseño v8.0 (08/10/2026)
   Paletas: Manual de Marca G&C v1.0 · Diseño Base ClaroScuro v1.1
   Corporate Premium + Editorial + Minimalismo sofisticado
   ===================================================================== */

/* ---------- Fuentes propias (WOFF2, latín + español) ---------- */
@font-face{font-family:"Cinzel";src:url("../fonts/cinzel.woff2") format("woff2");font-weight:400 900;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant.woff2") format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-italic.woff2") format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/plexmono-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/plexmono-500.woff2") format("woff2");font-weight:500;font-display:swap}

/* ---------- Tokens base ---------- */
:root{
  /* G&C — Manual de Marca v1.0 */
  --gc-tinta:#0C1E2A; --gc-petroleo:#2E424F; --gc-acero:#545D64; --gc-plata:#BCBDBD; --gc-platino:#DEDFDF; --gc-papel:#F5F6F6; --gc-blanco:#FFFFFF;
  /* ClaroScuro — Diseño Base v1.1 */
  --co-carbon:#0B0D0F; --co-carbon3:#22282C; --co-grafito:#555B5F; --co-plomo:#8C9092; --co-niebla:#B5B9BB; --co-papel:#EDEDEB; --co-papel2:#E3E3E0; --co-cota:#9A4A2F;
  --co-cota-claro:#C38E79; /* derivado: Cota mezclada con Papel para contraste AA sobre Carbón */

  --f-gc:"Cinzel","Trajan Pro",Georgia,serif;
  --f-co:"Cormorant Garamond","Cormorant",Garamond,Georgia,serif;
  --f-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Consolas,monospace;

  --maxw:1240px; --gut:clamp(16px,4vw,40px);
  --hdr:76px; --hdr-s:62px;
  --ease:cubic-bezier(.22,.61,.36,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --t1:clamp(2.6rem,1.2rem + 4.6vw,5.4rem);   /* titular de portada */
  --t2:clamp(2rem,1.2rem + 2.6vw,3.5rem);     /* título de página */
  --t3:clamp(1.55rem,1.1rem + 1.4vw,2.35rem); /* título de sección */
  --t4:clamp(1.15rem,1rem + .5vw,1.4rem);     /* subtítulo */
  --lead:clamp(1.05rem,.98rem + .3vw,1.22rem);
  color-scheme:light;
}

/* ---------- Temas por marca ---------- */
.b-gc,.b-portal{
  --bg:var(--gc-papel); --surface:var(--gc-blanco); --surface-2:#ECEDED; --ink:var(--gc-tinta); --ink-2:var(--gc-acero); --muted:var(--gc-acero);
  --line:rgba(12,30,42,.13); --line-2:rgba(12,30,42,.26); --primary:var(--gc-petroleo); --primary-ink:#fff; --primary-h:var(--gc-tinta);
  --accent:var(--gc-petroleo); --deco:var(--gc-plata); --focus:var(--gc-petroleo); --err:#9B2C2C; --ok:#2F6B4F;
  --display:var(--f-gc); --h-weight:500; --h-track:.01em;
}
.b-co{
  --bg:var(--co-carbon); --surface:var(--co-carbon3); --surface-2:#171B1E; --ink:var(--co-papel); --ink-2:var(--co-niebla); --muted:var(--co-plomo);
  --line:rgba(237,237,235,.13); --line-2:rgba(237,237,235,.28); --primary:var(--co-papel); --primary-ink:var(--co-carbon); --primary-h:#FFFFFF;
  --accent:var(--co-cota-claro); --deco:var(--co-cota); --focus:var(--co-cota-claro); --err:#E0907A; --ok:#9BC2A8;
  --display:var(--f-co); --h-weight:400; --h-track:-.01em;
  color-scheme:dark;
}
.sec-dark{ /* G&C: bloque en Tinta Profunda */
  --bg:var(--gc-tinta); --surface:#12283A; --ink:var(--gc-papel); --ink-2:var(--gc-plata); --muted:var(--gc-plata);
  --line:rgba(245,246,246,.14); --line-2:rgba(245,246,246,.3); --primary:var(--gc-papel); --primary-ink:var(--gc-tinta); --primary-h:#fff;
  --accent:var(--gc-plata); --focus:var(--gc-plata); color-scheme:dark;
}
.sec-petroleo{ --bg:var(--gc-petroleo); --surface:#36505F; --ink:#fff; --ink-2:var(--gc-platino); --muted:var(--gc-platino); --line:rgba(255,255,255,.18); --line-2:rgba(255,255,255,.35); --primary:#fff; --primary-ink:var(--gc-tinta); --primary-h:var(--gc-platino); --accent:var(--gc-platino); --focus:#fff; color-scheme:dark }
.sec-light{ /* ClaroScuro: bloque en Papel */
  --bg:var(--co-papel); --surface:var(--co-papel2); --surface-2:#DADAD6; --ink:var(--co-carbon); --ink-2:var(--co-grafito); --muted:var(--co-grafito);
  --line:rgba(11,13,15,.14); --line-2:rgba(11,13,15,.3); --primary:var(--co-carbon); --primary-ink:var(--co-papel); --primary-h:var(--co-carbon3);
  --accent:var(--co-cota); --focus:var(--co-cota); color-scheme:light;
}
.sec-surface{ --bg:var(--surface) }

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 16px)}
body{margin:0;background:var(--gc-papel);color:var(--gc-tinta);font:400 1rem/1.65 var(--f-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"kern","calt"}
body:has(.b-co){background:var(--co-carbon)}
.site{background:var(--bg);color:var(--ink);min-height:100vh;display:flex;flex-direction:column;overflow-x:clip}
main{flex:1}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
h1,h2,h3,h4{margin:0;font-weight:var(--h-weight);letter-spacing:var(--h-track);line-height:1.12;text-wrap:balance}
p{margin:0 0 1em;text-wrap:pretty}
p:last-child{margin-bottom:0}
ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
::selection{background:var(--primary);color:var(--primary-ink)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--primary);color:var(--primary-ink);padding:10px 16px;font-weight:500;text-decoration:none}
.skip:focus{top:12px}

/* ---------- Diseño ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.wrap-n{max-width:880px}
.sec{background:var(--bg);color:var(--ink);padding-block:clamp(72px,9vw,136px);position:relative}
.sec-tight{padding-block:clamp(48px,6vw,88px)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,32px)}
.rule{border:0;border-top:1px solid var(--line);margin:0}

/* ---------- Tipografía ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:12px;font:500 .72rem/1.3 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 22px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.eyebrow.no-line::before{display:none}
.b-co .eyebrow{letter-spacing:.32em}
.display{font-family:var(--display);font-size:var(--t1);line-height:1.04}
.b-gc .display{font-weight:500;letter-spacing:.005em;line-height:1.08}
.b-co .display{font-weight:300;letter-spacing:-.02em;line-height:.98}
.h-page{font-family:var(--display);font-size:var(--t2)}
.b-gc .h-page{font-weight:500}
.b-co .h-page{font-weight:300;letter-spacing:-.015em}
.h-sec{font-size:var(--t3);font-weight:500;letter-spacing:-.015em;line-height:1.15}
.b-gc .h-sec{font-family:var(--f-sans);font-weight:500}
.b-co .h-sec{font-family:var(--f-co);font-weight:400;letter-spacing:-.01em;font-size:calc(var(--t3) * 1.18)}
.h-sub{font-size:var(--t4);font-weight:500;letter-spacing:-.01em;line-height:1.3}
.b-co .h-sub{font-family:var(--f-co);font-size:calc(var(--t4) * 1.25);font-weight:500;letter-spacing:0}
.lead{font-size:var(--lead);line-height:1.6;color:var(--ink-2);max-width:62ch}
.muted{color:var(--muted)}
.mono{font-family:var(--f-mono);font-feature-settings:"zero" 0}
.num{font:400 .78rem/1 var(--f-mono);letter-spacing:.12em;color:var(--muted)}
.prose{max-width:66ch}
.prose p,.prose li{color:var(--ink-2)}
.prose h3{margin:2em 0 .6em;font-size:var(--t4)}
.prose ul{margin:0 0 1.2em}
.prose li{position:relative;padding-left:22px;margin-bottom:.5em}
.prose li::before{content:"";position:absolute;left:0;top:.8em;width:10px;height:1px;background:var(--ink)}
.italic-co{font-family:var(--f-co);font-style:italic;font-weight:400}

/* ---------- Botones y enlaces ---------- */
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:0 24px;border:1px solid var(--primary);background:var(--primary);color:var(--primary-ink);font:500 .9rem/1 var(--f-sans);letter-spacing:.02em;text-decoration:none;border-radius:2px;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.btn:hover{background:var(--primary-h);border-color:var(--primary-h)}
.btn .ar{transition:transform .35s var(--ease-out)}
.btn:hover .ar{transform:translateX(4px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-sm{min-height:40px;padding:0 16px;font-size:.84rem}
.b-co .btn{letter-spacing:.14em;text-transform:uppercase;font:500 .74rem/1 var(--f-mono)}
.lnk{display:inline-flex;align-items:center;gap:10px;font-weight:500;text-decoration:none;color:var(--ink);padding:6px 0;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease-out)}
.lnk:hover{background-size:100% 1px}
.lnk .ar{transition:transform .35s var(--ease-out)}
.lnk:hover .ar{transform:translateX(4px)}
.b-co .lnk{font:500 .74rem/1.2 var(--f-mono);letter-spacing:.16em;text-transform:uppercase}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:36px}
.ar{display:inline-block;width:18px;height:10px;flex:none}

/* ---------- Encabezado ---------- */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;height:var(--hdr);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:height .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease)}
.hdr.s{height:var(--hdr-s);border-bottom-color:var(--line)}
.hdr .wrap{height:100%;display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);flex:none}
.brand img{height:40px;width:auto;transition:height .3s var(--ease)}
.hdr.s .brand img{height:34px}
.brand-t{display:flex;flex-direction:column;line-height:1}
.brand-t b{font:600 1.06rem/1 var(--f-gc);letter-spacing:.04em}
.brand-t small{font:500 .56rem/1 var(--f-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.b-co .brand-t b{font:400 1.45rem/1 var(--f-co);letter-spacing:0}
.b-co .brand-t b span{color:var(--co-plomo)}
.b-co .brand-t small{font:400 .56rem/1 var(--f-mono);letter-spacing:.32em;margin-top:5px}
.hdr-sec{font:400 .68rem/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding-left:18px;border-left:1px solid var(--line);opacity:0;transform:translateY(4px);transition:opacity .3s,transform .3s;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.hdr.s .hdr-sec.on{opacity:1;transform:none}
.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav>a,.nav .dd>button{position:relative;display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 12px;border:0;background:none;color:var(--ink-2);text-decoration:none;font:500 .875rem/1 var(--f-sans);letter-spacing:.01em;transition:color .2s}
.b-co .nav>a,.b-co .nav .dd>button{font:400 .7rem/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase}
.nav>a::after,.nav .dd>button::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}
.nav>a:hover,.nav .dd>button:hover,.nav [aria-current="page"],.nav .dd.cur>button{color:var(--ink)}
.nav>a:hover::after,.nav [aria-current="page"]::after,.nav .dd.cur>button::after{transform:scaleX(1)}
.dd{position:relative}
.dd>button svg{width:9px;height:9px;transition:transform .25s}
.dd[data-open]>button svg{transform:rotate(180deg)}
.dd-p{position:absolute;top:calc(100% + 10px);left:-20px;width:min(520px,80vw);background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:10px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .22s var(--ease),transform .22s var(--ease),visibility 0s .22s;box-shadow:0 18px 40px -24px rgba(12,30,42,.35)}
.dd[data-open] .dd-p,.dd:focus-within .dd-p{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.dd-p a{display:grid;grid-template-columns:44px 1fr;gap:4px 10px;padding:14px 14px;text-decoration:none;border-top:1px solid var(--line)}
.dd-p a:first-child{border-top:0}
.dd-p a:hover{background:var(--bg)}
.dd-p .num{grid-row:span 2;padding-top:4px}
.dd-p b{font-weight:500;font-size:.95rem}
.dd-p small{color:var(--muted);font-size:.8rem;line-height:1.4}
.dd-p .all{display:flex;justify-content:space-between;grid-template-columns:none;font:500 .82rem/1 var(--f-sans);color:var(--primary);border-top:1px solid var(--line)}
.switch{display:inline-flex;align-items:center;border:1px solid var(--line-2);height:34px;margin-left:10px;font:500 .62rem/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;border-radius:2px;overflow:hidden}
.switch a{white-space:nowrap;display:inline-flex;align-items:center;height:100%;padding:0 11px;text-decoration:none;color:var(--muted);transition:background .2s,color .2s}
.switch a+a{border-left:1px solid var(--line-2)}
.switch a:hover{color:var(--ink)}
.switch a[aria-current="true"]{background:var(--ink);color:var(--bg)}
.hdr .btn{margin-left:8px}
.burger{display:none;margin-left:auto;width:44px;height:44px;border:0;background:none;position:relative;color:var(--ink)}
.burger span{position:absolute;left:11px;right:11px;height:1.5px;background:currentColor;transition:transform .35s var(--ease),opacity .2s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:28px;right:19px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){right:11px;transform:translateY(-6px) rotate(-45deg)}

/* Menú móvil */
.mnav{position:fixed;inset:0;z-index:45;background:var(--bg);color:var(--ink);padding:calc(var(--hdr-s) + 24px) var(--gut) 32px;display:flex;flex-direction:column;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility 0s .35s}
.mnav.open{opacity:1;visibility:visible;transition-delay:0s}
.mnav nav a{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:1.6rem;line-height:1.15;font-weight:400;opacity:0;transform:translateY(10px);transition:opacity .4s var(--ease),transform .5s var(--ease-out)}
.b-gc .mnav nav a{font-family:var(--f-sans);font-weight:500;font-size:1.45rem;letter-spacing:-.01em}
.b-co .mnav nav a{font-family:var(--f-co);font-size:2rem;font-weight:300}
.mnav nav a .num{min-width:28px}
.mnav.open nav a{opacity:1;transform:none}
.mnav.open nav a:nth-child(2){transition-delay:.04s}.mnav.open nav a:nth-child(3){transition-delay:.08s}.mnav.open nav a:nth-child(4){transition-delay:.12s}.mnav.open nav a:nth-child(5){transition-delay:.16s}.mnav.open nav a:nth-child(6){transition-delay:.2s}
.mnav .switch{margin:28px 0 0;height:42px;align-self:flex-start}
.mnav .switch a{padding:0 16px}
.mnav .btn{margin-top:20px;width:100%}
.mnav-c{margin-top:auto;padding-top:28px;display:grid;gap:6px;font-size:.92rem;color:var(--ink-2)}
.mnav-c a{text-decoration:none}

/* ---------- Migas ---------- */
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font:400 .7rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:34px}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--ink)}
.crumbs li+li::before{content:"/";margin-right:8px;opacity:.6}

/* ---------- Encabezado de página interna ---------- */
.ph{padding-top:clamp(56px,8vw,112px);padding-bottom:clamp(48px,6vw,88px);border-bottom:1px solid var(--line)}
.ph .grid{align-items:end}
.ph-t{grid-column:1/span 8}
.ph-a{grid-column:9/span 4;padding-bottom:6px}
.ph .lead{margin-top:26px}

/* ---------- Revelado al desplazarse ---------- */
.js .rv{opacity:0;transform:translate3d(0,18px,0);transition:opacity .9s var(--ease),transform 1.1s var(--ease-out)}
.js .rv.in{opacity:1;transform:none}
.js .rv-d1{transition-delay:.08s}.js .rv-d2{transition-delay:.16s}.js .rv-d3{transition-delay:.24s}.js .rv-d4{transition-delay:.32s}
.js .rv-line{transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease-out)}
.js .rv-line.in{transform:none}

/* ---------- Marcas de revisión ---------- */
.rev{display:inline-block;font:500 .66rem/1.35 var(--f-mono);letter-spacing:.06em;text-transform:none;color:#7A4B12;background:#FBF3E4;border:1px dashed #C9A15B;padding:3px 7px;border-radius:2px;vertical-align:middle;margin:2px 0}
.b-co .rev{color:#F2D6A8;background:rgba(201,161,91,.12);border-color:rgba(201,161,91,.6)}
.sec-light .rev{color:#7A4B12;background:#FBF3E4;border-color:#C9A15B}
.no-rev [data-rev]{display:none!important}
.no-rev .rev{display:none!important}

/* =====================================================================
   PORTAL
   ===================================================================== */
.portal{min-height:100svh;display:flex;flex-direction:column}
.p-top{position:absolute;inset:0 0 auto 0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:22px var(--gut);font:400 .66rem/1 var(--f-mono);letter-spacing:.24em;text-transform:uppercase;pointer-events:none}
.p-top span:first-child{color:var(--gc-acero)}
.p-top span:last-child{color:var(--co-plomo)}
.split{flex:1;display:flex;min-height:100svh}
.half{position:relative;flex:1 1 50%;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(96px,12vh,140px) clamp(24px,5vw,80px) clamp(40px,7vh,72px);text-decoration:none;overflow:hidden;transition:flex-grow .9s var(--ease-out)}
.half:hover,.half:focus-visible{flex-grow:1.22}
.half:focus-visible{outline-offset:-6px}
.half-gc{background:var(--gc-papel);color:var(--gc-tinta)}
.half-co{background:var(--co-carbon);color:var(--co-papel)}
.half .mk{position:absolute;top:clamp(84px,12vh,120px);left:clamp(24px,5vw,80px);height:clamp(64px,9vh,92px);width:auto}
.half .geo{position:absolute;pointer-events:none;opacity:.9}
.half-gc .geo{right:-8%;top:8%;width:min(54vw,720px);color:var(--gc-platino)}
.half-co .geo{right:-12%;top:6%;width:min(58vw,760px);color:#1C2125}
.half .k{font:500 .68rem/1 var(--f-mono);letter-spacing:.22em;text-transform:uppercase;margin-bottom:22px;display:flex;gap:12px;align-items:center}
.half-gc .k{color:var(--gc-acero)}
.half-co .k{color:var(--co-plomo)}
.half .k::before{content:"";width:28px;height:1px;background:currentColor}
.half h2{max-width:13ch;font-size:clamp(2.1rem,1rem + 3.4vw,4.4rem);line-height:1.04;margin-bottom:24px;position:relative}
.half-gc h2{font-family:var(--f-gc);font-weight:500}
.half-co h2{font-family:var(--f-co);font-weight:300;letter-spacing:-.02em;font-size:clamp(2.5rem,1rem + 4.2vw,5.2rem);line-height:.98}
.half p{max-width:40ch;font-size:1rem;line-height:1.6;margin:0 0 30px;position:relative}
.half-gc p{color:var(--gc-acero)}
.half-co p{color:var(--co-niebla)}
.half .go{display:inline-flex;align-items:center;gap:14px;font:500 .74rem/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;position:relative;padding-bottom:8px;border-bottom:1px solid currentColor;align-self:flex-start}
.half .go .ar{transition:transform .4s var(--ease-out)}
.half:hover .go .ar{transform:translateX(6px)}
.half-co .go{color:var(--co-papel)}
.half-co .go .c{color:var(--co-cota-claro)}
.p-bot{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(12,30,42,.12)}
.p-bot>div{padding:28px clamp(24px,5vw,80px);font-size:.88rem;display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center}
.p-bot>div:first-child{background:var(--gc-blanco);color:var(--gc-acero)}
.p-bot>div:last-child{background:var(--co-carbon3);color:var(--co-niebla)}
.p-bot a{text-decoration:none}
.p-bot a:hover{text-decoration:underline}
.p-bot b{font:500 .64rem/1 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;width:100%}
.p-bot>div:first-child b{color:var(--gc-tinta)}
.p-bot>div:last-child b{color:var(--co-papel)}

/* =====================================================================
   G&C — INICIO
   ===================================================================== */
.hero-gc{padding-top:clamp(48px,7vw,104px);padding-bottom:0;overflow:hidden}
.hero-gc .grid{align-items:start}
.hero-gc .h-t{grid-column:1/span 7;padding-top:clamp(8px,2vw,28px)}
.hero-gc .h-a{grid-column:9/span 4}
.hero-gc .display{max-width:15ch}
.hero-gc .lead{margin-top:30px}
.hex-bg{position:absolute;right:-6%;top:-10%;width:min(62vw,860px);color:var(--gc-platino);pointer-events:none;z-index:0}
.hero-gc .wrap{position:relative;z-index:1}
.diff{margin-top:clamp(64px,8vw,112px);display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.diff li{padding:28px 28px 34px 0;border-right:1px solid var(--line)}
.diff li+li{padding-left:28px}
.diff li:last-child{border-right:0}
.diff .num{display:block;margin-bottom:18px}
.diff b{display:block;font-weight:500;font-size:1.08rem;margin-bottom:8px;letter-spacing:-.005em}
.diff span{color:var(--ink-2);font-size:.94rem;line-height:1.55}

/* Libro de vencimientos */
.ledger{background:var(--surface);border:1px solid var(--line);position:relative}
.ledger::before{content:"";position:absolute;inset:-1px -1px auto -1px;height:3px;background:var(--gc-petroleo)}
.ledger header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:22px 24px 16px;border-bottom:1px solid var(--line)}
.ledger header h2,.sd-main .ledger h2{display:block;margin:0;font:500 .7rem/1.2 var(--f-mono);letter-spacing:.18em;text-transform:uppercase}
.ledger header span{font:400 .7rem/1 var(--f-mono);color:var(--muted)}
.ledger li{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;padding:18px 24px;border-bottom:1px solid var(--line)}
.ledger .cod{font:500 .78rem/1 var(--f-mono);color:var(--gc-petroleo);border:1px solid var(--line-2);padding:6px 8px;align-self:start}
.ledger .what{font-weight:500;font-size:.95rem;line-height:1.35}
.ledger .what small{display:block;font-weight:400;color:var(--muted);font-size:.8rem;margin-top:3px}
.ledger .when{grid-column:2;display:flex;justify-content:space-between;align-items:center;gap:10px;font:400 .78rem/1.2 var(--f-mono);color:var(--ink-2);margin-top:6px}
.pill{font:500 .62rem/1 var(--f-mono);letter-spacing:.12em;padding:5px 7px;border:1px solid currentColor;white-space:nowrap}
.pill.soon{color:#8E2A1F}.pill.near{color:#7A5A12}.pill.far{color:var(--gc-acero)}
.ledger footer{padding:14px 24px 18px;font-size:.78rem;color:var(--muted);line-height:1.5}
.ledger footer a{color:var(--ink)}

/* Para quién */
.who{display:grid;grid-template-columns:repeat(12,1fr);gap:0 clamp(16px,2.4vw,32px)}
.who-h{grid-column:1/span 4}
.who-l{grid-column:6/span 7;display:grid}
.who-l li{display:grid;grid-template-columns:180px 1fr;gap:20px;padding:26px 0;border-top:1px solid var(--line)}
.who-l li:last-child{border-bottom:1px solid var(--line)}
.who-l b{font-family:var(--f-gc);font-weight:500;font-size:1.05rem;letter-spacing:.04em}
.who-l span{color:var(--ink-2)}

/* Lista editorial de servicios */
.svc-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:clamp(36px,5vw,64px)}
.svc{border-top:1px solid var(--line-2)}
.svc li{border-bottom:1px solid var(--line)}
.svc a{position:relative;display:grid;grid-template-columns:90px minmax(0,5fr) minmax(0,6fr) 48px;gap:20px;align-items:baseline;padding:30px 0;text-decoration:none;color:var(--ink);transition:padding .45s var(--ease-out)}
.svc a::before{content:"";position:absolute;inset:0 calc(var(--gut) * -1);background:var(--surface);opacity:0;transition:opacity .35s var(--ease);z-index:-1}
.svc a:hover{padding-left:14px}
.svc a:hover::before{opacity:1}
.svc .num{font-size:.85rem;transition:color .3s}
.svc a:hover .num{color:var(--primary)}
.svc h3{font-size:clamp(1.3rem,1rem + 1vw,1.85rem);font-weight:500;letter-spacing:-.015em}
.svc p{color:var(--ink-2);margin:0;font-size:.97rem;max-width:56ch}
.svc .go{justify-self:end;width:40px;height:40px;border:1px solid var(--line-2);display:grid;place-items:center;border-radius:50%;transition:background .3s,border-color .3s,color .3s,transform .45s var(--ease-out)}
.svc a:hover .go{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);transform:rotate(-45deg)}
.svc .go .ar{width:14px}

/* Método */
.steps{display:grid;grid-template-columns:repeat(4,1fr);counter-reset:s;border-top:1px solid var(--line)}
.steps li{position:relative;padding:34px 26px 8px 0}
.steps li+li{padding-left:26px;border-left:1px solid var(--line)}
.steps .num{display:block;margin-bottom:46px}
.steps h3{font-size:1.12rem;font-weight:500;margin-bottom:10px}
.steps p{color:var(--ink-2);font-size:.94rem}
.steps li::before{content:"";position:absolute;top:-1px;left:0;height:2px;width:36px;background:var(--primary)}
.steps li+li::before{left:26px}

/* Manifiesto */
.mani .grid{align-items:end}
.mani blockquote{grid-column:1/span 8;margin:0}
.mani blockquote p{font-family:var(--f-gc);font-size:clamp(2rem,1rem + 3.2vw,4rem);line-height:1.08;font-weight:500;letter-spacing:.005em;color:var(--ink)}
.mani .vals{grid-column:9/span 4;display:grid;gap:0}
.mani .vals li{padding:18px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:44px 1fr;gap:4px 12px}
.mani .vals li b{font-weight:500}
.mani .vals li .num{grid-row:span 2;padding-top:4px}
.mani .vals li .d{grid-column:2;color:var(--ink-2);font-size:.9rem}

/* Responsable */
.resp{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);align-items:start}
.resp-ph{grid-column:1/span 4;aspect-ratio:4/5;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;position:relative;overflow:hidden}
.resp-ph img.mkph{width:44%;opacity:.16}
.resp-ph .rev{position:absolute;left:14px;bottom:14px}
.resp-b{grid-column:6/span 7}
.resp-b h3{font-family:var(--f-gc);font-size:clamp(1.5rem,1.1rem + 1.2vw,2.2rem);font-weight:500;margin-bottom:6px}
.resp-b .role{font:500 .74rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:28px}
.facts{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);margin-top:30px}
.facts div{padding:18px 18px 18px 0;border-bottom:1px solid var(--line)}
.facts div:nth-child(even){padding-left:18px;border-left:1px solid var(--line)}
.facts dt{font:500 .64rem/1.3 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.facts dd{margin:0;font-weight:500}

/* Banda cruzada hacia ClaroScuro */
.cross{background:var(--co-carbon);color:var(--co-papel);overflow:hidden}
.cross .grid{align-items:center;min-height:440px}
.cross-t{grid-column:1/span 6;padding-block:clamp(64px,8vw,110px)}
.cross-t .eyebrow{color:var(--co-plomo)}
.cross-t h2{font-family:var(--f-co);font-weight:300;font-size:clamp(2.2rem,1.2rem + 3vw,3.8rem);line-height:1;letter-spacing:-.015em;margin-bottom:22px}
.cross-t p{color:var(--co-niebla);max-width:46ch}
.cross-t .lnk{color:var(--co-papel);font:500 .72rem/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase}
.cross-i{grid-column:8/span 5;position:relative;align-self:stretch}
.cross-i img{position:absolute;inset:40px 0 40px 0;width:100%;height:calc(100% - 80px);object-fit:cover;filter:grayscale(1) contrast(1.06);transition:filter 1s var(--ease)}
.cross:hover .cross-i img{filter:none}

/* Banda de llamada a la acción */
.cta .grid{align-items:end}
.cta h2{grid-column:1/span 8;font-family:var(--display);font-size:var(--t2);line-height:1.06}
.b-gc .cta h2{font-weight:500}
.b-co .cta h2{font-weight:300;letter-spacing:-.02em}
.cta .c-a{grid-column:9/span 4;display:grid;gap:14px;justify-items:start}
.cta .c-a p{color:var(--ink-2);margin:0 0 6px}

/* =====================================================================
   G&C — PÁGINAS INTERNAS
   ===================================================================== */
.intro{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px)}
.intro .i-h{grid-column:1/span 5}
.intro .i-b{grid-column:7/span 6}
.big-q{font-family:var(--display);font-size:clamp(1.7rem,1.1rem + 1.9vw,2.8rem);line-height:1.16;font-weight:500;max-width:22ch}
.b-co .big-q{font-weight:300;font-size:clamp(2rem,1.2rem + 2.4vw,3.4rem);line-height:1.06;letter-spacing:-.015em}
.voice{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}
.voice li{padding:30px 30px 30px 0;border-bottom:1px solid var(--line)}
.voice li:nth-child(even){padding-left:30px;border-left:1px solid var(--line)}
.voice b{display:block;font-weight:500;font-size:1.15rem;margin-bottom:8px}
.voice b i{font-style:normal;color:var(--muted);font-weight:400}
.voice span{color:var(--ink-2)}
.works li{display:grid;grid-template-columns:200px 1fr auto;gap:24px;padding:26px 0;border-top:1px solid var(--line);align-items:baseline}
.works li:last-child{border-bottom:1px solid var(--line)}
.works .cat{font:500 .66rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.works b{font-weight:500;font-size:1.08rem;display:block;margin-bottom:4px}
.works span{color:var(--ink-2);font-size:.94rem}
.map-l{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);align-items:start}
.map-l .ml-t{grid-column:1/span 5}
.map-l .ml-m{grid-column:7/span 6;aspect-ratio:16/10;border:1px solid var(--line);background:var(--surface);position:relative;overflow:hidden}

/* Índice de servicios */
.svc-x a{grid-template-columns:90px minmax(0,4fr) minmax(0,5fr) minmax(0,3fr) 48px}
.svc-x .tags{font:400 .7rem/1.6 var(--f-mono);letter-spacing:.06em;color:var(--muted)}
.cases{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.cases li{padding:30px 24px 30px 0;display:flex;flex-direction:column}
.cases li+li{padding-left:24px;border-left:1px solid var(--line)}
.cases .k{font:500 .64rem/1.3 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.cases b{font-weight:500;font-size:1.1rem;margin-bottom:16px;line-height:1.3}
.cases ul{margin-bottom:22px;flex:1}
.cases ul li{padding:7px 0;border:0;font-size:.92rem;color:var(--ink-2);border-top:1px dashed var(--line)}
.cases ul li+li{padding-left:0;border-left:0}

/* Detalle de servicio */
.sd-hero .grid{align-items:end}
.sd-n{font:300 clamp(5rem,3rem + 8vw,11rem)/.8 var(--f-gc);color:var(--gc-platino);grid-column:10/span 3;justify-self:end;letter-spacing:-.02em;user-select:none}
.sd{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);align-items:start}
.sd-aside{grid-column:1/span 3;position:sticky;top:calc(var(--hdr-s) + 32px)}
.sd-aside .toc a{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--muted);font-size:.9rem;transition:color .2s}
.sd-aside .toc a:hover,.sd-aside .toc a.on{color:var(--ink)}
.sd-aside .toc a.on .num{color:var(--primary)}
.sd-aside .btn{margin-top:26px;width:100%}
.sd-main{grid-column:5/span 8}
.sd-main section{padding-bottom:clamp(48px,6vw,80px);margin-bottom:clamp(48px,6vw,80px);border-bottom:1px solid var(--line)}
.sd-main section:last-child{border-bottom:0;margin-bottom:0}
.sd-main h2{font-size:var(--t4);font-weight:500;margin-bottom:26px;display:flex;gap:14px;align-items:baseline}
.inc{display:grid;grid-template-columns:repeat(2,1fr);gap:0 28px}
.inc li{padding:16px 0;border-top:1px solid var(--line)}
.inc b{display:block;font-weight:500;margin-bottom:4px}
.inc span{color:var(--ink-2);font-size:.93rem}
.tbl{width:100%;border-collapse:collapse;font-size:.93rem}
.tbl th{text-align:left;font:500 .64rem/1.3 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:12px 16px 12px 0;border-bottom:1px solid var(--line-2)}
.tbl td{padding:15px 16px 15px 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink-2)}
.tbl td:first-child{color:var(--ink);font-weight:500}
.tbl .mono{font-size:.85rem}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.feat{background:var(--surface);border:1px solid var(--line);padding:clamp(22px,3vw,36px)}
.feat-cap{font:400 .7rem/1.5 var(--f-mono);letter-spacing:.06em;color:var(--muted);margin-top:16px}
.timeline{display:grid;grid-template-columns:repeat(5,1fr);position:relative;margin-top:8px}
.timeline::before{content:"";position:absolute;left:0;right:0;top:9px;height:1px;background:var(--line-2)}
.timeline li{position:relative;padding-top:30px;padding-right:12px}
.timeline li::before{content:"";position:absolute;top:4px;left:0;width:11px;height:11px;border-radius:50%;background:var(--surface);border:1px solid var(--primary)}
.timeline li.k::before{background:var(--primary)}
.timeline b{display:block;font:500 .74rem/1.3 var(--f-mono);letter-spacing:.06em;margin-bottom:6px}
.timeline span{font-size:.86rem;color:var(--ink-2);line-height:1.45;display:block}
.chart{width:100%;height:auto}
.chart .ax{stroke:var(--line-2)}
.chart .gl{stroke:var(--line)}
.chart .in{fill:var(--gc-petroleo)}
.chart .out{fill:var(--gc-plata)}
.chart .bal{stroke:var(--gc-tinta);fill:none;stroke-width:1.6}
.chart text{font:400 10px var(--f-mono);fill:var(--muted)}
.legend{display:flex;flex-wrap:wrap;gap:18px;font:400 .72rem/1 var(--f-mono);color:var(--muted);margin-top:14px}
.legend i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px}
.check li{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:13px 0;border-top:1px solid var(--line)}
.check li::before{content:"";width:14px;height:1px;background:var(--primary);margin-top:.8em}
.vs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}
.vs>div{padding:26px}
.vs>div+div{border-left:1px solid var(--line);background:var(--bg)}
.vs h3{font-size:1.05rem;font-weight:500;margin-bottom:6px}
.vs .who{display:block;font:500 .66rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.vs p{color:var(--ink-2);font-size:.93rem}
.rel{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.rel a{padding:26px 24px 30px 0;text-decoration:none;display:block;transition:background .3s}
.rel a+a{padding-left:24px;border-left:1px solid var(--line)}
.rel a:hover h3{text-decoration:underline;text-underline-offset:.2em}
.rel .num{display:block;margin-bottom:16px}
.rel h3{font-size:1.08rem;font-weight:500;margin-bottom:8px}
.rel p{font-size:.9rem;color:var(--ink-2)}

/* Preguntas */
.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:1fr 24px;gap:20px;align-items:center;padding:24px 0;font-weight:500;font-size:1.06rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{position:relative;width:14px;height:14px;justify-self:end}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:0;top:6.5px;width:14px;height:1px;background:currentColor;transition:transform .3s var(--ease)}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq .a{padding:0 48px 26px 0;color:var(--ink-2);max-width:72ch}

/* Recursos */
.res{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);align-items:start}
.res .r-l{grid-column:1/span 5}
.res .r-c{grid-column:7/span 6}
.cal{border:1px solid var(--line);background:var(--surface);padding:22px}
.cal h3{font:500 .7rem/1.3 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;font:400 .8rem/1 var(--f-mono)}
.cal-g span{padding:10px 0;color:var(--ink-2)}
.cal-g .h{color:var(--muted);font-size:.66rem;letter-spacing:.1em}
.cal-g .w{color:var(--gc-acero);background:var(--surface-2)}
.cal-g .d{background:var(--gc-petroleo);color:#fff;font-weight:500}
.portals li a{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:18px 0;border-top:1px solid var(--line);text-decoration:none}
.portals li:last-child a{border-bottom:1px solid var(--line)}
.portals b{font-weight:500}
.portals small{grid-column:1;color:var(--muted);font-size:.86rem}
.portals .ext{grid-row:span 2;align-self:center;font:400 .8rem var(--f-mono);color:var(--muted);transition:transform .3s var(--ease-out)}
.portals a:hover .ext{transform:translate(3px,-3px);color:var(--ink)}
.notes article{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:34px 0;border-top:1px solid var(--line)}
.notes article:last-child{border-bottom:1px solid var(--line)}
.notes .cat{font:500 .66rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.notes h3{font-size:1.3rem;font-weight:500;letter-spacing:-.01em;margin-bottom:12px}
.notes p{color:var(--ink-2);max-width:68ch}

/* =====================================================================
   CONTACTO Y FORMULARIOS
   ===================================================================== */
.ct{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);align-items:start}
.ct-i{grid-column:1/span 4}
.ct-f{grid-column:6/span 7}
.ct-i dl{margin:0;border-top:1px solid var(--line)}
.ct-i dl div{padding:18px 0;border-bottom:1px solid var(--line)}
.ct-i dt{font:500 .64rem/1.3 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ct-i dd{margin:0;font-size:1.02rem}
.ct-i dd a{text-decoration:none}
.ct-i dd a:hover{text-decoration:underline}
.form{display:grid;grid-template-columns:1fr 1fr;gap:26px 24px}
.fld{display:flex;flex-direction:column;gap:8px;min-width:0}
.fld.full{grid-column:1/-1}
.fld label,.fld .lbl{font:500 .68rem/1.3 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.fld label .opt{color:var(--muted);letter-spacing:.04em;text-transform:none;font-weight:400}
.fld input,.fld select,.fld textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-2);border-radius:0;padding:10px 0 12px;font-size:1rem;color:var(--ink);transition:border-color .25s;-webkit-appearance:none;appearance:none}
.fld select{background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 10px) 52%,calc(100% - 5px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:26px}
.fld select option{background:var(--surface);color:var(--ink)}
.fld textarea{min-height:130px;resize:vertical;line-height:1.55}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:0;border-bottom-color:var(--ink);box-shadow:0 1px 0 0 var(--ink)}
.fld input::placeholder,.fld textarea::placeholder{color:var(--muted);opacity:.75}
.fld [aria-invalid="true"]{border-bottom-color:var(--err);box-shadow:0 1px 0 0 var(--err)}
.fld .err{font-size:.8rem;color:var(--err);min-height:0}
.fld .hint{font-size:.8rem;color:var(--muted)}
.chk{grid-column:1/-1;display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;font-size:.88rem;color:var(--ink-2)}
.chk input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--primary)}
.chk a{color:var(--ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.f-act{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding-top:6px}
.f-act small{color:var(--muted);font-size:.8rem}
.f-res{grid-column:1/-1;border:1px solid var(--line-2);padding:24px;background:var(--surface)}
.f-res h3{font-size:1.1rem;font-weight:500;margin-bottom:8px}
.f-res p{color:var(--ink-2)}
.f-res .actions{margin-top:18px}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}

/* =====================================================================
   PIE DE PÁGINA
   ===================================================================== */
.ftr{background:var(--gc-tinta);color:var(--gc-platino);padding:clamp(64px,7vw,96px) 0 28px;font-size:.92rem}
.b-co .ftr{background:#070809;color:var(--co-niebla)}
.ftr a{text-decoration:none;color:inherit;transition:color .2s}
.ftr a:hover{color:#fff}
.ftr-top{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.12)}
.ftr-b{grid-column:1/span 4}
.ftr-b img{height:52px;width:auto;margin-bottom:24px}
.b-co .ftr-b img{height:96px}
.ftr-b p{color:var(--gc-plata);max-width:34ch;font-size:.9rem}
.b-co .ftr-b p{color:var(--co-plomo)}
.ftr-col{grid-column:span 2}
.ftr-col h3,.ftr-c h3{font:500 .64rem/1.3 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:#fff;margin-bottom:18px}
.ftr-col li{margin-bottom:10px}
.ftr-c{grid-column:span 4}
.ftr-c li{margin-bottom:10px}
.ftr-c small{display:block;color:var(--gc-plata);font-size:.78rem}
.b-co .ftr-c small{color:var(--co-plomo)}
.ftr-bot{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;padding-top:26px;font-size:.8rem;color:var(--gc-plata)}
.b-co .ftr-bot{color:var(--co-plomo)}
.ftr-bot nav{display:flex;flex-wrap:wrap;gap:8px 22px}
.ftr-brands{display:flex;gap:10px;align-items:center}
.ftr-brands img{height:22px;width:auto;opacity:.85}

/* =====================================================================
   CLAROSCURO
   ===================================================================== */
.hero-co{min-height:calc(100svh - var(--hdr));display:flex;align-items:stretch;padding:0;overflow:hidden;position:relative}
.hero-co .wrap{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);align-items:center;padding-block:clamp(40px,6vw,80px)}
.hc-t{grid-column:1/span 6;position:relative;z-index:2}
.hc-t .display{font-size:clamp(3rem,1.2rem + 6vw,7.2rem)}
.hc-t .display em{font-style:italic;color:var(--co-niebla)}
.hc-t .lead{margin-top:30px;max-width:44ch}
.hc-v{grid-column:7/span 6;position:relative;height:min(74vh,700px);min-height:420px}
.hc-v .axo{position:absolute;inset:0 -6% 0 0;width:106%;height:100%}
.hc-v .plate{position:absolute;right:4%;bottom:0;width:46%;aspect-ratio:4/5;overflow:hidden;background:var(--co-carbon3);will-change:transform}
.hc-v .plate img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08) brightness(.92);transition:filter 1.2s var(--ease),transform 1.6s var(--ease-out)}
.hc-v:hover .plate img{filter:none;transform:scale(1.03)}
.hc-v .cap{position:absolute;left:0;bottom:0;font:400 .64rem/1.6 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--co-plomo)}
.hc-v .cap b{color:var(--co-cota-claro);font-weight:500}
.scue{position:absolute;left:var(--gut);bottom:26px;display:flex;align-items:center;gap:14px;font:400 .62rem/1 var(--f-mono);letter-spacing:.3em;text-transform:uppercase;color:var(--co-plomo);z-index:2}
.scue i{display:block;width:1px;height:42px;background:linear-gradient(var(--co-plomo),transparent);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.axo path,.axo line,.axo rect,.axo polyline{vector-effect:non-scaling-stroke}
.draw path,.draw line,.draw rect,.draw polyline{stroke-dasharray:var(--len,1400);stroke-dashoffset:var(--len,1400)}
.drawn path,.drawn line,.drawn rect,.drawn polyline{transition:stroke-dashoffset 2.6s var(--ease-out);stroke-dashoffset:0}

/* Dibujos técnicos */
.dw{fill:none;stroke:currentColor}
.dw .g,.dw.g{stroke:var(--co-grafito)}
.dw .c,.dw.c{stroke:var(--co-cota-claro)}
.dwt{fill:currentColor;font-family:var(--f-mono)}
.dwt .c{fill:var(--co-cota-claro)}
.dwt .m{fill:var(--co-plomo)}
.ax path{stroke:currentColor;stroke-width:1.2}
.ax .g{stroke:var(--co-grafito)}
.ax .c{stroke:var(--co-cota-claro)}
.axt text{fill:var(--co-cota-claro);font-family:var(--f-mono)}
.sec-light .dw .g,.sec-light .ax .g{stroke:var(--co-niebla)}
.sec-light .dw .c,.sec-light .ax .c,.sec-light .axt text,.sec-light .dwt .c{stroke:var(--co-cota);fill:var(--co-cota)}
.sec-light .dw .c,.sec-light .ax .c{fill:none}
.sec-light .dwt .c,.sec-light .axt text{stroke:none}

/* Manifiesto ClaroScuro */
.cq .grid{align-items:start}
.cq .q{grid-column:2/span 9}
.cq .q p{font-family:var(--f-co);font-weight:300;font-size:clamp(2rem,1rem + 3.6vw,4.4rem);line-height:1.04;letter-spacing:-.015em}
.cq .q p em{font-style:italic;color:var(--accent)}
.cq .q cite{display:block;margin-top:28px;font:400 .7rem/1 var(--f-mono);letter-spacing:.24em;text-transform:uppercase;font-style:normal;color:var(--muted)}
.cq .side{grid-column:1/span 1;font:400 .64rem/1 var(--f-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);writing-mode:vertical-rl;transform:rotate(180deg);justify-self:start;padding-top:8px}
.facts-co{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(56px,7vw,96px);border-top:1px solid var(--line)}
.facts-co div{padding:30px 24px 0 0}
.facts-co div+div{padding-left:24px;border-left:1px solid var(--line)}
.facts-co b{display:block;font:300 clamp(2.6rem,1.6rem + 2.4vw,4rem)/1 var(--f-co);margin-bottom:12px}
.facts-co b i{font-style:normal;color:var(--accent)}
.facts-co span{color:var(--ink-2);font-size:.92rem}

/* Proyectos destacados — retícula asimétrica */
.feat-p{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);row-gap:clamp(48px,6vw,96px)}
.pj{display:block;text-decoration:none;color:inherit;position:relative}
.pj .ph{position:relative;overflow:hidden;background:var(--surface);border:0;padding:0}
.pj .ph img,.pj .ph svg{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out),filter 1s var(--ease)}
.pj .ph img{filter:grayscale(1) contrast(1.05)}
.pj:hover .ph img,.pj:focus-visible .ph img{filter:none;transform:scale(1.035)}
.pj .ph.draw-ph{display:grid;place-items:center;padding:8%;color:var(--co-papel)}
.sec-light .pj .ph.draw-ph{color:var(--co-carbon)}
.pj:hover .ph.draw-ph svg{transform:scale(1.02)}
.pj .meta{display:grid;grid-template-columns:1fr auto;gap:6px 16px;padding-top:18px;align-items:baseline}
.pj .meta h3{font-family:var(--f-co);font-weight:400;font-size:clamp(1.4rem,1.1rem + .9vw,1.9rem);letter-spacing:-.005em;line-height:1.1}
.pj .meta .code{font:400 .66rem/1 var(--f-mono);letter-spacing:.18em;color:var(--accent)}
.pj .meta p{grid-column:1/-1;margin:0;font:400 .66rem/1.5 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pj .ln{position:absolute;left:0;right:0;top:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease-out);z-index:2}
.pj:hover .ln{transform:scaleX(1)}
.fp-1{grid-column:1/span 7}.fp-1 .ph{aspect-ratio:5/4}
.fp-2{grid-column:9/span 4;margin-top:clamp(80px,12vw,180px)}.fp-2 .ph{aspect-ratio:4/5}
.fp-3{grid-column:2/span 5}.fp-3 .ph{aspect-ratio:1/1}
.fp-4{grid-column:8/span 5;margin-top:clamp(-40px,-4vw,-80px)}.fp-4 .ph{aspect-ratio:4/3}

/* Servicios ClaroScuro con imagen que cambia */
.svc-co{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);align-items:start}
.svc-co ol{grid-column:1/span 7;border-top:1px solid var(--line)}
.svc-co li{border-bottom:1px solid var(--line)}
.svc-co li>div{display:grid;grid-template-columns:100px 1fr;gap:6px 18px;padding:28px 0;cursor:default;transition:padding .45s var(--ease-out)}
.svc-co li:hover>div,.svc-co li.on>div{padding-left:12px}
.svc-co .num{color:var(--accent);padding-top:10px;white-space:nowrap}
.svc-co h3{font-family:var(--f-co);font-weight:400;font-size:clamp(1.5rem,1.1rem + 1.2vw,2.2rem);line-height:1.1;transition:color .3s}
.svc-co li:not(.on) h3{color:var(--ink-2)}
.svc-co p{grid-column:2;color:var(--ink-2);margin:0;max-width:52ch;font-size:.95rem}
.svc-co .pv{grid-column:9/span 4;position:sticky;top:calc(var(--hdr-s) + 40px);aspect-ratio:4/5;background:var(--surface);overflow:hidden}
.svc-co .pv>*{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s var(--ease)}
.svc-co .pv>.on{opacity:1}
.svc-co .pv .draw-ph{display:grid;place-items:center;padding:12%;color:var(--ink)}

/* Proceso */
.proc{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px)}
.proc-s{grid-column:1/span 4;position:sticky;top:calc(var(--hdr-s) + 40px);align-self:start}
.proc-s .big{font:300 clamp(6rem,4rem + 6vw,10rem)/.85 var(--f-co);color:var(--accent);letter-spacing:-.04em;display:block;margin-bottom:12px;transition:opacity .3s}
.proc-l{grid-column:6/span 7}
.proc-l>li{display:grid;grid-template-columns:1fr;gap:24px;padding:0 0 clamp(64px,8vw,120px)}
.proc-l .pic{background:var(--surface);aspect-ratio:16/10;display:grid;place-items:center;padding:6%;color:var(--ink);border:1px solid var(--line)}
.proc-l .pic svg{width:100%;height:100%}
.proc-l .num{color:var(--accent)}
.proc-l h3{font-family:var(--f-co);font-weight:400;font-size:clamp(1.8rem,1.3rem + 1.6vw,2.8rem);line-height:1.04;margin:6px 0 12px}
.proc-l p{color:var(--ink-2);max-width:56ch}
.proc-l .you{display:inline-block;margin-top:6px;font:400 .66rem/1.5 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}

/* Portafolio */
.filters{display:flex;flex-wrap:wrap;gap:6px 26px;margin-bottom:clamp(40px,5vw,72px);border-bottom:1px solid var(--line);padding-bottom:16px}
.filters button{border:0;background:none;padding:6px 0;color:var(--muted);font:400 .7rem/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;position:relative}
.filters button sup{font-size:.58rem;margin-left:4px;color:var(--accent)}
.filters button::after{content:"";position:absolute;left:0;right:0;bottom:-17px;height:1px;background:var(--ink);transform:scaleX(0);transition:transform .4s var(--ease-out)}
.filters button[aria-pressed="true"]{color:var(--ink)}
.filters button[aria-pressed="true"]::after{transform:scaleX(1)}
.port{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);row-gap:clamp(56px,6vw,88px)}
.port .pj{transition:opacity .45s var(--ease),transform .6s var(--ease-out)}
.port .pj.out{display:none}
.pt-a{grid-column:1/span 7}.pt-a .ph{aspect-ratio:4/3}
.pt-b{grid-column:9/span 4;margin-top:clamp(40px,8vw,120px)}.pt-b .ph{aspect-ratio:3/4}
.pt-c{grid-column:1/span 4}.pt-c .ph{aspect-ratio:1/1}
.pt-d{grid-column:6/span 7}.pt-d .ph{aspect-ratio:16/10}
.port.filtered .pj{grid-column:span 6!important;margin-top:0!important}
.port.filtered .pj .ph{aspect-ratio:4/3!important}

/* Detalle de proyecto */
.pd-h{padding-top:clamp(40px,6vw,88px)}
.pd-h .grid{align-items:end}
.pd-h .t{grid-column:1/span 8}
.pd-h .code{grid-column:10/span 3;justify-self:end;text-align:right;font:400 .7rem/1.7 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pd-h .code b{display:block;font:300 clamp(2.6rem,1.6rem + 3vw,4.6rem)/1 var(--f-co);letter-spacing:-.01em;color:var(--accent);text-transform:none}
.pd-fig{margin:clamp(40px,5vw,72px) 0 0;background:var(--surface);position:relative;overflow:hidden}
.pd-fig.img{aspect-ratio:16/9}
.pd-fig.img img{width:100%;height:100%;object-fit:cover}
.pd-fig.dwg{padding:clamp(32px,6vw,90px);display:grid;place-items:center;color:var(--ink)}
.pd-fig.dwg svg{width:min(100%,880px);height:auto;max-height:70vh}
.pd-fig figcaption{position:absolute;left:18px;bottom:14px;font:400 .62rem/1.4 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pd-b{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);align-items:start}
.pd-spec{grid-column:1/span 4;position:sticky;top:calc(var(--hdr-s) + 32px)}
.pd-spec dl{margin:0;border-top:1px solid var(--line)}
.pd-spec dl div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.pd-spec dt{font:400 .62rem/1.6 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pd-spec dd{margin:0;font-size:.94rem}
.pd-txt{grid-column:6/span 7}
.pd-txt .big-q{margin-bottom:34px}
.pd-gal{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2.4vw,32px);margin-top:clamp(48px,6vw,88px)}
.pd-gal figure{margin:0;background:var(--surface);overflow:hidden;position:relative}
.pd-gal figure img{width:100%;height:100%;object-fit:cover}
.pd-gal figure.dwg{display:grid;place-items:center;padding:8%;color:var(--ink)}
.pd-gal figcaption{font:400 .62rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:12px 0 0}
.pd-gal .g1{grid-column:1/span 7;aspect-ratio:4/3}
.pd-gal .g2{grid-column:8/span 5;aspect-ratio:4/5}
.pd-gal .g3{grid-column:3/span 5;aspect-ratio:1/1}
.pd-gal .g4{grid-column:8/span 5;aspect-ratio:4/3}
.pd-gal .cap-out{background:none}
.pd-nav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.pd-nav a{padding:34px 0;text-decoration:none;display:block}
.pd-nav a+a{text-align:right;border-left:1px solid var(--line);padding-left:24px}
.pd-nav small{display:block;font:400 .64rem/1 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.pd-nav b{font:400 clamp(1.4rem,1.1rem + 1vw,2rem)/1.1 var(--f-co)}
.pd-nav a:hover b{color:var(--accent)}

/* Estudio */
.mat{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.mat li{padding:28px 22px 6px 0}
.mat li+li{padding-left:22px;border-left:1px solid var(--line)}
.mat .sw{display:block;height:84px;margin-bottom:20px;border:1px solid var(--line)}
.mat b{display:block;font-family:var(--f-co);font-weight:500;font-size:1.35rem;margin-bottom:6px}
.mat span{color:var(--ink-2);font-size:.9rem}
.sw-laurel{background:repeating-linear-gradient(92deg,#8A6A4C 0 3px,#7A5C40 3px 5px,#94755A 5px 9px)}
.sw-ply{background:repeating-linear-gradient(0deg,#C9B08A 0 6px,#A88C66 6px 7px,#D8C29C 7px 12px)}
.sw-mdf{background:#9C8E7C}
.sw-vid{background:linear-gradient(135deg,rgba(181,185,187,.25),rgba(237,237,235,.06) 60%,rgba(181,185,187,.2))}
.deliv{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.deliv li{padding:30px 22px 0 0}
.deliv li+li{padding-left:22px;border-left:1px solid var(--line)}
.deliv .k{display:block;font:400 .66rem/1 var(--f-mono);letter-spacing:.18em;color:var(--accent);margin-bottom:22px}
.deliv b{display:block;font-family:var(--f-co);font-weight:500;font-size:1.4rem;line-height:1.15;margin-bottom:8px}
.deliv span{color:var(--ink-2);font-size:.92rem}

/* Páginas legales */
.legal h2{font-size:var(--t4);font-weight:500;margin:2.2em 0 .7em}
.legal p,.legal li{color:var(--ink-2)}

/* 404 */
.e404{min-height:70vh;display:grid;align-content:center}
.e404 .big{font:300 clamp(6rem,4rem + 10vw,14rem)/.8 var(--f-co);color:var(--line-2);letter-spacing:-.04em}

/* =====================================================================
   TRANSICIONES DE PÁGINA
   ===================================================================== */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .22s var(--ease) both}
::view-transition-new(root){animation:vt-in .42s var(--ease-out) both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(8px)}}

/* =====================================================================
   RESPONSIVO
   ===================================================================== */
@media (max-width:1180px){
  .nav,.hdr .btn,.hdr .switch,.hdr-sec{display:none}
  .burger{display:block}
}
@media (min-width:1181px){.mnav{display:none}}
@media (max-width:1024px){
  .hero-gc .h-t{grid-column:1/-1}
  .hero-gc .h-a{grid-column:1/-1;margin-top:48px;max-width:560px}
  .who-h{grid-column:1/-1;margin-bottom:28px}.who-l{grid-column:1/-1}
  .svc a{grid-template-columns:64px 1fr 44px}
  .svc a p{grid-column:2;grid-row:2}
  .svc a .go{grid-column:3;grid-row:1}
  .svc-x a .tags{grid-column:2;grid-row:3}
  .steps{grid-template-columns:1fr 1fr}
  .steps li:nth-child(3){padding-left:0;border-left:0}
  .mani blockquote{grid-column:1/-1}.mani .vals{grid-column:1/-1;margin-top:40px}
  .resp-ph{grid-column:1/span 5}.resp-b{grid-column:7/span 6}
  .cross-t{grid-column:1/span 7}.cross-i{grid-column:8/span 5}
  .cta h2{grid-column:1/-1}.cta .c-a{grid-column:1/-1;margin-top:28px}
  .ph-t{grid-column:1/-1}.ph-a{grid-column:1/-1;margin-top:28px}
  .sd-aside{grid-column:1/-1;position:static;margin-bottom:40px}
  .sd-aside .toc{display:none}
  .sd-aside .btn{width:auto}
  .sd-main{grid-column:1/-1}
  .sd-n{grid-column:9/span 4}
  .cases{grid-template-columns:1fr 1fr}
  .cases li:nth-child(3){padding-left:0;border-left:0}
  .cases li:nth-child(n+3){border-top:1px solid var(--line)}
  .res .r-l,.res .r-c{grid-column:1/-1}
  .res .r-c{margin-top:48px}
  .ct-i{grid-column:1/-1;margin-bottom:48px}.ct-f{grid-column:1/-1}
  .ftr-b{grid-column:1/-1;margin-bottom:24px}
  .ftr-col,.ftr-c{grid-column:span 3}
  .intro .i-h,.intro .i-b{grid-column:1/-1}.intro .i-b{margin-top:28px}
  .map-l .ml-t,.map-l .ml-m{grid-column:1/-1}.map-l .ml-m{margin-top:32px}
  .hc-t{grid-column:1/-1}
  .hc-v{grid-column:1/-1;height:min(64vh,560px)}
  .hero-co{min-height:0}
  .scue{display:none}
  .cq .q{grid-column:1/-1}.cq .side{display:none}
  .svc-co ol{grid-column:1/-1}.svc-co .pv{display:none}
  .proc-s{grid-column:1/-1;position:static;margin-bottom:40px}
  .proc-s .big{display:none}
  .proc-l{grid-column:1/-1}
  .pd-spec{grid-column:1/-1;position:static;margin-bottom:48px}
  .pd-txt{grid-column:1/-1}
  .mat,.deliv{grid-template-columns:1fr 1fr}
  .mat li:nth-child(3),.deliv li:nth-child(3){padding-left:0;border-left:0}
  .mat li:nth-child(n+3),.deliv li:nth-child(n+3){margin-top:28px;border-top:1px solid var(--line)}
}
@media (max-width:768px){
  :root{--hdr:66px;--hdr-s:58px}
  .split{flex-direction:column}
  .half{min-height:72svh;flex:1 1 auto}
  .half:hover,.half:focus-visible{flex-grow:1}
  .half .geo{width:110vw;right:-30%}
  .p-bot{grid-template-columns:1fr}
  .diff{grid-template-columns:1fr}
  .diff li,.diff li+li{padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}
  .who-l li{grid-template-columns:1fr;gap:6px}
  .resp-ph{grid-column:1/-1;max-width:360px}.resp-b{grid-column:1/-1;margin-top:32px}
  .cross .grid{min-height:0}
  .cross-t{grid-column:1/-1;padding-bottom:32px}
  .cross-i{grid-column:1/-1;height:300px;margin-bottom:56px}
  .cross-i img{inset:0;height:100%}
  .voice{grid-template-columns:1fr}
  .voice li,.voice li:nth-child(even){padding:24px 0;border-left:0}
  .works li{grid-template-columns:1fr;gap:6px}
  .inc{grid-template-columns:1fr}
  .timeline{grid-template-columns:1fr;gap:0}
  .timeline::before{left:5px;right:auto;top:0;bottom:0;width:1px;height:auto}
  .timeline li{padding:0 0 22px 30px}
  .timeline li::before{top:3px}
  .vs{grid-template-columns:1fr}
  .vs>div+div{border-left:0;border-top:1px solid var(--line)}
  .rel{grid-template-columns:1fr}
  .rel a,.rel a+a{padding:24px 0;border-left:0;border-bottom:1px solid var(--line)}
  .notes article{grid-template-columns:1fr;gap:10px}
  .form{grid-template-columns:1fr}
  .ftr-col,.ftr-c{grid-column:span 6;margin-bottom:28px}
  .sd-n{display:none}
  .fp-1,.fp-2,.fp-3,.fp-4,.pt-a,.pt-b,.pt-c,.pt-d,.port.filtered .pj{grid-column:1/-1!important;margin-top:0!important}
  .facts-co{grid-template-columns:1fr}
  .facts-co div,.facts-co div+div{padding:24px 0;border-left:0;border-bottom:1px solid var(--line)}
  .pd-h .t,.pd-h .code{grid-column:1/-1;justify-self:start;text-align:left}
  .pd-h .code{margin-top:24px}
  .pd-gal .g1,.pd-gal .g2,.pd-gal .g3,.pd-gal .g4{grid-column:1/-1}
  .pd-nav{grid-template-columns:1fr}
  .pd-nav a+a{text-align:left;border-left:0;border-top:1px solid var(--line);padding-left:0}
  .svc-head{flex-direction:column;align-items:flex-start}
}
@media (max-width:480px){
  .steps{grid-template-columns:1fr}
  .steps li,.steps li+li{padding:28px 0 8px;border-left:0}
  .steps li+li::before{left:0}
  .steps li+li{border-top:1px solid var(--line)}
  .cases{grid-template-columns:1fr}
  .cases li,.cases li+li{padding:26px 0;border-left:0;border-top:1px solid var(--line)}
  .facts{grid-template-columns:1fr}
  .facts div:nth-child(even){padding-left:0;border-left:0}
  .mat,.deliv{grid-template-columns:1fr}
  .mat li,.mat li+li,.deliv li,.deliv li+li{padding:24px 0;border-left:0;border-top:1px solid var(--line);margin-top:0}
  .ftr-col,.ftr-c{grid-column:1/-1}
  .trio{grid-template-columns:1fr}
  .brand-t small{display:none}
  .svc a{grid-template-columns:44px 1fr 40px;gap:14px}
  .ledger li{padding:16px 18px}
  .ledger header{padding:18px}
  .crumbs{margin-bottom:24px}
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .js .rv,.js .rv-line{opacity:1;transform:none}
  .draw path,.draw line,.draw rect,.draw polyline{stroke-dasharray:none;stroke-dashoffset:0}
  @view-transition{navigation:none}
}

/* ---------- Impresión ---------- */
@media print{
  .hdr,.mnav,.ftr,.scue,.filters,.sd-aside .btn{display:none!important}
  .site{background:#fff;color:#000}
  .js .rv{opacity:1;transform:none}
}

/* Mapa abstracto (Nosotros) */
.hexmap{position:absolute;inset:-12%;width:124%;height:124%;color:var(--gc-platino)}
.map-l .ml-m::after{content:"Liberia · Guanacaste";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:500 .7rem/1 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gc-petroleo);background:var(--surface);padding:10px 14px;border:1px solid var(--line-2)}
.b-co .h-page em,.b-co .display em{font-style:italic}
.cta-gc{border-top:1px solid var(--line)}
.cta-gc h2{color:var(--gc-tinta)}
.switch{flex:none}
.hdr .brand{min-width:0}
.proc-s .big,.pd-h .code b,.facts-co b,.e404 .big,.sd-n,.pd-nav b,.cq .q p{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
.b-co .nav>a,.b-co .nav .dd>button{padding:0 10px}
@media (max-width:1024px){
  .svc-co li>div,.svc-co li:hover>div,.svc-co li.on>div{grid-template-columns:1fr;padding-left:0;gap:8px}
  .svc-co p{grid-column:1}
  .svc-co li:not(.on) h3{color:var(--ink)}
}
@media (max-width:768px){
  .p-top{display:none}
  .hc-v .cap{display:none}
  .hc-v .plate{width:40%}
}

.sd-n::before{content:attr(data-n)}

/* =====================================================================
   BIBLIOTECA (v8.1)
   ===================================================================== */
.lib-bar{display:flex;flex-wrap:wrap;gap:18px 32px;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:22px}
.lib-bar .filters{border:0;margin:0;padding-bottom:16px}
.lib-s{flex:0 1 340px;padding-bottom:12px}
.lib-s input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-2);padding:8px 0;font-size:.95rem;color:var(--ink);-webkit-appearance:none;appearance:none;border-radius:0}
.lib-s input:focus{outline:0;border-bottom-color:var(--ink);box-shadow:0 1px 0 0 var(--ink)}
.lib-s input::placeholder{color:var(--muted)}
.lib{border-top:1px solid var(--line-2);margin-top:14px}
.lib-i{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:8px 28px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line)}
.lib-i[hidden]{display:none}
.lib-k{display:flex;flex-direction:column;gap:6px;font:400 .66rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:4px}
.lib-k b{font-weight:500;color:var(--ink);letter-spacing:.06em}
.lib-t h3{font-size:1.06rem;font-weight:500;letter-spacing:-.005em;margin-bottom:6px;line-height:1.3}
.b-co .lib-t h3{font-family:var(--f-co);font-size:1.4rem;font-weight:400}
.lib-t p{color:var(--ink-2);font-size:.93rem;margin:0 0 8px;max-width:70ch}
.lib-t small{font:400 .72rem/1.5 var(--f-mono);color:var(--muted)}
.lib-d{display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:0 16px;border:1px solid var(--line-2);text-decoration:none;color:var(--ink);font:500 .72rem/1 var(--f-mono);letter-spacing:.08em;white-space:nowrap;border-radius:2px;transition:background .25s,color .25s,border-color .25s;align-self:center}
.lib-d svg{width:13px;height:15px;transition:transform .3s var(--ease-out)}
.lib-d:hover{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.lib-d:hover svg{transform:translateY(2px)}
.lib-none{padding:40px 0;color:var(--muted)}
.lib-empty{border-top:1px solid var(--line-2);padding:40px 0;max-width:60ch}
@media (max-width:768px){
  .lib-i{grid-template-columns:1fr;gap:10px}
  .lib-k{flex-direction:row;gap:12px;padding-top:0}
  .lib-d{justify-self:start}
  .lib-s{flex:1 1 100%}
}
/* v8.1: seis entradas en el menú — se ajusta el encabezado */
.hdr .wrap{gap:22px}
.b-co .nav>a,.b-co .nav .dd>button{padding:0 8px;letter-spacing:.14em}
.b-co .nav>a::after{left:8px;right:8px}
.nav>a,.nav .dd>button{padding:0 10px}
.nav>a::after,.nav .dd>button::after{left:10px;right:10px}
@media (max-width:1320px){
  .b-co .nav,.b-co .hdr .btn,.b-co .hdr .switch,.b-co .hdr-sec{display:none}
  .b-co .burger{display:block}
  .b-co .mnav{display:flex}
}
