/*
Theme Name: Roads Consulting Group
Theme URI: https://roadscg.com
Author: Roads Consulting Group
Author URI: https://roadscg.com
Description: Tema personalizado para Roads Consulting Group, convertido desde el sitio estático original (Netlify) a WordPress. Incluye plantillas para Home, About, Services, Portfolio, Grant Programs, Technical Assistance, Seminars y Contact.
Version: 1.0.3
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: roadscg
*/
/* ============================================================
   ROADS CONSULTING GROUP — GLOBAL DESIGN SYSTEM
   Premium / editorial / cinematic. Dark base + warm accent.
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --red:#C24C26; --red2:#D9603A; --red-soft:rgba(194,76,38,.12);
  --bg:#000; --bg2:#0d0d0d; --bg3:#111; --paper:#f2f1ec;
  --fg:#fff; --muted:#888; --muted2:#aaa; --line:rgba(255,255,255,.1);
  --line-d:rgba(0,0,0,.12);
  --ff:'Plus Jakarta Sans',system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --maxw:1300px;
  /* V2 tokens — rediseño marketing (mockup roads_website_final 17) */
  --brand:#C24C26; --brand-dark:#973819;
  --black:#1A1A18; --dark:#1A1A18; --white:#FFFFFF;
  --cream:#FFFDF7; --off-white:#FFFDF7;
  --gray:#6B6966; --gray-light:#F0EDE8; --border:#E4DDD6;
}

html{scroll-behavior:smooth;overflow-x:hidden}
body{background:var(--bg);color:var(--fg);font-family:var(--ff);overflow-x:hidden;cursor:none;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--red);color:#fff}

/* ---------- CUSTOM CURSOR ---------- */
#cur,#cur2{position:fixed;top:0;left:0;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);z-index:9999}
#cur{width:10px;height:10px;background:var(--red);z-index:10000;transition:width .2s,height .2s}
#cur2{width:40px;height:40px;border:1.5px solid rgba(194,76,38,.5);transition:width .25s,height .25s,background .25s}
body.cur-hover #cur{width:5px;height:5px}
body.cur-hover #cur2{width:60px;height:60px;background:rgba(194,76,38,.06)}
#cur{transition:width .2s,height .2s,background .2s}
#cur2{transition:width .25s,height .25s,background .25s,border-color .25s}
body.cur-light #cur{background:#FFFDF7}
body.cur-light #cur2{border-color:rgba(255,253,247,.8)}
body.cur-light.cur-hover #cur2{background:rgba(255,253,247,.14)}
body.cur-light.cur-down #cur2{border-color:#FFFDF7;background:rgba(255,253,247,.2)}

/* ---------- LOADER ---------- */
#ld{position:fixed;inset:0;z-index:9000;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px}
#ld img{width:clamp(150px,24vw,260px);opacity:0;margin-bottom:6px;transform:translateY(20px)}
#ld-bar-w{width:150px;height:1px;background:var(--line)}
#ld-bar{height:1px;width:0;background:var(--red)}
#ld-pct{font-size:.6rem;letter-spacing:.3em;color:var(--muted)}

