/* Zipcode · la estructura probada del molde (López → Skalko) con su marca medida: logo de zipcode.com.ar, Bebas Neue + Poppins
   (las de su web), el negro de sus piezas, el marino de su Market y los cuatro colores de CODE solo como acento. */
@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url(/fuentes/bebas-neue-400.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(/fuentes/poppins-400.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(/fuentes/poppins-500.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(/fuentes/poppins-600.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(/fuentes/poppins-700.woff2) format('woff2')}
:root{
  --negro:#0b0b0b; --carbon:#171717; --tinta:#121212; --grafito:#3a3c3a; --gris:#62675f; --gris-2:#9ba09a;
  --papel:#ffffff; --nube:#f3f4f0; --linea:#e2e4de; --linea-o:#2a2b2a;
  --marino:#0a3d6e; --marino-2:#042952; --marino-3:#125b92;
  --teal:#1eb4ab; --teal-t:#0b7f78; --lima:#aeca21;
  --c:#4db5bf; --o:#74980a; --d:#d7d75e; --e:#90c7db;
  --disp:'Bebas Neue',Impact,'Arial Narrow',sans-serif; --sans:'Poppins',system-ui,sans-serif;
  --ancho:1280px; --gut:clamp(16px,4vw,48px); --r:18px; --r-chico:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{background:var(--papel);color:var(--tinta);font:400 16px/1.6 var(--sans);overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,select,input{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
.menu-abierto body{overflow:hidden}
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic-wa{width:18px;height:18px;fill:currentColor;flex:none}
.acento{color:var(--teal-t)}
.sobre-osc .acento,.marino .acento{color:var(--lima)}

/* ---------- logo ---------- */
.logo{display:block;width:auto;height:21px}
.logo .zip{fill:currentColor}
.logo .lc{fill:var(--c)}.logo .lo{fill:var(--o)}.logo .ld{fill:var(--d)}.logo .le{fill:var(--e)}

/* ---------- encabezado ---------- */
.cab{position:fixed;inset:0 0 auto;z-index:60;display:flex;align-items:center;gap:30px;padding:18px var(--gut);color:#fff;transition:transform .35s,background .3s,padding .3s}
.cab.compacta,body:not(.p-index) .cab{background:rgba(11,11,11,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.cab.compacta{padding-block:12px}
.cab.oculta{transform:translateY(-100%)}
.marca{display:flex;align-items:center;gap:12px;margin-right:auto;min-height:44px}
.marca small{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#bfc3bc;border-left:1px solid #444;padding-left:12px;line-height:1.25}
.nav{display:flex;gap:26px;font-size:14px;font-weight:500}
.nav a{position:relative;opacity:.86}
.nav a:hover,.nav a[aria-current]{opacity:1}
.nav a::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:100%;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
/* la barra de progreso: los cuatro colores de CODE, en el orden del logo */
.barra{position:absolute;left:0;bottom:0;height:3px;width:0;background:linear-gradient(90deg,var(--c) 0 25%,var(--o) 25% 50%,var(--d) 50% 75%,var(--e) 75% 100%);background-size:100vw 100%}
.menu-btn{display:none;width:44px;height:44px;position:relative}
.menu-btn span{position:absolute;left:11px;right:11px;height:2px;background:currentColor;transition:transform .3s}
.menu-btn span:first-child{top:17px}.menu-btn span:last-child{top:25px}
.menu-abierto .menu-btn span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-abierto .menu-btn span:last-child{transform:translateY(-4px) rotate(-45deg)}
.menu-cel{position:fixed;inset:0;z-index:55;background:var(--negro);color:#fff;padding:96px var(--gut) 32px;display:flex;flex-direction:column;justify-content:space-between;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.menu-abierto .menu-cel{opacity:1;visibility:visible}
.menu-cel nav{display:flex;flex-direction:column}
.menu-cel nav a{font-family:var(--disp);font-size:40px;letter-spacing:.01em;line-height:1.1;padding:8px 0;border-bottom:1px solid var(--linea-o)}
.menu-cel p{color:var(--gris-2);font-size:14px}
.menu-cel p a{color:var(--lima);font-weight:600}

/* ---------- botones y campos ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 24px;border:1.5px solid currentColor;border-radius:999px;font-weight:600;font-size:15px;transition:background .25s,color .25s,border-color .25s;white-space:nowrap}
.btn:hover{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.btn-neg{background:var(--tinta);border-color:var(--tinta);color:#fff}
.btn-neg:hover{background:var(--teal-t);border-color:var(--teal-t)}
.btn-claro{background:#fff;border-color:#fff;color:var(--tinta)}
.btn-claro:hover{background:var(--lima);border-color:var(--lima);color:var(--tinta)}
.btn-wa{background:var(--tinta);border-color:var(--tinta);color:#fff}
.btn-wa .ic-wa{color:#3ecf7a}
.btn-wa:hover{background:var(--teal-t);border-color:var(--teal-t)}
.btn-wa:hover .ic-wa{color:#fff}
.sobre-osc .btn-wa,.marino .btn-wa{background:#fff;border-color:#fff;color:var(--tinta)}
.sobre-osc .btn-wa .ic-wa,.marino .btn-wa .ic-wa{color:#1f9d55}
.sobre-osc .btn-wa:hover,.marino .btn-wa:hover{background:var(--lima);border-color:var(--lima)}
.sobre-osc .btn:not(.btn-wa):not(.btn-claro):hover,.marino .btn:not(.btn-wa):not(.btn-claro):hover{background:#fff;color:var(--tinta);border-color:#fff}
.btn-chico{min-height:42px;padding:0 18px;font-size:14px}
.campo{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--gris)}
.campo select,.campo input[type=number],.campo input[type=text]{height:48px;border:1px solid var(--linea);border-radius:12px;padding:0 14px;background:#fff;color:var(--tinta);font-weight:500;font-size:15px;width:100%}
.campo input[type=range]{accent-color:var(--teal-t);width:100%;height:48px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:42px;padding:0 16px;border:1px solid var(--linea);border-radius:999px;font-size:14px;font-weight:600;background:#fff;transition:background .2s,border-color .2s,color .2s}
.chip:hover{border-color:var(--tinta)}
.chip.on{background:var(--tinta);border-color:var(--tinta);color:#fff}

/* ---------- secciones ---------- */
main{display:block}
.sec{max-width:var(--ancho);margin:0 auto;padding:clamp(64px,10vh,120px) var(--gut)}
.sec-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:34px;flex-wrap:wrap}
.sec-tit{font-family:var(--disp);font-weight:400;font-size:clamp(44px,6vw,86px);line-height:.92;letter-spacing:.005em;text-transform:uppercase;text-wrap:balance}
.lead{font-size:clamp(16px,1.4vw,18px);color:var(--gris);max-width:58ch;margin-top:16px}
.sobre-osc .lead{color:#c3c7c0}
.marino .lead{color:#c7d6e6}
.ver-mas{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;border-bottom:2px solid var(--teal);padding-bottom:3px;min-height:32px}
.ver-mas .ic{transition:transform .25s}
.ver-mas:hover .ic{transform:translateX(4px)}
.sobre-osc .ver-mas,.marino .ver-mas{border-color:var(--lima)}
.nota{font-size:13px;color:var(--gris);margin-top:16px}
.nota a{text-decoration:underline}
.sobre-osc .nota{color:#a6aaa4}
.marino .nota{color:#9fb6cd}
.oscuro{background:var(--negro);color:#fff}
.marino{background:var(--marino-2);color:#fff}
.nube{background:var(--nube)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--negro)}
.hero-fotos{position:absolute;inset:0}
.hero-fotos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 60%;animation:hero-acerca 16s ease-out both}
@keyframes hero-acerca{from{transform:scale(1.08)}to{transform:none}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,11,.5) 0%,rgba(11,11,11,.06) 30%,rgba(11,11,11,.35) 58%,rgba(11,11,11,.9) 100%)}
.hero-txt{position:relative;z-index:2;width:100%;max-width:var(--ancho);margin:0 auto;padding:120px var(--gut) clamp(28px,6vh,56px)}
.hero h1{font-family:var(--disp);font-weight:400;font-size:clamp(58px,7.6vw,124px);line-height:.88;letter-spacing:.005em;text-transform:uppercase;max-width:14ch}
.hero .firma{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#e7ebe4;margin-top:16px}
.hero .firma i{display:inline-flex;gap:3px}
.hero .firma i b{display:block;width:8px;height:8px;border-radius:50%}
.hero .lead{color:#e8ebe5;max-width:46ch}
.hero-pie{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-top:22px}
.hero-ficha{font-size:12px;color:#d7dbd4;text-align:right;line-height:1.4;border-right:3px solid var(--teal);padding-right:12px;flex:none}
.hero-ficha b{display:block;color:#fff;font-size:14px}

/* buscador */
.busca{margin-top:26px;display:grid;grid-template-columns:auto 1fr 1fr auto;background:#fff;color:var(--tinta);border-radius:20px;padding:8px;max-width:880px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.busca .op{display:flex;background:var(--nube);border-radius:14px;padding:4px;margin-right:6px}
.busca .op button{padding:0 18px;border-radius:10px;font-weight:600;font-size:14px;color:var(--gris);min-height:44px}
.busca .op button.on{background:var(--tinta);color:#fff}
.busca>*{min-width:0}
.busca label{display:flex;flex-direction:column;justify-content:center;padding:4px 16px;border-left:1px solid var(--linea);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.busca select{border:0;background:none;font-size:16px;font-weight:600;color:var(--tinta);padding:2px 0;letter-spacing:0;text-transform:none;appearance:none;cursor:pointer}
.busca .btn{border-radius:14px;min-height:56px}

/* ---------- cifras ---------- */
.cifras{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--linea-o);position:relative}
.cifras::before{content:"";position:absolute;left:0;top:-1px;width:min(220px,40%);height:3px;background:linear-gradient(90deg,var(--c) 0 25%,var(--o) 25% 50%,var(--d) 50% 75%,var(--e) 75%)}
.cifras div{padding:26px 22px 4px 0}
.cifras a{display:block;color:inherit}
.cifras b{display:block;font-family:var(--disp);font-weight:400;font-size:clamp(54px,5.4vw,84px);letter-spacing:.01em;line-height:.9;color:#fff}
.cifras span{display:block;font-size:13px;color:#b5b9b2;margin-top:8px;max-width:22ch}

/* ---------- el equipo es la marca: el muro de caras ---------- */
.eq-sec{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"txt vid" "muro muro" "pie pie";gap:22px clamp(28px,4vw,64px);align-items:end}
.eq-txt{grid-area:txt}.eq-sec .muro{grid-area:muro}.eq-sec .muro-pie{grid-area:pie;margin-top:0}
.eq-sec .eq-vid{grid-area:vid;display:grid;grid-template-columns:150px 230px;gap:16px;align-items:end;max-width:none}
.eq-sec .eq-vid.suena{grid-template-columns:240px 230px}
.muro{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:10px}
.cara{position:relative;display:block;aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--carbon);transition:transform .25s,box-shadow .25s}
.cara img{width:100%;height:100%;object-fit:cover}
.cara.ini{display:grid;place-items:center;font-weight:600;font-size:15px;letter-spacing:.03em;background:#1b1c1b;box-shadow:inset 0 0 0 2px currentColor}
.cara.ini.k0{color:var(--c)}.cara.ini.k1{color:var(--o)}.cara.ini.k2{color:var(--d)}.cara.ini.k3{color:var(--e)}
.cara:hover{transform:scale(1.12);box-shadow:0 0 0 2px var(--lima);z-index:2}
.js .muro:not(.v) .cara{opacity:0;transform:scale(.4)}
.muro.v .cara{transition:opacity .35s var(--d),transform .45s cubic-bezier(.3,1.5,.5,1) var(--d)}
.muro.v .cara:hover{transition:transform .25s,box-shadow .25s}
.muro-pie{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-top:22px;font-size:14px;color:#b5b9b2}
.eq-txt .ver-mas{margin-top:20px}
.vid{margin:0;display:flex;flex-direction:column;gap:10px}
.vid-marco{position:relative;aspect-ratio:9/16;width:100%;border-radius:var(--r);overflow:hidden;background:var(--carbon)}
.vid-marco video{width:100%;height:100%;object-fit:cover;display:block}
.vid-play{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(transparent 55%,rgba(0,0,0,.5));transition:opacity .25s}
.vid-play svg{width:68px;height:68px;padding:20px;border-radius:50%;background:rgba(255,255,255,.94);fill:var(--negro);box-shadow:0 10px 30px rgba(0,0,0,.35);transition:transform .25s}
.vid-play:hover svg{transform:scale(1.08)}
.vid.suena .vid-play{opacity:0;pointer-events:none}
.vid figcaption{font-size:13px;color:#a6aaa4;line-height:1.45}
.vid figcaption b{display:block;color:#fff;font-size:14.5px}
.eq-vid{max-width:300px;justify-self:end;width:100%}

/* ---------- el plano de Capital con el subte ---------- */
.casco-dos{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4vw,64px);align-items:center}
.casco-plano{position:relative;border-radius:var(--r);overflow:hidden;background:#f3f4f0;touch-action:manipulation;cursor:pointer;box-shadow:inset 0 0 0 1px var(--linea)}
.casco-plano img,.casco-plano svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.c-p{fill:var(--teal);stroke:#fff;stroke-width:3;transform-box:fill-box;transform-origin:center;transition:transform .25s}
.c-p.c-alq{fill:#fff;stroke:var(--teal-t);stroke-width:4}
.c-p.c-ed{stroke:var(--tinta);stroke-width:3}
.c-p.on{transform:scale(1.6)}
.c-of{fill:var(--negro);stroke:#fff;stroke-width:4}
.c-of-aro{fill:none;stroke:var(--negro);stroke-width:3;transform-box:fill-box;transform-origin:center;animation:c-aro 2.4s ease-out infinite}
@keyframes c-aro{from{transform:scale(1);opacity:.85}to{transform:scale(3.2);opacity:0}}
.c-sel{fill:none;stroke:var(--tinta);stroke-width:3;pointer-events:none}
.c-lbl{font:600 36px var(--sans);fill:var(--tinta);paint-order:stroke;stroke:#fff;stroke-width:10px;stroke-linejoin:round;pointer-events:none}
.js .casco-plano:not(.v) .c-p,.js .casco-plano:not(.v) .c-of{opacity:0;transform:scale(0)}
.casco-plano.v .c-of{transition:opacity .3s 1.1s,transform .4s cubic-bezier(.3,1.6,.5,1) 1.1s;transform-box:fill-box;transform-origin:center}
.casco-plano.v .c-p{transition:opacity .25s var(--d),transform .35s cubic-bezier(.3,1.6,.5,1) var(--d)}
.casco-plano.v .c-p.on{transition:transform .25s}
.casco-ficha{display:grid;grid-template-columns:112px 1fr;gap:14px;align-items:center;margin-top:clamp(16px,3vh,26px);padding:8px;border-radius:var(--r-chico);background:var(--tinta);color:#fff;min-height:96px;transition:opacity .2s}
.casco-ficha img{width:112px;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.casco-ficha span{display:flex;flex-direction:column;gap:3px;min-width:0}
.casco-ficha b{font-size:18px;font-weight:700}
.casco-ficha em{font-style:normal;font-size:14px;line-height:1.3;color:#d5d9d2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.casco-ficha small{font-size:13px;color:var(--lima);font-weight:600}
.casco-ley{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:var(--gris)}
.casco-ley span{display:inline-flex;align-items:center;gap:7px}
.casco-ley i{width:11px;height:11px;border-radius:50%;display:inline-block}
.lg-v{background:var(--teal)}.lg-a{border:2.5px solid var(--teal-t)}.lg-o{background:var(--negro)}.lg-s{width:18px!important;height:3px!important;border-radius:2px!important;background:#1c1c1c}
.cerca{margin-top:18px}
.cerca p{font-size:14px;color:var(--gris);font-weight:600}
.zonas-mas{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.zonas-mas a{display:inline-flex;align-items:center;min-height:42px;font-size:14px;font-weight:600;padding:0 15px;border:1px solid var(--linea);border-radius:999px;background:#fff}
.zonas-mas a:hover{border-color:var(--tinta)}
.zonas-mas a span{color:var(--gris);font-weight:500;margin-left:5px}
.cerca .zonas-mas{margin-top:10px}

/* ---------- zonas ---------- */
.zonas{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.zona{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;color:#fff;background:var(--carbon)}
.zona img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease}
.zona:hover img{transform:scale(1.05)}
.zona::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.78))}
.zona div{position:absolute;z-index:2;left:18px;right:18px;bottom:16px}
.zona b{display:block;font-family:var(--disp);font-weight:400;font-size:34px;letter-spacing:.01em;line-height:.95}
.zona span{font-size:13px;color:#e6e9e3}
.zona small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--lima);font-weight:600;margin-bottom:2px}

/* ---------- tarjetas ---------- */
.riel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(290px,1fr);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;scrollbar-width:thin}
.riel>*{scroll-snap-align:start}
.grilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:26px 20px}
.tarjeta{display:flex;flex-direction:column;gap:12px;position:relative;transition:transform .35s ease}
.tarjeta:hover{transform:translateY(-4px)}
.t-foto{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--nube)}
.t-foto img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.tarjeta:hover .t-foto img{transform:scale(1.05)}
.t-etq{position:absolute;left:12px;top:12px;display:flex;gap:6px;flex-wrap:wrap}
.t-etq span{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:rgba(11,11,11,.82);color:#fff;padding:5px 10px;border-radius:999px}
.t-etq .alq{background:var(--lima);color:var(--negro)}
.t-ases{position:absolute;right:12px;bottom:12px;width:46px;height:46px;border-radius:50%;border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.3);overflow:hidden;background:var(--c);color:var(--negro);display:grid;place-items:center;font-size:13px;font-weight:700}
.t-ases img{width:100%;height:100%;object-fit:cover}
.t-precio{font-size:21px;font-weight:700;letter-spacing:-.01em}
.tarjeta h3{font-size:15px;font-weight:500;line-height:1.35;margin-top:2px}
.t-linea{font-size:13px;color:var(--gris);margin-top:3px}
.t-cuadras{font-size:12.5px;font-weight:600;color:var(--teal-t);margin-top:6px;display:flex;align-items:center;gap:7px}
.t-cuadras::before{content:"";width:12px;height:12px;flex:none;border-radius:50%;border:3px solid currentColor;box-sizing:border-box}

/* ---------- Market: la data mata el relato ---------- */
.mk-grilla{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.mk{background:#fff;color:var(--tinta);border-radius:var(--r);padding:20px 22px 18px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}
.mk small{font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--marino-3)}
.mk b{font-family:var(--disp);font-weight:400;font-size:clamp(48px,4.6vw,64px);line-height:.9;letter-spacing:.01em}
.mk b sub{font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:0;vertical-align:baseline;margin-left:4px;color:var(--gris)}
.mk h3{font-size:17px;font-weight:600;line-height:1.2}
.mk p{font-size:13px;color:var(--gris);line-height:1.45}
.mk .mk-bar{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;margin-top:8px;font-size:12px;color:var(--gris)}
.mk .mk-bar i{height:8px;border-radius:999px;background:var(--teal);width:var(--w)}
.mk .mk-bar i.ref{background:var(--marino-3)}
.mk a{position:absolute;inset:0}
.mk-pie{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:24px}
.mk-pie p{font-size:13px;color:#9fb6cd;max-width:70ch}

/* ---------- reseñas ---------- */
.testis-sec{background:var(--nube);padding:clamp(64px,10vh,120px) var(--gut)}
.testis-in{max-width:var(--ancho);margin:0 auto}
.testis{columns:3 300px;column-gap:20px}
.testi{break-inside:avoid;margin:0 0 20px;padding:22px 22px 20px;background:#fff;border-radius:var(--r);box-shadow:0 1px 2px rgba(20,20,15,.05),0 12px 32px -14px rgba(20,20,15,.16)}
.testi figcaption{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;margin:0 0 12px;font-size:12.5px;color:var(--gris)}
.testi figcaption img{width:50px;height:50px;border-radius:50%;object-fit:cover;grid-row:span 2}
.testi figcaption b{display:block;color:var(--tinta);font-size:15px;line-height:1.2}
.estrellas{font-style:normal;color:#f2b01e;letter-spacing:2px;font-size:13px}
.testi blockquote{font-size:15px;line-height:1.62;color:#2a2b29}
.testi.larga blockquote{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.testi.abierta blockquote{display:block}
.leer{margin-top:8px;font-size:13px;font-weight:600;text-decoration:underline;color:var(--teal-t);min-height:32px}
.t-con{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:5px 14px 5px 5px;border-radius:999px;background:var(--nube);font-size:13px;font-weight:600}
.t-con img,.t-con i{width:28px;height:28px;border-radius:50%;object-fit:cover;display:grid;place-items:center;font-style:normal;font-size:11px;background:var(--c)}
.t-con img+img{margin-left:-12px;box-shadow:0 0 0 2px var(--nube)}
.t-con:hover{background:var(--lima)}

/* ---------- sumate ---------- */
.sum-dos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center}
.sum-foto{border-radius:var(--r);overflow:hidden;aspect-ratio:1}
.sum-foto img{width:100%;height:100%;object-fit:cover}
.ofrece{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:18px 26px;margin:24px 0 26px}
.ofrece li{border-top:2px solid var(--linea-o);padding-top:12px}
.ofrece li:nth-child(1){border-color:var(--c)}.ofrece li:nth-child(2){border-color:var(--o)}.ofrece li:nth-child(3){border-color:var(--d)}.ofrece li:nth-child(4){border-color:var(--e)}
.ofrece b{display:block;font-family:var(--disp);font-weight:400;font-size:30px;line-height:1;letter-spacing:.01em}
.ofrece p{font-size:14px;line-height:1.5;color:#c3c7c0;margin-top:6px}
.nube .ofrece li{border-color:var(--linea)}.nube .ofrece p{color:var(--gris)}

/* ---------- herramientas ---------- */
.herr{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.herr-it{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px 20px 58px;border:1px solid var(--linea);border-radius:var(--r);background:#fff;transition:border-color .25s,transform .35s}
.herr-it:hover{border-color:var(--tinta);transform:translateY(-3px)}
.h-dato{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-t)}
.herr-it b{font-size:18px;line-height:1.2;font-weight:600}
.herr-it p{font-size:14px;color:var(--gris);line-height:1.5}
.h-ir{position:absolute;left:20px;bottom:18px;width:34px;height:34px;border-radius:50%;background:var(--nube);display:grid;place-items:center;transition:background .25s,color .25s}
.herr-it:hover .h-ir{background:var(--tinta);color:#fff}
.herr-grande{grid-template-columns:repeat(3,1fr)}

/* ---------- oficinas ---------- */
.ofis{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ofi{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);border-radius:var(--r);overflow:hidden;background:var(--carbon);min-height:clamp(280px,40vh,380px)}
.ofi figure{margin:10px 0 10px 10px;border-radius:var(--r-chico);overflow:hidden}
.ofi figure img{width:100%;height:100%;object-fit:cover}
.ofi div{display:flex;flex-direction:column;gap:8px;padding:clamp(18px,2.4vw,30px);justify-content:center}
.ofi small{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--lima)}
.ofi h3{font-family:var(--disp);font-weight:400;font-size:clamp(34px,3vw,44px);line-height:.95;letter-spacing:.01em}
.ofi p{font-size:14.5px;color:#c3c7c0;line-height:1.5}
.ofi .ver-mas{align-self:flex-start;margin-top:8px;font-size:14px}
.mapa{height:min(62vh,540px);border-radius:var(--r);overflow:hidden;margin-top:22px;background:var(--nube);z-index:1}
.mapa-sedes{height:340px}
.leaflet-container{font:inherit}
.leaflet-tile-pane{filter:grayscale(1) contrast(.92) brightness(1.05)}
.pin-precio{background:var(--tinta);color:#fff;font:600 12px var(--sans);padding:4px 9px;border-radius:999px;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.3);border:2px solid var(--teal);transform:translate(-50%,-50%);display:inline-block}
.pin-sede{width:20px;height:20px;border-radius:50%;background:var(--teal);border:4px solid var(--negro);box-shadow:0 0 0 6px rgba(30,180,171,.3)}
.leaflet-popup-content{margin:10px 12px;font-size:13px;line-height:1.4}
.leaflet-popup-content img{width:220px;height:140px;object-fit:cover;border-radius:8px;margin-bottom:8px}

/* ---------- catálogo ---------- */
.cat-cab{padding-top:120px;padding-bottom:26px}
.cat-cab .sec-tit{font-size:clamp(48px,6vw,84px)}
.pide{margin-top:24px;padding:24px;border-radius:22px;background:var(--negro);color:#fff;display:flex;flex-direction:column;gap:12px}
.pide .pide-tit{font-family:var(--disp);font-size:clamp(30px,3vw,40px);line-height:1;letter-spacing:.01em;color:#fff;text-transform:uppercase}
.pide-sub{margin:-4px 0 4px;color:#c9cdc6;font-size:15px}
.pide-fila{display:flex;gap:10px}
.pide-fila input{flex:1;min-width:0;height:60px;border:0;border-radius:14px;padding:0 18px;background:#fff;color:var(--tinta);font-size:16px;font-weight:500}
.pide-fila input:focus{outline:3px solid var(--teal);outline-offset:1px}
.pide-fila button{height:60px;padding:0 26px;border:0;border-radius:14px;background:var(--lima);color:var(--negro);font-weight:700;font-size:15px;cursor:pointer}
.pide-fila button:hover{background:#fff}
.pide-fila button:disabled{opacity:.6;cursor:wait}
.pide-ej{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pide-ej span{font-size:13px;color:#a6aaa4;margin-right:2px}
.pide-ej button{border:1px solid rgba(255,255,255,.24);background:transparent;color:#fff;border-radius:999px;padding:0 14px;min-height:38px;font-size:13.5px;font-weight:500;cursor:pointer}
.pide-ej button:hover{border-color:var(--lima);color:var(--lima)}
.pide-lee{font-size:14px;color:#e6e9e3;margin:0}.pide-lee b{color:#fff}.pide-lee a{color:var(--lima);font-weight:600}
.filtros{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}
.filtros .chips{flex-wrap:nowrap}
.filtros>.campo select{height:42px;border-radius:999px;padding:0 34px 0 16px;font-size:14px;font-weight:600}
.filtros label.chk-n{display:inline-flex;gap:8px;align-items:center;height:42px;padding:0 16px;border:1px solid var(--linea);border-radius:999px;background:#fff;font-size:14px;font-weight:600;cursor:pointer;flex:none}
.mas-f{display:inline-flex;align-items:center}
.mas-panel{display:none;width:100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end;padding:18px;border:1px solid var(--linea);border-radius:var(--r);background:#fff}
.filtros.abierto .mas-panel{display:grid}
.mas-panel label.chk{display:inline-flex;gap:8px;align-items:center;font-size:14px;font-weight:600;padding:10px 14px;border:1px solid var(--linea);border-radius:999px;cursor:pointer;justify-self:start}
.mas-panel input[type=checkbox],.filtros input[type=checkbox]{accent-color:var(--teal-t);width:18px;height:18px}
.cat-barra{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:22px 0 18px;flex-wrap:wrap}
.cat-barra .cuenta{font-weight:700}
.cat-barra .cuenta span{color:var(--gris);font-weight:500}
.cat-barra .orden{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--gris);margin-left:auto}
.cat-barra .orden select{height:40px;border:1px solid var(--linea);border-radius:999px;padding:0 12px;background:#fff;font-weight:600;color:var(--tinta)}
.vista{display:flex;background:var(--nube);border-radius:999px;padding:4px}
.vista button{padding:0 16px;min-height:38px;border-radius:999px;font-weight:600;font-size:14px}
.vista button.on{background:var(--tinta);color:#fff}
.paginas{display:flex;justify-content:center;gap:8px;margin-top:40px;flex-wrap:wrap}
.paginas button{min-width:44px;height:44px;border:1px solid var(--linea);border-radius:12px;font-weight:600;background:#fff}
.paginas button.on{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.vacio{padding:40px 0;font-size:17px}
.vacio a{text-decoration:underline;font-weight:600}

/* ---------- ficha ---------- */
.ficha{max-width:var(--ancho);margin:0 auto;padding:108px var(--gut) 40px}
.migas{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--gris);margin-bottom:16px}
.migas a:hover{color:var(--tinta);text-decoration:underline}
.ficha h1{font-size:clamp(26px,3.2vw,40px);font-weight:700;letter-spacing:-.02em;line-height:1.12}
.f-lugar{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:15px;font-weight:500}
.galeria{display:grid;gap:8px;margin-top:24px;border-radius:var(--r);overflow:hidden;position:relative;height:min(62vh,560px)}
.galeria.n1{grid-template-columns:1fr}
.galeria.n2{grid-template-columns:1fr 1fr}
.galeria.n3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}
.galeria.n3 .g-it:first-child{grid-row:span 2}
.galeria.n4,.galeria.n5{grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr}
.galeria.n4 .g-it:first-child,.galeria.n5 .g-it:first-child{grid-row:span 2}
.galeria.n4 .g-it:nth-child(4){grid-column:span 2}
.g-it{position:relative;overflow:hidden;background:var(--nube)}
.g-it img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.g-it:hover img{transform:scale(1.04)}
.g-mas{position:absolute;right:14px;bottom:14px;background:#fff;color:var(--tinta);font-weight:600;font-size:14px;padding:10px 16px;border-radius:999px;pointer-events:none;box-shadow:0 6px 18px rgba(0,0,0,.2)}
.f-precio{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:24px 0;border-bottom:1px solid var(--linea)}
.precio{font-size:clamp(30px,3.4vw,42px);font-weight:700;letter-spacing:-.02em;line-height:1}
.precio-b{display:flex;gap:14px;flex-wrap:wrap;font-size:14px;color:var(--gris);margin-top:8px}
.f-acc{display:flex;gap:10px;flex-wrap:wrap}
.btn-ic{width:48px;padding:0}
.f-datos{list-style:none;display:flex;flex-wrap:wrap;gap:14px 34px;padding:22px 0;border-bottom:1px solid var(--linea)}
.f-datos li{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500}
.f-datos li .ic{color:var(--teal-t)}
.f-cuerpo{display:grid;grid-template-columns:1fr 380px;gap:clamp(28px,5vw,64px);padding-top:32px;align-items:start}
.f-cuerpo h2{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:700;margin-bottom:14px}
.f-cuerpo h2 .ic{color:var(--teal-t)}
.f-desc p{margin-bottom:12px;color:#333532}
.f-desc .legal{font-size:12px;color:var(--gris)}
.desc-txt.corta{max-height:15em;overflow:hidden;-webkit-mask:linear-gradient(#000 60%,transparent);mask:linear-gradient(#000 60%,transparent)}
.f-desc .ver-todas{margin:14px 0 0}
.f-izq>section{margin-bottom:40px}
.f-der{position:sticky;top:90px;display:flex;flex-direction:column;gap:16px}
.f-ases{border:1px solid var(--linea);border-radius:var(--r);padding:22px;background:#fff}
.f-ases .quien{display:flex;gap:14px;align-items:center}
.f-ases .quien img,.f-ases .quien .mono{width:74px;height:74px;border-radius:50%;object-fit:cover;flex:none}
.mono{display:grid;place-items:center;font-size:22px;font-weight:700;color:var(--negro);background:var(--c)}
.f-ases small{display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-t)}
.f-ases b{font-size:18px;font-weight:700;display:block;line-height:1.2}
.f-ases a.perfil{font-size:13px;text-decoration:underline;color:var(--gris)}
.f-ases .btn{width:100%;margin-top:16px}
.f-ases .f-cita{font-size:13px;color:var(--gris);margin-top:14px;padding-top:12px;border-top:1px solid var(--linea)}
.f-c{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--linea);border-radius:var(--r-chico);background:#fff;transition:border-color .2s}
.f-c:hover{border-color:var(--tinta)}
.f-c b{font-size:15px;font-weight:600}
.f-c span{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--gris)}
.f-cuentas{display:grid;gap:10px}
.f-comp .barras{display:grid;gap:12px}
.barra-f{display:grid;grid-template-columns:150px 1fr auto;gap:12px;align-items:center;font-size:14px}
.barra-f i{height:10px;border-radius:999px;background:var(--tinta);width:var(--w)}
.barra-f.ref i{background:var(--teal)}
.f-cuadras{padding:18px 20px;border-radius:var(--r);background:var(--nube)}
.f-cuad-grid{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 4px}
.f-cuad-grid li{display:flex;flex-direction:column;gap:2px;padding:12px 10px;border-radius:12px;background:#fff;text-align:center}
.f-cuad-grid b{font-family:var(--disp);font-weight:400;font-size:40px;line-height:.9;color:var(--teal-t)}
.f-cuad-grid span{font-size:12.5px;line-height:1.3;color:var(--gris)}
.mapa-f{height:300px;border-radius:var(--r-chico)}
.otras{padding-inline:0}
.visor{position:fixed;inset:0;z-index:90;background:rgba(8,8,8,.96);display:flex;align-items:center;justify-content:center}
.visor img{max-width:92vw;max-height:84vh;object-fit:contain;border-radius:8px}
.visor button{position:absolute;color:#fff;font-size:40px;width:56px;height:56px}
.v-x{top:14px;right:14px}.v-a{left:10px;top:50%;transform:translateY(-50%)}.v-s{right:10px;top:50%;transform:translateY(-50%)}
.v-n{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#bbb;font-size:14px}

/* ---------- herramientas ---------- */
.herr-pag{padding-top:120px;max-width:980px}
.herr-form{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:30px;padding:clamp(20px,3vw,34px);border:1px solid var(--linea);border-radius:22px;background:#fff}
.herr-form>.chips,.herr-form>.resultado,.herr-form>.nota,.herr-form>.desglose,.herr-form>.check-prog,.herr-form>ul,.herr-form>div.campo,.herr-form>details{grid-column:1/-1}
.resultado{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:var(--r);background:var(--marino-2);color:#fff}
.resultado span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--e)}
.resultado b{font-family:var(--disp);font-weight:400;font-size:clamp(40px,4vw,56px);letter-spacing:.01em;line-height:.95}
.resultado small{color:#c7d6e6;font-size:13px}
.resultado .btn{align-self:flex-start;margin-top:12px}
.resultado .btn span{color:inherit;font-size:inherit;letter-spacing:0;text-transform:none}
.r-grande{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.r-grande>div{display:flex;flex-direction:column;gap:6px}
b.cambio{animation:cambio .5s ease}
@keyframes cambio{0%{opacity:.35;transform:translateY(4px)}100%{opacity:1;transform:none}}
.desglose{list-style:none;border-top:1px solid var(--linea)}
.desglose li{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--linea);font-size:15px}
.desglose li.total{font-weight:700;font-size:17px}
.desglose b{white-space:nowrap}
.tabla-w{overflow-x:auto;margin-top:28px}
.tabla{width:100%;border-collapse:collapse;font-size:14px}
.tabla th,.tabla td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--linea);white-space:nowrap}
.tabla th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris)}
.ranking-m2{list-style:none;display:grid;gap:10px;margin-top:18px}
.ranking-m2 li{display:grid;grid-template-columns:170px 1fr 110px;gap:14px;align-items:center;font-size:14px}
.ranking-m2 i{height:10px;border-radius:999px;background:var(--teal);width:var(--w)}
.ranking-ext i{background:var(--marino-3)}
.ranking-m2 small{color:var(--gris);grid-column:2/-1;margin-top:-6px}
.sub-tit{font-size:21px;font-weight:700;margin-top:44px}
.check ul{list-style:none;display:grid;gap:4px}
.check li label{display:flex;gap:14px;padding:14px 4px;border-bottom:1px solid var(--linea);cursor:pointer}
.check li input{width:20px;height:20px;accent-color:var(--teal-t);flex:none;margin-top:3px}
.check li b{display:block;font-weight:600}
.check li span{font-size:14px;color:var(--gris)}
.check-prog{font-size:15px}
.herr-otras{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:40px;font-size:14px;font-weight:600}
.herr-otras b{width:100%;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.herr-otras a{display:inline-flex;align-items:center;gap:6px;min-height:36px}
details.fuentes{margin-top:4px}
details.fuentes summary{cursor:pointer;font-size:14px;font-weight:600;text-decoration:underline;color:var(--tinta);min-height:32px}
details.fuentes .nota{margin-top:10px}

/* ---------- páginas de texto ---------- */
.pag-hero{padding-top:130px}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center}
.foto-r{border-radius:var(--r);overflow:hidden}
.foto-r img{width:100%;height:100%;object-fit:cover}
.pasos{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:10px}
.pasos li{border-top:2px solid var(--linea);padding-top:16px}
.pasos li:nth-child(1){border-color:var(--c)}.pasos li:nth-child(2){border-color:var(--o)}.pasos li:nth-child(3){border-color:var(--d)}.pasos li:nth-child(4){border-color:var(--e)}
.pasos span{font-family:var(--disp);font-size:30px;line-height:1;color:var(--tinta)}
.pasos b{display:block;font-size:18px;font-weight:600;margin:6px 0 6px}
.pasos p{font-size:14px;color:var(--gris)}
.staff{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:26px}
.staff figure{margin:0;display:flex;flex-direction:column;gap:8px}
.staff img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;background:var(--carbon)}
.staff b{font-size:14.5px;line-height:1.25}
.staff span{font-size:12.5px;color:#a6aaa4;line-height:1.3}
.nube .staff span,.p-nosotros .staff span{color:var(--gris)}
.cita-g{font-family:var(--disp);font-weight:400;font-size:clamp(40px,4.6vw,64px);line-height:.95;letter-spacing:.01em;text-transform:uppercase;max-width:20ch}
.cita-g+p{margin-top:14px;font-size:14px;color:var(--gris)}
.sobre-osc .cita-g+p{color:#a6aaa4}
.hitos{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px}
.hitos li{border-top:1px solid var(--linea-o);padding-top:14px}
.hitos b{display:block;font-family:var(--disp);font-weight:400;font-size:34px;line-height:1;color:var(--lima)}
.hitos p{font-size:14px;color:#c3c7c0;margin-top:6px}
.tira{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}
.tira figure{margin:0;border-radius:var(--r);overflow:hidden;position:relative;aspect-ratio:4/5}
.tira img{width:100%;height:100%;object-fit:cover}
.tira figcaption{position:absolute;left:0;right:0;bottom:0;padding:50px 14px 12px;font-size:13px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.85))}
.equipo{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:24px 16px}
.ases{display:flex;flex-direction:column;gap:8px}
.ases figure{aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--nube);position:relative;margin:0 auto;width:100%;max-width:150px}
.ases figure img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.ases:hover figure img{transform:scale(1.05)}
.ases .mono{position:absolute;inset:0;font-size:34px}
.ases .k1{background:var(--o);color:#fff}.ases .k2{background:var(--d)}.ases .k3{background:var(--e)}
.ases b{font-size:15px;font-weight:600;line-height:1.25;text-align:center}
.ases span{font-size:13px;color:var(--gris);text-align:center}
.ases-hero{display:grid;grid-template-columns:300px 1fr;gap:clamp(28px,5vw,64px);align-items:center;padding-top:130px}
.ases-hero .migas{grid-column:1/-1;margin:0}
.ases-hero figure{margin:0;aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--nube);position:relative;max-width:300px}
.ases-hero figure img{width:100%;height:100%;object-fit:cover}
.ases-hero .mono{position:absolute;inset:0;font-size:84px}
.ases-hero h1{font-family:var(--disp);font-weight:400;font-size:clamp(56px,7vw,100px);letter-spacing:.01em;line-height:.9;text-transform:uppercase}
.ases-hero .puesto{display:block;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-t);margin-bottom:10px}
.botones{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}

/* ---------- cierre y pie ---------- */
.cierre{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;padding:clamp(80px,14vh,140px) var(--gut)}
.cierre .caras{display:flex;margin-bottom:18px}
.cierre .caras img{width:58px;height:58px;border-radius:50%;object-fit:cover;border:3px solid var(--negro);margin-left:-12px}
.cierre .caras img:first-child{margin-left:0}
.cierre .botones{justify-content:center;margin-top:26px}
.pie{background:var(--negro);color:#c3c7c0;padding:64px var(--gut) 28px;display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px;border-top:1px solid var(--linea-o)}
.pie-a{display:flex;flex-direction:column;gap:14px}
.pie-a .marca{color:#fff}
.pie-a p{font-size:13px;max-width:36ch}
.pie-col{display:flex;flex-direction:column;gap:6px;font-size:14px}
.pie-col b{color:#fff;font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:4px}
.pie-col a{min-height:30px;display:flex;align-items:center}
.pie-col a:hover{color:var(--lima)}
.pie-b{grid-column:1/-1;font-size:12px;color:#858a84;border-top:1px solid var(--linea-o);padding-top:22px;line-height:1.6}

/* ---------- entrada por sección ---------- */
.js .rev{opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease}
.js .rev.v{opacity:1;transform:none}
.js .rev-t{clip-path:inset(0 0 100% 0);transition:clip-path .55s cubic-bezier(.2,.7,.2,1)}
.js .rev-t.v{clip-path:inset(-10% 0 -10% 0)}
@media (prefers-reduced-motion:reduce){.js .rev,.js .rev-t{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}.hero-fotos img{animation:none}.c-of-aro{animation:none}}

/* ---------- la entrada de la home: ZIP y después C, O, D, E, cada una con su color (una vez por pestaña) ---------- */
.intro{display:none}
@media (prefers-reduced-motion:no-preference){
  html:not(.sin-intro) .intro{display:flex;position:fixed;inset:0;z-index:200;background:var(--negro);align-items:center;justify-content:center;pointer-events:none;animation:intro-sube .7s cubic-bezier(.76,0,.24,1) 1.35s both}
  .intro svg{width:min(62vw,320px);height:auto;overflow:visible}
  .intro .zip{fill:#fff;clip-path:inset(0 100% 0 0);animation:intro-abre .45s cubic-bezier(.65,0,.35,1) .1s forwards}
  .intro .l{opacity:0;transform:translateY(-34px);animation:intro-cae .42s cubic-bezier(.3,1.5,.5,1) forwards}
  .intro .lc{fill:var(--c);animation-delay:.45s}.intro .lo{fill:var(--o);animation-delay:.56s}.intro .ld{fill:var(--d);animation-delay:.67s}.intro .le{fill:var(--e);animation-delay:.78s}
  .intro p{position:absolute;left:0;right:0;bottom:calc(50% - 74px);text-align:center;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:#bfc3bc;opacity:0;animation:intro-op .4s ease .95s forwards}
  html:not(.sin-intro) .p-index .hero-fotos{animation:intro-zoom 2.6s cubic-bezier(.2,.7,.2,1) 1.35s backwards}
  html:not(.sin-intro) .p-index .cab{animation:intro-baja .7s ease 1.8s backwards}
  html:not(.sin-intro) .p-index .hero h1{animation:intro-aparece .8s cubic-bezier(.2,.7,.2,1) 1.6s backwards}
  html:not(.sin-intro) .p-index .hero .firma{animation:intro-aparece .7s ease 1.85s backwards}
  html:not(.sin-intro) .p-index .hero .lead{animation:intro-aparece .7s ease 1.95s backwards}
  html:not(.sin-intro) .p-index .hero .busca{animation:intro-aparece .7s ease 2.05s backwards}
}
@keyframes intro-abre{to{clip-path:inset(0 0 0 0)}}
@keyframes intro-cae{to{opacity:1;transform:none}}
@keyframes intro-op{to{opacity:1}}
@keyframes intro-sube{to{transform:translateY(-100%);visibility:hidden}}
@keyframes intro-zoom{from{transform:scale(1.14)}to{transform:none}}
@keyframes intro-baja{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes intro-aparece{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ---------- tablet ---------- */
@media (max-width:1100px){
  .herr{grid-template-columns:repeat(3,1fr)}
  .mk-grilla{grid-template-columns:repeat(2,minmax(0,1fr))}
  .staff{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  .eq-sec{grid-template-columns:minmax(0,1fr);grid-template-areas:"txt" "muro" "vid" "pie"}
  .eq-sec .eq-vid{grid-template-columns:110px 1fr;align-items:center}
  .nav,.cab-wa{display:none}
  .menu-btn{display:block}
  .zonas{grid-template-columns:repeat(2,1fr)}
  .cifras{grid-template-columns:repeat(2,1fr)}
  .pasos,.hitos{grid-template-columns:1fr 1fr}
  .dos,.sum-dos,.eq-dos,.casco-dos{grid-template-columns:1fr}
  .f-cuerpo{grid-template-columns:1fr}
  .f-der{position:static;order:-1}
  .pie{grid-template-columns:1fr 1fr}
  .pie-a{grid-column:1/-1}
  .ases-hero{grid-template-columns:1fr;align-items:start}
  .ases-hero figure{max-width:220px}
  .ofis{grid-template-columns:1fr}
  .eq-vid{justify-self:center;max-width:260px}
  .casco-plano{width:min(100%,64vh);margin:0 auto}
}

/* ---------- celular (393 px): cada sección, una pantalla ---------- */
@media (max-width:640px){
  body{font-size:15px}
  .marca small{display:none}
  .hero{min-height:auto;flex-direction:column;align-items:stretch}
  .hero-fotos{position:relative;height:58svh}
  .hero-fotos img{object-position:50% 50%}
  .hero::after{background:linear-gradient(180deg,rgba(11,11,11,.55) 0,rgba(11,11,11,0) 96px,rgba(11,11,11,0) 30svh,var(--negro) 58svh)}
  .hero-txt{margin-top:-25svh;padding-top:0;padding-bottom:34px;text-align:center}
  .hero h1{font-size:clamp(46px,13vw,60px);margin-inline:auto;max-width:none}
  .hero .firma{justify-content:center;font-size:11.5px}
  .hero .lead{margin-inline:auto;font-size:15px}
  .hero-ficha{display:none}
  .busca{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:10px;gap:8px;text-align:left}
  .busca select{width:100%}
  .busca .op{grid-column:1/-1;margin:0}
  .busca .op button{flex:1}
  .busca label{border:1px solid var(--linea);border-radius:12px;padding:8px 12px}
  .busca .btn{grid-column:1/-1}
  .sec{padding-block:48px}
  body:has(.hero) section.sec:not(.sec-cifras),.testis-sec,.cierre{min-height:100svh;display:flex;flex-direction:column;justify-content:center}
  .sec-cab{flex-direction:column;align-items:center;text-align:center;justify-content:center;margin-bottom:24px}
  .sec-cab>div{width:100%}
  .sec-cab .lead{margin-inline:auto}
  section.sec>*,.testis-sec>*{width:100%;min-width:0}
  .sec-tit{font-size:clamp(46px,13vw,60px)}
  .cifras{text-align:center}
  .cifras::before{left:50%;transform:translateX(-50%)}
  .cifras div{padding:22px 8px 4px}
  .cifras span{margin-inline:auto}
  .zonas{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:64%;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut) * -1);padding:0 var(--gut) 8px;scroll-padding-inline:var(--gut);scrollbar-width:none}
  .zonas::-webkit-scrollbar{display:none}
  .zona{scroll-snap-align:start;aspect-ratio:4/5}
  .zonas-mas{justify-content:center}
  .riel{grid-auto-columns:82%;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scroll-padding-inline:var(--gut);scrollbar-width:none}
  .riel::-webkit-scrollbar{display:none}
  .grilla{grid-template-columns:1fr}
  .muro{grid-template-columns:none;grid-template-rows:repeat(3,58px);grid-auto-flow:column;grid-auto-columns:58px;overflow-x:auto;margin-inline:calc(var(--gut) * -1);padding:4px var(--gut) 10px;scrollbar-width:none}
  .muro::-webkit-scrollbar{display:none}
  .muro-pie{justify-content:center;text-align:center;margin-top:12px}
  .eq-txt{text-align:center}
  body:has(.hero) section.eq-sec{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"txt" "muro" "vid" "pie";align-content:center;gap:14px}
  .eq-sec .sec-cab{margin-bottom:0}
  .eq-sec .eq-vid{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:center;max-width:none;width:100%;padding:8px;border-radius:var(--r-chico);background:#161716;justify-self:stretch}
  .eq-sec .eq-vid .vid-marco{width:84px;border-radius:10px}
  .eq-sec .eq-vid .vid-play svg{width:38px;height:38px;padding:11px}
  .eq-sec .eq-vid figcaption{font-size:12.5px}
  .eq-sec .eq-vid.suena{grid-template-columns:1fr}
  .eq-sec .eq-vid.suena .vid-marco{width:min(100%,300px);margin:0 auto}
  .eq-sec .muro-pie{flex-direction:column;gap:6px}
  .casco-txt{display:contents}
  .casco-txt .sec-cab{order:-1;margin-bottom:6px}
  .casco-dos{gap:12px}
  .casco-plano{width:100%}
  .casco-ficha{margin-top:0;grid-template-columns:92px 1fr;min-height:80px}
  .casco-ficha img{width:92px}
  .casco-ficha b{font-size:16px}
  .casco-ley{justify-content:center;margin-top:0;gap:12px;font-size:12px}
  .cerca p{text-align:center;font-size:13px}
  .cerca .zonas-mas{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);justify-content:flex-start}
  .cerca .zonas-mas a{flex:none}
  .mk-grilla{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut) * -1);padding:0 var(--gut) 8px;scroll-padding-inline:var(--gut);scrollbar-width:none}
  .mk-grilla::-webkit-scrollbar{display:none}
  .mk{scroll-snap-align:start}
  .mk-pie{justify-content:center;text-align:center}
  .testis-sec{padding-block:56px}
  .testis{columns:auto;display:grid;grid-auto-flow:column;grid-auto-columns:86%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px var(--gut) 18px;margin:0 calc(var(--gut) * -1);scrollbar-width:none}
  .testis::-webkit-scrollbar{display:none}
  .testi{scroll-snap-align:center;margin:0;align-self:start}
  .sum-foto{aspect-ratio:16/10}
  .sum-dos{text-align:center;gap:20px}
  .ofrece{grid-template-columns:1fr 1fr;gap:14px;text-align:left;margin:18px 0 20px}
  .ofrece b{font-size:26px}
  .ofrece p{font-size:13px}
  .sum-dos .botones{justify-content:center}
  .herr{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:80%;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--gut) * -1);padding:4px var(--gut) 14px;scroll-padding-inline:var(--gut);scrollbar-width:none}
  .herr::-webkit-scrollbar{display:none}
  .herr-it{scroll-snap-align:start;padding-bottom:22px;padding-right:60px}
  .h-ir{left:auto;right:18px;top:50%;transform:translateY(-50%);bottom:auto}
  .herr-grande{grid-auto-flow:row;grid-template-columns:1fr;overflow:visible;margin:0;padding:0}
  .ofis{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:86%;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scroll-padding-inline:var(--gut);scrollbar-width:none}
  .ofis::-webkit-scrollbar{display:none}
  .ofi{scroll-snap-align:start;grid-template-columns:1fr;grid-template-rows:auto 1fr;min-height:0}
  .ofi figure{margin:8px 8px 0;aspect-ratio:16/10}
  .ofi div{padding:16px 18px 20px;gap:6px}
  .mapa-sedes{height:30vh;min-height:200px}
  .filtros{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
  .filtros::-webkit-scrollbar{display:none}
  .filtros>*{flex:none}
  .filtros.abierto{flex-wrap:wrap}
  .mas-panel{grid-template-columns:1fr 1fr}
  .cat-barra .orden span{display:none}
  .cat-cab{padding-top:96px}
  .cat-cab .sec-tit{text-align:center}
  .cat-cab .pide-sub{display:none}
  .pide{padding:18px;gap:8px}
  .pide-fila input{height:52px}
  .pide-fila button{height:52px;padding:0 16px}
  .pide-ej{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-4px}
  .pide-ej::-webkit-scrollbar{display:none}
  .pide-ej button,.pide-ej span{flex:none;white-space:nowrap}
  .galeria{height:auto;grid-template-columns:1fr!important;grid-template-rows:none!important}
  .galeria .g-it{display:none;aspect-ratio:4/3}
  .galeria .g-it:first-child{display:block;grid-row:auto!important}
  .herr-form{grid-template-columns:1fr}
  .r-grande{grid-template-columns:1fr}
  .ranking-m2 li{grid-template-columns:110px 1fr 84px;font-size:13px}
  .barra-f{grid-template-columns:110px 1fr auto;font-size:13px}
  .pie{grid-template-columns:1fr}
  .cierre{padding-block:64px}
  .cierre .botones .btn{width:100%}
  .f-acc{width:100%}
  .f-acc .btn-wa{flex:1}
  .p-index .cab::before{content:"";position:absolute;inset:0 0 -30px;background:linear-gradient(rgba(0,0,0,.55),transparent);z-index:-1;pointer-events:none}
  .p-index .cab.compacta::before{display:none}
  .pag-hero{padding-top:108px}
  .pag-hero>.sec-tit,.pag-hero>.lead,.pag-hero .dos>div{text-align:center;margin-inline:auto}
  .pag-hero .botones{justify-content:center}
  .equipo{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 10px}
  .ases b{font-size:13.5px}
  .ases span{font-size:12px}
  .ases-hero{padding-top:100px;gap:18px;text-align:center;justify-items:center}
  .ases-hero .botones{justify-content:center}
  .staff{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px}
  .hitos{grid-template-columns:1fr 1fr}
  .tira{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:72%;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scrollbar-width:none}
  .tira figure{scroll-snap-align:start}
  .tabla th,.tabla td{padding:9px 6px;font-size:13px;white-space:normal}
  .pasos{grid-template-columns:1fr}
}
@media (max-width:640px) and (max-height:700px){
  .hero-fotos{height:50svh}
  .hero-txt{margin-top:-20svh}
  .hero h1{font-size:clamp(44px,12.5vw,56px)}
  .busca{margin-top:16px}
  .muro{grid-template-rows:repeat(3,50px);grid-auto-columns:50px}
}

/* ---------- crítica v1 (20-oct): sin rótulos en mayúsculas espaciadas, zonas táctiles de 44 px, contraste, lo nuevo ---------- */
.zona small,.mk small,.f-ases small,.resultado span,.h-dato,.pie-col b,.herr-otras b,.ases-hero .puesto,.ofi small,.busca label,.e-n,.t-etq span,.tabla th{text-transform:none;letter-spacing:0}
.zona small{font-size:12.5px;font-weight:600}
.mk small{font-size:13px;font-weight:600}
.f-ases small{font-size:13px;font-weight:600}
.resultado span{font-size:13px;color:var(--e)}
.h-dato{font-size:12.5px;font-weight:600}
.pie-col b{font-size:14px;letter-spacing:0;color:#fff}
.herr-otras b{font-size:14px}
.ases-hero .puesto{font-size:14px}
.ofi small{font-size:13px}
.busca label{font-size:12px;font-weight:600}
.t-etq span{font-size:12px;font-weight:600;letter-spacing:0}
.ver-mas{min-height:44px}
.zonas-mas a{min-height:44px}
.pie-col a{min-height:36px}
.f-datos{gap:8px}
.f-datos li{padding:8px 14px;border-radius:999px;background:var(--nube);font-size:14px;font-weight:500}
.f-otro{margin-top:14px;padding:12px 16px;border-radius:var(--r-chico);background:#fff7d6;font-size:14px;color:#5a4a00}
.f-fin{padding:18px 20px 16px;border-radius:var(--r);background:var(--nube);margin-bottom:26px}
.f-fin p b{font-size:18px}
.f-fin .nota{margin-top:6px}
.f-fin .nota a{font-weight:600;text-decoration:underline}
.riel-ed{grid-auto-columns:minmax(300px,1fr)}
.edif{display:flex;flex-direction:column;gap:12px;scroll-snap-align:start}
.edif .t-foto img{transition:transform .7s}
.edif:hover .t-foto img{transform:scale(1.04)}
.e-ases{position:absolute;right:10px;bottom:10px;width:46px!important;height:46px!important;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px #fff}
.e-n{font-size:13px;font-weight:600;color:var(--teal-t)}
.edif h3{font-size:20px;font-weight:700;line-height:1.2;margin:2px 0 4px}
.e-fin{font-size:14px;font-weight:600;line-height:1.35;margin-top:6px;padding-left:12px;border-left:3px solid var(--lima)}
.eq-busca{display:flex;flex-direction:column;gap:6px;margin-top:24px;max-width:420px;font-size:13px;font-weight:600;color:var(--gris)}
.eq-busca input{height:48px;border:1px solid var(--linea);border-radius:999px;padding:0 18px;font-size:16px;color:var(--tinta);background:#fff}
.pag-hero .ofrece p,.nube .ofrece p{color:var(--gris)}
.pag-hero .ofrece li{border-color:var(--linea)}
.pag-hero .ofrece li:nth-child(1){border-color:var(--c)}.pag-hero .ofrece li:nth-child(2){border-color:var(--o)}.pag-hero .ofrece li:nth-child(3){border-color:var(--d)}.pag-hero .ofrece li:nth-child(4){border-color:var(--e)}
.testi figcaption{font-size:13.5px}
.t-con{font-size:13.5px}
.mk-pie p,.marino .nota{color:#b9cde0}
.cifras span{color:#c3c7c0}
.hero::after{background:linear-gradient(180deg,rgba(11,11,11,.45) 0%,rgba(11,11,11,0) 26%,rgba(11,11,11,.12) 52%,rgba(11,11,11,.82) 100%)}
.pin-punto{width:14px;height:14px;border-radius:50%;background:var(--teal);border:2.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);transform:translate(-50%,-50%);display:block}
.pin-sede-t{font:600 12.5px var(--sans);background:var(--tinta);color:#fff;border:0;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.pin-sede-t::before{border-top-color:var(--tinta)!important}
.cero{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cero span{font-size:14px;color:var(--gris)}
.cero button{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--tinta);font-weight:600;font-size:14px;background:#fff}
.cero button:hover{background:var(--tinta);color:#fff}
.ases-props .riel{margin-top:6px}
@media (max-width:640px){
  .riel-ed{grid-auto-columns:82%;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scroll-padding-inline:var(--gut);scrollbar-width:none}
  .hero::after{background:linear-gradient(180deg,rgba(11,11,11,.5) 0,rgba(11,11,11,0) 96px,rgba(11,11,11,0) 32svh,var(--negro) 58svh)}
  .eq-busca{margin-inline:auto}
}
@media (max-width:640px) and (max-height:740px){
  .hero-fotos{height:44svh}
  .hero-txt{margin-top:-17svh;padding-bottom:22px}
  .hero h1{font-size:clamp(40px,11.5vw,50px)}
  .hero .firma{margin-top:10px}
  .hero .lead{margin-top:8px;font-size:14px;line-height:1.45}
  .busca{margin-top:12px;padding:8px;gap:6px}
  .busca .op button{min-height:40px}
  .busca label{padding:5px 10px}
  .busca .btn{min-height:46px}
}
@media (max-width:640px){
  .p-equipo .equipo{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 8px}
  .p-equipo .ases figure{max-width:72px}
  .p-equipo .ases b{font-size:12px;min-height:0}
  .p-equipo .ases span{font-size:11px}
  .p-equipo .ases .mono{font-size:20px}
}
/* crítica v2 */
.hero .firma{text-transform:none;letter-spacing:.01em;font-size:14px;font-weight:600}
.ases-hero figure:has(.mono){max-width:150px}
.ases-hero .mono{font-size:46px}
.eq-vacio{margin-top:20px;font-size:15px;color:var(--gris)}
@media (max-width:640px){
  .filtros,.cerca .zonas-mas,.pide-ej,.zonas-mas{-webkit-mask:linear-gradient(90deg,#000 88%,transparent);mask:linear-gradient(90deg,#000 88%,transparent)}
  .zonas-mas{-webkit-mask:none;mask:none}
  .cierre{min-height:72svh!important}
  .ases-hero figure:has(.mono){width:120px;max-width:120px}
  .ases-hero .mono{font-size:38px}
  .hero .firma{font-size:13px}
}
@media (max-width:640px){.cierre{min-height:0!important;padding-block:72px}}
