:root{
  --tinta:#16191B;
  --tinta-2:#3B4044;
  --gris:#6D7276;
  --linea:#E2E0DB;
  --papel:#FFFFFF;
  --piedra:#F3F2EE;
  --noche:#16191B;
  --pino:#1F3A31;
  --wa:#25D366;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ancho:1240px;
  --margen:clamp(1.25rem,4vw,3rem);
  --sale:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.015em;margin:0;line-height:1.08}
h2{font-size:clamp(2rem,3.6vw,3rem)}
em{font-style:italic;font-weight:300}
p{margin:0}
.envoltura{max-width:var(--ancho);margin:0 auto;padding:0 var(--margen)}
.etiqueta{font:500 .75rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
:focus-visible{outline:2px solid var(--tinta);outline-offset:3px}

/* ── Botones ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;height:52px;padding:0 1.5rem;border-radius:999px;border:1px solid transparent;font:500 .95rem/1 var(--sans);text-decoration:none;white-space:nowrap;transition:background .25s,color .25s,border-color .25s,transform .25s var(--sale)}
.btn:active{transform:scale(.98)}
.btn svg{width:20px;height:20px;flex:none}
.btn-oscuro{background:var(--tinta);color:#fff}
.btn-oscuro:hover{background:#000}
.btn-oscuro .wa-ico{color:var(--wa)}
.btn-claro{background:#fff;color:var(--tinta)}
.btn-claro:hover{background:#ECEBE6}
.btn-claro .wa-ico{color:#128C4A}
.btn-borde{border-color:rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.04);backdrop-filter:blur(6px)}
.btn-borde:hover{background:rgba(255,255,255,.14);border-color:#fff}
.btn-linea{border-color:var(--linea);color:var(--tinta);background:#fff}
.btn-linea:hover{border-color:var(--tinta)}
.btn-ancho{width:100%;height:auto;min-height:52px;padding-block:.6rem;white-space:normal;text-align:center;line-height:1.25}

/* ── Encabezado ── */
.nav{position:absolute;inset:0 0 auto 0;z-index:50;color:#fff}
.nav .envoltura{display:flex;align-items:center;justify-content:space-between;height:96px;gap:2rem}
.marca{display:flex;align-items:center;gap:.7rem;text-decoration:none;font:400 1.3rem/1 var(--serif);letter-spacing:-.01em}
.nav .marca{gap:.85rem;font:600 .7rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase}
.nav .marca img{width:62px;height:62px}
.nav-links{display:flex;gap:2rem;list-style:none;margin:0;padding:0;font-size:.9rem}
.nav-links a{text-decoration:none;opacity:.85;transition:opacity .2s}
.nav-links a:hover{opacity:1}
.nav .btn{height:42px;padding:0 1.15rem;font-size:.875rem}
.nav .btn-oscuro{background:#fff;color:var(--tinta)}
.nav .btn-oscuro .wa-ico{color:#128C4A}

/* ── Portada ── */
.portada{position:relative;min-height:max(640px,100svh);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--noche)}
.portada-foto{position:absolute;inset:0}
.portada-foto img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform:scale(1.06);animation:acerca 2.4s var(--sale) forwards}
@keyframes acerca{to{transform:scale(1)}}
.portada::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,13,.82) 0%,rgba(10,12,13,.5) 11%,rgba(10,12,13,0) 28%,rgba(10,12,13,.12) 45%,rgba(10,12,13,.85) 100%),linear-gradient(90deg,rgba(10,12,13,.5) 0%,rgba(10,12,13,0) 65%)}
.portada .envoltura{position:relative;z-index:2;width:100%;padding-top:calc(96px + 1.5rem);padding-bottom:clamp(8.5rem,15vh,10rem)}
.estado{display:inline-flex;align-items:center;gap:.6rem;font:500 .78rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.6rem}
.estado i{width:8px;height:8px;border-radius:50%;background:#4ADE80;box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:pulso 2.4s infinite}
@keyframes pulso{70%{box-shadow:0 0 0 10px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.portada h1{font-size:clamp(2.9rem,7.4vw,6.4rem);max-width:13ch;line-height:.98;letter-spacing:-.03em}
.portada h1 em{display:block}
.portada-pie{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-top:2rem;flex-wrap:wrap}
.portada-pie p{max-width:34rem;font-size:1.06rem;color:rgba(255,255,255,.84)}
.portada-btns{display:flex;gap:.75rem;flex-wrap:wrap}
.js .entra{opacity:0;transform:translateY(22px);animation:entra 1.1s var(--sale) forwards}
.js .entra.d1{animation-delay:.12s}.js .entra.d2{animation-delay:.24s}.js .entra.d3{animation-delay:.36s}
@keyframes entra{to{opacity:1;transform:none}}

/* ── Barra de datos ── */
.datos-barra{position:relative;z-index:5;margin-top:-5.25rem}
.datos-barra ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);background:#fff;border-radius:18px;box-shadow:0 24px 60px -24px rgba(10,12,13,.35),0 0 0 1px rgba(10,12,13,.04);overflow:hidden}
.datos-barra li{padding:1.5rem 1.4rem;display:flex;flex-direction:column;gap:.85rem;border-left:1px solid var(--linea)}
.datos-barra li:first-child{border-left:0}
.datos-barra svg{width:26px;height:26px;stroke:var(--tinta);stroke-width:1.3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.datos-barra b{display:block;font:400 1.55rem/1 var(--serif);letter-spacing:-.01em}
.datos-barra span{display:block;font-size:.82rem;color:var(--gris);line-height:1.3;margin-top:.3rem}

/* ── Ficha (galería + tarjeta) ── */
.ficha{padding:clamp(4rem,8vw,6.5rem) 0 clamp(4rem,7vw,6rem)}
.ficha .envoltura{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
.mosaico{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;aspect-ratio:16/10;border-radius:16px;overflow:hidden;position:relative}
.mosaico .foto:first-child{grid-row:span 2}
.foto{position:relative;overflow:hidden;background:var(--piedra);border:0;padding:0;display:block;width:100%;height:100%}
.foto img{width:100%;height:100%;object-fit:cover;filter:contrast(1.05) saturate(.94);transition:transform 1.1s var(--sale)}
.foto:hover img{transform:scale(1.035)}
.ver-todas{position:absolute;right:16px;bottom:16px;display:inline-flex;align-items:center;gap:.55rem;height:42px;padding:0 1rem;border-radius:999px;border:0;background:#fff;font:500 .875rem/1 var(--sans);box-shadow:0 6px 20px rgba(0,0,0,.18)}
.ver-todas svg{width:16px;height:16px}

.ficha-texto{margin-top:3rem}
.ficha-texto .etiqueta{margin-bottom:1rem}
.ficha-texto h2{max-width:18ch}
.lugar{display:flex;align-items:center;gap:.45rem;margin-top:1rem;color:var(--gris);font-size:.95rem}
.lugar svg{width:17px;height:17px;flex:none}
.ficha-texto .intro{margin-top:1.75rem;font-size:1.1rem;line-height:1.7;color:var(--tinta-2);max-width:40rem}
.tabla{margin-top:2.5rem;border-top:1px solid var(--linea)}
.tabla div{display:grid;grid-template-columns:minmax(9rem,14rem) 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--linea);font-size:.95rem}
.tabla dt{color:var(--gris)}
.tabla dd{margin:0;font-weight:500}

.tarjeta{position:sticky;top:24px;border:1px solid var(--linea);border-radius:18px;padding:1.75rem;background:#fff;box-shadow:0 18px 50px -30px rgba(10,12,13,.3)}
.tarjeta .etiqueta{display:block}
.precio{font:400 2.5rem/1.05 var(--serif);letter-spacing:-.02em;margin:.7rem 0 .25rem}
.precio small{font:400 .95rem var(--sans);color:var(--gris);letter-spacing:0}
.precio.sin{font-size:1.9rem}
.disp{display:inline-flex;align-items:center;gap:.5rem;margin:.9rem 0 1.5rem;padding:.45rem .8rem;border-radius:999px;background:#ECF7EF;color:#17663A;font-size:.82rem;font-weight:500}
.disp i{width:7px;height:7px;border-radius:50%;background:#22A04B}
.tarjeta .btn+.btn{margin-top:.6rem}
.tarjeta-nota{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--linea);font-size:.85rem;color:var(--gris);line-height:1.5}

/* ── Espacios ── */
.espacios{padding:clamp(4.5rem,9vw,7.5rem) 0;background:var(--piedra)}
.cabeza{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:clamp(3rem,6vw,5rem);flex-wrap:wrap}
.cabeza .etiqueta{margin-bottom:1rem}
.cabeza p{max-width:26rem;color:var(--tinta-2)}
.espacio{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.espacio+.espacio{margin-top:clamp(4rem,8vw,7rem)}
.espacio.inv{grid-template-columns:7fr 5fr}
.espacio.inv .espacio-texto{order:2}
.espacio-texto .num{font:300 italic 1rem/1 var(--serif);color:var(--gris)}
.espacio-texto h3{font-size:clamp(1.9rem,3vw,2.6rem);margin:.9rem 0 1.1rem}
.espacio-texto p{color:var(--tinta-2);max-width:28rem}
.espacio-texto ul{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.espacio-texto li{font-size:.82rem;padding:.4rem .8rem;border:1px solid #D4D2CC;border-radius:999px;color:var(--tinta-2)}
.par{display:grid;grid-template-columns:1.25fr 1fr;gap:12px;align-items:end}
.par .foto{border-radius:14px;aspect-ratio:3/4;height:auto}
.par .foto:last-child{aspect-ratio:3/3.6;margin-bottom:2.5rem}
.foto figcaption,.foto .pie{position:absolute;left:12px;bottom:12px;padding:.35rem .65rem;border-radius:999px;background:rgba(255,255,255,.92);font-size:.75rem;font-weight:500;color:var(--tinta)}

/* ── Recorrido virtual ── */
.tour{background:var(--noche);color:#fff;padding:clamp(4.5rem,9vw,7.5rem) 0}
.tour .envoltura{display:grid;grid-template-columns:5fr 6fr;grid-template-rows:auto auto;column-gap:clamp(2.5rem,6vw,6rem);row-gap:2.25rem}
.tour-cabeza{grid-column:1;grid-row:1;align-self:end}
.tour .etiqueta{color:rgba(255,255,255,.55);margin-bottom:1rem}
.tour h2{font-size:clamp(2.2rem,4.2vw,3.5rem)}
.tour-cabeza p{margin-top:1.5rem;color:rgba(255,255,255,.72);max-width:27rem;font-size:1.05rem}
.paradas{grid-column:1;grid-row:2;list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.14);max-width:27rem}
.paradas button{display:flex;align-items:baseline;gap:1rem;width:100%;padding:.8rem 0;background:none;border:0;border-bottom:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.55);text-align:left;font-size:.95rem;transition:color .2s,padding .35s var(--sale)}
.paradas button i{font:300 italic .85rem var(--serif);width:1.5rem}
.paradas button:hover{color:#fff}
.paradas button.activa{color:#fff;padding-left:.5rem}
.paradas button.activa::after{content:"Estás aquí";margin-left:auto;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#4ADE80}
.paradas button:focus-visible,.visita :focus-visible{outline-color:#fff}
.visita-marco{grid-column:2;grid-row:1/3;align-self:center;justify-self:center;position:relative;width:min(100%,calc(min(74vh,720px)*478/850));aspect-ratio:478/850}
.visita{position:absolute;inset:0;border-radius:22px;overflow:hidden;background:#000;box-shadow:0 40px 90px -30px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.08);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.visita video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.visita-sombra{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,0) 18%,rgba(0,0,0,0) 62%,rgba(0,0,0,.6) 100%)}
.visita-zona{position:absolute;inset:0;touch-action:pan-y;cursor:pointer}
.visita-pista{position:absolute;left:50%;top:46%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;display:grid;place-items:center;background:rgba(12,13,14,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:none;opacity:0;transform:scale(.85);transition:opacity .25s,transform .35s var(--sale)}
.visita svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.visita-pista svg{width:26px;height:26px;margin-left:3px;fill:currentColor}
.visita.pausa:not(.fin) .visita-pista{opacity:1;transform:none}
.visita-carga{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);padding:.6rem 1rem;border-radius:999px;background:rgba(12,13,14,.7);font-size:.85rem;pointer-events:none;opacity:0;transition:opacity .2s .25s}
.visita.cargando .visita-carga{opacity:1}
.visita-arriba{position:absolute;top:14px;left:14px;right:14px;display:flex;justify-content:space-between;align-items:center;gap:.75rem;pointer-events:none}
.visita-lugar{display:flex;align-items:center;gap:.5rem;padding:.55rem .9rem;border-radius:999px;background:rgba(12,13,14,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:.82rem;font-weight:500}
.visita-lugar i{width:7px;height:7px;border-radius:50%;background:#4ADE80}
.visita-fs{pointer-events:auto;width:42px;height:42px;border-radius:50%;border:0;background:rgba(12,13,14,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center}
.visita-fs svg+svg,.visita.inmersivo .visita-fs svg:first-child{display:none}
.visita.inmersivo .visita-fs svg+svg{display:block}
.visita-abajo{position:absolute;left:14px;right:14px;bottom:14px;z-index:3;display:flex;align-items:center;gap:12px}
.visita-pausa{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:rgba(12,13,14,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center}
.visita-pausa svg+svg,.visita:is(.pausa,.fin) .visita-pausa svg:first-child{display:none}
.visita:is(.pausa,.fin) .visita-pausa svg+svg{display:block;fill:currentColor;margin-left:2px}
.visita-linea{position:relative;flex:1;height:24px;cursor:pointer;touch-action:none}
.visita-linea::before,.visita-linea b{content:"";position:absolute;left:0;right:0;top:10px;height:4px;border-radius:4px;background:rgba(255,255,255,.3)}
.visita-linea b{background:#fff;transform-origin:left;transform:scaleX(0)}
.visita-linea span{position:absolute;top:8px;width:2px;height:8px;margin-left:-1px;background:rgba(12,13,14,.75)}
.visita-fin{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:2rem;text-align:center;background:rgba(12,13,14,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.visita.fin .visita-fin{opacity:1;visibility:visible}
.visita-fin h3{font-size:2rem}
.visita-fin p{color:rgba(255,255,255,.75);margin-bottom:1rem}
.visita-fin button{margin-top:.5rem;background:none;border:0;color:#fff;font-size:.9rem;text-decoration:underline;text-underline-offset:4px;padding:.5rem}
.visita.inmersivo{position:fixed;z-index:90;border-radius:0;box-shadow:none}
.visita.inmersivo::before{content:"";position:absolute;inset:-60px;background:url(img/recorrido-inicio.jpg) center/cover;filter:blur(50px) brightness(.3)}
.visita.inmersivo video{object-fit:contain}
.visita.inmersivo .visita-sombra{display:none}
.visita.inmersivo .visita-zona{touch-action:none}
.visita.inmersivo .visita-arriba{top:calc(14px + env(safe-area-inset-top))}
.visita.inmersivo .visita-abajo{left:50%;right:auto;width:min(calc(100% - 28px),430px);transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom))}

/* ── Incluye ── */
.incluye{padding:clamp(4.5rem,9vw,7.5rem) 0}
.incluye .envoltura{display:grid;grid-template-columns:4fr 8fr;gap:clamp(2rem,6vw,6rem)}
.incluye .etiqueta{margin-bottom:1rem}
.incluye-lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:3rem}
.incluye-lista li{display:flex;gap:1rem;align-items:flex-start;padding:1.35rem 0;border-top:1px solid var(--linea)}
.incluye-lista svg{width:24px;height:24px;flex:none;stroke:var(--tinta);stroke-width:1.3;fill:none;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.incluye-lista b{display:block;font-weight:500}
.incluye-lista span{display:block;font-size:.88rem;color:var(--gris);margin-top:.15rem}

/* ── Ubicación ── */
.ubic{padding:0 0 clamp(4.5rem,9vw,7.5rem)}
.ubic-caja{display:grid;grid-template-columns:4fr 8fr;border:1px solid var(--linea);border-radius:18px;overflow:hidden}
.ubic-texto{padding:clamp(2rem,4vw,3rem)}
.ubic-texto .etiqueta{margin-bottom:1rem}
.ubic-texto p{margin-top:1rem;color:var(--tinta-2)}
.ubic-texto a{display:inline-block;margin-top:1.5rem;font-weight:500}
.ubic iframe{width:100%;height:100%;min-height:360px;border:0;display:block;filter:grayscale(.35)}

/* ── Pasos ── */
.pasos{padding:clamp(4.5rem,9vw,7.5rem) 0;border-top:1px solid var(--linea)}
.pasos ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.5rem);counter-reset:p}
.pasos li{counter-increment:p;padding-top:1.5rem;border-top:1px solid var(--tinta)}
.pasos li::before{content:"0" counter(p);display:block;font:300 italic 1rem var(--serif);color:var(--gris);margin-bottom:2.5rem}
.pasos h3{font-size:1.65rem;margin-bottom:.75rem}
.pasos p{color:var(--tinta-2);max-width:22rem}

/* ── Contacto ── */
.contacto{position:relative;background:var(--noche);color:#fff;padding:clamp(5rem,10vw,8rem) 0;overflow:hidden}
.contacto-fondo{position:absolute;inset:0;opacity:.18}
.contacto-fondo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.contacto::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--noche) 30%,rgba(22,25,27,.7))}
.contacto .envoltura{position:relative;z-index:2;display:grid;grid-template-columns:5fr 6fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.contacto .etiqueta{color:rgba(255,255,255,.6);margin-bottom:1rem}
.contacto h2{font-size:clamp(2.4rem,5vw,4rem);line-height:1}
.contacto-izq p{margin-top:1.5rem;color:rgba(255,255,255,.75);max-width:28rem;font-size:1.05rem}
.contacto-izq .btn{margin-top:2rem}
.form{background:#fff;color:var(--tinta);border-radius:20px;padding:clamp(1.5rem,3vw,2.25rem)}
.form h3{font-size:1.6rem}
.form .sub{color:var(--gris);font-size:.9rem;margin-top:.4rem}
.campo{margin-top:1.5rem}
.campo>label,.campo>legend{display:block;font-size:.82rem;font-weight:500;margin-bottom:.6rem;padding:0}
fieldset.campo{border:0;padding:0;margin-inline:0}
.campo input[type=text]{width:100%;height:48px;padding:0 1rem;border:1px solid var(--linea);border-radius:12px;font:inherit;background:#fff;transition:border-color .2s}
.campo input[type=text]:focus{outline:none;border-color:var(--tinta)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-flex;align-items:center;gap:.4rem;height:38px;padding:0 .95rem;border:1px solid var(--linea);border-radius:999px;font-size:.88rem;cursor:pointer;transition:background .2s,border-color .2s,color .2s;user-select:none}
.chip span:hover{border-color:var(--tinta)}
.chip input:checked+span{background:var(--tinta);border-color:var(--tinta);color:#fff}
.chip input:focus-visible+span{outline:2px solid var(--tinta);outline-offset:2px}
.vista{margin-top:1.5rem;padding:1rem 1.1rem;border-radius:12px;background:#EFF6F0;font-size:.88rem;line-height:1.5;color:#1F3B2A;white-space:pre-line;position:relative}
.vista::before{content:"Así llega tu mensaje";display:block;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#4E7A5E;margin-bottom:.4rem}
.form .btn{margin-top:1.25rem}

/* ── Pie ── */
.pie-pagina{padding:3rem 0 calc(3rem + env(safe-area-inset-bottom));font-size:.88rem;color:var(--gris)}
.pie-pagina .envoltura{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;align-items:center}
.pie-pagina .marca img{width:auto;height:112px}

/* ── Barra móvil ── */
.barra-movil{display:none}

/* ── Visor de fotos ── */
.visor{position:fixed;inset:0;z-index:100;background:#0C0D0E;color:#fff;display:grid;grid-template-rows:auto 1fr auto;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.visor.abierto{opacity:1;visibility:visible}
.visor-top{display:flex;justify-content:space-between;align-items:center;padding:1rem var(--margen);font-size:.9rem}
.visor-cerrar,.visor-flecha{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:transparent;display:grid;place-items:center;transition:background .2s}
.visor-cerrar:hover,.visor-flecha:hover{background:rgba(255,255,255,.12)}
.visor svg{width:20px;height:20px}
.visor-centro{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:0 var(--margen);min-height:0}
.visor-centro img{max-height:100%;max-width:min(100%,900px);object-fit:contain;border-radius:6px;transition:opacity .25s}
.visor-pie{text-align:center;padding:1rem var(--margen) calc(1.25rem + env(safe-area-inset-bottom));font:300 italic 1.15rem var(--serif);color:rgba(255,255,255,.85)}

/* ── Apariciones ── */
.js .rev{opacity:0;transform:translateY(28px);transition:opacity 1s var(--sale),transform 1s var(--sale)}
.js .rev.ok{opacity:1;transform:none}

/* ── Responsive ── */
@media (max-width:1080px){
  .nav-links{display:none}
  .datos-barra ul{grid-template-columns:repeat(3,1fr)}
  .datos-barra li:nth-child(4){border-left:0}
  .datos-barra li:nth-child(n+4){border-top:1px solid var(--linea)}
  .ficha .envoltura{grid-template-columns:minmax(0,1fr)}
  .tarjeta{position:static}
  .incluye .envoltura{grid-template-columns:1fr}
}
@media (max-width:760px){
  body{font-size:15.5px}
  .nav .envoltura{height:80px}
  .nav .marca img{width:54px;height:54px}
  .nav .btn{display:none}
  .portada{min-height:max(600px,92svh)}
  .portada h1{font-size:min(2.9rem,12.4vw)}
  .portada-foto img{object-position:58% 40%}
  .portada::after{background:linear-gradient(180deg,rgba(10,12,13,.82) 0%,rgba(10,12,13,.45) 12%,rgba(10,12,13,.25) 30%,rgba(10,12,13,.6) 55%,rgba(10,12,13,.9) 100%)}
  .portada .envoltura{padding-top:calc(80px + 1.25rem);padding-bottom:9.5rem}
  .portada-btns{width:100%}
  .portada-btns .btn{flex:1}
  .datos-barra{margin-top:-4.5rem}
  .datos-barra ul{grid-template-columns:repeat(2,1fr);border-radius:16px}
  .datos-barra li{padding:1.15rem 1.1rem;gap:.6rem}
  .datos-barra li:nth-child(odd){border-left:0}
  .datos-barra li:nth-child(4){border-left:1px solid var(--linea)}
  .datos-barra li:nth-child(n+3){border-top:1px solid var(--linea)}
  .datos-barra b{font-size:1.3rem}
  .mosaico{grid-template-columns:1fr 1fr;grid-template-rows:2fr 1fr;aspect-ratio:4/5;border-radius:14px;margin-inline:calc(var(--margen) * -1);border-radius:0}
  .mosaico .foto:first-child{grid-column:span 2;grid-row:auto}
  .mosaico .foto:nth-child(n+4){display:none}
  .tabla div{grid-template-columns:8rem 1fr}
  .espacio,.espacio.inv{grid-template-columns:1fr}
  .espacio.inv .espacio-texto{order:0}
  .par .foto:last-child{margin-bottom:1.5rem}
  .incluye-lista{grid-template-columns:1fr}
  .tour .envoltura{grid-template-columns:1fr;row-gap:1.5rem}
  .tour-cabeza,.paradas,.visita-marco{grid-column:1;grid-row:auto}
  .visita-marco{order:1;margin-top:.25rem}
  .paradas{display:flex;flex-wrap:wrap;gap:.5rem;border:0;max-width:none}
  .paradas button{width:auto;padding:.55rem .95rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:.88rem;color:rgba(255,255,255,.8)}
  .paradas button i,.paradas button.activa::after{display:none}
  .paradas button.activa{padding-left:.95rem;background:#fff;border-color:#fff;color:var(--tinta)}
  .ubic-caja{grid-template-columns:1fr}
  .ubic iframe{min-height:280px}
  .pasos ol{grid-template-columns:1fr}
  .pasos li::before{margin-bottom:1rem}
  .contacto .envoltura{grid-template-columns:minmax(0,1fr)}
  .contacto::before{background:rgba(22,25,27,.88)}
  .visor-flecha{position:absolute;bottom:calc(1rem + env(safe-area-inset-bottom))}
  .visor-pie{min-height:calc(80px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;padding-inline:80px}
  .visor-flecha.ant{left:var(--margen)}.visor-flecha.sig{right:var(--margen)}
  .visor-centro{padding:0}
  .visor-centro img{border-radius:0}
  .barra-movil{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem var(--margen) calc(.75rem + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(12px);box-shadow:0 -1px 0 var(--linea);transform:translateY(110%);transition:transform .45s var(--sale)}
  .barra-movil.ver{transform:none}
  .barra-movil b{display:block;font:400 1.2rem/1.1 var(--serif)}
  .barra-movil span{font-size:.78rem;color:var(--gris)}
  .barra-movil .btn{height:46px;padding:0 1.15rem;font-size:.9rem}
  .pie-pagina{padding-bottom:calc(6.5rem + env(safe-area-inset-bottom))}
}
@media (max-width:760px) and (orientation:portrait){
  .visita.inmersivo video{object-fit:cover}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

/* ── Portada de Alpha: la foto es vertical, se encuadra en el edificio ── */
.portada-alpha .portada-foto img{object-position:50% 58%}

/* ── Inicio: los dos edificios a pantalla completa ── */
.split{position:relative;display:flex;height:100svh;min-height:640px;max-height:1000px;background:#0E1011;color:#fff;overflow:hidden}
.split-titulo{position:absolute;left:0;right:0;top:calc(96px + 1rem);z-index:3;pointer-events:none}
.split-titulo .estado{margin-bottom:1.1rem}
.split h1{font-size:clamp(2.6rem,4.3vw,4.1rem);line-height:.98;letter-spacing:-.035em}
.split-titulo p{margin-top:1rem;max-width:26rem;color:rgba(255,255,255,.8);font-size:1.05rem}
.lado{position:relative;flex:1 1 0;min-width:0;display:flex;align-items:flex-end;color:#fff;text-decoration:none;overflow:hidden;transition:flex-grow 1s var(--sale)}
.lado+.lado{border-left:1px solid rgba(255,255,255,.16)}
.lado img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:acerca 2.4s var(--sale) forwards;transition:transform 1.4s var(--sale),filter .8s var(--sale)}
.lado-alpha img{object-position:62% 50%}
.lado::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,12,13,.78) 0%,rgba(10,12,13,.2) 34%,rgba(10,12,13,.18) 50%,rgba(10,12,13,.9) 100%)}
.lado-texto{position:relative;z-index:2;width:100%;padding:0 clamp(1.5rem,4vw,3.5rem) clamp(2rem,6vh,3.5rem)}
.lado-telsa .lado-texto{padding-left:max(var(--margen),calc((100vw - var(--ancho))/2 + var(--margen)))}
.lado-num{font:300 italic 1.05rem/1 var(--serif);color:rgba(255,255,255,.72)}
.lado h2{font-size:clamp(4rem,9vw,8rem);line-height:.9;letter-spacing:-.045em;margin:.5rem 0 1.1rem}
.lado p{max-width:23rem;color:rgba(255,255,255,.86)}
.lado ul{list-style:none;margin:1.1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.lado li{padding:.36rem .78rem;border:1px solid rgba(255,255,255,.32);border-radius:999px;font-size:.8rem;background:rgba(10,12,13,.25);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.lado-ir{display:inline-flex;align-items:center;gap:.6rem;height:50px;margin-top:1.6rem;padding:0 1.35rem;border-radius:999px;background:#fff;color:var(--tinta);font:500 .92rem/1 var(--sans);transition:gap .35s var(--sale)}
.lado-ir svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lado:focus-visible{outline:2px solid #fff;outline-offset:-6px}
@media (hover:hover) and (min-width:761px){
  .split:has(.lado:hover) .lado img{filter:brightness(.62) saturate(.8)}
  .split .lado:hover{flex-grow:1.5}
  .split .lado:hover img{filter:none;transform:scale(1)}
  .lado:hover .lado-ir{gap:1rem}
}

/* ── Inicio: tira de fotos ── */
.dentro{background:var(--piedra);padding:clamp(4.5rem,9vw,7.5rem) 0}
.dentro .cabeza{margin-bottom:clamp(2rem,4vw,3rem)}
.dentro-lado{display:flex;align-items:flex-end;gap:1.5rem}
.dentro-lado p{max-width:20rem;color:var(--tinta-2)}
.tira-flechas{display:flex;gap:.5rem;flex:none}
.tira-flechas button{width:48px;height:48px;border-radius:50%;border:1px solid #CFCDC6;background:#fff;display:grid;place-items:center;transition:border-color .2s,opacity .2s}
.tira-flechas button:hover{border-color:var(--tinta)}
.tira-flechas button:disabled{opacity:.35;cursor:default}
.tira-flechas svg{width:20px;height:20px}
.tira{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(220px,19vw,280px);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:max(var(--margen),calc((100vw - var(--ancho))/2 + var(--margen)));padding:0 max(var(--margen),calc((100vw - var(--ancho))/2 + var(--margen))) .5rem;scrollbar-width:none}
.tira::-webkit-scrollbar{display:none}
.tira:focus-visible{outline-offset:-2px}
.tira-foto{scroll-snap-align:start;display:block;text-decoration:none;color:var(--tinta)}
.tira-foto img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:16px;background:#E6E4DE;filter:contrast(1.05) saturate(.94);transition:transform 1s var(--sale)}
.tira-foto img.foco-der{object-position:88% 50%}
.tira-foto:hover img{transform:translateY(-4px)}
.tira-foto span{display:flex;justify-content:space-between;gap:1rem;padding:.85rem .15rem 0;font-size:.82rem;color:var(--gris)}
.tira-foto b{font-weight:500;color:var(--tinta)}

/* ── Inicio: comparación ── */
.compara{padding:clamp(4.5rem,9vw,7.5rem) 0}
.comp-caja{border:1px solid var(--linea);border-radius:20px;overflow:hidden;background:#fff}
.comp{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.95rem}
.comp th,.comp td{padding:1.05rem clamp(1rem,2.5vw,2rem);text-align:left;vertical-align:top;border-top:1px solid var(--linea)}
.comp thead th,.comp thead td{border-top:0;padding-top:clamp(1.25rem,3vw,2rem);vertical-align:bottom}
.comp thead th{font:400 clamp(1.8rem,3.4vw,2.8rem)/1 var(--serif);letter-spacing:-.02em}
.comp thead img{display:block;width:72px;height:72px;object-fit:cover;border-radius:12px;margin-bottom:1rem}
.comp tbody th{font-weight:400;color:var(--gris);width:28%}
.comp tbody td{font-weight:500}
.comp tbody td,.comp tfoot td{border-left:1px solid var(--linea)}
.comp-precio td{font:400 1.3rem/1.2 var(--serif)}
.comp tfoot td{padding-bottom:clamp(1.25rem,3vw,2rem)}
.comp tfoot td:first-child{border-left:0}
.comp tfoot .btn{height:46px;padding:0 1.2rem;font-size:.9rem}

/* ── Inicio: cierre ── */
.cierre{position:relative;background:var(--noche);color:#fff;padding:clamp(4.5rem,9vw,7rem) 0;overflow:hidden}
.cierre-fondo{position:absolute;inset:0;opacity:.28}
.cierre-fondo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.cierre::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--noche) 25%,rgba(22,25,27,.6))}
.cierre .envoltura{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(1.5rem,4vw,3.5rem);flex-wrap:wrap}
.cierre-logo{width:92px;height:92px;flex:none}
.cierre h2{font-size:clamp(2rem,3.8vw,3.1rem)}
.cierre p{margin-top:.9rem;max-width:28rem;color:rgba(255,255,255,.75)}
.cierre .btn{margin-left:auto}

@media (max-width:760px){
  .split{flex-direction:column;height:auto;min-height:0;max-height:none}
  .split-titulo{position:relative;top:auto;padding:calc(80px + 1.25rem) 0 2.25rem;pointer-events:auto}
  .lado{min-height:78svh}
  .lado+.lado{border-left:0;border-top:1px solid rgba(255,255,255,.16)}
  .lado::before{background:linear-gradient(180deg,rgba(10,12,13,.35) 0%,rgba(10,12,13,0) 30%,rgba(10,12,13,.9) 100%)}
  .dentro-lado{flex-direction:column;align-items:flex-start}
  .tira-flechas{display:none}
  .tira{grid-auto-columns:72%}
  .comp{font-size:.85rem}
  .comp th,.comp td{padding:.9rem .75rem}
  .comp tbody th{width:31%}
  .comp thead img{width:52px;height:52px;margin-bottom:.75rem}
  .comp-precio td{font-size:1.05rem}
  .comp tfoot .btn{width:100%;padding:0 .5rem;font-size:.82rem}
  .cierre .btn{margin-left:0}
}