/* ---------- NAV ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:700;padding:1.4rem 5vw;display:flex;align-items:center;justify-content:space-between;transition:background .4s,padding .4s,border-color .4s,transform .45s var(--ease);border-bottom:1px solid transparent}
nav.on{background:rgba(0,0,0,.9);backdrop-filter:blur(16px);padding:1rem 5vw;border-color:var(--line)}
nav.hide{transform:translateY(-101%)}
.n-brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.n-brand img{height:30px;width:auto}
.n-links{display:flex;gap:1.7rem;list-style:none}
.n-links a{font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .25s;position:relative}
.n-links a::after{content:'';position:absolute;bottom:-5px;left:0;width:0;height:1.5px;background:var(--red);transition:width .3s}
.n-links a:hover,.n-links a.active{color:#fff}
.n-links a.active::after,.n-links a:hover::after{width:100%}
.n-cta{font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#fff;padding:.6rem 1.4rem;text-decoration:none;background:linear-gradient(90deg,var(--red2) 0 50%,var(--red) 50% 100%);background-size:205% 100%;background-position:100% 0;transition:background-position .5s var(--ease),transform .2s}
.n-cta:hover{background-position:0 0;transform:translateY(-2px)}
.n-ham{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;background:none;border:none}
.n-ham span{display:block;width:24px;height:1.5px;background:#fff;transition:transform .3s,opacity .3s;border-radius:2px}
.n-ham.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.n-ham.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.n-ham.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
#mob-menu{position:fixed;inset:0;z-index:650;background:rgba(0,0,0,.97);backdrop-filter:blur(20px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.9rem;opacity:0;pointer-events:none;transition:opacity .35s}
#mob-menu.open{opacity:1;pointer-events:all}
#mob-menu a{font-size:1.3rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;text-decoration:none;transition:color .25s,transform .25s;transform:translateY(18px);opacity:0}
#mob-menu.open a{transform:translateY(0);opacity:1}
#mob-menu a:hover{color:var(--red)}
#mob-menu .mob-cta{background:var(--red);color:#fff;padding:.85rem 2.6rem;font-size:.7rem;letter-spacing:.22em;margin-top:.4rem}
@media(max-width:980px){.n-links,.n-cta{display:none}.n-ham{display:flex}}

/* ---------- SHARED TYPE / UTILITIES ---------- */
.eye{font-size:.6rem;font-weight:600;letter-spacing:.42em;text-transform:uppercase;color:var(--red);display:flex;align-items:center;gap:2rem;margin-bottom:1.6rem}
.eye::before{content:'';width:40px;height:1.5px;background:var(--red);flex:none}
.eye.muted{color:var(--muted)}
.lbl{font-size:.58rem;font-weight:700;letter-spacing:.38em;text-transform:uppercase;color:var(--red);margin-bottom:1rem}
.btn-r{font-size:.63rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#fff;padding:.95rem 2.2rem;text-decoration:none;display:inline-block;background:linear-gradient(90deg,var(--red2) 0 50%,var(--red) 50% 100%);background-size:205% 100%;background-position:100% 0;transition:background-position .5s var(--ease),transform .2s}
.btn-r:hover{background-position:0 0;transform:translateY(-2px)}
.btn-r::after{content:'→';display:inline-block;margin-left:.6rem;font-size:.9em;transition:transform .35s var(--ease)}
.btn-r:hover::after{transform:translateX(5px)}
.btn-g{font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:color .25s}
.btn-g:hover{color:#fff}
.btn-g::after{content:'↗'}
.wrap{max-width:var(--maxw);margin:0 auto}

/* ---------- PAGE HERO (interior pages) ---------- */
.phero{position:relative;padding:clamp(9rem,18vh,13rem) 5vw clamp(3.5rem,7vw,6rem);border-bottom:1px solid var(--line);overflow:hidden}
.phero .geo-c{position:absolute;border:1px solid rgba(194,76,38,.13);border-radius:50%;width:clamp(280px,38vw,560px);height:clamp(280px,38vw,560px);top:50%;right:-6%;transform:translateY(-50%);pointer-events:none}
.phero .gdots{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(135deg,transparent 40%,black 80%);pointer-events:none}
.phero-in{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto}
.phero h1{font-size:clamp(2.4rem,7vw,6rem);font-weight:900;letter-spacing:-.03em;line-height:1.02;margin-bottom:1.4rem}
.phero h1 span:not(.lm-l):not(.lm-i){color:var(--red)}
.phero p{font-size:clamp(.9rem,1.3vw,1.05rem);font-weight:300;color:var(--muted);line-height:1.9;max-width:560px}
.crumb{font-size:.58rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:1.6rem}
.crumb a{color:var(--muted);text-decoration:none;transition:color .25s}
.crumb a:hover{color:var(--red)}

/* ---------- TICKER ---------- */

.ts{font-size:.45rem;color:var(--red);vertical-align:middle}
@keyframes tk{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ---------- SECTION HEADERS ---------- */
.sec{padding:clamp(4.5rem,9vw,9rem) 5vw}
.sec.light{background:#fff;color:#111}
.sec.paper{background:var(--paper);color:#111}
.sec-hdr{margin-bottom:clamp(2.5rem,5vw,4rem)}
.sec-hdr h2{font-size:clamp(2rem,5.5vw,4.6rem);font-weight:900;letter-spacing:-.03em;line-height:1.03}
.sec-hdr h2 span{color:var(--red)}
.sec.light h2,.sec.paper h2{color:#111}

/* ---------- STAT CARDS ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.stat{padding:2rem 1.8rem;border:1px solid var(--line);position:relative}
.stat::after{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:var(--red)}
.stat .num{font-size:clamp(2.4rem,5vw,3.6rem);font-weight:900;line-height:1;letter-spacing:-.03em;margin-bottom:.4rem}
.stat .num s2{color:var(--red);font-weight:300}
.stat .cap{font-size:.62rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}

/* ---------- TEAM GRID ---------- */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
.tm{position:relative;overflow:hidden;background:var(--bg2)}
.tm img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;filter:grayscale(55%) brightness(.72);transition:filter .55s,transform .55s}
.tm:hover img{filter:grayscale(0%) brightness(.85);transform:scale(1.04)}
.tm-i{position:absolute;bottom:0;left:0;right:0;padding:1.6rem 1.3rem;background:linear-gradient(transparent,rgba(0,0,0,.94))}
.tm-n{font-size:.95rem;font-weight:700;line-height:1.15}
.tm-r{font-size:.56rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin-top:.25rem}
.tm-bar{width:0;height:2px;background:var(--red);margin-top:.6rem;transition:width .45s}
.tm:hover .tm-bar{width:34px}

/* ---------- FEATURE SPLIT ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,8rem);align-items:center}
.split h2{font-size:clamp(2rem,4vw,4rem);font-weight:900;line-height:1.05;letter-spacing:-.03em;margin-bottom:1.4rem}
.split h2 em{font-style:italic;font-weight:300;color:#ccc}
.split p{font-size:.9rem;font-weight:300;color:var(--muted);line-height:1.9;margin-bottom:1.8rem;max-width:440px}

/* ---------- CONTACT ---------- */
.cwrap{position:relative;overflow:hidden;background:var(--bg3)}
.cglow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:55%;height:65%;background:radial-gradient(ellipse,rgba(194,76,38,.08),transparent 70%);pointer-events:none}
.cgrid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(3rem,7vw,9rem);align-items:center;position:relative;z-index:2}
.cgrid h2{font-size:clamp(2.5rem,6vw,7rem);font-weight:900;line-height:.95;letter-spacing:-.04em;margin-bottom:1.6rem}
.cgrid h2 span{color:var(--red)}
.cgrid .lead{font-size:.9rem;font-weight:300;color:var(--muted);line-height:1.9;margin-bottom:2rem;max-width:380px}
.cinfo{display:flex;flex-direction:column;gap:1.8rem}
.cit .clbl{font-size:.56rem;font-weight:700;letter-spacing:.38em;text-transform:uppercase;color:var(--red);margin-bottom:.4rem}
.cit .cval{font-size:.98rem;font-weight:300}
.cit .cval a{color:inherit;text-decoration:none;transition:color .25s}
.cit .cval a:hover{color:var(--red)}
.socr{display:flex;gap:1.6rem;flex-wrap:wrap}
.socr a{font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .25s}
.socr a:hover{color:#fff}

/* ---------- FOOTER ---------- */
footer{border-top:1px solid var(--line);padding:2.4rem 5vw}

/* ---------- REVEAL CLASSES ---------- */
.fu{opacity:0;transform:translateY(48px)}
.fl2{opacity:0;transform:translateX(-55px)}
.fr2{opacity:0;transform:translateX(55px)}
.si{opacity:0;transform:scale(.93)}
.is-in{opacity:1 !important;transform:none !important}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:980px){
  .team-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:768px){
  #cur,#cur2{display:none}
  body{cursor:auto}
  nav{padding:1.1rem 5vw}
  .split{grid-template-columns:1fr;gap:2.5rem}
  .split p{max-width:100%}
  .stats{grid-template-columns:1fr}

  .team-grid{grid-template-columns:repeat(2,1fr)}

  .cgrid{grid-template-columns:1fr;gap:2.6rem}
  .cgrid .lead{max-width:100%}

  .phero p{max-width:100%}
}
@media(max-width:460px){
  .team-grid{grid-template-columns:1fr}
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .fu,.fl2,.fr2,.si{opacity:1 !important;transform:none !important}

  #cur,#cur2{display:none !important}
  body{cursor:auto !important}
}

/* ---------- prevent glyph clipping on large display headings (accents & descenders) ---------- */
.phero h1,.sec-hdr h2,.split h2,.cgrid h2{line-height:1.12;padding-bottom:.08em}
.eye,.lbl,.crumb{overflow:visible}

/* ============================================================
   DETAIL LAYER v2 — "Success lives in the details"
   Micro-interacciones y acabados que muestran el músculo de
   diseño sin romper el tono corporativo ni la legibilidad.
   ============================================================ */

/* ---------- scrollbar & focus (acabado de producto) ---------- */
html{scrollbar-color:#2a2a2a #0a0a0a;scrollbar-width:thin}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#0a0a0a}
::-webkit-scrollbar-thumb{background:#262626;border-radius:99px;border:2px solid #0a0a0a}
::-webkit-scrollbar-thumb:hover{background:var(--red)}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:2px}

/* ---------- barra de progreso de lectura (inyectada por JS) ---------- */
.sprog{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--red),var(--red2));z-index:801;pointer-events:none}

/* ---------- máscara de líneas para titulares hero ---------- */
.lm .lm-l{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.lm .lm-i{display:inline-block;transform:translateY(118%);transition:transform 1.05s var(--ease)}
.lm.lm-on .lm-i{transform:none}

/* ---------- eyebrow: la línea se dibuja al entrar ---------- */
.eye.fu::before,.h-eye.fu::before{transform:scaleX(0);transform-origin:left}
.eye.fu.is-in::before,.h-eye.fu.is-in::before{transform:scaleX(1);transition:transform .8s var(--ease) .35s}

/* ---------- palabra acento en h2: subrayado que se traza ---------- */
h2 span{position:relative}
h2 span::after{content:'';position:absolute;left:.02em;right:.05em;bottom:-.055em;height:max(2px,.045em);background:var(--red);opacity:.45;transform:scaleX(0);transform-origin:left;transition:transform .9s var(--ease) .55s;pointer-events:none;border-radius:2px}
h2.is-in span::after,.is-in h2 span::after{transform:scaleX(1)}

/* ---------- tarjetas: línea superior que recorre al hover ---------- */
.hub-card,.pillar,.reason,.tcard{position:relative}

.vcard::before,.hub-card::before,.prog::before,.pillar::before,.reason::before,.stat::before{content:'';position:absolute;top:-1px;left:0;height:2px;width:0;background:var(--red);transition:width .55s var(--ease);z-index:1}
.vcard:hover::before,.hub-card:hover::before,.prog:hover::before,.pillar:hover::before,.reason:hover::before,.stat:hover::before{width:100%}
.reason{transition:border-color .3s,transform .3s}
.reason:hover{border-color:rgba(194,76,38,.4);transform:translateY(-3px)}

/* ---------- stats: la barra de acento respira al hover ---------- */
.stat{transition:border-color .35s}
.stat::after{transition:width .45s var(--ease)}
.stat:hover{border-color:rgba(194,76,38,.35)}
.stat:hover::after{width:7px}

/* ---------- fotos de liderazgo: cortina de marca al revelar ---------- */
.leader .lead-media::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,var(--red),#7a2f16);z-index:2;transform:scaleX(1);transform-origin:right;transition:transform .95s var(--ease) .2s;pointer-events:none}
.leader.is-in .lead-media::before{transform:scaleX(0)}

/* ---------- cursor: reacciona al click ---------- */
body.cur-down #cur{width:5px;height:5px}
body.cur-down #cur2{width:26px;height:26px;border-color:var(--red);background:rgba(194,76,38,.14)}

/* ---------- reduced motion para la capa de detalles ---------- */
@media(prefers-reduced-motion:reduce){
  .lm .lm-i{transform:none !important}
  .eye.fu::before,h2 span::after{transform:none !important}
  .leader .lead-media::before{display:none !important}
  .sprog{display:none !important}
  nav.hide{transform:none !important}
}

/* ============================================================
   DETAIL LAYER v3 — "Signature Motion"
   Heroes vivos · transición de página sin costura · barrido de
   luz en CTAs · grano y profundidad. Sube el impacto sin tocar
   la legibilidad ni el tono corporativo.
   El portafolio queda excluido: su hero usa .p-open (no .phero)
   y main.js omite la transición de página en portfolio.html.
   ============================================================ */

/* ---------- legibilidad: cuerpo un punto más claro ---------- */
:root{--muted:#9a9a9a}

/* ---------- 2 · TRANSICIÓN DE PÁGINA (fade-in al cargar / fade-out al navegar) ---------- */
html.pgfx body{opacity:0}
html.pgfx.pg-in body{opacity:1;transition:opacity .55s var(--ease)}
html.pgfx.pg-out body{opacity:0;transition:opacity .32s ease}

/* ---------- 1 · HEROES VIVOS · páginas interiores (.phero) ---------- */
/* aurora terracota que deriva detrás del titular */
.phero::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(58% 55% at 72% 42%,rgba(194,76,38,.12),transparent 62%);
  animation:v3aur 16s ease-in-out infinite}
@keyframes v3aur{0%,100%{transform:translate3d(0,0,0) scale(1);opacity:.85}
  50%{transform:translate3d(-2.5%,2%,0) scale(1.09);opacity:1}}
/* segundo anillo tenue girando en sentido contrario (profundidad) */
.phero::before{content:'';position:absolute;top:50%;right:-13%;z-index:0;pointer-events:none;
  width:clamp(360px,50vw,760px);height:clamp(360px,50vw,760px);
  border:1px solid rgba(255,255,255,.05);border-radius:50%;
  transform:translateY(-50%);animation:v3spinR 40s linear infinite}
@keyframes v3spinR{from{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(-360deg)}}
/* el anillo de acento orbita con un nodo terracota viajando por su borde */
.phero .geo-c{z-index:1;animation:v3spin 26s linear infinite}
@keyframes v3spin{from{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}
.phero .geo-c::after{content:'';position:absolute;top:-6px;left:50%;width:12px;height:12px;margin-left:-6px;
  border-radius:50%;background:var(--red);box-shadow:0 0 22px 4px rgba(194,76,38,.5)}
.phero-in{position:relative;z-index:2}
.phero .geo-c,.phero::before,.phero::after{will-change:transform}

/* ---------- 1 · HEROES VIVOS · Home (#hero) ---------- */

@keyframes v3spin2{from{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}

@keyframes v3float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* ---------- 3 · BARRIDO DE LUZ EN CTAs PRIMARIOS ---------- */
.btn-r{position:relative;overflow:hidden}
.btn-r::before{content:'';position:absolute;top:0;bottom:0;left:0;width:45%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);
  transform:translateX(-260%) skewX(-16deg);transition:transform .75s var(--ease)}
.btn-r:hover::before{transform:translateX(360%) skewX(-16deg)}

/* ---------- 5 · PROFUNDIDAD EN TARJETAS AL HOVER ---------- */
.pcard{transition:border-color .35s,transform .35s,box-shadow .35s}
.pcard:hover{box-shadow:0 24px 60px -22px rgba(0,0,0,.75)}
.stat{transition:border-color .35s,box-shadow .35s}
.stat:hover{box-shadow:0 20px 46px -26px rgba(194,76,38,.5)}

/* ---------- 5 · GRANO PREMIUM (textura fina; no afecta la lectura) ---------- */
body::before{content:'';position:fixed;inset:0;z-index:5000;pointer-events:none;opacity:.035;
  mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px}

/* ---------- reduced-motion: capa v3 estática y limpia ---------- */
@media(prefers-reduced-motion:reduce){
  .phero::after,.phero::before,.phero .geo-c,
  #hero .gc2,#hero .gr{animation:none !important}
  html.pgfx body{opacity:1 !important}
}

/* ============================================================
   DETAIL LAYER v4 — "The Journey / El Camino"
   Narrativa de scroll: la web se recorre como un camino.
   · Journey Rail  (riel de capítulos + progreso + navegación)
   · Chapter HUD   (indicador de capítulo activo)
   · Mile-markers  (costuras que se trazan al entrar cada sección)
   · Parallax      (profundidad en hero y decoraciones)
   TODO cuelga de html.road-on — clase que main.js añade SOLO fuera
   del portafolio. Así el portafolio no recibe nada de esta capa.
   No modifica ninguna regla previa; solo agrega selectores nuevos.
   ============================================================ */

/* ---------- capítulos: contenedor de referencia + mile-marker ---------- */
html.road-on .chapfx{position:relative}
html.road-on .rcg-seam{position:absolute;top:0;left:0;right:0;height:2px;z-index:3;pointer-events:none;overflow:hidden}
html.road-on .rcg-seam::before{content:'';position:absolute;top:0;left:0;height:100%;width:0;
  background:linear-gradient(90deg,var(--red),rgba(194,76,38,0));transition:width 1.1s var(--ease)}
html.road-on .rcg-seam.in::before{width:min(340px,44%)}

/* ---------- Journey Rail (solo desktop ancho) ---------- */
html.road-on .rcg-rail{position:fixed;left:22px;top:50%;transform:translateY(-50%);z-index:640;
  display:none;flex-direction:column;align-items:center;gap:16px;padding:5px 0;pointer-events:none}
html.road-on .rcg-rail .rcg-line{position:absolute;left:50%;top:5px;bottom:5px;width:2px;
  transform:translateX(-50%);background:rgba(150,150,150,.26);border-radius:2px}
html.road-on .rcg-rail .rcg-fill{position:absolute;left:50%;top:5px;width:2px;transform:translateX(-50%);
  background:linear-gradient(var(--red),var(--red2));border-radius:2px;
  height:calc((100% - 10px) * var(--rp,0));transition:height .12s linear;box-shadow:0 0 10px rgba(194,76,38,.5)}
html.road-on .rcg-dot{position:relative;width:11px;height:11px;border-radius:50%;
  background:rgba(150,150,150,.45);border:1px solid rgba(150,150,150,.3);
  pointer-events:auto;cursor:none;z-index:2;transition:background .3s,transform .3s,box-shadow .3s}
html.road-on .rcg-dot:hover{transform:scale(1.25);background:var(--red2)}
html.road-on .rcg-dot.on{background:var(--red);box-shadow:0 0 0 4px rgba(194,76,38,.16);transform:scale(1.15)}
html.road-on .rcg-dot.on::after{content:'';position:absolute;inset:-5px;border-radius:50%;
  border:1.5px solid var(--red);animation:rcgPulse 1.7s var(--ease) infinite;pointer-events:none}
@keyframes rcgPulse{0%{transform:scale(.6);opacity:.75}70%{transform:scale(2);opacity:0}100%{opacity:0}}
html.road-on .rcg-dot .rcg-lab{position:absolute;left:22px;top:50%;transform:translateY(-50%) translateX(-6px);
  white-space:nowrap;font-size:.55rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#fff;
  background:rgba(0,0,0,.72);border:1px solid var(--line);padding:.42rem .72rem;border-radius:999px;
  opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;backdrop-filter:blur(6px)}
html.road-on .rcg-dot .rcg-lab b{color:var(--red);font-weight:800;margin-right:.5em}
html.road-on .rcg-dot:hover .rcg-lab,html.road-on .rcg-dot.on .rcg-lab{opacity:1;transform:translateY(-50%) translateX(0)}

/* ---------- Chapter HUD (indicador de capítulo activo) ---------- */
html.road-on .rcg-hud{position:fixed;left:24px;bottom:20px;z-index:640;display:none;align-items:center;gap:.6rem;
  background:rgba(0,0,0,.55);backdrop-filter:blur(8px);border:1px solid var(--line);
  padding:.5rem .9rem;border-radius:999px;pointer-events:none;opacity:0;transform:translateY(10px);
  transition:opacity .5s var(--ease),transform .5s var(--ease)}
html.road-on .rcg-hud.show{opacity:1;transform:none}
html.road-on .rcg-hud .rcg-hud-n{font-size:.62rem;font-weight:800;letter-spacing:.1em;color:var(--red);
  font-variant-numeric:tabular-nums}
html.road-on .rcg-hud .rcg-hud-t{font-size:.56rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:#fff;position:relative;padding-left:.65rem}
html.road-on .rcg-hud .rcg-hud-t::before{content:'';position:absolute;left:0;top:50%;width:1px;height:11px;
  transform:translateY(-50%);background:rgba(255,255,255,.3)}

/* mostrar riel + HUD solo en pantallas anchas (hay margen y no estorban) */
@media(min-width:1200px){
  html.road-on .rcg-rail{display:flex}
  html.road-on .rcg-hud{display:flex}
}

/* ---------- parallax: los decorativos se preparan para moverse ---------- */
html.road-on [data-par]{will-change:transform}

/* ---------- reduced-motion: narrativa estática y legible ---------- */
@media(prefers-reduced-motion:reduce){
  html.road-on .rcg-rail,html.road-on .rcg-hud{display:none !important}
  html.road-on .rcg-seam::before{width:min(340px,44%) !important;transition:none !important}
  html.road-on [data-par]{transform:none !important}
}

/* ---- HOME (index) ---- */
#hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 5vw 7vh;overflow:hidden}
#hc{position:absolute;inset:0;width:100%;height:100%;display:block}

.gc1{width:clamp(300px,42vw,640px);height:clamp(300px,42vw,640px);border:1px solid rgba(255,255,255,.04);border-radius:50%;top:50%;right:-6%;transform:translateY(-50%)}

.gdots{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(135deg,transparent 35%,black 75%)}
.h-eye{font-size:.6rem;font-weight:600;letter-spacing:.45em;text-transform:uppercase;color:var(--red);margin-bottom:2.2rem;display:flex;align-items:center;gap:2rem}
.h-eye::before{content:'';width:38px;height:1.5px;background:var(--red)}
.h1{font-size:clamp(2rem,5.2vw,5.6rem);font-weight:900;line-height:1.12;letter-spacing:-.03em;margin-bottom:2rem}

.h1 .lt{font-weight:300;font-style:italic}
.h-bot{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;position:relative;z-index:2}

.h-scroll{position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.56rem;letter-spacing:.35em;color:var(--muted);text-transform:uppercase}
.sp{width:1px;height:44px;background:linear-gradient(var(--muted),transparent);animation:spd 2s ease-in-out infinite}
@keyframes spd{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
#intro{padding:clamp(5rem,9vw,10rem) 5vw;max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 2fr;gap:clamp(3rem,6vw,8rem);align-items:center}

.pg{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2vw,1.8rem)}
.pcard{position:relative;display:flex;flex-direction:column;background:var(--bg2);border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .35s,transform .35s}
.pcard:hover{border-color:rgba(194,76,38,.45);transform:translateY(-4px)}

@media(max-width:1024px){
  .pg{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  #hero{padding:0 6vw 8vh;min-height:100svh}
  .h1{font-size:clamp(2.2rem,9vw,3.6rem);line-height:1.18}
  .h-bot{flex-direction:column;align-items:flex-start;gap:1.6rem}

  .h-scroll{display:none}
  .gc1{width:220px;height:220px;right:-15%;top:20%;transform:none}

  #intro{grid-template-columns:1fr;padding:4rem 6vw;gap:1.5rem}

  .pg{grid-template-columns:1fr}
}

/* ---- CONTACT ---- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.field{display:flex;flex-direction:column;gap:.5rem}
.field.full{grid-column:1/-1}
.field label{font-size:.56rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:color .3s}
.field input,.field textarea{background:var(--bg2);border:1px solid var(--line);color:#fff;font-family:var(--ff);font-size:.9rem;padding:.95rem 1rem;transition:border-color .25s,background-size .55s var(--ease);background-image:linear-gradient(var(--red),var(--red));background-size:0% 2px;background-position:0 100%;background-repeat:no-repeat}
.field input:focus,.field textarea:focus{outline:none;border-color:rgba(194,76,38,.55);background-size:100% 2px}
.field:focus-within label{color:var(--red)}
.field textarea{resize:vertical;min-height:130px}

@media(max-width:768px){.form-grid{grid-template-columns:1fr}}

/* ---- ABOUT ---- */
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:1rem}

.leader{display:grid;grid-template-columns:0.9fr 1.6fr;gap:clamp(2rem,4vw,4rem);align-items:center;padding:clamp(2.5rem,4vw,4rem) 0;border-bottom:1px solid var(--line)}
.leader:nth-child(even){grid-template-columns:1.6fr 0.9fr}
.leader:nth-child(even) .lead-media{order:2}
.lead-media{position:relative;border-radius:14px;overflow:hidden;background:var(--bg2)}
.lead-media img{width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(30%) brightness(.9);transition:filter .5s,transform .5s}
.leader:hover .lead-media img{filter:grayscale(0) brightness(1);transform:scale(1.03)}

#bio-modal{position:fixed;inset:0;z-index:9500;display:flex;align-items:center;justify-content:center;padding:5vw;opacity:0;pointer-events:none;transition:opacity .35s}
#bio-modal.open{opacity:1;pointer-events:auto}

.bm-role{font-size:.58rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--red);margin-bottom:.6rem}

.tm{cursor:none}
.tm .tm-more{position:absolute;top:.9rem;right:.9rem;font-size:.5rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(194,76,38,.9);padding:.35rem .6rem;border-radius:999px;opacity:0;transition:opacity .3s;z-index:3}
.tm:hover .tm-more{opacity:1}
.leader .lead-media{cursor:none}
.leader .lead-media::after{content:'View bio ↗';position:absolute;left:1rem;bottom:1rem;font-size:.54rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:rgba(194,76,38,.9);padding:.4rem .7rem;border-radius:999px;opacity:0;transition:opacity .3s}
.leader .lead-media:hover::after{opacity:1}
@media(max-width:768px){.values{grid-template-columns:1fr 1fr}.leader,.leader:nth-child(even){grid-template-columns:1fr}.leader:nth-child(even) .lead-media{order:0}}

@media(max-width:460px){.values{grid-template-columns:1fr}}

/* ---- SERVICES ---- */
.cat-tab{font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:.9rem 0;margin-right:2.2rem;display:inline-block;border-bottom:2px solid transparent;background:none;border-top:none;border-left:none;border-right:none;cursor:none;transition:color .25s,border-color .25s}
.cat-tab.on,.cat-tab:hover{color:#111;border-bottom-color:var(--red)}
.srv-item{border-bottom:1px solid var(--line-d)}
.srv-head{display:grid;grid-template-columns:74px 1fr auto 34px;align-items:center;gap:1.5rem;padding:1.9rem 0;position:relative;overflow:hidden;cursor:none;transition:padding .3s}
.srv-head::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(194,76,38,.09),transparent);transform:translateX(-100%);transition:transform .45s var(--ease)}
.srv-head:hover::before{transform:translateX(0)}
.srv-head:hover{padding-left:1rem}

.srv-detail{overflow:hidden;max-height:0;transition:max-height .55s var(--ease)}
.srv-detail-in{display:grid;grid-template-columns:1.3fr 1fr;gap:2.6rem;align-items:center;padding:.4rem 0 2.4rem}

.hub{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1rem}

.cta-band{background:var(--bg3);position:relative;overflow:hidden;text-align:center;padding:clamp(4rem,8vw,7rem) 5vw}
.cta-band h2{font-size:clamp(2rem,5vw,4rem);font-weight:900;letter-spacing:-.03em;line-height:1.05;margin-bottom:1.4rem}
.cta-band h2 span{color:var(--red)}
.cta-band p{font-size:.9rem;font-weight:300;color:var(--muted);max-width:520px;margin:0 auto 2rem;line-height:1.9}
@media(max-width:768px){
  .hub{grid-template-columns:1fr}
  .srv-head{grid-template-columns:50px 1fr auto 26px;gap:1rem;padding:1.4rem 0}

  .srv-detail-in{grid-template-columns:1fr;gap:1.2rem;padding-bottom:1.8rem}
}

/* ---- GRANT PROGRAMS ---- */
.step{display:grid;grid-template-columns:auto 1fr;gap:1.6rem;padding:1.8rem 0;border-bottom:1px solid var(--line);position:relative;transition:padding .35s var(--ease)}
.step .sn{font-size:clamp(1.8rem,4vw,3rem);font-weight:900;color:rgba(255,255,255,.1);line-height:1;letter-spacing:-.03em;transition:color .4s}
.step::before{content:'';position:absolute;left:0;top:0;height:100%;width:2px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease)}
.step:hover{padding-left:1.2rem}
.step:hover::before{transform:scaleY(1)}
.step:hover .sn{color:var(--red)}
.step h3{font-size:1.2rem;font-weight:800;margin-bottom:.5rem}
.step p{font-size:.86rem;font-weight:300;color:var(--muted);line-height:1.8;max-width:560px}
.radar{background:var(--bg3);position:relative;overflow:hidden;text-align:center;padding:clamp(4rem,8vw,7rem) 5vw}
.radar h2{font-size:clamp(2rem,5vw,4rem);font-weight:900;letter-spacing:-.03em;line-height:1.05;margin-bottom:1.2rem}
.radar h2 span{color:var(--red)}
.radar p{font-size:.92rem;font-weight:300;color:var(--muted);max-width:520px;margin:0 auto 2rem;line-height:1.9}

/* ---- TECHNICAL ASSISTANCE ---- */
.prog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.prog{border:1px solid var(--line);padding:2rem 1.9rem;position:relative;overflow:hidden;transition:border-color .3s,transform .3s}
.prog:hover{border-color:rgba(194,76,38,.4);transform:translateY(-4px)}
.prog .pl{font-size:.55rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin-bottom:.9rem;display:flex;align-items:center;gap:.7rem}
.prog .pl::before{content:'';width:20px;height:1.5px;background:var(--red)}
.prog h3{font-size:1.15rem;font-weight:800;margin-bottom:.7rem;line-height:1.2}
.prog p{font-size:.82rem;font-weight:300;color:var(--muted);line-height:1.8}
.docs{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.docs a{font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#bbb;border:1px solid var(--line);padding:.7rem 1.2rem;text-decoration:none;transition:border-color .25s,color .25s}
.docs a:hover{border-color:var(--red);color:#fff}
@media(max-width:768px){.prog-grid{grid-template-columns:1fr}}

/* ---- SEMINARS ---- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.pillar{padding:2.2rem 1.9rem;border:1px solid var(--line);text-align:center;transition:border-color .3s,transform .3s}
.pillar:hover{border-color:rgba(194,76,38,.4);transform:translateY(-4px)}
.pillar .pi{font-size:1.7rem;color:var(--red);margin-bottom:1rem}
.pillar h3{font-size:1.1rem;font-weight:800;margin-bottom:.5rem}
.pillar p{font-size:.82rem;font-weight:300;color:var(--muted);line-height:1.75}
.reasons{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:1rem}
.reason{display:flex;gap:1rem;align-items:flex-start;padding:1.4rem 1.5rem;border:1px solid var(--line)}
.reason .rn{color:var(--red);font-weight:900;font-size:1.1rem;line-height:1.2;flex:none}
.reason h4{font-size:.95rem;font-weight:700;margin-bottom:.3rem}
.reason p{font-size:.8rem;font-weight:300;color:var(--muted);line-height:1.7}
.ev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.ev-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;background:var(--bg2);transition:border-color .3s,transform .3s;opacity:0;transform:translateY(24px);animation:evin .7s var(--ease) forwards}
@keyframes evin{to{opacity:1;transform:none}}
.ev-card:hover{border-color:rgba(194,76,38,.4);transform:translateY(-4px)}
.ev-media{aspect-ratio:16/9;background:#141414;overflow:hidden;position:relative}
.ev-media img{width:100%;height:100%;object-fit:cover;display:block}
.ev-media .ev-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 40% 30%,#46281b,#140b06);color:rgba(255,255,255,.5);font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.ev-date{position:absolute;top:.8rem;left:.8rem;background:var(--red);color:#fff;font-size:.56rem;font-weight:700;letter-spacing:.06em;padding:.4rem .7rem;border-radius:6px;text-transform:uppercase;z-index:2}
.ev-body{padding:1.5rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.ev-title{font-size:1.05rem;font-weight:800;line-height:1.28}
.ev-when{font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.ev-desc{font-size:.8rem;font-weight:300;color:var(--muted);line-height:1.7;flex:1}
.ev-card .btn-r{align-self:flex-start;margin-top:.4rem}
.ev-status{font-size:.92rem;font-weight:300;color:var(--muted);padding:3rem 1.5rem;text-align:center;border:1px dashed var(--line);border-radius:14px;line-height:1.7}
.ev-status b{color:#fff;font-weight:700}
@media(max-width:900px){.ev-grid{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.pillars{grid-template-columns:1fr}.reasons{grid-template-columns:1fr}}
@media(max-width:600px){.ev-grid{grid-template-columns:1fr}}

/* ---------- CHECK LIST (bullets con acento terracota, sin <ul> nativo) ---------- */
.chk-list{margin:1.3rem 0 1.8rem}
.chk{display:flex;gap:.9rem;align-items:flex-start;margin-bottom:.85rem;font-size:.88rem;font-weight:300;color:var(--muted2);line-height:1.6;max-width:560px}
.chk::before{content:'\2726';color:var(--red);flex:none;font-size:.62rem;margin-top:.35rem}

/* ---- PORTFOLIO ---- */
body.page-template-page-portfolio{background:#000}
#prog{position:fixed;top:0;left:0;height:2px;width:0;background:var(--red);z-index:800}
#pcount{position:fixed;left:5vw;bottom:2rem;z-index:600;font-size:.6rem;font-weight:700;letter-spacing:.2em;color:var(--muted);mix-blend-mode:difference}
#pcount b{color:#fff;font-size:.85rem}
#side-idx{position:fixed;right:2.2rem;top:50%;transform:translateY(-50%);z-index:600;display:flex;flex-direction:column;gap:.9rem}
#side-idx button{display:flex;align-items:center;justify-content:flex-end;gap:.7rem;background:none;border:none;cursor:none;color:var(--muted);font-size:.52rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
#side-idx .dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--muted);transition:transform .3s,background .3s,border-color .3s;flex:none}
#side-idx .lbl{opacity:0;transform:translateX(8px);transition:opacity .3s,transform .3s,color .3s;white-space:nowrap}
#side-idx button:hover .lbl,#side-idx button.on .lbl{opacity:1;transform:none;color:#fff}
#side-idx button.on .dot{background:var(--red);border-color:var(--red);transform:scale(1.4)}
.p-open{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 5vw;position:relative;overflow:hidden}
.p-open .gdots{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(160deg,transparent 40%,black 85%)}
.p-open .eye,.p-open h1,.p-open .sub{position:relative;z-index:2}
.p-open h1{font-size:clamp(2.6rem,10vw,9rem);font-weight:900;letter-spacing:-.04em;line-height:1.04}
.p-open h1 .ol{display:block;overflow:hidden;padding-bottom:.14em}
.p-open h1 .ol span{display:inline-block}

.p-open .sub{margin-top:2rem;max-width:440px;font-size:.9rem;font-weight:300;color:var(--muted);line-height:1.9}

@keyframes hintline{0%,100%{transform:scaleX(.4);opacity:.4}50%{transform:scaleX(1);opacity:1}}

.o-c1{width:clamp(200px,30vw,460px);height:clamp(200px,30vw,460px);border:1px solid rgba(194,76,38,.16);border-radius:50%;top:16%;right:8%}
.o-c2{width:120px;height:120px;border:14px solid rgba(194,76,38,.14);border-radius:50%;bottom:20%;right:26%}
.o-plus{color:rgba(255,255,255,.14);font-size:2rem;font-weight:300;top:30%;left:42%}
#reel{position:relative;height:100vh;overflow:hidden;background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
#reel-track{display:flex;height:100%;align-items:center;will-change:transform}
.reel-item{flex:none;width:60vw;max-width:600px;padding:0 3vw;display:flex;align-items:center;gap:2rem}

.mq-row{display:flex;white-space:nowrap;will-change:transform}
.mq-row span{font-size:clamp(2.5rem,7vw,6rem);font-weight:900;letter-spacing:-.03em;padding:0 2.5rem;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.18)}
.mq-row span.fill{color:var(--red);-webkit-text-stroke:0}
.case{position:relative;padding:clamp(4rem,10vh,9rem) 5vw;border-bottom:1px solid var(--line);overflow:hidden}
.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,6rem);align-items:center;max-width:var(--maxw);margin:0 auto;position:relative;z-index:2}
.case:nth-child(even) .case-media{order:2}
.ghost{position:absolute;z-index:0;font-size:clamp(6rem,22vw,20rem);font-weight:900;letter-spacing:-.05em;color:rgba(255,255,255,.028);line-height:.8;top:50%;left:0;transform:translateY(-50%);white-space:nowrap;pointer-events:none;will-change:transform}
.case-media{position:sticky;top:12vh}
.case-vis{position:relative;aspect-ratio:4/5;border-radius:16px;overflow:hidden;border:1px solid var(--line);will-change:transform}

.case-vis .shape{position:absolute;width:120%;aspect-ratio:1;border-radius:50%;left:-10%;top:-25%;will-change:transform}

.case-vis .cbig{position:absolute;right:1.4rem;bottom:1rem;font-size:clamp(4rem,10vw,8rem);font-weight:900;color:rgba(255,255,255,.1);line-height:.8;letter-spacing:-.04em;z-index:2;will-change:transform}

.vf-plus{color:rgba(255,255,255,.5);font-size:1.4rem;font-weight:300;top:1.3rem;right:1.5rem}
.vf-ring{width:70px;height:70px;border:1px solid rgba(255,255,255,.25);border-radius:50%;bottom:1.4rem;left:1.4rem}
.case-body{position:relative;z-index:2}
.case-body .cc{font-size:.6rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--red);margin-bottom:1.1rem;display:flex;align-items:center;gap:1rem}
.case-body .cc::before{content:'';width:26px;height:1.5px;background:var(--red);flex:none}
.case-body h3{font-size:clamp(1.9rem,4vw,3.4rem);font-weight:900;letter-spacing:-.02em;line-height:1.12;margin-bottom:1.4rem;padding-bottom:.06em}
.case-body h3 .wd{display:inline-block}
.case-body h3 span{color:var(--red)}
.case-body .lead{font-size:.92rem;font-weight:300;color:var(--muted2);line-height:1.9;margin-bottom:1.8rem;max-width:440px}
.case-meta{display:flex;gap:2.4rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1.4rem}

.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem}
.tags span{font-size:.54rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#bbb;border:1px solid var(--line);border-radius:999px;padding:.5rem 1rem}

@media(max-width:820px){
  #side-idx{display:none}
  #reel{height:auto;overflow:visible}
  #reel-track{flex-direction:column;height:auto;transform:none !important;padding:4rem 0;gap:2.5rem}
  .reel-item,.reel-lead{width:100%;max-width:100%}
  .case-grid{grid-template-columns:1fr;gap:2rem}
  .case:nth-child(even) .case-media{order:0}
  .case-media{position:relative;top:0}
  .ghost{font-size:28vw}
  #pcount{display:none}
}

/* ---- TCTX THRIVE: APPLICATION FORM (Zoho-ready) ----
   Solo selectores nuevos; extiende .form-grid/.field del bloque Contact. */
.app-form .field select{background:var(--bg2);border:1px solid var(--line);color:#fff;font-family:var(--ff);font-size:.9rem;padding:.95rem 2.6rem .95rem 1rem;transition:border-color .25s;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23C24C26' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;cursor:none}
.app-form .field select:focus{outline:none;border-color:rgba(194,76,38,.55)}
.app-form .field select:invalid{color:var(--muted)}
.app-form .field select option{background:var(--bg2);color:#fff}
.app-fs{border:none;padding:0;margin:.6rem 0 0;grid-column:1/-1;display:flex;flex-direction:column;gap:.8rem;min-width:0}
.app-fs legend{font-size:.56rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:.2rem}
.opt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}
.opt-grid-2{max-width:340px}
.opt{display:flex;align-items:center;gap:.75rem;border:1px solid var(--line);background:var(--bg2);padding:.85rem 1rem;font-size:.84rem;font-weight:300;color:var(--muted2);line-height:1.4;cursor:none;transition:border-color .25s,background .25s,color .25s}
.opt:hover{border-color:rgba(194,76,38,.45);color:#fff}
.opt input{accent-color:var(--red);width:15px;height:15px;flex:none;cursor:none}
.opt:has(input:checked){border-color:var(--red);background:var(--red-soft);color:#fff}
@media(max-width:768px){.opt-grid{grid-template-columns:1fr}}

/* ---- TCTX THRIVE: LIGHT LAYOUT (copy de producción, fondo claro) ----
   Solo selectores nuevos, todos scoped a .tctx / .app-light. */
.tctx-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2.5rem,5vw,5.5rem);align-items:start}
.tctx-logos{display:block;width:100%;max-width:430px;height:auto;margin-bottom:2.4rem}
.tctx-body{font-size:.92rem;font-weight:300;color:#555;line-height:1.9;max-width:640px;margin-bottom:1.4rem}
.form-card{background:#fff;border:1px solid var(--line-d);padding:clamp(1.6rem,3vw,2.4rem);box-shadow:0 30px 70px rgba(0,0,0,.09)}
.tctx .chk{color:#444}
.tctx .pillar{border-color:var(--line-d)}
.tctx .pillar h3{color:#111}
.tctx .pillar p{color:#666}
.tctx .pillar:hover{border-color:rgba(194,76,38,.45)}
.app-light .field input{background:#fff;border:1px solid var(--line-d);color:#111;background-image:linear-gradient(var(--red),var(--red));background-size:0% 2px;background-position:0 100%;background-repeat:no-repeat}
.app-light .field input:focus{border-color:rgba(194,76,38,.6);background-size:100% 2px}
.app-light .field select{background-color:#fff;border-color:var(--line-d);color:#111}
.app-light .field select:invalid{color:#999}
.app-light .field select option{background:#fff;color:#111}
.app-light .field select:focus{border-color:rgba(194,76,38,.6)}
.app-light .field label,.app-light .app-fs legend{color:#777}
.app-light .field:focus-within label{color:var(--red)}
.app-light .opt{background:#fff;border-color:var(--line-d);color:#555}
.app-light .opt:hover{border-color:rgba(194,76,38,.5);color:#111}
.app-light .opt:has(input:checked){border-color:var(--red);background:var(--red-soft);color:#111}

.app-light.form-card .opt-grid{grid-template-columns:repeat(2,1fr);gap:.55rem}
.app-light.form-card .opt{padding:.65rem .8rem;font-size:.78rem;gap:.55rem}
@media(max-width:520px){.app-light.form-card .opt-grid{grid-template-columns:1fr}}
@media(max-width:980px){.tctx-grid{grid-template-columns:1fr}}

/* ---- TCTX THRIVE: formulario superpuesto sobre el hero ---- */
.tctx-pull{position:relative;z-index:3;margin-top:clamp(-24rem,-26vw,-8rem)}
.tctx-pull .form-card{box-shadow:0 40px 90px rgba(0,0,0,.28)}
@media(max-width:980px){.tctx-pull{margin-top:0}.tctx-pull .form-card{box-shadow:0 30px 70px rgba(0,0,0,.09)}}

/* ---- CONTACT US: sección clara del formulario ---- */
.app-light .field textarea{background:#fff;border:1px solid var(--line-d);color:#111;background-image:linear-gradient(var(--red),var(--red));background-size:0% 2px;background-position:0 100%;background-repeat:no-repeat}
.app-light .field textarea:focus{border-color:rgba(194,76,38,.6);background-size:100% 2px}

/* ---- WHAT OUR CLIENTS SAYS: testimonios ---- */
.tsti-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem)}
.tsti{background:#fff;border:1px solid var(--line-d);padding:clamp(1.8rem,3vw,2.6rem);margin:0;display:flex;flex-direction:column;gap:1.6rem;position:relative}
.tsti::before{content:'\201C';position:absolute;top:.6rem;right:1.4rem;font-size:5rem;font-weight:900;color:var(--red-soft);line-height:1;pointer-events:none}
.tsti blockquote{margin:0;font-size:.95rem;font-weight:300;color:#444;line-height:1.95}
.tsti figcaption{display:flex;align-items:center;gap:1rem;font-size:.8rem;color:#777;line-height:1.5;margin-top:auto}
.tsti figcaption b{color:#111;font-size:.9rem}
.tsti-av{width:44px;height:44px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;letter-spacing:.05em;flex:none}
.vid-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem)}
.vid-card{background:#fff;border:1px solid var(--line-d);padding:0 0 1.2rem;overflow:hidden}
.vid-frame{position:relative;aspect-ratio:16/9;background:#000}
.vid-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid-meta{display:flex;flex-direction:column;gap:.15rem;padding:1.1rem 1.4rem 0;font-size:.78rem;color:#777}
.vid-meta b{color:#111;font-size:.9rem}
@media(max-width:820px){.tsti-grid,.vid-grid{grid-template-columns:1fr}}

/* ---- NAV: dropdown "Why Choose Us" ---- */
.n-links>li{position:relative}
.n-links .sub-car{font-size:.55em;opacity:.7;margin-left:.35rem;display:inline-block}
.sub-menu{position:absolute;top:100%;left:50%;transform:translate(-50%,10px);margin-top:1rem;padding:.7rem 0;min-width:250px;list-style:none;background:var(--bg2);border:1px solid var(--line);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s var(--ease);z-index:900}
.sub-menu::before{content:'';position:absolute;top:-1.2rem;left:0;right:0;height:1.2rem}
.has-sub:hover .sub-menu,.has-sub:focus-within .sub-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.sub-menu li{display:block}
.sub-menu a{display:block;padding:.65rem 1.4rem;white-space:nowrap}
.sub-menu a::after{display:none}
.sub-menu a:hover,.sub-menu a.active{color:#fff;background:rgba(194,76,38,.14)}

/* ---- GRANT PROGRAMS: formulario RFP Radar embebido ---- */
.radar-form{max-width:560px;margin:2.4rem auto 0;text-align:left}

/* ---- BLOG: listado, tarjetas, búsqueda, post (dark) ---- */
.blog-search{display:flex;gap:.8rem;max-width:520px;margin-bottom:2.8rem}
.blog-search input{flex:1;background:var(--bg2);border:1px solid var(--line);color:#fff;font-family:var(--ff);font-size:.9rem;padding:.9rem 1rem}
.blog-search input::placeholder{color:var(--muted)}
.blog-search input:focus{outline:none;border-color:rgba(194,76,38,.55)}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.2rem)}
.blog-card{background:var(--bg2);border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .3s,border-color .3s}
.blog-card:hover{transform:translateY(-4px);border-color:rgba(194,76,38,.45)}
.bc-media{aspect-ratio:16/10;background:var(--bg3);overflow:hidden;display:block}
.bc-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.blog-card:hover .bc-media img{transform:scale(1.05)}
.bc-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.65rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase}
.bc-body{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.bc-meta{font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.bc-title{font-size:1.05rem;font-weight:800;line-height:1.35;letter-spacing:-.01em}
.bc-title a{color:#fff;text-decoration:none;transition:color .25s}
.bc-title a:hover{color:var(--red2)}
.bc-ex{font-size:.84rem;font-weight:300;color:var(--muted2);line-height:1.75}
.bc-more{margin-top:auto;padding-top:.6rem;font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--red);text-decoration:none}
.bc-more::after{content:' →'}
.blog-pag{margin-top:3rem;display:flex;justify-content:center}
.blog-pag .nav-links{display:flex;gap:.5rem;align-items:center}
.blog-pag .page-numbers{padding:.6rem 1.05rem;border:1px solid var(--line);color:var(--muted2);text-decoration:none;font-size:.75rem;font-weight:600;transition:border-color .25s,color .25s}
.blog-pag a.page-numbers:hover{border-color:var(--red);color:#fff}
.blog-pag .page-numbers.current{background:var(--red);border-color:var(--red);color:#fff}
.post-hero-meta{font-size:.72rem !important;font-weight:600 !important;letter-spacing:.16em;text-transform:uppercase;color:var(--muted) !important}
.post-hero-meta a{color:var(--red);text-decoration:none}
.post-feat{max-width:920px;border:1px solid var(--line);overflow:hidden}
.post-feat img{width:100%;display:block}
.post-body{max-width:760px;margin-top:2.4rem;font-size:.98rem;font-weight:300;color:#d6d6d6;line-height:2}
.post-body p{margin-bottom:1.4rem}
.post-body h2{font-size:1.5rem;font-weight:800;color:#fff;letter-spacing:-.01em;margin:2.2rem 0 1rem}
.post-body h3{font-size:1.2rem;font-weight:800;color:#fff;margin:1.8rem 0 .8rem}
.post-body ul,.post-body ol{margin:0 0 1.4rem 1.3rem}
.post-body li{margin-bottom:.5rem}
.post-body a{color:var(--red2)}
.post-body strong{color:#fff;font-weight:700}
.post-body img{margin:1.8rem 0;border:1px solid var(--line);height:auto}
.post-body blockquote{border-left:3px solid var(--red);padding:.4rem 0 .4rem 1.4rem;margin:1.8rem 0;color:var(--muted2);font-style:italic}
@media(max-width:980px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.blog-grid{grid-template-columns:1fr}.blog-search{flex-direction:column}}

/* ---- ABOUT: "By The Numbers" enriquecida y animada ---- */

.stat .num .plus{color:var(--red);font-weight:300}

.sec.paper .stat{background:#fff;transition:border-color .35s,transform .35s,box-shadow .35s}
.sec.paper .stat:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(0,0,0,.08)}
.stat::after{height:0;transition:height .9s var(--ease) .25s}
.stat.is-in::after{height:100%}

/* ---- ABOUT: organization chart (imagen) ---- */

/* ---- LIGHT VARIANTS: componentes en secciones .paper (petición de diseño, 4 Ago) ----
   Solo selectores nuevos; los componentes conservan su estilo oscuro por defecto. */
.sec.paper .split p{color:#555}
.sec.paper .split h2{color:#111}
.sec.paper .stat{border-color:var(--line-d)}
.sec.paper .stat .num{color:#111}
.sec.paper .stat .cap{color:#777}

.sec.paper .prog{border-color:var(--line-d);background:#fff}
.sec.paper .prog h3{color:#111}
.sec.paper .prog p{color:#666}
.sec.paper .step{border-bottom-color:var(--line-d)}
.sec.paper .step .sn{color:rgba(0,0,0,.12)}
.sec.paper .step:hover .sn{color:var(--red)}
.sec.paper .step h3{color:#111}
.sec.paper .step p{color:#666}
.sec.paper .tm-n{color:#fff}
.sec.paper .btn-g{color:#777}
.sec.paper .btn-g:hover{color:#111}

/* ============================================================
   V2 DESIGN SYSTEM — Rediseño marketing (Sep 2026)
   Fuente: mockup "roads_website_final 17.html" del equipo de
   marketing. Light-first. Migración por fases: nav y footer ya
   usan este sistema en todo el sitio; cada página se convierte
   envuelta en <main class="v2">. Tokens v2 en :root (--brand,
   --black, --cream, --border, ...). Las clases de componentes
   conservan los nombres del mockup para poder portar su CSS 1:1.
   ============================================================ */

/* ---------- NAV v2 (misma estructura #nav de header.php; look del mockup) ---------- */
nav{background:var(--black);border-bottom:2px solid var(--brand);padding:0 5vw;height:68px}
nav.on{background:var(--black);backdrop-filter:none;padding:0 5vw;border-color:var(--brand)}
.n-links{gap:1.6rem}
.n-links a{font-size:13.5px;font-weight:500;letter-spacing:0;text-transform:none;color:#B0ADA9}
.n-links a::after{display:none}
.n-links a:hover,.n-links a.active{color:#fff}
.n-links .sub-car{font-size:.6em;opacity:.6;margin-left:.3rem}
.n-cta{background:var(--brand);border-radius:6px;font-size:13px;font-weight:600;letter-spacing:.01em;text-transform:none;padding:.6rem 1.35rem;transition:background .2s,transform .2s}
.n-cta:hover{background:var(--brand-dark);background-position:0 0;transform:translateY(-1px)}
.sub-menu{background:var(--white);border:1px solid var(--border);border-radius:10px;margin-top:.45rem;padding:.45rem;min-width:225px;box-shadow:0 8px 24px rgba(0,0,0,.14)}
.sub-menu a{color:var(--black);font-size:13px;font-weight:500;border-radius:6px;padding:.6rem .95rem}
.sub-menu a:hover,.sub-menu a.active{background:var(--off-white);color:var(--brand)}
@media(max-width:1120px){.n-links,.n-cta{display:none}.n-ham{display:flex}}

/* menú móvil: la IA nueva tiene más ítems → compacto y con scroll */
#mob-menu{gap:1.05rem;overflow-y:auto;padding:6.5rem 1.5rem 2.5rem;justify-content:flex-start}
#mob-menu a{font-size:1.02rem;font-weight:700;letter-spacing:.03em;text-transform:none}
#mob-menu .mob-cta{background:var(--brand);border-radius:8px;font-size:.8rem;letter-spacing:.08em;padding:.85rem 2.4rem;margin-top:.6rem}

/* ---------- FOOTER v2 ---------- */
footer{background:var(--black);border-top:none;padding:64px 5vw 32px}
.footer-grid{max-width:var(--maxw);margin:0 auto 48px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px}
.footer-brand img{height:30px;width:auto;margin-bottom:14px}
.footer-brand p{font-size:13px;color:#555;line-height:1.7;max-width:280px;font-weight:400}
.footer-contact{margin-top:20px}
.footer-contact a{display:block;font-size:13px;color:#666;margin-bottom:6px;text-decoration:none;transition:color .15s}
.footer-contact a:hover{color:#fff}
.footer-col h3,.footer-col h4{font-size:12px;font-weight:600;color:#fff;margin-bottom:14px;letter-spacing:.02em;text-transform:none}
.footer-col a{display:block;font-size:13px;color:#555;margin-bottom:10px;text-decoration:none;transition:color .15s;font-weight:400}
.footer-col a:hover{color:#fff}
.footer-bottom{max-width:var(--maxw);margin:0 auto;border-top:1px solid rgba(255,255,255,.06);padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.footer-bottom p{font-size:12px;color:#4a4a48}
.footer-social{display:flex;gap:16px}
.footer-social a{font-size:13px;color:#666;text-decoration:none;transition:color .15s}
.footer-social a:hover{color:#fff}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:36px}}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr}}

/* ---------- PRIMITIVAS v2 (nombres del mockup) ---------- */
.v2{background:var(--white);color:var(--black);font-family:var(--ff)}
 /* usada por el mockup, nunca definida allí */
.section{padding:96px 5vw}

.page-header{padding:140px 5vw 64px;background:var(--off-white);color:var(--black)}
.page-eyebrow{font-size:12px;font-weight:600;color:var(--brand);letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px}
.page-header h1{font-size:clamp(32px,3.5vw,52px);font-weight:700;letter-spacing:-.025em;line-height:1.15;margin-bottom:16px;max-width:700px}
.page-header p{font-size:18px;color:var(--gray);max-width:560px;line-height:1.65;font-weight:400}
.page-header.dark{background:var(--black)}
.page-header.dark h1{color:#fff}
.page-header.dark p{color:#888}
.page-actions{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap}

/* stub "página en construcción" (solo fase de transición) */

@media(max-width:768px){
  .section{padding:64px 6vw}
  .page-header{padding:110px 6vw 48px}
  .page-header p{font-size:16px}
}
/* nav bajo la admin bar de WP (solo usuarios logueados) */
body.admin-bar nav{top:32px}
@media(max-width:782px){body.admin-bar nav{top:46px}}
body.admin-bar #mob-menu{padding-top:8.5rem}

/* ---------- HOME v2 (fase 2 — front-page.php, mockup #page-home) ---------- */
.v2{line-height:1.6}
.v2 a{text-decoration:none}
.ph-img{background:var(--gray-light);display:flex;align-items:center;justify-content:center;color:var(--gray);font-size:13px} /* placeholder hasta assets reales */

/* hero */
.hero{padding:140px 5vw 100px;background:var(--off-white);display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;min-height:100vh}

.hero h1{font-size:clamp(36px,4vw,56px);font-weight:700;line-height:1.12;letter-spacing:-.025em;margin-bottom:20px}

.hero-img-wrap{border-radius:16px;overflow:hidden;aspect-ratio:4/5}

/* stats bar (el mockup declara 5 columnas con 4 items: usamos 4) */

/* banner 1GPA (en el mockup iba con estilos inline) */

/* pilares */

/* fractional (dark) */

/* cases preview (.case-body también existe en el portfolio viejo: se acota a .v2) */

.case-card{border-radius:14px;overflow:hidden;border:1px solid var(--border);transition:transform .2s,box-shadow .2s;background:var(--white)}
.case-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.07)}
.case-img{height:170px;position:relative}
.case-type{position:absolute;top:14px;left:14px;background:var(--black);color:var(--white);font-size:11px;font-weight:600;padding:4px 10px;border-radius:100px}
.v2 .case-body{padding:24px;background:var(--white)}
.case-result{font-size:24px;font-weight:700;color:var(--brand);line-height:1.1;margin-bottom:8px}
.case-desc{font-size:13px;color:var(--gray);line-height:1.65}

/* testimonios */

/* eventos preview */

/* coworking (dark) */

/* responsive home (el mockup no trae media queries) */
@media(max-width:1024px){
  .hero{gap:40px}
}
@media(max-width:860px){
  .hero{grid-template-columns:1fr;min-height:0;padding:120px 6vw 72px}

  .hero-img-wrap{aspect-ratio:4/3}
}

/* ---------- restos v2 aún en uso (sr-only en Our Space; rcgPulse = versión vigente para .rcg-dot) ---------- */
@keyframes rcgPulse{0%,100%{opacity:1}50%{opacity:.4}}
.v2 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- MEDIOS v2 (fase 6): imagen/video real dentro del contenedor del placeholder ---------- */
.has-media{position:relative;overflow:hidden;background:var(--gray-light)}
.has-media > img,.has-media > video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.has-media > .case-type,.has-media > .port-logo,.has-media > span{z-index:1}

/* ============================================================
   HOME ENSAMBLE (fase 6) — mundo visual «El equipo que se ensambla»
   Precisión de plano técnico sobre crema #FFFDF7, tinta grafito,
   rojo #C24C26 solo como señal viva (conexiones activas, hilo
   continuo, acciones principales, el campo rojo final). Tipografía
   Plus Jakarta Sans (fija por marca). Acotado a .as (front-page.php).
   Contrato de dirección en .impeccable/surfaces/ (no se despliega).
   ============================================================ */
.as{
  --as-red:#C24C26; --as-red-deep:#A33E1E; --as-red-soft:#E7775A; --as-cream:#FFFDF7;
  --as-ink:#15171C; --as-ink-2:#1D2026; --as-ink-3:#2A2E36;
  --as-muted:#565963; --as-muted-dark:#A7AAB3; --as-line:rgba(21,23,28,.13); --as-line-dark:rgba(255,253,247,.12);
  --as-ease:cubic-bezier(.16,1,.3,1); --as-pad:clamp(20px,5vw,80px); --as-max:1296px; --as-gutter:max(var(--as-pad),calc((100% - var(--as-max)) / 2));
  background:var(--as-cream);color:var(--as-ink);font-family:var(--ff);line-height:1.6;font-variant-numeric:tabular-nums;
}
.as:focus{outline:none}
.as ::selection{background:var(--as-red);color:var(--as-cream)}
.as :focus-visible{outline:2px solid var(--as-red);outline-offset:3px;border-radius:4px}
.as .as-dark :focus-visible,.as .as-final :focus-visible{outline-color:var(--as-cream)}
:where(.as) a{color:inherit}
.as-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.as-arrow{width:1.05em;height:1.05em;flex:none;transition:transform .4s var(--as-ease)}

/* hilo rojo continuo: progreso de lectura en el margen */
.as-thread{position:fixed;left:clamp(10px,1.4vw,22px);top:68px;bottom:0;width:2px;background:var(--as-line);z-index:5;pointer-events:none}
.as-thread span{position:absolute;inset:0;background:var(--as-red);transform-origin:top;transform:scaleY(var(--as-p,0))}
body.admin-bar .as-thread{top:100px}

/* tipografía */
body.home{background:#1A1A18} /* rebote de scroll y sobrante bajo el footer = color del footer */
.as-punct{margin-left:-.06em}
.as-accent{font-style:normal;color:var(--as-red)}
.as-dark .as-accent{color:var(--as-red-soft)}
.as-white{background:#FFFFFF}
.as-dark .as-h2,.as-dark .as-h3{color:var(--as-cream)}
.as h2 span::after,.as h1 span::after{content:none}
.as-h1{font-size:clamp(46px,5.6vw,88px);font-weight:800;line-height:.98;letter-spacing:-.04em;margin:0;max-width:11ch;text-wrap:balance}
.as-h2{font-size:clamp(34px,3.8vw,58px);font-weight:800;line-height:1.02;letter-spacing:-.035em;margin:0;text-wrap:balance}
.as-h3{font-size:22px;font-weight:700;letter-spacing:-.015em;line-height:1.2;margin:0 0 10px}
.as-text{font-size:15.5px;line-height:1.65;color:var(--as-muted);margin:0}
.as-lede{font-size:clamp(17px,1.35vw,19px);line-height:1.6;color:var(--as-muted);max-width:50ch;margin:26px 0 30px}
.as-label{margin:0;font-size:13px;font-weight:600;color:var(--as-muted);white-space:nowrap}
.as-label::before{content:"";display:inline-block;width:7px;height:7px;border:1.5px solid var(--as-red);border-radius:50%;vertical-align:middle;margin-right:10px}

/* botones */
.as-btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;font-size:15px;font-weight:600;text-decoration:none;
  transition:background .25s,color .25s,border-color .25s}
.as-btn:hover .as-arrow,.as-door:hover .as-arrow,.as-config:hover .as-arrow,.as-agenda-cta:hover .as-arrow,.as-board a:hover .as-arrow{transform:translateX(4px)}
.as-btn-red{background:var(--as-red);color:var(--as-cream)}
.as-btn-red:hover{background:var(--as-red-deep)}
.as-btn-line{border:1.5px solid var(--as-red);color:var(--as-red)}
.as-btn-line:hover{background:var(--as-red);color:var(--as-cream)}
.as-btn-cream{background:var(--as-cream);color:var(--as-red)}
.as-btn-cream:hover{background:var(--as-ink);color:var(--as-cream)}

/* ---------- HERO ---------- */
.as-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,5vw,88px);align-items:center;
  padding:calc(68px + clamp(40px,6vw,96px)) var(--as-gutter) clamp(64px,8vw,120px);min-height:min(100vh,1000px)}
.as-hero::before{content:"";position:absolute;inset:68px 0 0;pointer-events:none;z-index:0;
  background-image:linear-gradient(var(--as-line) 1px,transparent 1px),linear-gradient(90deg,var(--as-line) 1px,transparent 1px);background-size:64px 64px;
  -webkit-mask:radial-gradient(ellipse 70% 70% at 72% 52%,#000 20%,transparent 75%);mask:radial-gradient(ellipse 70% 70% at 72% 52%,#000 20%,transparent 75%);opacity:.7}
.as-hero > *{position:relative;z-index:1}
.as-doors{display:grid;border-top:1px solid var(--as-line);max-width:560px}
.as-door{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:0 4px;border-bottom:1px solid var(--as-line);
  font-size:17px;font-weight:600;text-decoration:none;transition:color .25s,padding .45s var(--as-ease)}
.as-door .as-arrow{width:22px;height:22px;color:var(--as-red);transition:transform .4s var(--as-ease),color .25s}
.as-door:hover .as-arrow,.as-door:focus-visible .as-arrow,.as-door.is-live .as-arrow{color:var(--as-red)}
.as-door:hover,.as-door:focus-visible,.as-door.is-live{color:var(--as-red);padding-left:12px}

/* diagrama: seis módulos + núcleo con el equipo */
.as-diagram{position:relative;aspect-ratio:6/5.6;width:100%}
.as-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.as-wire{fill:none;stroke:var(--as-ink);stroke-opacity:.34;stroke-width:.26;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke .35s,stroke-opacity .35s,stroke-width .35s}
.as-diagram.is-filtered .as-wire:not(.is-live){stroke-opacity:.12}
.as-wire.is-live{stroke:var(--as-red);stroke-opacity:1;stroke-width:.36}
.as-mods{list-style:none;margin:0;padding:0;position:absolute;top:0;bottom:0;width:20%}
.as-mods-l{left:0}.as-mods-r{right:0}
.as-mod{position:absolute;left:0;right:0;top:calc(18% + var(--i) * 32%);transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;
  padding:9px 10px;background:var(--as-cream);border:1px solid rgba(21,23,28,.22);border-radius:8px;transition:border-color .35s,opacity .35s,background .35s}
.as-mod-code{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red);transition:color .35s}
.as-mod.is-live .as-mod-code{color:var(--as-red)}
.as-mod-name{font-size:12px;font-weight:600;line-height:1.25;color:var(--as-ink)}
.as-mod.is-live{border-color:var(--as-red);background:#FFF6F1}
.as-diagram.is-filtered .as-mod:not(.is-live){opacity:.38}
.as-core{position:absolute;left:24%;right:24%;top:9%;bottom:9%;border-radius:18px;overflow:hidden;background:var(--as-ink)}

.as-net{position:absolute;inset:0;width:100%;height:100%;display:block}
.as-core{background:linear-gradient(rgba(253,251,245,.05) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,rgba(253,251,245,.05) 1px,transparent 1px) 0 0/28px 28px,var(--as-ink)}

.as-core .rcg-video-toggle{right:10px;bottom:10px}
.as-dim{position:absolute;left:24%;right:24%;margin:0;display:flex;align-items:baseline;justify-content:center;gap:8px;font-size:12px;line-height:1.2;color:var(--as-muted);text-align:left}
.as-dim strong{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--as-ink)}
.as-dim-top{top:0;height:9%;align-items:center}
.as-dim-bottom{bottom:0;height:9%;align-items:center}
.as-dim::before,.as-dim::after{content:"";flex:1;height:1px;background:var(--as-line);align-self:center;min-width:8px}

/* ---------- CIFRAS ---------- */
.as-stats{padding:0 var(--as-gutter)}
.as-stats.as-dark .as-stats-list li + li{border-left-color:var(--as-line-dark)}
.as-stat-num em{font-style:normal;color:var(--as-red)}
.as-dark .as-stat-num{color:var(--as-cream)}
.as-dark .as-stat-num em{color:var(--as-red-soft)}
.as-dark .as-stat-label{color:var(--as-muted-dark)}
.as-stats-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.as-stats-list li:first-child .as-stat{padding-left:0}
.as-stats-list li + li{border-left:1px solid var(--as-line)}
.as-stat{display:flex;flex-direction:column;gap:14px;padding:clamp(28px,3.4vw,48px) clamp(16px,2vw,32px);text-decoration:none;height:100%}
.as-stat-num{font-size:clamp(44px,5vw,76px);font-weight:800;line-height:.9;letter-spacing:-.04em;color:var(--as-ink);transition:color .25s;white-space:nowrap}
.as-stat-label{position:relative;padding-top:14px;font-size:13.5px;line-height:1.4;color:var(--as-muted)}
.as-stat-label::before{content:"";position:absolute;top:0;left:0;width:28px;height:2px;background:var(--as-red);transition:width .45s var(--as-ease)}
.as-stat:hover .as-stat-num{color:var(--as-red-soft)}
.as-stat:hover .as-stat-label::before{width:64px}
/* animación de cifras (clases que pone main.js; sin JS no aplican) */
.as-count-ready .as-stat-num em{display:inline-block;opacity:0;transform:translateY(.25em) scale(.85);transition:opacity .5s var(--as-ease),transform .6s var(--as-ease)}
.as-count-ready .is-counted .as-stat-num em{opacity:1;transform:none}
.as-count-ready .as-stat-label::before{width:0}
.as-count-ready .is-counting .as-stat-label::before{width:28px;transition:width 1.6s var(--as-ease)}
.as-count-ready .is-counted:hover .as-stat-label::before{width:64px;transition-duration:.45s}
.as-count-ready .as-stat-num [data-as-count]{display:inline-block;min-width:1ch}

/* ---------- CREDENCIAL 1GPA ---------- */
.as-cred{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,112px);align-items:center;padding:clamp(72px,9vw,128px) var(--as-gutter)}
.as-cred-sub{margin:12px 0 18px;font-size:18px;font-weight:700;color:var(--as-red)}
.as-cred .as-text{max-width:52ch;margin-bottom:30px}
.as-ledger{margin:0;border-top:3px solid var(--as-red)}
.as-ledger > div{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--as-line)}
.as-ledger dt{font-size:13px;font-weight:600;color:var(--as-muted)}
.as-ledger dd{margin:0;font-size:clamp(18px,1.6vw,22px);font-weight:700;letter-spacing:-.02em;line-height:1.3}
.as-tab{font-variant-numeric:tabular-nums;color:var(--as-red)}

/* ---------- SECCIONES ---------- */
.as-section{position:relative;padding:clamp(72px,8vw,120px) var(--as-gutter)}
.as-head{display:grid;grid-template-columns:minmax(0,1fr);row-gap:18px;align-items:start;margin-bottom:clamp(44px,5vw,72px)}
.as-head .as-h2{grid-column:1;grid-row:1;max-width:17ch}
.as-head .as-label{position:absolute;top:clamp(72px,8vw,120px);left:calc(clamp(10px,1.4vw,22px) - 3px);writing-mode:vertical-rl;transform:rotate(180deg);font-size:12px;letter-spacing:.04em;padding:0}
.as-head .as-label::before{display:block;margin:0 0 10px -.5px;width:8px;height:8px;background:var(--as-cream)}
.as-dark .as-head .as-label::before{background:var(--as-ink)}
.as-head .as-sub{grid-column:1;grid-row:2;font-size:18px;line-height:1.6;color:var(--as-muted);max-width:58ch;margin:0}
.as-center{text-align:center;margin-top:clamp(40px,4vw,56px)}
.as-dark{background:var(--as-ink);color:var(--as-cream)}
.as-dark .as-sub,.as-dark .as-label{color:var(--as-muted-dark)}

/* tres configuraciones */
.as-configs{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--as-line)}
.as-config{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:36px clamp(20px,2.4vw,36px) 36px;text-decoration:none;border-bottom:1px solid var(--as-line);transition:background .35s}
.as-config + .as-config{border-left:1px solid var(--as-line)}
.as-config::before{content:"";position:absolute;top:-1px;left:0;height:2px;width:0;background:var(--as-red);transition:width .6s var(--as-ease)}
.as-config:hover,.as-config.is-live{background:#FFF8F3}
.as-config:hover::before,.as-config.is-live::before{width:100%}
.as-mini{display:block;width:100%;max-width:240px;height:auto;margin-bottom:26px;overflow:visible}
.as-mini-core{fill:var(--as-ink)}
.as-h3{color:var(--as-ink)}
.as-mini-node{fill:var(--as-cream);stroke:rgba(21,23,28,.35);stroke-width:.6}
.as-mini-node.on{stroke:var(--as-red);stroke-width:.9;fill:#FFF3EC}
.as-mini-wire{fill:none;stroke:rgba(21,23,28,.3);stroke-width:.6}
.as-mini-wire.on{stroke:var(--as-red);stroke-width:.9}
.as-config:hover .as-mini-node.on,.as-config.is-live .as-mini-node.on{stroke:var(--as-red);fill:#FFF3EC}
.as-config:hover .as-mini-wire.on,.as-config.is-live .as-mini-wire.on{stroke:var(--as-red)}
.as-config .as-text{margin-bottom:20px}
.as .as-config-fig{position:relative;width:100%;aspect-ratio:4/3;margin:0 0 26px;overflow:hidden;border:1px solid var(--as-ink);background:var(--as-cream)}
.as .as-config-fig.has-media img{transition:transform .9s var(--as-ease)}
.as-config:hover .as-config-fig.has-media img,.as-config.is-live .as-config-fig.has-media img{transform:scale(1.04)}
@media (prefers-reduced-motion:reduce){.as .as-config-fig.has-media img{transition:none}}
.as-tags{list-style:none;margin:0 0 28px;padding:12px 0 0;border-top:1px solid var(--as-line);display:flex;flex-wrap:wrap;gap:4px 0;font-size:13px;color:var(--as-muted)}
.as-tags li:not(:last-child)::after{content:"/";margin:0 8px;color:rgba(21,23,28,.3)}
.as-link{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:700;color:var(--as-red);transition:color .25s}
.as-config:hover .as-link,.as-config.is-live .as-link{color:var(--as-red-deep)}

/* placa de módulos (dark) */
.as-model{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(40px,5vw,88px);align-items:start}
.as-bom{list-style:none;margin:0;padding:0;border-top:1px solid var(--as-cream)}
.as-bom li{border-bottom:1px solid var(--as-line-dark)}
.as-bom a{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) 24px;gap:24px;align-items:baseline;padding:22px 0;text-decoration:none}
.as-bom-name{margin:0;font-size:18px;font-weight:700;letter-spacing:-.015em;color:var(--as-cream);transition:color .25s}
.as-bom-code{margin-left:6px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red-soft);vertical-align:2px}
.as-bom-desc{margin:0;font-size:14.5px;line-height:1.5;color:var(--as-muted-dark)}
.as-bom .as-arrow{width:18px;height:18px;color:var(--as-red-soft);align-self:center;transition:transform .4s var(--as-ease),color .25s}
.as-bom a:hover .as-bom-name,.as-bom a:hover .as-arrow,.as-bom a:focus-visible .as-bom-name{color:var(--as-red-soft)}
.as-bom a:hover .as-arrow{transform:translateX(4px)}
.as-quote{margin:0 0 36px}
.as-quote blockquote{margin:0}
.as-quote p{margin:0;font-size:clamp(26px,2.4vw,34px);font-weight:700;line-height:1.32;letter-spacing:-.025em;color:var(--as-cream)}
.as-quote p{text-indent:-.42em}
.as-quote p::before{content:"\201C";color:var(--as-red-soft)}
.as-quote p::after{content:"\201D";margin-left:-.06em;color:var(--as-red-soft)}
.as-quote figcaption{margin-top:16px;font-size:13px;font-weight:600;color:var(--as-muted-dark)}
.as-checks{list-style:none;margin:0;padding:0;border-top:1px solid var(--as-line-dark)}
.as-checks li{display:flex;gap:14px;align-items:flex-start;padding:15px 0;border-bottom:1px solid var(--as-line-dark);font-size:15px;color:#D9DBE0}
.as-check{flex:none;width:18px;height:18px;margin-top:3px;color:var(--as-red-soft)}

/* casos: exhibits */
.as-cases{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,36px)}
.as-case{display:flex;flex-direction:column}
.as-case-fig{position:relative;aspect-ratio:4/3;overflow:hidden;margin-bottom:22px;border:1px solid var(--as-ink);background:var(--as-cream)}
.as-case-fig.ph-img{display:block;color:transparent;
  background:linear-gradient(var(--as-line) 1px,transparent 1px) -1px -1px/32px 32px,linear-gradient(90deg,var(--as-line) 1px,transparent 1px) -1px -1px/32px 32px,var(--as-cream)}
.as-case-fig::before,.as-case-fig::after{content:"";position:absolute;width:12px;height:12px;border-color:var(--as-ink);border-style:solid;z-index:1;pointer-events:none}
.as-case-fig::before{top:8px;left:8px;border-width:1px 0 0 1px}
.as-case-fig::after{top:8px;right:8px;border-width:1px 1px 0 0}
.as-case-type{position:absolute;right:0;bottom:0;z-index:1;font-size:12px;font-weight:600;color:var(--as-ink);background:var(--as-cream);border-top:1px solid var(--as-ink);border-left:1px solid var(--as-ink);padding:8px 14px}
.as-case-figure{position:absolute;left:24px;top:50%;transform:translateY(-62%);font-size:clamp(40px,4.2vw,64px);font-weight:800;letter-spacing:-.04em;line-height:1.1;color:var(--as-red);white-space:nowrap}
.as-case-dim{position:absolute;left:0;right:0;bottom:-14px;height:1px;background:var(--as-ink)}
.as-case-dim::before,.as-case-dim::after{content:"";position:absolute;top:-5px;width:1px;height:11px;background:var(--as-ink)}
.as-case-dim::before{left:0}.as-case-dim::after{right:0}
.as-case:hover .as-case-dim,.as-case:hover .as-case-dim::before,.as-case:hover .as-case-dim::after{background:var(--as-red)}
/* Con foto (opción 2, marketing sep 2026): la cifra baja al pie sobre un
   degradado de tinta y pasa a rojo claro; las marcas de esquina a crema. */
.as-case-fig.has-media .as-case-figure{top:auto;left:0;right:0;bottom:0;transform:none;z-index:1;padding:clamp(56px,6vw,88px) 24px 18px;background:linear-gradient(to top,rgba(21,23,28,.92) 0%,rgba(21,23,28,.62) 50%,rgba(21,23,28,0) 100%);color:var(--as-red-soft);text-shadow:0 1px 16px rgba(21,23,28,.35);pointer-events:none}
.as-case-fig.has-media .as-case-dim{display:none}
.as-case-fig.has-media .as-case-type{z-index:2}
.as-case-fig.has-media::before,.as-case-fig.has-media::after{z-index:2;border-color:rgba(255,253,247,.85)}
.as-case-fig.has-media img{transition:transform .9s var(--as-ease)}
.as-case:hover .as-case-fig.has-media img,.as-port-case:hover .as-case-fig.has-media img{transform:scale(1.04)}
@media (prefers-reduced-motion:reduce){.as-case-fig.has-media img{transition:none}}
.as-case-result{color:var(--as-ink);margin:0 0 8px;font-size:22px;font-weight:800;letter-spacing:-.025em;line-height:1.15}

/* testimonios */
.as-quotes{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--as-line)}
.as-dark .as-quotes,.as-dark .as-voice + .as-voice{border-color:var(--as-line-dark)}
.as-dark .as-voice p{color:var(--as-cream)}
.as-dark .as-voice,.as-dark .as-stats-list li{border-color:var(--as-line-dark)!important}
.as-dark .as-voice-role{color:var(--as-muted-dark)}
.as-voice p::before,.as-voice p::after{color:var(--as-red)}
.as-dark .as-voice p::before,.as-dark .as-voice p::after{color:var(--as-red-soft)}
.as-voice{margin:0;padding:36px clamp(20px,2.4vw,40px) 8px 0;display:flex;flex-direction:column}
.as-voice + .as-voice{border-left:1px solid var(--as-line);padding-left:clamp(20px,2.4vw,40px)}
.as-voice blockquote{margin:0 0 26px}
.as-voice p{margin:0;font-size:18px;line-height:1.6;font-weight:500;letter-spacing:-.01em}
.as-voice p{text-indent:-.42em}
.as-voice p::before{content:"\201C"}
.as-voice p::after{content:"\201D";margin-left:-.06em}
.as-voice figcaption{margin-top:auto;display:flex;flex-direction:column;gap:2px}
.as-voice-name{font-size:15px;font-weight:700}
.as-voice-role{font-size:13px;color:var(--as-muted)}

/* agenda de eventos */
.as-agenda{list-style:none;margin:0;padding:0;border-top:3px solid var(--as-red)}
.as-agenda-row{display:grid;grid-template-columns:260px minmax(0,1fr) auto;gap:clamp(20px,3vw,56px);align-items:start;padding:30px 0;border-bottom:1px solid var(--as-line);transition:background .3s}
.as-agenda-row:hover .as-agenda-title{color:var(--as-red)}
.as-agenda-title{transition:color .25s}
.as-agenda-date{margin:0 0 4px;font-size:14px;font-weight:700;color:var(--as-red);padding-top:4px}
.as-agenda-type{margin:0;font-size:13px;line-height:1.45;color:var(--as-muted)}
.as-agenda-title{margin:0 0 8px;font-size:clamp(20px,1.8vw,25px);font-weight:700;letter-spacing:-.02em;line-height:1.2}
.as-agenda-main .as-text{max-width:62ch}
.as-agenda-cta:hover{color:var(--as-red-deep)}
.as-agenda-cta{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14.5px;font-weight:700;color:var(--as-red);text-decoration:none;white-space:nowrap;padding-top:0}

/* coworking (dark) */
.as-cowork-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,104px);align-items:center}
.as-head-stack{grid-template-columns:1fr;margin-bottom:34px}

.as-perks{display:grid;grid-template-columns:1fr 1fr;margin:0 0 30px;border-top:1px solid var(--as-line-dark)}
.as-perks > div{padding:18px 18px 18px 0;border-bottom:1px solid var(--as-line-dark)}
.as-perks > div:nth-child(even){padding-left:18px;border-left:1px solid var(--as-line-dark)}
.as-perks dt{font-size:16px;font-weight:700;color:var(--as-cream)}
.as-perks dd{margin:4px 0 0;font-size:14px;color:var(--as-muted-dark)}
.as-address{margin:0 0 28px;font-size:15px;color:var(--as-muted-dark)}
.as-address strong{color:var(--as-cream)}
.as-cowork-media{position:relative;aspect-ratio:1/1;border-radius:20px;overflow:hidden;background:var(--as-ink-3)}
.as-cowork-media.ph-img{color:#C9CBD1;font-size:13px;background:var(--as-ink-2);border:1px solid var(--as-line-dark)}

/* cierre: el campo rojo */
.as-final{background:var(--as-red);color:var(--as-cream);padding:clamp(96px,11vw,168px) var(--as-gutter)}
.as-final-in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:40px;align-items:end}
.as-final-title{grid-row:span 2;margin:0;font-size:clamp(48px,6.6vw,96px);font-weight:800;line-height:.95;letter-spacing:-.04em;max-width:11ch}
.as-final-text{margin:0;font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:var(--as-cream);max-width:40ch}
.as-final .as-btn{justify-self:start}

/* ---------- MOVIMIENTO ----------
   Momento firma (solo CSS): el equipo se ensambla. Los módulos llegan desde
   la retícula y encajan en formación, los cables se trazan hacia el núcleo y
   el núcleo con el equipo se abre. Scroll (con JS): encabezados y rejillas
   suben con precisión; las cifras cuentan; el hilo rojo avanza. */
@keyframes asIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes asDock{from{opacity:0;transform:translate(var(--dx,0),calc(-50% + var(--dy,0)))}to{opacity:1;transform:translate(0,-50%)}}
@keyframes asCore{from{clip-path:inset(46% 46% round 18px)}to{clip-path:inset(0 0 round 18px)}}
@keyframes asFade{from{opacity:0}to{opacity:1}}
@keyframes asWire{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:no-preference){
  .as-h1{animation:asIn .9s var(--as-ease) .05s backwards}
  .as-lede{animation:asIn .9s var(--as-ease) .15s backwards}
  .as-door{animation:asIn .8s var(--as-ease) backwards}
  .as-door:nth-child(1){animation-delay:.25s}.as-door:nth-child(2){animation-delay:.32s}.as-door:nth-child(3){animation-delay:.39s}
  .as-core{animation:asCore 1.1s var(--as-ease) .2s backwards}
  .as-mods-l .as-mod{--dx:-40px}.as-mods-r .as-mod{--dx:40px}
  .as-mod:nth-child(1){--dy:-28px}.as-mod:nth-child(3){--dy:28px}
  .as-mod{animation:asDock .9s var(--as-ease) backwards}
  .as-mods-l .as-mod:nth-child(1){animation-delay:.55s}.as-mods-r .as-mod:nth-child(1){animation-delay:.62s}
  .as-mods-l .as-mod:nth-child(2){animation-delay:.69s}.as-mods-r .as-mod:nth-child(2){animation-delay:.76s}
  .as-mods-l .as-mod:nth-child(3){animation-delay:.83s}.as-mods-r .as-mod:nth-child(3){animation-delay:.9s}
  .as-wire{animation:asWire .8s var(--as-ease) 1.05s backwards}
  .as-dim{animation:asFade .8s ease 1.2s backwards}
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .as-thread{left:0;right:0;top:68px;bottom:auto;width:auto;height:2px}
  .as-thread span{transform-origin:left;transform:scaleX(var(--as-p,0))}
  .as-head .as-label{position:absolute;top:22px;right:var(--as-gutter);left:auto;writing-mode:horizontal-tb;transform:none}
  .as-head .as-label::before{display:inline-block;margin:0 8px 0 0}
  .as-mod-name{font-size:11.5px}
  .as-mod{padding:8px 9px}
}
@media (max-width:900px){
  .as-hero{grid-template-columns:1fr;min-height:0;padding-top:calc(68px + 40px)}
  .as-h1{max-width:13ch}
  .as-diagram{aspect-ratio:auto;display:grid;grid-template-columns:1fr 1fr;gap:10px 28px}
  .as-diagram::before{content:"";position:absolute;left:50%;top:0;bottom:28px;width:1px;background:rgba(21,23,28,.3);z-index:0}
  .as-wires{display:none}
  .as-dim{position:relative;left:auto;right:auto;grid-column:1 / -1;height:auto;justify-content:flex-start;background:var(--as-cream);z-index:1;padding:4px 0}
  .as-dim::before,.as-dim::after{display:none}
  .as-dim-top{grid-row:1}.as-dim-bottom{grid-row:3}
  .as-mod{position:relative!important;z-index:1}
  .as-mods-l .as-mod::after,.as-mods-r .as-mod::after{content:"";position:absolute;top:50%;width:14px;height:1px;background:rgba(21,23,28,.3)}
  .as-mods-l .as-mod::after{right:-15px}.as-mods-r .as-mod::after{left:-15px}
  .as-mod.is-live::after{background:var(--as-red)}
  .as-mods{position:static;width:auto;display:contents}
  .as-mod{position:static;transform:none;top:auto;grid-row:4;animation:none}
  .as-mods-l .as-mod:nth-child(2),.as-mods-r .as-mod:nth-child(2){grid-row:5}
  .as-mods-l .as-mod:nth-child(3),.as-mods-r .as-mod:nth-child(3){grid-row:6}
  .as-mods-l .as-mod{grid-column:1}.as-mods-r .as-mod{grid-column:2}
  .as-core{position:relative;inset:auto;grid-column:1 / -1;grid-row:2;aspect-ratio:4/3.4;z-index:1}
  .as-stats-list{grid-template-columns:1fr 1fr}
  .as-stats-list li:nth-child(3){border-left:0}
  .as-stats-list li:nth-child(odd) .as-stat{padding-left:0}
  .as-stats-list li:nth-child(n+3){border-top:1px solid var(--as-line)}
  .as-cred{grid-template-columns:1fr}
  .as-head{grid-template-columns:1fr}
  .as-configs,.as-cases,.as-quotes{grid-template-columns:1fr}
  .as-config + .as-config{border-left:0}
  .as-voice,.as-voice + .as-voice{border-left:0;padding:28px 0;border-top:1px solid var(--as-line)}
  .as-voice:first-child{border-top:0}
  .as-model,.as-cowork-grid{grid-template-columns:1fr}
  .as-agenda-row{grid-template-columns:1fr;gap:10px}
  .as-final-in{grid-template-columns:1fr}
  .as-final-title{grid-row:auto}
  .as-final-title{hyphens:auto;-webkit-hyphens:auto}
}
@media (max-width:560px){
  .as-h1{font-size:clamp(40px,11.5vw,52px)}
  .as-door{font-size:16px;min-height:60px}
  .as-bom a{grid-template-columns:1fr 20px;gap:6px 16px}
  .as-bom-desc{grid-column:1}
  .as-bom .as-arrow{grid-column:2;grid-row:1}
  .as-perks{grid-template-columns:1fr}
  .as-perks > div:nth-child(even){padding-left:0;border-left:0}
  .as-ledger > div{grid-template-columns:1fr;gap:4px}
  .as-stat-num{font-size:40px}
  .as-stat{padding:24px 14px}
  .as-case-figure{font-size:40px}
}

/* ============================================================
   ENSAMBLE — PÁGINAS INTERIORES (fase 6): hero de página, miga de
   pan y acciones. Todo lo demás reutiliza las primitivas .as-* del
   bloque HOME ENSAMBLE (secciones, títulos con acento, botones,
   ledgers, tablas, exhibits, agenda, campo rojo final…).
   ============================================================ */
body:has(main.as){background:#1A1A18} /* rebote de scroll = color del footer */
.as-phero{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:end;
  padding:calc(68px + clamp(48px,6vw,96px)) var(--as-gutter) clamp(56px,7vw,104px);background:var(--as-cream)}
.as-phero.has-aside{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.as-phero::before{content:"";position:absolute;inset:68px 0 0;pointer-events:none;
  background-image:linear-gradient(var(--as-line) 1px,transparent 1px),linear-gradient(90deg,var(--as-line) 1px,transparent 1px);background-size:64px 64px;
  -webkit-mask:radial-gradient(ellipse 60% 80% at 85% 40%,#000 15%,transparent 70%);mask:radial-gradient(ellipse 60% 80% at 85% 40%,#000 15%,transparent 70%);opacity:.8}
.as-phero.as-dark{background:var(--as-ink)}
.as-phero.as-dark::before{background-image:linear-gradient(var(--as-line-dark) 1px,transparent 1px),linear-gradient(90deg,var(--as-line-dark) 1px,transparent 1px)}
.as-phero > *{position:relative;z-index:1}
.as-h1-page{font-size:clamp(40px,4.8vw,76px);max-width:16ch;line-height:1}
.as-dark .as-h1{color:var(--as-cream)}
.as-phero .as-lede{max-width:58ch;margin:22px 0 0}
.as-dark .as-lede{color:var(--as-muted-dark)}
.as-crumb ol{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:13px;font-weight:600;color:var(--as-muted)}
.as-crumb li + li::before{content:"/";margin-right:6px;color:rgba(21,23,28,.3)}
.as-crumb a{text-decoration:none;color:var(--as-muted);transition:color .2s}
.as-crumb a:hover{color:var(--as-red)}
.as-crumb [aria-current]{color:var(--as-red)}
.as-dark .as-crumb ol,.as-dark .as-crumb a{color:var(--as-muted-dark)}
.as-dark .as-crumb li + li::before{color:rgba(255,253,247,.3)}
.as-dark .as-crumb [aria-current]{color:var(--as-red-soft)}
.as-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.as-cred-copy .as-actions,.as-prog-cred .as-actions{margin-top:0}
.as-dark .as-btn-line{border-color:var(--as-red-soft);color:var(--as-cream)}
.as-dark .as-btn-line:hover{background:var(--as-red);border-color:var(--as-red)}
.as-phero-aside{align-self:end}
@media (max-width:900px){
  .as-phero,.as-phero.has-aside{grid-template-columns:1fr;padding-top:calc(68px + 40px)}
}

/* ============================================================
   ENSAMBLE — PÁGINAS DE AUDIENCIA (fase 6): small-business,
   nonprofits, government. Prefijo .as-aud-*. Reutiliza .as-phero,
   .as-head, .as-cases, .as-cred/.as-ledger, .as-quote, .as-checks,
   .as-stats-list, .as-tags, .as-final del bloque HOME ENSAMBLE.
   ============================================================ */

/* código rojo de módulo (FIN, LEG…): mismo estilo que .as-mod-code / .as-bom-code */
.as .as-aud-code{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red);font-variant-numeric:tabular-nums}
.as .as-dark .as-aud-code{color:var(--as-red-soft)}

/* ---------- HERO: configuración del equipo para la audiencia ---------- */
.as .as-aud-rig{position:relative;margin:0;padding:clamp(28px,3vw,44px) clamp(20px,2.4vw,36px) 0;border:1px solid var(--as-ink);
  background:linear-gradient(var(--as-line) 1px,transparent 1px) -1px -1px/32px 32px,linear-gradient(90deg,var(--as-line) 1px,transparent 1px) -1px -1px/32px 32px,var(--as-cream)}
.as .as-aud-rig::before,.as .as-aud-rig::after{content:"";position:absolute;top:8px;width:12px;height:12px;border:solid var(--as-ink);pointer-events:none}
.as .as-aud-rig::before{left:8px;border-width:1px 0 0 1px}
.as .as-aud-rig::after{right:8px;border-width:1px 1px 0 0}
.as .as-aud-rig .as-mini{max-width:none;width:100%;margin:0 0 clamp(24px,2.6vw,36px)}
.as .as-aud-rig .as-mini-node,.as .as-aud-rig .as-mini-wire{vector-effect:non-scaling-stroke;stroke-width:1px}
.as .as-aud-rig .as-mini-node.on,.as .as-aud-rig .as-mini-wire.on{stroke-width:1.6px}
/* sobre tinta (government) */
.as .as-dark .as-aud-rig{border-color:rgba(255,253,247,.4);
  background:linear-gradient(var(--as-line-dark) 1px,transparent 1px) -1px -1px/32px 32px,linear-gradient(90deg,var(--as-line-dark) 1px,transparent 1px) -1px -1px/32px 32px,var(--as-ink)}
.as .as-dark .as-aud-rig::before,.as .as-dark .as-aud-rig::after{border-color:rgba(255,253,247,.55)}
.as .as-dark .as-aud-rig .as-mini-core{fill:var(--as-ink-3);stroke:rgba(255,253,247,.3);stroke-width:1px;vector-effect:non-scaling-stroke}
.as .as-dark .as-aud-rig .as-mini-node{fill:var(--as-ink);stroke:rgba(255,253,247,.35)}
.as .as-dark .as-aud-rig .as-mini-wire{stroke:rgba(255,253,247,.28)}
.as .as-dark .as-aud-rig .as-mini-node.on{fill:rgba(231,119,90,.14);stroke:var(--as-red-soft)}
.as .as-dark .as-aud-rig .as-mini-wire.on{stroke:var(--as-red-soft)}

/* ---------- SOUND FAMILIAR: pliego numerado ---------- */
.as .as-aud-sits{list-style:none;margin:0;padding:0;border-top:3px solid var(--as-red)}
.as .as-aud-sits li{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,1.1fr);gap:clamp(20px,3vw,56px);align-items:baseline;padding:28px 0;border-bottom:1px solid var(--as-line)}
.as .as-aud-sit-num{font-size:15px;font-weight:800;letter-spacing:.02em;color:var(--as-red);font-variant-numeric:tabular-nums}
.as .as-aud-sit-title{margin:0;font-size:clamp(18px,1.5vw,21px);font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--as-ink);max-width:34ch}
.as .as-aud-sits .as-text{max-width:56ch}

/* ---------- SERVICIOS: tabla de materiales (crema o tinta) ---------- */
.as .as-aud-bom{list-style:none;margin:0;padding:0;border-top:1px solid var(--as-ink)}
.as .as-aud-bom > li{border-bottom:1px solid var(--as-line)}
.as .as-aud-bom a{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) 24px;gap:24px;align-items:baseline;padding:26px 0;text-decoration:none;transition:background .3s}
.as .as-aud-bom-name{margin:0;font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--as-ink);transition:color .25s}
.as .as-aud-bom-name .as-aud-code{margin-left:6px;vertical-align:2px}
.as .as-aud-bom-desc{margin:0 0 14px;font-size:14.5px;line-height:1.55;color:var(--as-muted);max-width:60ch}
.as .as-aud-bom .as-tags{margin:0;padding-top:10px}
.as .as-aud-bom .as-arrow{width:18px;height:18px;color:var(--as-red);align-self:center;transition:transform .4s var(--as-ease),color .25s}
.as .as-aud-bom a:hover .as-aud-bom-name,.as .as-aud-bom a:focus-visible .as-aud-bom-name{color:var(--as-red)}
.as .as-aud-bom a:hover .as-arrow{transform:translateX(4px);color:var(--as-red-deep)}
/* sobre tinta */
.as .as-dark .as-aud-bom{border-top-color:var(--as-cream)}
.as .as-dark .as-aud-bom > li{border-color:var(--as-line-dark)}
.as .as-dark .as-aud-bom-name{color:var(--as-cream)}
.as .as-dark .as-aud-bom-desc{color:var(--as-muted-dark)}
.as .as-dark .as-aud-bom .as-tags{border-top-color:var(--as-line-dark);color:var(--as-muted-dark)}
.as .as-dark .as-aud-bom .as-tags li:not(:last-child)::after{color:rgba(255,253,247,.3)}
.as .as-dark .as-aud-bom .as-arrow{color:var(--as-red-soft)}
.as .as-dark .as-aud-bom a:hover .as-aud-bom-name,.as .as-dark .as-aud-bom a:focus-visible .as-aud-bom-name,.as .as-dark .as-aud-bom a:hover .as-arrow{color:var(--as-red-soft)}

/* exhibit: cifras largas («4 locations») a menor escala */
.as .as-case-figure.as-aud-fig-long{font-size:clamp(34px,3.3vw,52px)}

/* ---------- NONPROFITS: bloque de prueba (dark) ---------- */
.as .as-aud-proof{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,5vw,88px);align-items:start}
.as .as-aud-proof .as-quote{margin:0}
.as .as-aud-proof .as-quote p{max-width:22ch}

/* ---------- GOVERNMENT ---------- */
.as .as-aud-gpa-text{max-width:52ch;margin:22px 0 30px}

/* módulos de borde fino: retícula con divisores de 1px (gap sobre el color de línea) */
.as .as-aud-cells{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--as-line);border-top:1px solid var(--as-line);border-bottom:1px solid var(--as-line)}
.as .as-aud-cells > li{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:32px clamp(20px,2.4vw,36px) 30px;background:var(--as-cream)}
.as .as-white .as-aud-cells > li{background:#FFFFFF}
.as .as-aud-cells .as-text{margin:0}
.as .as-aud-state{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:13px;font-weight:600;color:var(--as-muted)}
.as .as-aud-state::before{content:"";width:7px;height:7px;border:1.5px solid var(--as-red);border-radius:50%}
.as .as-aud-result{margin:auto 0 0;padding-top:22px;width:100%}
.as .as-aud-result{font-size:14.5px;font-weight:700;line-height:1.4;color:var(--as-red)}
.as .as-aud-progs .as-text{margin-bottom:0}
.as .as-aud-prog-logo{display:flex;align-items:center;height:clamp(48px,4.4vw,60px);margin:0 0 22px}
.as .as-aud-prog-logo img{display:block;max-height:100%;max-width:170px;width:auto;height:auto;object-fit:contain}
.as .as-aud-progs .as-aud-result::before{content:"";display:block;height:1px;background:var(--as-line);margin-bottom:14px}
.as .as-aud-delivery{grid-template-columns:repeat(4,minmax(0,1fr))}
.as .as-aud-delivery > li::before{content:"";width:28px;height:2px;background:var(--as-red);margin-bottom:22px}

/* modelo: estaciones numeradas sobre una línea (dark) */
.as .as-aud-line{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.4vw,36px);position:relative}
.as .as-aud-line::before{content:"";position:absolute;left:0;right:0;top:21px;height:1px;background:var(--as-line-dark)}
.as .as-aud-line li{position:relative}
.as .as-aud-line-num{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:26px;border:1.5px solid var(--as-red-soft);border-radius:50%;background:var(--as-ink);
  font-size:13px;font-weight:800;color:var(--as-red-soft);font-variant-numeric:tabular-nums}
.as .as-aud-line-title{margin:0 0 10px;font-size:19px;font-weight:700;letter-spacing:-.015em;line-height:1.25;color:var(--as-cream)}
.as .as-dark .as-aud-line .as-text{color:var(--as-muted-dark)}
.as .as-aud-box{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(40px,5vw,88px);align-items:start;margin-top:clamp(64px,7vw,104px);padding-top:clamp(40px,4vw,56px);border-top:3px solid var(--as-red)}
.as .as-aud-box-title{margin:0 0 14px;font-size:clamp(24px,2.2vw,32px);font-weight:800;letter-spacing:-.03em;line-height:1.15;color:var(--as-cream);max-width:18ch}
.as .as-dark .as-aud-box-copy .as-text{color:var(--as-muted-dark);max-width:48ch;margin-bottom:30px}
.as .as-aud-box .as-stats-list{grid-template-columns:1fr 1fr}
.as .as-aud-box .as-stats-list li:nth-child(3){border-left:0}
.as .as-aud-box .as-stats-list li:nth-child(odd) .as-stat{padding-left:0}
.as .as-aud-box .as-stats-list li:nth-child(n+3){border-top:1px solid var(--as-line-dark)}
.as .as-aud-box .as-stat{padding-top:clamp(20px,2.4vw,32px);padding-bottom:clamp(20px,2.4vw,32px)}
.as .as-aud-box .as-stat-num{font-size:clamp(40px,4vw,64px)}
.as .as-aud-box .as-stat:hover .as-stat-num{color:var(--as-cream)} /* no son enlaces: sin estado hover */
.as .as-aud-box .as-stat:hover .as-stat-label::before{width:28px}

/* ---------- MOVIMIENTO ---------- */
@media (prefers-reduced-motion:no-preference){
  .as .as-aud-rig{animation:asIn .9s var(--as-ease) .25s backwards}
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .as .as-aud-delivery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .as .as-aud-line{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}
  .as .as-aud-line::before{display:none}
  .as .as-aud-line li{padding-top:0}
  .as .as-aud-sits li{grid-template-columns:56px minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:900px){
  .as .as-aud-rig{max-width:560px}
  .as .as-aud-sits li{grid-template-columns:48px minmax(0,1fr);row-gap:10px}
  .as .as-aud-sits .as-text{grid-column:2}
  .as .as-aud-cells,.as .as-aud-progs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .as .as-aud-proof,.as .as-aud-box{grid-template-columns:1fr}
  /* estaciones en vertical: la línea corre por la izquierda */
  .as .as-aud-line{grid-template-columns:1fr;row-gap:0}
  .as .as-aud-line li{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:20px;padding-bottom:32px}
  .as .as-aud-line li:not(:last-child)::before{content:"";position:absolute;left:21.5px;top:44px;bottom:0;width:1px;background:var(--as-line-dark)}
  .as .as-aud-line-num{grid-row:span 2;margin:0}
  .as .as-aud-line-title{padding-top:10px}
  .as .as-aud-line .as-text{grid-column:2}
}
@media (max-width:560px){
  .as .as-aud-sits li{grid-template-columns:1fr;row-gap:8px;padding:24px 0}
  .as .as-aud-sits .as-text{grid-column:1}
  .as .as-aud-bom a{grid-template-columns:1fr 20px;gap:10px 16px}
  .as .as-aud-bom-body{grid-column:1}
  .as .as-aud-bom .as-arrow{grid-column:2;grid-row:1}
  .as .as-aud-cells,.as .as-aud-progs,.as .as-aud-delivery{grid-template-columns:1fr}
  .as .as-aud-cells > li{padding-left:0;padding-right:0}
  .as .as-aud-box .as-stat-num{font-size:40px}
  .as .as-aud-box .as-stat{padding:20px 12px}
  .as .as-aud-box .as-stats-list li:nth-child(odd) .as-stat{padding-left:0}
}

/* ---------- SMALL BUSINESS: hero «de caos a orden» (.as-sbh, assets/js/sb-hero.js) ----------
   Escenario de tinta (familia del núcleo del home) con resplandor rojo;
   tarjetas grafito con filete claro; logos en versión crema (clients/on-dark/).
   El escenario se inclina con el puntero (--rx/--ry). */
.as .as-aud-rig.as-sbh{padding:0;border:0;background:none}
.as .as-aud-rig.as-sbh::before,.as .as-aud-rig.as-sbh::after{content:none}
.as .as-sbh .as-mini{margin:0}
.as .as-sbh-stage{position:relative;border-radius:22px;overflow:hidden;padding:clamp(14px,1.6vw,22px);
  background:radial-gradient(120% 85% at 88% 115%,rgba(194,76,38,.34),transparent 58%),radial-gradient(70% 60% at 0% 0%,rgba(231,119,90,.07),transparent 60%),var(--as-ink);
  box-shadow:0 34px 70px -34px rgba(21,23,28,.6),0 2px 0 rgba(255,253,247,.06) inset;
  transform:perspective(1300px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .7s cubic-bezier(.16,1,.3,1)}
.as .as-sbh-svg{display:block;width:100%;height:auto;overflow:hidden;font-family:inherit}
.as .as-sbh-piece{transform-box:fill-box;transform-origin:center;will-change:transform,opacity}
.as .as-sbh-card{fill:#1D2026;stroke:rgba(255,253,247,.1);stroke-width:1;transition:stroke .5s}
.as .as-sbh-piece.is-set .as-sbh-card{stroke:rgba(255,253,247,.2)}
.as .as-sbh-logo{opacity:.3;transition:opacity .6s}
.as .as-sbh-piece.is-set .as-sbh-logo{opacity:1}
.as .as-sbh-k{font-size:12px;font-weight:600;fill:#A7AAB3;letter-spacing:.01em}
.as .as-sbh-v{font-size:17px;font-weight:700;fill:#5E626C;letter-spacing:-.015em;transition:fill .5s}
.as .as-sbh-piece.is-set .as-sbh-v{fill:#FFFDF7}
.as .as-sbh-piece.is-ok .as-sbh-v{fill:#E7775A}
.as .as-sbh-tag{font-size:12px;font-weight:700;fill:#E7775A}
.as .as-sbh-dot{fill:#4A4E57;transition:fill .5s}
.as .as-sbh-piece.is-ok .as-sbh-dot{fill:#E7775A}
.as .as-sbh-check{transform:scale(0);transform-box:fill-box;transform-origin:center}
.as .as-sbh-check circle{fill:var(--as-red)}
.as .as-sbh-check path{fill:none;stroke:#FFFDF7;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.as .as-sbh-base{stroke:rgba(255,253,247,.14);stroke-width:1}
.as .as-sbh-bar{fill:rgba(255,253,247,.86)}
.as .as-sbh-bar.is-red{fill:#E7775A}
.as .as-sbh-line{fill:none;stroke:#E7775A;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.as .as-sbh-runner{fill:var(--as-ink);stroke:#E7775A;stroke-width:2.5;opacity:0}
.as .as-sbh-dust{fill:#E7775A;opacity:0}
.as .as-sbh-pulse{opacity:0}
.as .as-sbh-scanline{fill:#E7775A;opacity:0;filter:drop-shadow(0 0 6px rgba(231,119,90,.9))}
.as .as-sbh-scan{opacity:0}
@media (prefers-reduced-motion:reduce){.as .as-sbh-stage{transform:none;transition:none}}

/* ============================================================
   ENSAMBLE — PROGRAMS (fase 6): /programs/, /active-programs/,
   /delivered-programs/. Fichas de programa como registro/expediente
   (rcg_prog_card), pestañas Active/Delivered (rcg_prog_tabs), cifras
   de 5 columnas, audiencias, puertas «Explore Programs», credencial
   1GPA sobre tinta y opciones para agencias. Reutiliza .as-* del home.
   ============================================================ */

/* ---------- CIFRAS (5 columnas, sobre crema) ---------- */
.as .as-prog-stats{border-bottom:1px solid var(--as-line)}
.as .as-prog-stats .as-stats-list{grid-template-columns:repeat(5,1fr)}
.as .as-prog-stats .as-stat-num{font-size:clamp(40px,3.6vw,60px)}
.as .as-prog-stats .as-stat:hover .as-stat-num{color:var(--as-red)}
.as .as-prog-stats .as-stat-num em.as-prog-unit{font-size:.4em;letter-spacing:-.01em;margin-left:.18em;vertical-align:.12em}

/* ---------- DECLARACIÓN + DOS AUDIENCIAS ---------- */
.as .as-prog-statement{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,5vw,88px);align-items:end;margin-bottom:clamp(56px,6vw,88px)}
.as .as-prog-statement-lead{margin:0;font-size:clamp(28px,3vw,44px);font-weight:800;line-height:1.08;letter-spacing:-.03em;color:var(--as-ink);max-width:18ch;text-wrap:balance}
.as .as-prog-statement-text{margin:0;font-size:18px;line-height:1.6;color:var(--as-muted);max-width:52ch}
.as .as-prog-auds{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--as-line);border-bottom:1px solid var(--as-line)}
.as .as-prog-aud{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:40px clamp(20px,3vw,48px) 40px 0}
.as .as-prog-aud + .as-prog-aud{border-left:1px solid var(--as-line);padding-left:clamp(20px,3vw,48px);padding-right:0}
.as .as-prog-aud-fig{width:100%;aspect-ratio:3/2;margin-bottom:30px}
.as .as-prog-aud-fig img{width:100%;height:100%;object-fit:cover;display:block}
.as .as-prog-aud[data-aud="sbo"] .as-prog-aud-fig{border-top:3px solid var(--as-red)}
.as .as-prog-aud::before{content:"";position:absolute;top:-1px;left:0;height:2px;width:0;background:var(--as-red);transition:width .6s var(--as-ease)}
.as .as-prog-aud:hover::before,.as .as-prog-aud:focus-within::before{width:100%}
.as .as-prog-aud-title{margin:0;font-size:clamp(26px,2.4vw,36px);font-weight:800;line-height:1.1;letter-spacing:-.03em;color:var(--as-ink);max-width:20ch;text-wrap:balance}
.as .as-prog-for{margin:14px 0 18px;font-size:13px;font-weight:600;color:var(--as-muted)}
.as .as-prog-for::before{content:"";display:inline-block;width:7px;height:7px;border:1.5px solid var(--as-red);border-radius:50%;vertical-align:middle;margin-right:10px}
.as .as-prog-aud .as-text{max-width:56ch;margin-bottom:24px}
.as .as-prog-links{list-style:none;margin:auto 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px}
.as .as-prog-links .as-link{min-height:44px;text-decoration:none}
.as .as-prog-links .as-link:hover{color:var(--as-red-deep)}
.as .as-prog-links .as-link:hover .as-arrow{transform:translateX(4px)}

/* ---------- EXPLORE PROGRAMS: dos puertas con exhibit ---------- */
.as .as-prog-explore{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.4vw,36px)}
.as .as-prog-door{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:0 0 36px;border-bottom:1px solid var(--as-line)}
.as .as-prog-door-fig{width:100%;aspect-ratio:16/9}
.as .as-prog-pill{display:inline-flex;align-items:center;gap:8px}
.as .as-prog-pill i{width:7px;height:7px;border-radius:50%;background:var(--as-muted)}
.as .as-prog-door.is-live .as-prog-pill{color:var(--as-red)}
.as .as-prog-door.is-live .as-prog-pill i{background:var(--as-red)}
.as .as-prog-heroes{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) minmax(0,1.1fr);gap:clamp(24px,3vw,48px);align-items:start}
.as .as-prog-heroes-intro{display:flex;flex-direction:column;gap:32px;max-width:36ch}
.as .as-prog-seal{width:132px;height:132px;display:block}
.as .as-prog-seal text{font-family:inherit}
.as .as-prog-hero{margin:0}
.as .as-prog-hero + .as-prog-hero{margin-top:clamp(48px,7vw,112px)}
.as .as-prog-hero-fig{aspect-ratio:4/5;margin-bottom:20px}
.as .as-prog-hero-fig img{width:100%;height:100%;object-fit:cover;display:block}
.as .as-prog-hero-biz{margin:4px 0 10px;font-size:13px;font-weight:600;color:var(--as-red)}
.as .as-prog-hero-play{display:inline-flex;align-items:center;gap:14px;margin-top:22px;color:var(--as-ink);text-decoration:none;font-size:15px;font-weight:700}
.as .as-prog-hero-play-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--as-red);color:var(--as-cream);transition:background .2s,transform .35s var(--as-ease)}
.as .as-prog-hero-play-ic svg{width:16px;height:16px;fill:currentColor;margin-left:2px}
.as .as-prog-hero-play-tx{display:flex;flex-direction:column;line-height:1.25}
.as .as-prog-hero-play-tx small{font-size:12.5px;font-weight:600;color:var(--as-muted);font-variant-numeric:tabular-nums}
.as .as-prog-hero-play:hover .as-prog-hero-play-ic{background:var(--as-red-deep);transform:scale(1.06)}
.as .as-prog-hero-play:focus-visible{outline:2px solid var(--as-red);outline-offset:4px;border-radius:999px}
.as-vmodal{position:fixed;inset:0;margin:auto;padding:0;border:0;background:transparent;width:max-content;height:max-content;max-width:100vw;max-height:100vh;overflow:visible}
.as-vmodal::backdrop{background:rgba(21,23,28,.88)}
.as-vmodal-in{display:flex;flex-direction:column;gap:12px;width:min(88vw,calc((90vh - 64px) * 9 / 16))}
.as-vmodal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px}
.as-vmodal-title{margin:0;font-size:14px;font-weight:700;line-height:1.35;color:var(--as-cream)}
.as-vmodal-close{flex:none;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,253,247,.35);border-radius:50%;background:transparent;color:var(--as-cream);cursor:pointer;transition:background .2s,border-color .2s}
.as-vmodal-close svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round}
.as-vmodal-close:hover{background:var(--as-red);border-color:var(--as-red)}
.as-vmodal-close:focus-visible{outline:2px solid var(--as-red-soft);outline-offset:3px}
.as-vmodal-video{display:block;width:100%;aspect-ratio:9/16;object-fit:contain;background:#000;border:1px solid rgba(255,253,247,.18)}
@media (max-width:560px){.as-vmodal-title{font-size:13px}}
.as .as-prog-door .as-h3{font-size:clamp(24px,2vw,30px);font-weight:800;letter-spacing:-.025em}
.as .as-prog-door .as-text{max-width:56ch;margin-bottom:22px}
.as .as-prog-list{list-style:none;margin:0 0 30px;padding:0;width:100%;border-top:1px solid var(--as-line)}
.as .as-prog-list li{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--as-line);font-size:15px;line-height:1.5;color:var(--as-ink)}
.as .as-prog-list .as-check{flex:none;width:16px;height:16px;margin-top:3px;color:var(--as-red)}
.as .as-prog-door .as-btn{margin-top:auto}
.as .as-prog-door.is-live .as-prog-door-fig{border-top:3px solid var(--as-red)}

/* ---------- 1GPA sobre tinta: credencial + ledger ---------- */
.as .as-prog-cred-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,112px);align-items:center}
.as .as-prog-cred .as-head-stack .as-sub{max-width:46ch}
.as .as-prog-cred .as-ledger > div{border-bottom-color:var(--as-line-dark)}
.as .as-prog-cred .as-ledger dt{color:var(--as-muted-dark)}
.as .as-prog-cred .as-ledger dd{color:var(--as-cream)}
.as .as-prog-cred .as-tab{color:var(--as-red-soft)}

/* ---------- AGENCIAS: opciones ---------- */
.as .as-prog-agency{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,5vw,88px);align-items:start}
.as .as-prog-agency .as-head-stack{margin-bottom:22px}
.as .as-prog-agency-text{max-width:56ch;margin-bottom:32px}
.as .as-prog-options{list-style:none;margin:0;padding:0;border-top:3px solid var(--as-red)}
.as .as-prog-options li{padding:24px 0;border-bottom:1px solid var(--as-line)}
.as .as-prog-option-title{margin:0 0 6px;font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--as-ink)}

/* ---------- PESTAÑAS Active / Delivered ---------- */
.as .as-prog-tabs{display:flex;align-items:stretch;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;padding:0 var(--as-gutter);background:var(--as-cream);border-bottom:1px solid var(--as-line)}
.as .as-prog-tabs-list{list-style:none;margin:0;padding:0;display:flex;gap:clamp(20px,3vw,40px)}
.as .as-prog-tab{position:relative;display:flex;align-items:center;min-height:56px;font-size:15px;font-weight:600;color:var(--as-muted);text-decoration:none;transition:color .2s}
.as .as-prog-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--as-red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--as-ease)}
.as .as-prog-tab:hover{color:var(--as-ink)}
.as .as-prog-tab:hover::after{transform:scaleX(.35)}
.as .as-prog-tab.is-current{color:var(--as-red)}
.as .as-prog-tab.is-current::after{transform:none}
.as .as-prog-tabs-back{display:inline-flex;align-items:center;gap:8px;min-height:56px;font-size:14px;font-weight:700;color:var(--as-red);text-decoration:none;transition:color .2s}
.as .as-prog-tabs-back:hover{color:var(--as-red-deep)}
.as .as-prog-tabs-back:hover .as-arrow{transform:translateX(-4px)}

/* ---------- FOTO + NOTA (cabecera de las listas) ---------- */
.as .as-prog-lead{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:end;padding-top:clamp(48px,5vw,72px);padding-bottom:clamp(56px,6vw,88px)}
.as .as-prog-lead.is-solo{grid-template-columns:1fr}
.as .as-prog-lead-fig{margin:0;aspect-ratio:16/9}
.as .as-prog-lead.is-solo .as-prog-lead-fig{aspect-ratio:21/8}
.as .as-prog-lead-note{margin:0;padding-top:20px;border-top:3px solid var(--as-red);font-size:clamp(20px,1.9vw,26px);font-weight:700;line-height:1.35;letter-spacing:-.02em;color:var(--as-ink);max-width:28ch}

/* ---------- REGISTRO: grupos por estado ---------- */
.as .as-prog-group + .as-prog-group{margin-top:clamp(64px,7vw,104px)}
.as .as-prog-group-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;padding:18px 0 20px;border-top:3px solid var(--as-red);border-bottom:1px solid var(--as-ink)}
.as .as-prog-state{margin:0;font-size:clamp(24px,2.4vw,34px);font-weight:800;line-height:1.1;letter-spacing:-.03em;color:var(--as-ink);max-width:32ch;text-wrap:balance}
.as .as-prog-count{margin:0;font-size:14px;font-weight:700;color:var(--as-red);white-space:nowrap}

/* ---------- FICHA DE PROGRAMA (rcg_prog_card) ---------- */
.as .as-prog-card{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0 clamp(28px,3.4vw,56px);padding:36px 0;border-bottom:1px solid var(--as-line)}
.as .as-prog-card.no-act{grid-template-columns:minmax(0,1fr)}
.as .as-prog-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:16px 20px;margin-bottom:18px}
.as .as-prog-top > .as-prog-id:first-child{grid-column:1 / 3}
.as .as-prog-logos{display:flex;gap:6px}
.as .as-prog-logos img{display:block;width:auto;max-width:150px;height:52px;object-fit:contain;padding:6px 8px;background:#FFFFFF;border:1px solid var(--as-line);border-radius:8px}
.as .as-prog-name{margin:0 0 6px;font-size:22px;font-weight:700;line-height:1.2;letter-spacing:-.015em;color:var(--as-ink);text-wrap:balance}
.as .as-prog-funder{margin:0;font-size:13.5px;font-weight:600;line-height:1.45;color:var(--as-muted)}
.as .as-prog-status{display:inline-flex;align-items:center;gap:9px;margin:3px 0 0;max-width:22ch;font-size:13px;font-weight:700;line-height:1.35;color:var(--as-muted);text-align:left}
.as .as-prog-status i{position:relative;flex:none;width:8px;height:8px;border-radius:50%;background:var(--as-muted)}
.as .as-prog-card.is-open .as-prog-status{color:var(--as-red)}
.as .as-prog-card.is-open .as-prog-status i{background:var(--as-red)}
.as .as-prog-card.is-open .as-prog-status i::after{content:"";position:absolute;inset:-4px;border:1.5px solid var(--as-red);border-radius:50%;opacity:.35}
.as .as-prog-card.is-closed .as-prog-status i{background:transparent;border:1.5px solid var(--as-muted)}
.as .as-prog-card.is-dim .as-prog-name{color:var(--as-muted)}
.as .as-prog-desc{max-width:64ch;margin-bottom:22px}
.as .as-prog-tags{margin-bottom:0}
.as .as-prog-tags .as-prog-free{font-weight:700;color:var(--as-red)}

/* resultados: cifras en rojo sobre retícula fina (dt = etiqueta, dd = cifra) */
.as .as-prog-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));margin:24px 0 0;border-top:1px solid var(--as-line)}
.as .as-prog-results > div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:6px;padding:16px 16px 4px 0}
.as .as-prog-results > div + div{padding-left:16px;border-left:1px solid var(--as-line)}
.as .as-prog-results dd{margin:0;font-size:clamp(24px,2.2vw,32px);font-weight:800;line-height:1.05;letter-spacing:-.03em;color:var(--as-red);overflow-wrap:anywhere}
.as .as-prog-results dt{font-size:13px;font-weight:600;line-height:1.4;color:var(--as-muted)}

/* columna de acción */
.as .as-prog-act{display:flex;flex-direction:column;gap:20px;padding-left:clamp(20px,2.4vw,32px);border-left:1px solid var(--as-line)}
.as .as-prog-who{margin:0;font-size:14.5px;line-height:1.55;color:var(--as-ink)}
.as .as-prog-who-label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--as-muted)}
.as .as-prog-btns{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.as .as-prog-btns .as-btn{justify-content:space-between;text-align:left;line-height:1.25;padding-top:12px;padding-bottom:12px}
.as .as-prog-or{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;color:var(--as-muted)}
.as .as-prog-or::before,.as .as-prog-or::after{content:"";flex:1;height:1px;background:var(--as-line)}

/* nota de cierre del registro y cambio de lista */
.as .as-prog-note{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px clamp(32px,5vw,80px);align-items:center;margin-top:clamp(64px,7vw,104px);padding:clamp(28px,3.4vw,44px);background:var(--as-cream);border:1px solid var(--as-line)}
.as .as-prog-note-title{margin:0 0 10px;font-size:clamp(24px,2.4vw,34px);font-weight:800;line-height:1.1;letter-spacing:-.03em;color:var(--as-ink);text-wrap:balance}
.as .as-prog-note .as-text{max-width:62ch}
.as .as-prog-switch{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;padding-top:clamp(48px,5vw,72px);padding-bottom:clamp(48px,5vw,72px)}
.as .as-prog-switch-text{margin:0;font-size:clamp(20px,1.9vw,26px);font-weight:700;line-height:1.3;letter-spacing:-.02em;max-width:34ch}

/* movimiento: la señal viva respira (solo con movimiento permitido) */
@keyframes asProgPulse{0%{transform:scale(.6);opacity:.55}70%,100%{transform:scale(1.5);opacity:0}}
@media (prefers-reduced-motion:no-preference){
  .as .as-prog-card.is-open .as-prog-status i::after{animation:asProgPulse 2.4s var(--as-ease) infinite}
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .as .as-prog-card{grid-template-columns:minmax(0,1fr) 260px}
  .as .as-prog-card.no-act{grid-template-columns:minmax(0,1fr)}
  .as .as-prog-top{grid-template-columns:auto minmax(0,1fr)}
  .as .as-prog-top > .as-prog-id:first-child{grid-column:1 / -1}
  .as .as-prog-status{grid-column:1 / -1;max-width:none}
}
@media (max-width:900px){
  .as .as-prog-stats .as-stats-list{grid-template-columns:1fr 1fr}
  .as .as-prog-stats .as-stats-list li:nth-child(5){border-left:0}
  .as .as-prog-stats .as-stats-list li:nth-child(n+3){border-top:1px solid var(--as-line)}
  .as .as-prog-statement,.as .as-prog-auds,.as .as-prog-explore,.as .as-prog-cred-grid,.as .as-prog-agency,.as .as-prog-lead,.as .as-prog-note{grid-template-columns:1fr}
  .as .as-prog-aud,.as .as-prog-aud + .as-prog-aud{padding:36px 0;border-left:0}
  .as .as-prog-aud + .as-prog-aud{border-top:1px solid var(--as-line)}
  .as .as-prog-explore{gap:56px}
  .as .as-prog-heroes{grid-template-columns:1fr 1fr}
  .as .as-prog-heroes-intro{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between;max-width:none}
  .as .as-prog-heroes-intro .as-text{max-width:52ch}
  .as .as-prog-lead.is-solo .as-prog-lead-fig{aspect-ratio:16/9}
  .as .as-prog-card{grid-template-columns:1fr}
  .as .as-prog-act{margin-top:26px;padding:22px 0 0;border-left:0;border-top:1px solid var(--as-line)}
  .as .as-prog-btns{flex-direction:row;flex-wrap:wrap;align-items:center}
  .as .as-prog-btns .as-btn{justify-content:flex-start}
  .as .as-prog-or{display:none}
  .as .as-prog-note .as-btn{justify-self:start}
}
@media (max-width:560px){
  .as .as-prog-heroes{grid-template-columns:1fr}
  .as .as-prog-heroes-intro{flex-direction:column;align-items:flex-start;gap:24px}
  .as .as-prog-seal{width:96px;height:96px}
  .as .as-prog-hero + .as-prog-hero{margin-top:16px}
  .as .as-prog-top{grid-template-columns:1fr}
  .as .as-prog-logos{grid-column:1}
  .as .as-prog-results{grid-template-columns:1fr 1fr}
  .as .as-prog-results > div:nth-child(odd){padding-left:0;border-left:0}
  .as .as-prog-results > div:nth-child(n+3){border-top:1px solid var(--as-line)}
  .as .as-prog-btns{flex-direction:column;align-items:stretch}
  .as .as-prog-btns .as-btn{justify-content:space-between}
  .as .as-prog-tabs{gap:0 20px}
  .as .as-prog-tabs-list{gap:20px}
  .as .as-prog-tab,.as .as-prog-tabs-back{min-height:48px;font-size:14px}
  .as .as-prog-tabs-back{order:-1;width:100%;border-bottom:1px solid var(--as-line)}
  .as .as-prog-note{padding:24px 20px}
}

/* ============================================================
   ENSAMBLE — SERVICES + PORTFOLIO (fase 6, grupo C)
   page-services.php (hub: placa del ensamblaje + catálogo de módulos),
   page-service-detail.php (7 subpáginas: hoja con código de módulo,
   tabla de materiales «What is included», why, CTA oscuro de 2 opciones,
   fila de pliego anterior/siguiente) y page-portfolio.php (hojas de
   plano .as-case + pestañas finas + modal hoja). Prefijos .as-svc-* /
   .as-port-*. Reutiliza las primitivas .as-* de HOME ENSAMBLE.
   ============================================================ */

/* ---------- Marcos de hoja: marcas de registro compartidas ---------- */
.as-svc-banner,.as-svc-thumb,.as-svc-whyimg,.as-svc-ex,.as-svc-frame{position:relative;border:1px solid var(--as-ink);overflow:hidden;background:var(--as-cream)}
.as-svc-banner::before,.as-svc-banner::after,.as-svc-thumb::before,.as-svc-thumb::after,.as-svc-whyimg::before,.as-svc-whyimg::after,
.as-svc-ex::before,.as-svc-ex::after,.as-svc-frame::before,.as-svc-frame::after{content:"";position:absolute;top:8px;width:12px;height:12px;border:solid var(--as-ink);z-index:2;pointer-events:none;transition:border-color .3s}
.as-svc-banner::before,.as-svc-thumb::before,.as-svc-whyimg::before,.as-svc-ex::before,.as-svc-frame::before{left:8px;border-width:1px 0 0 1px}
.as-svc-banner::after,.as-svc-thumb::after,.as-svc-whyimg::after,.as-svc-ex::after,.as-svc-frame::after{right:8px;border-width:1px 1px 0 0}
/* placeholders: papel milimetrado + etiqueta visible (siguen siendo placeholders) */
.as-svc-banner.ph-img,.as-svc-thumb.ph-img,.as-svc-whyimg.ph-img,.as-svc-ex.ph-img,.as-svc-media.ph-img{
  display:flex;align-items:center;justify-content:center;padding:0 24px;text-align:center;font-size:12.5px;font-weight:600;color:var(--as-muted);
  background:linear-gradient(var(--as-line) 1px,transparent 1px) -1px -1px/32px 32px,linear-gradient(90deg,var(--as-line) 1px,transparent 1px) -1px -1px/32px 32px,var(--as-cream)}
.as-svc-banner img,.as-svc-thumb img,.as-svc-whyimg img,.as-svc-ex img,.as-svc-media img,.as-svc-media video{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- HUB: placa del ensamblaje (aside del hero) ---------- */
.as-svc-plate-wrap{margin:0 0 0 auto;width:100%;max-width:520px}
.as-svc-plate{display:block;width:100%;height:auto;overflow:visible}
.as-svc-plate-core{fill:var(--as-ink)}
.as-svc-plate-grid{fill:none;stroke:rgba(255,253,247,.09);stroke-width:1;vector-effect:non-scaling-stroke}
.as-svc-plate-wire{fill:none;stroke:var(--as-red);stroke-width:1.25;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}
.as-svc-plate-node{fill:var(--as-cream);stroke:var(--as-red);stroke-width:1.25;vector-effect:non-scaling-stroke}
.as-svc-plate-code{font-family:var(--ff);font-size:4.6px;font-weight:700;letter-spacing:.35px;fill:var(--as-red)}
.as-svc-plate-cap{display:flex;align-items:center;gap:8px;margin-top:18px;font-size:13px;font-weight:600;color:var(--as-muted)}
.as-svc-plate-cap::before,.as-svc-plate-cap::after{content:"";flex:1;height:1px;background:var(--as-line)}
.as-svc-plate-cap span:not([aria-hidden]){font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--as-ink)}
.as-svc-plate-cap span[aria-hidden]{color:rgba(21,23,28,.3)}

/* banda de imagen bajo el hero (IMAGE SPACE del mockup) */
.as-svc-banner-wrap{background:var(--as-cream);padding:0 var(--as-gutter) clamp(72px,8vw,120px)}
.as-svc-banner{aspect-ratio:21/8}

/* ---------- HUB: catálogo de módulos ---------- */
.as-svc-cat{list-style:none;margin:0;padding:0;border-top:3px solid var(--as-red)}
.as-svc-cat > li{border-bottom:1px solid var(--as-line)}
.as-svc-item{display:grid;grid-template-columns:72px minmax(150px,220px) minmax(0,1fr) auto;gap:clamp(20px,3vw,48px);align-items:center;padding:28px 0;text-decoration:none;color:inherit}
.as-svc-idx{align-self:start;display:flex;flex-direction:column;gap:6px;padding-top:4px}
.as-svc-code{font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--as-red)}
.as-svc-no{font-size:13px;font-weight:600;color:var(--as-muted)}
.as-svc-thumb{aspect-ratio:4/3}
.as-svc-name{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--as-muted)}
.as-svc-promise{margin:0 0 8px;font-size:clamp(20px,1.8vw,25px);font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--as-ink);text-wrap:balance;transition:color .25s}
.as-svc-desc{margin:0;font-size:15.5px;line-height:1.6;color:var(--as-muted);max-width:60ch}
.as-svc-more{margin-top:0;white-space:nowrap}
.as-svc-item:hover .as-svc-promise,.as-svc-item:focus-visible .as-svc-promise{color:var(--as-red)}
.as-svc-item:hover .as-svc-more{color:var(--as-red-deep)}
.as-svc-item:hover .as-arrow{transform:translateX(4px)}
.as-svc-item:hover .as-svc-thumb::before,.as-svc-item:hover .as-svc-thumb::after{border-color:var(--as-red)}
.as-svc-item:hover .as-svc-thumb.ph-img{background-color:#FFF6F1}

/* ---------- DETALLE: hoja del hero (aside) ---------- */
.as-svc-sheet{width:100%}
.as-svc-media{position:relative;aspect-ratio:4/3;overflow:hidden}
.as-svc-frame-tab{position:absolute;right:0;bottom:0;z-index:2;padding:8px 14px;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--as-red);background:var(--as-cream);border-top:1px solid var(--as-ink);border-left:1px solid var(--as-ink)}
.as-svc-frame .rcg-video-toggle{right:auto;left:12px}
.as-svc-dim{display:flex;align-items:baseline;gap:12px;margin:18px 0 0;font-size:13px;line-height:1.4;color:var(--as-muted)}
.as-svc-dim strong{flex:none;font-size:28px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--as-red)}
.as-svc-spec{margin-top:22px}
.as-svc-spec > div{grid-template-columns:96px minmax(0,1fr);padding:14px 0}
.as-svc-spec dd{font-size:16px}
.as-svc-spec dd.as-tab{font-size:15px;letter-spacing:.08em}
.as-svc-who{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;row-gap:2px}
.as-svc-who li:not(:last-child)::after{content:"/";margin:0 8px;font-weight:400;color:rgba(21,23,28,.3)}

/* ---------- DETALLE: What is included = tabla de materiales ---------- */
.as-svc-incl{list-style:none;margin:0;padding:0;border-top:3px solid var(--as-red)}
.as-svc-row{display:grid;grid-template-columns:88px minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,56px);align-items:start;padding:30px 0;border-bottom:1px solid var(--as-line)}
.as-svc-rowcode{margin:0;padding-top:6px;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--as-red);white-space:nowrap}
.as-svc-rowtitle{margin:0 0 8px;font-size:clamp(20px,1.8vw,25px);font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--as-ink)}
.as-svc-rowmain .as-text{max-width:52ch}
.as-svc-inclabel{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--as-muted)}
.as-svc-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--as-line)}
.as-svc-list li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--as-line);font-size:15px;line-height:1.45;color:var(--as-ink)}
.as-svc-list li:last-child{border-bottom:0}
.as-svc-list .as-check{width:16px;height:16px;margin-top:2px;color:var(--as-red)}

/* ---------- DETALLE: Why it matters ---------- */
.as-svc-why{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,104px);align-items:center}
.as-svc-whyimg{aspect-ratio:5/4}
.as-svc-why .as-h2{max-width:16ch}

/* ---------- DETALLE: ejemplos (marketing, technology) ---------- */
/* Design work (marketing-design): filas alternas, texto + 3 hojas de imagen */
.as .as-svc-work-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--as-line)}
.as .as-svc-work-item{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,88px);align-items:center;padding:clamp(48px,5.5vw,80px) 0;border-bottom:1px solid var(--as-line)}
.as .as-svc-work-item.is-flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.as .as-svc-work-item.is-flip .as-svc-work-copy{order:2}
.as .as-svc-work-logo{display:block;height:52px;width:auto;max-width:180px;object-fit:contain;margin:0 0 26px}
.as .as-svc-work-name{margin:0 0 14px;font-size:clamp(28px,2.8vw,40px);font-weight:800;letter-spacing:-.035em;line-height:1.05;color:var(--as-ink);text-wrap:balance}
.as .as-svc-work-tags{margin:0 0 20px;color:var(--as-red);font-weight:600}
.as .as-svc-work-copy .as-text{max-width:52ch;margin:0}
.as .as-svc-work-shots{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.4vw,18px)}
.as .as-svc-work-shot{aspect-ratio:4/3}
.as .as-svc-work-shot.is-main{grid-column:1 / -1;aspect-ratio:16/9}
@media(max-width:900px){
  .as .as-svc-work-item,.as .as-svc-work-item.is-flip{grid-template-columns:1fr}
  .as .as-svc-work-item.is-flip .as-svc-work-copy{order:0}
}
.as-svc-ex-grid,.as-svc-ex-row{display:grid;gap:clamp(16px,2vw,28px)}
.as-svc-ex-row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.as-svc-ex-row.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.as-svc-ex-row.cols-1{grid-template-columns:minmax(0,1fr)}
.as-svc-ex{aspect-ratio:4/3}
.as-svc-ex-row.cols-2 .as-svc-ex{aspect-ratio:2/1}

/* ---------- DETALLE: CTA oscuro con dos opciones ---------- */
.as-svc-cta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(40px,6vw,104px);align-items:start}
.as-svc-cta .as-head{margin-bottom:0}
.as-svc-opts{list-style:none;margin:0;padding:0;border-top:1px solid var(--as-cream)}
.as-svc-opts > li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 32px;align-items:center;padding:28px 0;border-bottom:1px solid var(--as-line-dark)}
.as-svc-opt-title{margin:0 0 6px;font-size:18px;font-weight:700;letter-spacing:-.015em;color:var(--as-cream)}
.as-svc-opt-text{margin:0;font-size:15px;line-height:1.55;color:var(--as-muted-dark);max-width:40ch}
.as-svc-phone{display:inline-flex;align-items:center;gap:10px;min-height:52px;font-size:clamp(20px,1.8vw,24px);font-weight:800;letter-spacing:-.02em;color:var(--as-cream);text-decoration:none;white-space:nowrap;transition:color .25s}
.as-svc-phone .as-arrow{color:var(--as-red-soft)}
.as-svc-phone:hover{color:var(--as-red-soft)}
.as-svc-phone:hover .as-arrow{transform:translateX(4px)}

/* ---------- DETALLE: anterior / siguiente = fila de pliego ---------- */
.as-svc-pager{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);background:var(--as-cream);padding:clamp(40px,5vw,72px) var(--as-gutter)}
.as-svc-pg{display:flex;flex-direction:column;justify-content:center;gap:6px;min-height:96px;padding:18px clamp(16px,2vw,28px);border-top:1px solid var(--as-ink);border-bottom:1px solid var(--as-line);color:var(--as-ink);text-decoration:none}
.as-svc-pg + .as-svc-pg{border-left:1px solid var(--as-line)}
.as-svc-pg:first-child{padding-left:0}
.as-svc-pg:last-child{padding-right:0}
.as-svc-pg-next{align-items:flex-end;text-align:right}
.as-svc-pg-all{align-items:center;text-align:center;min-width:220px}
.as-svc-pg-dir{font-size:13px;font-weight:600;color:var(--as-muted)}
.as-svc-pg-name{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 10px;font-size:18px;font-weight:700;line-height:1.3;letter-spacing:-.015em;transition:color .25s}
.as-svc-pg-next .as-svc-pg-name{justify-content:flex-end}
.as-svc-pg-code{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red)}
.as-svc-pg .as-arrow{width:20px;height:20px;color:var(--as-red)}
.as-svc-pg-prev .as-arrow{transform:scaleX(-1)}
.as-svc-pg-prev:hover .as-arrow{transform:scaleX(-1) translateX(4px)}
.as-svc-pg-next:hover .as-arrow{transform:translateX(4px)}
.as-svc-pg:hover .as-svc-pg-name{color:var(--as-red)}
.as-svc-pg-all .as-svc-pg-name{color:var(--as-red)}
.as-svc-pg-all:hover .as-svc-pg-name{color:var(--as-red-deep)}

/* ---------- PORTFOLIO: pestañas finas ---------- */
.as-port-sec{padding-top:clamp(40px,5vw,64px)}
.as-port-filters{display:flex;flex-wrap:wrap;gap:0 clamp(18px,2.6vw,40px);margin-bottom:clamp(40px,5vw,64px);border-bottom:1px solid var(--as-line)}
.as-port-filters[hidden]{display:none}
.as-port-filter{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:52px;padding:0 2px;border:0;background:none;font:600 15px/1 var(--ff);color:var(--as-muted);cursor:pointer;transition:color .25s}
.as-port-filter::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--as-red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--as-ease)}
.as-port-filter:hover{color:var(--as-ink)}
.as-port-filter.is-active{color:var(--as-red)}
.as-port-filter.is-active::after{transform:none}
.as-port-count{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--as-muted)}
.as-port-filter.is-active .as-port-count{color:var(--as-red)}

/* ---------- PORTFOLIO: hojas de plano ---------- */
.as .as-port-grid{row-gap:clamp(48px,5vw,72px)}
.as-port-case{position:relative}
.as-port-case[hidden]{display:none}
.as-port-name{margin:0 0 8px;font-size:15px;font-weight:700;line-height:1.4;color:var(--as-ink)}
/* Casos de éxito (oct 2026): 2 columnas; el marco muestra el logo del cliente
   (o sus iniciales) hasta que llegue la foto; con foto, el logo pasa a ficha. */
.as .as-port-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.as .as-port-fig{aspect-ratio:3/2}
.as-port-mark{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:17% 24%;transition:transform .7s var(--as-ease)}
.as-port-mark img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.as-port-mark.is-text{font-size:clamp(46px,5.4vw,84px);font-weight:800;letter-spacing:-.045em;line-height:1;color:var(--as-red)}
.as-port-case:hover .as-port-mark{transform:scale(1.04)}
/* Las fotos de casos de marketing ya traen el logo integrado: sin ficha encima. */
.as-port-fig.has-media .as-port-mark{display:none}
.as-port-headline{text-wrap:balance}
.as-port-m-logo{display:block;height:60px;width:auto;max-width:220px;object-fit:contain;margin:0 0 26px}
.as-port-m-story{margin-top:clamp(26px,3vw,38px);padding-top:clamp(22px,2.4vw,30px);border-top:3px solid var(--as-red)}
.as-port-m-story p{max-width:62ch;margin:0 0 18px;font-size:16.5px;line-height:1.7;color:var(--as-ink)}
.as-port-m-story p:first-child{font-size:18px;font-weight:600;letter-spacing:-.01em}
.as-port-m-story p:last-child{margin-bottom:0}
.as-port-case:hover .as-case-fig::before,.as-port-case:hover .as-case-fig::after{border-color:var(--as-red)}
.as-port-case:hover .as-case-fig.ph-img{background-color:#FFF6F1}
/* Clientes: dos filas en movimiento continuo (sentidos opuestos), bordes que
   se desvanecen, pausa al hover y botón de pausa (WCAG 2.2.2). Logos en gris
   que recuperan el color al hover. Con reduced-motion: fila estática con
   scroll horizontal. */
.as .as-port-marquee{position:relative;display:grid;gap:14px;padding:clamp(28px,3vw,40px) 0;background:transparent;border-top:1px solid var(--as-line);border-bottom:1px solid var(--as-line);margin:0 calc(-1 * var(--as-gutter));padding-left:0;padding-right:0}
.as .as-port-row{overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent)}
.as .as-port-track{list-style:none;margin:0;padding:0;display:flex;width:max-content;animation:asMarquee 70s linear infinite}
.as .as-port-row.is-reverse .as-port-track{animation-direction:reverse;animation-duration:80s}
.as .as-port-row:hover .as-port-track,.as .as-port-marquee.is-paused .as-port-track{animation-play-state:paused}
.as .as-port-track li{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:clamp(150px,14vw,210px);height:clamp(84px,8vw,112px);padding:0 clamp(18px,2vw,30px)}
.as .as-port-track img{display:block;max-width:100%;max-height:70%;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.72;transition:filter .35s,opacity .35s}
.as .as-port-track li:hover img{filter:none;opacity:1}
@keyframes asMarquee{to{transform:translateX(-50%)}}
.as .as-port-marquee-toggle{position:absolute;right:var(--as-gutter);bottom:-22px;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--as-line);border-radius:999px;background:var(--as-cream);color:var(--as-ink);font:600 13px/1 inherit;cursor:pointer}
.as .as-port-marquee-toggle[hidden]{display:none}
.as .as-port-marquee-toggle:hover{border-color:var(--as-red);color:var(--as-red)}
.as .as-port-marquee-toggle:focus-visible{outline:2px solid var(--as-red);outline-offset:3px}
.as .as-port-marquee-toggle svg{width:12px;height:12px;display:block;fill:currentColor}
.as .as-port-marquee-toggle .as-pm-play,.as .as-port-marquee.is-paused .as-pm-pause{display:none}
.as .as-port-marquee.is-paused .as-pm-play{display:block}
@media (hover:none){.as .as-port-track img{filter:none;opacity:1}}
@media (prefers-reduced-motion:reduce){
  .as .as-port-track{animation:none}
  .as .as-port-row{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
  .as .as-port-track li[aria-hidden="true"]{display:none}
}
.as-port-read{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:12px;padding:0;border:0;background:none;font:700 14.5px/1 var(--ff);color:var(--as-red);cursor:pointer;transition:color .25s}
.as-port-read[hidden]{display:none}
.as-port-read::after{content:"";position:absolute;inset:0;z-index:3} /* toda la hoja abre el caso */
.as-port-case:hover .as-port-read{color:var(--as-red-deep)}
.as-port-case:hover .as-port-read .as-arrow{transform:translateX(4px)}

/* ---------- PORTFOLIO: modal = hoja sobre la mesa ---------- */
.as-port-overlay{position:fixed;inset:0;z-index:9500;display:flex;align-items:center;justify-content:center;padding:clamp(12px,4vw,48px);background:rgba(21,23,28,.62)}
.as-port-overlay[hidden]{display:none}
.as-port-modal{position:relative;display:flex;flex-direction:column;width:min(880px,100%);max-height:min(92vh,980px);background:var(--as-cream);color:var(--as-ink);border:1px solid var(--as-ink);
  box-shadow:0 30px 80px rgba(21,23,28,.35)} /* única sombra: la de la hoja sobre el overlay */
.as-port-modal:focus{outline:none}
.as-port-modal::before,.as-port-modal::after{content:"";position:absolute;bottom:8px;width:12px;height:12px;border:solid var(--as-ink);z-index:2;pointer-events:none}
.as-port-modal::before{left:8px;border-width:0 0 1px 1px}
.as-port-modal::after{right:8px;border-width:0 1px 1px 0}
.as-port-m-tab{position:absolute;top:0;left:0;z-index:2;margin:0;padding:8px 14px;font-size:12px;font-weight:600;color:var(--as-ink);background:var(--as-cream);border-right:1px solid var(--as-ink);border-bottom:1px solid var(--as-ink)}
.as-port-close{position:absolute;top:10px;right:10px;z-index:3;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--as-line);border-radius:999px;background:var(--as-cream);color:var(--as-ink);cursor:pointer;transition:color .2s,border-color .2s}
.as-port-close svg{width:18px;height:18px}
.as-port-close:hover{color:var(--as-red);border-color:var(--as-red)}
.as-port-m-scroll{overflow-y:auto;overscroll-behavior:contain;padding:clamp(72px,7vw,84px) clamp(22px,4vw,56px) clamp(36px,4vw,52px)}
.as-port-m-scroll:focus-visible{outline-offset:-4px}
.as-port-m-title{margin:0;max-width:18ch;font-size:clamp(30px,3.4vw,46px);font-weight:800;line-height:1.04;letter-spacing:-.035em;text-wrap:balance;color:var(--as-ink)}
.as-port-m-client{margin:14px 0 0;font-size:15px;font-weight:600;color:var(--as-muted)}

/* ---------- MOVIMIENTO (solo con preferencia de movimiento) ---------- */
@media (prefers-reduced-motion:no-preference){
  .as-svc-plate-wire{animation:asWire .8s var(--as-ease) backwards;animation-delay:calc(.45s + var(--n,0) * .07s)}
  .as-svc-plate-node,.as-svc-plate-code{animation:asFade .7s ease .3s backwards}
  .as-port-overlay.is-open{animation:asFade .25s ease backwards}
  .as-port-overlay.is-open .as-port-modal{animation:asIn .5s var(--as-ease) backwards}
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .as-svc-item{grid-template-columns:64px minmax(140px,190px) minmax(0,1fr)}
  .as-svc-more{grid-column:3}
  .as-svc-row{grid-template-columns:76px minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:900px){
  .as-svc-plate-wrap{margin:0;max-width:460px}
  .as-svc-banner{aspect-ratio:16/9}
  .as-svc-item{grid-template-columns:minmax(0,150px) minmax(0,1fr);gap:14px 20px;align-items:start}
  .as-svc-idx{grid-column:1 / -1;flex-direction:row;gap:12px;padding-top:0}
  .as-svc-more{grid-column:2}
  .as-svc-row{grid-template-columns:1fr;gap:14px}
  .as-svc-rowcode{padding-top:0}
  .as-svc-why,.as-svc-cta{grid-template-columns:1fr}
  .as-svc-ex-row.cols-3,.as-svc-ex-row.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .as-svc-ex-row.cols-2 .as-svc-ex{aspect-ratio:4/3}
  .as-svc-ex-row.cols-2:has(.has-media){grid-template-columns:1fr}
  .as-svc-ex-row.cols-2 .as-svc-ex.has-media{aspect-ratio:2/1}
  .as-svc-pager{grid-template-columns:1fr 1fr}
  .as-svc-pg-all{grid-column:1 / -1;grid-row:2;min-width:0;border-left:0!important;border-top:0;padding-left:0;padding-right:0}
  .as-svc-pg-next{padding-right:0}
  .as .as-port-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .as-svc-item{grid-template-columns:1fr}
  .as-svc-more{grid-column:1}
  .as-svc-thumb{aspect-ratio:16/9}
  .as-svc-spec > div{grid-template-columns:1fr}
  .as-svc-ex-row.cols-3,.as-svc-ex-row.cols-2{grid-template-columns:1fr}
  .as-svc-opts > li{grid-template-columns:1fr}
  .as-svc-opts .as-btn{justify-self:start}
  .as-svc-phone{white-space:normal}
  .as-svc-pager{grid-template-columns:1fr}
  .as-svc-pg,.as-svc-pg-next,.as-svc-pg-all{align-items:flex-start;text-align:left;padding-left:0;padding-right:0;border-left:0!important;min-height:80px}
  .as-svc-pg-next .as-svc-pg-name{justify-content:flex-start}
  .as-svc-pg{border-top:1px solid var(--as-line);margin-top:-1px}
  .as-svc-pg-all{grid-row:auto}
  .as-svc-pg-empty{display:none}
  .as .as-port-grid{grid-template-columns:1fr}
  .as-port-filter{font-size:14px}
          .as-port-overlay{padding:10px;align-items:flex-end}
  .as-port-modal{max-height:94vh}
}

/* ============================================================
   ENSAMBLE — COMPANY (fase 6, grupo D1): About, Team, Contact.
   Prefijos: .as-co-* (About), .as-team-* (organigrama, About+Team,
   inc/team-data.php), .as-contact-* (Contact). Reutiliza las
   primitivas .as-* (hero de página, ledger, stats, checks, botones,
   campo rojo). Sin sombras, retícula fina, rojo como señal.
   ============================================================ */

/* ---------- ABOUT: historia + cifras ---------- */
.as .as-co-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,5vw,88px);align-items:start}
.as .as-co-story .as-h2{max-width:18ch}
.as .as-co-prose{display:grid;gap:18px;max-width:60ch}
.as .as-co-prose p{margin:0;font-size:17px;line-height:1.65;color:var(--as-muted)}
.as .as-co-prose p:first-child{font-size:clamp(18px,1.5vw,20px);font-weight:600;line-height:1.55;color:var(--as-ink)}

/* cifras en rejilla 2×2 con líneas finas (variante de .as-stats-list) */
.as .as-co-stats{grid-template-columns:1fr 1fr;border-top:3px solid var(--as-red);margin-bottom:clamp(28px,3vw,40px)}
.as .as-co-stats li{border-bottom:1px solid var(--as-line)}
.as .as-co-stats li + li{border-left:0}
.as .as-co-stats li:nth-child(even){border-left:1px solid var(--as-line)}
.as .as-co-stats li .as-stat,.as .as-co-stats li:first-child .as-stat{padding:clamp(24px,2.6vw,36px) clamp(16px,2vw,28px)}
.as .as-co-stats li:nth-child(odd) .as-stat{padding-left:0}
.as .as-co-stats .as-stat-num{font-size:clamp(44px,4.4vw,68px)}
.as .as-co-stats .as-stat:hover .as-stat-num{color:var(--as-ink)} /* no son enlaces: sin hover de color */
.as .as-co-stats .as-stat:hover .as-stat-label::before{width:28px}
.as .as-co-code{color:var(--as-red);letter-spacing:-.03em}
.as .as-count-ready .as-co-static .as-stat-label::before{width:28px}

/* credenciales: .as-checks en versión clara */
.as .as-co-creds{border-top-color:var(--as-line)}
.as .as-co-creds li{color:var(--as-ink);border-bottom-color:var(--as-line)}
.as .as-co-creds .as-check{color:var(--as-red)}

/* ---------- ABOUT: misión (tinta) ---------- */
.as .as-dark .as-co-split .as-head{margin-bottom:0}
.as .as-dark .as-co-split .as-h2{max-width:16ch}
.as .as-dark .as-co-split .as-sub{max-width:56ch}
.as .as-co-diff .as-h3{font-size:18px;margin:0 0 18px}
.as .as-co-fig{position:relative;width:100%;overflow:hidden;border:1px solid var(--as-ink);background:var(--as-cream)}
.as .as-co-hero-fig{aspect-ratio:4/3}
.as .as-co-mission-fig{aspect-ratio:4/3;margin:0 0 36px;border-color:var(--as-line-dark);background:var(--as-ink-2)}
.as .as-co-team-fig{aspect-ratio:16/9;margin:0 0 clamp(40px,5vw,64px)}

/* ---------- ABOUT: partners (registro de hojas finas) ---------- */

/* ---------- ABOUT: socios (cuadrícula de logos con nombre) ---------- */
.as .as-co-logos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:3px solid var(--as-red);border-left:1px solid var(--as-line)}
.as .as-co-logo{display:flex;flex-direction:column;align-items:center;gap:14px;padding:clamp(22px,2.4vw,32px) clamp(12px,1.4vw,20px) clamp(18px,2vw,24px);border-right:1px solid var(--as-line);border-bottom:1px solid var(--as-line);text-align:center}
.as .as-co-logo-img{display:flex;align-items:center;justify-content:center;width:100%;height:clamp(56px,5.4vw,76px)}
.as .as-co-logo-img img{display:block;max-width:86%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:transform .5s var(--as-ease)}
.as .as-co-logo:hover .as-co-logo-img img{transform:scale(1.05)}
.as .as-co-logo-name{font-size:12.5px;font-weight:600;line-height:1.35;color:var(--as-muted);max-width:20ch}
@media(max-width:1100px){.as .as-co-logos{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.as .as-co-logos{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- ORGANIGRAMA (About + Team) ----------
   Un tronco fino a la izquierda une los departamentos (módulos del plano);
   cada uno lleva su código rojo sobre un nodo del tronco. */
.as .as-team{position:relative;border-top:3px solid var(--as-red)}
.as .as-team::before{content:"";position:absolute;left:3.5px;top:0;bottom:0;width:1px;background:var(--as-line)}
.as .as-team-dept{position:relative;display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(20px,3vw,56px);padding:34px 0 38px;border-bottom:1px solid var(--as-line)}
.as .as-team-head{position:relative;padding-left:26px}
.as .as-team-head::before{content:"";position:absolute;left:0;top:4px;width:8px;height:8px;border:1.5px solid var(--as-red);border-radius:50%}
.as .as-team-dept:hover .as-team-head::before{background:var(--as-red)}
.as .as-team-name{margin:0;display:flex;flex-direction:column;gap:8px;font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--as-ink)}
.as .as-team-code{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red);line-height:1}
.as .as-team-count{margin:10px 0 0;font-size:13px;font-weight:600;color:var(--as-muted)}
.as .as-team-people{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.4vw,32px) clamp(16px,2vw,28px)}
.as .as-team-person{display:flex;flex-direction:column;min-width:0}
.as .as-team-photo{position:relative;aspect-ratio:4/5;overflow:hidden;margin-bottom:14px;background:var(--as-cream);border:1px solid var(--as-line);transition:border-color .3s}
.as .as-team-photo::after{content:"";position:absolute;top:0;left:0;height:2px;width:0;background:var(--as-red);transition:width .6s var(--as-ease)}
.as .as-team-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.as .as-team-initials{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--as-muted)}
.as .as-team-pname{margin:0 0 4px;font-size:16px;font-weight:700;letter-spacing:-.01em;line-height:1.3;color:var(--as-ink);transition:color .25s}
.as .as-team-role{margin:0;font-size:13.5px;line-height:1.45;color:var(--as-muted)}
.as .as-team-person:hover .as-team-photo{border-color:rgba(21,23,28,.3)}
.as .as-team-person:hover .as-team-photo::after{width:100%}
.as .as-team-person:hover .as-team-pname{color:var(--as-red)}
/* suelo del retrato = el opuesto al de la sección */
.as :not(.as-white) > .as-team .as-team-photo{background:#FFFFFF}
.as .as-team-head::before{background:var(--as-cream)}
.as .as-white .as-team-head::before{background:#FFFFFF}
.as .as-team-dept:hover .as-team-head::before{background:var(--as-red)}
/* variante compacta (About) */
.as .as-team-compact .as-team-dept{padding:26px 0 28px}
.as .as-team-compact .as-team-people{grid-template-columns:repeat(6,minmax(0,1fr));gap:20px 18px}
.as .as-team-compact .as-team-pname{font-size:14.5px}
.as .as-team-compact .as-team-role{font-size:12.5px}
.as .as-team-compact .as-team-photo{margin-bottom:10px}

/* ficha del hero de /team/ */
.as .as-team-sheet{min-width:min(100%,320px)}
.as .as-team-sheet > div{grid-template-columns:130px 1fr}

/* ---------- CONTACT ---------- */
.as .as-contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(40px,5vw,88px);align-items:start}
.as .as-contact-notes{margin:0 0 clamp(32px,4vw,48px)}
.as .as-contact-notes > div{padding:22px 0;border-bottom:1px solid var(--as-line)}
.as .as-contact-notes > div:first-child{border-top:1px solid var(--as-line)}
.as .as-contact-notes dt{font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--as-ink);margin-bottom:6px}
.as .as-contact-notes dd{margin:0;font-size:15.5px;line-height:1.65;color:var(--as-muted);max-width:44ch}
.as .as-contact-ledger > div{grid-template-columns:110px 1fr}
.as .as-contact-ledger dd{font-size:clamp(17px,1.4vw,20px)}
.as .as-contact-ledger a{color:var(--as-red);text-decoration:none;overflow-wrap:anywhere;transition:color .2s}
.as .as-contact-ledger a:hover{color:var(--as-red-deep);text-decoration:underline;text-underline-offset:4px}

/* el pliego: borde fino con marcas de registro, sin sombra */
.as .as-contact-sheet{position:relative;padding:clamp(28px,3.4vw,48px);background:var(--as-cream);border:1px solid var(--as-ink)}
.as .as-contact-sheet::before,.as .as-contact-sheet::after{content:"";position:absolute;top:8px;width:12px;height:12px;border-color:var(--as-ink);border-style:solid;pointer-events:none}
.as .as-contact-sheet::before{left:8px;border-width:1px 0 0 1px}
.as .as-contact-sheet::after{right:8px;border-width:1px 1px 0 0}
.as .as-contact-title{margin:0 0 26px;font-size:clamp(26px,2.4vw,34px);font-weight:800;letter-spacing:-.03em;line-height:1.1;color:var(--as-ink)}
.as .as-contact-form{display:grid;gap:20px}
.as .as-contact-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.as .as-contact-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.as .as-contact-field label{font-size:13px;font-weight:600;color:var(--as-ink)}
.as .as-contact-field input,.as .as-contact-field select,.as .as-contact-field textarea{width:100%;min-height:48px;padding:12px 14px;font:400 16px/1.4 var(--ff);color:var(--as-ink);background:#FFFFFF;border:1px solid rgba(21,23,28,.28);border-radius:8px;
  transition:border-color .2s;-webkit-appearance:none;appearance:none}
.as .as-contact-field textarea{min-height:140px;resize:vertical}
.as .as-contact-checks{margin:0;padding:0;border:0;gap:10px}
.as .as-contact-checks legend{padding:0;margin:0 0 10px;font-size:13px;font-weight:600;color:var(--as-ink)}
.as .as-contact-check{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;font-weight:500;line-height:1.45;color:var(--as-ink);cursor:pointer}
.as .as-contact-field .as-contact-check input{-webkit-appearance:checkbox;appearance:auto;width:17px;height:17px;min-height:0;margin:2px 0 0;padding:0;border:0;border-radius:3px;box-shadow:none;flex:none;accent-color:var(--as-red)}
.as .as-contact-field select{padding-right:40px;cursor:pointer;
  background:#FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23C24C26' stroke-width='1.8'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center/16px 16px}
.as .as-contact-field input:hover,.as .as-contact-field select:hover,.as .as-contact-field textarea:hover{border-color:rgba(21,23,28,.5)}
.as .as-contact-field input:focus,.as .as-contact-field select:focus,.as .as-contact-field textarea:focus{border-color:var(--as-red);outline:1px solid var(--as-red);outline-offset:0;border-radius:8px}
.as .as-contact-hint{margin:0;font-size:12.5px;line-height:1.45;color:var(--as-muted)}
.as .as-contact-submit{justify-self:start;border:0;cursor:pointer;font-family:var(--ff)}
.as .as-contact-submit:hover .as-arrow{transform:translateX(4px)}
.as .as-contact-note{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--as-line);font-size:13px;color:var(--as-muted)}
.as .as-contact-success{margin:0 0 24px;padding:18px 20px;background:#FFF6F1;border-top:3px solid var(--as-red)}
.as .as-contact-success p{margin:0;font-size:14.5px;color:var(--as-ink)}
.as .as-contact-success .as-contact-success-title{margin-bottom:4px;font-size:16px;font-weight:700;color:var(--as-red-deep)}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .as .as-team-people{grid-template-columns:repeat(3,minmax(0,1fr))}
  .as .as-team-compact .as-team-people{grid-template-columns:repeat(4,minmax(0,1fr))}
  .as .as-team-dept{grid-template-columns:200px minmax(0,1fr)}
}
@media (max-width:900px){
  .as .as-co-split,.as .as-contact-grid{grid-template-columns:1fr}
  .as .as-team-dept{grid-template-columns:1fr;gap:20px}
  .as .as-team-people,.as .as-team-compact .as-team-people{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:560px){
  .as .as-team-people,.as .as-team-compact .as-team-people{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px}
  .as .as-team::before{display:none}
  .as .as-co-stats .as-stat-num{font-size:40px}
  .as .as-contact-row{grid-template-columns:1fr}
  .as .as-contact-ledger > div,.as .as-team-sheet > div{grid-template-columns:1fr}
  .as .as-contact-sheet{padding:28px 18px}
  .as .as-contact-submit{justify-self:stretch;justify-content:center}
}

/* ============================================================
   ENSAMBLE — COMUNIDAD (fase 6, grupo D2): Events (.as-ev-*),
   FAQ (.as-faq-*), Our Space (.as-space-*). Reutiliza las primitivas
   .as-* (hero de página, secciones, títulos con acento, agenda, ledger,
   checks, botones, campo rojo). Solo retícula fina, bordes de 1px,
   reglas rojas de 3px, sin sombras.
   ============================================================ */

/* ---------- MEDIA: placeholders en papel milimetrado (compartido) ---------- */
.as .as-ev-ph{position:relative;overflow:hidden;background:var(--as-cream)}
.as .as-ev-ph.ph-img{display:flex;align-items:flex-end;justify-content:flex-start;padding:14px 16px;
  font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--as-muted);text-align:left;
  background:linear-gradient(rgba(21,23,28,.06) 1px,transparent 1px) -1px -1px/32px 32px,linear-gradient(90deg,rgba(21,23,28,.06) 1px,transparent 1px) -1px -1px/32px 32px,var(--as-cream)}
.as .as-white .as-ev-ph.ph-img{background-color:#FFFFFF}
.as .as-dark .as-ev-ph.ph-img{color:var(--as-muted-dark);
  background:linear-gradient(rgba(255,253,247,.06) 1px,transparent 1px) -1px -1px/28px 28px,linear-gradient(90deg,rgba(255,253,247,.06) 1px,transparent 1px) -1px -1px/28px 28px,var(--as-ink-2)}
.as .as-ev-ph.has-media img{width:100%;height:100%;object-fit:cover;display:block}

/* franjas de fotos a sangre: retícula fina (1px) entre celdas */
.as .as-ev-strip,.as .as-space-strip{--as-ev-rule:rgba(21,23,28,.24);display:grid;gap:1px;background:var(--as-ev-rule);border-bottom:1px solid var(--as-ev-rule)}
.as .as-ev-strip{grid-template-columns:repeat(4,1fr);height:clamp(180px,17vw,240px)}
.as .as-space-strip{grid-template-columns:2fr 1fr 1fr;height:clamp(220px,24vw,320px)}
.as .as-ev-strip > *,.as .as-space-strip > *{height:100%}

/* ---------- EVENTS: agenda en vivo ---------- */
.as .as-ev-feed:empty{display:none}
.as .as-ev-status{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px clamp(20px,3vw,56px);align-items:center;padding:30px 0;border-top:3px solid var(--as-red);border-bottom:1px solid var(--as-line)}
.as .as-ev-status[hidden]{display:none}
.as .as-ev-tabs{margin-bottom:0}
.as .as-ev-tabs + .as-sr + .as-agenda{border-top-width:0}
.as .as-agenda-row[hidden]{display:none}
.as .as-ev-org-logo{display:block;height:36px;width:auto;max-width:150px;margin:0 0 14px;object-fit:contain;object-position:left center}
.as .as-ev-status-title{margin:0;font-size:clamp(20px,1.8vw,25px);font-weight:700;letter-spacing:-.02em;line-height:1.25;color:var(--as-ink)}
.as .as-ev-status-title + .as-text{margin-top:6px}
.as .as-ev-status .as-ev-loading{font-size:15.5px;font-weight:600;color:var(--as-muted)}
.as .as-ev-status .as-btn{justify-self:start}
/* fecha grande en rojo: día (cifra) + mes / día de la semana */
.as .as-ev-date{margin:0 0 10px}
.as .as-ev-date time{display:flex;align-items:flex-end;gap:12px;color:var(--as-red)}
.as .as-ev-day{font-size:clamp(44px,4.2vw,60px);font-weight:800;line-height:.86;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.as .as-ev-mon{display:flex;flex-direction:column;gap:2px;font-size:15px;font-weight:700;line-height:1.1}
.as .as-ev-dow{font-size:13px;font-weight:600;color:var(--as-muted)}

/* por qué asistir: 2×2 en retícula fina */
.as .as-ev-attend{list-style:none;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--as-line)}
.as .as-ev-attend li{position:relative;padding:36px clamp(20px,3vw,48px) 36px 0;border-bottom:1px solid var(--as-line)}
.as .as-ev-attend li:nth-child(even){padding-left:clamp(20px,3vw,48px);padding-right:0;border-left:1px solid var(--as-line)}
.as .as-ev-attend li::before{content:"";position:absolute;top:-1px;left:0;height:2px;width:0;background:var(--as-red);transition:width .6s var(--as-ease)}
.as .as-ev-attend li:hover::before{width:100%}
.as .as-ev-attend-num{display:block;margin-bottom:14px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red)}
.as .as-ev-attend .as-text{max-width:52ch}

/* serie mensual (dark): ledger sobre tinta + foto + virtual */
.as .as-ev-series-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,104px);align-items:center}
.as .as-ev-ledger{margin:0 0 32px}
.as .as-dark .as-ev-ledger > div{border-bottom-color:var(--as-line-dark)}
.as .as-dark .as-ev-ledger dt{color:var(--as-muted-dark)}
.as .as-dark .as-ev-ledger dd{color:var(--as-cream);font-size:clamp(17px,1.4vw,20px)}
.as .as-ev-series-media{aspect-ratio:4/3;border-radius:18px;border:1px solid var(--as-line-dark)}
.as .as-ev-virtual{margin-top:20px;padding:22px 24px;border:1px solid var(--as-line-dark);border-top:3px solid var(--as-red-soft)}
.as .as-ev-virtual-title{margin:0 0 8px;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--as-cream)}
.as .as-ev-virtual p{margin:0;font-size:14.5px;line-height:1.6;color:var(--as-muted-dark);max-width:52ch}

/* galería: 3 × 2 en retícula fina */
.as .as-ev-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(21,23,28,.24);border:1px solid rgba(21,23,28,.24)}
.as .as-ev-gallery > *{aspect-ratio:4/3}

/* cierre con dos acciones (mockup): crema + contorno crema */
.as .as-ev-final-actions{display:flex;flex-wrap:wrap;gap:12px;justify-self:start}
.as .as-ev-btn-ghost{border:1.5px solid rgba(255,253,247,.6);color:var(--as-cream)}
.as .as-ev-btn-ghost:hover{background:var(--as-cream);border-color:var(--as-cream);color:var(--as-red)}

/* ---------- FAQ ---------- */
/* contacto del hero (ledger sobre tinta, enlaces en rojo señal) */
.as .as-faq-contact{width:100%;max-width:440px}
.as .as-dark .as-faq-contact > div{border-bottom-color:var(--as-line-dark)}
.as .as-dark .as-faq-contact dt{color:var(--as-muted-dark)}
.as .as-faq-contact > div{grid-template-columns:90px 1fr}
.as .as-faq-contact a{color:var(--as-red-soft);text-decoration:none;overflow-wrap:anywhere}
.as .as-faq-contact a:hover{text-decoration:underline;text-underline-offset:4px}

.as .as-faq-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(40px,5vw,88px);align-items:start}
.as .as-faq-aside{position:sticky;top:100px}
body.admin-bar .as .as-faq-aside{top:132px}
.as .as-faq-topics-label{margin-bottom:14px}
/* filtros: filas finas; activo = rojo con regla roja a la izquierda */
.as .as-faq-nav{display:flex;flex-direction:column;border-top:1px solid var(--as-line)}
.as .as-faq-nav[hidden]{display:none}
.as .as-faq-filter{position:relative;display:flex;align-items:center;width:100%;min-height:48px;padding:0 0 0 16px;border:0;border-bottom:1px solid var(--as-line);background:none;
  font:600 15px/1.3 var(--ff);color:var(--as-ink);text-align:left;transition:color .25s,padding .45s var(--as-ease)}
.as .as-faq-filter::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;background:var(--as-red);transform:scaleY(0);transition:transform .45s var(--as-ease)}
.as .as-faq-filter:hover{color:var(--as-red)}
.as .as-faq-filter.is-active,.as .as-faq-filter[aria-pressed="true"]{color:var(--as-red);padding-left:20px}
.as .as-faq-filter.is-active::before,.as .as-faq-filter[aria-pressed="true"]::before{transform:scaleY(1)}
.as .as-faq-help{margin-top:32px;padding:22px 22px 18px;border:1px solid var(--as-line);border-top:3px solid var(--as-red);background:#FFFFFF}
.as .as-faq-help-title{margin:0 0 4px;font-size:15px;font-weight:700;color:var(--as-ink)}
.as .as-faq-help .as-text{font-size:14px;margin-bottom:10px}
.as .as-faq-help-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14.5px;font-weight:700;color:var(--as-red);text-decoration:none;overflow-wrap:anywhere}
.as .as-faq-help-link:hover{color:var(--as-red-deep)}
.as .as-faq-help-link:hover .as-arrow{transform:translateX(4px)}

/* grupos y preguntas */
.as .as-faq-group[hidden]{display:none}
.as .as-faq-group + .as-faq-group{margin-top:clamp(48px,5vw,72px)}
.as .as-faq-group-title{margin:0;padding-bottom:16px;border-bottom:3px solid var(--as-red);font-size:clamp(22px,2vw,28px);font-weight:800;letter-spacing:-.025em;line-height:1.15;color:var(--as-ink)}
.as .as-faq-item{border-bottom:1px solid var(--as-line)}
.as .as-faq-q-wrap{margin:0;font:inherit}
.as .as-faq-q{display:flex;align-items:center;justify-content:space-between;gap:28px;width:100%;min-height:64px;padding:20px 0;border:0;background:none;
  font:700 18px/1.35 var(--ff);letter-spacing:-.015em;color:var(--as-ink);text-align:left;transition:color .25s}
.as .as-faq-q:hover,.as .as-faq-q[aria-expanded="true"]{color:var(--as-red)}
/* + / − dibujado: dos trazos; el vertical gira hasta tumbarse al abrir */
.as .as-faq-sign{position:relative;flex:none;width:20px;height:20px;color:var(--as-red)}
.as .as-faq-sign::before,.as .as-faq-sign::after{content:"";position:absolute;left:3px;right:3px;top:50%;height:2px;margin-top:-1px;background:currentColor;border-radius:1px}
.as .as-faq-sign::after{transform:rotate(90deg);transition:transform .4s var(--as-ease)}
.as .as-faq-q[aria-expanded="true"] .as-faq-sign::after{transform:rotate(0deg)}
.as .as-faq:not(.as-faq-js) .as-faq-sign{display:none}
.as .as-faq-a[hidden]{display:none}
.as .as-faq-a p{margin:0;padding:0 48px 26px 0;max-width:64ch;font-size:16px;line-height:1.7;color:var(--as-muted)}

/* ---------- OUR SPACE ---------- */
.as .as-space-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,6vw,104px);align-items:center}
.as .as-space-split.is-top{align-items:start}
.as .as-space-text{max-width:58ch;margin:0 0 16px}
.as .as-dark .as-space-text{color:var(--as-muted-dark)}
.as .as-space-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:28px}
.as .as-space-phone{display:inline-flex;align-items:center;min-height:44px;font-size:15px;font-weight:700;color:var(--as-red);text-decoration:none}
.as .as-space-phone:hover{color:var(--as-red-deep)}
/* ficha «Amenities included» */
.as .as-space-box{padding:30px clamp(20px,2.4vw,36px) 20px;border:1px solid var(--as-line);border-top:3px solid var(--as-red);background:#FFFFFF}
.as .as-space-box-title{margin:0 0 14px;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--as-ink)}
.as .as-dark .as-space-box-title{margin-top:30px;color:var(--as-cream)}
/* checks sobre fondo claro */
.as .as-space-checks{list-style:none;border-top:1px solid var(--as-line)}
.as .as-space-checks li{display:flex;gap:14px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--as-line);font-size:15px;line-height:1.45;color:var(--as-ink)}
.as .as-space-checks .as-check{color:var(--as-red);margin-top:1px}
.as .as-space-box .as-space-checks li:last-child{border-bottom:0}
.as .as-space-dark-checks{margin-bottom:32px}
/* fotos: 3 en retícula fina */
.as .as-space-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:clamp(40px,4vw,56px);background:rgba(21,23,28,.24);border:1px solid rgba(21,23,28,.24)}
.as .as-space-photos > *{aspect-ratio:4/3}
/* planes: fichas de especificación en retícula fina */
.as .as-space-plans{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--as-line)}
.as .as-space-plan{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:34px clamp(20px,2.4vw,36px) 36px;border-bottom:1px solid var(--as-line);transition:background .35s}
.as .as-space-plan + .as-space-plan{border-left:1px solid var(--as-line)}
.as .as-space-plan::before{content:"";position:absolute;top:-1px;left:0;height:2px;width:0;background:var(--as-red);transition:width .6s var(--as-ease)}
.as .as-space-plan:hover{background:#FFF6F1}
.as .as-space-plan:hover::before{width:100%}
.as .as-space-plan.is-featured::before{width:100%;height:3px;top:-2px}
.as .as-space-plan-code{margin:0 0 12px;font-size:13px;font-weight:700;color:var(--as-red)}
.as .as-space-plan .as-h3{margin-bottom:6px}
.as .as-space-plan-price{margin:0 0 22px;font-size:15px;font-weight:700;color:var(--as-ink)}
.as .as-space-plan-price span{font-weight:500;color:var(--as-muted)}
.as .as-space-plan .as-space-checks{align-self:stretch;margin-bottom:30px}
.as .as-space-plan .as-btn{margin-top:auto}
/* fotos del espacio de eventos (dark) */
.as .as-space-event-photos{display:grid;gap:1px;background:rgba(255,253,247,.22);border:1px solid rgba(255,253,247,.22)}
.as .as-space-event-photos > *{aspect-ratio:4/3}
/* contacto */
.as .as-space-book-title{max-width:17ch;margin-bottom:22px}
.as .as-space-book-title + .as-space-text{margin-bottom:28px}
.as .as-space-ledger dd a{color:var(--as-red);text-decoration:none;overflow-wrap:anywhere}
.as .as-space-ledger dd a:hover{color:var(--as-red-deep);text-decoration:underline;text-underline-offset:4px}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .as .as-faq-layout{grid-template-columns:220px minmax(0,1fr)}
}
@media (max-width:900px){
  .as .as-ev-strip{grid-template-columns:1fr 1fr;height:auto}
  .as .as-ev-strip > *{aspect-ratio:3/2;height:auto}
  .as .as-space-strip{grid-template-columns:1fr 1fr;height:auto}
  .as .as-space-strip > *{aspect-ratio:3/2;height:auto}
  .as .as-space-strip > :first-child{grid-column:1 / -1;aspect-ratio:2/1}
  .as .as-ev-status{grid-template-columns:1fr}
  .as .as-ev-attend{grid-template-columns:1fr}
  .as .as-ev-attend li,.as .as-ev-attend li:nth-child(even){padding:28px 0;border-left:0}
  .as .as-ev-series-grid,.as .as-space-split{grid-template-columns:1fr}
  .as .as-ev-gallery{grid-template-columns:1fr 1fr}
  .as .as-faq-layout{grid-template-columns:1fr}
  .as .as-faq-aside{position:static}
  .as .as-faq-nav{flex-direction:row;flex-wrap:wrap;gap:8px;border-top:0}
  .as .as-faq-filter,.as .as-faq-filter.is-active,.as .as-faq-filter[aria-pressed="true"]{width:auto;min-height:44px;padding:0 16px;border:1px solid var(--as-line);border-radius:999px}
  .as .as-faq-filter::before{display:none}
  .as .as-faq-filter.is-active,.as .as-faq-filter[aria-pressed="true"]{border-color:var(--as-red);background:#FFF6F1}
  .as .as-faq-help{display:none} /* mismo mensaje y enlace que el campo rojo final */
  .as .as-space-plans{grid-template-columns:1fr}
  .as .as-space-plan + .as-space-plan{border-left:0}
}
@media (max-width:560px){
  .as .as-ev-gallery,.as .as-space-photos{grid-template-columns:1fr}
  .as .as-ev-day{font-size:44px}
  .as .as-faq-q{font-size:17px;gap:18px}
  .as .as-faq-a p{padding-right:0;font-size:15.5px}
  .as .as-faq-contact > div{grid-template-columns:1fr}
  .as .as-ev-final-actions .as-btn{width:100%;justify-content:center}
}

/* ============================================================
   ENSAMBLE — PÁGINAS DEL SITIO ANTERIOR (fuera del mockup de marketing)
   1GPA, TCTX Thrive (EN/ES), Technical Assistance, SAISD, Vermont, Grant
   Programs, What Our Clients Say, Our Seminars y los 10 servicios sueltos
   (page-legacy-service.php). Reutilizan las primitivas de Government.
   ============================================================ */
/* ---------- 1GPA ---------- */
.as-gpa-seal{margin:0;display:grid;gap:24px}
.as-gpa-lockup{border:1px solid var(--as-ink);background:#FFFFFF;overflow:hidden}
.as-gpa-lockup img{display:block;width:100%;height:auto}
.as-phero-sub{margin:14px 0 0;font-size:clamp(17px,1.5vw,20px);font-weight:700;letter-spacing:-.01em;color:var(--as-red)}
.as-gpa-seal-cap{display:flex;flex-direction:column;gap:6px}
.as-gpa-seal-k{font-size:13px;font-weight:700;color:var(--as-ink)}
.as-gpa-seal-n{font-size:clamp(30px,3vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--as-red)}
.as-gpa-seal-t{font-size:13px;line-height:1.45;color:var(--as-muted);max-width:34ch}
#as-gpa-terms-title .as-accent{white-space:nowrap}
.as-gpa-means{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,112px);align-items:start}
.as-gpa-means .as-text{max-width:56ch;margin:0 0 18px}
.as .as-gpa-ledger > div{grid-template-columns:200px 1fr}
.as .as-gpa-ledger dd{font-size:clamp(17px,1.4vw,20px)}
.as .as-gpa-reasons{grid-template-columns:repeat(2,minmax(0,1fr))}
.as .as-gpa-reasons > li{padding-top:36px;padding-bottom:36px}
.as-gpa-num{display:block;margin-bottom:18px;font-size:13px;font-weight:800;letter-spacing:.06em;color:var(--as-red);font-variant-numeric:tabular-nums}
.as .as-dark .as-gpa-solutions{grid-template-columns:repeat(4,minmax(0,1fr));background:var(--as-line-dark);border-color:var(--as-line-dark)}
.as .as-dark .as-gpa-solutions > li{background:var(--as-ink)}
.as .as-dark .as-gpa-solutions > li::before{content:"";width:28px;height:2px;background:var(--as-red-soft);margin-bottom:22px}
.as .as-dark .as-gpa-solutions .as-text{color:var(--as-muted-dark)}
.as .as-gpa-steps{grid-template-columns:repeat(5,minmax(0,1fr))}
.as .as-gpa-steps::before{background:var(--as-line)}
.as .as-gpa-steps .as-aud-line-num{background:var(--as-cream);border-color:var(--as-red);color:var(--as-red)}
.as .as-gpa-steps .as-aud-line-title{color:var(--as-ink);font-size:17px}
.as .as-gpa-steps li:last-child .as-aud-line-num{background:var(--as-red);color:#FFFFFF}
.as-gpa-steps-note{margin:40px 0 0;max-width:60ch}
.as-gpa-final .as-final-title{grid-row:span 3}
.as-gpa-contact{font-size:15px}
.as-gpa-contact a{color:inherit;text-underline-offset:3px}
@media(max-width:1100px){
  .as .as-dark .as-gpa-solutions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .as .as-gpa-steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}
  .as .as-gpa-steps::before{display:none}
}
@media(max-width:900px){
  .as-gpa-means{grid-template-columns:1fr}
  .as-gpa-final .as-final-title{grid-row:auto}
}
@media(max-width:700px){
  .as .as-gpa-steps{grid-template-columns:1fr}
  .as .as-gpa-steps li:not(:last-child)::before{background:var(--as-line)}
  .as .as-gpa-steps .as-aud-line-title{padding-top:12px}
  .as .as-gpa-ledger > div{grid-template-columns:1fr;gap:4px}
  .as-gpa-seal{gap:18px}
}
@media(max-width:600px){
  .as .as-gpa-reasons,.as .as-dark .as-gpa-solutions{grid-template-columns:1fr}
}

/* ---------- TCTX THRIVE 3.0 (EN + ES) ---------- */
/* ============================================================
   ENSAMBLE — TCTX THRIVE 3.0 (/tctx3-thrive/ + /tctx3-thrive-spn/)
   Prefijo .as-tctx-*. Markup en inc/tctx-render.php. Reutiliza
   .as-phero, .as-head, .as-aud-cells, .as-contact-* (form Zoho),
   .as-ledger, .as-agenda/.as-ev-* (Eventbrite), .as-ev-ph, .as-final.
   ============================================================ */

/* ---------- HERO: título largo + pliego de socios ---------- */
.as-tctx .as-h1-page{max-width:19ch}
.as .as-tctx-partners{position:relative;margin:0;border:1px solid var(--as-ink);background:#FFFFFF}
.as .as-tctx-partners::before,.as .as-tctx-partners::after{content:"";position:absolute;top:8px;width:12px;height:12px;border:solid var(--as-ink);pointer-events:none;z-index:1}
.as .as-tctx-partners::before{left:8px;border-width:1px 0 0 1px}
.as .as-tctx-partners::after{right:8px;border-width:1px 1px 0 0}
.as .as-tctx-logos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.as .as-tctx-logos li + li{border-left:1px solid var(--as-line)}
.as .as-tctx-logos a{display:flex;align-items:center;justify-content:center;height:clamp(116px,11vw,150px);padding:clamp(12px,1.4vw,20px);transition:background .3s}
.as .as-tctx-logos a:hover{background:#FFF6F1}
.as .as-tctx-logos img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.as .as-tctx-logos li:first-child img{transform:scale(1.4)} /* el PNG del sello trae mucho margen */
.as .as-tctx-partners figcaption{padding:14px clamp(16px,1.8vw,24px);border-top:1px solid var(--as-ink);background:var(--as-cream);font-size:13px;font-weight:600;line-height:1.5;color:var(--as-muted)}

/* ---------- IDIOMA: barra fina EN ⇄ ES ---------- */
.as .as-tctx-lang{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 24px;padding:0 var(--as-gutter);background:var(--as-cream);border-top:1px solid var(--as-line);border-bottom:1px solid var(--as-line)}
.as .as-tctx-lang-k{margin:0;font-size:13px;font-weight:600;color:var(--as-muted)}
.as .as-tctx-lang ul{list-style:none;margin:0;padding:0;display:flex;gap:clamp(20px,3vw,40px)}
.as .as-tctx-lang-a{position:relative;display:flex;align-items:center;min-height:56px;font-size:15px;font-weight:600;color:var(--as-muted);text-decoration:none;transition:color .2s}
.as .as-tctx-lang-a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--as-red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--as-ease)}
.as .as-tctx-lang-a:hover{color:var(--as-red)}
.as .as-tctx-lang-a:hover::after{transform:scaleX(.35)}
.as .as-tctx-lang-a.is-current{color:var(--as-red)}
.as .as-tctx-lang-a.is-current::after{transform:none}

/* ---------- AVISO: convocatoria cerrada (dark) ---------- */
.as .as-tctx-closed{border-top:3px solid var(--as-red)}
.as .as-tctx-closed .as-head{margin-bottom:0}
.as .as-tctx-closed{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:start}
.as .as-tctx-closed-lead{margin:0 0 16px;font-size:clamp(18px,1.5vw,21px);font-weight:600;line-height:1.5;color:var(--as-cream);max-width:48ch}
.as .as-dark .as-tctx-closed-body .as-text,.as .as-tctx-closed .as-tctx-closed-body .as-text{color:var(--as-muted-dark);max-width:52ch;margin:0 0 28px}

.as .as-tctx-closed-body .as-btn{max-width:100%;padding-top:12px;padding-bottom:12px;line-height:1.3}

/* aviso compacto dentro del formulario */
.as .as-tctx-closed-note{margin:0 0 24px;padding:18px 20px;background:#FFF6F1;border-top:3px solid var(--as-red)}
.as .as-tctx-closed-note p{margin:0;font-size:14.5px;line-height:1.55;color:var(--as-ink)}
.as .as-tctx-closed-note p + p{margin-top:8px}
.as .as-tctx-closed-note .as-tctx-closed-note-title{font-size:16px;font-weight:700;color:var(--as-red-deep)}
.as .as-tctx-closed-note a{color:var(--as-red);font-weight:700;text-underline-offset:3px}
.as .as-tctx-closed-note a:hover{color:var(--as-red-deep)}

/* ---------- ELEGIBILIDAD + FORMULARIO ---------- */
.as .as-tctx-apply-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
.as .as-tctx-lead{margin:0 0 20px;font-size:18px;line-height:1.6;color:var(--as-ink);max-width:52ch}
.as .as-tctx-grant{margin:0 0 clamp(32px,4vw,48px);font-size:clamp(18px,1.5vw,21px);font-weight:700;letter-spacing:-.015em;line-height:1.4;color:var(--as-red);max-width:40ch}
.as .as-tctx-must{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--as-muted)}
.as .as-tctx-cta{margin-top:24px;max-width:52ch}
.as .as-tctx-sheet{scroll-margin-top:90px}

/* lista con check (sobre claro); sobre tinta usa los colores de .as-checks */
.as .as-tctx-checks{list-style:none;margin:0;padding:0;border-top:1px solid var(--as-line)}
.as .as-tctx-checks li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--as-line);font-size:15.5px;line-height:1.5;color:var(--as-ink)}
.as .as-tctx-check{flex:none;width:18px;height:18px;margin-top:2px;color:var(--as-red)}

