/* Guadrón Realtor · Oficinas corporativas (mini sitio /oficinas/)
   Plantilla compartida por el índice de torres, la página de torre y la de local.
   Tokens = los de apps/listado/index.html (docs/10-branding.md). */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#006AFF;--blue-dark:#0051CC;--blue-deep:#12229D;--blue-light:#EFF5FF;--accent:#60A5FA;
  --dark:#0F172A;--ink:#0B1220;--gray:#6B7280;--border:#E5E7EB;--white:#fff;--bg:#F8FAFC;
  --ok:#059669;--warn:#D97706;--bad:#DC2626;--wa:#25D366;
  --heading:'Montserrat',system-ui,sans-serif;--body:'Inter',system-ui,sans-serif;
  --r:18px;--shadow:0 18px 50px rgba(15,23,42,.10);
}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--dark);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.55}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
.gr-skip{position:absolute;left:-9999px;background:var(--blue);color:#fff;padding:.6rem 1rem;border-radius:8px;z-index:1000;font-family:var(--heading);font-weight:700;text-decoration:none}
.gr-skip:focus{left:1rem;top:1rem}

/* ─── NAV ─── */
.nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:0 clamp(16px,3vw,2rem);height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.nav-logo img{height:30px;width:auto}
.nav-right{display:flex;align-items:center;gap:clamp(10px,2vw,24px)}
.nav-link{font-family:var(--heading);font-weight:600;font-size:.9rem;text-decoration:none;color:var(--dark)}
.nav-link:hover,.nav-link[aria-current]{color:var(--blue)}
.nav-cta{font-family:var(--heading);font-weight:700;font-size:.86rem;text-decoration:none;background:var(--blue);color:#fff;padding:.6rem 1rem;border-radius:10px}
@media(max-width:640px){.nav-link.hide-sm{display:none}}

.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(16px,3vw,24px)}
.k{font-family:var(--heading);font-weight:700;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:12px}
.k::before{content:"";width:30px;height:2px;background:currentColor}
.h2{font-family:var(--heading);font-weight:800;font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1.1;letter-spacing:-.02em;margin:.5rem 0 .6rem}
.lead{color:var(--gray);font-size:1.05rem;max-width:680px}
.sec{padding:clamp(48px,6vw,84px) 0}
.sec.alt{background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}

/* ─── HERO (oscuro, coherente con "Proyectos nuevos") ─── */
.of-hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(1100px 480px at 82% -12%,rgba(0,106,255,.3),transparent),linear-gradient(160deg,#0B1220 0%,#0F172A 58%,#12229D 165%);padding:clamp(56px,7vw,96px) 0 clamp(48px,6vw,80px)}
.of-hero .k{color:var(--accent)}
.of-hero h1{font-family:var(--heading);font-weight:800;font-size:clamp(2rem,5vw,3.5rem);line-height:1.04;letter-spacing:-.02em;margin:.7rem 0 1rem;max-width:880px}
.of-hero h1 span{color:var(--accent)}
.of-hero p{color:rgba(255,255,255,.74);font-size:1.06rem;max-width:640px}
/* Ficha del local: encabezado compacto para que la galería gane altura. */
.of-hero.lh{padding-top:clamp(28px,3.6vw,48px)}
.of-hero.lh h1{font-size:clamp(1.7rem,3.4vw,2.6rem);margin:.45rem 0 .5rem}
.of-hero.lh .gal{margin-top:1.2rem}
.of-stats{display:flex;gap:clamp(18px,4vw,44px);flex-wrap:wrap;margin-top:2rem}
.of-stats b{display:block;font-family:var(--heading);font-weight:800;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1}
.of-stats span{font-size:.85rem;color:rgba(255,255,255,.62)}
.crumbs{font-size:.85rem;color:rgba(255,255,255,.6);margin-bottom:.4rem}
.crumbs a{color:rgba(255,255,255,.8);text-decoration:none}
.crumbs a:hover{color:#fff}
.demo-pill{display:inline-flex;align-items:center;gap:8px;margin-top:1.4rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.8);font-size:.8rem;padding:.45rem .85rem;border-radius:100px}
.demo-pill b{width:7px;height:7px;border-radius:50%;background:#FBBF24}

/* ─── TARJETAS DE TORRE ─── */
.tw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(16px,2.4vw,26px);margin-top:2rem}
.tw-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--dark);box-shadow:0 1px 2px rgba(15,23,42,.04);transition:transform .3s ease,box-shadow .3s ease}
.tw-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.tw-media{position:relative;aspect-ratio:4/5;background:var(--ink);overflow:hidden}
.tw-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.tw-card:hover .tw-media img{transform:scale(1.04)}
.tw-badge{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.94);color:var(--dark);font-family:var(--heading);font-weight:700;font-size:.74rem;padding:.4rem .75rem;border-radius:100px}
.tw-badge b{color:var(--ok)}
.tw-dist{position:absolute;bottom:14px;left:14px;right:14px;display:flex;align-items:center;gap:8px;background:rgba(11,18,32,.62);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.16);color:#fff;font-size:.8rem;padding:.55rem .8rem;border-radius:12px}
.tw-dist strong{font-family:var(--heading)}
.tw-body{padding:1.2rem 1.3rem 1.35rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.tw-name{font-family:var(--heading);font-weight:800;font-size:1.3rem;letter-spacing:-.01em;line-height:1.15}
.tw-zone{color:var(--gray);font-size:.92rem}
.tw-meta{display:flex;gap:18px;flex-wrap:wrap;padding-top:.7rem;margin-top:auto;border-top:1px solid var(--border)}
.tw-meta b{display:block;font-family:var(--heading);font-weight:800;color:var(--blue);font-size:1.05rem}
.tw-meta span{font-size:.78rem;color:var(--gray)}
.tw-cta{font-family:var(--heading);font-weight:700;color:var(--blue);font-size:.95rem}

/* ─── TORRE ─── */
.tw-hero{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,56px);align-items:center}
.tw-hero-img{border-radius:22px;overflow:hidden;box-shadow:0 40px 90px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.1);aspect-ratio:4/5}
.tw-hero-img img{width:100%;height:100%;object-fit:cover}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:1.2rem}
.chip{font-size:.82rem;padding:.4rem .8rem;border-radius:100px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.88)}
.sec .chip{background:var(--blue-light);border-color:transparent;color:var(--blue-dark)}
@media(max-width:820px){.tw-hero{grid-template-columns:1fr}.tw-hero-img{max-width:420px;aspect-ratio:16/11}}

.filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:1.4rem}
.fbtn{font-family:var(--heading);font-weight:600;font-size:.85rem;border:1px solid var(--border);background:#fff;color:var(--dark);padding:.55rem 1rem;border-radius:100px;cursor:pointer;min-height:40px}
.fbtn.on{background:var(--dark);border-color:var(--dark);color:#fff}

.lc-list{display:grid;gap:14px;margin-top:1.4rem}
.lc{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:clamp(14px,2vw,24px);align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:12px;text-decoration:none;color:var(--dark);transition:box-shadow .25s,transform .25s}
.lc:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.lc-thumb{aspect-ratio:16/10;border-radius:12px;overflow:hidden;background:var(--ink)}
.lc-thumb img{width:100%;height:100%;object-fit:cover}
.lc-title{font-family:var(--heading);font-weight:800;font-size:1.1rem;line-height:1.2}
.lc-sub{color:var(--gray);font-size:.9rem;margin-top:.2rem}
.lc-specs{display:flex;gap:16px;flex-wrap:wrap;margin-top:.7rem;font-size:.86rem}
.lc-specs span{display:inline-flex;gap:6px;align-items:center}
.lc-specs b{font-family:var(--heading)}
.lc-price{text-align:right;padding-right:10px}
.lc-price b{display:block;font-family:var(--heading);font-weight:800;font-size:1.3rem;color:var(--blue)}
.lc-price span{font-size:.78rem;color:var(--gray)}
.st{display:inline-block;font-family:var(--heading);font-weight:700;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;padding:.28rem .6rem;border-radius:100px;color:#fff;background:var(--ok)}
.st.reservado{background:var(--warn)}.st.ocupado,.st.vendido,.st.rentado{background:var(--bad)}
.lc.is-dim{opacity:.62}
@media(max-width:760px){.lc{grid-template-columns:1fr}.lc-price{text-align:left;padding:0 4px 6px}}
.empty{padding:2rem;border:1px dashed var(--border);border-radius:var(--r);text-align:center;color:var(--gray);background:#fff}

/* ─── LOCAL ─── */
.gal{--gw:min(1760px,calc(100vw - 24px));width:var(--gw);margin:1.8rem calc((100% - var(--gw)) / 2) 0;display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.gal-stage{position:relative}
/* Foto principal alta: ocupa casi toda la pantalla del hero (el alto manda, no la proporción). */
.gal-main{position:relative;display:block;border-radius:24px;overflow:hidden;height:clamp(520px,86vh,1120px);width:100%;background:var(--ink);cursor:zoom-in;border:0;padding:0}
.gal-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gal-bg{filter:blur(28px) brightness(.55);transform:scale(1.15);opacity:0}
.gal-main.portrait .gal-bg{opacity:1}
.gal-main.portrait .gal-img{object-fit:contain}
.gal-count,.gal-full{position:absolute;bottom:16px;background:rgba(11,18,32,.7);color:#fff;font-size:.82rem;padding:.4rem .8rem;border-radius:100px;backdrop-filter:blur(6px)}
.gal-count{right:16px}.gal-full{left:16px}
.gal-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(11,18,32,.55);color:#fff;font-size:1.9rem;line-height:1;cursor:pointer;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding-bottom:4px}
.gal-nav:hover{background:rgba(11,18,32,.8)}
.gal-nav.p{left:16px}.gal-nav.n{right:16px}
.gal-thumbs{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.gal-thumbs button{border:2px solid transparent;border-radius:12px;overflow:hidden;padding:0;cursor:pointer;aspect-ratio:4/3;width:152px;background:var(--ink);flex-shrink:0;opacity:.72;transition:opacity .2s}
.gal-thumbs button.on,.gal-thumbs button:hover{opacity:1}
.gal-thumbs button.on{border-color:var(--accent)}
.gal-thumbs img{width:100%;height:100%;object-fit:cover}
@media(max-width:760px){
  .gal{--gw:100vw}
  .gal-main{border-radius:0;height:min(76vh,620px)}
  .gal-nav{width:40px;height:40px;font-size:1.5rem}.gal-nav.p{left:10px}.gal-nav.n{right:10px}
  .gal-full{display:none}
  .gal-thumbs{padding:0 16px 4px}
  .gal-thumbs button{width:96px}
}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-top:-36px;position:relative;z-index:3;box-shadow:var(--shadow)}
.fact{background:#fff;padding:1rem 1.1rem}
.fact span{display:block;font-size:.76rem;color:var(--gray);text-transform:uppercase;letter-spacing:.08em}
.fact b{font-family:var(--heading);font-weight:800;font-size:1.25rem}
.fact.hl b{color:var(--blue)}

.two{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(24px,4vw,56px)}
@media(max-width:860px){.two{grid-template-columns:1fr}}
.inc{list-style:none;display:grid;gap:10px;margin-top:1rem}
.inc li{display:flex;gap:10px;align-items:flex-start}
.inc li::before{content:"";flex:0 0 20px;height:20px;border-radius:50%;background:var(--blue-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l2.5 2.5L14 7.5' fill='none' stroke='%23006AFF' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px no-repeat;margin-top:2px}
.inc.cond li::before{background:var(--blue-light);background-image:none;box-shadow:inset 0 0 0 6px var(--blue-light),inset 0 0 0 20px var(--blue)}

.card{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:clamp(18px,2.4vw,26px)}
.card h3{font-family:var(--heading);font-weight:800;font-size:1.1rem;margin-bottom:.3rem}

.vids{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:1.4rem}
.vid{border-radius:16px;overflow:hidden;background:var(--ink);aspect-ratio:16/9}
.vid.v{aspect-ratio:9/16;max-width:340px;width:100%;margin:0 auto}
/* Ubicación: mapa + video vertical (Remotion) lado a lado */
.ubi{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:stretch;margin-top:1.4rem}
.ubi{align-items:start}.ubi .map-wrap{margin-top:0}.ubi .map{height:clamp(420px,62vh,600px)}
.ubi .vid.v{max-width:none}
.vcap{font-size:.82rem;color:var(--gray);text-align:center;margin-top:8px}
.vcap a{color:var(--blue,#006AFF);font-weight:600;text-decoration:none}.vcap a:hover{text-decoration:underline}
@media(max-width:860px){.ubi{grid-template-columns:1fr}.ubi .vid.v{max-width:320px}}
.vid video,.vid iframe{width:100%;height:100%;border:0;display:block;object-fit:cover}
.ph-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;color:rgba(255,255,255,.8);background:radial-gradient(600px 300px at 50% 0%,rgba(0,106,255,.35),transparent),var(--ink);border-radius:16px;padding:2rem;min-height:220px}
.ph-box strong{font-family:var(--heading);color:#fff;font-size:1.05rem}
.ph-box span{font-size:.9rem;max-width:420px}
.ph-ic{width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;margin-bottom:.3rem}

/* ─── PLANO INTERACTIVO (patrón kaizen-distribution-interactive del LAB) ─── */
.plan{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;margin-top:1.4rem;align-items:start}
@media(max-width:900px){.plan{grid-template-columns:1fr}}
.plan-stage{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.plan-stage img{width:100%;height:auto}
.plan-stage svg{position:absolute;inset:0;width:100%;height:100%}
.pz{fill:var(--blue);fill-opacity:0;stroke:var(--blue);stroke-opacity:0;stroke-width:4;cursor:pointer;transition:fill-opacity .25s,stroke-opacity .25s}
.pz:hover,.pz.on{fill-opacity:.16;stroke-opacity:.9}
.plan-side{display:flex;flex-direction:column;gap:10px}
.plan-tools{display:flex;gap:8px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--heading);font-weight:700;font-size:.9rem;border-radius:11px;padding:.8rem 1.2rem;text-decoration:none;border:1px solid transparent;cursor:pointer;min-height:44px;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--blue);color:#fff}
.btn-dark{background:var(--dark);color:#fff}
.btn-ghost{background:#fff;border-color:var(--border);color:var(--dark)}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{box-shadow:0 12px 30px rgba(37,211,102,.35)}
.zl{list-style:none;display:grid;gap:6px}
.zl button{width:100%;display:flex;justify-content:space-between;gap:10px;text-align:left;background:#fff;border:1px solid var(--border);border-radius:12px;padding:.7rem .9rem;font:inherit;font-size:.9rem;cursor:pointer;color:var(--dark)}
.zl button b{font-family:var(--heading);color:var(--blue);white-space:nowrap}
.zl button.on{border-color:var(--blue);background:var(--blue-light)}
.plan-total{display:flex;justify-content:space-between;font-family:var(--heading);font-weight:800;padding:.4rem .2rem}
.plan-tip{position:absolute;pointer-events:none;background:var(--dark);color:#fff;font-size:.82rem;padding:.45rem .7rem;border-radius:10px;transform:translate(-50%,-120%);white-space:nowrap;opacity:0;transition:opacity .15s}
.plan-tip.on{opacity:1}
.plan-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:1rem}

/* ─── MAPA ─── */
.map-wrap{position:relative;isolation:isolate;z-index:0;margin-top:1.4rem;border-radius:var(--r);overflow:hidden;border:1px solid var(--border);background:#E8EEF7}
.map{height:clamp(320px,52vh,520px);width:100%}
.map-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--gray);font-size:.9rem;padding:1rem;text-align:center}
.map-card{position:absolute;left:14px;bottom:14px;z-index:500;max-width:min(360px,calc(100% - 28px));background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:.85rem 1rem;box-shadow:0 10px 30px rgba(15,23,42,.14)}
.map-card b{font-family:var(--heading);font-size:1.5rem;color:var(--blue);line-height:1}
.map-card p{font-size:.84rem;color:var(--gray);margin-top:.25rem}
.leaflet-container{font-family:var(--body)}
/* Tinte de marca sobre OSM: gris frío, menos ruido visual, deja resaltar la ruta azul. */
.leaflet-tile-pane{filter:grayscale(1) contrast(.88) brightness(1.06) sepia(.18) hue-rotate(180deg) saturate(1.6)}
.gr-route{stroke-dasharray:10 12;animation:gr-dash 1.2s linear infinite}
@keyframes gr-dash{to{stroke-dashoffset:-22}}
.gr-pin{position:relative}
.gr-pin i{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--blue);border:3px solid #fff;box-shadow:0 4px 14px rgba(0,106,255,.5)}
.gr-pin i::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid var(--blue);opacity:.6;animation:gr-pulse 2s ease-out infinite}
.gr-pin.origin i{background:var(--dark);box-shadow:0 4px 14px rgba(15,23,42,.45)}
.gr-pin.origin i::after{border-color:var(--dark)}
@keyframes gr-pulse{from{transform:scale(.6);opacity:.7}to{transform:scale(1.8);opacity:0}}
.gr-lbl{background:var(--dark)!important;color:#fff!important;border:0!important;border-radius:9px!important;font-family:var(--heading);font-weight:700;font-size:.75rem;padding:.3rem .6rem!important;box-shadow:0 6px 18px rgba(15,23,42,.25)!important}
.gr-lbl::before{display:none}
.gr-lbl.km{background:var(--blue)!important}
.gr-lbl.poi{background:#B45309!important}
.gr-pin.poi i{background:#F59E0B;box-shadow:0 4px 14px rgba(245,158,11,.5)}
.gr-pin.poi i::after{border-color:#F59E0B}
.gr-pin.edu i,.gr-pin.sal i{width:14px;height:14px;margin:-7px 0 0 -7px;border-width:2px}
.gr-pin.edu i{background:#10B981;box-shadow:0 3px 10px rgba(16,185,129,.45)}
.gr-pin.sal i{background:#EF4444;box-shadow:0 3px 10px rgba(239,68,68,.45)}
.gr-pin.edu i::after,.gr-pin.sal i::after{display:none}
.gr-lbl.edu{background:#047857!important}.gr-lbl.sal{background:#B91C1C!important}
.map-legend button{display:flex;align-items:center;gap:6px;background:none;border:0;padding:2px 0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.map-legend button[aria-pressed="false"]{opacity:.4;text-decoration:line-through}
.map-views{position:absolute;top:12px;left:56px;z-index:500;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 70px)}
.map-views button{font-family:var(--heading);font-weight:700;font-size:.78rem;border:1px solid rgba(15,23,42,.1);background:rgba(255,255,255,.92);backdrop-filter:blur(8px);color:var(--dark);padding:.45rem .8rem;border-radius:100px;cursor:pointer;min-height:34px}
.map-views button.on{background:var(--dark);color:#fff}
.map-legend{position:absolute;right:12px;bottom:28px;z-index:500;display:flex;flex-direction:column;gap:4px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-radius:12px;padding:.55rem .7rem;font-size:.76rem;box-shadow:0 6px 18px rgba(15,23,42,.12)}
.map-legend span{display:flex;align-items:center;gap:6px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:0 0 10px}
.dot.hq{background:var(--blue)}.dot.ch{background:var(--dark)}.dot.poi{background:#F59E0B}.dot.edu{background:#10B981}.dot.sal{background:#EF4444}
.near{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.near h3{display:flex;align-items:center;gap:8px}
.near-lead{color:var(--gray);font-size:.9rem;margin:.2rem 0 .8rem}
.near ul{list-style:none;display:grid;gap:2px}
.near li{display:flex;justify-content:space-between;gap:12px;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.92rem}
.near li small{display:block;color:var(--gray);font-size:.78rem}
.near li b{font-family:var(--heading);color:var(--blue);white-space:nowrap}
.near-note{font-size:.78rem;color:var(--gray);margin-top:8px}
.ent-video{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:center;margin-top:28px;padding:clamp(18px,3vw,32px);border-radius:22px;background:radial-gradient(500px 300px at 90% 10%,rgba(139,92,246,.18),transparent),#fff;border:1px solid var(--border)}
.ent-video .vid.v{max-width:none}
@media(max-width:860px){.near{grid-template-columns:1fr}.ent-video{grid-template-columns:1fr}.ent-video .vid.v{max-width:320px}.map-card{position:static;max-width:none;border-radius:0;box-shadow:none;border:0;border-top:1px solid var(--border);background:#fff}.map-legend{position:static;flex-direction:row;flex-wrap:wrap;gap:6px 14px;border-radius:0;box-shadow:none;background:#fff;border-top:1px solid var(--border)}.map-legend button{min-height:32px}.map-views{left:52px}}
@media(prefers-reduced-motion:reduce){.gr-route,.gr-pin i::after{animation:none}}

/* ─── CTA / SHARE ─── */
.cta-band{background:linear-gradient(135deg,var(--blue),var(--blue-deep));color:#fff;border-radius:22px;padding:clamp(24px,4vw,44px);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.cta-band h3{font-family:var(--heading);font-weight:800;font-size:clamp(1.3rem,2.6vw,1.8rem);line-height:1.15}
.cta-band p{color:rgba(255,255,255,.8);margin-top:.3rem}
.cta-row{display:flex;gap:10px;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--dark);color:#fff;padding:.7rem 1.1rem;border-radius:12px;font-size:.9rem;opacity:0;transition:.3s;z-index:9999}
.toast.on{opacity:1;transform:translateX(-50%)}

/* ─── LIGHTBOX ─── */
.lb{position:fixed;inset:0;z-index:9000;background:rgba(8,12,22,.92);display:none;align-items:center;justify-content:center;padding:clamp(12px,4vw,48px)}
.lb.on{display:flex}
.lb img{max-width:100%;max-height:90vh;width:auto;height:auto;object-fit:contain;border-radius:12px}
.lb-count{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);color:rgba(255,255,255,.85);font-size:.85rem;background:rgba(0,0,0,.35);padding:.35rem .8rem;border-radius:100px;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}
.lb button{position:absolute;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.4rem;cursor:pointer}
.lb .x{top:16px;right:16px}.lb .p{left:16px;top:50%}.lb .n{right:16px;top:50%}

/* ─── FOOTER ─── */
.foot{background:var(--ink);color:rgba(255,255,255,.65);padding:2.6rem 0;font-size:.88rem;text-align:center}
.foot a{color:#fff}
.foot p+p{margin-top:.5rem}

.loading{padding:6rem 1rem;text-align:center;color:var(--gray)}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* Plano de referencia (imagen, sin zonas) */
.plan-img .plan-stage{display:block;cursor:zoom-in}
