/* Pórtico editorial: jerarquía fotográfica, interfaz serena y dos temas monocromáticos. */
:root{color-scheme:dark;--pl-bg:#050505;--pl-surface:#101010;--pl-surface-2:#171717;--pl-ink:#f1f0f2;--pl-muted:#b6b4ba;--pl-line:#303034;--pl-gradient:linear-gradient(105deg,#e7e0ff 0%,#b59aff 56%,#a8dff0 100%);--pl-radius:16px}
:root[data-theme="light"]{color-scheme:light;--pl-bg:#f3f2ee;--pl-surface:#fbfaf7;--pl-surface-2:#e9e8e3;--pl-ink:#222124;--pl-muted:#66646a;--pl-line:#d5d3d5}
body.y2k{--pl-fondo:var(--pl-bg);--pl-superficie:var(--pl-surface);--pl-superficie-2:var(--pl-surface-2);--pl-borde:var(--pl-line);--pl-texto:var(--pl-ink);--pl-secundario:var(--pl-muted);--pl-acento:#b59aff;background:var(--pl-bg)!important;color:var(--pl-ink)!important;font-family:'Montserrat',system-ui,sans-serif!important;transition:background-color .24s ease,color .24s ease}
body.y2k::after,body.y2k .y2k-cursor{display:none!important}
body.y2k :where(h1,h2,h3,h4,p,li,small,a,button,summary,label,input,textarea,select){font-family:'Montserrat',system-ui,sans-serif}
body.y2k :where(h1,h2,h3,h4){color:var(--pl-ink);text-transform:none!important}
body.y2k :where(p,li,.post-meta,.location,.about-footer){color:var(--pl-muted)}
body.y2k :where(a,button,input,select,textarea,summary):focus-visible{outline-color:#b59aff!important;outline-offset:4px}
body.y2k header{background:var(--pl-bg)!important;border-bottom:1px solid var(--pl-line)!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
body.y2k header .logo{color:var(--pl-ink)!important;letter-spacing:.025em!important}
body.y2k header .nav a{color:var(--pl-muted)!important;font-family:'Montserrat',system-ui,sans-serif!important;font-size:11px!important;letter-spacing:.065em!important}
body.y2k header .nav a:hover,body.y2k header .nav a[aria-current="page"],body.y2k header .nav a.activo{color:var(--pl-ink)!important}
body.y2k header .nav a::after,body.y2k header .logo::after{background:var(--pl-gradient)!important;height:2px!important}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 11px;flex:0 0 auto;border:1px solid var(--pl-line);border-radius:999px;background:transparent;color:var(--pl-ink);font:500 11px/1 'Montserrat',system-ui,sans-serif;letter-spacing:.02em;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}
.theme-toggle:hover{border-color:var(--pl-muted);background:var(--pl-surface)}
.theme-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
body.y2k :where(.hud,.kicker,.n-hero__visual-tag,.n-hero__visual-index,.hero-etapa,.post-meta,.tags .tag){font-family:'Montserrat',system-ui,sans-serif!important;letter-spacing:.09em!important}
body.y2k :where(.hud,.kicker){color:var(--pl-muted)!important;background:transparent!important;border:0!important;box-shadow:none!important;font-size:10px!important}
body.y2k .hud b{color:var(--pl-ink);font-weight:600}
body.y2k :where(.y2k-hero h1 em,.seccion__cab h2 em,.cierre-home h2 em,.srv-wrap .hero h1 em){background:var(--pl-gradient)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:transparent!important}
body.y2k :where(.btn-cromo,.btn-primario,.btn-primary){background:var(--pl-gradient)!important;color:#17151b!important;border:0!important;box-shadow:none!important;border-radius:999px!important;font-family:'Montserrat',system-ui,sans-serif!important;letter-spacing:.045em!important}
body.y2k :where(.btn-fantasma,.btn-secundario,.btn){background:transparent!important;color:var(--pl-ink)!important;border:1px solid var(--pl-line)!important;box-shadow:none!important;border-radius:999px!important;font-family:'Montserrat',system-ui,sans-serif!important}
body.y2k :where(.btn-fantasma,.btn-secundario,.btn):hover{border-color:var(--pl-muted)!important}
body.y2k :where(.y2k-hero__vis,.srv-hero__visual,.n-hero__visual,.frente,.gallery-item,.srv-card,.paso-card,.pieza,.mat-panel,.about-contact){border:1px solid var(--pl-line)!important;border-radius:var(--pl-radius)!important;box-shadow:none!important}
body.y2k :where(.frente,.gallery-item,.srv-card,.paso-card,.pieza,.mat-panel,.about-contact){background:var(--pl-surface)!important;color:var(--pl-ink)!important}
body.y2k :where(.frente__txt h3,.gallery-item h3,.srv-card h2,.srv-card h3,.paso-card h3,.pieza h3,.mat-panel h3){color:var(--pl-ink)!important;font-family:'Montserrat',system-ui,sans-serif!important;letter-spacing:-.025em!important;text-transform:none!important}
body.y2k :where(.frente__txt p,.gallery-item p,.srv-card p,.paso-card p,.pieza p,.mat-panel p){color:var(--pl-muted)!important}
body.y2k .frente:hover,body.y2k .gallery-item:hover,body.y2k .srv-card:hover{border-color:#8173a0!important;transform:translateY(-2px)}
body.y2k .frente__cta,body.y2k .ver-todo,body.y2k .n-hero__link{color:var(--pl-ink)!important;font-family:'Montserrat',system-ui,sans-serif!important;letter-spacing:.045em!important}
body.y2k .tags .tag{color:var(--pl-muted)!important;background:var(--pl-surface-2)!important;border:0!important}
body.y2k :where(.y2k-hero__vis img,.srv-hero__visual img,.n-hero__img,.gallery-item img,.pieza img){border-radius:12px}
body.home .progreso i{background:var(--pl-gradient)!important;box-shadow:none!important}
body.home .rail a{border-color:var(--pl-muted)!important}
body.home .rail a.activo{background:var(--pl-gradient)!important;border-color:transparent!important}
body.home .rail a span{background:var(--pl-surface)!important;color:var(--pl-ink)!important;border-color:var(--pl-line)!important;font-family:'Montserrat',system-ui,sans-serif!important;letter-spacing:.04em!important}
body.home .hero-explora{color:var(--pl-muted)!important;font-family:'Montserrat',system-ui,sans-serif!important;letter-spacing:.08em!important}
body.home .hero-explora b{color:#b59aff!important}
body.home .destello{display:none!important}
body.home .marquesina{background:transparent!important;border-color:var(--pl-line)!important}
body.home .seccion__cab h2,body.home .cierre-home h2{text-transform:none!important;letter-spacing:-.04em!important}
body.home .seccion__cab p,body.home .frente__txt p,body.home .cierre-home p{color:var(--pl-muted)!important}
body.home .frente{background:var(--pl-surface)!important}
body.home .frente__img{background:var(--pl-surface-2)!important}
body.home .proceso::before{background:var(--pl-line)!important;opacity:1!important}
body.home .mat-lista button{background:var(--pl-surface)!important;color:var(--pl-ink)!important;border-color:var(--pl-line)!important;text-transform:none!important}
body.home .mat-lista button small{color:var(--pl-muted)!important;font-family:'Montserrat',system-ui,sans-serif!important}
body.home .mat-lista button[aria-selected="true"]{background:var(--pl-surface-2)!important;border-color:#8173a0!important}
body.home .pie-home{border-color:var(--pl-line)!important;color:var(--pl-muted)!important;font-family:'Montserrat',system-ui,sans-serif!important;letter-spacing:.08em!important}
body.home .pie-home a{color:var(--pl-muted)!important}
body.srvposter .srv-wrap .hero{background:var(--pl-bg)!important}
body.srvposter .srv-wrap .hero h1{text-transform:none!important;letter-spacing:-.04em!important}
body.srvposter .srv-wrap .hero p,body.srvposter .cotizador p,body.srvposter .faq p{color:var(--pl-muted)!important}
body.srvposter .srv-hero__visual{background:var(--pl-surface)!important}
body.srvposter .srv-hero__visual::before{display:none!important}
body.srvposter .srv-hero__visual figcaption{color:var(--pl-muted)!important;font-family:'Montserrat',system-ui,sans-serif!important}
body.srvposter .paso-card,body.srvposter .srv-card,body.srvposter .cotizador,body.srvposter .faq details{background:var(--pl-surface)!important;border-color:var(--pl-line)!important;color:var(--pl-ink)!important;box-shadow:none!important}
body.srvposter .paso-card .n{color:var(--pl-muted)!important;font-family:'Montserrat',system-ui,sans-serif!important}
body.srvposter .srv-card :where(h2,h3){text-transform:none!important}
body.srvposter .faq summary{color:var(--pl-ink)!important;font-family:'Montserrat',system-ui,sans-serif!important}
body.srvposter .cotizador :where(input,select,textarea){background:var(--pl-bg)!important;color:var(--pl-ink)!important;border-color:var(--pl-line)!important}
body.nosotros .n-hero,body.nosotros :where([data-pantalla],.n-seccion){background-color:var(--pl-bg)!important;color:var(--pl-ink)!important}
body.nosotros .n-hero h1{text-transform:none!important;letter-spacing:-.04em!important}
body.nosotros .n-hero p,body.nosotros .n-hero__visual-index{color:var(--pl-muted)!important}
body.nosotros .n-hero__visual::after{background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.32))!important}
body.nosotros .n-hero__reticula{display:none!important}
body.y2k[data-filter] main,body.y2k[data-filter] .gallery{background:transparent!important}
body.y2k[data-filter] .gallery-item{background:var(--pl-surface)!important}
body.y2k[data-filter] .gallery-item h3{color:var(--pl-ink)!important;text-transform:none!important;font-size:clamp(15px,1.2vw,18px)}
body.y2k[data-filter] .gallery-item .location{color:var(--pl-muted)!important}
body.y2k .filters button.active{color:var(--pl-ink)!important;text-decoration-color:#b59aff!important}
body.y2k main:not(.srv-wrap){color:var(--pl-ink)}
@media(prefers-reduced-motion:no-preference){body.y2k :where(.y2k-hero h1,.srv-wrap .hero h1,.n-hero h1){animation:none!important}body.y2k :where(.gallery-item,.frente,.srv-card,.paso-card,.pieza){transition-duration:.32s!important}}
@media(max-width:768px){.theme-toggle{min-height:40px;padding-inline:10px}body.y2k header .nav{scroll-snap-type:x proximity}}
@media(prefers-reduced-motion:reduce){body.y2k,.theme-toggle{transition:none}}
/* Contraste reforzado en el tema claro */
:root[data-theme="light"]{--pl-muted:#514d56;--pl-line:#77727b}
:root[data-theme="light"] body.srvposter .srv-card .meta{color:#514d56!important}

/* Segunda pasada: lámina editorial sin marco, menos interfaz y una sola escala para las cinco páginas. */
:root{--pl-radius:14px;--pl-radius-sm:10px;--pl-line-soft:#232327;--pl-text-gradient:var(--pl-gradient);--pl-hero-w:min(1440px,92%);--pl-h1:clamp(34px,3.9vw,56px);--pl-lead:clamp(15px,1.15vw,17px)}
:root[data-theme="light"]{--pl-line-soft:#cfccd3;--pl-text-gradient:linear-gradient(105deg,#4b2fb8 0%,#7a55e8 56%,#3d6fa8 100%)}

/* Portadas: texto + imagen sobre el fondo de la página, sin tarjeta, retícula ni destellos. */
body.y2k :is(.y2k-hero,.srv-wrap .hero,.n-hero){border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding-inline:0!important;color:var(--pl-ink)}
body.y2k .y2k-hero::before,body.y2k :is(.y2k-hero__vis,.srv-hero__visual,.n-hero__visual)::before{display:none!important}
body.y2k :is(.y2k-hero__vis,.srv-hero__visual,.n-hero__visual){border:0!important;border-radius:var(--pl-radius)!important}
body.y2k :is(.y2k-hero__txt,.srv-wrap .hero-txt,.n-hero__txt){padding-inline:0!important}
body.y2k :is(.y2k-hero h1,.srv-wrap .hero h1,.n-hero h1){color:var(--pl-ink);font-weight:700;line-height:1.04;letter-spacing:-.04em!important}
body.y2k :is(.y2k-hero p,.srv-wrap .hero p,.n-hero p){color:var(--pl-muted)!important;line-height:1.65}
body.y2k :where(.y2k-hero h1 em,.seccion__cab h2 em,.cierre-home h2 em,.srv-wrap .hero h1 em,.n-hero h1 em){background:var(--pl-text-gradient)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:transparent!important}
@media(min-width:901px){
 body.home.y2k .y2k-hero,body.nosotros.y2k .n-hero{width:var(--pl-hero-w);gap:clamp(32px,4vw,72px)}
 body.y2k .srv-wrap .hero{width:100%;max-width:1440px;margin-inline:auto!important;gap:clamp(32px,4vw,72px)}
 body.y2k :is(.y2k-hero h1,.srv-wrap .hero h1,.n-hero h1){font-size:var(--pl-h1)}
 body.y2k :is(.y2k-hero p,.srv-wrap .hero p,.n-hero p){font-size:var(--pl-lead)}
 body.y2k :is(.y2k-hero__acciones,.srv-wrap .hero-acciones) :is(.btn-cromo,.btn-fantasma,.btn-primario,.btn-secundario,.btn){min-height:46px;padding:0 24px;font-size:11px;font-weight:600;letter-spacing:.07em!important}
}

/* Ruido tipo HUD/código: fuera de portadas y cabeceras; quedan títulos, textos y acciones. */
body.y2k :is(.y2k-hero__txt,.srv-wrap .hero-txt,.n-hero__txt,.seccion__cab,.y2k-seccion) :is(.hud,.kicker),
body.y2k :is(.y2k-hero__vis,.hero-foto,.n-hero__visual) .hud,
body.y2k .n-hero__visual-index{display:none!important}
body.y2k .seccion__cab h2{margin-top:0}

/* Flujo BIM de la portada: misma superficie que el sistema, sin cian. */
body.home.y2k .hero-secuencia{background:var(--pl-surface)!important;border-top:1px solid var(--pl-line-soft)!important}
body.home.y2k .hero-etapa{color:var(--pl-muted)!important;font-size:11px;letter-spacing:.04em!important}
body.home.y2k .hero-etapa.is-activa{color:var(--pl-ink)!important}
body.home.y2k .hero-etapa.is-activa svg{stroke:#b59aff}
:root[data-theme="light"] body.home.y2k .hero-etapa.is-activa svg{stroke:#6a46dc}
body.home .hero-explora b{color:var(--pl-muted)!important}

/* Piezas completas; las fotos ambientales siguen recortadas. */
body.y2k .pieza__grafica,body.y2k .pieza__grafica object{background:var(--pl-surface-2)}
body.y2k .pieza figcaption{border-top-color:var(--pl-line-soft)!important}

/* Tarjetas: línea suave, radio moderado, sin brillos ni saltos al pasar. */
body.y2k :where(.frente,.gallery-item,.srv-card,.paso-card,.pieza,.mat-panel,.about-contact,.cotizador),body.srvposter .faq details{border-color:var(--pl-line-soft)!important;border-radius:var(--pl-radius)!important;box-shadow:none!important}
body.y2k :is(.frente,.gallery-item,.srv-card,.pieza):hover{border-color:var(--pl-muted)!important;transform:none!important;box-shadow:none!important}
body.y2k :where(.gallery-item img,.pieza img){border-radius:var(--pl-radius-sm)}
body.home .proceso::before{background:var(--pl-line-soft)!important}

/* Tema claro: texto y líneas sobre fondo claro; texto claro solo sobre superficies oscuras. */
:root[data-theme="light"] body.nosotros .n-hero__visual-tag{color:#fff!important}
:root[data-theme="light"] body.srvposter .srv-hero__visual figcaption{color:var(--pl-muted)!important}
:root[data-theme="light"] body.y2k :where(.btn-fantasma,.btn-secundario,.btn){border-color:var(--pl-line)!important;color:var(--pl-ink)!important}
:root[data-theme="light"] body.y2k .filters button.active{color:#5b3fd0!important;text-decoration-color:#5b3fd0!important}

/* Tercera pasada: menos líneas y rótulos, más superficie para las imágenes. */
body.home .marquesina{border:0!important;background:transparent!important}
body.y2k .hud:not(.hud--tl){display:none!important}
@media(min-width:1100px){
 body.home .seccion,body.home .cierre-home,body.home .pie-home,body.home main .gallery,body.home .ver-todo-wrap{max-width:min(1440px,94vw)}
 body.srvposter .srv-wrap{max-width:min(1440px,94vw)}
 body.nosotros #piezas{max-width:min(1480px,96vw)}
 body.nosotros .piezas,body.nosotros .ver-todo-wrap,body.nosotros .n-pilares,body.nosotros .ejes{width:min(100%,1380px)}
}
@media(min-width:901px) and (min-height:560px){body.home .frente__img{width:min(56%,54vh)}}

/* Galerías de Inicio y Laboratorio: marco 4:5 igual para todas las fotos, recortadas sin bandas ni huecos */
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery{align-items:stretch}
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery-item{display:flex;flex-direction:column}
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery-item>a{aspect-ratio:4/5;overflow:hidden;background:var(--pl-surface-2)}
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery-item img,body.home .archivo-poster .gallery-item img{width:100%;height:100%!important;max-height:none!important;aspect-ratio:auto!important;object-fit:cover!important;background:none!important}
@media(min-width:901px) and (min-height:560px){body.home .archivo-poster .gallery-item>a{max-height:46vh;width:100%}}
@media(max-width:900px){body.home .archivo-poster .gallery-item>a{max-height:30svh;width:100%}}
body.y2k .gallery-item h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-bottom:0!important;margin-bottom:8px}
/* Nosotros: bajadas de sección en un solo renglón cuando cabe */
body.nosotros .seccion__cab{max-width:none}
body.nosotros .seccion__cab p{max-width:none}
/* Inicio: barra Modelo / Coordinación / Ejecución más compacta para darle más área a la foto */
body.home.y2k .y2k-hero__vis{grid-template-rows:minmax(0,1fr) 44px!important}
body.home.y2k .hero-secuencia{padding:4px 12px!important}
body.home.y2k .hero-etapa{font-size:11px!important;gap:6px!important}
body.home.y2k .hero-etapa svg{width:16px!important;height:16px!important;flex-basis:16px!important}
/* Servicios: ilustración principal más grande, ocupando su columna completa */
@media(min-width:901px){
 body.y2k .srv-wrap .hero{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important}
 body.y2k .srv-hero__visual{width:100%!important;height:auto!important;max-height:min(80vh,760px);aspect-ratio:1220/760;justify-self:stretch!important}
}
body.y2k .srv-hero__visual figcaption{display:none}
@media(max-width:900px){body.y2k .srv-hero__visual{aspect-ratio:1220/760!important}}

/* Legibilidad: textos un poco más grandes en todo el sitio */
body.y2k :is(.frente__txt p,.paso p,.srv-body .promesa,.srv-body li,.srv-entrega p,.seccion-sub,.seccion__cab p,.pieza figcaption b){font-size:max(15px,1em)}
body.y2k .faq summary{font-size:16px!important}
body.y2k .faq details p{font-size:15px!important}
body.nosotros .n-pilar p{font-size:15px;max-width:none}
body.nosotros .n-pilar > span,body.y2k .srv-body .num,body.nosotros .pieza figcaption span{font-size:12px!important}
body.y2k :is(.btn-cromo,.btn-fantasma,.btn,.ver-todo,.hero-explora,.n-hero__link){font-size:12px!important}
body.y2k :is(.pie-home,.about-footer) :is(span,a){font-size:12px}
body.y2k .srv-img .badge,body.y2k .srv-body .bim,body.y2k .kicker{font-size:11px!important}
@media(max-width:900px){body.nosotros .n-pilar p{font-size:13px}}

/* Contraste: números, acentos y textos secundarios con color del tema */
body.nosotros .n-pilar > span{color:#7ee8ff}
body.nosotros .n-pilar p{color:var(--pl-muted)!important}
body.y2k .srv-body .num{color:var(--pl-muted)!important}
body.y2k #gallery-loading,body.y2k .gallery>div[style]{color:var(--pl-muted)!important}
body.y2k .gallery>div[style] a{color:var(--pl-ink)!important;text-decoration:underline;text-underline-offset:3px}
:root[data-theme="light"] body.nosotros .n-pilar > span,
:root[data-theme="light"] body.y2k :is(.kicker,.meta b,.hud b,.ver-todo b,.hero-explora b){color:#5b3fd0!important}
:root[data-theme="light"] body.nosotros .pieza figcaption span{color:var(--pl-muted)!important}
:root[data-theme="light"] body.nosotros .ejes span{color:var(--pl-ink)!important}
:root[data-theme="light"] body.nosotros .ejes i{color:#5b3fd0!important}
body.srvposter .kicker{display:none!important}

/* Portada: la foto llena la pantalla */
@media(min-width:901px){
 body.home.y2k .y2k-hero{height:calc(100svh - var(--hh,66px) - 44px)!important;min-height:560px!important;max-height:980px;margin-block:0!important;padding-block:clamp(14px,2.2vh,26px)!important;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr)!important;align-items:stretch!important;width:min(1760px,94%)!important}
 body.home.y2k .y2k-hero__txt{align-self:center}
 body.home.y2k .y2k-hero__vis{height:100%!important;max-height:none!important;min-height:0!important;aspect-ratio:auto!important}
 body.home .hero-explora{display:none!important}
}
/* Tarjetas de Inicio: el fondo del recuadro coincide con el de la ilustración, sin bandas */
body.home .frente__img{background:#0b0b0b!important}
/* Mismo ancho que la portada para que no sobren márgenes en pantallas grandes */
@media(min-width:1100px){
 body.home :is(.seccion,.cierre-home,.pie-home,main .gallery,.ver-todo-wrap){max-width:min(1760px,94vw)!important;padding-inline:0!important;margin-inline:auto!important}
 body.srvposter .srv-wrap{max-width:min(1760px,94vw)!important}
 body.nosotros #piezas{max-width:min(1760px,94vw)!important}
 body.nosotros :is(.piezas,.ver-todo-wrap,.n-pilares,.ejes){width:min(100%,1760px)!important}
 body.nosotros.y2k .n-hero{width:min(1760px,94%)!important}
}
@media(min-width:1100px){
 body.srvposter .srv-wrap{margin-inline:auto!important;width:100%}
 body.y2k .srv-wrap .hero{max-width:none!important}
}
/* Ritmo: más aire entre secciones y dentro de los pasos, sin volver a las pantallas a medio llenar */
body.home :is(.seccion,.archivo-poster){padding-block:clamp(44px,6.5vh,76px)!important}
body.home .archivo-poster>.seccion{padding-block:0 28px!important}
body.home .seccion__cab{margin-bottom:clamp(28px,4vh,48px)!important}
body.home .ver-todo-wrap{margin-top:clamp(32px,5vh,56px)!important}
body.home .cierre-home{padding-block:clamp(80px,12vh,144px) 40px!important}
@media(min-width:901px){
 body.home .proceso{gap:clamp(28px,3vw,48px)!important}
}
@media(max-width:900px){body.home .proceso{gap:36px!important}}
body.srvposter .srv-wrap>section[data-pantalla]:not(.hero){padding-block:clamp(44px,6.5vh,76px)!important}
body.nosotros section[data-pantalla]:not(.n-hero){padding-block:clamp(44px,6.5vh,76px)!important}
/* Una pantalla completa por sección en todo el sitio; el contenido va centrado para que no quede un hueco abajo */
body.home :is(.seccion,.archivo-poster,.cierre-home),body.srvposter .srv-wrap>section[data-pantalla]:not(.hero),body.nosotros section[data-pantalla]:not(.n-hero){min-height:calc(100svh - var(--hh,66px))!important;display:flex!important;flex-direction:column!important;justify-content:center!important;box-sizing:border-box}
body.home:not(.nosotros) #proyectos{min-height:0!important}
body.home .cierre-home{padding-bottom:24px!important}
/* Portadas de Servicios y Nosotros también ocupan una pantalla completa */
body.srvposter .srv-wrap>section.hero,body.nosotros.y2k section.n-hero{min-height:calc(100svh - var(--hh,66px))!important;margin-block:0!important;box-sizing:border-box}
/* Las ilustraciones de tarjetas se ven siempre al 100 % (antes quedaban lavadas al 35 % hasta "verse") */
html.mov-ok body.srvposter .srv-card .srv-img svg,html.mov-ok body.nosotros .pieza .pieza__grafica{opacity:1!important}
/* Servicios: más protagonismo para el edificio animado */
@media(min-width:901px){body.y2k .srv-wrap .hero{grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr)!important}body.y2k .srv-hero__visual{max-height:calc(100svh - var(--hh,66px) - 48px)!important}}
/* Nosotros: collage de piezas en la portada (reemplaza la foto del taller) */
body.nosotros .n-hero__visual{background:transparent!important}
body.nosotros .n-hero__visual .n-hero__reticula,body.nosotros .n-hero__visual .n-hero__visual-index{display:none!important}
body.nosotros .n-collage{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(0,1.05fr);gap:10px}
body.nosotros .n-collage img{width:100%;height:100%;object-fit:cover;display:block;border-radius:12px;background:var(--pl-surface-2)}
body.nosotros .n-collage img:nth-child(1){grid-column:1;grid-row:1/3}
body.nosotros .n-collage img:nth-child(2){grid-column:2;grid-row:1}
body.nosotros .n-collage img:nth-child(3){grid-column:2;grid-row:2}
body.nosotros .n-collage img:nth-child(4){grid-column:3;grid-row:1/3}
body.nosotros .n-collage img:nth-child(5){grid-column:4;grid-row:1/3;object-position:50% 35%}
body.nosotros .n-collage img:nth-child(6){grid-column:1/5;grid-row:3;object-position:50% 40%}
body.nosotros .n-hero__visual-tag{z-index:3}
@media(prefers-reduced-motion:no-preference){body.nosotros .n-collage img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}body.nosotros .n-collage img:hover{transform:scale(1.02)}}
@media(min-width:901px){body.nosotros.y2k .n-hero__visual{height:calc(100svh - var(--hh,66px) - 64px)!important;max-height:820px}}
@media(max-width:900px){body.nosotros.y2k .n-hero__visual{aspect-ratio:1/1!important}}
body.nosotros .n-collage img{filter:grayscale(1) contrast(1.05)}
@media(prefers-reduced-motion:no-preference){body.nosotros .n-collage img{transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .6s ease}body.nosotros .n-collage img:hover{filter:grayscale(0)}}
body.nosotros .n-hero__visual .n-hero__visual-tag{background:rgba(8,8,11,.78)!important;color:#fff!important;padding:6px 9px;border-radius:6px;left:14px!important;bottom:14px!important;font-size:11px!important}
body.srvposter .srv-hero__visual{background:#08080b!important}

/* Servicios: retícula fina y superficies grises coordinadas en tema claro. */
:root[data-theme="light"] body.srvposter .srv-card,
:root[data-theme="light"] body.srvposter .srv-card .srv-body{background:#e8e7ea!important;color:#26252a!important}
:root[data-theme="light"] body.srvposter .srv-card{border-color:#c6c3ca!important}
:root[data-theme="light"] body.srvposter .srv-card .srv-img{background:#dedde2!important}
:root[data-theme="light"] :is(body.srvposter .srv-card .srv-img,body.home .frente__img) .srv-ilustracion-fondo{fill:#dedde2!important}
:root[data-theme="light"] :is(body.srvposter .srv-card .srv-img,body.home .frente__img) .srv-ilustracion-reticula{stroke:#aaa7b0!important;stroke-opacity:.52!important}
:root[data-theme="light"] body.srvposter .srv-card .srv-img svg g[font-family] > text:first-of-type{fill:#59449e!important}
:root[data-theme="light"] body.srvposter .srv-card .srv-img svg text:not(:first-of-type){fill:#45434b!important}
/* Contacto: el bloque queda centrado en la pantalla y el pie abajo */
body.home .cierre-home{position:relative!important;justify-content:center!important;padding-bottom:72px!important}
body.home .cierre-home .pie-home{position:absolute!important;left:0;right:0;bottom:24px;margin:0 auto!important}
/* Servicios: la ilustración nunca se recorta; Contacto: pie centrado */
body.y2k .srv-hero__visual img{object-fit:contain!important}
body.home .cierre-home .pie-home{width:fit-content!important;max-width:calc(100% - 32px);justify-content:center!important;gap:16px}
/* Portadas completas en su proporción original 4:5, sin recorte (Inicio y Laboratorio) */
body.home .archivo-poster .gallery-item>a{max-height:none!important}
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery-item img{object-fit:contain!important;background:#fff!important}
/* Portadas del Laboratorio: se oculta la franja inferior (especificaciones y pie) y la marca va arriba */
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery-item>a{aspect-ratio:1200/1312!important;position:relative}
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery-item img{object-fit:cover!important;object-position:top center!important}
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery-item>a::before{content:"PORTICO_LAB";position:absolute;z-index:2;left:5.5%;top:4.2%;width:89%;height:4.6%;display:flex;align-items:center;background:#fff;color:#1d1c20;font:700 clamp(9px,.72vw,12px)/1 'Montserrat',system-ui,sans-serif;letter-spacing:.14em;pointer-events:none}
/* Inicio: sin la barra Modelo / Coordinación / Ejecución; la foto ocupa todo el recuadro */
body.home.y2k .hero-secuencia{display:none!important}
body.home.y2k .y2k-hero__vis{grid-template-rows:minmax(0,1fr)!important}
/* Ficha de proyecto: la imagen principal cabe completa en la pantalla */
/* Portadas: la marca lleva el código de proyecto de las carpetas del estudio */
/* Mascota: misma esquina en todas las páginas, sin moverse con la portada */
html body #mascota-wrapper{bottom:24px!important;right:24px!important;top:auto!important;left:auto!important}
@media(max-width:768px){html body #mascota-wrapper{bottom:14px!important;right:14px!important}}

/* Cotizador: mismo lenguaje del sitio en ambos temas (superficies, chips, campos y resumen) */
body.srvposter .cotizador .campo-label,body.srvposter .cotizador .campo label{color:var(--pl-ink)!important;font-size:14px!important;font-weight:600!important}
body.srvposter .cotizador .campo .ayuda{color:var(--pl-muted)!important;font-size:12px!important}
body.srvposter .cotizador .paso-titulo{color:var(--pl-ink)!important;font-size:16px!important;letter-spacing:.02em!important}
body.srvposter .cotizador .paso-titulo .pn{background:var(--pl-gradient)!important;color:#17151b!important}
body.srvposter .cotizador :is(.chip,.tabs button){background:var(--pl-surface-2)!important;color:var(--pl-ink)!important;border:1px solid var(--pl-line)!important;box-shadow:none!important}
body.srvposter .cotizador :is(.chip,.tabs button):hover{border-color:var(--pl-muted)!important}
body.srvposter .cotizador .chip small{color:var(--pl-muted)!important}
body.srvposter .cotizador :is(.chip,.tabs button)[aria-checked=true],body.srvposter .cotizador .tabs button[aria-selected=true]{background:var(--pl-gradient)!important;color:#17151b!important;border-color:transparent!important}
body.srvposter .cotizador .chip[aria-checked=true] small{color:#3a3640!important}
body.srvposter .cotizador .campo :is(input[type=text],input[type=tel],input[type=email],input[type=number],textarea){background:var(--pl-surface)!important;color:var(--pl-ink)!important;border:1px solid var(--pl-line)!important;font-size:15px!important}
body.srvposter .cotizador .campo :is(input,textarea)::placeholder{color:var(--pl-muted)!important;opacity:1}
body.srvposter .cotizador .campo :is(input,textarea):focus{border-color:#8b6cff!important}
body.srvposter .cotizador .campo input[type=file]{background:var(--pl-surface)!important;color:var(--pl-muted)!important;border-color:var(--pl-line)!important}
body.srvposter .cotizador .campo:first-child textarea{min-height:120px}
body.srvposter .oferta{background:var(--pl-surface)!important;color:var(--pl-ink)!important;border:1px solid var(--pl-line)!important;box-shadow:none!important}
body.srvposter .oferta :is(.oferta-tit,.paso-titulo){color:var(--pl-ink)!important}
body.srvposter .oferta .servicio-nombre{color:var(--pl-muted)!important}
body.srvposter .oferta .linea{color:var(--pl-muted)!important;border-bottom-color:var(--pl-line)!important;font-size:13px!important}
body.srvposter .oferta .linea b{color:var(--pl-ink)!important}
body.srvposter .oferta :is(.nota,.acepto,.privacidad,small,p){color:var(--pl-muted)!important}
body.srvposter .oferta .btn{color:var(--pl-ink)!important;border:1px solid var(--pl-ink)!important;background:transparent!important}
body.srvposter .oferta .btn.btn-primario{background:var(--pl-gradient)!important;color:#17151b!important;border-color:transparent!important}
body.srvposter .oferta .btn:disabled{opacity:.45!important}
body.srvposter .cotizador .link-volver{color:var(--pl-ink)!important}
/* Cotizador: mismo fondo de página que el resto del sitio */
body.srvposter .cotizador{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
body.nosotros .n-collage img{min-width:0;min-height:0}
/* Barra superior con el mismo grosor que la marquesina de servicios (44 px) */
@media(min-width:769px){
 html{--hh:44px}
 body.y2k header{height:44px!important;min-height:44px!important;padding-block:0!important;box-sizing:border-box}
 body.y2k header .logo{font-size:17px!important}
 body.y2k header .nav{gap:26px!important;align-items:center}
 body.y2k header .nav a{min-height:0!important;padding-block:0!important}
 body.y2k header .theme-toggle{min-height:30px!important;height:30px;padding-inline:10px!important}
}
/* Inicio: tarjetas de los dos servicios un poco más pequeñas */
@media(min-width:901px) and (min-height:560px){
 body.home .frente__img{width:min(50%,48vh)!important}
 body.home .frente__txt h3{font-size:clamp(18px,1.35vw,23px)!important}
 body.home .frente__txt p{font-size:15px!important}
}
/* Barra de 44 px: la línea de la pestaña activa va debajo del texto, no encima */
@media(min-width:769px){
 body.y2k header :is(.nav a,.logo)::after{inset-block-end:auto!important;bottom:auto!important;top:calc(50% + 11px)!important;height:2px!important;left:0!important;background:var(--pl-gradient)!important}
 body.y2k header .nav a::after{right:0!important;width:auto!important}
 body.y2k header .nav a,body.y2k header .logo{position:relative;height:44px;display:inline-flex!important;align-items:center}
}
/* Portadas: el filtro aclara a blanco la cuadrícula gris muy clara del fondo sin tocar la foto ni los textos */
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery-item img{filter:url(#sin-reticula)}

/* Servicios — cierre: mismo peso visual que el cierre del Inicio, sin recuadro, con accesos directos a cada servicio */
/* Nosotros: "Conoce nuestro enfoque" como botón con flecha en círculo degradado */
body.nosotros .n-hero__link{display:inline-flex!important;align-items:center;gap:16px;min-height:52px;padding:6px 6px 6px 24px!important;border:1px solid var(--pl-line);border-radius:999px;color:var(--pl-ink)!important;font-size:12px!important;font-weight:600!important;letter-spacing:.09em!important;text-transform:uppercase;text-decoration:none!important;transition:border-color .25s ease,background-color .25s ease}
body.nosotros .n-hero__link::after{display:none!important}
body.nosotros .n-hero__flecha{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--pl-gradient);color:#17151b;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
body.nosotros .n-hero__link:hover{border-color:#8b6cff;background:var(--pl-surface)}
body.nosotros .n-hero__link:hover .n-hero__flecha{transform:translateY(3px)}
body.nosotros .n-hero__link:focus-visible{outline:2px solid #8b6cff;outline-offset:3px}
@media(prefers-reduced-motion:no-preference){body.nosotros .n-hero__flecha svg{animation:pl-flecha 2.4s ease-in-out infinite}}
@keyframes pl-flecha{0%,100%{transform:translateY(-1px)}50%{transform:translateY(2px)}}
body.nosotros .n-hero__link .n-hero__flecha{color:#17151b!important}body.nosotros .n-hero__link .n-hero__flecha svg path{stroke:#17151b!important;stroke-width:2.4}

/* Auditoría: accesibilidad y legibilidad */
.solo-lector{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
/* Puntos de navegación lateral: zona de clic de 28 px sin cambiar su tamaño visual */
@media(min-width:901px){body.home .rail a::after{content:"";position:absolute;inset:-9px;border-radius:50%}}
/* Textos de carga y 404 con contraste suficiente */
body.y2k #loading,body.y2k #gallery-loading{color:var(--pl-muted)!important}
body.y2k .code{color:var(--pl-muted)!important}

/* ===== Móvil: lectura natural. Sin pantallas forzadas ni zoom, cabecera compacta y tipografía a escala de celular ===== */
@media(max-width:900px){
 html:root body.home :is(.seccion,.archivo-poster,.cierre-home),html:root body.srvposter .srv-wrap>section:is([data-pantalla],.hero,.cierre),html:root body.nosotros section:is([data-pantalla],.n-hero),html:root body.srvposter :is(#como-funciona,#servicios,#preguntas){min-height:0!important;height:auto!important;justify-content:flex-start!important;margin-block:0!important}
 html:root body.y2k .pie-home{position:static!important;margin:32px 0 0!important;padding:20px 0 64px!important}
 body.srvposter [data-pantalla]>*{zoom:1!important}
 body.y2k .rail{display:none!important}
}
@media(max-width:768px){
 body.y2k header{display:grid!important;grid-template-columns:1fr auto;align-items:center;row-gap:2px;padding:10px 16px 4px!important;min-height:0!important}
 body.y2k header .logo{font-size:18px!important;letter-spacing:2px!important}
 body.y2k header .nav{grid-column:1/-1;display:flex!important;justify-content:space-between!important;gap:0!important;overflow:visible!important;width:100%;margin:0!important;padding:0!important}
 body.y2k header .nav>a{font-size:10.5px!important;letter-spacing:.07em!important;padding:9px 0!important;white-space:nowrap}
 body.y2k header .theme-toggle{position:absolute!important;top:7px;right:12px;min-height:34px!important;padding:0 10px!important;gap:6px!important}
 body.y2k header .theme-toggle__label{display:none!important}
 /* Tipografía */
 body.y2k :is(.y2k-hero h1,.srv-wrap .hero h1,.n-hero h1){font-size:clamp(28px,8.4vw,34px)!important;line-height:1.08!important;letter-spacing:-.03em!important}
 body.y2k :is(.seccion__cab h2,h2.seccion,.cierre-home h2,.srv-wrap .cierre h2,.nosotros section h2){font-size:clamp(22px,6.6vw,27px)!important;line-height:1.12!important;letter-spacing:-.02em!important}
 body.y2k :is(.y2k-hero p,.srv-wrap .hero p,.n-hero p,.seccion-sub,.cierre-home p,.srv-wrap .cierre p){font-size:15px!important;line-height:1.6!important}
 body.home :is(.seccion,.archivo-poster .seccion,#proceso,.cierre-home),body.srvposter .srv-wrap>section:is(#servicios,#como-funciona,#preguntas,.cierre),body.nosotros section[data-pantalla]:not(.n-hero){padding-top:52px!important;padding-bottom:52px!important}
 body.y2k .hud{font-size:10px!important}
 /* Inicio: los dos servicios apilados, imagen arriba y texto completo abajo */
 body.home .frentes{grid-template-columns:1fr!important;gap:16px!important}
 body.home .frente{flex-direction:column!important}
 body.home .frente__img{width:100%!important;height:210px!important;aspect-ratio:auto!important}
 body.home .frente__img img{width:100%!important;height:100%!important;object-fit:contain!important}
 body.home .frente__txt{padding:18px 20px 20px!important}
 body.home .frente__txt h3{font-size:18px!important}
 body.home .frente__txt p{font-size:14px!important;line-height:1.55!important}
 body.home .proceso{gap:22px!important}
 html:root body.home .archivo-poster{padding-block:0 40px!important}
 html:root body.home .archivo-poster #proyectos{padding-bottom:18px!important}
 /* Servicios: tarjetas completas, una debajo de otra, con lo que incluye cada servicio */
 body.srvposter .srv-grid{display:grid!important;grid-template-columns:1fr!important;gap:16px!important}
 body.srvposter .srv-card{flex-direction:column!important}
 body.srvposter .srv-img{width:100%!important;height:220px!important;aspect-ratio:auto!important}
 :is(body.srvposter .srv-img,body.home .frente__img) svg{object-fit:contain!important}
 body.srvposter .srv-img .badge{left:auto!important;right:10px!important;top:10px!important}
 body.srvposter .srv-body{padding:18px 20px 20px!important}
 body.srvposter .srv-body h3{font-size:18px!important}
 body.srvposter .srv-body .promesa{font-size:14px!important;line-height:1.55!important}
 body.srvposter .srv-body .incluye{display:block!important;margin:12px 0 0!important;padding-left:18px!important;font-size:13.5px!important;line-height:1.6!important;color:var(--pl-muted)!important}
 body.srvposter .srv-body .btn{padding:14px 16px!important;font-size:12px!important;margin-top:16px!important}
 body.srvposter .pasos-row{grid-template-columns:1fr!important;gap:10px!important}
 body.srvposter .paso-card{display:grid!important;grid-template-columns:34px 1fr;column-gap:12px;padding:16px 18px!important}
 body.srvposter .paso-card .n{grid-row:span 2;font-size:13px!important;padding-top:2px}
 body.srvposter .paso-card h3{font-size:15px!important;margin:0!important}
 body.srvposter .paso-card p{font-size:13.5px!important;margin-top:4px!important}
 body.srvposter .faq summary{font-size:15px!important}
 body.srvposter :is(.oferta .nota,.acepto){font-size:13px!important;line-height:1.55!important}
 /* Galerías: etiqueta superior legible en dos columnas */
}

/* Inicio · Para quién: tres perfiles de cliente con su problema y lo que reciben */
body.home .perfil{display:flex;flex-direction:column;gap:12px;padding:28px 26px 26px;background:var(--pl-surface);border:1px solid var(--pl-line-soft);border-radius:var(--pl-radius);color:var(--pl-ink);text-decoration:none;transition:border-color .25s ease}
body.home .perfil:hover,body.home .perfil:focus-visible{border-color:var(--pl-muted)}
body.home .perfil:hover .perfil__cta::after{transform:translateX(6px)}
@media(max-width:900px){body.home .perfil{padding:20px 20px 20px;gap:8px}}
@media(min-width:901px){body.home .perfil{padding:clamp(28px,2.6vw,44px);min-height:min(46vh,440px);gap:18px}}

/* Flechas "siguiente sección": invitan a seguir explorando */
body.y2k .siguiente{display:flex;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:100%;margin:clamp(22px,3vh,36px) auto 0;color:var(--pl-muted);text-decoration:none;font:600 10.5px/1.2 'Montserrat',system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;transition:color .2s ease}
body.y2k .siguiente i{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--pl-gradient);color:#141318}
body.y2k .siguiente svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
body.y2k .siguiente:hover,body.y2k .siguiente:focus-visible{color:var(--pl-ink)}
@keyframes pl-siguiente{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media(prefers-reduced-motion:no-preference){body.y2k .siguiente i{animation:pl-siguiente 2.2s ease-in-out infinite}}
body.y2k .srv-wrap .hero>.siguiente{grid-column:1/-1}
body.home .siguiente--hero{display:none!important}
body.home .archivo-poster>.siguiente{margin-top:18px}

/* Celular: todo más compacto para que la primera vista enganche y se lea de un vistazo */
@media(max-width:768px){
 body.home .siguiente--hero{display:flex!important;grid-column:1/-1;margin-top:18px}
 body.y2k .siguiente{margin-top:26px}
 /* Inicio: la primera pantalla cabe completa */
 html:root body.home.y2k .y2k-hero{padding-top:22px!important;padding-bottom:20px!important;gap:16px!important}
 body.y2k :is(.y2k-hero h1,.srv-wrap .hero h1,.n-hero h1){font-size:clamp(25px,7.2vw,29px)!important}
 body.y2k :is(.seccion__cab h2,h2.seccion,.cierre-home h2,.srv-wrap .cierre h2,.nosotros section h2){font-size:clamp(20px,5.8vw,23px)!important}
 body.y2k :is(.y2k-hero p,.srv-wrap .hero p,.n-hero p,.seccion-sub,.cierre-home p,.srv-wrap .cierre p){font-size:14px!important;line-height:1.55!important}
 body.home .y2k-hero__vis,body.home .hero-foto{height:30svh!important;min-height:200px;max-height:300px!important;aspect-ratio:auto!important}
 body.home .hero-foto img{width:100%!important;height:100%!important;object-fit:cover!important}
 /* Botones más contenidos */
 body.y2k :is(.btn-cromo,.btn-fantasma,.btn,.n-hero__link){padding:10px 16px!important;min-height:38px!important;font-size:10.5px!important;letter-spacing:.06em!important}
 body.y2k :is(.y2k-hero__acciones,.hero-acciones,.cierre-acciones,.cierre-contacto){gap:8px!important}
 body.srvposter .hero-acciones{display:flex!important;flex-wrap:wrap}
 body.srvposter .hero-acciones .btn{flex:1 1 0;width:auto!important;margin:0!important}
 body.srvposter .srv-hero__visual{max-height:34svh}
 /* Imágenes de tarjetas más bajas */
 body.home .frente__img{height:150px!important}
 body.srvposter .srv-img{height:160px!important}
 body.home .frente__txt,body.srvposter .srv-body{padding:14px 16px 16px!important}
 body.home .frente__txt h3,body.srvposter .srv-body h3{font-size:16px!important}
 body.home .frente__txt p,body.srvposter .srv-body .promesa{font-size:13.5px!important}
 body.srvposter .srv-body .incluye,body.srvposter .srv-body .incluye li{font-size:13px!important;line-height:1.5!important}
 body.srvposter .srv-body .incluye{margin-top:8px!important}
 body.srvposter .srv-body .incluye li{padding-block:5px!important}
 html:root body.srvposter .srv-wrap>section.hero{padding-bottom:8px!important}
 body.srvposter .srv-body .btn{margin-top:12px!important}
 /* Perfiles y pasos */
 body.home .perfil{padding:16px!important;gap:6px!important}
 html:root body.home :is(.seccion,#proceso,.cierre-home),html:root body.srvposter .srv-wrap>section:is(#servicios,#como-funciona,#preguntas,.cierre),html:root body.nosotros section[data-pantalla]:not(.n-hero){padding-top:40px!important;padding-bottom:40px!important}
}

/* Galerías · etiquetas estilo catálogo: foto sobre blanco, línea fina y tres datos simples */
body.y2k .gallery .gallery-item{background:none!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important;transform:none!important}
body.y2k .gallery .gallery-item>a{display:block;background:#fff!important;border-radius:0!important;overflow:hidden}
body.y2k .gallery .gallery-item img{border-radius:0!important}
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery .gallery-item>a::before{content:""!important}
body.y2k .gallery .cat{border-top:1.5px solid var(--pl-ink);margin-top:12px;padding-top:9px;display:flex;flex-direction:column;gap:3px}
body.y2k .gallery .cat h3{margin:0!important;padding:0!important;font:400 15px/1.3 'Montserrat',system-ui,sans-serif!important;letter-spacing:-.01em!important;color:var(--pl-muted)!important;display:block!important;-webkit-line-clamp:unset!important}
body.y2k .gallery .cat h3 b{font-weight:700;color:var(--pl-ink)}
body.y2k .gallery .cat h3 span{font-style:italic}
body.y2k .gallery .cat__cod{margin:0;font:500 11px/1.4 ui-monospace,'SFMono-Regular',Menlo,monospace;letter-spacing:.06em;color:var(--pl-muted)!important}
body.y2k .gallery .gallery-item:hover .cat h3 b{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
@media(max-width:768px){body.y2k .gallery .cat{margin-top:8px;padding-top:7px}body.y2k .gallery .cat h3{font-size:13.5px!important}body.y2k .gallery .cat__cod{font-size:10px}}

/* Lenguaje de máquina de escribir: fondo blanco, mayúsculas espaciadas y frase directa al cliente */
:root[data-theme="light"]{--pl-bg:#fff;--pl-surface:#f7f6f4;--pl-surface-2:#efeeeb}
body.y2k :is(.siguiente span,.perfil__quien,.ver-todo,.kicker){font-family:var(--pl-tecnica)!important;letter-spacing:.16em!important}
body.y2k h2.guerrilla-h{font:700 clamp(17px,1.9vw,28px)/1.55 var(--pl-tecnica)!important;letter-spacing:.28em!important;text-transform:uppercase!important;max-width:32ch;margin-inline:auto;color:var(--pl-ink)!important;-webkit-text-fill-color:var(--pl-ink)!important;background:none!important}
body.y2k h2.guerrilla-h mark{background:linear-gradient(105deg,#e7e0ff 0%,#b59aff 56%,#7ee8ff 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:transparent!important;padding:0!important;box-decoration-break:clone}
@media(max-width:768px){body.y2k h2.guerrilla-h{font-size:15px!important;letter-spacing:.16em!important}}
/* Servicios: ilustración BIM en versión clara u oscura según el tema */
body.srvposter .srv-hero__visual .bim-claro{display:none!important}
:root[data-theme="light"] body.srvposter .srv-hero__visual{background:#fff!important}
:root[data-theme="light"] body.srvposter .srv-hero__visual .bim-oscuro{display:none!important}
:root[data-theme="light"] body.srvposter .srv-hero__visual .bim-claro{display:block!important}

/* ===== Guía sutil: tipografía técnica, puntos con brillo, cinta de accesos y flechas que avanzan ===== */
:root{--pl-tecnica:'Technic','Space Mono',ui-monospace,monospace}
/* Puntos laterales: el activo se ilumina con el degradado */
body.y2k .rail a{transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,transform .3s ease!important}
body.y2k .rail a.activo{background:var(--pl-gradient)!important;border-color:transparent!important;box-shadow:0 0 0 4px rgba(181,154,255,.16),0 0 14px rgba(181,154,255,.55)!important;transform:scale(1.3)!important}
body.y2k .rail a:hover{border-color:#b59aff!important}
body.y2k .rail a span{font-family:var(--pl-tecnica)!important;letter-spacing:.14em!important}
/* Cinta de palabras clave como menú rápido */
body.home .marquesina{background:var(--pl-bg)!important;border-color:var(--pl-line-soft)!important}
body.home .marquesina__grupo a{font:700 12px/1 var(--pl-tecnica);letter-spacing:.2em;text-transform:uppercase;color:var(--pl-muted);text-decoration:none;white-space:nowrap;padding:6px 0;transition:color .2s ease}
body.home .marquesina__grupo a:hover,body.home .marquesina__grupo a:focus-visible{background:var(--pl-text-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}
body.home .marquesina:focus-within .marquesina__pista{animation-play-state:paused}
/* Flechas que avanzan 4 px */
body.y2k .flecha-accion{display:inline-block;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
body.y2k :is(a,button):is(:hover,:focus-visible) .flecha-accion{transform:translateX(4px)}
body.home :is(.frente,.perfil):hover :is(.frente__cta,.perfil__cta)::after{transform:translateX(4px)!important}
@media(prefers-reduced-motion:reduce){body.y2k .flecha-accion{transition:none}}
/* Tarjetas en tres pasos: rótulo técnico + mensaje limpio */
/* Resaltado en degradado también en la bajada del inicio */
body.y2k :is(.y2k-hero,.srv-wrap .hero) p mark{background:linear-gradient(105deg,#e7e0ff 0%,#b59aff 56%,#7ee8ff 100%);color:#141316;-webkit-text-fill-color:#141316;padding:0 .18em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
/* Servicios: la ilustración BIM gana espacio (encuadre más alto y columna más ancha) */
body.y2k .srv-hero__visual{aspect-ratio:1205/850!important}
@media(min-width:901px){body.y2k .srv-wrap .hero{grid-template-columns:minmax(0,.56fr) minmax(0,1.44fr)!important;gap:clamp(28px,3vw,56px)!important}body.y2k .srv-wrap .hero h1{font-size:clamp(34px,3.4vw,58px)!important}}

/* Servicios · dibujo técnico de la tarjeta BIM (oscuro por defecto, claro abajo) */
:is(body.srvposter .srv-img,body.home .frente__img) svg{--bt-l:#a9a9b4;--bt-t:#5d5f6b;--bt-x:#c9c8d2;--bt-x2:#8e8c99;--bt-ac:#b9a7ff;--bt-cy:#22c3e6;--bt-al:#ff6b8a;--bt-losa:#2a2b33}
:root[data-theme="light"] :is(body.srvposter .srv-img,body.home .frente__img) svg{--bt-l:#55525c;--bt-t:#a7a4ae;--bt-x:#2b2a2e;--bt-x2:#5f5c66;--bt-ac:#5b3fd0;--bt-cy:#0f8fb0;--bt-al:#d6335a;--bt-losa:#c9c7cf}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt .bt-linea{stroke:var(--bt-l);fill:none}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-losa{fill:var(--bt-losa)}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-trama{stroke:var(--bt-t);stroke-width:1}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-tenue{stroke:var(--bt-t);stroke-width:1}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-tenue-l{stroke:var(--bt-t);stroke-width:1;fill:none}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-borde{stroke:var(--bt-l);stroke-width:.8}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-eje{stroke:var(--bt-t);stroke-width:.8;stroke-dasharray:10 3 2 3}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-burbuja{fill:none;stroke:var(--bt-l);stroke-width:1}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-col{fill:var(--bt-l);opacity:.85}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-viga{fill:var(--bt-l);opacity:.45}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-n3{fill:var(--bt-cy);fill-opacity:.16;stroke:var(--bt-cy);stroke-width:1.4}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-red{stroke:#ff7ac8;stroke-width:1.6;stroke-dasharray:4 3}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-choque{fill:var(--bt-al);fill-opacity:.18;stroke:var(--bt-al);stroke-width:1.4}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-choque-x{stroke:var(--bt-al);stroke-width:1.6}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-alerta-l{stroke:var(--bt-al);stroke-width:1}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-nivel{fill:var(--bt-l)}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-cota{stroke:var(--bt-l);stroke-width:.8}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-pista{fill:var(--bt-t);opacity:.35}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-barra{fill:var(--bt-ac)}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-barra-n3{fill:var(--bt-al)}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-ppto{stroke:var(--bt-ac);stroke-width:1.2;stroke-dasharray:3 3}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-rotulo{fill:none;stroke:var(--bt-l);stroke-width:1}
:is(body.srvposter .srv-img,body.home .frente__img) svg .bt-etiqueta{fill:var(--bt-losa);stroke:var(--bt-al);stroke-width:.8}
html:root :is(body.srvposter .srv-card .srv-img,body.home .frente__img) svg .bt .bt-txt{fill:var(--bt-x)!important}
html:root :is(body.srvposter .srv-card .srv-img,body.home .frente__img) svg .bt .bt-txt2{fill:var(--bt-x2)!important}
html:root :is(body.srvposter .srv-card .srv-img,body.home .frente__img) svg .bt .bt-acento-t{fill:var(--bt-ac)!important}
html:root :is(body.srvposter .srv-card .srv-img,body.home .frente__img) svg .bt .bt-alerta-t{fill:var(--bt-al)!important}
html:root :is(body.srvposter .srv-card .srv-img,body.home .frente__img) svg .bt>text{display:inline!important}

/* Servicios · hero: texto a la izquierda y la ilustración ocupa todo el resto hasta el borde de la pantalla */
@media(min-width:901px){
 body.srvposter{overflow-x:clip}
 html:root body.srvposter .srv-wrap,html:root body.srvposter .srv-wrap>section.hero{overflow:visible!important}
 html:root body.srvposter .srv-wrap>section.hero{position:relative;display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:center!important;min-height:calc(100svh - var(--hh,66px))!important;padding-block:0!important}
 body.srvposter .srv-wrap>section.hero>.hero-txt{position:relative;z-index:2;max-width:min(430px,31vw);padding-block:40px}
 body.srvposter .srv-wrap>section.hero>.siguiente{position:absolute;left:min(215px,15.5vw);bottom:22px;transform:translateX(-50%);z-index:2;margin:0!important}
 html:root body.y2k.srvposter .srv-hero__visual{position:absolute!important;top:12px;bottom:12px;left:calc(min(430px,31vw) + 28px);right:calc(50% - 50vw);width:auto!important;height:auto!important;max-height:none!important;aspect-ratio:auto!important;border:0!important;border-radius:0!important;margin:0!important;z-index:0;background:transparent!important}
 body.srvposter .srv-hero__visual img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;border-radius:0!important;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 9%);mask-image:linear-gradient(90deg,transparent 0,#000 9%)}
}
/* Celular: la ilustración se recorta sobre el edificio */
@media(max-width:900px){html:root body.y2k.srvposter .srv-hero__visual{aspect-ratio:1/1!important;max-height:none!important}body.srvposter .srv-hero__visual img{object-fit:cover!important;object-position:30% center!important}}

/* Inicio · la foto principal llega al borde derecho y se funde con el fondo a la izquierda (igual que Servicios) */
@media(min-width:901px){
 body.home{overflow-x:clip}
 html:root body.home.y2k .y2k-hero{position:relative!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:center!important;overflow:visible!important}
 body.home .y2k-hero>.y2k-hero__txt{position:relative;z-index:2;max-width:min(470px,33vw)}
 html:root body.home.y2k .y2k-hero__vis{position:absolute!important;grid-column:auto!important;grid-row:auto!important;justify-self:stretch!important;align-self:stretch!important;top:0;bottom:0;left:calc(min(470px,33vw) + 32px);right:calc(50% - 50vw);width:auto!important;height:auto!important;max-height:none!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;z-index:0;overflow:hidden}
 html:root body.home.y2k .y2k-hero__vis .hero-foto{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important;border-radius:0!important;margin:0!important;background:transparent!important;box-shadow:none!important}
 html:root body.home.y2k .y2k-hero__vis .hero-foto::before,html:root body.home.y2k .y2k-hero__vis .hero-foto::after,html:root body.home.y2k .y2k-hero__vis .destello{display:none!important}
 html:root body.home.y2k .y2k-hero__vis .hero-foto img{width:112%!important;max-width:none!important;height:100%!important;margin-left:-12%!important;object-fit:cover!important;object-position:left 45%!important;border-radius:0!important;-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 9%,#000 24%);mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 9%,#000 24%)}
 body.home .y2k-hero__vis .hud--tl{left:calc(12% + 14px)!important}
}

/* Galerías · solo la imagen sobre blanco, código abajo, línea morada y "Título | descripción" */
body.y2k .gallery .gallery-item>a{position:relative!important;display:block;aspect-ratio:1/1!important;max-height:none!important;overflow:hidden;background:#fff!important}
body.y2k .gallery .gallery-item>a::before{content:none!important;display:none!important}
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery .gallery-item>a img{position:absolute!important;left:-19.5%!important;top:-18.2%!important;width:139%!important;max-width:none!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important;filter:none!important}

body.y2k .gallery .gallery-item>a .cat__cod{position:absolute;left:12px;bottom:10px;z-index:2;font:500 11px/1 var(--pl-tecnica);letter-spacing:.12em;color:#5f5c66!important;background:transparent!important;padding:3px 0}
body.y2k .gallery .cat{border-top:0!important;position:relative;margin-top:0!important;padding-top:12px!important}
body.y2k .gallery .cat::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#9d7bff,#b59aff 55%,#7ee8ff)}
body.y2k .gallery .cat h3{font-size:15px!important;color:var(--pl-muted)!important}
body.y2k .gallery .cat h3 b{color:var(--pl-ink)}
body.y2k .gallery .cat h3 i{font-style:normal;color:#b59aff;margin:0 .15em}
body.y2k .gallery .cat h3 span{font-style:normal}
@media(max-width:768px){body.y2k .gallery .gallery-item>a .cat__cod{font-size:9px;left:8px;bottom:7px}body.y2k .gallery .cat h3{font-size:13px!important}}

/* Imágenes · mismo lenguaje en todo el sitio: redondeo breve de 8 px */
:root{--pl-radio-img:8px}
body.y2k .gallery .gallery-item>a,
body.y2k .frente__img,
body.srvposter .srv-card .srv-img,
body.nosotros .n-collage img,
body.nosotros .n-hero__visual,
body.y2k .pieza__grafica,
body.y2k #lightbox-img{border-radius:var(--pl-radio-img)!important;overflow:hidden}
body.y2k .frente__img img,body.srvposter .srv-card .srv-img svg,body.y2k .gallery .gallery-item>a img{border-radius:0!important}
body.nosotros .n-hero__visual{border-radius:0!important;overflow:visible!important}
@media(max-width:900px){body.home .y2k-hero__vis,body.home .hero-foto,body.home .hero-foto img,html:root body.y2k.srvposter .srv-hero__visual{border-radius:var(--pl-radio-img)!important;overflow:hidden}}

/* Inspiración y Laboratorio · cada imagen en su tamaño original: sin recorte, sin franjas */
body.y2k:is([data-filter="inspiracion"],[data-filter="inspiración"],[data-filter="laboratorio"]) .gallery .gallery-item>a{aspect-ratio:auto!important;height:auto!important;background:transparent!important}
body.y2k:is([data-filter="inspiracion"],[data-filter="inspiración"],[data-filter="laboratorio"]) .gallery .gallery-item>a img{position:static!important;display:block;width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:auto!important;object-fit:initial!important;background:none!important;filter:none!important}
/* Inspiración y Laboratorio · sin líneas moradas bajo las imágenes */
body.y2k:is([data-filter="inspiracion"],[data-filter="inspiración"],[data-filter="laboratorio"]) .gallery .cat::before{content:none!important;display:none!important}
body.y2k:is([data-filter="inspiracion"],[data-filter="inspiración"],[data-filter="laboratorio"]) .gallery .cat{padding-top:10px!important}
body.y2k:is([data-filter="inspiracion"],[data-filter="inspiración"],[data-filter="laboratorio"]) .gallery .cat h3 i{color:var(--pl-muted)!important}
/* Laboratorio conserva el filtro que borra la cuadrícula de fondo */
body.y2k[data-filter="laboratorio"] .gallery .gallery-item>a img{filter:url(#sin-reticula)!important}
/* Servicios · hero: texto más grande y la ilustración gana más ancho */
@media(min-width:901px){
 body.srvposter .srv-wrap>section.hero>.hero-txt{max-width:min(400px,29vw)!important}
 body.y2k.srvposter .srv-wrap .hero h1{font-size:clamp(38px,3.6vw,64px)!important}
 body.y2k.srvposter .srv-wrap .hero p{font-size:clamp(16px,1.25vw,20px)!important;line-height:1.55!important}
 body.srvposter .srv-wrap .hero .btn{font-size:12px!important;padding:14px 22px!important}
 html:root body.y2k.srvposter .srv-hero__visual{left:calc(min(400px,29vw) + 12px)!important;top:0!important;bottom:0!important}
}

/* Servicios · el dibujo toca el borde derecho y su lado izquierdo se funde con el fondo */
@media(min-width:901px){
 html:root body.y2k.srvposter .srv-hero__visual{display:flex!important;justify-content:flex-end!important;align-items:stretch!important;overflow:hidden!important}
 html:root body.srvposter .srv-hero__visual img{flex:0 1 auto;width:auto!important;height:100%!important;max-width:100%!important;object-fit:contain!important;object-position:right center!important;-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 9%,#000 22%)!important;mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 9%,#000 22%)!important}
}

/* Inicio · "Dos vías" y "Metodología" iguales a Servicios */
body.home .frente__img svg{width:100%;height:100%;display:block;object-fit:cover}
:root[data-theme="light"] body.home .frente__img{background:#dedde2!important}
:root[data-theme="light"] body.home .frentes--srv .frente,:root[data-theme="light"] body.home .frentes--srv .frente__txt{background:#e8e7ea!important;color:#26252a!important}
:root[data-theme="light"] body.home .frentes--srv .frente{border-color:#c6c3ca!important}
body.home .frente__num{font:500 12px/1 var(--pl-tecnica);letter-spacing:.12em;color:var(--pl-muted)}
body.home .frentes--srv .frente__txt h3{margin-top:8px!important}
body.home .frentes--srv .frente__promesa{font-size:15px!important;line-height:1.55!important;margin-top:8px;color:var(--pl-muted)!important}
body.home .frentes--srv .incluye{list-style:none;margin:14px 0 0;padding:0}
body.home .frentes--srv .incluye li{position:relative;padding:7px 0 7px 20px;border-top:1px solid var(--pl-line-soft,#d6d4da);font-size:14px;line-height:1.5;color:var(--pl-ink)}
body.home .frentes--srv .incluye li::before{content:'+';position:absolute;left:0;color:#9d7bff;font-family:var(--pl-tecnica);font-weight:600}
body.home .frentes--srv .frente__cta{margin-top:16px}
body.home .pasos-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
body.home .paso-card{padding:22px!important}
body.home .paso-card .n{font:500 12px/1 var(--pl-tecnica);letter-spacing:.12em;color:var(--pl-muted)}
body.home .paso-card h3{font-size:clamp(17px,1.2vw,20px)!important;margin-top:12px;font-weight:600}
body.home .paso-card p{font-size:15px!important;line-height:1.6;margin-top:8px}
@media(max-width:900px){body.home .pasos-row{grid-template-columns:1fr;gap:10px}body.home .paso-card{display:grid!important;grid-template-columns:34px 1fr;column-gap:12px;padding:16px 18px!important}body.home .paso-card .n{grid-row:span 2;padding-top:3px}body.home .paso-card h3{margin:0!important;font-size:15px!important}body.home .paso-card p{font-size:13.5px!important;margin-top:4px}body.home .frentes--srv .incluye li{font-size:13px;padding-block:5px}body.home .frentes--srv .frente__promesa{font-size:13.5px!important}}

/* Galerías del Inicio y del Laboratorio: imagen completa a su tamaño, sin zoom y con la cuadrícula del fondo aclarada a blanco */
body.y2k:is(.home,[data-filter="laboratorio"]) .gallery .gallery-item>a img{position:absolute!important;inset:0!important;left:0!important;top:0!important;width:100%!important;height:100%!important;object-fit:contain!important;filter:url(#sin-reticula)!important}

/* Tarjetas de servicios (Inicio y Servicios): gris más claro y sin cuadrícula */
:is(body.srvposter .srv-card .srv-img,body.home .frente__img) .srv-ilustracion-reticula{display:none!important}
:root[data-theme="light"] :is(body.srvposter .srv-card,body.srvposter .srv-card .srv-body,body.srvposter .srv-card .srv-img,body.home .frentes--srv .frente,body.home .frentes--srv .frente__txt,body.home .frentes--srv .frente__img){background:var(--pl-panel)!important}
:root[data-theme="light"] :is(body.srvposter .srv-card .srv-img,body.home .frente__img) .srv-ilustracion-fondo{fill:var(--pl-panel)!important}
:root[data-theme="light"] :is(body.srvposter .srv-card,body.home .frentes--srv .frente){border-color:#dcdae0!important}
:root[data-theme="light"] body.home .frentes--srv .incluye li,:root[data-theme="light"] body.srvposter .srv-body .incluye li{border-top-color:#dcdae0!important}

/* Cierre + preguntas frecuentes en una sola vista (Inicio y Servicios) */
body.y2k .cierre-combo .combo{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,5vw,96px);align-items:center;width:100%;max-width:min(1440px,94vw);margin:0 auto;text-align:left}
body.y2k .cierre-combo .combo__cta h2.guerrilla-h{margin:0!important;max-width:24ch;text-align:left;font-size:clamp(16px,1.55vw,24px)!important}
body.y2k .cierre-combo .combo__cta>p{margin:22px 0 28px!important;max-width:46ch;text-align:left;color:var(--pl-muted)!important;font-size:16px!important;line-height:1.6!important}
body.y2k .cierre-combo .cierre-acciones{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start!important}
body.y2k .cierre-combo .combo__faq h3{font:700 clamp(22px,1.8vw,30px)/1.15 'Montserrat',system-ui,sans-serif;letter-spacing:-.03em;color:var(--pl-ink);margin:0 0 14px}
body.y2k .cierre-combo .faq{margin:0!important;max-width:none!important;display:grid;gap:8px}
body.y2k .cierre-combo .faq details{background:var(--pl-surface)!important;border:1px solid var(--pl-line-soft,#dcdae0)!important;border-radius:var(--pl-radius,12px)!important}
body.y2k .cierre-combo .faq summary{cursor:pointer;list-style:none;position:relative;padding:15px 44px 15px 20px;font:500 15px/1.4 'Montserrat',system-ui,sans-serif!important;color:var(--pl-ink)!important}
body.y2k .cierre-combo .faq summary::-webkit-details-marker{display:none}
body.y2k .cierre-combo .faq summary::after{content:'+';position:absolute;right:20px;top:50%;transform:translateY(-50%);color:#9d7bff;font-family:var(--pl-tecnica);font-size:18px}
body.y2k .cierre-combo .faq details[open] summary::after{content:'–'}
body.y2k .cierre-combo .faq details p{padding:0 20px 16px;margin:0;font-size:14.5px!important;line-height:1.65;color:var(--pl-muted)!important}
body.y2k .cierre-combo .combo__faq .ver-todo{display:inline-block;margin-top:18px}
body.srvposter .srv-wrap>section.cierre-combo{display:flex;flex-direction:column;justify-content:center}
@media(max-width:900px){
 body.y2k .cierre-combo .combo{grid-template-columns:1fr;gap:36px}
 body.y2k .cierre-combo .faq summary{font-size:14px!important;padding:13px 40px 13px 16px}
 body.y2k .cierre-combo .faq details p{font-size:13.5px!important;padding:0 16px 14px}
 body.y2k .cierre-combo .combo__cta>p{font-size:14px!important;margin:16px 0 20px!important}
}
body.y2k .cierre-combo .combo__faq a.ver-todo{margin:18px 0 0!important;padding:0 0 4px!important;font:700 11px/1.2 var(--pl-tecnica)!important;letter-spacing:.2em!important;text-transform:uppercase!important;color:var(--pl-ink)!important;text-decoration:none!important;border-bottom:1px solid #9d7bff!important}

/* Cierre + preguntas: más aire, menos peso */
@media(min-width:901px){
 body.y2k .cierre-combo .combo{max-width:min(1240px,84vw)!important;gap:clamp(56px,8vw,160px)!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
 body.y2k .cierre-combo .combo__cta h2.guerrilla-h{font-size:clamp(14px,1.15vw,19px)!important;letter-spacing:.2em!important;line-height:1.8!important;max-width:30ch}
 body.y2k .cierre-combo .combo__cta>p{font-size:15px!important;margin:28px 0 36px!important;max-width:40ch}
 body.y2k .cierre-combo .cierre-acciones :is(.btn-cromo,.btn-fantasma){min-height:44px!important;padding:0 20px!important;font-size:10.5px!important}
 body.y2k .cierre-combo .combo__faq h3{font-size:clamp(20px,1.5vw,26px)!important;margin-bottom:18px!important}
 body.y2k .cierre-combo .faq{gap:10px!important}
 body.y2k .cierre-combo .faq summary{padding:13px 44px 13px 20px!important;font-size:14px!important}
 body.y2k .cierre-combo .faq details p{font-size:14px!important}
 body.y2k .cierre-combo .combo__faq a.ver-todo{margin-top:24px!important;font-size:10px!important}
}
@media(min-width:901px){body.y2k .cierre-combo .cierre-acciones{flex-wrap:nowrap!important;gap:8px!important}body.y2k .cierre-combo .cierre-acciones :is(.btn-cromo,.btn-fantasma){padding:0 16px!important;white-space:nowrap}}

/* Cierre + preguntas: dos columnas con la misma guía superior, escala 8/16/24/32 */
body.y2k .cierre-combo .combo{align-items:start!important}
body.y2k .cierre-combo .combo__kicker,body.y2k .cierre-combo .combo__faq h3.combo__kicker{font:700 11px/1 var(--pl-tecnica)!important;letter-spacing:.24em!important;text-transform:uppercase!important;color:var(--pl-muted)!important;margin:0 0 24px!important;padding-bottom:16px!important;border-bottom:1px solid var(--pl-line-soft,#dcdae0)!important;text-align:left!important}
body.y2k .cierre-combo .combo__cta>p:not(.combo__kicker){margin:24px 0 32px!important}
body.y2k .cierre-combo .faq{gap:8px!important}
body.y2k .cierre-combo .combo__faq a.ver-todo{margin-top:24px!important}
@media(max-width:900px){body.y2k .cierre-combo .combo__kicker,body.y2k .cierre-combo .combo__faq h3.combo__kicker{font-size:10px!important;margin-bottom:16px!important;padding-bottom:12px!important}}
html:root body.y2k .cierre-combo .combo .combo__kicker{font:700 11px/1 var(--pl-tecnica)!important;letter-spacing:.24em!important;margin:0 0 24px!important;padding:0 0 16px!important;max-width:none!important;width:100%;color:var(--pl-muted)!important}
@media(max-width:900px){html:root body.y2k .cierre-combo .combo .combo__kicker{font-size:10px!important;margin-bottom:16px!important;padding-bottom:12px!important}}
html:root body.y2k .cierre-combo .faq summary::after{top:50%!important;transform:translateY(-50%)!important;line-height:1!important}
@media(max-width:900px){html:root body.y2k .cierre-combo .faq summary{font-size:14px!important;padding:13px 40px 13px 16px!important}html:root body.y2k .cierre-combo .combo__cta h2.guerrilla-h{font-size:14px!important;letter-spacing:.14em!important;line-height:1.75!important}}

/* ===== Escala tipográfica única del sitio =====
   Etiqueta 11 · Botón 11 · Texto chico 15 · Texto 16 · Entrada 18 · Tarjeta 20 · Sección 54 · Portada 56 (a 1440 px) */
@media(min-width:901px){
 html:root body.y2k :is(.y2k-hero h1,.srv-wrap .hero h1,.n-hero h1){font-size:clamp(40px,3.9vw,64px)!important;line-height:1.02!important}
 html:root body.y2k :is(.seccion__cab h2,h2.seccion,section h2):not(.guerrilla-h){font-size:clamp(32px,3.75vw,60px)!important;line-height:1.05!important}
 html:root body.y2k :is(.y2k-hero p,.srv-wrap .hero p,.n-hero p){font-size:18px!important;line-height:1.55!important}
 html:root body.y2k :is(.frente__txt h3,.srv-body h3){font-size:20px!important;line-height:1.2!important}
 html:root body.y2k .paso-card h3{font-size:18px!important;line-height:1.25!important}
 html:root body.y2k :is(.frente__promesa,.srv-body .promesa){font-size:16px!important;line-height:1.55!important}
 html:root body.y2k :is(.frentes--srv .incluye li,.srv-body .incluye li,.paso-card p,.faq summary,.faq details p){font-size:15px!important}
 html:root body.y2k :is(.btn,.btn-cromo,.btn-fantasma,.btn-primario,.btn-secundario){font-size:11px!important;letter-spacing:.1em!important}
 html:root body.y2k :is(.siguiente span,.ver-todo,.cat__cod,.frente__num,.srv-body .num,.paso-card .n,.combo__kicker,.hud){font-size:11px!important}
}
@media(min-width:901px){
 html:root body.y2k .cierre-combo .cierre-acciones :is(.btn-cromo,.btn-fantasma),html:root body.srvposter .srv-wrap .hero .btn,html:root body.home .frente__cta{font-size:11px!important;letter-spacing:.1em!important}
 html:root body.nosotros .n-pilar h3,html:root body.nosotros section h3{font-size:18px!important}
}

/* ===== Ritmo vertical de pantallas de contenido (escritorio) =====
   Título siempre a 120 px bajo el menú · título → contenido 32 px · contenido → flecha 40 px.
   Portadas y cierres siguen centrados: son pantallas de impacto. */
@media(min-width:901px) and (min-height:560px){
 html:root body.home :is(#frentes,.archivo-poster,#proceso),
 html:root body.srvposter .srv-wrap>section:is(#servicios,#como-funciona),
 html:root body.nosotros section:is(#enfoque,#proyectos){justify-content:flex-start!important;padding-top:120px!important;padding-bottom:40px!important}
 html:root body.home .archivo-poster>#proyectos{min-height:0!important;padding:0!important;margin:0!important}
 html:root body.y2k :is(#frentes,#proyectos,#proceso,#enfoque) .seccion__cab{margin:0 0 32px!important;padding:0!important}
 html:root body.y2k :is(#frentes,#proyectos,#proceso,#enfoque) .seccion__cab h2{margin:0!important}
 html:root body.y2k :is(#frentes,#proyectos,#proceso,#enfoque) .seccion__cab>p{margin:16px 0 0!important}
 html:root body.srvposter :is(#servicios,#como-funciona)>h2.seccion{margin:0 0 32px!important}
 html:root body.srvposter :is(#srv-grid,#como-funciona .pasos-row){margin-top:0!important}
 html:root body.y2k :is(#frentes,.archivo-poster,#proceso,#servicios,#como-funciona,#enfoque,#proyectos) .siguiente{margin-top:40px!important}
}
@media(min-width:901px) and (min-height:560px){html:root body.home #proceso .pasos-row{margin-top:0!important}}

/* ===== Guía horizontal única (escritorio) =====
   Todo el contenido arranca en la línea del logo: 56 px; en pantallas muy anchas el bloque se centra en 1808 px. */
@media(min-width:901px){
 :root{--pl-guia:max(56px,calc((100vw - 1808px) / 2))}
 html:root body.home :is(.seccion,.cierre-home,main .gallery,.ver-todo-wrap),
 html:root body.srvposter .srv-wrap,
 html:root body.nosotros :is(section.seccion,#piezas,.cierre-home),
 html:root body.y2k[data-filter] main .gallery,
 html:root body.home.y2k #inicio.y2k-hero,
 html:root body.nosotros.y2k section.n-hero{width:auto!important;max-width:none!important;margin-inline:0!important;padding-inline:var(--pl-guia)!important;box-sizing:border-box!important}
 html:root body.nosotros #piezas{padding-inline:0!important}
 html:root body.y2k .cierre-combo .combo{max-width:none!important;width:100%!important;margin:0!important}
 html:root body.home.y2k #inicio .y2k-hero__vis{left:calc(var(--pl-guia) + min(470px,33vw) + 32px)!important}
}
@media(min-width:901px){html:root body.y2k:is(.home,.nosotros,[data-filter]) main{padding-inline:0!important}}
@media(min-width:901px){html:root body.nosotros :is(.n-pilares,.piezas){max-width:none!important;width:auto!important;margin-inline:0!important}}

/* Laboratorio e Inspiración: dos muros editoriales independientes, con scroll natural. */
html:root body.y2k[data-filter]:not(.home) main .gallery{
 display:block!important;
 column-count:5;
 column-gap:8px;
 width:100%;
 max-width:none!important;
 margin-inline:0!important;
 padding-inline:8px!important;
 box-sizing:border-box;
}
html:root body.y2k[data-filter]:not(.home) main .gallery .gallery-item{
 display:inline-block!important;
 width:100%!important;
 margin:0 0 8px!important;
 break-inside:avoid;
 vertical-align:top;
}
html:root body.y2k[data-filter]:not(.home) main .gallery .gallery-item>a{
 display:block!important;
 aspect-ratio:auto!important;
 height:auto!important;
 overflow:hidden;
 background:var(--pl-surface-2)!important;
}
html:root body.y2k[data-filter]:not(.home) main .gallery .gallery-item>a img{
 position:static!important;
 display:block!important;
 width:100%!important;
 height:auto!important;
 max-height:none!important;
 aspect-ratio:auto!important;
 object-fit:contain!important;
 background:transparent!important;
}
@media(max-width:1100px){html:root body.y2k[data-filter]:not(.home) main .gallery{column-count:3}}
@media(max-width:900px){html:root body.y2k[data-filter]:not(.home) main .gallery{column-count:2;column-gap:8px}}

/* Fichas de proyecto: cada imagen ocupa una celda del collage y la ficha vive dentro de otra. */
html:root body.ficha-proyecto main.ficha{
 display:grid!important;
 grid-template-columns:repeat(4,minmax(0,1fr))!important;
 grid-auto-rows:minmax(clamp(170px,20vw,300px),auto)!important;
 align-items:stretch!important;
 gap:clamp(8px,1vw,16px)!important;
 width:min(1480px,100%)!important;
 max-width:none!important;
 height:auto!important;
 min-height:0!important;
 margin:0 auto!important;
 padding:clamp(14px,2.5vw,36px) clamp(14px,3vw,48px) clamp(36px,5vw,72px)!important;
 overflow:visible!important;
}
/* El filtro anticuadrícula debe seguir en el documento (con display:none deja de aplicarse); fuera del flujo no ocupa celda */
html:root body.ficha-proyecto main.ficha>svg{display:block!important;position:absolute!important;width:0!important;height:0!important;overflow:hidden}
html:root body.ficha-proyecto #loading{min-height:18svh!important;height:auto!important;padding:22px 12px!important;color:#777!important;font-size:11px!important;letter-spacing:.12em!important}
html:root body.ficha-proyecto .ficha__media{display:contents!important}
html:root body.ficha-proyecto .ficha__escenario{
 grid-column:span 2;
 grid-row:span 2;
 min-height:0!important;
 aspect-ratio:1;
 border:1px solid #dedde2!important;
 border-radius:10px!important;
 background:#f3f2f0!important;
}
html:root body.ficha-proyecto .ficha__principal img{object-fit:contain!important;padding:clamp(12px,2vw,28px)}
html:root body.ficha-proyecto .ficha__miniaturas{display:contents!important;overflow:visible!important}
html:root body.ficha-proyecto .ficha__mini{
 width:100%!important;
 height:auto!important;
 min-width:0;
 min-height:0;
 aspect-ratio:1/1;
 border:1px solid #dedde2!important;
 border-radius:10px!important;
 background:#f3f2f0!important;
 opacity:1!important;
 cursor:zoom-in;
}
html:root body.ficha-proyecto .ficha__mini img{object-fit:contain!important;padding:clamp(8px,1.3vw,20px)}
html:root body.ficha-proyecto .ficha__mini[aria-current="true"]{display:none!important}
html:root body.ficha-proyecto .ficha__mini:focus-visible{outline:2px solid #7b62d8!important;outline-offset:2px}
html:root body.ficha-proyecto .ficha__info{
 grid-column:3/span 2;
 grid-row:1/span 2;
 min-height:0!important;
 height:100%;
 overflow:visible!important;
 justify-content:space-between!important;
 gap:clamp(18px,2.2vw,32px)!important;
 padding:clamp(20px,3vw,46px)!important;
 border:1px solid #dedde2;
 border-radius:10px;
 background:#f3f2f0!important;
 color:#19181c!important;
}
html:root body.ficha-proyecto .ficha__codigo{margin-bottom:clamp(12px,1.5vw,20px)!important;padding-bottom:12px!important}
html:root body.ficha-proyecto .ficha__info h1{font-size:clamp(30px,3.4vw,48px)!important;line-height:1.04!important;letter-spacing:-.04em!important}
html:root body.ficha-proyecto .ficha__meta{margin-top:12px!important;font-size:11px!important;letter-spacing:.12em!important}
html:root body.ficha-proyecto .ficha__desc{margin-top:18px!important;font-size:15px!important;line-height:1.55!important;max-width:42ch}
html:root body.ficha-proyecto .ficha__rasgos{margin-top:18px!important}
html:root body.ficha-proyecto .ficha__rasgos li{font-size:14px!important;padding:8px 0!important}
html:root body.ficha-proyecto .ficha__cta{margin-top:20px!important;min-height:44px;padding:0 16px!important;font-size:11px!important}
html:root body.ficha-proyecto .ficha__pie{margin-top:auto}
html:root body.ficha-proyecto .ficha__nav{gap:10px!important;padding-top:14px!important}
html:root body.ficha-proyecto .ficha__nav a{font-size:11px!important;letter-spacing:.1em!important}
html:root body.ficha-proyecto .ficha__nav a small{font-size:12px!important}
@media(max-width:900px){
 html:root body.ficha-proyecto main.ficha{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(160px,auto)!important;gap:9px!important;padding:12px 12px 48px!important}
 html:root body.ficha-proyecto .ficha__escenario{grid-column:1/-1;grid-row:span 2;aspect-ratio:1/1}
 html:root body.ficha-proyecto .ficha__info{grid-column:1/-1;grid-row:3;padding:20px 18px!important;gap:18px!important}
 html:root body.ficha-proyecto .ficha__info h1{font-size:clamp(26px,7vw,32px)!important;line-height:1.08!important}
 html:root body.ficha-proyecto .ficha__desc{font-size:14px!important;line-height:1.55!important;margin-top:14px!important}
 html:root body.ficha-proyecto .ficha__rasgos li{font-size:13px!important;line-height:1.45!important}
 html:root body.ficha-proyecto .ficha__mini{aspect-ratio:1/1}
 html:root body.ficha-proyecto .ficha__mini:nth-of-type(4n+2){grid-column:span 2;aspect-ratio:2/1}
}
@media(max-width:768px){
 html:root body.y2k :is(.y2k-hero h1,.srv-wrap .hero h1,.n-hero h1){font-size:clamp(28px,7.2vw,32px)!important;line-height:1.08!important;letter-spacing:-.035em!important}
 html:root body.y2k :is(.seccion__cab h2,h2.seccion,.cierre-home h2,.srv-wrap .cierre h2,.nosotros section h2):not(.guerrilla-h){font-size:clamp(22px,5.6vw,26px)!important;line-height:1.14!important}
 html:root body.home .y2k-hero p,html:root body.srvposter .srv-wrap .hero p,html:root body.nosotros .n-hero p{font-size:15px!important;line-height:1.55!important}
}

/* Fichas: el fondo blanco de los pósters se funde con el panel (sin caja blanca dentro del gris); en celular la imagen principal no se desborda */
html:root body.ficha-proyecto :is(.ficha__principal,.ficha__mini) img{mix-blend-mode:multiply}
@media(max-width:900px){html:root body.ficha-proyecto .ficha__escenario{height:auto!important;width:auto!important}}

/* ===== Auditoría de gráficos ===== */
/* Celular: las ilustraciones de servicio se recortan al centro a escala completa (antes se encogían enteras y el texto quedaba en 2–3 px) */
@media(max-width:900px){
 html:root body.home .frente__img,html:root body.srvposter .srv-card .srv-img{height:280px!important;overflow:hidden!important;position:relative!important}
 html:root :is(body.home .frente__img,body.srvposter .srv-card .srv-img) svg:has(.bt){position:absolute!important;left:0;top:50%;width:100%!important;height:auto!important;transform:translateY(-50%)}
 html:root :is(body.home .frente__img,body.srvposter .srv-card .srv-img) svg:not(:has(.bt)){width:100%!important;height:100%!important}
 /* Portada de Servicios: el encuadre muestra el edificio completo y las tablas se desvanecen a la derecha */
 html:root body.srvposter .srv-hero__visual img{object-position:18% center!important;-webkit-mask-image:linear-gradient(90deg,#000 78%,transparent)!important;mask-image:linear-gradient(90deg,#000 78%,transparent)!important}
 /* Nosotros: cada secuencia a todo el ancho, con su rótulo debajo */
 html:root body.nosotros .pieza{display:block!important}
 html:root body.nosotros .pieza figcaption{padding:12px 14px 14px!important}
}
/* Nosotros: el enlace al laboratorio arranca en la misma guía que el resto del contenido */
@media(min-width:901px){html:root body.nosotros #proyectos .ver-todo-wrap{padding-inline:0!important;margin-inline:0!important;max-width:none!important;text-align:left!important;justify-content:flex-start!important}}
/* Servicios (escritorio): la columna de la ilustración gana ancho para que el dibujo técnico se lea */
@media(min-width:901px){html:root body.srvposter .srv-card .srv-img{flex:0 0 46%!important;width:46%!important;max-width:none!important}}
/* Laboratorio e Inspiración: las tarjetas como bloque para que el muro reparta en todas sus columnas (con inline-block llenaba solo dos) */
html:root body.y2k[data-filter]:not(.home) main .gallery .gallery-item{display:block!important;-webkit-column-break-inside:avoid;page-break-inside:avoid}

/* ===================================================================
   SISTEMA VISUAL ÚNICO — todas las páginas hablan el mismo idioma
   Panel #f2f1f4 · borde #dcdae0 · radio 14 px (paneles) / 8 px (imágenes)
   Números y rótulos en Technic · enlaces en Technic subrayados en violeta
   Botones de 44 px, Montserrat 700 · títulos con degradado en la palabra clave
   =================================================================== */
:root{--pl-panel:#f2f1f4;--pl-panel-borde:#dcdae0;--pl-radio-panel:14px}
:root[data-theme="dark"]{--pl-panel:#141318;--pl-panel-borde:#2a2830}

/* Paneles: un solo gris, un solo borde, un solo radio */
html:root body.y2k :is(.frente,.srv-card,.paso-card,.cierre-combo .faq details,.pieza,.ficha__info,.ficha__escenario,.ficha__mini,.cotizador){background:var(--pl-panel)!important;border:1px solid var(--pl-panel-borde)!important;border-radius:var(--pl-radio-panel)!important}
html:root body.y2k :is(.frente__txt,.srv-card .srv-body,.srv-card .srv-img,.frente__img,.pieza figcaption){background:var(--pl-panel)!important}
html:root :is(body.srvposter .srv-card .srv-img,body.home .frente__img) .srv-ilustracion-fondo{fill:var(--pl-panel)!important}
/* Imágenes de galería sobre el mismo blanco del Inicio (sin caja gris detrás de los pósters) */
html:root body.y2k[data-filter]:not(.home) main .gallery .gallery-item>a{background:transparent!important}

/* Títulos: mismo espaciado en todas las páginas; el de la ficha usa la tinta del sitio */
html:root body.y2k :is(h2.seccion,.seccion__cab h2){letter-spacing:-.04em!important}
html:root body.ficha-proyecto .ficha__info h1{color:var(--pl-ink)!important;-webkit-text-fill-color:var(--pl-ink)!important}

/* Números y códigos: Technic 11 px gris */
html:root body.y2k :is(.srv-body .num,.paso-card .n,.frente__num,.cat__cod,.n-pilar>span,.pieza figcaption span){font-family:var(--pl-tecnica)!important;font-size:11px!important;font-weight:500!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--pl-muted)!important}
/* Rótulos de sección: Technic 11 px negrita espaciada */
html:root body.y2k :is(.combo__kicker,.ficha__codigo){font-family:var(--pl-tecnica)!important;font-size:11px!important;font-weight:700!important;letter-spacing:.24em!important;text-transform:uppercase!important;color:var(--pl-muted)!important}

/* Enlaces de texto: Technic 11 px, subrayado violeta */
html:root body.y2k :is(.ver-todo,.siguiente span,.ficha__nav a){font-family:var(--pl-tecnica)!important;font-size:11px!important;font-weight:700!important;letter-spacing:.2em!important;text-transform:uppercase!important}
html:root body.y2k a.ver-todo{border-bottom:1px solid #9d7bff!important;padding-bottom:4px!important;text-decoration:none!important}

/* Botones: misma altura, peso y espaciado en todo el sitio */
@media(min-width:901px){html:root body.y2k :is(.btn,.btn-cromo,.btn-fantasma,.btn-primario,.btn-secundario,.ficha__cta){min-height:44px!important;font-weight:700!important;letter-spacing:.1em!important;text-transform:uppercase!important}}

/* Inicio: la tarjeta de servicio termina igual que en Servicios (línea de propuesta + botón) */
html:root body.home .frentes--srv .frente__txt{display:flex!important;flex-direction:column!important}
html:root body.home .frentes--srv .meta{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding-top:20px;font-size:11px;color:var(--pl-muted)}
html:root body.home .frentes--srv .meta b{color:#5b3fd0;font-weight:600}
html:root body.home .frentes--srv .frente__cta{display:flex!important;align-items:center;justify-content:center;width:100%;min-height:44px;margin-top:12px!important;padding:0 20px;border:1px solid var(--pl-line)!important;border-radius:999px;font:700 11px/1 'Montserrat',system-ui,sans-serif!important;letter-spacing:.1em!important;text-transform:uppercase;color:var(--pl-ink)!important;background:transparent}
html:root body.home .frentes--srv .frente:hover .frente__cta{border-color:var(--pl-ink)!important}

/* 404 con el mismo lenguaje */
body.y2k .e404__codigo{font:700 11px/1 var(--pl-tecnica);letter-spacing:.24em;text-transform:uppercase;color:var(--pl-muted);margin:0 0 20px}
body.y2k h1.e404__titulo{font:700 clamp(40px,5vw,64px)/1.02 'Montserrat',system-ui,sans-serif!important;letter-spacing:-.045em!important;text-transform:none!important;color:var(--pl-ink)!important;margin:0 0 16px!important}
body.y2k .e404__texto{font-size:16px!important;color:var(--pl-muted)!important;margin:0 0 32px!important}
/* Degradado de la palabra clave también en Servicios y en la 404 */
html:root body.y2k :is(h2.seccion,h1.e404__titulo) em{font-style:normal;background:var(--pl-text-gradient)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-fill-color:transparent!important}
/* Botones del hero con el mismo espaciado que el resto */
@media(min-width:901px){html:root body.y2k :is(.y2k-hero__acciones,.srv-wrap .hero-acciones,.n-hero) :is(.btn-cromo,.btn-fantasma,.btn-primario,.btn-secundario,.btn){letter-spacing:.1em!important;font-weight:700!important;min-height:44px!important}}
html:root body.y2k :is(.y2k-hero h1,.srv-wrap .hero h1,.n-hero h1,h2,h1.e404__titulo) em{font-style:normal!important}
/* Modo oscuro: la ficha de proyecto sigue el tema como el resto del sitio */
:root[data-theme="dark"] body.ficha-proyecto{background:var(--pl-bg)!important}
:root[data-theme="dark"] body.ficha-proyecto main.ficha{background:transparent!important;color:var(--pl-ink)!important}
html:root body.ficha-proyecto .ficha__info{background:transparent!important;color:var(--pl-ink)!important}
html:root body.ficha-proyecto .ficha__info :is(h1,h2,h3,.ficha__desc,.ficha__rasgos li){color:var(--pl-ink)!important}
html:root body.ficha-proyecto .ficha__info :is(.ficha__codigo,.ficha__meta){color:var(--pl-muted)!important}
:root[data-theme="dark"] body.ficha-proyecto .ficha__info{color:var(--pl-ink)!important}
:root[data-theme="dark"] body.ficha-proyecto :is(.ficha__desc,.ficha__rasgos li){color:var(--pl-muted)!important}
:root[data-theme="dark"] body.ficha-proyecto .ficha__rasgos{border-top-color:var(--pl-ink)!important}
:root[data-theme="dark"] body.ficha-proyecto :is(.ficha__codigo,.ficha__rasgos li,.ficha__nav){border-color:var(--pl-panel-borde)!important}
:root[data-theme="dark"] body.ficha-proyecto .ficha__nav a{color:var(--pl-ink)!important}
:root[data-theme="dark"] body.ficha-proyecto :is(.ficha__principal,.ficha__mini) img{mix-blend-mode:normal!important}
:root[data-theme="dark"] body.ficha-proyecto .ficha__contador{background:var(--pl-panel)!important;color:var(--pl-muted)!important}
:root[data-theme="dark"] body.y2k .gallery .gallery-item>a .cat__cod{background:transparent!important;color:var(--pl-muted)!important}
:root[data-theme="dark"] body.ficha-proyecto .ficha__meta,:root[data-theme="dark"] body.home .frentes--srv .meta b{color:#b59aff!important}

/* ===== Ficha de proyecto: mosaico proporcional en una sola vista =====
   Cada celda toma la proporción real de su imagen (sin recortes). El script reparte las imágenes en dos filas
   para llenar la pantalla; la ficha técnica absorbe el ancho que sobra. */
@media(min-width:901px){
 html:root body.ficha-proyecto main.ficha.ficha--prop{display:block!important;position:relative!important;height:calc(100svh - var(--hh,66px))!important;min-height:540px!important;padding:16px var(--pl-guia,56px)!important;overflow:hidden!important;width:auto!important;margin:0!important}
 html:root body.ficha-proyecto main.ficha.ficha--prop :is(.ficha__media,.ficha__miniaturas){display:contents!important}
 html:root body.ficha-proyecto main.ficha.ficha--prop :is(.ficha__escenario,.ficha__info,.ficha__mini){position:absolute!important;left:var(--x,0)!important;top:var(--y,0)!important;width:var(--w,0)!important;height:var(--h,0)!important;margin:0!important;aspect-ratio:auto!important;grid-column:auto!important;grid-row:auto!important;min-height:0!important;transition:none}
 html:root body.ficha-proyecto main.ficha.ficha--prop:not(.listo) :is(.ficha__escenario,.ficha__info,.ficha__mini){visibility:hidden}
 html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__info{overflow-y:auto!important;padding:clamp(18px,1.6vw,28px)!important;gap:12px!important}
 html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__info h1{font-size:clamp(26px,2.4vw,40px)!important}
 html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__desc{font-size:14px!important;margin-top:12px!important;line-height:1.5!important}
 html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__rasgos{margin-top:12px!important}
 html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__rasgos li{font-size:13px!important;padding:6px 0!important;line-height:1.4!important}
 html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__cta{margin-top:14px!important;min-height:42px!important}
 html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__nav a small{display:none!important}
}
/* Imágenes llenando su celda exacta (la celda ya tiene la proporción de la imagen) */
html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__principal{padding:0!important}
html:root body.ficha-proyecto main.ficha.ficha--prop :is(.ficha__principal,.ficha__mini) img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;padding:0!important;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
html:root body.ficha-proyecto main.ficha.ficha--prop :is(.ficha__escenario,.ficha__mini){overflow:hidden!important;padding:0!important;opacity:1!important;cursor:zoom-in!important;display:block!important}
html:root body.ficha-proyecto main.ficha.ficha--prop :is(.ficha__escenario,.ficha__mini):hover img{transform:scale(1.03)}
html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__mini:hover{border-color:var(--pl-ink)!important}
/* "+N" cuando hay más imágenes de las que caben */
.ficha__mas{position:absolute;inset:0;display:grid;place-items:center;background:rgba(20,19,22,.55);color:#fff;font:700 28px/1 'Montserrat',system-ui,sans-serif;letter-spacing:-.02em;border-radius:inherit}
/* Celular: principal y luego dos columnas, cada imagen con su proporción */
@media(max-width:900px){
 html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__escenario{position:relative!important;aspect-ratio:var(--ar,1)!important;height:auto!important;width:auto!important}
 html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__miniaturas{display:block!important;grid-column:1/-1!important;columns:2;column-gap:9px}
 html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__mini{position:relative!important;width:100%!important;height:auto!important;aspect-ratio:var(--ar,1)!important;margin:0 0 9px!important;break-inside:avoid;grid-column:auto!important}
}
/* Ficha: ninguna imagen se recorta; si la celda no calza exacto, la imagen se ajusta adentro sobre el panel */
html:root body.ficha-proyecto main.ficha.ficha--prop :is(.ficha__principal,.ficha__mini) img{object-fit:contain!important}
@media(max-width:900px){html:root body.ficha-proyecto main.ficha.ficha--prop .ficha__escenario{width:100%!important;height:auto!important;grid-row:auto!important;align-self:start!important;justify-self:stretch!important}}
/* Ficha ancha: descripción a la izquierda y rasgos a la derecha */
html:root body.ficha-proyecto .ficha__info.ficha__info--ancha>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(28px,2.6vw,48px);align-content:start}
html:root body.ficha-proyecto .ficha__info.ficha__info--ancha>div:first-child>*{grid-column:1}
html:root body.ficha-proyecto .ficha__info.ficha__info--ancha .ficha__rasgos{grid-column:2!important;grid-row:1/span 5;align-self:start;margin-top:0!important}
/* Portadas sin código de carpeta */
body.y2k .gallery .gallery-item>a .cat__cod{display:none!important}
/* Inicio · hero: difuminado suave sobre la zona visible (sin corte duro a la izquierda) y fundido inferior */
@media(min-width:901px){
 html:root body.home.y2k .y2k-hero__vis .hero-foto img{width:100%!important;margin-left:0!important;object-position:82% 45%!important;-webkit-mask-image:none!important;mask-image:none!important}
 html:root body.home.y2k .y2k-hero__vis .hero-foto{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.04) 6%,rgba(0,0,0,.16) 13%,rgba(0,0,0,.36) 20%,rgba(0,0,0,.6) 28%,rgba(0,0,0,.82) 36%,#000 46%),linear-gradient(0deg,transparent 0,rgba(0,0,0,.5) 7%,#000 16%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.04) 6%,rgba(0,0,0,.16) 13%,rgba(0,0,0,.36) 20%,rgba(0,0,0,.6) 28%,rgba(0,0,0,.82) 36%,#000 46%),linear-gradient(0deg,transparent 0,rgba(0,0,0,.5) 7%,#000 16%);
  mask-composite:intersect}
 html:root body.home.y2k .y2k-hero__vis .hud--tl{left:calc(46% + 14px)!important}
}

/* Tablero público de Pinterest dentro de Inspiración */
body[data-filter="inspiración"] .pinterest-board:not([hidden]){width:100vw;max-width:none;margin:clamp(28px,5vw,72px) calc(50% - 50vw) clamp(42px,6vw,88px);padding:clamp(16px,2vw,32px);box-sizing:border-box;background:#fff;color:#111}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) body[data-filter="inspiración"] .pinterest-board:not([hidden]){background:#000;color:#f1f0f2}}
:root[data-theme="dark"] body[data-filter="inspiración"] .pinterest-board:not([hidden]){background:#000;color:#f1f0f2}
body[data-filter="inspiración"] .pinterest-board__heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--pl-line)}
body[data-filter="inspiración"] .pinterest-board__heading h2{margin:0;font:600 clamp(17px,2vw,24px)/1.2 'Montserrat',system-ui,sans-serif;letter-spacing:-.025em}
body[data-filter="inspiración"] .pinterest-board__link{color:var(--pl-ink);font-size:12px;text-underline-offset:4px}
body[data-filter="inspiración"] .pinterest-board__embed{width:100%;min-height:260px;overflow:hidden}
body[data-filter="inspiración"] .pinterest-board__embed iframe{display:block;width:100%!important;max-width:100%!important;margin-inline:auto}
@media(max-width:600px){body[data-filter="inspiración"] .pinterest-board__heading{align-items:flex-start;flex-direction:column;gap:8px}body[data-filter="inspiración"] .pinterest-board__embed{min-height:180px}}
@media(prefers-reduced-motion:reduce){body[data-filter="inspiración"] .pinterest-board *{scroll-behavior:auto!important}}
/* Inicio · consulta corta en el cierre */
body.y2k .consulta{display:grid;gap:12px;margin:22px 0 4px;max-width:560px}
body.y2k .consulta__fila{display:grid;grid-template-columns:1fr 1fr;gap:12px}
body.y2k .consulta__campo{display:grid;gap:6px}
body.y2k .consulta__campo>span{font:700 11px/1.2 var(--pl-tecnica);letter-spacing:.16em;text-transform:uppercase;color:var(--pl-muted)}
body.y2k .consulta :is(input,select,textarea){width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid var(--pl-panel-borde);border-radius:10px;background:var(--pl-panel);color:var(--pl-ink);font:400 15px/1.4 inherit;font-family:inherit}
body.y2k .consulta textarea{min-height:88px;resize:vertical}
body.y2k .consulta :is(input,select,textarea):focus{outline:2px solid #9d7bff;outline-offset:1px;border-color:#9d7bff}
body.y2k .consulta .btn-cromo{justify-self:start;border:0;cursor:pointer}
body.y2k .consulta__trampa{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
body.y2k .consulta__error{margin:0;min-height:0;color:#c0392b;font-size:14px}
body.y2k .consulta__error:empty{display:none}
body.y2k .consulta__gracias{margin:0;padding:16px 18px;border:1px solid var(--pl-panel-borde);border-radius:var(--pl-radio-panel);background:var(--pl-panel);color:var(--pl-ink);font-size:16px;line-height:1.5}
:root[data-theme="dark"] body.y2k .consulta__error{color:#ff8a80}
@media(max-width:600px){body.y2k .consulta__fila{grid-template-columns:1fr}}
/* Consulta · opciones en botones */
body.y2k .consulta__opciones{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
body.y2k .consulta__opciones legend{width:100%;padding:0;margin-bottom:8px;font:700 11px/1.2 var(--pl-tecnica);letter-spacing:.16em;text-transform:uppercase;color:var(--pl-muted)}
body.y2k .consulta__opciones label{position:relative;cursor:pointer}
body.y2k .consulta__opciones input{position:absolute;opacity:0;width:1px;height:1px}
body.y2k .consulta__opciones span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--pl-panel-borde);border-radius:999px;background:var(--pl-panel);color:var(--pl-ink);font-size:14px;transition:border-color .15s,background .15s}
body.y2k .consulta__opciones label:hover span{border-color:#9d7bff}
body.y2k .consulta__opciones input:checked+span{border-color:#9d7bff;background:linear-gradient(90deg,#e9e0ff,#d7f6ff);color:#141316;font-weight:600}
body.y2k .consulta__opciones input:focus-visible+span{outline:2px solid #9d7bff;outline-offset:2px}
/* Cierre (Inicio y Servicios) · mismo lenguaje que el resto del sitio:
   título Montserrat como las secciones, texto de 18 px, campos de 48 px, botones de 44 px con la misma separación */
html:root body.y2k .cierre-combo .combo__cta h2.guerrilla-h{font:700 clamp(30px,2.5vw,46px)/1.08 'Montserrat',system-ui,sans-serif!important;letter-spacing:-.035em!important;text-transform:none!important;max-width:20ch!important;margin:0!important}
html:root body.y2k .cierre-combo .combo__cta h2.guerrilla-h mark{padding:0 .12em;border-radius:4px}
html:root body.y2k .cierre-combo .combo__cta>p:not(.combo__kicker){font-size:18px!important;line-height:1.6!important;max-width:44ch!important;margin:24px 0 32px!important}
html:root body.y2k .cierre-combo .consulta{gap:18px;margin:0 0 0;max-width:620px}
html:root body.y2k .cierre-combo .consulta__fila{gap:16px}
html:root body.y2k .cierre-combo .consulta__campo{gap:8px}
html:root body.y2k .cierre-combo .consulta :is(input,select,textarea){min-height:48px;padding:12px 16px;font-size:16px!important;border-radius:12px}
html:root body.y2k .cierre-combo .consulta textarea{min-height:104px}
html:root body.y2k .cierre-combo .consulta__opciones{gap:10px}
html:root body.y2k .cierre-combo .consulta__opciones legend{margin-bottom:10px}
html:root body.y2k .cierre-combo .consulta__opciones span{min-height:44px;padding:0 18px;font-size:15px}
html:root body.y2k .cierre-combo :is(.consulta .btn-cromo,.cierre-acciones .btn-cromo,.cierre-acciones .btn-fantasma){min-height:44px!important;height:44px;padding:0 24px!important;font:700 11px/1 'Montserrat',system-ui,sans-serif!important;letter-spacing:.1em!important;white-space:nowrap}
html:root body.y2k .cierre-combo .consulta .btn-cromo{margin-top:6px}
html:root body.y2k .cierre-combo .consulta+.cierre-acciones{margin-top:32px!important;padding-top:24px;border-top:1px solid var(--pl-panel-borde)}
html:root body.y2k .cierre-combo .cierre-acciones{gap:12px!important;flex-wrap:wrap!important}
html:root body.y2k .cierre-combo .faq{gap:10px!important}
html:root body.y2k .cierre-combo .faq summary{padding:18px 56px 18px 24px!important;font:500 17px/1.4 'Montserrat',system-ui,sans-serif!important}
html:root body.y2k .cierre-combo .faq summary::after{right:24px;font-size:20px}
html:root body.y2k .cierre-combo .faq details p{padding:0 24px 20px!important;font-size:15px!important;line-height:1.65!important}
html:root body.y2k .cierre-combo .combo__faq a.ver-todo{margin-top:28px!important;font-size:11px!important}
@media(max-width:900px){
 html:root body.y2k .cierre-combo .combo__cta h2.guerrilla-h{font-size:clamp(26px,7vw,32px)!important}
 html:root body.y2k .cierre-combo .combo__cta>p:not(.combo__kicker){font-size:16px!important;margin:18px 0 24px!important}
 html:root body.y2k .cierre-combo .faq summary{font-size:16px!important;padding:16px 48px 16px 18px!important}
 html:root body.y2k .cierre-combo .faq details p{font-size:15px!important;padding:0 18px 16px!important}
 html:root body.y2k .cierre-combo .cierre-acciones{gap:10px!important}
}
/* Inicio · cierre en dos vistas: formulario (texto a la izquierda, formulario a la derecha) y preguntas al final */
html:root body.home.y2k #contacto .combo{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)!important;align-items:center!important}
html:root body.home.y2k #contacto .combo__form{width:100%}
html:root body.home.y2k #contacto .consulta{max-width:none;margin:0}
html:root body.home.y2k #contacto .cierre-acciones{margin-top:0!important}
html:root body.home.y2k #preguntas .combo--preguntas{display:block!important;max-width:min(980px,94vw)!important}
html:root body.home.y2k #preguntas .combo__faq{width:100%}
html:root body.home.y2k #preguntas .faq summary{font-size:18px!important}
@media(max-width:900px){html:root body.home.y2k #contacto .combo{grid-template-columns:1fr!important;gap:28px!important}}
/* Fotos originales: sin el filtro anticuadrícula (alteraba color y contraste de las portadas nuevas) */
html:root body.y2k .gallery .gallery-item img,html:root body.y2k .gallery .gallery-item>a img,html:root body.ficha-proyecto .ficha__principal img{filter:none!important}
/* Nosotros · el collage cabe completo y centrado en la primera pantalla; descripción breve del equipo */
@media(min-width:901px){
 html:root body.nosotros.y2k section.n-hero{min-height:0!important;height:calc(100svh - var(--n-arriba,84px))!important;padding-block:clamp(16px,2.4vh,32px)!important;align-items:center!important;align-content:center!important}
 html:root body.nosotros.y2k .n-hero__visual{height:calc(100svh - var(--n-arriba,84px) - 2 * clamp(16px,2.4vh,32px))!important;max-height:860px!important;align-self:center!important}
}
html:root body.nosotros .n-hero p{font-size:15px!important;line-height:1.6!important;max-width:44ch;color:var(--pl-muted)!important;opacity:1!important;font-family:'Montserrat',system-ui,sans-serif!important;font-weight:400!important;font-style:normal!important;letter-spacing:0!important;text-transform:none!important}
@media(max-width:900px){html:root body.nosotros .n-hero p{font-size:14px!important}}

/* Nosotros · Del espacio al objeto: bloque centrado en la pantalla */
html:root body.nosotros #proyectos .seccion__cab,html:root body.nosotros #proyectos .piezas,html:root body.nosotros #proyectos .ver-todo-wrap{margin-inline:auto!important}

/* Nosotros · Procesos: gráficos más grandes y tipografía Montserrat en todo el bloque */
html:root body.nosotros .pieza__grafica{padding:0!important}
html:root body.nosotros .pieza__grafica object{width:100%!important;height:auto!important;aspect-ratio:540/480;display:block}
html:root body.nosotros #proyectos .pieza figcaption span,html:root body.nosotros #proyectos .pieza figcaption b,html:root body.nosotros #proyectos .hud,html:root body.nosotros #proyectos .ver-todo{font-family:'Montserrat',system-ui,sans-serif!important;letter-spacing:.08em!important}
/* Nosotros · procesos: motion graphics isométricos con su etiqueta centrada */
html:root body.nosotros .pieza__grafica object{aspect-ratio:560/520!important;background:transparent!important}
html:root body.nosotros .pieza figcaption{display:flex;justify-content:center;padding:16px 14px!important}
html:root body.nosotros .pieza figcaption b{font:500 13px/1 'Montserrat',system-ui,sans-serif!important;letter-spacing:.24em!important;text-transform:uppercase!important;color:var(--pl-ink)!important}
html:root body.nosotros .pieza figcaption b{display:block!important}
html:root body.nosotros .pieza__grafica{aspect-ratio:560/520!important;height:auto!important;max-height:none!important}
@media(min-width:901px){html:root body.nosotros #proyectos .piezas{width:min(1320px,90vw)!important;max-width:none!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important}}
html:root body.nosotros .pieza__grafica{background:#0d0d10!important}
@media(max-width:900px){html:root body.nosotros .pieza figcaption{align-items:center!important;justify-content:center!important;padding:14px!important}html:root body.nosotros .pieza figcaption b{text-align:center!important}}
/* Flechas «siguiente sección»: mismo diseño y tamaño en todo el sitio (no se encogen con el ajuste automático del Inicio) */
html:root body.y2k :is(.seccion,.cierre-home,.archivo-poster,.y2k-hero,.n-hero,section)>.siguiente{zoom:1!important}
html:root body.y2k .siguiente{gap:8px!important}
html:root body.y2k .siguiente span{font:700 11px/1 var(--pl-tecnica)!important;letter-spacing:.2em!important;text-transform:uppercase!important}
html:root body.y2k .siguiente i{width:36px!important;height:36px!important;min-width:36px}
html:root body.y2k .siguiente i svg{width:16px!important;height:16px!important}
/* ===== Coherencia entre páginas: misma separación entre tarjetas y mismos tamaños de texto ===== */
html:root body.y2k :is(.frentes,.pasos-row,.srv-grid,.n-pilares,.piezas){gap:20px!important;column-gap:20px!important;row-gap:20px!important}
/* Nosotros · pilares con el mismo panel que las tarjetas de Metodología */
html:root body.nosotros .n-pilares{border:0!important}
html:root body.nosotros .n-pilar{background:var(--pl-panel)!important;border:1px solid var(--pl-panel-borde)!important;border-radius:var(--pl-radio-panel)!important;padding:22px!important}
html:root body.y2k :is(.n-pilar h3,.paso-card h3){font-size:18px!important;line-height:1.3!important}
html:root body.y2k :is(.n-pilar p,.paso-card p){font-size:16px!important;line-height:1.55!important}
/* Nosotros · los dos párrafos del inicio con el mismo tamaño que el resto de portadas */
html:root body.nosotros .n-hero p.n-hero__quien{font-size:18px!important;line-height:1.55!important}
/* Inicio · «Explorar servicios» alineado con el contenido de su sección */
html:root body.home .seccion>.ver-todo-wrap{max-width:none!important;width:100%!important;margin-inline:0!important;padding-inline:0!important;text-align:left!important}
@media(max-width:900px){
 html:root body.y2k :is(.frentes,.pasos-row,.srv-grid,.n-pilares,.piezas){gap:12px!important;column-gap:12px!important;row-gap:12px!important}
 html:root body.nosotros .n-pilar{padding:16px 18px!important}
 html:root body.y2k :is(.n-pilar h3,.paso-card h3){font-size:15px!important}
 html:root body.y2k :is(.n-pilar p,.paso-card p){font-size:14px!important}
 html:root body.y2k :is(.y2k-hero p,.srv-wrap .hero p,.n-hero p,.n-hero p.n-hero__quien){font-size:15px!important}
}
html:root body.home .seccion>.ver-todo-wrap .ver-todo{margin-left:0!important;margin-right:0!important}
/* Servicios · tarjetas de «Dos vías» con el mismo estilo que en el Inicio */
html:root body.srvposter .srv-body h3{margin-top:8px!important}
html:root body.srvposter .srv-body .promesa{font-size:16px!important;line-height:1.55!important;margin-top:8px!important}
html:root body.srvposter .srv-body .incluye{list-style:none!important;margin:14px 0 0!important;padding:0!important}
html:root body.srvposter .srv-body .incluye li{position:relative!important;padding:7px 0 7px 20px!important;margin:0!important;border-top:1px solid var(--pl-line-soft,#d6d4da)!important;font-size:15px!important;line-height:1.5!important;color:var(--pl-ink)!important}
html:root body.srvposter .srv-body .incluye li::before{content:'+'!important;position:absolute!important;left:0!important;top:7px;color:#9d7bff!important;font-family:var(--pl-tecnica)!important;font-weight:600!important}
html:root body.srvposter .srv-body{display:flex!important;flex-direction:column!important}
html:root body.srvposter .srv-body .meta{display:flex!important;justify-content:space-between!important;gap:12px!important;margin-top:auto!important;padding-top:20px!important;font-size:11px!important;color:var(--pl-muted)!important}
html:root body.srvposter .srv-body .btn-primario{display:flex!important;align-items:center;justify-content:center;width:100%!important;min-height:44px!important;margin-top:12px!important;padding:0 20px!important;background:transparent!important;border:1px solid var(--pl-line)!important;border-radius:999px!important;color:var(--pl-ink)!important;font:700 11px/1 'Montserrat',system-ui,sans-serif!important;letter-spacing:.1em!important;text-transform:uppercase!important;box-shadow:none!important}
html:root body.srvposter .srv-card:hover .btn-primario{border-color:var(--pl-ink)!important}
:root[data-theme="dark"] body.srvposter .srv-body .incluye li{border-top-color:#2a2830!important}
@media(min-width:901px){
 html:root body.srvposter .srv-card .srv-img{flex:0 0 50%!important;width:50%!important;max-width:50%!important;aspect-ratio:1/1!important;height:auto!important;align-self:flex-start}
 html:root body.srvposter .srv-card .srv-body{flex:1 1 50%!important;padding:18px 22px!important}
}