/* casillas y radios del formulario Zoho */
.as .as-tctx-fs{margin:0;padding:0;border:0;min-width:0}
.as .as-tctx-fs legend{padding:0;margin:0 0 10px;font-size:13px;font-weight:600;line-height:1.45;color:var(--as-ink)}
.as .as-tctx-fs legend span{font-weight:400;color:var(--as-muted)}
.as .as-tctx-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.as .as-tctx-opts-2{grid-template-columns:repeat(2,minmax(0,160px))}
.as .as-tctx-opt{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 12px;background:#FFFFFF;border:1px solid rgba(21,23,28,.28);border-radius:8px;
  font-size:14.5px;line-height:1.3;color:var(--as-ink);cursor:pointer;transition:border-color .2s,background .2s}
.as .as-tctx-opt:hover{border-color:rgba(21,23,28,.5)}
.as .as-tctx-opt:has(input:checked){border-color:var(--as-red);background:#FFF6F1}
.as .as-tctx-opt input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--as-red);cursor:pointer}
.as .as-tctx-opt:has(input:focus-visible){outline:2px solid var(--as-red);outline-offset:2px}
.as .as-tctx-row3{grid-template-columns:1.4fr 1fr 1fr}

/* ---------- COACHING ---------- */
.as .as-tctx-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,5vw,88px);align-items:start}
.as .as-tctx-p{margin-top:20px;max-width:56ch}
.as .as-tctx-nocost{margin:28px 0 0;padding-top:18px;border-top:3px solid var(--as-red);font-size:clamp(18px,1.5vw,21px);font-weight:700;letter-spacing:-.015em;line-height:1.4;color:var(--as-ink);max-width:40ch}
.as .as-tctx-media{border:1px solid var(--as-ink);width:100%}
.as .as-tctx-media-wide{aspect-ratio:16/9}
.as .as-tctx-media-tall{aspect-ratio:4/3}

