/* /landing — hoja propia. La portada del sitio sigue con main.css.
   Sistema de diseño de Figma («Verona Beach — Landing · Design System»):
   marfil y azul noche con acentos dorados, títulos en Cormorant, texto en
   Campton, etiquetas con línea dorada, botones rectos con flecha y
   tarjetas de borde fino. Pensada primero para escritorio (1440). */

@font-face { font-family: 'Campton'; font-style: normal; font-weight: 300; font-display: swap; src: url('../fonts/campton-light.woff2') format('woff2'); }
@font-face { font-family: 'Campton'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/campton-book.woff2') format('woff2'); }
@font-face { font-family: 'Campton'; font-style: normal; font-weight: 500 600; font-display: swap; src: url('../fonts/campton-medium.woff2') format('woff2'); }
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300 400;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300 400;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url('../fonts/inter-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url('../fonts/inter-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --crema:   #F9F6F1;
  --arena:   #F4EEE5;
  --blanco:  #FFFFFF;
  --noche:   #0E1A2E;
  --noche-2: #15243B;
  --noche-3: #1C2E4A;
  --ink:     #0E1A2E;
  --ink-2:   #4A5263;
  --ink-3:   #7C8493;
  --line:    #E7DDCD;
  --line-2:  rgba(255, 255, 255, .12);
  --oro:     #B8935A;
  --oro-2:   #D4B47E;
  --error:   #B3261E;
  --ok:      #2C7C78;

  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:  "Campton", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ease:  cubic-bezier(.16, 1, .3, 1);

  --fs-xs: 11px;
  --fs-sm: 14px;
  --fs-base: 16px;
  --fs-lead: 17px;
  --fs-t2: clamp(34px, 3.4vw, 50px);
  --fs-t1: clamp(36px, 3.9vw, 58px);

  --wrap: 1200px;
  --gut:  clamp(20px, 4vw, 48px);
  --sec:  clamp(72px, 8vw, 120px);
  --top:  100px;
  --r:    4px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 72px; }
body {
  margin: 0; background: var(--crema); color: var(--ink-2);
  font-family: var(--sans); font-size: var(--fs-base); font-weight: 300; line-height: 1.65;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
strong { font-weight: 500; color: var(--ink); }
p { margin: 0 0 1em; text-wrap: pretty; }
figure { margin: 0; }
button { font: inherit; }
:focus-visible { outline: 2px solid var(--oro); outline-offset: 3px; }
::selection { background: var(--noche); color: var(--crema); }

.lp-skip { position: absolute; left: 12px; top: -60px; z-index: 200; padding: 10px 16px; background: var(--noche); color: #fff; text-decoration: none; }
.lp-skip:focus { top: 12px; }
.lp-wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: 0 var(--gut); }

/* ── Iconos ────────────────────────────────────────────── */

.lp-ico { width: 24px; height: 24px; flex: none; }
.lp-btn .lp-ico, .lp-link .lp-ico { width: 15px; height: 15px; stroke-width: 2; transition: transform .3s var(--ease); }
.lp-btn:hover .lp-ico, .lp-link:hover .lp-ico { transform: translateX(3px); }

/* ── Tipografía ────────────────────────────────────────── */

.lp-label {
  display: flex; align-items: center; gap: 14px; margin: 0 0 20px;
  font-size: var(--fs-xs); font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--oro);
}
.lp-label::before { content: ""; width: 32px; height: 1px; background: currentColor; opacity: .8; }
.lp-label--claro { color: var(--oro-2); }
.lp-label--sin::before { display: none; }

.lp-h2, .lp-hero__title {
  margin: 0 0 20px; font-family: var(--serif); font-weight: 400; letter-spacing: -.005em;
  color: var(--ink); font-variant-numeric: lining-nums;
}
.lp-h2 { font-size: var(--fs-t2); line-height: 1.12; }
/* Cada <span> es una línea: dos líneas fijas que no se parten (landing.js
   baja el tamaño si una no cabe). */
.lp-h2 span, .lp-hero__title span { display: block; white-space: nowrap; }
.lp-lead { max-width: 560px; margin: 0 0 28px; font-size: var(--fs-lead); line-height: 1.6; color: var(--ink-2); }
.lp-h4 { margin: 0 0 10px; font-size: 17px; font-weight: 500; line-height: 1.35; color: var(--ink); }

/* ── Botones y enlaces ─────────────────────────────────── */

.lp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px; white-space: nowrap;
  min-height: 56px; padding: 0 30px; border: 1px solid var(--noche); border-radius: 3px;
  background: var(--noche); color: #fff;
  font: 500 13px/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.lp-btn:hover { background: var(--noche-3); border-color: var(--noche-3); }
.lp-btn:disabled { opacity: .6; cursor: wait; }
.lp-btn--sm { min-height: 46px; padding: 0 26px; font-size: 12.5px; }
.lp-btn--block { width: 100%; }
.lp-btn--oro { background: var(--oro); border-color: var(--oro); color: var(--noche); }
.lp-btn--oro:hover { background: var(--oro-2); border-color: var(--oro-2); }
.lp-btn--blanco { background: #fff; border-color: #fff; color: var(--noche); }
.lp-btn--blanco:hover { background: var(--crema); border-color: var(--crema); }
.lp-btn--linea { background: transparent; color: var(--noche); }
.lp-btn--linea:hover { background: var(--noche); color: #fff; }
.lp-btn--linea-claro { background: transparent; border-color: rgba(255, 255, 255, .7); color: #fff; }
.lp-btn--linea-claro:hover { background: #fff; border-color: #fff; color: var(--noche); }

.lp-link {
  display: inline-flex; align-items: center; gap: 10px; padding: 0 0 8px; border: 0; border-bottom: 1px solid var(--oro);
  background: none; color: var(--ink); cursor: pointer;
  font: 500 13px/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; white-space: nowrap;
}
.lp-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }

/* Etiqueta sobre las fotos */
.lp-chip {
  position: absolute; left: 20px; bottom: 20px; z-index: 2; padding: 7px 12px; border-radius: 3px;
  background: var(--noche); color: #fff; font-size: 12px; font-weight: 400; line-height: 1.3; letter-spacing: .01em; pointer-events: none;
}
.lp-chip--claro { left: auto; right: 20px; background: rgba(255, 255, 255, .92); color: var(--noche); }

/* Foto que se amplía al tocarla */
.lp-media { position: relative; overflow: hidden; border-radius: var(--r); background: var(--arena); }
.lp-media > .lp-zoom, .lp-torre__foto > .lp-zoom, .lp-plano__marco > .lp-zoom {
  display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in;
}
.lp-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.lp-media:hover img { transform: scale(1.03); }

/* ── Cabecera ──────────────────────────────────────────── */

.lp-top {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50; height: var(--top);
  transition: height .4s var(--ease), background-color .4s var(--ease), border-color .4s var(--ease), transform .4s var(--ease);
}
.lp-top.is-scrolled { height: 76px; background: rgba(14, 26, 46, .94); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.lp-top__in {
  height: 100%; max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: 0 var(--gut);
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 24px;
}
/* Logo al centro: navegación partida a los lados y «Cotizar» a la derecha. */
.lp-top__logo { display: block; grid-column: 2; }
.lp-top__logo img { width: auto; height: 72px; transition: height .4s var(--ease); }
.lp-top.is-scrolled .lp-top__logo img { height: 56px; }
.lp-top__der { grid-column: 3; display: flex; align-items: center; justify-content: flex-end; gap: clamp(20px, 2.4vw, 36px); }
.lp-top__nav { display: none; gap: clamp(20px, 2.4vw, 36px); }
.lp-top__nav a { font-size: 14px; font-weight: 400; color: rgba(255, 255, 255, .9); text-decoration: none; transition: color .2s; }
.lp-top__nav a:hover { color: var(--oro-2); }
@media (min-width: 1000px) { .lp-top__nav { display: flex; } }
.lp-en-pie .lp-top { transform: translateY(-100%); }

/* ── Portada ───────────────────────────────────────────── */

.lp-hero { position: relative; display: flex; align-items: flex-end; min-height: max(640px, 100svh); background: var(--noche); color: #fff; overflow: hidden; }
.lp-hero__media { position: absolute; inset: 0; }
.lp-hero__img { width: 100%; height: 100%; object-fit: cover; animation: lp-hero-in 2.4s var(--ease) both; }
@keyframes lp-hero-in { from { transform: scale(1.06); } }
.lp-hero__media::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(14, 26, 46, .55) 0%, rgba(14, 26, 46, 0) 22%),
    linear-gradient(90deg, rgba(14, 26, 46, .9) 0%, rgba(14, 26, 46, .6) 45%, rgba(14, 26, 46, .2) 100%),
    linear-gradient(0deg, rgba(14, 26, 46, .75) 0%, rgba(14, 26, 46, 0) 50%);
}
.lp-hero__in {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: end;
  padding-top: calc(var(--top) + 64px); padding-bottom: clamp(48px, 7vw, 80px);
}
.lp-hero__title { font-size: var(--fs-t1); font-weight: 400; line-height: 1.06; color: #fff; margin-bottom: 24px; }
.lp-hero__lead { max-width: 500px; margin: 0 0 32px; font-size: 16.5px; line-height: 1.6; color: rgba(255, 255, 255, .82); }
.lp-confianza { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 36px 0 0; padding: 0; list-style: none; font-size: 13.5px; color: rgba(255, 255, 255, .78); }
.lp-confianza li { display: flex; align-items: center; gap: 8px; }
.lp-confianza .lp-ico, .lp-checks .lp-ico, .lp-sost .lp-ico { width: 17px; height: 17px; color: var(--oro); stroke-width: 1.6; }
.lp-confianza .lp-ico { color: var(--oro-2); }

.lp-precio { width: 100%; max-width: 300px; padding: 22px 22px 18px; border-radius: var(--r); background: #fff; color: var(--ink-2); box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .5); }
.lp-precio .lp-label { margin-bottom: 14px; }
.lp-precio__desde { margin: 0 0 4px; font-size: 14px; }
.lp-precio__valor { margin: 0; font-family: var(--serif); font-size: 38px; font-weight: 400; line-height: 1.05; color: var(--ink); font-variant-numeric: lining-nums; }
.lp-precio__nota { margin: 4px 0 20px; font-size: 12.5px; color: var(--ink-3); }
.lp-precio__pie { margin: 14px 0 0; font-size: 12.5px; text-align: center; color: var(--ink-3); }
@media (min-width: 1000px) {
  .lp-hero__in { grid-template-columns: minmax(0, 1fr) 300px; gap: 64px; }
}

/* ── Datos clave ───────────────────────────────────────── */

.lp-datos { border-bottom: 1px solid var(--line); }
.lp-cifras { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0 auto; padding-top: 48px; padding-bottom: 48px; list-style: none; }
.lp-cifras li { padding: 14px 18px; border-left: 1px solid var(--line); text-align: center; }
.lp-cifras li:first-child { border-left: 0; }
.lp-cifras strong { display: block; margin-bottom: 8px; font-family: var(--serif); font-size: clamp(32px, 3vw, 44px); font-weight: 400; line-height: 1; white-space: nowrap; color: var(--ink); font-variant-numeric: lining-nums; }
.lp-cifras span { display: block; font-size: 12.5px; line-height: 1.5; color: var(--ink-3); }
@media (max-width: 999px) {
  .lp-cifras { row-gap: 18px; }
  .lp-cifras li:last-child { grid-column: 1 / -1; }
}
@media (min-width: 1000px) { .lp-cifras { grid-template-columns: repeat(5, minmax(0, 1fr)); padding-top: 56px; padding-bottom: 56px; } }

/* ── Secciones ─────────────────────────────────────────── */

.lp-sec { padding: var(--sec) 0; }
.lp-sec--arriba0 { padding-top: 0; }
.lp-sec--arena { background: var(--arena); }
.lp-sec--noche { background: var(--noche); color: rgba(255, 255, 255, .72); }
.lp-sec--noche .lp-h2, .lp-sec--noche .lp-h4, .lp-sec--noche strong { color: #fff; }
.lp-sec--noche .lp-lead { color: rgba(255, 255, 255, .72); }

.lp-cabeza { margin-bottom: clamp(36px, 4vw, 56px); }
.lp-cabeza .lp-lead { margin-bottom: 0; }
.lp-cabeza--centro { text-align: center; }
.lp-cabeza--centro .lp-label { justify-content: center; }
.lp-cabeza--centro .lp-h2 { margin-bottom: 0; }
.lp-cabeza--fila { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 48px; }

/* Proyecto */
.lp-manifiesto { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; align-items: center; }
.lp-manifiesto__foto { max-width: 460px; aspect-ratio: 941 / 1672; }
.lp-manifiesto__foto img { object-position: 50% 100%; }
.lp-checks { margin: 0 0 36px; padding: 0; list-style: none; }
.lp-checks li { display: flex; gap: 12px; margin-bottom: 12px; font-size: 15px; line-height: 1.5; }
.lp-checks .lp-ico { margin-top: 2px; }
@media (min-width: 1000px) {
  .lp-manifiesto { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(56px, 7vw, 104px); }
  .lp-manifiesto__foto { max-width: none; aspect-ratio: auto; height: min(820px, 92vh); }
}

/* Amenidades piso a piso */
.lp-torre { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: start; }
.lp-torre__niveles { margin: 0; padding: 0; list-style: none; }
.lp-torre__niveles > li { border-bottom: 1px solid var(--line); }
.lp-nivel {
  display: flex; align-items: center; gap: 20px; width: 100%; padding: 22px 0; border: 0; background: none;
  text-align: left; color: var(--ink-3); cursor: pointer; transition: color .3s var(--ease);
}
.lp-nivel__num { flex: none; width: 64px; font-family: var(--serif); font-size: 28px; font-weight: 400; line-height: 1; color: var(--ink-3); font-variant-numeric: lining-nums; transition: color .3s var(--ease); }
.lp-nivel__txt { flex: 1; min-width: 0; }
.lp-nivel__piso { display: block; margin-bottom: 4px; font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); }
.lp-nivel__nombre { display: block; font-family: var(--serif); font-size: clamp(24px, 2vw, 30px); font-weight: 400; line-height: 1.15; color: var(--ink-2); transition: color .3s var(--ease); }
.lp-nivel .lp-ico { width: 18px; height: 18px; color: var(--ink-3); transition: transform .3s var(--ease), color .3s; }
.lp-nivel:hover .lp-nivel__nombre, .lp-nivel.is-on .lp-nivel__nombre { color: var(--ink); }
.lp-nivel.is-on .lp-nivel__num { color: var(--oro); }
.lp-nivel.is-on .lp-ico { color: var(--ink); transform: rotate(90deg); }
.lp-torre__niveles > li:has(.lp-nivel.is-on) { border-bottom-color: var(--ink); }
.lp-nivel__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ease); }
.lp-nivel__panel > * { min-height: 0; overflow: hidden; }
.lp-nivel.is-on + .lp-nivel__panel { grid-template-rows: 1fr; }
.lp-nivel__panel { grid-template-columns: minmax(0, 1fr); }
.lp-nivel__en { display: none; }
.lp-nivel__items { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0 0 0 84px; list-style: none; }
.lp-nivel.is-on + .lp-nivel__panel .lp-nivel__items { padding-bottom: 24px; }
.lp-nivel__items li {
  padding: 7px 14px; border: 1px solid var(--line); border-radius: 999px; background: #fff;
  font-size: 12.5px; line-height: 1.3; color: var(--ink); transition: border-color .2s, background-color .2s, color .2s;
}
.lp-nivel__item--foto { cursor: pointer; }
.lp-nivel__item--foto:hover, .lp-nivel__item--foto.is-on { border-color: var(--noche); background: var(--noche); color: #fff; }

.lp-torre__fotos { position: relative; aspect-ratio: 1 / 1; border-radius: var(--r); overflow: hidden; background: var(--arena); }
.lp-torre__foto { position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity .6s var(--ease); }
.lp-torre__foto.is-on { opacity: 1; pointer-events: auto; }
.lp-torre__foto img { width: 100%; height: 100%; object-fit: cover; transition: opacity .35s var(--ease); }
.lp-torre__mas { bottom: 20px; }
@media (min-width: 1000px) {
  .lp-torre { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(40px, 5vw, 64px); }
  .lp-torre__fotos { position: sticky; top: 96px; aspect-ratio: auto; height: min(640px, calc(100vh - 120px)); }
}
@media (max-width: 599px) {
  .lp-nivel { gap: 14px; padding: 18px 0; }
  .lp-nivel__num { width: 44px; font-size: 24px; }
  .lp-nivel__items { padding-left: 0; }
}

/* Ubicación */
.lp-ubic { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; align-items: center; }
.lp-dist { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 32px; margin: 0 0 48px; padding: 0; list-style: none; }
.lp-dist li { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line-2); font-size: 14.5px; }
.lp-dist strong { flex: none; font-size: 15px; font-weight: 500; color: #fff; }
.lp-ubic__media { aspect-ratio: 1 / 1; }
@media (min-width: 600px) { .lp-dist { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) {
  /* La foto sobresale del bloque de texto por arriba y por abajo. */
  .lp-ubic { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(48px, 6vw, 96px); align-items: stretch; }
  .lp-ubic__info { align-self: center; }
  .lp-ubic__media { aspect-ratio: auto; height: auto; min-height: 520px; margin: -56px 0; }
}

/* Tarjetas: tecnología e inversión */
.lp-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
.lp-card { padding: 26px 24px 22px; border: 1px solid var(--line); border-radius: var(--r); background: #fff; transition: border-color .3s, transform .4s var(--ease); }
.lp-card:hover { border-color: var(--oro); }
.lp-card p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--ink-2); }
.lp-card__ico { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 22px; border-radius: 50%; background: var(--arena); color: var(--oro); }
.lp-card__ico .lp-ico { width: 22px; height: 22px; }
.lp-cards--noche .lp-card { border-color: var(--line-2); background: var(--noche-2); }
.lp-cards--noche .lp-card:hover { border-color: rgba(212, 180, 126, .5); }
.lp-cards--noche .lp-card p { color: rgba(255, 255, 255, .66); }
.lp-cards--noche .lp-card__ico { background: var(--noche); color: var(--oro-2); }
@media (min-width: 640px) { .lp-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .lp-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } }

.lp-sost { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 32px; margin: 48px 0 0; padding: 0; list-style: none; font-size: 14px; }
.lp-sost li { display: flex; align-items: center; gap: 8px; }
.lp-aviso { margin: 56px 0 0; padding-top: 24px; border-top: 1px solid var(--line-2); font-size: 12.5px; color: rgba(255, 255, 255, .55); }

/* Galería en mosaico */
.lp-g { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
.lp-g li, .lp-g figure { min-width: 0; height: 100%; }
.lp-g figure { aspect-ratio: 4 / 3; }
.lp-g--a, .lp-g--f, .lp-g--g { grid-column: 1 / -1; }
.lp-g .lp-chip { left: 14px; bottom: 14px; font-size: 11.5px; }
@media (min-width: 1000px) {
  /* Mosaico cerrado: foto grande, dos columnas a la derecha y una fila de dos abajo. */
  .lp-g {
    grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px;
    grid-template-rows: clamp(220px, 23vw, 336px) clamp(48px, 5vw, 72px) clamp(170px, 18vw, 260px) clamp(220px, 21vw, 300px);
    grid-template-areas: "a a a a b b" "a a a a e e" "c c d d e e" "f f f g g g";
  }
  .lp-g figure { aspect-ratio: auto; }
  .lp-g--a { grid-area: a; } .lp-g--b { grid-area: b; } .lp-g--c { grid-area: c; } .lp-g--d { grid-area: d; }
  .lp-g--e { grid-area: e; } .lp-g--f { grid-area: f; } .lp-g--g { grid-area: g; }
  .lp-g--f, .lp-g--g { padding-top: 16px; }
}

/* Tipologías */
.lp-planos__tabs { display: flex; gap: 10px; flex-wrap: wrap; }
.lp-planos__tab {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 172px; padding: 14px 18px;
  border: 1px solid var(--line); border-radius: var(--r); background: transparent; color: var(--ink); text-align: left; cursor: pointer;
  transition: background-color .3s var(--ease), border-color .3s, color .3s;
}
.lp-planos__tab:hover { border-color: var(--ink-3); }
.lp-planos__tab.is-on { background: var(--noche); border-color: var(--noche); color: #fff; }
.lp-planos__tab-nombre { font-size: 15px; font-weight: 500; line-height: 1.2; }
.lp-planos__tab-area { font-size: 12px; color: var(--ink-3); }
.lp-planos__tab.is-on .lp-planos__tab-area { color: rgba(255, 255, 255, .7); }

.lp-plano { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: center; }
.lp-plano[hidden] { display: none; }
.lp-plano__fig { padding: 20px 20px 16px; border: 1px solid var(--line); border-radius: var(--r); background: #fff; }
.lp-plano__marco { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r); overflow: hidden; background: #fff; }
.lp-plano__marco img { width: 100%; height: 100%; object-fit: contain; padding: 12px; }
.lp-plano__marco .lp-chip { left: 12px; bottom: 12px; }
.lp-plano__fig figcaption { margin-top: 14px; font-size: 12px; text-align: center; color: var(--ink-3); }
.lp-plano__area { display: flex; align-items: baseline; gap: 12px; margin: 0 0 28px; font-family: var(--serif); font-size: clamp(52px, 5vw, 72px); font-weight: 400; line-height: 1; color: var(--ink); font-variant-numeric: lining-nums; }
.lp-plano__area small { font-family: var(--sans); font-size: 15px; font-weight: 300; color: var(--ink-2); }
.lp-ficha { margin: 0 0 36px; border-top: 1px solid var(--line); }
.lp-ficha > div { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.lp-ficha dt { font-size: 13px; color: var(--ink-3); }
.lp-ficha dd { margin: 0; font-size: 15px; font-weight: 400; color: var(--ink); text-align: right; }
@media (min-width: 1000px) {
  .lp-plano { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(48px, 6vw, 88px); }
}

/* Preguntas frecuentes */
.lp-faq { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: start; }
.lp-faq__lista { border-top: 1px solid var(--line); }
.lp-faq__item { border-bottom: 1px solid var(--line); }
.lp-faq__item summary {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 0;
  font-size: 16.5px; font-weight: 400; color: var(--ink); cursor: pointer; list-style: none;
}
.lp-faq__item summary::-webkit-details-marker { display: none; }
.lp-faq__signo { position: relative; flex: none; width: 14px; height: 14px; }
.lp-faq__signo::before, .lp-faq__signo::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.4px; margin-top: -.7px; background: var(--ink); transition: transform .3s var(--ease); }
.lp-faq__signo::after { transform: rotate(90deg); }
.lp-faq__item[open] .lp-faq__signo::after { transform: rotate(0); }
.lp-faq__item p { margin: -6px 0 0; padding: 0 40px 24px 0; font-size: 15px; line-height: 1.65; color: var(--ink-2); }
@media (min-width: 1000px) {
  .lp-faq { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(56px, 7vw, 104px); }
  .lp-faq__intro { position: sticky; top: 110px; }
}

/* ── Registro ──────────────────────────────────────────── */

.lp-cierre { background: linear-gradient(100deg, var(--noche) 0%, var(--noche-2) 55%, #23375A 100%); color: rgba(255, 255, 255, .74); }
.lp-cierre .lp-h2 { color: #fff; }
.lp-cierre .lp-lead { color: rgba(255, 255, 255, .74); }
.lp-cierre__in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; align-items: center; padding-top: var(--sec); padding-bottom: var(--sec); }
.lp-cierre__precio { display: flex; align-items: baseline; gap: 14px; margin: 0 0 28px; font-family: var(--serif); font-size: clamp(30px, 2.6vw, 38px); color: var(--oro-2); font-variant-numeric: lining-nums; }
.lp-cierre__precio span { font-family: var(--sans); font-size: 14px; color: rgba(255, 255, 255, .74); }
.lp-pasos { margin: 0; padding: 0; list-style: none; counter-reset: paso; font-size: 14px; }
.lp-pasos li { counter-increment: paso; margin-bottom: 10px; }
.lp-pasos li::before { content: counter(paso) ". "; color: rgba(255, 255, 255, .5); }
@media (min-width: 1000px) { .lp-cierre__in { grid-template-columns: minmax(0, 1fr) 480px; gap: clamp(56px, 7vw, 120px); } }

.lp-form { padding: 34px 32px 28px; border-radius: var(--r); background: #fff; color: var(--ink-2); box-shadow: 0 40px 100px -40px rgba(0, 0, 0, .55); }
.lp-form__titulo { margin: 0 0 4px; font-family: var(--serif); font-size: 32px; font-weight: 400; line-height: 1.1; color: var(--ink); }
.lp-form__titulo { margin-bottom: 24px; }
.lp-form__seguro { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 16px 0 0; font-size: 12.5px; color: var(--ink-3); }
.lp-form__seguro .lp-ico { width: 15px; height: 15px; }

.field { position: relative; margin-bottom: 16px; }
.field > label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 500; color: var(--ink); }
.field input {
  width: 100%; min-height: 52px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 3px;
  background: #fff; color: var(--ink); font: 400 15px/1.3 var(--sans);
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.field input::placeholder { color: #9AA1AD; }
.field input:hover { border-color: #CDBF9F; }
.field input:focus { outline: none; border-color: var(--noche); box-shadow: 0 0 0 3px rgba(184, 147, 90, .22); }
.field input.is-invalid { border-color: var(--error); box-shadow: 0 0 0 3px rgba(179, 38, 30, .12); }
.field input:-webkit-autofill { -webkit-box-shadow: 0 0 0 60px #fff inset; -webkit-text-fill-color: var(--ink); }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.vb-ts { margin: 4px 0 12px; }
.vb-ts:empty { margin: 0; }
.form-msg { margin: 12px 0 0; font-size: var(--fs-sm); line-height: 1.45; text-align: center; color: var(--ok); }
.form-msg:empty { margin: 0; }
.form-msg.is-error { color: var(--error); }
.accept { display: flex; align-items: flex-start; gap: 10px; margin: 4px 0 20px; font-size: 13px; line-height: 1.5; color: var(--ink-2); }
.accept input { flex: none; margin: 2px 0 0; width: 16px; height: 16px; accent-color: var(--noche); cursor: pointer; }
.accept a { color: var(--ink); }
.done { padding: 16px 0; text-align: center; }
.done__title { margin: 0 0 8px; font-family: var(--serif); font-size: 28px; font-weight: 400; color: var(--ink); }
.done__text { margin: 0; }

/* selector de país (intl-tel-input) */
.field .iti { display: block; width: 100%; }
.iti__flag, .iti__flag-box { display: none; }
.iti__selected-country { background: transparent; border: 0; padding-left: 12px; border-radius: 3px 0 0 3px; }
.iti__selected-country:hover { background: var(--crema); }
.iti__selected-dial-code { font-size: 15px; color: var(--ink); margin-left: 6px; }
.iti__arrow { border-top-color: var(--ink-3); }
.iti__arrow--up { border-bottom-color: var(--ink-3); }
.iti--container .iti__dropdown-content, .iti__dropdown-content { background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 24px 60px -20px rgba(14, 26, 46, .35); overflow: hidden; }
.iti__search-input { width: 100%; padding: 12px 14px; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); font: 400 15px var(--sans); background: #fff; }
.iti__search-input:focus { outline: none; border-bottom-color: var(--ink); }
.iti__country-list { max-height: 268px; padding: 4px 0; }
.iti__country { padding: 10px 14px; font: 400 14px/1.4 var(--sans); color: var(--ink); }
.iti__dial-code { color: var(--ink-3); }
.iti__country.iti__highlight, .iti__country:hover { background: var(--crema); }

/* Ventana emergente del formulario */
.lp-sin-scroll, .lp-sin-scroll body { overflow: hidden; }
.lp-pop__cabeza { display: none; }
.lp-velo { position: fixed; inset: 0; z-index: 90; background: rgba(14, 26, 46, .7); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.lp-velo[hidden] { display: none; }
.lp-form.is-pop {
  position: fixed; z-index: 100; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: min(480px, calc(100vw - 24px)); max-height: calc(100svh - 24px); overflow: auto;
  margin: 0; animation: lp-entra .4s var(--ease);
}
.lp-form.is-pop .lp-pop__cabeza { display: block; position: relative; text-align: center; }
.lp-form.is-pop .lp-form__titulo { text-align: center; }
@keyframes lp-entra { from { opacity: 0; margin-top: 16px; } }
.lp-marca { width: 32px; height: auto; margin: 0 auto 12px; }
.lp-pop__cerrar {
  position: absolute; top: -18px; right: -14px; width: 40px; height: 40px;
  border: 0; border-radius: 50%; background: var(--crema); color: var(--ink);
  font: 300 24px/1 var(--sans); cursor: pointer;
}
.lp-pop__cerrar:hover { background: var(--arena); }

/* ── Pie ───────────────────────────────────────────────── */

.lp-pie { padding: 48px 0 40px; background: var(--noche); color: rgba(255, 255, 255, .6); font-size: 13px; }

/* Botón flotante (escritorio) */
.lp-fab {
  position: fixed; right: 28px; bottom: 28px; z-index: 55; display: none; place-items: center; width: 58px; height: 58px;
  border-radius: 50%; background: var(--oro); color: var(--noche); box-shadow: 0 16px 40px -12px rgba(14, 26, 46, .5);
  transition: transform .3s var(--ease), background-color .3s, opacity .3s;
}
.lp-fab:hover { background: var(--oro-2); transform: translateY(-2px); }
.lp-fab .lp-ico { width: 26px; height: 26px; stroke-width: 1.6; }
.lp-en-pie .lp-fab { opacity: 0; pointer-events: none; }
@media (min-width: 1000px) { .lp-fab { display: grid; } }

/* ── Ventana para ampliar fotos ────────────────────────── */

.lp-lb {
  position: fixed; inset: 0; z-index: 120; display: grid; grid-template-columns: 72px minmax(0, 1fr) 72px; align-items: center;
  background: rgba(8, 15, 27, .94); color: #fff; animation: lp-lb-in .3s var(--ease);
}
.lp-lb[hidden] { display: none; }
@keyframes lp-lb-in { from { opacity: 0; } }
.lp-lb__fig { grid-column: 2; margin: 0; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.lp-lb__fig img { max-width: 100%; max-height: calc(100svh - 120px); width: auto; height: auto; border-radius: 4px; object-fit: contain; }
.lp-lb__fig figcaption { display: flex; gap: 18px; font-size: var(--fs-sm); letter-spacing: .04em; color: rgba(255, 255, 255, .86); }
.lp-lb__cuenta { color: rgba(255, 255, 255, .5); font-variant-numeric: tabular-nums; }
.lp-lb__nav, .lp-lb__cerrar {
  display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid rgba(255, 255, 255, .28); border-radius: 50%;
  background: rgba(255, 255, 255, .06); color: #fff; cursor: pointer; transition: background-color .2s, border-color .2s;
}
.lp-lb__nav:hover, .lp-lb__cerrar:hover { background: rgba(255, 255, 255, .16); border-color: #fff; }
.lp-lb__nav { justify-self: center; }
.lp-lb__nav--prev { grid-column: 1; grid-row: 1; }
.lp-lb__nav--next { grid-column: 3; grid-row: 1; }
.lp-lb__cerrar { position: absolute; top: 18px; right: 18px; }
.lp-lb.is-solo .lp-lb__nav, .lp-lb.is-solo .lp-lb__cuenta { display: none; }
@media (max-width: 699px) {
  .lp-lb { grid-template-columns: 0 minmax(0, 1fr) 0; padding: 0 12px; }
  .lp-lb__nav { position: absolute; bottom: 22px; width: 46px; height: 46px; }
  .lp-lb__nav--prev { left: calc(50% - 58px); }
  .lp-lb__nav--next { left: calc(50% + 12px); }
  .lp-lb__fig img { max-height: calc(100svh - 200px); }
}

/* ── Barra fija en móvil ───────────────────────────────── */

.lp-barra {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); border-top: 1px solid var(--line);
  transform: translateY(110%); transition: transform .3s var(--ease);
}
.lp-barra.is-on { transform: none; }
.lp-barra[hidden] { display: none; }
.lp-en-pie .lp-barra { transform: translateY(110%); }
.lp-barra__precio { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); line-height: 1.3; }
.lp-barra__precio strong { display: block; font-family: var(--serif); font-size: 22px; font-weight: 400; letter-spacing: 0; text-transform: none; }
@media (min-width: 1000px) { .lp-barra { display: none !important; } }

/* ── Móvil ─────────────────────────────────────────────── */

@media (max-width: 999px) {
  :root { --top: 76px; }
  .lp-top__logo img { height: 56px; }
  .lp-top.is-scrolled { height: 64px; }
  .lp-top.is-scrolled .lp-top__logo img { height: 44px; }
  .lp-hero { min-height: 100svh; }
  .lp-hero__in { padding-top: calc(var(--top) + 48px); }
  .lp-precio { max-width: none; }
  .lp-cabeza--fila > .lp-btn, .lp-cabeza--fila > .lp-link { order: 2; }
  .lp-planos__tabs { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .lp-planos__tab { min-width: 0; padding: 12px; }
  .lp-planos__tab-area { font-size: 11px; }
}
@media (max-width: 599px) {
  :root { --fs-lead: 16.5px; }
  .lp-hero__title { font-size: 8.6vw; }
  .lp-h2 { font-size: 7.6vw; }
  .lp-hero__lead { font-size: 16.5px; }
  .lp-acciones .lp-btn { width: 100%; }
  .lp-hero .lp-acciones { gap: 12px; }
  .lp-btn { padding: 0 20px; }
  .lp-form { padding: 28px 20px 22px; }
  .lp-cifras li { padding: 12px 10px; }
  .lp-cifras li:nth-child(odd) { border-left: 0; }
  .lp-cifras strong { font-size: 30px; }
  .lp-plano__fig { padding: 12px 12px 10px; }
  .lp-ficha dd { font-size: 14px; }
  .lp-planos__tab-tipo { display: none; }
}

/* ── Aparición suave ───────────────────────────────────── */

.js .lp-reveal { opacity: 0; transform: translateY(24px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.js .lp-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .lp-reveal { opacity: 1; transform: none; transition: none; }
  .lp-hero__img, .lp-form.is-pop, .lp-lb { animation: none; }
  .lp-btn, .lp-barra, .lp-media img, .lp-torre__foto, .lp-nivel__panel { transition: none; }
}


/* Galería: título en una sola línea, alineado con el botón. */
#galeria .lp-cabeza--fila { align-items: center; }
#galeria .lp-cabeza .lp-h2 { margin-bottom: 0; }

/* Tipologías: título en una línea y pestañas a la derecha, en la misma fila. */
#planos .lp-cabeza--fila .lp-h2 { margin-bottom: 14px; }
@media (min-width: 1000px) {
  #planos .lp-cabeza--fila { flex-wrap: nowrap; }
  #planos .lp-planos__tabs { flex-wrap: nowrap; margin-left: auto; justify-content: flex-end; }
  #planos .lp-planos__tab { min-width: 150px; }
}
.lp-cabeza--fila > div { flex: 1 1 0; min-width: 0; }
@media (max-width: 999px) { .lp-cabeza--fila > div { flex-basis: 100%; } }

/* Registro: foto de fondo tenue bajo el azul noche. */
.lp-cierre { position: relative; overflow: hidden; }
.lp-cierre__media { position: absolute; inset: 0; }
.lp-cierre__media img { width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.lp-cierre__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(14, 26, 46, .92) 0%, rgba(14, 26, 46, .7) 55%, rgba(14, 26, 46, .45) 100%); }
.lp-cierre__in { position: relative; }

/* ── Scroll suave (Lenis) y animaciones de entrada ─────── */

html.lenis, html.lenis body { height: auto; }
html.lenis { scroll-behavior: auto; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }
.lenis.lenis-smooth iframe { pointer-events: none; }

/* Portada: el texto sube en cascada al cargar; la foto se mueve con el scroll. */
.lp-hero__img { will-change: transform; animation: none; transform: scale(1.04); }
.lp-hero__media { animation: lp-hero-in 2.2s var(--ease) both; }
@keyframes lp-hero-in { from { opacity: .4; transform: scale(1.06); } }
.lp-hero__title span, .lp-hero__lead, .lp-hero .lp-acciones, .lp-precio { animation: lp-sube 1.1s var(--ease) both; }
.lp-hero__title span:nth-child(2) { animation-delay: .1s; }
.lp-hero__lead { animation-delay: .22s; }
.lp-hero .lp-acciones { animation-delay: .34s; }
.lp-precio { animation-delay: .5s; }
@keyframes lp-sube { from { opacity: 0; transform: translateY(26px); } }

/* Al entrar en pantalla: subida suave, escalonada en listas; las fotos se
   descubren de abajo arriba con un leve zoom de salida. */
.js .lp-reveal { transition-delay: calc(var(--lp-i, 0) * 90ms); }
.js .lp-reveal.lp-media, .js .lp-reveal .lp-media, .js .lp-g .lp-reveal .lp-media { clip-path: inset(0 0 0 0); }
.js .lp-reveal:not(.is-in).lp-media, .js .lp-reveal:not(.is-in) .lp-media { clip-path: inset(12% 0 0 0); }
.js .lp-reveal .lp-media, .js .lp-reveal.lp-media { transition: clip-path 1.3s var(--ease); transition-delay: inherit; }
.js .lp-reveal:not(.is-in) .lp-media img, .js .lp-reveal:not(.is-in).lp-media img { transform: scale(1.08); }
.js .lp-reveal .lp-media img, .js .lp-reveal.lp-media img { transition: transform 1.6s var(--ease); }

@media (prefers-reduced-motion: reduce) {
  .lp-hero__media, .lp-hero__title span, .lp-hero__lead, .lp-hero .lp-acciones, .lp-precio { animation: none; }
  .js .lp-reveal .lp-media, .js .lp-reveal.lp-media { clip-path: none; transition: none; }
  .js .lp-reveal:not(.is-in) .lp-media img { transform: none; }
}

/* Botón flotante: oculto en la portada, aparece al bajar. */
.lp-fab { opacity: 0; transform: translateY(12px); pointer-events: none; }
.lp-tras-portada .lp-fab { opacity: 1; transform: none; pointer-events: auto; }
.lp-tras-portada.lp-en-pie .lp-fab { opacity: 0; pointer-events: none; }
.lp-tras-portada .lp-fab:hover { transform: translateY(-2px); }

/* Con la barra de administración de WordPress (sesión iniciada). */
.admin-bar .lp-top { top: 32px; }
@media (max-width: 782px) { .admin-bar .lp-top { top: 46px; } }
@media (max-width: 600px) { .admin-bar .lp-top { top: 0; } }

/* Menú de la barra en mayúsculas espaciadas. */
.lp-top__nav a { font-size: 12.5px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }

/* Portada: overlay más ligero (la foto se ve más) y foto con margen para el parallax. */
.lp-hero__img { transform: scale(1.08); transform-origin: 50% 30%; }
.lp-hero__media::after {
  background:
    linear-gradient(180deg, rgba(14, 26, 46, .45) 0%, rgba(14, 26, 46, 0) 20%),
    linear-gradient(90deg, rgba(14, 26, 46, .72) 0%, rgba(14, 26, 46, .4) 45%, rgba(14, 26, 46, .05) 100%),
    linear-gradient(0deg, rgba(14, 26, 46, .55) 0%, rgba(14, 26, 46, 0) 45%);
}
.lp-cifras strong { font-variant-numeric: lining-nums tabular-nums; }

/* ── Ajustes de celular ────────────────────────────────── */
@media (max-width: 599px) {
  /* Portada limpia: el precio ya va en la barra fija de abajo. */
  .lp-precio { display: none; }
  .lp-hero { min-height: 92svh; }
  .lp-hero__in { padding-bottom: 56px; }

  /* Títulos de una línea: en pantallas angostas se reparten en dos. */
  .lp-h2[data-una] span { white-space: normal; text-wrap: balance; }

  /* Botones y enlaces apilados y centrados. */
  .lp-cabeza--fila > .lp-btn { width: 100%; }
  .lp-acciones { flex-direction: column; align-items: stretch; }
  .lp-acciones .lp-link { align-self: center; margin-top: 4px; }

  /* Pie centrado. */
}

/* ── Escala fluida: textos y espacios con clamp ─────────
   Crecen y se encogen con el ancho, de 1000 a 1920 px, para que la página
   se vea proporcionada en portátiles pequeños y en monitores grandes. */
:root {
  --wrap:    clamp(1000px, 78vw, 1440px);
  --gut:     clamp(20px, 4vw, 72px);
  --sec:     clamp(64px, 7.5vw, 144px);
  --fs-base: clamp(15px, .5vw + 11px, 17px);
  --fs-lead: clamp(15.5px, .45vw + 11.5px, 19px);
  --fs-t2:   clamp(30px, 2.3vw + 12px, 58px);
  --fs-t1:   clamp(34px, 2.6vw + 14px, 68px);
}
@media (max-width: 999px) { :root { --wrap: 100%; } }
body { font-size: var(--fs-base); }

.lp-top__nav a { font-size: clamp(11.5px, .25vw + 9px, 13.5px); }
.lp-top__logo img { height: clamp(56px, 3.2vw + 26px, 84px); }
.lp-top.is-scrolled .lp-top__logo img { height: clamp(44px, 2vw + 24px, 62px); }
.lp-btn { min-height: clamp(48px, 1.2vw + 40px, 60px); padding: 0 clamp(20px, 1.4vw + 10px, 36px); font-size: clamp(12px, .2vw + 10.5px, 14px); }
.lp-btn--sm { min-height: clamp(42px, .8vw + 36px, 50px); }
.lp-link { font-size: clamp(12px, .2vw + 10.5px, 14px); }

.lp-hero__lead { font-size: clamp(15.5px, .4vw + 12px, 19px); max-width: clamp(420px, 34vw, 600px); }
.lp-precio { max-width: clamp(280px, 18vw + 100px, 360px); padding: clamp(18px, 1.2vw + 8px, 30px); }
.lp-precio__valor { font-size: clamp(32px, 1.6vw + 16px, 48px); }
@media (min-width: 1000px) { .lp-hero__in { grid-template-columns: minmax(0, 1fr) clamp(280px, 18vw + 100px, 360px); } }

.lp-cifras strong { font-size: clamp(30px, 1.8vw + 12px, 54px); }
.lp-cifras span { font-size: clamp(11.5px, .2vw + 10px, 14px); }
.lp-checks li, .lp-dist li, .lp-sost { font-size: clamp(14px, .3vw + 11px, 16.5px); }
.lp-h4 { font-size: clamp(16px, .35vw + 12.5px, 20px); }
.lp-card { padding: clamp(22px, 1.4vw + 10px, 36px) clamp(20px, 1.3vw + 8px, 32px); }
.lp-card p { font-size: clamp(13.5px, .25vw + 11px, 15.5px); }
.lp-nivel { padding: clamp(18px, 1vw + 8px, 28px) 0; }
.lp-nivel__nombre { font-size: clamp(22px, 1.3vw + 10px, 36px); }
.lp-nivel__num { font-size: clamp(24px, 1vw + 14px, 36px); }
.lp-nivel__items li { font-size: clamp(12px, .2vw + 10.5px, 14px); }
.lp-planos__tab-nombre { font-size: clamp(14px, .3vw + 11px, 17px); }
.lp-plano__area { font-size: clamp(48px, 3vw + 18px, 88px); }
.lp-ficha dd { font-size: clamp(14px, .25vw + 11.5px, 16.5px); }
.lp-faq__item summary { font-size: clamp(15.5px, .35vw + 12px, 19px); padding: clamp(18px, 1vw + 8px, 28px) 0; }
.lp-faq__item p { font-size: clamp(14px, .3vw + 11px, 16.5px); }
.lp-form { padding: clamp(26px, 1.6vw + 12px, 44px) clamp(20px, 1.6vw + 10px, 40px); }
.lp-form__titulo { font-size: clamp(26px, 1.2vw + 14px, 38px); }
.lp-cierre__precio { font-size: clamp(28px, 1.6vw + 12px, 44px); }
@media (min-width: 1000px) { .lp-cierre__in { grid-template-columns: minmax(0, 1fr) clamp(420px, 20vw + 200px, 540px); } }
@media (max-width: 1279px) { .lp-planos__tab-tipo { display: none; } #planos .lp-planos__tab { min-width: 120px; } }

/* ── Cifras con las áreas exactas y destacado de amenidades ── */
@media (min-width: 1000px) {
  .lp-cifras { grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, 1fr); padding-bottom: clamp(32px, 2.5vw, 48px); }
}
@media (max-width: 999px) {
  .lp-cifras li, .lp-cifras li:nth-child(odd) { border-left: 0; }
  .lp-cifras li:nth-child(2) { order: -1; grid-column: 1 / -1; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
  .lp-cifras li:nth-child(3) { border-left: 1px solid var(--line); }
  .lp-cifras li:last-child { grid-column: 1 / -1; }
}
@media (max-width: 599px) { .lp-cifras li:nth-child(2) strong { font-size: clamp(28px, 8.6vw, 36px); } }

.lp-destacado {
  display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2vw, 36px);
  margin: 0 auto; padding: clamp(28px, 2.6vw, 48px) 0 clamp(40px, 3.6vw, 64px); border-top: 1px solid var(--line);
  text-align: left;
}
.lp-destacado__num {
  font-family: var(--serif); font-weight: 400; font-size: clamp(64px, 5vw + 20px, 128px); line-height: .9;
  color: var(--oro); font-variant-numeric: lining-nums tabular-nums;
}
.lp-destacado__txt { display: flex; flex-direction: column; gap: 6px; }
.lp-destacado__titulo { font-family: var(--serif); font-size: clamp(24px, 1.5vw + 10px, 40px); line-height: 1.1; color: var(--ink); }
.lp-destacado__sub { font-size: clamp(12px, .25vw + 10px, 15px); font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); }
@media (max-width: 599px) {
  .lp-destacado { flex-direction: column; gap: 10px; text-align: center; }
  .lp-destacado__txt { align-items: center; }
}

/* Interiores bajo los planos: la sala con vista al mar a la vista. */
.lp-interior { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: clamp(48px, 5vw, 96px); }
.lp-interior .lp-media { aspect-ratio: 16 / 10; }
@media (min-width: 1000px) {
  .lp-interior { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; }
  .lp-interior .lp-media { aspect-ratio: auto; height: clamp(360px, 30vw, 560px); }
}

/* ── Selector de país del WhatsApp: que se lea como selector ── */
.field .iti__selected-country { padding: 0 12px 0 14px; border-right: 1px solid var(--line); }
.field .iti__selected-country[data-iso]::before {
  content: attr(data-iso); margin-right: 8px; padding: 3px 6px; border-radius: 3px;
  background: var(--arena); color: var(--ink); font: 600 11.5px/1 var(--sans); letter-spacing: .06em;
}
.field .iti__selected-country-primary { order: 3; padding: 0 0 0 8px; }
.field .iti__selected-dial-code { order: 2; margin-left: 0; font-weight: 500; }
.field .iti__arrow { border-top-color: var(--ink); }
.field-ayuda { margin: 6px 0 0; font-size: 12.5px; line-height: 1.4; color: var(--ink-3); }

/* ── Ajustes del documento del cliente (16-oct) ─────────── */

/* Cifras y destacado en una sola tipografía, más gruesa: Campton medium
   para los números y Campton para los textos. */
.lp-cifras strong, .lp-destacado__num {
  font-family: var(--sans); font-weight: 500; letter-spacing: -.02em; line-height: 1;
}
.lp-cifras strong { font-size: clamp(26px, 1.5vw + 10px, 44px); margin-bottom: 10px; }
.lp-cifras span { font-family: var(--sans); font-weight: 400; color: var(--ink-2); }
.lp-destacado__num { font-size: clamp(54px, 4vw + 16px, 104px); }
.lp-destacado__titulo { font-family: var(--sans); font-weight: 500; font-size: clamp(19px, .9vw + 10px, 28px); letter-spacing: -.01em; }
@media (max-width: 599px) {
  .lp-cifras strong { font-size: 26px; }
  .lp-cifras li:nth-child(2) strong { font-size: clamp(24px, 7.4vw, 32px); }
}

/* La torre completa, sin recortar arriba ni abajo. */
.lp-manifiesto__foto { aspect-ratio: 941 / 1672; height: auto; }
.lp-manifiesto__foto img { object-fit: cover; object-position: 50% 50%; }
@media (min-width: 1000px) {
  .lp-manifiesto__foto { max-width: none; aspect-ratio: 941 / 1672; height: auto; max-height: none; }
}

/* Sostenibilidad: cada punto con su ícono. */
.lp-sost { gap: 14px 22px; }
.lp-sost li { gap: 12px; padding: 10px 18px 10px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); }
.lp-sost .lp-ico { width: 26px; height: 26px; padding: 4px; border-radius: 50%; background: var(--arena); color: var(--oro); stroke-width: 1.5; }
@media (max-width: 599px) {
  .lp-sost { flex-direction: column; align-items: stretch; }
  .lp-sost li { border-radius: var(--r); }
}

/* ══ Auditoría UX (taste): ajustes sin rediseñar ══════════════════════
   Tipografía nunca bajo 12 px y máximo 3 pesos (300/400/500); animaciones
   solo de transform/opacity con duraciones de 100–300 ms; áreas táctiles
   de 44 px; superficies elevadas con borde de 1 px y sombras suaves. */

:root { --dur: .3s; --dur-r: .2s; --ease-out: cubic-bezier(.16, 1, .3, 1); }

/* Tipografía: mínimo 12 px */
.lp-label { font-size: 12px; }
.lp-nivel__piso, .lp-barra__precio, .lp-planos__tab-area, .lp-g .lp-chip { font-size: 12px; }
.lp-top__nav a { font-size: clamp(12px, .2vw + 9.5px, 13.5px); }
.lp-cifras span { font-size: clamp(12px, .2vw + 10px, 14px); }
.field .iti__selected-country[data-iso]::before { font-weight: 500; font-size: 12px; }

/* Cabecera: alto fijo; el logo se encoge con transform, no con height */
.lp-top, .lp-top.is-scrolled { height: var(--top); transition: background-color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out); }
.lp-top__logo img, .lp-top.is-scrolled .lp-top__logo img { height: clamp(56px, 3.2vw + 26px, 80px); transform-origin: 50% 50%; transition: transform var(--dur) var(--ease-out); }
.lp-top.is-scrolled .lp-top__logo img { transform: scale(.78); }
@media (max-width: 999px) {
  .lp-top, .lp-top.is-scrolled { height: 72px; }
  .lp-top__logo img, .lp-top.is-scrolled .lp-top__logo img { height: 54px; }
}

/* Entradas: 300 ms, recorrido corto, escalonado de 30 ms */
.js .lp-reveal { transform: translateY(12px); transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out); transition-delay: calc(var(--lp-i, 0) * 30ms); }
.js .lp-reveal .lp-media, .js .lp-reveal.lp-media, .js .lp-reveal:not(.is-in).lp-media, .js .lp-reveal:not(.is-in) .lp-media { clip-path: none; transition: none; }
.js .lp-reveal:not(.is-in) .lp-media img, .js .lp-reveal:not(.is-in).lp-media img { transform: scale(1.03); }
.js .lp-reveal .lp-media img, .js .lp-reveal.lp-media img, .lp-media img { transition: transform var(--dur) var(--ease-out); }
.lp-hero__media { animation: lp-fade var(--dur) var(--ease-out) both; }
.lp-hero__title span, .lp-hero__lead, .lp-hero .lp-acciones, .lp-precio { animation: lp-sube var(--dur) var(--ease-out) both; }
.lp-hero__title span:nth-child(2) { animation-delay: 30ms; }
.lp-hero__lead { animation-delay: 60ms; }
.lp-hero .lp-acciones { animation-delay: 90ms; }
.lp-precio { animation-delay: 120ms; }
@keyframes lp-sube { from { opacity: 0; transform: translateY(12px); } }
@keyframes lp-fade { from { opacity: 0; } }
.lp-torre__foto, .lp-torre__foto img { transition-duration: var(--dur); }
.lp-form.is-pop { animation-duration: var(--dur); }
.lp-btn, .lp-planos__tab, .lp-card, .lp-nivel, .lp-nivel__items li { transition-duration: var(--dur-r); }

/* Amenidades: el panel del nivel aparece sin animar su alto */
.lp-nivel__panel { display: none; transition: none; }
.lp-nivel.is-on + .lp-nivel__panel { display: block; animation: lp-fade var(--dur-r) var(--ease-out); }
.lp-nivel__panel > * { overflow: visible; }

/* Áreas táctiles de 44 px */
.lp-top__nav a { display: inline-flex; align-items: center; min-height: 44px; }
.lp-link { min-height: 44px; padding-top: 14px; }
.lp-btn--sm { min-height: 44px; }
.lp-nivel__items li { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; }
.lp-pop__cerrar { width: 44px; height: 44px; }

/* Superficies elevadas: borde de 1 px y sombra suave */
.lp-precio { border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(14, 26, 46, .06), 0 16px 40px -16px rgba(14, 26, 46, .07); }
.lp-form { border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(14, 26, 46, .06), 0 16px 40px -16px rgba(14, 26, 46, .07); }
.lp-fab { border: 1px solid rgba(255, 255, 255, .55); box-shadow: 0 1px 2px rgba(14, 26, 46, .06), 0 12px 28px -12px rgba(14, 26, 46, .07); }
.iti--container .iti__dropdown-content, .iti__dropdown-content { box-shadow: 0 16px 40px -16px rgba(14, 26, 46, .07); }

/* Sostenibilidad: lista con ícono, sin píldoras decorativas */
.lp-sost li { padding: 0; border: 0; border-radius: 0; background: none; }
@media (max-width: 599px) { .lp-sost { align-items: flex-start; } .lp-sost li { border-radius: 0; } }

/* ── Preguntas frecuentes: tarjetas numeradas ─────────── */
.lp-faq__lista { display: grid; gap: 12px; border-top: 0; }
.lp-faq__item { border: 1px solid var(--line); border-radius: var(--r); background: #fff; transition: border-color var(--dur-r) var(--ease-out); }
.lp-faq__item:hover { border-color: #D9C9AD; }
.lp-faq__item[open] { border-color: var(--oro); }
.lp-faq__item summary {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0 clamp(14px, 1.4vw, 24px);
  min-height: 72px; padding: clamp(16px, 1vw + 8px, 24px) clamp(18px, 1.4vw + 8px, 32px);
  font-size: inherit; cursor: pointer; list-style: none; border-radius: var(--r);
}
.lp-faq__item summary:focus-visible { outline: 2px solid var(--oro); outline-offset: 2px; }
.lp-faq__num { font-size: 12px; font-weight: 500; letter-spacing: .14em; color: var(--oro); font-variant-numeric: tabular-nums; }
.lp-faq__q { font-family: var(--serif); font-size: clamp(20px, .8vw + 13px, 27px); font-weight: 400; line-height: 1.25; color: var(--ink); }
.lp-faq__signo { position: relative; width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; transition: background-color var(--dur-r) var(--ease-out), border-color var(--dur-r) var(--ease-out); }
.lp-faq__signo::before, .lp-faq__signo::after { left: 11px; right: 11px; background: var(--ink); transition: transform var(--dur-r) var(--ease-out); }
.lp-faq__item[open] .lp-faq__signo { background: var(--noche); border-color: var(--noche); }
.lp-faq__item[open] .lp-faq__signo::before, .lp-faq__item[open] .lp-faq__signo::after { background: #fff; }
.lp-faq__resp { padding: 0 clamp(18px, 1.4vw + 8px, 32px) clamp(18px, 1vw + 10px, 28px); padding-left: calc(clamp(18px, 1.4vw + 8px, 32px) + 2ch + clamp(14px, 1.4vw, 24px)); }
.lp-faq__item[open] .lp-faq__resp { animation: lp-fade var(--dur) var(--ease-out); }
.lp-faq__resp p { max-width: 62ch; margin: 0; padding: 0; font-size: clamp(15px, .3vw + 12px, 17px); line-height: 1.6; color: var(--ink-2); }

.lp-faq__ayuda { display: flex; gap: 16px; align-items: flex-start; margin-top: 8px; padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--r); background: #fff; }
.lp-faq__ayuda-ico { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--arena); color: var(--oro); }
.lp-faq__ayuda-ico .lp-ico { width: 22px; height: 22px; }
.lp-faq__ayuda-titulo { margin: 0 0 2px; font-size: 16px; font-weight: 500; color: var(--ink); }
.lp-faq__ayuda-txt { margin: 0; font-size: 14px; color: var(--ink-2); }
.lp-faq__ayuda .lp-link { margin-top: 2px; }
@media (max-width: 599px) {
  .lp-faq__item summary { grid-template-columns: minmax(0, 1fr) auto; }
  .lp-faq__num { grid-column: 1 / -1; margin-bottom: 4px; }
  .lp-faq__resp { padding-left: clamp(18px, 1.4vw + 8px, 32px); }
}

@media (prefers-reduced-motion: reduce) {
  .lp-hero__media, .lp-hero__title span, .lp-hero__lead, .lp-hero .lp-acciones, .lp-precio,
  .lp-nivel.is-on + .lp-nivel__panel, .lp-faq__item[open] .lp-faq__resp { animation: none; }
  .lp-top__logo img, .lp-media img, .lp-faq__signo::before, .lp-faq__signo::after { transition: none; }
  .js .lp-reveal { transform: none; }
}

/* Celular: la foto del piso abierto, bajo sus amenidades */
@media (max-width: 999px) {
  .lp-nivel__panel .lp-torre__fotos { margin: 0 0 24px; aspect-ratio: 4 / 3; }
  .lp-nivel.is-on + .lp-nivel__panel .lp-nivel__items { padding-bottom: 16px; }
}
@media (max-width: 999px) {
  /* Celular: primero las preguntas, después la tarjeta del asesor. */
  .lp-faq { gap: 24px; }
  .lp-faq__intro { display: contents; }
  .lp-faq__intro > .lp-h2, .lp-faq__intro > .lp-lead { order: 1; margin-bottom: 0; }
  .lp-faq__lista { order: 2; }
  .lp-faq__ayuda { order: 3; margin-top: 0; }
}

/* ── Preguntas, versión editorial: sin cajas ───────────────
   Líneas finas entre preguntas, la pregunta grande, un «+» que gira a «×»
   y, al lado, una foto del rooftop con el contacto encima. */
#faq { background: var(--crema); }
.lp-faq__lista { display: block; border-top: 1px solid var(--line); }
.lp-faq__item, .lp-faq__item:hover, .lp-faq__item[open] { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: none; }
.lp-faq__item summary { min-height: 0; padding: clamp(22px, 1.4vw + 10px, 34px) 0; gap: 0 clamp(16px, 2vw, 32px); border-radius: 0; align-items: baseline; }
.lp-faq__num { align-self: baseline; font-size: 12px; color: var(--ink-3); transition: color var(--dur-r) var(--ease-out); }
.lp-faq__q { font-family: var(--sans); font-size: clamp(17px, .5vw + 13px, 22px); font-weight: 400; line-height: 1.35; letter-spacing: -.01em; color: var(--ink); transition: color var(--dur-r) var(--ease-out); }
.lp-faq__item summary:hover .lp-faq__q { color: var(--oro); }
.lp-faq__item[open] .lp-faq__num { color: var(--oro); }
.lp-faq__signo, .lp-faq__item[open] .lp-faq__signo { align-self: center; width: 20px; height: 20px; border: 0; border-radius: 0; background: none; transition: transform var(--dur) var(--ease-out); }
.lp-faq__signo::before, .lp-faq__signo::after, .lp-faq__item[open] .lp-faq__signo::before, .lp-faq__item[open] .lp-faq__signo::after { left: 2px; right: 2px; height: 1.5px; background: var(--ink); }
.lp-faq__item[open] .lp-faq__signo { transform: rotate(45deg); }
.lp-faq__item[open] .lp-faq__signo::after { transform: rotate(90deg); }
.lp-faq__resp { padding: 0 52px clamp(24px, 1.4vw + 12px, 36px) calc(2ch + clamp(16px, 2vw, 32px)); }

.lp-faq__foto { position: relative; margin: 36px 0 0; overflow: hidden; border-radius: var(--r); aspect-ratio: 4 / 5; }
.lp-faq__foto img { width: 100%; height: 100%; object-fit: cover; }
.lp-faq__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 26, 46, 0) 45%, rgba(14, 26, 46, .78) 100%); }
.lp-faq__foto figcaption { position: absolute; left: 24px; right: 24px; bottom: 24px; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.lp-faq__foto-titulo { font-family: var(--serif); font-size: clamp(24px, 1vw + 16px, 32px); line-height: 1.1; color: #fff; }
.lp-faq__ayuda { display: none; }
@media (max-width: 999px) {
  .lp-faq__foto { order: 3; aspect-ratio: 16 / 11; margin: 8px 0 0; }
}
@media (max-width: 599px) {
  .lp-faq__item summary { grid-template-columns: minmax(0, 1fr) auto; }
  .lp-faq__num { grid-column: 1 / -1; margin-bottom: 6px; }
  .lp-faq__resp { padding: 0 0 24px; }
}

/* Interiores: título que explica las fotos */
.lp-interior__cabeza { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 32px; margin-top: clamp(56px, 6vw, 104px); padding-top: clamp(28px, 2.4vw, 40px); border-top: 1px solid var(--line); }
.lp-interior__titulo { margin: 0; font-family: var(--serif); font-size: clamp(28px, 1.6vw + 14px, 40px); font-weight: 400; line-height: 1.15; color: var(--ink); }
.lp-interior__cabeza p { margin: 0; max-width: 46ch; color: var(--ink-2); }
.lp-interior { margin-top: 24px; }

/* Tecnología con foto: la imagen arriba, a sangre, y el texto debajo con el
   icono montado sobre el borde de la foto. */
.lp-card--foto { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.lp-card__foto { position: relative; margin: 0; aspect-ratio: 1 / 1; overflow: hidden; background: var(--arena); }
.lp-card__foto img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-out); }
.lp-card--foto:hover .lp-card__foto img { transform: scale(1.04); }
.lp-card__cuerpo { position: relative; flex: 1; padding: 0 clamp(20px, 1.3vw + 8px, 28px) clamp(22px, 1.4vw + 10px, 30px); }
.lp-card--foto .lp-card__ico { margin: -24px 0 16px; background: #fff; border: 1px solid var(--line); position: relative; }
@media (max-width: 639px) { .lp-card__foto { aspect-ratio: 4 / 3; } .lp-card__foto img { object-position: 50% 38%; } }
@media (prefers-reduced-motion: reduce) { .lp-card--foto:hover .lp-card__foto img { transform: none; } }

/* Subtítulos dentro de una sección (plantas, interiores) */
.lp-subtitulo { margin: 0 0 8px; font-family: var(--serif); font-size: clamp(28px, 1.6vw + 14px, 40px); font-weight: 400; line-height: 1.15; color: var(--ink); }

/* Plantas por piso */
.lp-plantas { margin-top: clamp(56px, 6vw, 104px); padding-top: clamp(28px, 2.4vw, 40px); border-top: 1px solid var(--line); }
.lp-plantas__cabeza { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 40px; margin-bottom: clamp(20px, 2vw, 32px); }
.lp-plantas__cabeza p { margin: 0; color: var(--ink-2); }
.lp-plantas__pisos { display: flex; gap: 6px; padding: 4px; border: 1px solid var(--line); border-radius: 999px; background: #fff; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.lp-plantas__pisos::-webkit-scrollbar { display: none; }
.lp-plantas__piso { flex: 0 0 auto; min-height: 44px; padding: 0 16px; border: 0; border-radius: 999px; background: transparent; color: var(--ink-2); font: 500 13px/1 var(--sans); letter-spacing: .02em; white-space: nowrap; cursor: pointer; transition: background-color var(--dur-r), color var(--dur-r); }
.lp-plantas__piso:hover { color: var(--ink); }
.lp-plantas__piso.is-on { background: var(--noche); color: #fff; }
.lp-plantas__piso:focus-visible { outline: 2px solid var(--oro); outline-offset: 2px; }
.lp-plantas__fig { margin: 0; }
.lp-plantas__fig[hidden] { display: none; }
.lp-plantas__fig .lp-zoom { display: block; width: 100%; padding: 0; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: #F3EEE6; cursor: zoom-in; }
.lp-plantas__fig img { display: block; width: 100%; height: auto; animation: lpFundido .3s var(--ease-out); }
.lp-plantas__fig figcaption { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 14px; font-size: 14px; color: var(--ink-2); }
.lp-plantas__fig figcaption strong { color: var(--ink); font-weight: 500; }
.lp-plantas__fig figcaption span { margin-left: auto; font-size: 12px; color: var(--ink-3); }
@keyframes lpFundido { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 639px) {
  .lp-plantas__cabeza { align-items: stretch; }
  .lp-plantas__pisos { width: 100%; }
  .lp-plantas__fig figcaption span { display: none; }
}

/* Así se vive por dentro: sala grande a la izquierda; a la derecha el texto
   arriba y la habitación abajo, las dos columnas cierran a la misma altura. */
.lp-interior__cabeza, .lp-interior { display: none; }
.lp-vive { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: clamp(56px, 6vw, 104px); }
.lp-vive figure { margin: 0; }
.lp-vive .lp-zoom { display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: var(--r); overflow: hidden; background: var(--arena); cursor: zoom-in; }
.lp-vive img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-out); }
.lp-vive .lp-zoom:hover img { transform: scale(1.03); }
.lp-vive figcaption { margin-top: 12px; font-size: 13px; letter-spacing: .02em; color: var(--ink-3); }
.lp-vive__grande .lp-zoom { aspect-ratio: 4 / 3; }
.lp-vive__chica .lp-zoom { aspect-ratio: 4 / 3; }
.lp-vive__lado { display: flex; flex-direction: column; gap: 20px; }
.lp-vive__texto { order: -1; }
.lp-vive__texto p { margin: 0; max-width: 40ch; color: var(--ink-2); }
@media (max-width: 999px) { .lp-vive { gap: 28px; } .lp-vive__lado { display: contents; } .lp-vive__texto { order: -1; } }
@media (min-width: 1000px) {
  .lp-vive { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 3vw, 56px); align-items: stretch; }
  .lp-vive__grande .lp-zoom { aspect-ratio: 4 / 3.2; }
  .lp-vive__lado { gap: 28px; }
  .lp-vive__chica { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }
  .lp-vive__chica .lp-zoom { flex: 1 1 auto; aspect-ratio: auto; min-height: 220px; height: auto; }
  .lp-vive__chica .lp-zoom img { position: absolute; inset: 0; }
  .lp-vive__chica .lp-zoom { position: relative; }
  .lp-vive__texto { order: 0; padding-top: 8px; }
}
@media (prefers-reduced-motion: reduce) { .lp-vive .lp-zoom:hover img { transform: none; } .lp-plantas__fig img { animation: none; } }

/* Inversión con foto de fondo tenue */
.lp-sec--foto { position: relative; overflow: hidden; isolation: isolate; }
.lp-sec__fondo { position: absolute; inset: 0; z-index: -1; }
.lp-sec__fondo img { width: 100%; height: 100%; object-fit: cover; opacity: .5; }
.lp-sec__fondo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 26, 46, .72) 0%, rgba(14, 26, 46, .82) 100%); }
.lp-sec--foto .lp-cards--noche .lp-card { background: rgba(22, 36, 60, .72); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }

/* FAQ: la foto ocupa el alto que queda para cerrar al ras de la lista */
@media (min-width: 1000px) {
  .lp-faq { align-items: stretch; }
  .lp-faq__intro { position: static; display: flex; flex-direction: column; }
  .lp-faq__foto { flex: 1 1 auto; aspect-ratio: auto; min-height: 300px; }
}

/* Plantas en dos columnas en PC: los pisos en lista a la izquierda, la planta a la derecha */
.lp-plantas__piso-desc { display: none; }
@media (min-width: 1000px) {
  .lp-plantas { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 0 clamp(32px, 4vw, 72px); align-items: start; }
  .lp-plantas__cabeza { grid-column: 1; grid-row: 1; display: block; margin: 0; }
  .lp-plantas__cabeza p { margin-bottom: 28px; }
  .lp-plantas__fig { grid-column: 2; grid-row: 1; }
  .lp-plantas__pisos { display: block; padding: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; overflow: visible; }
  .lp-plantas__piso { position: relative; display: flex; width: 100%; align-items: baseline; gap: 14px; min-height: 0; padding: 12px 0 12px 16px; border-bottom: 1px solid var(--line); border-radius: 0; text-align: left; white-space: normal; }
  .lp-plantas__piso::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 2px; background: var(--oro); transform: scaleY(0); transition: transform var(--dur-r) var(--ease-out); }
  .lp-plantas__piso.is-on { background: transparent; color: var(--ink); }
  .lp-plantas__piso.is-on::before { transform: scaleY(1); }
  .lp-plantas__piso-num { flex: 0 0 84px; font-weight: 500; white-space: nowrap; color: inherit; }
  .lp-plantas__piso-desc { display: block; font-size: 13px; font-weight: 400; letter-spacing: 0; color: var(--ink-3); }
  .lp-plantas__piso.is-on .lp-plantas__piso-desc { color: var(--ink-2); }
}

/* Toque playero: la ola del logo como marca de agua muy tenue en algunas
   secciones y un grano suave tipo arena en las secciones claras. */
#proyecto, #tecnologia, #faq, #ubicacion, #galeria { position: relative; isolation: isolate; overflow: hidden; }
#proyecto::before, #tecnologia::before, #faq::before, #ubicacion::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  width: clamp(320px, 38vw, 640px); aspect-ratio: 254 / 194;
  background: var(--oro);
  -webkit-mask: url("../img/marca-ola-aqua.png") center / contain no-repeat;
          mask: url("../img/marca-ola-aqua.png") center / contain no-repeat;
  opacity: .07;
}
#proyecto::before { top: 6%; right: -8%; transform: rotate(-8deg); }
#tecnologia::before { bottom: -6%; left: -10%; transform: rotate(10deg) scaleX(-1); }
#faq::before { top: -4%; right: -9%; transform: rotate(-12deg); }
#ubicacion::before { bottom: -8%; left: -12%; background: var(--oro-2); opacity: .07; transform: rotate(8deg) scaleX(-1); }
#proyecto::after, #tecnologia::after, #faq::after, #galeria::after {
  content: ""; position: absolute; inset: 0; z-index: -2; pointer-events: none; opacity: .5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .45 0 0 0 0 .3 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)'/%3E%3C/svg%3E");
}
@media (max-width: 639px) {
  #proyecto::before, #tecnologia::before, #faq::before, #ubicacion::before { width: 260px; opacity: .06; }
}

/* Tipologías en azul mar suave (el aqua del logo) para cortar los tonos arena */
#planos { --line: #CADCE0; background: linear-gradient(180deg, #E4EFF1 0%, #EDF4F4 100%); }
#planos .lp-planos__tab { background: rgba(255, 255, 255, .55); }
#planos .lp-planos__tab.is-on { background: var(--noche); }
#planos .lp-plano__marco, #planos .lp-plano__fig > div { background: #fff; }
#planos .lp-label--sin { color: #3E8E8A; }
#planos .lp-plantas__pisos { background: rgba(255, 255, 255, .7); }
#planos .lp-plantas__fig .lp-zoom { background: #fff; }
@media (min-width: 1000px) { #planos .lp-plantas__pisos { background: transparent; } #planos .lp-plantas__piso::before { background: #3E8E8A; } }

/* Cuatro tipologías: las pestañas bajan a su propia fila bajo el título */
#residencias { flex-wrap: wrap; align-items: flex-end; row-gap: 24px; }
#residencias > div:first-child, #residencias > .lp-planos__tabs { flex: 1 1 100%; }
@media (min-width: 640px) {
  #residencias .lp-planos__tabs { display: grid; width: 100%; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  #residencias .lp-planos__tab { min-width: 0; }
}
@media (max-width: 1199px) { #planos #residencias { flex-wrap: wrap; } }

/* Plantas por piso: la planta centrada en vertical frente a la lista de pisos */
@media (min-width: 1000px) { .lp-plantas__fig { align-self: center; } }

/* Ubicación: vista aérea a todo lo ancho con el texto encima, sobre el mar */
.lp-ubi { position: relative; overflow: hidden; background: var(--noche); color: #fff; }
.lp-ubi__foto { position: relative; margin: 0; aspect-ratio: 4 / 3; }
.lp-ubi__foto .lp-zoom { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.lp-ubi__foto img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 62% 50%; }
.lp-ubi__in { position: relative; padding-top: 40px; padding-bottom: var(--sec); }
.lp-ubi__titulo { margin: 0 0 28px; font-family: var(--serif); font-size: clamp(34px, 2.6vw + 18px, 64px); font-weight: 400; line-height: 1.05; color: #fff; }
.lp-ubi__titulo span, .lp-ubi__titulo em { display: block; }
.lp-ubi__titulo em { font-style: italic; }
.lp-ubi__lista { display: grid; gap: 12px; margin: 0 0 36px; padding: 0; list-style: none; }
.lp-ubi__lista li { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: start; gap: 12px; font-size: clamp(15px, .3vw + 13px, 18px); line-height: 1.35; color: rgba(255, 255, 255, .92); }
.lp-ubi__lista .lp-ico { flex: none; width: 24px; height: 24px; color: #fff; }
.lp-ubi__lista strong { font-weight: 400; color: #fff; }
.lp-ubi__sep { margin: 0 4px; color: rgba(255, 255, 255, .55); }
#ubicacion::before { content: none; }
@media (min-width: 1000px) {
  .lp-ubi { min-height: clamp(640px, 52vw, 860px); display: flex; align-items: center; }
  .lp-ubi__foto { position: absolute; inset: 0; aspect-ratio: auto; }
  .lp-ubi__foto::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(14, 26, 46, .8) 0%, rgba(14, 26, 46, .62) 34%, rgba(14, 26, 46, .2) 52%, rgba(14, 26, 46, 0) 64%); }
  .lp-ubi__foto img { object-position: center; }
  .lp-ubi__in { width: 100%; padding-top: var(--sec); pointer-events: none; }
  .lp-ubi__texto { max-width: 560px; pointer-events: auto; text-shadow: 0 1px 12px rgba(14, 26, 46, .35); }
}

/* Ubicación más compacta: título, lista y alto de la sección más pequeños */
.lp-ubi__titulo { margin-bottom: 18px; font-size: clamp(26px, 1.1vw + 16px, 40px); line-height: 1.08; }
.lp-ubi__lista { gap: 7px; margin-bottom: 24px; }
.lp-ubi__lista li { grid-template-columns: 18px minmax(0, 1fr); gap: 10px; font-size: clamp(13px, .15vw + 12px, 14.5px); }
.lp-ubi__lista .lp-ico { width: 18px; height: 18px; }
.lp-ubi .lp-btn { min-height: 44px; padding: 12px 22px; font-size: 12px; }
@media (min-width: 1000px) {
  .lp-ubi { min-height: clamp(460px, 36vw, 600px); }
  .lp-ubi__in { padding-top: 56px; padding-bottom: 56px; }
  .lp-ubi__texto { max-width: 420px; }
}
/* Título de ubicación en dos líneas en PC */
@media (min-width: 1000px) {
  .lp-ubi__texto { max-width: 640px; }
  .lp-ubi__titulo span, .lp-ubi__titulo em { white-space: nowrap; }
  .lp-ubi__lista, .lp-ubi .lp-btn { max-width: 440px; }
}
@media (max-width: 599px) { .lp-ubi__titulo { font-size: clamp(19px, 5.4vw, 26px); } .lp-ubi__titulo em { font-size: 1.12em; } }

/* Pie: contactos de ventas, sala de ventas, administrativos y oficina */
/* El texto de tecnología bajo el título */
#tecnologia .lp-cabeza .lp-lead { max-width: 56ch; margin: 14px auto 0; }

/* Ubicación: texto sobre azul noche y la vista aérea a sangre en la mitad derecha
   (en móvil, debajo), fundida con el azul por el lado del texto. */
.lp-ubi2 .lp-ubi__titulo { color: #fff; }
.lp-ubi2 .lp-ubi__titulo span, .lp-ubi2 .lp-ubi__titulo em { white-space: normal; }
.lp-ubi2 { position: relative; overflow: hidden; padding-bottom: 0; }
.lp-ubi2 .lp-ubic { position: relative; z-index: 1; display: block; padding-bottom: 32px; }
.lp-ubi2__foto { position: relative; margin: 0; aspect-ratio: 1134 / 612; }
.lp-ubi2__foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-ubi2__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 26, 46, 1) 0%, rgba(14, 26, 46, 0.94) 1.8%, rgba(14, 26, 46, 0.82) 3.7%, rgba(14, 26, 46, 0.66) 5.9%, rgba(14, 26, 46, 0.49) 8.4%, rgba(14, 26, 46, 0.33) 11.0%, rgba(14, 26, 46, 0.2) 13.6%, rgba(14, 26, 46, 0.1) 16.3%, rgba(14, 26, 46, 0.04) 18.9%, rgba(14, 26, 46, 0) 22%); pointer-events: none; }
@media (min-width: 1000px) {
  .lp-ubi2 { padding-bottom: var(--sec); }
  .lp-ubi2 .lp-ubic { padding-bottom: 0; }
  .lp-ubi2 .lp-ubic__info { max-width: 44%; }
  /* La foto toma el ancho que pide su proporción (alto de la sección × 1134/612) para no recortar
     el mar; solo si no cabe se limita al 64 % y recorta un poco por los lados. */
  .lp-ubi2__foto { position: absolute; top: 0; right: 0; bottom: 0; height: 100%; width: auto; max-width: 64%; aspect-ratio: 1134 / 612; }
  .lp-ubi2__foto img { object-position: 40% 50%; }
  .lp-ubi2__foto::after { background: linear-gradient(90deg, rgba(14, 26, 46, 1) 0%, rgba(14, 26, 46, 0.94) 1.9%, rgba(14, 26, 46, 0.82) 4.1%, rgba(14, 26, 46, 0.66) 6.5%, rgba(14, 26, 46, 0.49) 9.1%, rgba(14, 26, 46, 0.33) 12.0%, rgba(14, 26, 46, 0.2) 14.9%, rgba(14, 26, 46, 0.1) 17.8%, rgba(14, 26, 46, 0.04) 20.6%, rgba(14, 26, 46, 0) 24%); }
}

/* Pie en columnas: títulos pequeños, enlaces en lista, logo grande abajo */
.lp-pie { padding: clamp(56px, 4vw + 32px, 96px) 0 40px; }
.lp-pie__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; }
.lp-pie__col h3 { margin: 0 0 14px; font-family: var(--sans); font-size: 13px; font-weight: 400; letter-spacing: .01em; color: rgba(255, 255, 255, .45); }
.lp-pie__col h3 + p + h3, .lp-pie__col p + h3 { margin-top: 28px; }
.lp-pie__col ul { margin: 0; padding: 0; list-style: none; }
.lp-pie__col li + li { margin-top: 6px; }
.lp-pie__col a, .lp-pie__col p { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 14.5px; line-height: 1.6; color: rgba(255, 255, 255, .88); text-decoration: none; }
.lp-pie__col p { display: block; }
.lp-pie__col a:hover { color: var(--oro-2); }
.lp-pie__col .lp-ico { width: 16px; height: 16px; opacity: .8; }
.lp-pie__mail { white-space: nowrap; }
.lp-pie__tel { font-weight: 500; color: #fff !important; }
.lp-pie__fidu { font-weight: 500; color: #fff !important; }
.lp-pie__java { display: block !important; }
.lp-pie__java img { display: block; width: auto; height: 34px; transition: opacity var(--dur-r); }
.lp-pie__java:hover img { opacity: .8; }
.lp-pie__cierre { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 32px 48px; margin-top: clamp(56px, 5vw + 24px, 112px); }
.lp-pie__logo img { display: block; width: auto; height: clamp(84px, 5vw + 48px, 132px); }
.lp-pie__legal { max-width: 460px; text-align: right; font-size: 12px; line-height: 1.6; color: rgba(255, 255, 255, .45); }
.lp-pie__legal p { margin: 0; }
.lp-pie__legal a { color: rgba(255, 255, 255, .7); }
.lp-pie__legal a:hover { color: var(--oro-2); }
.lp-pie__copy { margin-bottom: 8px !important; font-size: 13px; color: rgba(255, 255, 255, .7); }
@media (min-width: 760px) { .lp-pie__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .lp-pie__cols { grid-template-columns: repeat(5, max-content); justify-content: space-between; gap: 32px; } }
@media (max-width: 759px) { .lp-pie__col:nth-child(n+3) { grid-column: 1 / -1; } }
@media (max-width: 599px) {
  .lp-pie__cols { text-align: left; }
  .lp-pie__cierre { flex-direction: column; align-items: flex-start; }
  .lp-pie__legal { text-align: left; }
}

/* ── Más aire: contenido más ancho y escala un punto más pequeña ── */
:root {
  --wrap:    clamp(1000px, 86vw, 1560px);
  --gut:     clamp(20px, 3vw, 56px);
  --sec:     clamp(56px, 6vw, 120px);
  --fs-base: clamp(15px, .3vw + 11.5px, 16.5px);
  --fs-lead: clamp(15px, .3vw + 11.5px, 17px);
  --fs-t2:   clamp(28px, 1.7vw + 11px, 48px);
  --fs-t1:   clamp(32px, 2.1vw + 12px, 58px);
}
@media (max-width: 999px) { :root { --wrap: 100%; } }
.lp-top__logo img { height: clamp(48px, 2vw + 26px, 70px); }
.lp-top.is-scrolled .lp-top__logo img { height: clamp(40px, 1.4vw + 24px, 54px); }
.lp-top__nav a { font-size: clamp(11.5px, .15vw + 9.8px, 13px); }
.lp-btn { min-height: clamp(44px, .6vw + 37px, 52px); padding: 0 clamp(18px, 1vw + 8px, 30px); font-size: clamp(11.5px, .12vw + 10.4px, 13px); }
.lp-btn--sm { min-height: clamp(40px, .4vw + 35px, 46px); }
.lp-link { font-size: clamp(11.5px, .12vw + 10.4px, 13px); }
.lp-hero__lead { font-size: clamp(15px, .3vw + 11.5px, 17px); max-width: clamp(400px, 30vw, 540px); }
.lp-precio { max-width: clamp(280px, 8vw + 180px, 340px); padding: clamp(18px, .8vw + 10px, 26px); }
.lp-precio__valor { font-size: clamp(28px, 1vw + 16px, 40px); }
@media (min-width: 1000px) { .lp-hero__in { grid-template-columns: minmax(0, 1fr) clamp(280px, 8vw + 180px, 340px); } }
.lp-precio .lp-label { white-space: nowrap; letter-spacing: .14em; }
.lp-precio__nota { margin-bottom: 14px; }
.lp-precio__link { min-height: 0; margin-top: 10px; padding-top: 0; }
.lp-cifras strong { font-size: clamp(26px, 1.2vw + 12px, 44px); }
.lp-destacado__num { font-size: clamp(56px, 3.4vw + 16px, 104px); }
.lp-destacado__titulo { font-size: clamp(22px, 1vw + 10px, 34px); }
.lp-nivel__nombre { font-size: clamp(20px, .9vw + 10px, 30px); }
.lp-plano__area { font-size: clamp(40px, 2vw + 16px, 72px); }
.lp-form__titulo { font-size: clamp(24px, .8vw + 14px, 32px); }
.lp-cierre__precio { font-size: clamp(26px, 1vw + 14px, 38px); }

/* ── Botones: sin flecha y con relleno que sube desde abajo al pasar el mouse ── */
.lp-btn { position: relative; isolation: isolate; overflow: hidden; --lp-relleno: var(--oro); --lp-texto-hover: var(--noche); }
.lp-btn::before {
  content: ""; position: absolute; inset: -1px; z-index: -1; background: var(--lp-relleno);
  transform: scaleY(0); transform-origin: 50% 100%; transition: transform .5s cubic-bezier(.22, 1, .36, 1);
}
.lp-btn:hover::before, .lp-btn:focus-visible::before { transform: scaleY(1); }
.lp-btn, .lp-btn:hover { transition: color .4s var(--ease), border-color .4s var(--ease); }
.lp-btn:hover, .lp-btn:focus-visible { color: var(--lp-texto-hover); }
.lp-btn:hover { background: var(--noche); border-color: var(--lp-relleno); }
.lp-btn--oro { --lp-relleno: var(--noche); --lp-texto-hover: #fff; }
.lp-btn--oro:hover { background: var(--oro); }
.lp-btn--blanco { --lp-relleno: var(--oro); --lp-texto-hover: var(--noche); }
.lp-btn--blanco:hover { background: #fff; }
.lp-btn--linea { --lp-relleno: var(--noche); --lp-texto-hover: #fff; }
.lp-btn--linea:hover { background: transparent; }
.lp-btn--linea-claro { --lp-relleno: #fff; --lp-texto-hover: var(--noche); }
.lp-btn--linea-claro:hover { background: transparent; }
.lp-btn:disabled::before { transform: scaleY(0); }
@media (prefers-reduced-motion: reduce) { .lp-btn::before { transition: none; } }
/* Sobre fondos oscuros el botón dorado se llena de blanco para que el cambio se note */
.lp-hero .lp-btn--oro, .lp-sec--noche .lp-btn--oro { --lp-relleno: #fff; --lp-texto-hover: var(--noche); }

/* ── Menos margen a los lados en todo el sitio y logo de la cabecera más grande ── */
:root {
  --wrap: clamp(1000px, 93vw, 1720px);
  --gut:  clamp(16px, 2.4vw, 44px);
}
@media (max-width: 999px) { :root { --wrap: 100%; } }
.lp-top__logo img { height: clamp(64px, 3vw + 30px, 96px); }

/* ── Enlaces subrayados: la línea crece desde donde entra el mouse ── */
.lp-link { position: relative; border-bottom-color: rgba(184, 147, 90, .35); }
.lp-link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--oro);
  transform: scaleX(0); transform-origin: var(--lp-x, 50%) 50%; transition: transform .45s cubic-bezier(.22, 1, .36, 1);
}
.lp-link:hover::after, .lp-link:focus-visible::after { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) { .lp-link::after { transition: none; } }

/* Textos pequeños de las cifras en mayúscula, como el de amenidades */
.lp-cifras span { font-size: clamp(10.5px, .12vw + 9.4px, 12px); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }

/* Proyecto: texto y viñetas más juntos */
.lp-manifiesto__texto .lp-lead { margin-bottom: 16px; }
.lp-manifiesto__texto .lp-checks { margin-bottom: 28px; }
.lp-manifiesto__texto .lp-checks li { margin-bottom: 6px; }

/* Ubicación: botones con un poco más de aire arriba */
.lp-ubi2__acciones { margin-top: 32px; gap: 12px 16px; }

/* Tecnología: tarjeta tipo ficha — título arriba, foto enmarcada al centro y texto abajo */
.lp-card--marco { display: flex; flex-direction: column; align-items: center; padding: clamp(24px, 1.6vw + 10px, 36px) clamp(20px, 1.4vw + 8px, 32px); background: var(--crema); text-align: center; }
.lp-card--marco:hover { border-color: var(--oro); }
.lp-card__titulo { margin: 0 0 clamp(18px, 1vw + 8px, 26px); font-family: var(--serif); font-size: clamp(22px, .9vw + 12px, 30px); font-weight: 400; line-height: 1.15; color: var(--ink); text-wrap: balance; min-height: 2.3em; display: flex; align-items: center; }
.lp-card--marco .lp-card__foto { width: 74%; aspect-ratio: 3 / 4; margin: 0 0 clamp(18px, 1vw + 8px, 26px); border-radius: 0; }
.lp-card--marco .lp-card__foto img { object-position: 50% 40%; transition: transform .8s var(--ease-out); }
.lp-card--marco:hover .lp-card__foto img { transform: scale(1.04); }
.lp-card--marco p { max-width: 26ch; margin: 0 auto; font-size: clamp(13.5px, .2vw + 11.5px, 15px); line-height: 1.6; }
@media (max-width: 639px) { .lp-card--marco .lp-card__foto { width: 64%; aspect-ratio: 4 / 5; } .lp-card__titulo { min-height: 0; } }
@media (prefers-reduced-motion: reduce) { .lp-card--marco:hover .lp-card__foto img { transform: none; } }

/* ── Cabecera: se esconde al bajar y baja suave al subir; logo legible ── */
.lp-top, .lp-top.is-scrolled { transition: transform .6s cubic-bezier(.22, 1, .36, 1), background-color .4s var(--ease), height .4s var(--ease); will-change: transform; }
.lp-top.is-hidden { transform: translateY(-100%); }
.lp-top.is-scrolled { height: clamp(76px, 1.4vw + 60px, 92px); }
.lp-top.is-scrolled .lp-top__logo img { height: clamp(54px, 1.8vw + 32px, 74px); transform: none; }
@media (max-width: 999px) { .lp-top.is-scrolled { height: 72px; } .lp-top.is-scrolled .lp-top__logo img { height: 52px; } }
@media (prefers-reduced-motion: reduce) { .lp-top, .lp-top.is-scrolled { transition: none; } }

/* Pestañas de tipologías: área en una línea y el tipo (Apartasuite / Apartamento) debajo */
.lp-planos__tab-area, .lp-planos__tab-tipo { display: block; white-space: nowrap; }
.lp-planos__tab-tipo { font-size: 12px; color: var(--ink-3); }
.lp-planos__tab.is-on .lp-planos__tab-tipo { color: rgba(255, 255, 255, .7); }
@media (max-width: 1279px) { .lp-planos__tab-tipo { display: block; } }
@media (max-width: 599px) { .lp-planos__tab-tipo { font-size: 11px; } }

/* ── Imágenes con esquinas casi rectas en todo el sitio ── */
.lp-nivel__foto, .lp-torre__foto, .lp-media, .lp-plano__marco, .lp-g img, .lp-g .lp-zoom { border-radius: var(--r); }

/* ── Plantas por piso: índice más limpio y la planta enmarcada con su rótulo encima ── */
.lp-plantas__fig { position: relative; }
.lp-plantas__fig .lp-zoom { border: 0; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 46, .06), 0 18px 40px -18px rgba(14, 26, 46, .18); }
.lp-plantas__fig figcaption { position: absolute; left: 14px; right: 14px; bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; pointer-events: none; }
.lp-plantas__rotulo { padding: 7px 12px; border-radius: 3px; background: var(--noche); color: rgba(255, 255, 255, .8); font-size: 12.5px; line-height: 1.3; }
.lp-plantas__rotulo strong { color: #fff; font-weight: 500; }
.lp-plantas__fig figcaption .lp-plantas__ampliar { margin: 0; padding: 7px 10px; border-radius: 3px; background: rgba(255, 255, 255, .92); color: var(--ink-2); font-size: 11.5px; }
@media (max-width: 599px) { .lp-plantas__fig figcaption { position: static; margin-top: 10px; } .lp-plantas__rotulo { background: none; padding: 0; color: var(--ink-2); } .lp-plantas__rotulo strong { color: var(--ink); } }
@media (min-width: 1000px) {
  .lp-plantas { grid-template-columns: minmax(0, 4.4fr) minmax(0, 7.6fr); }
  .lp-plantas__piso { align-items: center; gap: 18px; padding: 15px 0 15px 18px; }
  .lp-plantas__piso-num { flex: 0 0 104px; font-family: var(--serif); font-size: clamp(18px, .5vw + 12px, 22px); font-weight: 400; letter-spacing: 0; color: var(--ink-3); }
  .lp-plantas__piso.is-on .lp-plantas__piso-num, .lp-plantas__piso:hover .lp-plantas__piso-num { color: var(--ink); }
  .lp-plantas__piso-desc { font-size: 13.5px; line-height: 1.45; }
  .lp-plantas__piso.is-on { background: rgba(255, 255, 255, .55); }
}

/* ── FAQ: título en una línea ── */
@media (max-width: 599px) { .lp-faq__titulo span { white-space: normal; } }

/* ── Inversión: dos columnas, motivos numerados con filetes en vez de tarjetas ── */
.lp-inv { display: grid; gap: clamp(36px, 4vw, 64px); }
.lp-inv__cabeza .lp-lead { margin-bottom: 28px; color: rgba(255, 255, 255, .78); }
.lp-inv__cabeza .lp-aviso { margin: 28px 0 0; max-width: 40ch; }
.lp-inv__lista { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
.lp-inv__item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 22px; padding: clamp(20px, 1.6vw + 8px, 30px) 0; border-top: 1px solid rgba(212, 180, 126, .35); }
.lp-inv__num { grid-row: span 2; font-family: var(--serif); font-size: clamp(28px, 1.4vw + 14px, 44px); line-height: 1; color: var(--oro-2); font-variant-numeric: lining-nums tabular-nums; }
.lp-inv__titulo { margin: 0; font-family: var(--serif); font-size: clamp(22px, .9vw + 12px, 30px); font-weight: 400; line-height: 1.15; color: #fff; }
.lp-inv__item p { margin: 6px 0 0; max-width: 42ch; font-size: clamp(14px, .2vw + 12px, 15.5px); line-height: 1.6; color: rgba(255, 255, 255, .7); }
@media (min-width: 760px) {
  .lp-inv__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(28px, 3vw, 56px); }
}
@media (min-width: 1100px) {
  .lp-inv { grid-template-columns: minmax(0, 4.4fr) minmax(0, 7.6fr); align-items: center; }
}

/* ── Pie: logo y llamada arriba, columnas con títulos en dorado y cierre en una línea ── */
.lp-pie__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px 48px; padding-bottom: clamp(36px, 3vw + 12px, 56px); margin-bottom: clamp(36px, 3vw + 12px, 56px); border-bottom: 1px solid var(--line-2); }
.lp-pie__top .lp-pie__logo img { height: clamp(80px, 4vw + 44px, 128px); }
.lp-pie__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; }
.lp-pie__frase { margin: 0; font-family: var(--serif); font-size: clamp(22px, 1.1vw + 12px, 32px); line-height: 1.15; color: #fff; }
.lp-pie__frase em { color: var(--oro-2); }
.lp-pie__col h3 { margin-bottom: 16px; font-size: 11.5px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--oro-2); }
.lp-pie__col li + li { margin-top: 8px; }
.lp-pie__cierre { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 40px; margin-top: clamp(40px, 3vw + 16px, 64px); padding-top: 24px; border-top: 1px solid var(--line-2); }
.lp-pie__cierre p { margin: 0; }
.lp-pie__cierre .lp-pie__copy { font-size: 13px; color: rgba(255, 255, 255, .7); }
.lp-pie__cierre .lp-pie__copy a { color: rgba(255, 255, 255, .85); }
.lp-pie__cierre .lp-pie__legal { max-width: 620px; text-align: right; font-size: 12px; line-height: 1.6; color: rgba(255, 255, 255, .45); }
@media (max-width: 759px) {
  .lp-pie__top, .lp-pie__cta { flex-direction: column; align-items: flex-start; }
  .lp-pie__cta .lp-acciones { width: 100%; }
  .lp-pie__cierre { flex-direction: column; }
  .lp-pie__cierre .lp-pie__legal { text-align: left; }
}
.lp-plantas__piso-num { font-variant-numeric: lining-nums; }
.lp-plantas__fig figcaption .lp-plantas__rotulo { margin-left: 0; }
.lp-plantas__fig figcaption .lp-plantas__rotulo strong { color: #fff; }
@media (max-width: 599px) { .lp-plantas__fig figcaption .lp-plantas__rotulo strong { color: var(--ink); } }

/* ── Cabecera: menú a la izquierda, logo al centro y «Cotizar» a la derecha ── */
.lp-top__in { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.lp-top__menu {
  grid-column: 1; justify-self: start; display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 4px 0 0;
  border: 0; background: none; color: #fff; cursor: pointer;
  font: 500 12.5px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase;
}
.lp-top__burger { position: relative; display: block; width: 26px; height: 12px; }
.lp-top__burger i { position: absolute; left: 0; height: 1.5px; background: currentColor; border-radius: 2px; transition: width .4s cubic-bezier(.22, 1, .36, 1), transform .4s cubic-bezier(.22, 1, .36, 1); }
.lp-top__burger i:first-child { top: 0; width: 26px; }
.lp-top__burger i:last-child { bottom: 0; width: 16px; }
.lp-top__menu:hover .lp-top__burger i:last-child { width: 26px; }
.lp-top__menu:hover { color: var(--oro-2); }
.lp-top__menu[aria-expanded="true"] .lp-top__burger i:first-child { transform: translateY(5.25px) rotate(45deg); }
.lp-top__menu[aria-expanded="true"] .lp-top__burger i:last-child { width: 26px; transform: translateY(-5.25px) rotate(-45deg); }
@media (max-width: 599px) { .lp-top__menu-txt { display: none; } }

.lp-menu__velo { position: fixed; inset: 0; z-index: 90; background: rgba(8, 14, 26, .55); opacity: 0; transition: opacity .45s var(--ease); }
.lp-menu__velo.is-on { opacity: 1; }
.lp-menu {
  position: fixed; top: 0; bottom: 0; left: 0; z-index: 91; display: flex; flex-direction: column;
  width: min(440px, 90vw); padding: 28px clamp(24px, 3vw, 44px) 32px; overflow-y: auto;
  background: var(--noche); color: #fff; box-shadow: 30px 0 80px -30px rgba(0, 0, 0, .5);
  transform: translateX(-102%); transition: transform .55s cubic-bezier(.22, 1, .36, 1);
}
.lp-menu.is-on { transform: none; }
.lp-menu__cabeza { display: flex; align-items: center; justify-content: space-between; margin-bottom: clamp(28px, 5vh, 56px); }
.lp-menu__cabeza img { width: auto; height: 54px; }
.lp-menu__cerrar { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 50%; background: none; color: #fff; cursor: pointer; transition: border-color .3s, color .3s; }
.lp-menu__cerrar:hover { border-color: var(--oro-2); color: var(--oro-2); }
.lp-menu__lista { margin: 0; padding: 0; list-style: none; }
.lp-menu__lista li { border-bottom: 1px solid rgba(255, 255, 255, .1); opacity: 0; transform: translateX(-14px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.lp-menu.is-on .lp-menu__lista li { opacity: 1; transform: none; }
.lp-menu.is-on .lp-menu__lista li:nth-child(1) { transition-delay: .12s; }
.lp-menu.is-on .lp-menu__lista li:nth-child(2) { transition-delay: .17s; }
.lp-menu.is-on .lp-menu__lista li:nth-child(3) { transition-delay: .22s; }
.lp-menu.is-on .lp-menu__lista li:nth-child(4) { transition-delay: .27s; }
.lp-menu.is-on .lp-menu__lista li:nth-child(5) { transition-delay: .32s; }
.lp-menu.is-on .lp-menu__lista li:nth-child(6) { transition-delay: .37s; }
.lp-menu__lista a { display: flex; align-items: baseline; gap: 18px; padding: 16px 0; font-family: var(--serif); font-size: clamp(26px, 2vw + 14px, 34px); line-height: 1.1; color: #fff; text-decoration: none; transition: color .3s, padding-left .4s var(--ease); }
.lp-menu__lista a:hover, .lp-menu__lista a:focus-visible { color: var(--oro-2); padding-left: 6px; }
.lp-menu__num { min-width: 26px; font-family: var(--sans); font-size: 11.5px; letter-spacing: .14em; color: var(--oro-2); }
.lp-menu__pie { display: grid; gap: 10px; margin-top: auto; padding-top: 32px; }
.lp-menu__pie p { margin: 8px 0 0; font-size: 12.5px; line-height: 1.6; color: rgba(255, 255, 255, .55); }
@media (prefers-reduced-motion: reduce) { .lp-menu, .lp-menu__velo, .lp-menu__lista li, .lp-top__burger i { transition: none; } }

/* ── Tecnología en móvil: carrusel deslizable con puntos ── */
.lp-carrusel__puntos { display: none; }
@media (max-width: 639px) {
  .lp-cards--carrusel {
    display: flex; gap: 12px; margin: 0 calc(-1 * var(--gut)); padding: 4px var(--gut) 8px;
    overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 var(--gut); scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  .lp-cards--carrusel::-webkit-scrollbar { display: none; }
  .lp-cards--carrusel > li { flex: 0 0 80%; scroll-snap-align: center; }
  .lp-cards--carrusel .lp-reveal { opacity: 1; transform: none; }
  .lp-carrusel__puntos { display: flex; justify-content: center; gap: 8px; margin-top: 14px; }
  .lp-carrusel__puntos button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 99px; background: var(--line); cursor: pointer; transition: width .35s var(--ease), background-color .35s var(--ease); }
  .lp-carrusel__puntos button.is-on { width: 22px; background: var(--oro); }
}

/* ── Interiores: en PC sala grande | texto + habitación; en móvil texto y carrusel ── */
.lp-vive { display: grid; gap: 20px; }
.lp-vive__fotos { display: contents; }
.lp-vive__texto { order: 0; }
.lp-vive figcaption { position: static; }
@media (min-width: 1000px) {
  .lp-vive { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto minmax(0, 1fr); gap: 28px clamp(28px, 3vw, 56px); }
  .lp-vive__grande { grid-column: 1; grid-row: 1 / span 2; }
  .lp-vive__texto { grid-column: 2; grid-row: 1; padding-top: 8px; }
  .lp-vive__chica { grid-column: 2; grid-row: 2; }
}
@media (max-width: 999px) {
  .lp-vive__fotos {
    display: flex; gap: 12px; margin: 0 calc(-1 * var(--gut)); padding: 0 var(--gut) 4px;
    overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 var(--gut); scrollbar-width: none;
  }
  .lp-vive__fotos::-webkit-scrollbar { display: none; }
  .lp-vive__fotos > figure { flex: 0 0 84%; scroll-snap-align: center; }
  .lp-vive__fotos .lp-zoom { aspect-ratio: 4 / 5 !important; }
  .lp-vive__fotos .lp-reveal { opacity: 1; transform: none; }
  .lp-vive figcaption { margin-top: 10px; }
}
@media (min-width: 640px) and (max-width: 999px) { .lp-vive__fotos > figure { flex-basis: 60%; } }
.lp-vive + .lp-carrusel__puntos, .lp-vive__fotos + .lp-carrusel__puntos { display: none; }
@media (max-width: 999px) { .lp-vive__fotos + .lp-carrusel__puntos { display: flex; justify-content: center; gap: 8px; margin-top: 6px; } .lp-vive__fotos + .lp-carrusel__puntos button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 99px; background: var(--line); transition: width .35s var(--ease), background-color .35s var(--ease); } .lp-vive__fotos + .lp-carrusel__puntos button.is-on { width: 22px; background: var(--oro); } }

/* ── Plantas en móvil: los pisos en una grilla de 4, sin barra que se corte ── */
@media (max-width: 999px) {
  .lp-plantas__pisos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; padding: 0; border: 0; border-radius: 0; background: transparent !important; overflow: visible; }
  .lp-plantas__piso { min-height: 44px; padding: 6px 4px; border: 1px solid var(--line); border-radius: var(--r); background: rgba(255, 255, 255, .7); font-size: 12px; line-height: 1.2; white-space: normal; text-align: center; }
  .lp-plantas__piso.is-on { border-color: var(--noche); background: var(--noche); color: #fff; }
}

/* ── Pie en móvil: columnas plegables tipo FAQ ── */
.lp-pie__toggle { display: block; width: 100%; padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; text-align: inherit; cursor: default; pointer-events: none; }
@media (max-width: 759px) {
  .lp-pie__cols { gap: 0; }
  .lp-pie__col { grid-column: 1 / -1 !important; border-bottom: 1px solid var(--line-2); }
  .lp-pie__col h3 { margin: 0; }
  .lp-pie__toggle { position: relative; padding: 18px 32px 18px 0; cursor: pointer; pointer-events: auto; }
  .lp-pie__toggle::before, .lp-pie__toggle::after { content: ""; position: absolute; right: 4px; top: 50%; width: 12px; height: 1.5px; background: var(--oro-2); transition: transform .35s var(--ease); }
  .lp-pie__toggle::after { transform: rotate(90deg); }
  .lp-pie__col.is-abierto .lp-pie__toggle::after { transform: rotate(0); }
  .lp-pie__col > :not(:first-child) { display: none; }
  .lp-pie__col.is-abierto > :not(:first-child) { display: block; }
  .lp-pie__col.is-abierto { padding-bottom: 18px; }
  .lp-pie__col.is-abierto > h3 + * { animation: lp-sube .45s var(--ease) both; }
  .lp-pie__col h3 + p + h3, .lp-pie__col p + h3 { margin-top: 18px; }
}
@media (max-width: 759px) { .lp-pie__col:not(.is-abierto) > .lp-pie__java { display: none !important; } }

/* El botón de menú solo en móvil; en PC vuelven las secciones a los lados del logo */
.lp-top__nav--izq { grid-column: 1; }
@media (min-width: 1000px) { .lp-top__menu { display: none; } .lp-menu, .lp-menu__velo { display: none !important; } }

/* ---------- Maqueta 3D: panel azul cielo, el texto arriba y la torre que sube desde abajo ----------
   Los azules salen del cielo del render de la torre, así la foto se funde con el panel. Al tocar
   «Explorar» el recorrido de Arcavel ocupa el panel. En PC 16:9 (máx. 82 % del alto); en celular 4:5. */
.lp-maqueta__marco { position: relative; overflow: hidden; aspect-ratio: 16 / 9; max-height: 82svh; min-height: 520px; width: 100%; margin: 0 auto; border-radius: 3px; background: #1c74b8; isolation: isolate; }
.lp-maqueta__portada { position: absolute; inset: 0; z-index: 2; background: linear-gradient(180deg, #2f86c8 0%, #6eabdd 38%, #a9cbea 72%, #c6dbec 100%); transition: opacity .35s ease; }
.lp-maqueta__texto { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; padding: clamp(36px, 4.4vw, 68px) 24px 0; text-align: center; color: #fff; }
.lp-maqueta__titulo { margin: 0 0 14px; font-family: var(--serif); font-size: var(--fs-t2); font-weight: 400; line-height: 1.08; letter-spacing: -.005em; color: #fff; text-wrap: balance; text-shadow: 0 1px 18px rgba(14, 26, 46, .18); }
.lp-maqueta__lead { max-width: 46ch; margin: 0 0 26px; font-size: clamp(14px, .3vw + 12px, 16.5px); line-height: 1.55; color: rgba(255, 255, 255, .92); }
.lp-maqueta__play { gap: 10px; }
.lp-maqueta__play .lp-ico { width: 18px; height: 18px; transition: transform .3s ease; }
.lp-maqueta__play:hover .lp-ico { transform: translateX(3px); }
/* La torre: abajo al centro, a lo alto del panel, fundida por arriba y por los lados. */
.lp-maqueta__torre { position: absolute; left: 50%; bottom: 0; z-index: 1; height: 68%; width: auto; max-width: none; transform: translateX(-50%); object-fit: contain;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 22%), linear-gradient(90deg, transparent 0%, #000 30%, #000 70%, transparent 100%);
  -webkit-mask-composite: source-in; mask-image: linear-gradient(180deg, transparent 0%, #000 22%), linear-gradient(90deg, transparent 0%, #000 30%, #000 70%, transparent 100%); mask-composite: intersect; }
.lp-maqueta__iframe { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; border: 0; background: var(--noche); }
.lp-maqueta__marco.is-activa .lp-maqueta__portada { opacity: 0; pointer-events: none; }
.lp-maqueta__marco.is-activa .lp-maqueta__iframe { z-index: 4; }
.lp-maqueta__marco:fullscreen { max-height: none; aspect-ratio: auto; border-radius: 0; }
.lp-maqueta__cerrar { position: absolute; top: 14px; right: 14px; z-index: 5; display: none; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid rgba(255, 255, 255, .6); border-radius: 3px; background: rgba(14, 26, 46, .72); color: #fff; font: inherit; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; backdrop-filter: blur(6px); }
.lp-maqueta__cerrar span { font-size: 20px; line-height: 1; }
.lp-maqueta__cerrar:hover { background: #fff; color: var(--noche); }
.lp-maqueta__marco.is-activa .lp-maqueta__cerrar { display: inline-flex; }
.lp-maqueta__marco:fullscreen .lp-maqueta__cerrar { display: none; }
.lp-maqueta__pie { display: flex; justify-content: center; margin-top: 22px; }
.lp-maqueta__completa { background: none; cursor: pointer; font: inherit; color: var(--noche); }
@media (max-width: 999px) {
  .lp-maqueta .lp-wrap { padding-left: 12px; padding-right: 12px; }
  .lp-maqueta__marco { aspect-ratio: 4 / 5; max-height: none; min-height: 0; }
  .lp-maqueta__torre { height: 62%; }
}
@media (prefers-reduced-motion: reduce) { .lp-maqueta__play:hover .lp-ico { transform: none; } }

/* ---------- Tecnología: la foto llena la tarjeta, etiqueta arriba y el texto en una ficha blanca abajo ----------
   Esquinas casi rectas como el resto del sitio (3 px la tarjeta, 2 px la ficha). */
.lp-card--tec { position: relative; display: block; aspect-ratio: 3 / 4; padding: 0; overflow: hidden; border: 0; border-radius: 3px; background: var(--noche); text-align: left; }
.lp-card--tec .lp-card__foto { position: absolute; inset: 0; width: auto; margin: 0; aspect-ratio: auto; }
.lp-card--tec .lp-card__foto img { object-position: 50% 35%; transition: transform .8s var(--ease-out); }
.lp-card--tec:hover .lp-card__foto img { transform: scale(1.05); }
.lp-card__tag { position: absolute; top: 14px; right: 14px; z-index: 1; padding: 6px 11px; border-radius: 2px; background: rgba(255, 255, 255, .92); color: var(--noche); font-size: 11px; font-weight: 500; letter-spacing: .14em; line-height: 1; text-transform: uppercase; }
.lp-card__info { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 1; padding: clamp(16px, .6vw + 11px, 22px) clamp(16px, .6vw + 11px, 22px) clamp(15px, .5vw + 10px, 20px); border-radius: 2px; background: #fff; box-shadow: 0 10px 30px -18px rgba(14, 26, 46, .5); }
.lp-card--tec .lp-card__titulo { display: block; min-height: 0; margin: 0 0 6px; font-size: clamp(19px, .55vw + 13px, 25px); line-height: 1.15; text-wrap: balance; }
.lp-card--tec p { max-width: none; margin: 0; font-size: clamp(13px, .15vw + 11.5px, 14.5px); line-height: 1.5; color: var(--ink-2); }
@media (prefers-reduced-motion: reduce) { .lp-card--tec:hover .lp-card__foto img { transform: none; } }

/* ---------- Sostenibilidad: ícono de línea dentro de un óvalo de borde fino y el texto debajo ---------- */
.lp-sost { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); justify-content: center; gap: 28px 24px; max-width: 980px; margin: clamp(48px, 4vw, 72px) auto 0; align-items: start; }
.lp-sost li { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 0; border: 0; background: none; text-align: center; font-size: clamp(14px, .2vw + 12px, 16px); line-height: 1.4; color: var(--ink); text-wrap: balance; }
.lp-sost .lp-ico { box-sizing: content-box; width: 30px; height: 30px; padding: 34px 22px; border: 1px solid rgba(14, 26, 46, .22); border-radius: 999px; background: transparent; color: var(--ink); stroke-width: 1.05; transition: border-color .3s ease, color .3s ease, background-color .3s ease; }
.lp-sost li:hover .lp-ico { border-color: var(--oro); color: var(--oro); background: rgba(184, 147, 90, .06); }
.lp-sost span { max-width: 20ch; }
@media (max-width: 699px) {
  .lp-sost { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; }
  .lp-sost .lp-ico { width: 28px; height: 28px; padding: 30px 20px; }
}

/* ---------- Portada minimal: título con la segunda línea en cursiva, dos botones limpios
   (línea y blanco) y el precio en una ficha de vidrio con borde fino ---------- */
.lp-hero__title em { font-style: italic; }
.lp-hero__title { margin-bottom: clamp(26px, 2vw, 36px); }
.lp-hero .lp-acciones { gap: 12px; }
.lp-precio--vidrio { border: 1px solid rgba(255, 255, 255, .5); border-radius: 3px; background: rgba(14, 26, 46, .32); color: rgba(255, 255, 255, .78); box-shadow: none; -webkit-backdrop-filter: blur(14px) saturate(1.1); backdrop-filter: blur(14px) saturate(1.1); }
.lp-precio--vidrio .lp-label { color: var(--oro-2); }
.lp-precio--vidrio .lp-label::before { display: none; }
.lp-precio--vidrio .lp-label { gap: 0; }
.lp-precio--vidrio .lp-precio__valor { color: #fff; }
.lp-precio--vidrio .lp-precio__nota { margin-bottom: 0; color: rgba(255, 255, 255, .66); }
@media (max-width: 599px) { .lp-hero .lp-acciones .lp-btn--blanco { order: -1; } }

/* ---------- Amenidades piso a piso, versión nueva ----------
   Izquierda: los pisos sin número, cada amenidad en una píldora blanca con su
   ícono de línea (la que se ve, rellena en dorado) y al final el enlace a la
   maqueta. Derecha: la foto con el nombre grande, el resumen del piso, el
   contador «01 / 07» y flechas redondas. */
.lp-nivel { gap: 16px; }
.lp-nivel__items { gap: 10px; padding-left: 0; }
.lp-nivel__items li { gap: 9px; min-height: 46px; padding: 0 18px 0 15px; border: 1px solid rgba(14, 26, 46, .12); border-radius: 999px; background: #fff; color: var(--ink); font-size: clamp(13px, .15vw + 11.5px, 14.5px); line-height: 1.2; }
.lp-nivel__items li .lp-ico { width: 18px; height: 18px; color: var(--ink-2); transition: color .25s ease; }
.lp-nivel__item--foto:hover { border-color: var(--oro); background: #fff; color: var(--ink); }
.lp-nivel__item--foto.is-on, .lp-nivel__item--foto.is-on:hover { border-color: var(--oro); background: var(--oro); color: #fff; }
.lp-nivel__item--foto.is-on .lp-ico { color: #fff; }

.lp-torre__foto::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(0deg, rgba(14, 26, 46, .78) 0%, rgba(14, 26, 46, .5) 22%, rgba(14, 26, 46, .16) 44%, rgba(14, 26, 46, 0) 60%); }
.lp-torre__info { position: absolute; left: clamp(22px, 2.4vw, 40px); right: clamp(150px, 12vw, 190px); bottom: clamp(22px, 2.4vw, 40px); z-index: 2; display: flex; flex-direction: column; gap: 10px; color: #fff; pointer-events: none; }
.lp-torre__titulo { font-family: var(--serif); font-size: clamp(30px, 2.3vw + 8px, 52px); font-weight: 400; line-height: 1.05; letter-spacing: -.005em; text-wrap: balance; }
.lp-torre__desc { max-width: 46ch; font-size: clamp(13.5px, .2vw + 11.5px, 15.5px); line-height: 1.5; color: rgba(255, 255, 255, .86); }
.lp-torre__cuenta { display: flex; align-items: center; gap: 10px; margin-top: 6px; font-size: 13px; letter-spacing: .08em; color: rgba(255, 255, 255, .6); font-variant-numeric: tabular-nums; }
.lp-torre__cuenta i { display: block; width: 52px; height: 1px; background: rgba(255, 255, 255, .6); }
.lp-torre__cuenta b { font-weight: 500; color: #fff; }
.lp-torre__flechas { position: absolute; right: clamp(18px, 2vw, 32px); bottom: clamp(22px, 2.4vw, 40px); z-index: 3; display: flex; gap: 12px; }
.lp-torre__flecha { display: grid; place-items: center; width: clamp(48px, 2vw + 24px, 60px); height: clamp(48px, 2vw + 24px, 60px); padding: 0; border: 1px solid rgba(255, 255, 255, .75); border-radius: 50%; background: transparent; color: #fff; cursor: pointer; transition: background-color .25s ease, color .25s ease, transform .25s ease; }
.lp-torre__flecha .lp-ico { width: 20px; height: 20px; }
.lp-torre__flecha:hover { background: rgba(255, 255, 255, .16); }
.lp-torre__flecha--llena { border-color: #fff; background: #fff; color: var(--noche); }
.lp-torre__flecha--llena:hover { background: var(--oro); border-color: var(--oro); color: #fff; }
.lp-torre__flecha[hidden] { display: none; }

.lp-explora { display: inline-flex; align-items: center; gap: 16px; margin-top: clamp(26px, 2vw, 36px); text-align: left; color: var(--ink); text-decoration: none; }
.lp-explora__img { flex: none; width: 68px; height: 68px; border-radius: 50%; object-fit: cover; object-position: 50% 25%; }
.lp-explora strong { display: block; font-family: var(--serif); font-size: clamp(19px, .5vw + 13px, 24px); font-weight: 400; line-height: 1.2; }
.lp-explora small { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; font-size: 11.5px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-2); }
.lp-explora small .lp-ico { width: 15px; height: 15px; transition: transform .25s ease; }
.lp-explora:hover small .lp-ico { transform: translateX(4px); }
@media (min-width: 1000px) {
  .lp-torre__niveles { grid-column: 1; grid-row: 1; }
  .lp-torre__fotos { grid-column: 2; grid-row: 1 / span 2; }
}
@media (max-width: 999px) {
  .lp-torre__info { left: 18px; right: 122px; bottom: 18px; gap: 6px; }
  .lp-torre__titulo { font-size: clamp(24px, 6.4vw, 32px); }
  .lp-torre__desc { display: none; }
  .lp-torre__cuenta { margin-top: 2px; font-size: 12px; }
  .lp-torre__cuenta i { width: 32px; }
  .lp-torre__flechas { right: 16px; bottom: 18px; gap: 8px; }
  .lp-torre__flecha { width: 44px; height: 44px; }
}
@media (prefers-reduced-motion: reduce) { .lp-explora:hover small .lp-ico { transform: none; } }

/* ---------- Tecnología en una sola pantalla (PC) ----------
   Título, las 4 tarjetas y la sostenibilidad caben juntos en el alto de la
   ventana: menos aire arriba y abajo, tarjetas a un alto fijo según la
   pantalla y la fila de íconos compacta, en círculos dorados con divisiones finas. */
.lp-sost .lp-ico { width: 42px; height: 42px; padding: 18px; border-color: rgba(184, 147, 90, .5); border-radius: 50%; color: var(--ink); stroke-width: 1.1; }
@media (min-width: 1000px) {
  #tecnologia { padding-top: clamp(44px, 5svh, 72px); padding-bottom: clamp(40px, 4.5svh, 64px); }
  #tecnologia .lp-cabeza { margin-bottom: clamp(20px, 2.6svh, 36px); }
  #tecnologia .lp-h2 { font-size: clamp(30px, 2.6vw + 4px, 46px); }
  #tecnologia .lp-cards { gap: clamp(14px, 1.2vw, 22px); }
  .lp-card--tec { aspect-ratio: auto; height: clamp(260px, calc(100svh - 480px), 560px); }
  .lp-sost { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; max-width: 1100px; margin-top: clamp(22px, 3svh, 40px); }
  .lp-sost li { position: relative; gap: 12px; padding: 0 16px; }
  .lp-sost li + li::before { content: ""; position: absolute; left: 0; top: 18%; height: 64%; width: 1px; background: rgba(14, 26, 46, .12); }
  .lp-sost .lp-ico { width: clamp(36px, 2.4svh + 18px, 46px); height: clamp(36px, 2.4svh + 18px, 46px); padding: clamp(12px, 1.2svh + 4px, 18px); }
}
/* Celular: sin las píldoras de amenidades; solo la foto, que se pasa deslizando o con las flechas. */
@media (max-width: 999px) {
  .lp-nivel__items { display: none; }
  .lp-torre__fotos { touch-action: pan-y; }
  .lp-nivel__panel .lp-torre__fotos { margin-top: 4px; }
}

/* ---------- Cifras con su ícono de línea dorado arriba (y el sol sobre el mar en el +22) ---------- */
.lp-cifras li > .lp-ico { display: block; width: clamp(36px, 1vw + 26px, 46px); height: clamp(36px, 1vw + 26px, 46px); margin: 0 auto 14px; color: var(--oro); stroke-width: 1.15; }
.lp-destacado > .lp-ico { width: clamp(46px, 1.4vw + 30px, 60px); height: clamp(46px, 1.4vw + 30px, 60px); flex: none; color: var(--oro); stroke-width: 1.1; }
@media (max-width: 999px) {
  .lp-cifras li { padding-top: 22px; padding-bottom: 22px; }
  .lp-cifras li:nth-child(2) { padding-bottom: 26px; }
  .lp-cifras li:last-child { padding-bottom: 6px; }
}
@media (max-width: 599px) {
  .lp-destacado { gap: 12px; padding-top: 32px; }
  .lp-destacado__num { font-size: clamp(64px, 20vw, 90px); }
}

/* ---------- Tipologías: tarjetas con el nombre en serif, línea dorada y ✓ en la elegida ---------- */
#planos .lp-planos__tab { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 18px 20px 16px; border: 1px solid rgba(14, 26, 46, .08); border-radius: 4px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 46, .04), 0 10px 24px -18px rgba(14, 26, 46, .25); text-align: left; }
#planos .lp-planos__tab.is-on { border-color: var(--noche); background: var(--noche); box-shadow: 0 16px 30px -18px rgba(14, 26, 46, .6); }
#planos .lp-planos__tab-nombre { font-family: var(--serif); font-size: clamp(21px, .6vw + 15px, 26px); font-weight: 400; line-height: 1.1; font-variant-numeric: lining-nums; white-space: nowrap; }
#planos .lp-planos__tab-area { font-size: clamp(13px, .2vw + 11.5px, 15px); color: var(--ink-2); }
#planos .lp-planos__tab-tipo { display: block; font-size: 12px; letter-spacing: .12em; color: var(--ink-3); }
#planos .lp-planos__tab-tipo::before { content: ""; display: block; width: 24px; height: 1px; margin: 4px 0 10px; background: var(--oro); }
#planos .lp-planos__tab.is-on .lp-planos__tab-area { color: rgba(255, 255, 255, .8); }
#planos .lp-planos__tab.is-on .lp-planos__tab-tipo { color: rgba(255, 255, 255, .72); }
#planos .lp-planos__tab.is-on .lp-planos__tab-tipo::before { background: rgba(255, 255, 255, .7); }
#planos .lp-planos__tab.is-on::after { content: ""; position: absolute; top: 16px; right: 16px; width: 24px; height: 24px; border-radius: 50%; background: #E9DCC2 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E1A2E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 14px no-repeat; }
#planos .lp-plano__fig { border: 0; border-radius: 6px; box-shadow: 0 1px 2px rgba(14, 26, 46, .04), 0 18px 40px -26px rgba(14, 26, 46, .35); }
#planos .lp-plano__marco .lp-chip { padding: 9px 16px; border-radius: 3px; font-family: var(--serif); font-size: 17px; letter-spacing: 0; font-variant-numeric: lining-nums; }
#planos .lp-plano__fig figcaption::before { content: ""; display: block; width: 28px; height: 1px; margin: 0 auto 12px; background: var(--ink-3); opacity: .6; }
@media (max-width: 1279px) and (min-width: 1000px) { #planos .lp-planos__tab-tipo { display: none; } }
@media (max-width: 999px) {
  #planos .lp-planos__tabs { gap: 12px; }
  #planos .lp-planos__tab { padding: 16px 16px 14px; }
  #planos .lp-planos__tab.is-on::after { top: 14px; right: 14px; }
  #planos .lp-plano__marco .lp-chip { font-size: 15px; padding: 8px 14px; }
}

/* ---------- Tipologías en una sola pantalla (PC) ----------
   Título, pestañas, planta y ficha caben juntos: menos aire arriba, la planta
   a un alto según la ventana y la ficha más compacta. */
@media (min-width: 1000px) {
  #planos { padding-top: clamp(40px, 5svh, 72px); }
  #residencias { margin-bottom: clamp(18px, 2.6svh, 32px); }
  #planos .lp-plano { gap: clamp(32px, 4vw, 72px); }
  #planos .lp-plano__fig { padding: 14px 16px 12px; }
  #planos .lp-plano__marco { aspect-ratio: auto; height: clamp(250px, calc(100svh - 330px), 540px); }
  #planos .lp-plano__fig figcaption { margin-top: 8px; }
  #planos .lp-plano__fig figcaption::before { margin-bottom: 8px; }
  #planos .lp-plano__area { margin-bottom: clamp(12px, 2svh, 24px); font-size: clamp(38px, 2.4svh + 20px, 64px); }
  #planos .lp-ficha { margin-bottom: clamp(16px, 2.4svh, 30px); }
  #planos .lp-ficha > div { padding: clamp(8px, 1.1svh, 13px) 0; }
  #planos .lp-plano__info .lp-label { margin-bottom: 10px; }
}

/* ---------- Ubicación: la vista aérea se disuelve en el azul (máscara, no capa oscura) ----------
   Una capa azul encima del cielo claro dejaba una banda gris «seca». Aquí la propia foto
   se vuelve transparente con una curva suave y deja ver el azul noche de la sección. */
.lp-ubi2__foto::after { display: none; }
.lp-ubi2__foto img { -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.03) 3.4%, rgba(0, 0, 0, 0.1) 6.8%, rgba(0, 0, 0, 0.21) 10.2%, rgba(0, 0, 0, 0.35) 13.6%, rgba(0, 0, 0, 0.5) 17.0%, rgba(0, 0, 0, 0.65) 20.4%, rgba(0, 0, 0, 0.78) 23.8%, rgba(0, 0, 0, 0.89) 27.2%, rgba(0, 0, 0, 0.96) 30.6%, rgba(0, 0, 0, 1) 34%); mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.03) 3.4%, rgba(0, 0, 0, 0.1) 6.8%, rgba(0, 0, 0, 0.21) 10.2%, rgba(0, 0, 0, 0.35) 13.6%, rgba(0, 0, 0, 0.5) 17.0%, rgba(0, 0, 0, 0.65) 20.4%, rgba(0, 0, 0, 0.78) 23.8%, rgba(0, 0, 0, 0.89) 27.2%, rgba(0, 0, 0, 0.96) 30.6%, rgba(0, 0, 0, 1) 34%); }
@media (min-width: 1000px) {
  .lp-ubi2__foto img { -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.03) 4.2%, rgba(0, 0, 0, 0.1) 8.4%, rgba(0, 0, 0, 0.21) 12.6%, rgba(0, 0, 0, 0.35) 16.8%, rgba(0, 0, 0, 0.5) 21.0%, rgba(0, 0, 0, 0.65) 25.2%, rgba(0, 0, 0, 0.78) 29.4%, rgba(0, 0, 0, 0.89) 33.6%, rgba(0, 0, 0, 0.96) 37.8%, rgba(0, 0, 0, 1) 42%); mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.03) 4.2%, rgba(0, 0, 0, 0.1) 8.4%, rgba(0, 0, 0, 0.21) 12.6%, rgba(0, 0, 0, 0.35) 16.8%, rgba(0, 0, 0, 0.5) 21.0%, rgba(0, 0, 0, 0.65) 25.2%, rgba(0, 0, 0, 0.78) 29.4%, rgba(0, 0, 0, 0.89) 33.6%, rgba(0, 0, 0, 0.96) 37.8%, rgba(0, 0, 0, 1) 42%); }
}
@media (min-width: 1000px) and (max-width: 1439px) {
  #planos .lp-planos__tab { padding: 14px 14px 12px; }
  #planos .lp-planos__tab-nombre { font-size: clamp(19px, .8vw + 9px, 22px); }
  #planos .lp-planos__tab.is-on::after { top: 10px; right: 10px; width: 20px; height: 20px; background-size: 12px; }
}

/* ---------- «Así se vive por dentro» en una sola pantalla (PC) ----------
   La sala toma el alto de la ventana (menos el pie de foto y un margen) en vez
   de una proporción fija, y la habitación llena lo que queda a su lado. */
@media (min-width: 1000px) {
  .lp-vive { margin-top: clamp(40px, 5svh, 72px); }
  .lp-vive__grande .lp-zoom { aspect-ratio: auto; height: clamp(320px, calc(100svh - 150px), 640px); }
  .lp-vive__chica .lp-zoom { min-height: 0; }
}
/* Menú de PC: cada sección en una línea; en pantallas medianas, un poco menos de aire entre ellas. */
.lp-top__nav a { white-space: nowrap; }
@media (min-width: 1000px) and (max-width: 1199px) { .lp-top__nav { gap: 18px; } }
/* Botón flotante: dorado liso, sin borde. */
.lp-fab { border: 0; }

/* ---------- Repaso de celular ---------- */
@media (max-width: 999px) {
  /* Áreas táctiles de al menos 44 px: botón de menú, enlaces del pie y política. */
  .lp-top__menu { min-width: 44px; }
  .lp-pie__col a, .lp-pie__legal a, .lp-pie__cierre a { display: inline-flex; align-items: center; min-height: 44px; }
  /* Los puntos de los carruseles se ven igual, pero se tocan en un área más grande. */
  .lp-carrusel__puntos { gap: 0; }
  .lp-carrusel__puntos button, .lp-vive__fotos + .lp-carrusel__puntos button { box-sizing: content-box; border: 9px solid transparent; background-clip: content-box; }
  .lp-vive__fotos + .lp-carrusel__puntos { gap: 0; }
  /* Ubicación: «A 5 minutos» no se parte en dos líneas. */
  .lp-ubi__lista strong { white-space: nowrap; }
  /* Maqueta: «en 3D» en su propia línea, menos espacio antes y el enlace de pantalla completa más discreto. */
  .lp-maqueta__titulo em { display: block; }
  #maqueta { padding-top: clamp(32px, 8vw, 48px); }
  .lp-maqueta__completa { font-size: 13px; }
}
/* En 360 px «Cotizar» no cabía en su botón. */
@media (max-width: 380px) { .lp-top .lp-btn--sm { padding-left: 14px; padding-right: 14px; } }
/* ---------- Tecnología en computador: la foto se ve completa ----------
   La ficha blanca va debajo de la foto, no encima. */
@media (min-width: 1000px) {
  .lp-card--tec { display: flex; flex-direction: column; background: #fff; box-shadow: 0 14px 34px -24px rgba(14, 26, 46, .45); }
  .lp-card--tec .lp-card__foto { position: relative; inset: auto; flex: 1 1 auto; min-height: 0; }
  .lp-card--tec .lp-card__foto img { position: absolute; inset: 0; object-position: 50% 45%; }
  .lp-card--tec .lp-card__info { position: static; flex: none; border-radius: 0; box-shadow: none; padding: clamp(14px, 1.4svh + 4px, 22px) clamp(16px, .6vw + 10px, 22px) clamp(14px, 1.4svh + 4px, 20px); }
  .lp-card--tec .lp-card__titulo { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: clamp(18px, .45vw + 12px, 23px); }
}
@media (min-width: 1000px) {
  .lp-card--tec { height: clamp(290px, calc(100svh - 420px), 600px); }
  .lp-card--tec .lp-card__info p { min-height: 3em; }
}
/* ---------- Amenidades: la foto respira ----------
   Sobre la foto solo queda el nombre, pequeño y abajo; sin descripción ni contador,
   y el oscurecido es una franja corta para que no tape la imagen. */
.lp-torre__desc, .lp-torre__cuenta { display: none; }
.lp-torre__foto::after { background: linear-gradient(0deg, rgba(14, 26, 46, .55) 0%, rgba(14, 26, 46, .18) 16%, rgba(14, 26, 46, 0) 30%); }
.lp-torre__info { bottom: clamp(24px, 2.4vw, 40px); }
.lp-torre__titulo { font-size: clamp(20px, .9vw + 12px, 28px); line-height: 1.1; }
@media (max-width: 999px) {
  .lp-torre__info { bottom: 22px; }
  .lp-torre__titulo { font-size: clamp(18px, 4.6vw, 22px); }
}

/* ---------- Preguntas de calificación: desplegable ----------
   El botón se ve como los demás campos; la lista se despliega debajo con una
   sombra suave, la opción bajo el cursor en arena y la elegida con ✓ dorado. */
.field--select > label { line-height: 1.4; }
.vsel__nativo { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; white-space: nowrap; }
.field--select > select:not(.vsel__nativo) { width: 100%; min-height: 52px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 3px; background: #fff; color: var(--ink); font: 400 15px/1.3 var(--sans); }
.vsel { position: relative; }
.vsel__btn {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 52px; padding: 13px 14px 13px 14px;
  border: 1px solid var(--line); border-radius: 3px; background: #fff; color: #9AA1AD; font: 400 15px/1.3 var(--sans); text-align: left; cursor: pointer;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.vsel.is-filled .vsel__btn { color: var(--ink); }
.vsel__btn svg { flex: none; width: 16px; height: 16px; color: var(--oro); transition: transform .25s var(--ease); }
.vsel__btn:hover { border-color: #CDBF9F; }
.vsel__btn:focus-visible, .vsel.is-open .vsel__btn { outline: none; border-color: var(--noche); box-shadow: 0 0 0 3px rgba(184, 147, 90, .22); }
.vsel.is-open .vsel__btn svg { transform: rotate(180deg); }
.field--select.is-invalid .vsel__btn { border-color: var(--error); box-shadow: 0 0 0 3px rgba(179, 38, 30, .12); }
.vsel__lista {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 20; max-height: 264px; margin: 0; padding: 6px; overflow: auto; list-style: none;
  border: 1px solid var(--line); border-radius: 4px; background: #fff; box-shadow: 0 22px 48px -18px rgba(14, 26, 46, .35), 0 2px 6px rgba(14, 26, 46, .06);
  animation: vsel-entra .2s var(--ease);
}
.vsel__lista:focus { outline: none; }
.vsel__lista[hidden] { display: none; }
.vsel__lista li { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 12px; border-radius: 3px; color: var(--ink-2); font-size: 14.5px; line-height: 1.3; cursor: pointer; }
.vsel__lista li + li { margin-top: 2px; }
.vsel__lista li svg { flex: none; width: 16px; height: 16px; color: var(--oro); opacity: 0; transform: scale(.6); transition: opacity .2s var(--ease), transform .2s var(--ease); }
.vsel__lista li.is-active { background: rgba(184, 147, 90, .12); color: var(--ink); }
.vsel__lista li[aria-selected="true"] { color: var(--noche); font-weight: 500; }
.vsel__lista li[aria-selected="true"] svg { opacity: 1; transform: none; }
@keyframes vsel-entra { from { opacity: 0; transform: translateY(-4px); } }
.vsel.is-arriba .vsel__lista { top: auto; bottom: calc(100% + 6px); animation-name: vsel-sube; }
@keyframes vsel-sube { from { opacity: 0; transform: translateY(4px); } }
@media (prefers-reduced-motion: reduce) { .vsel__lista { animation: none; } .vsel__btn svg, .vsel__lista li svg { transition: none; } }

/* ---------- Tipologías por grupo (A, B, C) en carrusel ----------
   Cada tarjeta: el plano sobre blanco, el nombre en serif con sus pisos, las
   dos áreas y el enlace para recibirlo. Se desliza de lado (con imán) y las
   flechas pasan de a un plano; en PC se ven dos a la vez. */
.lp-tipos { margin-top: clamp(22px, 2.4svh, 34px); }
.lp-tipos[hidden] { display: none; }
.lp-tipos__pista {
  position: relative; display: flex; gap: clamp(14px, 1.4vw, 24px); margin: 0; padding: 4px 2px 18px; list-style: none;
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.lp-tipos__pista::-webkit-scrollbar { display: none; }
.lp-tipos__pista:focus-visible { outline: 2px solid var(--oro); outline-offset: 4px; border-radius: 4px; }
.lp-tipo {
  flex: 0 0 calc((100% - clamp(14px, 1.4vw, 24px)) / 2); min-width: 0; display: flex; flex-direction: column; scroll-snap-align: start;
  border: 1px solid rgba(14, 26, 46, .07); border-radius: 4px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 46, .04), 0 18px 40px -28px rgba(14, 26, 46, .4); overflow: hidden;
}
.lp-tipo__plano { display: flex; align-items: center; justify-content: center; width: 100%; height: clamp(230px, calc(100svh - 495px), 440px); padding: clamp(12px, 1.2vw, 22px); border: 0; background: #fff; cursor: zoom-in; }
.lp-tipo__plano img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .5s var(--ease-out); }
.lp-tipo__plano:hover img { transform: scale(1.02); }
.lp-tipo__info { display: grid; gap: 8px; padding: clamp(14px, 1.2vw, 20px) clamp(16px, 1.4vw, 24px) clamp(16px, 1.4vw, 22px); border-top: 1px solid rgba(14, 26, 46, .07); }
.lp-tipo__cabeza { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.lp-tipo__nombre { margin: 0; font-family: var(--serif); font-size: clamp(22px, .6vw + 15px, 28px); font-weight: 400; line-height: 1.1; color: var(--ink); font-variant-numeric: lining-nums; }
.lp-tipo__pisos { font-size: 11.5px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: #3E8E8A; white-space: nowrap; }
.lp-tipo__areas { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; font-size: 13.5px; color: var(--ink-2); }
.lp-tipo__areas strong { font-weight: 500; color: var(--ink); font-variant-numeric: lining-nums; }
.lp-tipo__detalle { margin: 0; font-size: 13px; color: var(--ink-3); }
.lp-tipo__info .lp-link { justify-self: start; margin-top: 4px; }
.lp-tipos__nav { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 6px; }
.lp-tipos__flecha { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid rgba(14, 26, 46, .18); border-radius: 50%; background: #fff; color: var(--noche); cursor: pointer; transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), opacity .2s var(--ease); }
.lp-tipos__flecha .lp-ico { width: 18px; height: 18px; transform: scaleX(-1); }
.lp-tipos__flecha--sig .lp-ico { transform: none; }
.lp-tipos__flecha:hover:not(:disabled) { border-color: var(--noche); background: var(--noche); color: #fff; }
.lp-tipos__flecha:disabled { opacity: .35; cursor: default; }
.lp-tipos__cuenta { min-width: 52px; font-size: 13px; letter-spacing: .08em; text-align: center; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.lp-tipos__cuenta b { font-weight: 500; color: var(--ink); }
.lp-tipos__nota { margin: 14px 0 0; font-size: 12px; text-align: center; color: var(--ink-3); }
@media (max-width: 999px) {
  #planos .lp-planos__tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #planos .lp-planos__tab { min-width: 0; padding: 12px 10px 11px; }
  #planos .lp-planos__tab-area { font-size: 11px; white-space: nowrap; }
  #planos .lp-planos__tab-nombre { font-size: 20px; }
  #planos .lp-planos__tab-tipo { font-size: 10.5px; letter-spacing: .06em; white-space: nowrap; }
  #planos .lp-planos__tab.is-on::after { top: 10px; right: 10px; width: 18px; height: 18px; background-size: 11px; }
  .lp-tipo { flex-basis: 86%; }
  .lp-tipo__plano { height: auto; aspect-ratio: 4 / 3; padding: 10px; }
}
@media (prefers-reduced-motion: reduce) { .lp-tipo__plano img, .lp-tipos__flecha { transition: none; } .lp-tipo__plano:hover img { transform: none; } }

/* Cada pestaña nombra sus variantes (A1 · A2 · A3 · A4) bajo «Tipos A». */
#planos .lp-planos__tab-variantes { margin-top: -2px; font-size: 12px; font-weight: 500; letter-spacing: .04em; white-space: nowrap; color: #3E8E8A; font-variant-numeric: lining-nums; }
#planos .lp-planos__tab.is-on .lp-planos__tab-variantes { color: #9FD3CF; }
@media (max-width: 999px) {
  #planos .lp-planos__tab-variantes { font-size: 10px; letter-spacing: 0; line-height: 1.4; white-space: normal; }
  #planos .lp-planos__tab.is-on::after { display: none; }
}
@media (min-width: 1000px) { .lp-tipo__plano { height: clamp(220px, calc(100svh - 520px), 430px); } }

/* ---------- Tipologías compactas en celular ----------
   Título, pestañas y una tarjeta caben en la pantalla: pestañas sin la línea
   ni el uso (ya lo dice la tarjeta), plano más bajo, ficha más apretada y el
   carrusel llega hasta el borde de la pantalla para que la siguiente asome. */
@media (max-width: 999px) {
  #planos { padding-top: 40px; }
  #planos #residencias { margin-bottom: 0; }
  #planos #residencias .lp-lead { margin-top: 6px; font-size: 14.5px; }
  #planos .lp-planos__tabs { margin-top: 14px; }
  #planos .lp-planos__tab { gap: 3px; padding: 11px 10px 10px; }
  #planos .lp-planos__tab-nombre { font-size: 19px; }
  #planos .lp-planos__tab-tipo { display: none; }
  .lp-tipos { margin-top: 14px; }
  .lp-tipos__pista { margin: 0 calc(-1 * var(--gut)); padding: 2px var(--gut) 12px; scroll-padding-left: var(--gut); gap: 12px; }
  .lp-tipo { flex-basis: 84%; }
  .lp-tipo__plano { aspect-ratio: 16 / 11; padding: 8px; }
  .lp-tipo__info { gap: 5px; padding: 12px 14px 14px; }
  .lp-tipo__nombre { font-size: 21px; }
  .lp-tipo__pisos { font-size: 10.5px; }
  .lp-tipo__areas { gap: 2px 12px; font-size: 12.5px; }
  .lp-tipo__areas span { white-space: nowrap; }
  .lp-tipo__detalle { font-size: 12px; }
  .lp-tipo__info .lp-link { margin-top: 2px; }
  .lp-tipos__nav { margin-top: 2px; }
  .lp-tipos__flecha { width: 44px; height: 44px; }
  .lp-tipos__nota { margin-top: 10px; font-size: 11px; }
}
/* PC: un plano a la vez, grande, con la ficha a la derecha; las flechas y el
   contador pasan al siguiente. Así se lee el plano sin que la sección crezca. */
@media (min-width: 1000px) {
  #planos .lp-planos__tab { width: max-content; }
  .lp-tipo { flex: 0 0 100%; flex-direction: row; }
  .lp-tipo__plano { flex: 0 0 68%; width: 68%; height: clamp(260px, calc(100svh - 340px), 600px); padding: clamp(14px, 1.4vw, 28px); }
  .lp-tipo__info { flex: 1 1 auto; align-content: center; gap: 10px; border-top: 0; border-left: 1px solid rgba(14, 26, 46, .07); padding: clamp(18px, 1.6vw, 30px); }
  .lp-tipo__cabeza { flex-direction: column; align-items: flex-start; gap: 6px; }
  .lp-tipo__areas { flex-direction: column; gap: 4px; }
  .lp-tipo__info .lp-link { margin-top: 8px; }
}

/* ---------- «Explora cada nivel en 3D» como botón compacto ----------
   Una píldora con la torre en miniatura, el texto en dos líneas y la flecha;
   ocupa el ancho de los botones en celular y su propio ancho en PC. */
.lp-explora { display: inline-flex; align-items: center; gap: 14px; max-width: 100%; margin-top: clamp(16px, 1.4vw, 24px); padding: 8px 22px 8px 8px; border: 1px solid rgba(14, 26, 46, .12); border-radius: 999px; background: rgba(255, 255, 255, .72); box-shadow: 0 10px 24px -20px rgba(14, 26, 46, .5); transition: border-color .2s var(--ease), background-color .2s var(--ease), box-shadow .2s var(--ease); }
.lp-explora:hover { border-color: var(--noche); background: #fff; box-shadow: 0 14px 30px -20px rgba(14, 26, 46, .55); }
.lp-explora:focus-visible { outline: 2px solid var(--oro); outline-offset: 3px; }
.lp-explora__img { width: 48px; height: 48px; }
.lp-explora strong { font-size: clamp(17px, .3vw + 13px, 20px); }
.lp-explora small { margin-top: 2px; font-size: 10.5px; letter-spacing: .14em; }
@media (max-width: 999px) {
  .lp-explora { display: flex; width: 100%; margin-top: 14px; }
  .lp-explora > span { flex: 1 1 auto; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) { .lp-explora { transition: none; } }