/* ---------- BENEFICIOS (dark) ---------- */
.as .as-dark .as-tctx-benefit-cells{background:var(--as-line-dark);border-color:var(--as-line-dark)}
.as .as-dark .as-tctx-benefit-cells > li{background:var(--as-ink)}
.as .as-dark .as-tctx-benefit-cells > li::before{content:"";width:28px;height:2px;background:var(--as-red-soft);margin-bottom:22px}
.as .as-dark .as-tctx-benefit-cells .as-text{color:var(--as-muted-dark)}
.as .as-tctx-areas{list-style:none;margin:clamp(48px,5vw,72px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(20px,2.4vw,36px);border-top:1px solid var(--as-cream)}
.as .as-tctx-areas li{display:flex;align-items:baseline;gap:16px;padding:20px 0;border-bottom:1px solid var(--as-line-dark)}
.as .as-tctx-area-num{flex:none;width:24px;font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--as-red-soft);font-variant-numeric:tabular-nums}
.as .as-tctx-area{margin:0;font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--as-cream)}

/* ---------- EVENTOS ---------- */
.as .as-tctx-events .as-head .as-sub{max-width:none}

/* ---------- ACELERADORA ---------- */
.as .as-tctx-accel .as-head .as-sub{max-width:66ch}
.as .as-tctx-lists{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4vw,64px);padding-top:clamp(28px,3vw,40px);border-top:3px solid var(--as-red)}
.as .as-tctx-lists .as-h3{margin-bottom:8px}
.as .as-tctx-list-lead{margin:0 0 14px}
.as .as-tctx-lists .as-h3 + .as-tctx-checks{margin-top:14px}
.as .as-tctx-details{margin-top:clamp(56px,6vw,88px);align-items:center}
.as .as-tctx-details .as-h3{margin-bottom:16px}
.as .as-tctx-ledger{margin-bottom:32px}
.as .as-tctx-ledger > div{grid-template-columns:140px 1fr}

/* ---------- CAMPO ROJO ---------- */
.as-tctx-final .as-final-title{grid-row:span 3}
.as-tctx-contact{font-size:15px}
.as-tctx-contact a{color:inherit;text-underline-offset:3px;overflow-wrap:anywhere}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .as .as-tctx-areas{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .as .as-tctx-closed,.as .as-tctx-split,.as .as-tctx-lists{grid-template-columns:1fr}
  .as .as-tctx-closed .as-head{margin-bottom:0}
  .as .as-tctx-apply-grid{grid-template-columns:1fr}
  .as .as-tctx-partners{max-width:560px}
  .as .as-tctx-benefit-cells{grid-template-columns:1fr}
  .as .as-tctx-details{align-items:start}
  .as-tctx-final .as-final-title{grid-row:auto}
}
@media (max-width:700px){
  .as .as-tctx-areas{grid-template-columns:1fr}
  .as .as-tctx-row3{grid-template-columns:1fr 1fr}
  .as .as-tctx-row3 .as-contact-field:first-child{grid-column:1 / -1}
}
@media (max-width:600px){
  .as .as-tctx-opts{grid-template-columns:1fr}
  .as .as-tctx-opts-2{grid-template-columns:1fr 1fr}
  .as .as-tctx-lang{padding-top:6px;padding-bottom:0}
  .as .as-tctx-lang-k{width:100%;padding-top:8px}
  .as .as-tctx-lang-a{min-height:48px}
  .as .as-tctx-ledger > div{grid-template-columns:1fr;gap:4px}
  .as .as-tctx-logos a{height:96px;padding:12px}
  .as .as-aud-cells.as-tctx-benefit-cells > li{padding-left:0;padding-right:0}
}

/* ---------- TECHNICAL ASSISTANCE + SAISD + VERMONT ---------- */
/* ============================================================
   ENSAMBLE — TECHNICAL ASSISTANCE (sitio anterior):
   /technical-assistance/ (.as-ta-*), /saisd-technical-assistance/
   (.as-saisd-*), /vermont/ (.as-vt-*). Reutiliza .as-phero, .as-head,
   .as-aud-cells, .as-ledger, .as-cred, .as-checks, .as-case, .as-stats-list,
   .as-final. Solo líneas de 1px, reglas rojas de 3px, sin sombras.
   ============================================================ */

/* ---------- TA: documentos de referencia (aside del hero) ---------- */
.as .as-ta-docs{border-top:3px solid var(--as-red);background:var(--as-cream)}
.as .as-ta-docs-title{margin:0;padding:16px 0 14px;font-size:13px;font-weight:600;color:var(--as-muted);border-bottom:1px solid var(--as-line)}
.as .as-ta-docs-list{list-style:none;margin:0;padding:0}
.as .as-ta-docs-list li{border-bottom:1px solid var(--as-line)}
.as .as-ta-docs-list a{display:grid;grid-template-columns:48px minmax(0,1fr) 22px;gap:16px;align-items:center;min-height:72px;padding:12px 4px;text-decoration:none;transition:background .3s}
.as .as-ta-docs-type{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red)}
.as .as-ta-docs-name{font-size:clamp(18px,1.6vw,22px);font-weight:700;letter-spacing:-.02em;line-height:1.25;color:var(--as-ink);transition:color .25s}
.as .as-ta-docs-list .as-arrow{width:20px;height:20px;color:var(--as-red)}
.as .as-ta-docs-list a:hover{background:#FFF6F1}
.as .as-ta-docs-list a:hover .as-ta-docs-name{color:var(--as-red)}
.as .as-ta-docs-list a:hover .as-arrow{transform:translate(2px,-2px)}

/* ---------- TA: índice por estado ---------- */
.as .as-ta-index{margin:0 0 clamp(40px,4vw,64px)}
.as .as-ta-index ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;border-top:1px solid var(--as-line);border-left:1px solid var(--as-line)}
.as .as-ta-index li{border-right:1px solid var(--as-line);border-bottom:1px solid var(--as-line)}
.as .as-ta-index a{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 18px;font-size:14.5px;font-weight:600;text-decoration:none;color:var(--as-ink);transition:background .25s,color .25s}
.as .as-ta-index a:hover{background:#FFF6F1;color:var(--as-red)}
.as .as-ta-index-n{font-size:12px;font-weight:700;color:var(--as-red);font-variant-numeric:tabular-nums}

/* ---------- TA: registro de programas ---------- */
.as .as-ta-group{scroll-margin-top:96px}
.as .as-ta-group + .as-ta-group{margin-top:clamp(48px,5vw,80px)}
.as .as-ta-group-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0;padding-bottom:14px;border-bottom:3px solid var(--as-red);
  font-size:clamp(24px,2.2vw,32px);font-weight:800;letter-spacing:-.03em;line-height:1.1;color:var(--as-ink)}
.as .as-ta-group-n{font-size:13px;font-weight:800;letter-spacing:.06em;color:var(--as-red);font-variant-numeric:tabular-nums}
.as .as-ta-reg{list-style:none;margin:0;padding:0}
.as .as-ta-row{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,4vw,72px);padding:32px 0;border-bottom:1px solid var(--as-line);scroll-margin-top:96px}
.as .as-ta-id{display:grid;grid-template-columns:72px minmax(0,1fr);gap:20px;align-items:start}
.as .as-ta-logo{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border:1px solid var(--as-line);border-radius:50%;background:#FFFFFF;overflow:hidden}
.as .as-ta-logo img{display:block;width:100%;height:100%;object-fit:contain}
.as .as-ta-logo-text{padding:8px;font-size:9.5px;font-weight:700;line-height:1.2;text-align:center;color:var(--as-muted)}
.as .as-ta-place{display:flex;align-items:center;gap:10px;margin:4px 0 10px;font-size:13px;font-weight:600;color:var(--as-muted)}
.as .as-ta-place::before{content:"";flex:none;width:7px;height:7px;border:1.5px solid var(--as-red);border-radius:50%}
.as .as-ta-name{margin:0 0 8px;font-size:clamp(19px,1.6vw,22px);font-weight:700;letter-spacing:-.015em;line-height:1.25;color:var(--as-ink);max-width:28ch}
.as .as-ta-agency{margin:0;font-size:13.5px;line-height:1.45;color:var(--as-muted)}
.as .as-ta-desc{display:grid;gap:14px;align-content:start}
.as .as-ta-desc .as-text{max-width:66ch}
.as .as-ta-desc strong{font-weight:700;color:var(--as-ink)}
.as .as-ta-desc .as-link{margin-top:4px}
.as .as-ta-row:target{background:#FFF6F1}

/* ---------- TA: SAISD (dark) ---------- */
.as .as-ta-saisd{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,5vw,88px);align-items:end}
.as .as-ta-saisd .as-head{margin-bottom:0}
.as .as-ta-saisd .as-h2{max-width:18ch}

/* ---------- SAISD ---------- */
.as .as-saisd-hero-ph{aspect-ratio:4/3;border:1px solid var(--as-ink);border-radius:0}
.as .as-saisd-areas > li{min-height:180px}
.as .as-saisd-areas .as-h3{margin:auto 0 0;max-width:16ch}
.as .as-saisd-help{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,5vw,88px);align-items:center}
.as .as-saisd-lead,.as .as-vt-lead{margin:0 0 14px;font-size:15px;font-weight:700}
.as .as-saisd-lead{color:var(--as-cream)}
.as .as-saisd-help-ph{aspect-ratio:4/5;border:1px solid var(--as-line-dark)}
.as .as-saisd-vendor-text{max-width:52ch;margin:22px 0 30px}

/* ---------- VERMONT ---------- */
.as .as-vt-ledger{background:var(--as-cream)}
.as .as-vt-ledger dd{font-size:clamp(17px,1.4vw,20px)}
.as .as-vt-brands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2.4vw,36px);max-width:980px}
.as .as-vt-fig{aspect-ratio:4/5;background:#FFFFFF}
.as .as-vt-fig img{display:block;width:100%;height:100%;object-fit:cover}
.as .as-vt-brand .as-text{margin-bottom:18px;max-width:52ch}
.as .as-vt-site{margin-top:auto}
.as .as-vt-site .as-arrow{transition:transform .4s var(--as-ease)}
.as .as-vt-site:hover{color:var(--as-red-deep)}
.as .as-vt-site:hover .as-arrow{transform:translate(2px,-2px)}
.as .as-vt-trust{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,5vw,88px);align-items:center}
.as .as-vt-lead{color:var(--as-ink)}
.as .as-vt-checks{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;border-top:1px solid var(--as-line)}
.as .as-vt-checks li{color:var(--as-ink);border-bottom-color:var(--as-line)}
.as .as-vt-checks .as-check{color:var(--as-red)}
.as .as-vt-next{margin:28px 0 0;font-size:clamp(20px,1.8vw,25px);font-weight:800;letter-spacing:-.02em;color:var(--as-red)}
.as .as-vt-trust-ph{aspect-ratio:4/5;border:1px solid var(--as-ink)}
.as .as-dark .as-vt-svc{background:var(--as-line-dark);border-color:var(--as-line-dark)}
.as .as-dark .as-vt-svc > li{background:var(--as-ink)}
.as .as-dark .as-vt-svc > li::before{content:"";width:28px;height:2px;background:var(--as-red-soft);margin-bottom:22px}
.as .as-dark .as-vt-svc .as-text{color:var(--as-muted-dark)}
.as .as-vt-contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(40px,5vw,88px);align-items:start}
.as .as-vt-contact-card .as-ledger dd a{color:var(--as-red);text-decoration:none;overflow-wrap:anywhere}
.as .as-vt-contact-card .as-ledger dd a:hover{color:var(--as-red-deep);text-decoration:underline;text-underline-offset:3px}
.as .as-vt-contact-card .as-ledger > div{grid-template-columns:90px 1fr}
.as .as-vt-stats{grid-template-columns:1fr 1fr;border-top:3px solid var(--as-red)}
.as .as-vt-stats li{border-bottom:1px solid var(--as-line)}
.as .as-vt-stats li + li{border-left:0}
.as .as-vt-stats li:nth-child(even){border-left:1px solid var(--as-line)}
.as .as-vt-stats li .as-stat,.as .as-vt-stats li:first-child .as-stat{padding:clamp(24px,2.6vw,36px) clamp(16px,2vw,28px)}
.as .as-vt-stats li:nth-child(odd) .as-stat{padding-left:0}
.as .as-vt-stats .as-stat:hover .as-stat-num{color:var(--as-ink)}
.as .as-vt-stats .as-stat:hover .as-stat-label::before{width:28px}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .as .as-ta-row{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
}
@media (max-width:900px){
  .as .as-ta-row{grid-template-columns:1fr;gap:18px}
  .as .as-ta-saisd{grid-template-columns:1fr;align-items:start}
  .as .as-saisd-help,.as .as-vt-trust,.as .as-vt-contact{grid-template-columns:1fr}
  .as .as-saisd-help-ph,.as .as-vt-trust-ph{aspect-ratio:4/3;max-width:560px}
  .as .as-saisd-areas > li{min-height:0}
  .as .as-saisd-areas .as-h3{margin-top:0}
  .as .as-vt-svc{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
  .as .as-ta-docs-list a{grid-template-columns:40px minmax(0,1fr) 20px;gap:12px}
  .as .as-ta-id{grid-template-columns:56px minmax(0,1fr);gap:16px}
  .as .as-ta-logo{width:56px;height:56px}
  .as .as-vt-brands{grid-template-columns:1fr;max-width:460px}
}
@media (max-width:600px){
  .as .as-ta-index a{padding:0 14px;font-size:14px}
  .as .as-vt-checks{grid-template-columns:1fr}
  .as .as-vt-svc,.as .as-saisd-areas{grid-template-columns:1fr}
  .as .as-vt-stats .as-stat-num{font-size:40px}
  .as .as-vt-contact-card .as-ledger > div{grid-template-columns:1fr;gap:4px}
  .as .as-vt-contact-card .as-btn{width:100%;justify-content:center}
}

/* ---------- GRANT PROGRAMS + WHAT OUR CLIENTS SAY + OUR SEMINARS ---------- */
/* ============================================================
   ENSAMBLE — PÁGINAS DEL SITIO ANTERIOR (comunidad): Grant Programs
   (.as-gr-*), What Our Clients Says (.as-tst-*), Our Seminars (.as-sem-*).
   Reutilizan las primitivas .as-* (hero de página, .as-aud-line,
   .as-aud-cells, .as-ledger, .as-voice, .as-ev-attend, .as-ev-ph,
   .as-agenda/.as-ev-status, .as-contact-form, .as-final).
   ============================================================ */

/* ---------- GRANT PROGRAMS ---------- */
.as .as-gr-radar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(40px,5vw,88px);align-items:start}
.as .as-gr-radar .as-head{margin-bottom:26px}
.as .as-gr-radar-text{margin:0 0 clamp(28px,3vw,40px);font-size:18px;line-height:1.6;color:var(--as-muted);max-width:44ch}
.as .as-gr-radar-text strong{color:var(--as-ink);font-weight:700}
.as .as-gr-ledger{max-width:460px}
.as .as-gr-ledger > div{grid-template-columns:110px 1fr;padding:16px 0}
.as .as-gr-ledger dd{font-size:clamp(17px,1.4vw,20px)}
.as .as-gr-sheet .as-contact-success{margin-top:0}

/* ---------- WHAT OUR CLIENTS SAY ---------- */
/* hero: registro de logos en hoja con marcas de registro */
.as .as-tst-logos{position:relative;margin:0;padding:clamp(28px,3vw,40px) clamp(20px,2.4vw,32px) 0;border:1px solid var(--as-ink);background:var(--as-cream)}
.as .as-tst-logos::before,.as .as-tst-logos::after{content:"";position:absolute;top:8px;width:12px;height:12px;border:solid var(--as-ink);pointer-events:none}
.as .as-tst-logos::before{left:8px;border-width:1px 0 0 1px}
.as .as-tst-logos::after{right:8px;border-width:1px 1px 0 0}
.as .as-tst-logos-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--as-line);border:1px solid var(--as-line)}
.as .as-tst-logos-grid li{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;padding:clamp(12px,1.6vw,22px);background:#FFFFFF}
.as .as-tst-logos-grid img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.as .as-tst-logos-cap{margin:0 calc(-1 * clamp(20px,2.4vw,32px));margin-top:clamp(20px,2.4vw,28px);padding:13px clamp(20px,2.4vw,32px);border-top:1px solid var(--as-ink);font-size:13px;font-weight:600;color:var(--as-muted)}

/* testimonios escritos: dos columnas */
.as .as-tst-quotes{grid-template-columns:repeat(2,minmax(0,1fr))}
.as .as-tst-quotes .as-voice p{font-size:clamp(18px,1.5vw,21px);max-width:46ch}

/* videos: fachada 16:9 en hoja fina */
.as .as-tst-videos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,3.4vw,48px) clamp(20px,2.4vw,36px)}
.as .as-tst-video{display:flex;flex-direction:column;min-width:0}
.as .as-tst-frame{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--as-ink);border:1px solid var(--as-ink)}
.as .as-tst-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.as .as-tst-play{position:absolute;inset:0;display:block;cursor:pointer;color:var(--as-cream)}
.as .as-tst-play img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .35s}
.as .as-tst-play-btn{position:absolute;left:50%;top:50%;display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:var(--as-red);transition:background .25s,transform .4s var(--as-ease)}
.as .as-tst-play-btn svg{width:26px;height:26px;fill:var(--as-cream);margin-left:3px}
.as .as-tst-play:hover .as-tst-play-btn,.as .as-tst-play:focus-visible .as-tst-play-btn{background:var(--as-red-deep);transform:scale(1.06)}
.as .as-tst-play:hover img{opacity:.88}
.as .as-tst-play:focus-visible{outline:2px solid var(--as-red);outline-offset:3px;border-radius:0}
.as .as-tst-meta{display:flex;flex-direction:column;gap:2px;margin:0;padding-top:18px}
.as .as-tst-meta .as-voice-name{color:var(--as-ink)}

/* ---------- OUR SEMINARS ---------- */
/* hero: speaker */
.as .as-sem-speaker{margin:0;display:grid;gap:18px;max-width:420px;justify-self:end;width:100%}
.as .as-sem-speaker-ph{aspect-ratio:4/5;border-radius:18px;border:1px solid var(--as-line-dark)}

/* split texto + foto */
.as .as-sem-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,6vw,104px);align-items:center}
.as .as-sem-split .as-head{margin-bottom:28px}
.as .as-sem-prose{display:grid;gap:16px;max-width:58ch}
.as .as-sem-prose p{margin:0;font-size:17px;line-height:1.65;color:var(--as-muted)}
.as .as-sem-prose strong,.as .as-sem-prose .as-sem-strong{color:var(--as-ink);font-weight:700}
.as .as-sem-photo{aspect-ratio:4/3;border-radius:18px;border:1px solid var(--as-line)}
.as .as-sem-photo-tall{aspect-ratio:4/5}

/* lo que te llevas: tres celdas numeradas */
.as .as-sem-take{margin-top:clamp(64px,7vw,104px)}
.as .as-sem-take-title{margin:0 0 28px;font-size:clamp(20px,1.8vw,25px);font-weight:700;letter-spacing:-.02em;line-height:1.3;color:var(--as-ink);max-width:40ch}
.as .as-sem-take-list > li{padding-top:28px;padding-bottom:30px}
.as .as-sem-num{display:block;margin-bottom:16px;font-size:13px;font-weight:800;letter-spacing:.06em;color:var(--as-red);font-variant-numeric:tabular-nums}
.as .as-sem-take-item{margin:0;font-size:22px;font-weight:700;letter-spacing:-.015em;line-height:1.2;color:var(--as-ink)}

/* ¿por qué hacemos estos eventos? (dark) */
.as .as-sem-why{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(40px,6vw,104px);align-items:start}
.as .as-sem-why-title{margin:0 0 18px;font-size:18px;font-weight:700;letter-spacing:-.015em;color:var(--as-cream)}
.as .as-sem-feels{list-style:none;margin:0;padding:0;border-top:1px solid var(--as-line-dark);counter-reset:sem}
.as .as-sem-feels li{position:relative;padding:16px 0 16px 34px;border-bottom:1px solid var(--as-line-dark);font-size:16px;line-height:1.5;color:#D9DBE0}
.as .as-sem-feels li::before{content:"";position:absolute;left:0;top:27px;width:18px;height:1.5px;background:var(--as-red-soft)}
.as .as-sem-statement{margin:0 0 22px;font-size:clamp(24px,2.2vw,32px);font-weight:700;line-height:1.3;letter-spacing:-.025em;color:var(--as-cream);max-width:24ch}
.as .as-sem-why-text{margin:0 0 18px;font-size:16px;line-height:1.65;color:var(--as-muted-dark);max-width:52ch}
.as .as-sem-why-text strong{color:var(--as-cream)}
.as .as-sem-kicker-line{margin:26px 0 0;font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.4;color:var(--as-red-soft)}

/* comunidad: checks sobre claro */
.as .as-sem-checks{margin:22px 0 24px;max-width:460px}

/* galería a sangre: retícula fina */
.as .as-sem-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(21,23,28,.24);border-top:1px solid rgba(21,23,28,.24)}
.as .as-sem-gallery > *{aspect-ratio:4/3}

/* cierre en rojo con lista */
.as .as-sem-final-text{display:grid;gap:12px}
.as .as-sem-final-text p{margin:0}
.as .as-sem-final-lead{font-weight:700}
.as .as-sem-final-list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,253,247,.35)}
.as .as-sem-final-list li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid rgba(255,253,247,.35);font-size:16px;line-height:1.45}
.as .as-sem-final-list .as-check{flex:none;width:16px;height:16px;margin-top:3px;color:var(--as-cream)}
.as .as-sem-final .as-final-title{grid-row:span 2}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .as .as-sem-take-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  .as .as-gr-radar,.as .as-sem-split,.as .as-sem-why{grid-template-columns:1fr}
  .as .as-tst-logos{max-width:560px}
  .as .as-tst-quotes{grid-template-columns:1fr}
  .as .as-sem-speaker{justify-self:start;max-width:360px}
  .as .as-sem-photo-tall{aspect-ratio:4/3}
  .as .as-sem-take-list{grid-template-columns:1fr}
  .as .as-sem-gallery{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  .as .as-tst-videos{grid-template-columns:1fr}
}
@media (max-width:600px){
  .as .as-gr-ledger > div{grid-template-columns:1fr;gap:4px}
  .as .as-tst-logos-grid li{padding:10px}
  .as .as-sem-take-list > li{padding-left:0;padding-right:0}
  .as .as-tst-play-btn{width:60px;height:60px;margin:-30px 0 0 -30px}
}

/* cierre sin párrafo: el botón baja a la línea base del título */
.as .as-tst-final .as-btn{align-self:end}

/* ---------- SERVICIOS DEL SITIO ANTERIOR (page-legacy-service.php) ---------- */
/* ============================================================
   ENSAMBLE — PÁGINAS CORTAS DE SERVICIO (sitio anterior)
   page-legacy-service.php · prefijo .as-lsvc-*
   Reutiliza .as-svc-spec/.as-svc-list/.as-svc-inclabel (Services),
   .as-aud-cells/.as-aud-line (audiencias) y .as-final.
   ============================================================ */
.as .as-lsvc-spec{margin-top:0}
.as .as-lsvc-spec a{color:var(--as-ink);text-decoration:underline;text-decoration-color:var(--as-red);text-underline-offset:4px;text-decoration-thickness:1.5px;transition:color .2s}
.as .as-lsvc-spec a:hover{color:var(--as-red)}

/* Dos columnas: cabecera + lista */
.as .as-lsvc-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,104px);align-items:start}
.as .as-lsvc-split .as-head{margin-bottom:0}
.as .as-lsvc-split .as-sub + .as-sub{margin-top:0}
.as .as-lsvc-split .as-actions{margin-top:10px}
.as .as-lsvc-scope .as-svc-list{border-top:3px solid var(--as-red)}
.as .as-lsvc-scope .as-svc-list li{padding:16px 0;font-size:17px;font-weight:600}

/* Módulos numerados (viñetas del live) */
.as .as-lsvc-num{display:block;margin-bottom:18px;font-size:13px;font-weight:800;letter-spacing:.06em;color:var(--as-red);font-variant-numeric:tabular-nums}
.as .as-lsvc-cells .as-text strong{color:var(--as-ink);font-weight:700}

/* How it works: 3 estaciones + nota con enlace externo */
.as .as-lsvc-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
.as .as-lsvc-note{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px clamp(32px,5vw,88px);align-items:center;margin-top:clamp(48px,5vw,72px);padding-top:32px;border-top:1px solid var(--as-line-dark)}
.as .as-dark .as-lsvc-note .as-text{font-size:17px;color:var(--as-cream);max-width:56ch}
.as .as-lsvc-more{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin:0;font-size:15px;color:var(--as-muted-dark)}

/* Part of: filas del área */
.as .as-lsvc-rows{list-style:none;margin:0;padding:0;border-top:3px solid var(--as-red)}
.as .as-lsvc-rows li{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--as-line);font-size:17px;font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--as-ink)}
.as .as-lsvc-rows a{display:flex;align-items:baseline;gap:16px;width:100%;color:inherit;text-decoration:none;transition:color .2s}
.as .as-lsvc-rows a .as-arrow{width:18px;height:18px;margin-left:auto;align-self:center;flex:none;color:var(--as-red);transition:transform .25s}
.as .as-lsvc-rows a:hover{color:var(--as-red)}
.as .as-lsvc-rows a:hover .as-arrow{transform:translateX(4px)}
.as .as-lsvc-code{flex:none;min-width:58px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red)}
.as .as-lsvc-rel{margin-top:36px}
.as .as-dark .as-lsvc-rows li{border-bottom-color:var(--as-line-dark);color:var(--as-cream)}
.as .as-dark .as-lsvc-rows a .as-arrow,.as .as-dark .as-lsvc-code{color:var(--as-red-soft)}
.as .as-dark .as-lsvc-rows a:hover{color:var(--as-red-soft)}
.as .as-dark .as-svc-inclabel{color:var(--as-muted-dark)}

@media(max-width:1100px){
  .as .as-lsvc-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .as .as-lsvc-steps::before{display:block}
}
@media(max-width:900px){
  .as .as-lsvc-split,.as .as-lsvc-note{grid-template-columns:1fr}
}
@media(max-width:700px){
  .as .as-lsvc-steps{grid-template-columns:1fr}
  .as .as-lsvc-steps::before{display:none}
  .as .as-lsvc-rows li,.as .as-lsvc-rows a{gap:12px}
}
/* Fila del área que corresponde a esta página */
.as .as-lsvc-rows li.is-here{color:var(--as-red)}
.as .as-dark .as-lsvc-rows li.is-here{color:var(--as-red-soft)}

/* ---------- VIDEO (fase 6): pausa accesible, WCAG 2.2.2 ---------- */
.rcg-video-toggle{position:absolute;right:12px;bottom:12px;z-index:3;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px 0 12px;border:0;border-radius:999px;
  background:rgba(21,23,28,.78);color:#FFFDF7;font:600 13px/1 var(--ff);cursor:pointer;backdrop-filter:blur(6px)}
.rcg-video-toggle[hidden]{display:none}
.rcg-video-toggle svg{width:14px;height:14px;fill:currentColor;display:block}
.rcg-video-toggle .rcg-vt-play,.rcg-video-toggle[aria-pressed="true"] .rcg-vt-pause{display:none}
.rcg-video-toggle[aria-pressed="true"] .rcg-vt-play{display:block}
.rcg-video-toggle:focus-visible{outline:2px solid #FFFDF7;outline-offset:2px}

/* ---------- GLOBAL (fase 6): skip link + contraste del footer ---------- */
.skip-link{position:fixed;left:16px;top:-80px;z-index:10001;background:#FFFDF7;color:#17140F;font:700 15px/1 var(--ff);padding:14px 18px;border-radius:6px;text-decoration:none;box-shadow:0 8px 20px rgba(0,0,0,.25);transition:top .2s}
.skip-link:focus{top:16px;outline:3px solid #C24C26;outline-offset:2px}
.footer-brand p{color:#A7A196}
.footer-contact a,.footer-col a,.footer-social a{color:#B9B3A7}
.footer-bottom p{color:#948E83}

/* ============================================================
   NAV ENSAMBLE (v2.19) — barra grafito + láminas desplegables
   header.php: .n-trigger (button) + .mega (lámina a todo el ancho,
   dentro del nav fijo). JS: main.js «NAV ENSAMBLE». Sin JS se abren
   con :hover / :focus-within. Menú móvil = hoja crema por grupos.
   ============================================================ */
#nav,#mob-menu,#nav-scrim{--as-red:#C24C26;--as-red-deep:#A33E1E;--as-red-soft:#E7775A;--as-red-wash:#FFF6F1;--as-cream:#FFFDF7;--as-ink:#15171C;--as-muted:#565963;--as-muted-dark:#A7AAB3;--as-line:rgba(21,23,28,.13);--as-ease:cubic-bezier(.16,1,.3,1)}
#nav{--nv-h:68px;height:var(--nv-h);font-family:"Plus Jakarta Sans",system-ui,sans-serif}
#nav .n-links{gap:clamp(14px,1.6vw,28px);align-items:center;height:100%}
#nav .n-links>li{height:100%;display:flex;align-items:center}
#nav .n-links>li.has-sub{position:static}
#nav .n-link,#nav .n-trigger{position:relative;display:inline-flex;align-items:center;gap:6px;height:100%;padding:0 2px;background:none;border:0;cursor:pointer;font:500 14px/1 "Plus Jakarta Sans",system-ui,sans-serif;letter-spacing:-.005em;color:#BDBAB4;text-decoration:none;transition:color .25s}
#nav .n-link:hover,#nav .n-trigger:hover,#nav .n-link.active,#nav .n-trigger.active,#nav .has-sub.is-open .n-trigger{color:#FFFDF7}
/* línea de cota: filete rojo con marcas en los extremos, se dibuja desde el centro */
#nav .n-link::after,#nav .n-trigger::after{content:"";position:absolute;left:0;right:0;bottom:16px;height:7px;border-left:1px solid var(--as-red-soft);border-right:1px solid var(--as-red-soft);background:linear-gradient(var(--as-red-soft),var(--as-red-soft)) center/100% 1px no-repeat;transform:scaleX(0);transition:transform .45s var(--as-ease);display:block;width:auto}
#nav .n-link:hover::after,#nav .n-trigger:hover::after,#nav .n-link.active::after,#nav .n-trigger.active::after,#nav .has-sub.is-open .n-trigger::after{transform:scaleX(1)}
#nav .n-link:focus-visible,#nav .n-trigger:focus-visible,#nav .n-cta:focus-visible,#nav .n-brand:focus-visible{outline:2px solid var(--as-red-soft);outline-offset:4px;border-radius:2px}
#nav .n-chev{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.7;transition:transform .35s var(--as-ease)}
#nav .has-sub.is-open .n-chev{transform:rotate(180deg);opacity:1}
#nav .n-cta{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;border-radius:999px;background:var(--as-red);color:#FFFDF7;font:600 14px/1 "Plus Jakarta Sans",system-ui,sans-serif;text-decoration:none;transition:background .25s,gap .3s var(--as-ease)}
#nav .n-cta svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#nav .n-cta:hover{background:var(--as-red-deep);gap:12px;transform:none}

/* lámina */
#nav .mega{position:absolute;left:0;right:0;top:100%;margin-top:2px;color:var(--as-ink);
  background:linear-gradient(rgba(21,23,28,.05) 1px,transparent 1px) -1px -1px/32px 32px,linear-gradient(90deg,rgba(21,23,28,.05) 1px,transparent 1px) -1px -1px/32px 32px,#FFFDF7;
  border-bottom:1px solid var(--as-ink);box-shadow:0 18px 40px rgba(21,23,28,.18);
  clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .45s var(--as-ease),visibility 0s linear .45s;z-index:2}
#nav .mega::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--as-red);transform:scaleX(0);transform-origin:left;transition:transform .2s}
#nav .has-sub.is-open .mega{clip-path:inset(0 0 -60px 0);visibility:visible;transition:clip-path .55s var(--as-ease),visibility 0s}
#nav .has-sub.is-open .mega::after{transform:scaleX(1);transition:transform .9s var(--as-ease) .15s}
html:not(.nav-js) #nav .has-sub:hover .mega,html:not(.nav-js) #nav .has-sub:focus-within .mega{clip-path:inset(0 0 -60px 0);visibility:visible}
#nav .mega-in{max-width:1296px;margin:0 auto;padding:36px max(5vw,calc((100vw - 1296px) / 2)) 40px;display:grid;gap:28px;box-sizing:content-box}
@media (min-width:1400px){#nav .mega-in{padding-left:0;padding-right:0}}
#nav .mega-in>*{opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s}
#nav .has-sub.is-open .mega-in>*{opacity:1;transform:none;transition:opacity .5s var(--as-ease),transform .6s var(--as-ease)}
#nav .has-sub.is-open .mega-in>*:nth-child(2){transition-delay:.05s}
#nav .has-sub.is-open .mega-in>*:nth-child(3){transition-delay:.1s}
#nav .has-sub.is-open .mega-in>*:nth-child(4){transition-delay:.15s}
html:not(.nav-js) #nav .mega-in>*{opacity:1;transform:none}

#nav .mega a{color:var(--as-ink);text-decoration:none}
#nav .mg-code{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red);font-variant-numeric:tabular-nums}
#nav .mg-name{font-size:16px;font-weight:700;letter-spacing:-.015em;line-height:1.25}
#nav .mg-desc{font-size:13.5px;line-height:1.5;color:var(--as-muted)}
#nav .mg-arrow{width:16px;height:16px;flex:none;fill:none;stroke:var(--as-red);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--as-ease)}
#nav .mega a:hover .mg-arrow,#nav .mega a:focus-visible .mg-arrow{transform:translateX(4px)}
#nav .mega a:focus-visible{outline:2px solid var(--as-red);outline-offset:4px}
#nav .mg-row{display:flex;align-items:center;gap:10px}
#nav .mg-row .mg-name{flex:1}

/* puertas (Who we serve) */
#nav .mega-doors{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,.85fr)}
#nav .mg-door{display:flex;flex-direction:column;gap:10px}
#nav .mg-door-fig{position:relative;aspect-ratio:16/10;overflow:hidden;border:1px solid var(--as-ink);background:var(--as-cream);margin-bottom:6px}
#nav .mg-door-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--as-ease)}
#nav .mg-door-fig::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--as-red);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--as-ease);z-index:1}
#nav .mg-door:hover .mg-door-fig img{transform:scale(1.04)}
#nav .mg-door:hover .mg-door-fig::before,#nav .mg-door.active .mg-door-fig::before{transform:scaleX(1)}
#nav .mg-door:hover .mg-name,#nav .mg-door.active .mg-name{color:var(--as-red)}

/* bloque lateral (grafito) */
#nav .mg-aside{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:24px;background:var(--as-ink);color:#FFFDF7;border-top:3px solid var(--as-red);align-self:stretch}
#nav .mg-aside-t{margin:0;font-size:19px;font-weight:800;letter-spacing:-.025em;line-height:1.2;color:#FFFDF7}
#nav .mg-aside-d{margin:0;font-size:13.5px;line-height:1.55;color:var(--as-muted-dark)}
#nav .mega .mg-aside-l{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--as-red-soft)}
#nav .mg-aside-l svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--as-ease)}
#nav .mg-aside-l:hover svg{transform:translateX(4px)}

/* listado (Services) */
#nav .mega-ledger{grid-template-columns:minmax(0,3fr) minmax(0,1fr)}
#nav .mg-ledger{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;border-top:1px solid var(--as-ink)}
#nav .mg-ledger li{border-bottom:1px solid var(--as-line)}
#nav .mg-ledger a{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;padding:14px 10px 14px 0;transition:background .25s,padding .35s var(--as-ease)}
#nav .mg-ledger .mg-code{grid-row:1 / 3;padding-top:3px}
#nav .mg-ledger .mg-name{font-size:15px}
#nav .mg-ledger .mg-desc{grid-column:2;font-size:13px}
#nav .mg-ledger .mg-arrow{grid-column:3;grid-row:1 / 3;align-self:center}
#nav .mg-ledger a:hover,#nav .mg-ledger a.active{background:var(--as-red-wash);padding-left:10px}
#nav .mg-ledger a:hover .mg-name,#nav .mg-ledger a.active .mg-name{color:var(--as-red)}
#nav .mg-ledger .mg-all a{background:transparent}
#nav .mg-ledger .mg-all .mg-name{color:var(--as-red)}

/* programas */
#nav .mega-programs{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) minmax(0,1.1fr) minmax(0,.9fr)}
#nav .mg-prog{display:flex;flex-direction:column;gap:8px}
#nav .mg-prog.is-text{justify-content:flex-start;padding-top:18px;border-top:1px solid var(--as-ink)}
#nav .mg-prog.is-text .mg-name{font-size:22px;font-weight:800;letter-spacing:-.03em}
#nav .mg-prog-fig{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--as-ink);background:#fff;margin-bottom:6px}
#nav .mg-prog-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--as-ease)}
#nav .mg-prog:hover .mg-prog-fig img{transform:scale(1.03)}
#nav .mg-prog.is-live .mg-prog-fig{border-top:3px solid var(--as-red)}
#nav .mg-pill{position:absolute;right:0;bottom:0;display:inline-flex;align-items:center;gap:7px;padding:6px 11px;background:var(--as-cream);border-top:1px solid var(--as-ink);border-left:1px solid var(--as-ink);font-size:11.5px;font-weight:600;color:var(--as-ink)}
#nav .mg-pill i{width:6px;height:6px;border-radius:50%;background:var(--as-muted)}
#nav .mg-prog.is-live .mg-pill{color:var(--as-red)}
#nav .mg-prog.is-live .mg-pill i{background:var(--as-red);box-shadow:0 0 0 0 rgba(194,76,38,.5);animation:nv-pulse 2s infinite}
@keyframes nv-pulse{70%{box-shadow:0 0 0 7px rgba(194,76,38,0)}100%{box-shadow:0 0 0 0 rgba(194,76,38,0)}}
#nav .mg-prog:hover .mg-name,#nav .mg-prog.active .mg-name{color:var(--as-red)}

#nav-scrim{position:fixed;inset:0;z-index:690;background:rgba(21,23,28,.42);opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s linear .35s}
#nav-scrim.on{opacity:1;visibility:visible;transition:opacity .35s}

@media (max-width:1280px){
  #nav .mega-doors{grid-template-columns:repeat(3,minmax(0,1fr))}
  #nav .mega-doors .mg-aside,#nav .mega-programs .mg-aside{display:none}
  #nav .mega-programs{grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:1120px){#nav .n-links,#nav .n-cta{display:none}#nav .n-ham{display:flex}#nav-scrim{display:none}}

/* menú móvil: hoja crema por grupos */
#mob-menu{display:block;padding:calc(68px + 8px) 0 0;background:#FFFDF7;backdrop-filter:none;color:var(--as-ink);overflow-y:auto;overscroll-behavior:contain;clip-path:inset(0 0 100% 0);opacity:1;transition:clip-path .5s var(--as-ease),visibility 0s linear .5s;visibility:hidden}
#mob-menu.open{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .55s var(--as-ease),visibility 0s}
#mob-menu .mm-in{max-width:640px;margin:0 auto;padding:20px 20px 40px}
#mob-menu .mm-group{padding:18px 0 14px;border-top:1px solid var(--as-ink)}
#mob-menu .mm-group + .mm-group{margin-top:10px}
#mob-menu .mm-h{margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--as-muted)}
#mob-menu .mm-list{list-style:none;margin:0;padding:0}
#mob-menu a{opacity:1;transform:none;text-transform:none;letter-spacing:-.01em}
#mob-menu .mm-list a{display:flex;align-items:baseline;gap:14px;padding:11px 0;font-size:19px;font-weight:700;line-height:1.25;color:var(--as-ink);border-bottom:1px solid var(--as-line)}
#mob-menu .mm-list li:last-child a{border-bottom:0}
#mob-menu .mm-list a:hover,#mob-menu .mm-list a.active{color:var(--as-red)}
#mob-menu .mm-code{flex:none;width:40px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red);font-variant-numeric:tabular-nums}
#mob-menu .mm-live{display:inline-flex;align-items:center;gap:5px;letter-spacing:.02em}
#mob-menu .mm-live i{width:6px;height:6px;border-radius:50%;background:var(--as-red)}
#mob-menu .mm-more .mm-list{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}
#mob-menu .mm-more .mm-list a{font-size:17px;border-bottom:1px solid var(--as-line)}
#mob-menu .mm-foot{margin-top:22px;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
#mob-menu .mob-cta{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 24px;margin:0;border-radius:999px;background:var(--as-red);color:#FFFDF7;font-size:15px;font-weight:600;letter-spacing:0}
#mob-menu .mob-cta svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#mob-menu .mm-contact{margin:0;display:flex;flex-wrap:wrap;gap:6px 18px}
#mob-menu .mm-contact a{font-size:14px;font-weight:600;color:var(--as-muted)}
#mob-menu.open .mm-group,#mob-menu.open .mm-foot{animation:mm-in .6s var(--as-ease) both}
#mob-menu.open .mm-group:nth-child(2){animation-delay:.05s}
#mob-menu.open .mm-group:nth-child(3){animation-delay:.1s}
#mob-menu.open .mm-group:nth-child(4){animation-delay:.15s}
#mob-menu.open .mm-foot{animation-delay:.2s}
@keyframes mm-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
body.admin-bar #mob-menu{padding-top:calc(68px + 46px)}

@media (prefers-reduced-motion:reduce){
  #nav .mega,#nav .mega::after,#nav .mega-in>*,#mob-menu,#nav-scrim{transition:none!important}
  #nav .mg-prog.is-live .mg-pill i{animation:none}
  #mob-menu.open .mm-group,#mob-menu.open .mm-foot{animation:none}
}

/* ============================================================
   BANNER DE PÁGINA (v2.20, oct 2026 — pedido de marketing)
   rcg_as_page_hero( array( 'banner' => clave rcg_media, 'banner_pos' => '…' ) ).
   Foto a todo el ancho bajo el nav, sombra grafito para leer, título en crema
   con acento rojo claro. Con 'aside', la bajada y el aside van en .as-phero-after.
   ============================================================ */
.as-banner{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:clamp(560px,84vh,880px);
  padding:calc(68px + clamp(40px,6vw,96px)) var(--as-gutter) clamp(48px,6vw,88px);background:var(--as-ink);overflow:hidden}
.as-banner-media{position:absolute;inset:0;z-index:-2}
.as-banner-media img{width:100%;height:100%;object-fit:cover;display:block}
.as-banner::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,rgba(21,23,28,.9) 0%,rgba(21,23,28,.72) 38%,rgba(21,23,28,.28) 72%,rgba(21,23,28,.12) 100%),
             linear-gradient(0deg,rgba(21,23,28,.75) 0%,rgba(21,23,28,0) 45%),
             linear-gradient(180deg,rgba(21,23,28,.55) 0%,rgba(21,23,28,0) 22%)}
/* marcas de registro del sistema en las esquinas inferiores */
.as-banner::after{content:"";position:absolute;left:var(--as-gutter);right:var(--as-gutter);bottom:22px;height:12px;pointer-events:none;
  border-left:1px solid rgba(255,253,247,.55);border-right:1px solid rgba(255,253,247,.55);
  background:linear-gradient(rgba(255,253,247,.55),rgba(255,253,247,.55)) 0 100%/14px 1px no-repeat,linear-gradient(rgba(255,253,247,.55),rgba(255,253,247,.55)) 100% 100%/14px 1px no-repeat}
.as-banner-in{position:relative;max-width:min(780px,100%)}
.as-banner .as-h1-page{font-size:clamp(42px,5.4vw,84px);max-width:15ch;color:#FFFDF7;text-wrap:balance}
.as-banner .as-lede{max-width:56ch;margin:22px 0 0;color:rgba(255,253,247,.86);font-size:clamp(16.5px,1.35vw,19px)}
.as-banner .as-phero-sub{color:var(--as-red-soft)}
.as-banner .as-crumb ol,.as-banner .as-crumb a{color:rgba(255,253,247,.72)}
.as-banner .as-crumb a:hover{color:#FFFDF7}
.as-banner .as-btn-line{border-color:rgba(255,253,247,.7);color:#FFFDF7}
.as-banner .as-btn-line:hover{background:#FFFDF7;border-color:#FFFDF7;color:var(--as-ink)}
@media (prefers-reduced-motion:no-preference){
  .as-banner-media img{animation:as-banner-in 1.8s cubic-bezier(.16,1,.3,1) both}
  .as-banner-in>*{animation:as-banner-up .9s cubic-bezier(.16,1,.3,1) both}
  .as-banner-in>*:nth-child(2){animation-delay:.08s}
  .as-banner-in>*:nth-child(3){animation-delay:.16s}
  .as-banner-in>*:nth-child(4){animation-delay:.24s}
  .as-banner-in>*:nth-child(5){animation-delay:.32s}
}
@keyframes as-banner-in{from{transform:scale(1.07)}to{transform:none}}
@keyframes as-banner-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* franja crema que sigue al banner cuando la página tiene aside */
.as-phero.as-phero-after{padding-top:clamp(56px,7vw,104px);align-items:center}
.as-phero.as-phero-after::before{inset:0}
.as-lede-lg{font-size:clamp(19px,1.7vw,24px)!important;line-height:1.5;color:var(--as-ink)!important;max-width:34ch!important;margin:0!important;font-weight:500;letter-spacing:-.01em}
@media (max-width:900px){
  .as-banner{min-height:clamp(520px,88vh,760px)}
  .as-banner::before{background:linear-gradient(0deg,rgba(21,23,28,.92) 0%,rgba(21,23,28,.7) 45%,rgba(21,23,28,.35) 100%)}
  .as-phero.as-phero-after{padding-top:56px}
}
/* Home «Real results»: enlace al caso completo del Portfolio */
.as .as-case-link{margin-top:14px;text-decoration:none;align-self:flex-start}
.as .as-case-link .as-arrow{width:16px;height:16px;transition:transform .35s var(--as-ease)}
.as .as-case-link:hover .as-arrow{transform:translateX(4px)}

/* ============================================================
   HOME HERO CON FOTO (v2.21, oct 2026 — «el equipo detrás del plano»)
   front-page.php .as-hero.as-hero-photo: el equipo real de Roads de fondo,
   revelado en grafito; un foco de color sigue al puntero (main.js «HOME HERO
   FOTO») y el núcleo del diagrama es de vidrio: la red que forma el icono de
   Roads se dibuja sobre las personas. Entrada: la retícula aparece, la foto se
   revela de derecha a izquierda y el foco «revela» el color.
   ============================================================ */
.as-hero.as-hero-photo{background:var(--as-ink);color:var(--as-cream);isolation:isolate;overflow:hidden;min-height:min(100vh,1040px);--mx:52%;--my:46%;--r:clamp(220px,22vw,360px)}
.as-hero.as-hero-photo::before{display:none}
.as-hero-bg{position:absolute;inset:0;z-index:0!important;pointer-events:none;overflow:hidden}
.as-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 42%;display:block}
.as-hero-img-base{filter:grayscale(1) contrast(1.08) brightness(.52)}
.as-hero-img-lit{filter:saturate(1.05) brightness(.92);
  -webkit-mask:radial-gradient(circle var(--r) at var(--mx) var(--my),#000 0%,rgba(0,0,0,.85) 38%,transparent 100%);
          mask:radial-gradient(circle var(--r) at var(--mx) var(--my),#000 0%,rgba(0,0,0,.85) 38%,transparent 100%)}
/* sombra para leer el texto + fundido hacia la franja de cifras */
.as-hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(21,23,28,.94) 0%,rgba(21,23,28,.82) 30%,rgba(21,23,28,.38) 56%,rgba(21,23,28,.08) 80%,rgba(21,23,28,.2) 100%),
             linear-gradient(0deg,var(--as-ink) 0%,rgba(21,23,28,0) 26%),
             linear-gradient(180deg,rgba(21,23,28,.65) 0%,rgba(21,23,28,0) 20%)}
/* retícula de plano sobre la foto */
.as-hero-grid{position:absolute;inset:68px 0 0;z-index:1;
  background-image:linear-gradient(rgba(255,253,247,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,253,247,.07) 1px,transparent 1px);background-size:64px 64px;
  -webkit-mask:radial-gradient(ellipse 75% 80% at 70% 50%,#000 25%,transparent 80%);mask:radial-gradient(ellipse 75% 80% at 70% 50%,#000 25%,transparent 80%)}

/* texto sobre la foto */
.as-hero-photo .as-h1{color:#FFFDF7;text-shadow:0 2px 30px rgba(21,23,28,.45)}
.as-hero-photo .as-accent{color:var(--as-red-soft)}
.as-hero-photo .as-lede{color:rgba(255,253,247,.82)}
.as-hero-photo .as-doors{border-top-color:rgba(255,253,247,.2)}
.as-hero-photo .as-door{color:#FFFDF7;border-bottom-color:rgba(255,253,247,.2)}
.as-hero-photo .as-door .as-arrow{color:var(--as-red-soft)}
.as-hero-photo .as-door:hover,.as-hero-photo .as-door:focus-visible,.as-hero-photo .as-door.is-live{color:var(--as-red-soft)}
.as-hero-photo .as-door:focus-visible{outline:2px solid var(--as-red-soft);outline-offset:3px}

/* diagrama sobre la foto: módulos crema con sombra real, cables crema, núcleo de vidrio */
.as-hero-photo .as-mod{box-shadow:0 14px 34px rgba(0,0,0,.38),0 2px 6px rgba(0,0,0,.25);border-color:rgba(255,253,247,.6)}
.as-hero-photo .as-mod.is-live{border-color:var(--as-red)}
.as-hero-photo .as-wire{stroke:#FFFDF7;stroke-opacity:.55}
.as-hero-photo .as-diagram.is-filtered .as-wire:not(.is-live){stroke-opacity:.18}
.as-hero-photo .as-wire.is-live{stroke:var(--as-red-soft);stroke-opacity:1}
.as-hero-photo .as-core{background:linear-gradient(rgba(253,251,245,.06) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,rgba(253,251,245,.06) 1px,transparent 1px) 0 0/28px 28px,rgba(21,23,28,.42);
  -webkit-backdrop-filter:blur(7px) saturate(.75);backdrop-filter:blur(7px) saturate(.75);border:1px solid rgba(255,253,247,.22);box-shadow:0 30px 70px rgba(0,0,0,.45)}
.as-hero-photo .as-dim{color:rgba(255,253,247,.72)}
.as-hero-photo .as-dim strong{color:#FFFDF7}
.as-hero-photo .as-dim::before,.as-hero-photo .as-dim::after{background:rgba(255,253,247,.25)}

/* momento de entrada */
@media (prefers-reduced-motion:no-preference){
  .as-hero-photo .as-hero-grid{animation:hh-grid 1.1s cubic-bezier(.16,1,.3,1) both}
  .as-hero-photo .as-hero-img-base{animation:hh-wipe 1.7s cubic-bezier(.77,0,.18,1) .25s both,hh-drift 18s ease-out .25s both}
  .as-hero-photo .as-hero-img-lit{animation:hh-wipe 1.7s cubic-bezier(.77,0,.18,1) .25s both,hh-drift 18s ease-out .25s both,hh-lit 1.6s cubic-bezier(.16,1,.3,1) 1.5s both}
}
@keyframes hh-grid{from{opacity:0}to{opacity:1}}
@keyframes hh-wipe{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
@keyframes hh-drift{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes hh-lit{from{opacity:0;filter:saturate(.2) brightness(.6)}to{opacity:1}}
@property --r{syntax:'<length>';inherits:true;initial-value:280px}

@media (max-width:900px){
  .as-hero.as-hero-photo{--mx:60%;--my:22%;--r:180px}
  .as-hero-bg{bottom:auto;height:min(100%,980px)}
  .as-hero-img{object-position:66% 30%}
  .as-hero-bg::after{background:linear-gradient(180deg,rgba(21,23,28,.72) 0%,rgba(21,23,28,.8) 35%,rgba(21,23,28,.9) 62%,var(--as-ink) 100%)}
  .as-hero-photo .as-dim{background:transparent}
  .as-hero-photo .as-diagram::before{background:rgba(255,253,247,.25)}
  .as-hero-photo .as-mods-l .as-mod::after,.as-hero-photo .as-mods-r .as-mod::after{background:rgba(255,253,247,.35)}
}

/* ============================================================
   HEADER v2.22 — más altura y presencia (oct 2026)
   Arriba: franja de contacto (1GPA, eventos, teléfono, correo) + barra de 84px
   con logo más grande. Sobre los banners de foto el header es transparente;
   al hacer scroll se compacta (64px, vidrio grafito) y la línea roja inferior
   pasa a ser la barra de progreso de lectura (--p, main.js «HEADER v2.22»).
   --nav-h la usan los héroes para dejar espacio bajo el header.
   ============================================================ */
:root{--nav-util:34px;--nav-bar:84px;--nav-h:calc(var(--nav-util) + var(--nav-bar))}
@media (max-width:1120px){:root{--nav-util:0px;--nav-bar:68px}}
#nav{height:var(--nav-h);padding-top:var(--nav-util);background:rgba(21,23,28,.97);border-bottom:0;
  transition:height .5s var(--as-ease),padding .5s var(--as-ease),background .45s,transform .45s var(--as-ease),-webkit-backdrop-filter .45s,backdrop-filter .45s}
#nav::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(231,119,90,.45);pointer-events:none}
#nav::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--as-red);transform:scaleX(var(--p,0));transform-origin:left;pointer-events:none;z-index:3}
#nav.on{height:68px;padding-top:0;background:rgba(21,23,28,.82);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3)}
#nav:has(.has-sub.is-open){background:rgba(21,23,28,.98)}
/* transparente sobre la foto del Home y de los banners */
body:has(main .as-banner,main .as-hero-photo) #nav:not(.on):not(:has(.has-sub.is-open)){background:linear-gradient(180deg,rgba(21,23,28,.78) 0%,rgba(21,23,28,.38) 62%,rgba(21,23,28,0) 100%)}
body:has(main .as-banner,main .as-hero-photo) #nav:not(.on)::before{background:rgba(255,253,247,.14)}

/* franja de contacto */
#nav .n-util{position:absolute;left:0;right:0;top:0;height:34px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 5vw;
  border-bottom:1px solid rgba(255,253,247,.09);font-size:12.5px;font-weight:500;color:rgba(255,253,247,.66);overflow:hidden;transition:opacity .3s,transform .5s var(--as-ease)}
#nav.on .n-util{opacity:0;transform:translateY(-100%);pointer-events:none}
#nav .n-util a{color:inherit;text-decoration:none;transition:color .2s}
#nav .n-util a:hover{color:#FFFDF7}
#nav .n-util a:focus-visible{outline:2px solid var(--as-red-soft);outline-offset:3px}
#nav .n-util-badge{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
#nav .n-util-badge i{width:6px;height:6px;border-radius:50%;background:var(--as-red-soft);box-shadow:0 0 0 3px rgba(231,119,90,.18)}
#nav .n-util-badge{color:rgba(255,253,247,.86)!important;font-weight:600}
#nav .n-util-badge span[aria-hidden]{opacity:.4}
#nav .n-util-sub{font-weight:500;color:rgba(255,253,247,.6)}
#nav .n-util-links{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:0}
#nav .n-util-links li + li::before{content:"";display:inline-block;width:1px;height:12px;margin:0 16px;vertical-align:-1px;background:rgba(255,253,247,.18)}
#nav .n-util-tab{font-variant-numeric:tabular-nums}
@media (max-width:1280px){#nav .n-util-sub,#nav .n-util-badge span[aria-hidden]{display:none}}
@media (max-width:1120px){#nav .n-util{display:none}}

/* barra principal: logo y enlaces con más cuerpo */
#nav .n-brand img{height:40px;transition:height .45s var(--as-ease)}
#nav.on .n-brand img{height:32px}
#nav .n-link,#nav .n-trigger{font-size:15px;color:#CFCCC6}
#nav .n-link::after,#nav .n-trigger::after{bottom:calc(50% - 22px)}
#nav.on .n-link::after,#nav.on .n-trigger::after{bottom:calc(50% - 20px)}
#nav .n-cta{height:46px;padding:0 22px;font-size:14.5px;box-shadow:0 6px 18px rgba(194,76,38,.32);transition:background .25s,gap .3s var(--as-ease),height .45s var(--as-ease),box-shadow .3s}
#nav.on .n-cta{height:40px}
#nav .n-cta:hover{box-shadow:0 8px 22px rgba(194,76,38,.45)}
@media (max-width:1120px){#nav .n-brand img,#nav.on .n-brand img{height:30px}}

/* los héroes dejan espacio para el header más alto */
.as-hero{padding-top:calc(var(--nav-h) + clamp(32px,5vw,80px))}
.as-hero::before,.as-hero-grid{top:var(--nav-h)!important}
.as-phero{padding-top:calc(var(--nav-h) + clamp(40px,5vw,88px))}
.as-phero.as-phero-after{padding-top:clamp(56px,7vw,104px)}
.as-phero::before{top:var(--nav-h)}
.as-banner{padding-top:calc(var(--nav-h) + clamp(40px,6vw,96px))}
.as-thread{top:var(--nav-h)}
#mob-menu{padding-top:calc(var(--nav-bar) + 8px)}
@media (max-width:900px){
  .as-hero,.as-phero,.as-phero.has-aside{padding-top:calc(var(--nav-h) + 40px)}
  .as-phero.as-phero-after{padding-top:56px}
  .as-thread{top:var(--nav-h)}
}
@media (prefers-reduced-motion:reduce){#nav,#nav .n-util,#nav .n-brand img{transition:none}}

/* ============================================================
   HOME «A COMPLETE TEAM» v2.23 — menos texto + foto del equipo
   Lista compacta (código + área) y la foto del equipo con la cita encima.
   ============================================================ */
.as-model-sec .as-model{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:stretch}
.as-bom-compact{align-self:center}
.as-bom-compact a{grid-template-columns:44px minmax(0,1fr) 24px;gap:16px;align-items:center;padding:20px 0}
.as-bom-compact .as-bom-code{margin:0;vertical-align:0;font-variant-numeric:tabular-nums}
.as-bom-compact .as-bom-name{font-size:clamp(18px,1.5vw,21px)}
.as-bom-compact a:hover{padding-left:8px;transition:padding .45s var(--as-ease)}
.as-model-photo{position:relative;margin:0;min-height:clamp(420px,40vw,600px);overflow:hidden;border:1px solid rgba(255,253,247,.16);border-top:3px solid var(--as-red)}
.as-model-photo-fig{position:absolute;inset:0;margin:0}
.as-model-photo-fig img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block;transition:transform 1.2s var(--as-ease)}
.as-model-photo:hover .as-model-photo-fig img{transform:scale(1.03)}
.as-model-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(21,23,28,.94) 0%,rgba(21,23,28,.7) 30%,rgba(21,23,28,0) 62%)}
.as-model-photo-cap{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:clamp(22px,2.6vw,36px)}
.as-model-photo-cap blockquote{margin:0}
.as-model-photo-cap p{margin:0;max-width:22ch;font-size:clamp(22px,2vw,30px);font-weight:700;line-height:1.25;letter-spacing:-.025em;color:#FFFDF7;text-indent:-.42em}
.as-model-photo-cap p::before{content:"\201C";color:var(--as-red-soft)}
.as-model-photo-cap p::after{content:"\201D";margin-left:-.06em;color:var(--as-red-soft)}
.as-model-facts{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.as-model-facts li{padding:6px 12px;border:1px solid rgba(255,253,247,.28);border-radius:999px;font-size:12.5px;font-weight:600;color:rgba(255,253,247,.88);background:rgba(21,23,28,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
@media (max-width:900px){
  .as-model-sec .as-model{grid-template-columns:1fr}
  .as-model-photo{min-height:440px}
  .as .as-bom-compact a{grid-template-columns:40px minmax(0,1fr) 20px;gap:12px;padding:16px 0}
  .as .as-bom-compact .as-arrow{grid-column:3;grid-row:1}
}
.as .as-cases-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){.as .as-cases-2{grid-template-columns:1fr}}

/* ============================================================
   NONPROFITS v2.24 — menos texto, más imagen (oct 2026)
   Situaciones: foto vertical + lista de una línea. Servicios: seis piezas
   con la foto del área, código, nombre y etiquetas (sin párrafos).
   ============================================================ */
.as-np-sits-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,6vw,104px);align-items:center}
.as-np-sits-photo{margin:0;position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--as-ink);border-top:3px solid var(--as-red)}
.as-np-sits-fig{position:absolute;inset:0;margin:0}
.as-np-sits-fig img{width:100%;height:100%;object-fit:cover;display:block}
.as-np-sits-copy .as-head{margin-bottom:clamp(28px,3vw,44px)}
.as-np-sits-list{list-style:none;margin:0;padding:0;border-top:3px solid var(--as-red)}
.as-np-sits-list li{display:flex;align-items:baseline;gap:18px;padding:16px 0;border-bottom:1px solid var(--as-line);font-size:clamp(17px,1.45vw,20px);font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--as-ink)}
.as-np-sit-num{flex:none;width:28px;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--as-red);font-variant-numeric:tabular-nums}
.as-np-sits-answer{margin:26px 0 0;font-size:16px;font-weight:600;color:var(--as-red)}

.as-np-svcs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3vw,44px) clamp(20px,2.4vw,36px)}
.as-np-svcs a{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--as-ink)}
.as-np-svc-fig{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--as-ink);margin-bottom:8px;background:var(--as-cream)}
.as-np-svc-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--as-ease)}
.as-np-svc-code{position:absolute;left:0;top:0;z-index:2;padding:7px 12px;background:var(--as-cream);border-right:1px solid var(--as-ink);border-bottom:1px solid var(--as-ink);font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--as-red)}
.as-np-svc-name{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;font-size:clamp(17px,1.4vw,19px);font-weight:700;letter-spacing:-.015em;line-height:1.3;transition:color .25s}
.as-np-svc-name .as-arrow{flex:none;width:18px;height:18px;color:var(--as-red);transition:transform .4s var(--as-ease)}
.as-np-svc-tags{margin:0;font-size:13.5px;line-height:1.5;color:var(--as-muted)}
.as-np-svcs a:hover .as-np-svc-fig img{transform:scale(1.04)}
.as-np-svcs a:hover .as-np-svc-name{color:var(--as-red)}
.as-np-svcs a:hover .as-arrow{transform:translateX(4px)}
.as-np-svcs a:focus-visible{outline:2px solid var(--as-red);outline-offset:6px}
@media (max-width:1000px){.as-np-svcs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .as-np-sits-grid{grid-template-columns:1fr}
  .as-np-sits-photo{aspect-ratio:16/11}
  .as-np-sits-copy{order:-1}
}
@media (max-width:560px){.as-np-svcs{grid-template-columns:1fr}}
/* Government «The Roads model»: título + foto real de Roads presentando en un concejo (v2.24.1) */
.as-gov-model-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:center;margin-bottom:clamp(48px,6vw,88px)}
.as-gov-model-top .as-head{margin-bottom:0}
.as-gov-model-photo{margin:0;position:relative;aspect-ratio:5/4;overflow:hidden;border:1px solid rgba(255,253,247,.16);border-top:3px solid var(--as-red)}
.as-gov-model-fig{position:absolute;inset:0;margin:0}
.as-gov-model-fig img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:900px){.as-gov-model-top{grid-template-columns:1fr}}
/* Programs «In the field»: tres fotos reales de programas (v2.24.3) */
.as-prog-field-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,36px)}
.as-prog-field-grid li{margin:0}
.as .as-prog-field-fig{margin:0;aspect-ratio:4/3}
.as .as-prog-field-fig img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:900px){.as-prog-field-grid{grid-template-columns:1fr}}
.as .as-prog-field-fig{margin-bottom:18px}
.as-prog-field-t{margin:0 0 6px;font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--as-ink)}
.as-prog-field-d{margin:0;font-size:14.5px;line-height:1.55;color:var(--as-muted)}
.as-prog-field .as-sub{max-width:62ch}
/* Services: foto del equipo en la franja bajo el banner (v2.24.5) */
.as-svc-team{margin:0}
.as .as-svc-team-photo{position:relative;margin:0 0 18px;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--as-ink);border-top:3px solid var(--as-red)}
.as .as-svc-team-photo img{width:100%;height:100%;object-fit:cover;display:block}

/* ============================================================
   MÓVIL v2.25 — pase de adaptación (oct 2026)
   Toques ≥44px, foto del hero visible, tarjetas compactas, formulario primero.
   ============================================================ */
@media (max-width:1120px){
  #nav .n-ham{width:44px;height:44px;padding:0;align-items:center;justify-content:center;margin-right:-8px}
  #nav .n-brand{min-height:44px;display:flex;align-items:center}
}
@media (max-width:900px){
  /* Home: la foto del equipo se ve en la parte alta del hero */
  .as-hero.as-hero-photo{--mx:58%;--my:24%;--r:210px}
  .as-hero-bg{height:620px;bottom:auto}
  .as-hero-img{object-position:64% 30%}
  .as-hero-img-base{filter:grayscale(.85) contrast(1.05) brightness(.7)}
  .as-hero-bg::after{background:linear-gradient(180deg,rgba(21,23,28,.55) 0%,rgba(21,23,28,.62) 30%,rgba(21,23,28,.86) 62%,var(--as-ink) 100%)}

  /* enlaces de texto y pie: área de toque cómoda */
  .as .as-case-link,.as .as-link{padding:10px 0;min-height:44px}
  footer .footer-col a,footer .footer-contact a{display:block;width:max-content;max-width:100%;padding:9px 0;margin-bottom:0;font-size:14px}
  /* casillas más grandes */
  .as .as-contact-field .as-contact-check input,.as .as-tctx-opt input{width:22px;height:22px}
  .as .as-contact-check,.as .as-tctx-opt{padding:4px 0}

  /* Contact: el formulario va primero */
  .as .as-contact-grid{display:flex;flex-direction:column}
  .as .as-contact-sheet{order:-1}

  /* Programs: la 5.ª cifra ocupa la fila completa */
  .as .as-prog-stats .as-stats-list li:nth-child(5){grid-column:1 / -1}
}
@media (max-width:560px){
  /* Nonprofits: servicios en dos columnas compactas */
  .as-np-svcs{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}
  .as-np-svc-name{font-size:15px;align-items:flex-start}
  .as-np-svc-name .as-arrow{display:none}
  .as-np-svc-tags{font-size:12.5px}
  .as-np-svc-fig{margin-bottom:4px}
}
@media (max-width:900px){.as .as-prog-stats .as-stats-list li:nth-child(odd) .as-stat{padding-left:0}}
@media (max-width:560px){
  /* pie: marca a todo el ancho y las tres listas en dos columnas para acortarlo */
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px 20px}
  .footer-grid > :first-child{grid-column:1 / -1}
}
@media (max-width:900px){.as dd a[href^="tel:"],.as dd a[href^="mailto:"],.as .as-ledger dd a,.as-gpa-contact a{display:inline-block;padding:10px 0}}
/* Chat Zoho SalesIQ: se oculta con el menú móvil abierto (lo taparía) */
body:has(#mob-menu.open) #zsiq_float,body:has(#mob-menu.open) .zsiq_floatmain,body:has(#mob-menu.open) #zsiq_chat_wrap{display:none!important}

/* ============================================================
   CHAT — lanzador propio para Zoho SalesIQ (v2.25.2)
   Grafito con filete rojo; el icono es una burbuja con tres nodos unidos
   (la red de Roads). En escritorio muestra la etiqueta; en móvil solo el círculo.
   ============================================================ */
.rcg-chat{--red:#C24C26;--red-soft:#E7775A;--ink:#15171C;--cream:#FFFDF7;--ease:cubic-bezier(.16,1,.3,1);
  position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:640;
  display:flex;align-items:center;gap:12px;height:60px;padding:0 22px 0 6px;border:0;border-radius:999px;cursor:pointer;
  background:var(--ink);color:var(--cream);font:600 14px/1.2 "Plus Jakarta Sans",system-ui,sans-serif;text-align:left;
  box-shadow:0 14px 34px rgba(21,23,28,.32),0 2px 6px rgba(21,23,28,.25),inset 0 0 0 1px rgba(255,253,247,.14);
  transition:transform .45s var(--ease),box-shadow .3s,padding .45s var(--ease),gap .45s var(--ease)}
.rcg-chat[hidden]{display:none}
.rcg-chat::after{content:"";position:absolute;left:24px;right:24px;bottom:-1px;height:2px;border-radius:2px;background:var(--red);transform:scaleX(.35);transition:transform .45s var(--ease)}
.rcg-chat:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(21,23,28,.38),0 2px 6px rgba(21,23,28,.25),inset 0 0 0 1px rgba(255,253,247,.2)}
.rcg-chat:hover::after{transform:scaleX(1)}
.rcg-chat:focus-visible{outline:2px solid var(--red-soft);outline-offset:4px}
.rcg-chat-ic{position:relative;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--red);flex:none;transition:background .3s}
.rcg-chat-ic svg{position:absolute;width:28px;height:28px;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:opacity .3s,transform .45s var(--ease)}
.rcg-chat-bubble{stroke:var(--cream);stroke-width:1.8}
.rcg-chat-wire{stroke:var(--cream);stroke-width:1.2;stroke-dasharray:10;stroke-dashoffset:0;opacity:.75}
.rcg-chat-node{fill:var(--cream)}
.rcg-chat-close{stroke:var(--cream);stroke-width:2.2;opacity:0;transform:rotate(-45deg) scale(.7)}
.rcg-chat-label{display:flex;flex-direction:column;gap:3px;white-space:nowrap;overflow:hidden;max-width:220px;transition:max-width .45s var(--ease),opacity .3s}
.rcg-chat-k{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
.rcg-chat-s{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;color:rgba(255,253,247,.66)}
.rcg-chat-s i{width:7px;height:7px;border-radius:50%;background:rgba(255,253,247,.4);box-shadow:0 0 0 3px rgba(255,253,247,.12);transition:background .3s,box-shadow .3s}
.rcg-chat.is-online .rcg-chat-s i{background:#3DD68C;box-shadow:0 0 0 3px rgba(61,214,140,.22)}
.rcg-chat.is-offline .rcg-chat-s i{background:#E5484D;box-shadow:0 0 0 3px rgba(229,72,77,.22)}
/* en móvil (solo círculo) el estado va como punto en la esquina del icono */
.rcg-chat-ic::after{content:"";position:absolute;right:1px;top:1px;width:12px;height:12px;border-radius:50%;border:2px solid var(--ink);background:transparent;opacity:0;transition:opacity .3s}
.rcg-chat.is-online .rcg-chat-ic::after{background:#3DD68C}
.rcg-chat.is-offline .rcg-chat-ic::after{background:#E5484D}
@media (max-width:760px){.rcg-chat.is-online .rcg-chat-ic::after,.rcg-chat.is-offline .rcg-chat-ic::after{opacity:1}}
@media (prefers-reduced-motion:no-preference){.rcg-chat.is-online .rcg-chat-s i{animation:rcg-chat-live 2.4s ease-out infinite}}
@keyframes rcg-chat-live{0%{box-shadow:0 0 0 0 rgba(61,214,140,.45)}70%,100%{box-shadow:0 0 0 7px rgba(61,214,140,0)}}
.rcg-chat.is-open .rcg-chat-open{opacity:0;transform:rotate(45deg) scale(.7)}
.rcg-chat.is-open .rcg-chat-close{opacity:1;transform:none}
.rcg-chat.is-open .rcg-chat-ic{background:var(--ink);box-shadow:inset 0 0 0 1px rgba(255,253,247,.3)}
.rcg-chat.is-open{padding-right:6px;gap:0}
.rcg-chat.is-open .rcg-chat-label{max-width:0;opacity:0}
@media (prefers-reduced-motion:no-preference){
  .rcg-chat:not([hidden]){animation:rcg-chat-in .7s var(--ease) both}
  .rcg-chat:hover .rcg-chat-wire{animation:rcg-chat-wire .9s var(--ease)}
  .rcg-chat:hover .rcg-chat-node-c{animation:rcg-chat-node .9s var(--ease)}
}
@keyframes rcg-chat-in{from{opacity:0;transform:translateY(16px) scale(.92)}to{opacity:1;transform:none}}
@keyframes rcg-chat-wire{from{stroke-dashoffset:10}to{stroke-dashoffset:0}}
@keyframes rcg-chat-node{40%{transform:translateY(-2px)}}
.rcg-chat-node-c{transform-box:fill-box;transform-origin:center}
/* el botón propio reemplaza al de Zoho (por si la API tarda, también por CSS) */
html.siq-custom #zsiq_float,html.siq-custom .zsiq_floatmain{display:none!important}
body:has(#mob-menu.open) .rcg-chat{display:none}
@media (max-width:760px){
  .rcg-chat{height:56px;padding:0 4px;gap:0;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}
  .rcg-chat::after{left:16px;right:16px}
  .rcg-chat-label{max-width:0;opacity:0}
}
html.siq-custom #zsiq_chat_wrap{bottom:calc(max(20px,env(safe-area-inset-bottom)) + 72px)!important;right:max(20px,env(safe-area-inset-right))!important;border-radius:14px;box-shadow:0 24px 60px rgba(21,23,28,.35)}
@media (max-width:760px){html.siq-custom #zsiq_chat_wrap{bottom:calc(max(14px,env(safe-area-inset-bottom)) + 66px)!important;right:max(10px,env(safe-area-inset-right))!important}}

/* ============================================================
   HOME HERO v2.26 — banner con la foto del equipo (oct 2026)
   Sin diagrama ni red animada: foto a todo el ancho, color real, sombra
   grafito a la izquierda para el texto. Reemplaza el foco y la retícula.
   ============================================================ */
.as-hero.as-hero-banner{grid-template-columns:minmax(0,1fr);align-items:end;min-height:min(100vh,1000px);padding-bottom:clamp(56px,7vw,104px)}
.as-hero-banner .as-hero-copy{max-width:min(680px,100%)}
.as-hero-banner .as-hero-img{object-position:62% 40%}
.as-hero.as-hero-banner{--mx:66%;--my:48%;--r:clamp(240px,24vw,400px)}
.as-hero-banner .as-hero-bg::after{background:linear-gradient(90deg,rgba(21,23,28,.92) 0%,rgba(21,23,28,.78) 32%,rgba(21,23,28,.32) 58%,rgba(21,23,28,.08) 80%,rgba(21,23,28,.15) 100%),
  linear-gradient(0deg,rgba(21,23,28,.7) 0%,rgba(21,23,28,0) 34%),linear-gradient(180deg,rgba(21,23,28,.6) 0%,rgba(21,23,28,0) 22%)}
.as-hero-banner .as-door{background:transparent}
@media (prefers-reduced-motion:no-preference){
  .as-hero-banner .as-hero-copy>*{animation:as-banner-up .9s cubic-bezier(.16,1,.3,1) both}
  .as-hero-banner .as-hero-copy>*:nth-child(2){animation-delay:.08s}
  .as-hero-banner .as-hero-copy>*:nth-child(3){animation-delay:.16s}
}
@media (max-width:900px){
  .as-hero.as-hero-banner{min-height:clamp(620px,96vh,860px)}
  .as-hero-banner .as-hero-bg{height:auto;bottom:0}
  .as-hero-banner .as-hero-img{object-position:66% 35%}
  .as-hero.as-hero-banner{--mx:64%;--my:30%;--r:200px}
  .as-hero-banner .as-hero-bg::after{background:linear-gradient(180deg,rgba(21,23,28,.55) 0%,rgba(21,23,28,.35) 30%,rgba(21,23,28,.82) 62%,rgba(21,23,28,.95) 100%)}
}
/* chat en teléfonos: la ventana de SalesIQ no se sale de la pantalla */
@media (max-width:480px){html.siq-custom #zsiq_chat_wrap{width:auto!important;left:10px!important;right:10px!important;max-width:none!important}html.siq-custom #zsiq_chat_wrap iframe{width:100%!important}}
