/* Tokens del motor; el perfil base conserva las medidas y colores publicados. */
:root{
 --superficie:#FFFFFF;
 --superficie-alterna:#F7F9FB;
 --texto:#1D2530;
 --texto-suave:#5C6470;
 --primario:#0A0C12;
 --sobre-primario:#FFFFFF;
 --acento:#2F7CF6;
 --sobre-acento:#0A0C12;
 --linea:#E6E9EC;
 --control:#5C6470;
 --foco-claro:#0A0C12;
 --foco-oscuro:var(--marca);
 --dark:var(--primario);--tinta:var(--texto);--muted:var(--texto-suave);--lima:var(--foco-oscuro);
 --fuente-titulos:"Mulish",system-ui,sans-serif;--fuente-cuerpo:"Mulish",system-ui,sans-serif;--radio:16px;--ritmo:4rem;
 --estado-aviso-texto:#b45309;
 --estado-error-texto:#b3261e;
 --estado-exito-texto:#15803d;
 --estado-exito-fondo:#dcfce7;
 --estado-apartado-fondo:#fac800;
 --estado-vendido-fondo:#ff6568;
 --estado-disponible-fondo:#e2e8f0;
 --plano-vecino:#dfe4ea;
 --plano-area:#cfe6c8;
 --plano-area-borde:#3f7d3a;
 --plano-cota:#e05252;
 --plano-verde:#95bc6d;
 --plano-calle:#a0a19d;
 --plano-seleccion-borde:#2f6b28;
 --plano-superficie-texto:#1c2b17;
 --estado-exito-texto:#0f4c3a;
 --sombra-80:rgba(0,0,0,.8);
 --sombra-55:rgba(0,0,0,.55);
 --sombra-75:rgba(0,0,0,.75);
 --sombra-60:rgba(0,0,0,.6);
 --sombra-50:rgba(0,0,0,.5);
 --sombra-30:rgba(0,0,0,.3);
 --sombra-12:rgba(4,7,15,.12);
 --sombra-10:rgba(4,7,15,.1);
}

:root{
 --plano-lote-1:#cfe3bd;
 --plano-lote-2:#a9cf90;
 --plano-lote-3:#8fbd76;
 --plano-lote-4:#bcd9a6;
 --plano-area-1:#95bc6d;
 --plano-area-2:#7ba757;
 --plano-area-3:#6b964a;
 --plano-area-4:#a8c983;
 --plano-monte-1:#dfe6d6;
 --plano-monte-2:#c9d8bb;
 --plano-monte-3:#bcd0ad;
 --plano-monte-4:#d4e0c6;
}
:root{--titulo:var(--fuente-titulos)}
body:has([role=dialog][aria-modal=true]:not([hidden])){overflow:hidden}

/* Presentación base extraída sin cambios de desarrollo.html (Release A). */
*{margin:0;box-sizing:border-box}
:root{--dark:#0a0c12;--tinta:#1d2530;--muted:#5c6470;--linea:#e6e9ec;--acento:#2f7cf6;--lima:var(--marca)}
body{font-family:"Mulish",ui-sans-serif,system-ui,sans-serif;background:#fff;color:var(--tinta);
  -webkit-font-smoothing:antialiased;line-height:1.65}
a{color:inherit}
img{max-width:100%;display:block}
.portada{background-color:var(--dark);color:#fff;padding:0 0 4.5rem;
  /* Más alto: la foto del desarrollo es el argumento, no un encabezado. */
  min-height:clamp(30rem,72vh,46rem);display:flex;flex-direction:column;justify-content:flex-end;
  position:relative;overflow:hidden;background-size:cover;background-position:center}
/* El velo casi desaparece: apenas lo justo arriba para el nav y abajo para el
   texto. En medio la foto del desarrollo se ve como es. */
.portada::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,10,18,.46) 0%,rgba(6,10,18,.08) 26%,rgba(6,10,18,.04) 52%,rgba(6,10,18,.62) 100%)}
.portada h1,.portada .tagline,.portada .ppRuta{text-shadow:0 2px 6px rgba(0,0,0,.8),0 6px 24px rgba(0,0,0,.55)}
.portada>*{position:relative;z-index:1}
/* La ruta vive DENTRO del hero: fuera se recortaba contra la foto y quedaba
   una franja negra suelta entre el nav y la portada. Aquí no hay pestañas que
   absorban la cabecera fija, así que la absorbe ella. */
.portada > .ppRuta{padding-top:5.25rem;--ppRutaAncho:76rem}
/* El logotipo del desarrollo y su nombre son la misma presentación: van uno al
   lado del otro y alineados por el centro. Colgado desde arriba, el logo
   quedaba a la altura del ojito y el nombre caía por debajo, como si fueran
   dos cosas sueltas.
   El hero se ensancha respecto al cuerpo —el texto sigue midiendo lo mismo,
   lo que gana es el aire de los costados— porque aquí no hay que leer líneas
   largas: hay que reconocer una marca. */
.portada .caja{max-width:76rem;margin:0 auto;padding:2.5rem clamp(1.5rem,4vw,3rem) 0;
  position:relative;display:flex;align-items:center;gap:clamp(1.7rem,3vw,3rem)}
.portada .pTexto{min-width:0;flex:1;max-width:44rem}
/* La ruta comparte el borde izquierdo con el logotipo: si cada una lleva su
   propio padding, el hero arranca en dos líneas verticales distintas. */
header.portada > .ppRuta .ppRutaIn{padding-left:clamp(1.5rem,4vw,3rem);padding-right:clamp(1.5rem,4vw,3rem)}
/* Apilados, el centrado deja de ser vertical y pasa a ser horizontal: el logo
   se iba al medio y el texto se quedaba a la izquierda. */
@media(max-width:720px){.portada .caja{flex-direction:column;align-items:flex-start;gap:1.1rem}}
.portada h1,.portada p,.portada .ojito{text-shadow:0 2px 6px rgba(0,0,0,.75),0 4px 22px rgba(0,0,0,.6)}
.portada .ojito{font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--lima)}
.portada h1{margin-top:.6rem;font-size:2.1rem;font-weight:800;letter-spacing:-.02em;line-height:1.12}
@media(min-width:768px){.portada h1{font-size:2.9rem}}
.portada .tag{margin-top:1rem;color:rgba(255,255,255,.82);font-size:1.05rem;max-width:40rem}
/* Crece con el ancho: en una pantalla grande, 86px de logotipo junto a un
   titular de 46px se leen como una miniatura al lado del texto. */
.pLogo{height:clamp(5rem,7.5vw,8rem);width:auto;flex:none;margin:0;
  filter:drop-shadow(0 2px 12px rgba(0,0,0,.5))}
@media(max-width:720px){.pLogo{height:4.2rem}}
.desde{margin-top:1.5rem;display:inline-block;border:1px solid rgba(255,255,255,.24);
  border-radius:9999px;padding:.42rem 1.05rem;font-size:.85rem;font-weight:700;color:#fff}

.cuerpo{max-width:52rem;margin:0 auto;padding:3rem 1.5rem 4rem}
.cuerpo h2{font-size:1.45rem;font-weight:800;letter-spacing:-.01em;margin:2.6rem 0 .9rem}
.cuerpo h2:first-child{margin-top:0}
.cuerpo p{color:#39424e;margin-bottom:1rem}
.cuerpo strong{font-weight:800;color:var(--tinta)}

.avisoPrevia{position:sticky;top:0;z-index:60;margin:0;padding:.7rem 1rem;background:#1f2937;color:#fff;
  font-size:.9rem;font-weight:700;text-align:center}
.galeria{display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr);margin:1.5rem 0}
@media(min-width:768px){.galeria{grid-template-columns:repeat(4,1fr)}}
.galeria img{aspect-ratio:4/3;object-fit:cover;border-radius:.75rem;cursor:zoom-in}

.lista{margin:1.2rem 0;padding:0;display:grid;gap:.9rem}
@media(min-width:640px){.lista{grid-template-columns:repeat(2,1fr)}}
.lista li{list-style:none;display:flex;gap:.85rem;align-items:center;color:#39424e;font-size:.98rem}
.lista li::before{content:"✓";flex:none;font-weight:800;color:var(--acento)}
.lista li.conIco::before{content:none}
.lista .amIco{width:3.1rem;height:3.1rem;flex:none;object-fit:contain}
@media(max-width:620px){.lista .amIco{width:2.7rem;height:2.7rem}}

.fichas{margin:1.4rem 0;border:1px solid var(--linea);border-radius:1rem;overflow:hidden}
.fila{display:flex;gap:1rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--linea);font-size:.95rem}
.fila:last-child{border-bottom:0}
.fila dt{flex:0 0 42%;color:var(--muted)}
.fila dd{flex:1;margin:0;font-weight:700}

/* El contacto es SIEMPRE el nuestro: quien pregunta por el desarrollo entra
   por nuestro embudo, que es lo que sostiene el crédito acumulado. */
.contacto{margin-top:2.6rem;background:var(--dark);color:#fff;border-radius:1.25rem;padding:1.8rem 1.6rem}
.contacto h3{font-size:1.25rem;font-weight:800;letter-spacing:-.01em}
.contacto p{margin-top:.6rem;color:rgba(255,255,255,.75);font-size:.98rem}
.btns{margin-top:1.4rem;display:flex;gap:.7rem;flex-wrap:wrap}
.btns a{display:inline-block;border-radius:9999px;padding:.8rem 1.5rem;font-weight:800;font-size:.94rem;
  text-decoration:none;transition:.15s}
.btns .wa{background:#25d366;color:#04220f}
.btns .wa:hover{opacity:.88}
.btns .sec{border:1px solid rgba(255,255,255,.28);color:#fff}
.btns .sec:hover{background:rgba(255,255,255,.1)}

.aviso{margin-top:1.6rem;font-size:.8rem;color:var(--muted);line-height:1.6}

footer{border-top:1px solid var(--linea);padding:2rem 1.5rem;text-align:center;font-size:.85rem;color:var(--muted)}
#cargando{max-width:52rem;margin:0 auto;padding:5rem 1.5rem;text-align:center;color:var(--muted)}

/* ---- Plano interactivo y cotizador ---- */
.planoEstado{font-size:.82rem;color:var(--muted);margin-bottom:1rem}
.planoEstado.frio{color:#b45309;font-weight:700}
.planoTabs{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap}
.planoTabs button{border:1px solid var(--linea);background:#fff;border-radius:9999px;
  padding:.5rem 1.1rem;font:inherit;font-size:.85rem;font-weight:800;color:var(--muted);cursor:pointer;transition:.15s}
.planoTabs button:hover{background:#f2f5f8;color:var(--tinta)}
.planoTabs button.on{background:var(--dark);color:#fff;border-color:var(--dark)}
.planoCaja{display:grid;gap:1.25rem;align-items:start}
@media(min-width:900px){.planoCaja{grid-template-columns:1fr 20rem}}
.planoLienzo{border:1px solid var(--linea);border-radius:1rem;overflow:hidden;background:#f7f9fb;
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.planoLienzo svg{width:100%;height:100%;display:block}
.planoLienzo #Numbers,.planoLienzo .pointer-events-none,
.planoLienzo text,.planoLienzo circle{pointer-events:none}
.pdfDatos{display:grid;gap:.5rem;margin-top:.6rem;padding:.85rem;border-radius:12px;
  background:rgba(15,76,58,.06);border:1px solid rgba(15,76,58,.18)}
/* `display` en la clase le gana al `display:none` que el navegador aplica a
   [hidden] —viene de su hoja por defecto, con menos peso—, así que el atributo
   no ocultaba nada. Hay que decirlo con la misma especificidad o más. */
.pdfDatos[hidden],.btnPdf[hidden]{display:none}
.pdfIntro{margin:0;font-size:.85rem;line-height:1.4;color:#33413c}
.pdfDatos input{width:100%;padding:.6rem .75rem;font:inherit;font-size:.92rem;
  border:1px solid #cfd8d4;border-radius:9px;background:#fff}
.pdfDatos input:focus{outline:2px solid #0f4c3a;border-color:transparent}
.pdfError{margin:0;font-size:.82rem;font-weight:600;color:#b3261e}
.pdfOmitir{background:none;border:0;padding:.2rem;font:inherit;font-size:.82rem;
  color:#5b6a65;text-decoration:underline;cursor:pointer}
.pdfOmitir:hover{color:#0f4c3a}

/* Paleta del SVG de origen: viene en clases de Tailwind, que aquí no existen.
   Sin esto los 503 trazos de vialidad se pintan de negro. */
.planoLienzo .fill-slate-600,.miniMapa .fill-slate-600{fill:#45556c}
.planoLienzo .stroke-slate-600,.miniMapa .stroke-slate-600{stroke:#45556c}
.planoLienzo .fill-white,.miniMapa .fill-white{fill:#fff}
.planoLienzo .fill-slate-200,.miniMapa .fill-slate-200{fill:#e2e8f0}
.planoLienzo .fill-zinc-100,.miniMapa .fill-zinc-100{fill:#f4f4f5}
.planoLienzo .fill-red-400,.miniMapa .fill-red-400{fill:#ff6568}
.planoLienzo .fill-yellow-400,.miniMapa .fill-yellow-400{fill:#fac800}
.planoLienzo .fill-green-area-a,.miniMapa .fill-green-area-a{fill:#95bc6d}
.planoLienzo .fill-private-area-a,.miniMapa .fill-private-area-a{fill:#a0a19d}
/* El lote es el elemento interactivo: cursor y realce solo si está libre. */
.planoLienzo [data-libre="1"]{cursor:pointer;transition:fill .15s}
.planoLienzo [data-libre="1"]:hover{fill:#2f7cf6!important}
.planoLienzo [data-libre="1"]{stroke:#94a3b8;stroke-width:.6}
.planoLienzo [data-sel="1"]{fill:#1d4ed8!important}
.lotePanel{border:1px solid var(--linea);border-radius:1rem;padding:1.2rem;background:#fff;
  position:sticky;top:6rem}
.loteVacio{color:var(--muted);font-size:.9rem}
#lmCuerpo h3{font-size:1.15rem;font-weight:800;letter-spacing:-.01em}
.loteDato{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;margin-top:.55rem}
.loteDato span{color:var(--muted)}
.loteDato b{font-weight:800}
.campo{margin-top:1rem}
.campo label{display:block;font-size:.78rem;font-weight:800;letter-spacing:.05em;
  text-transform:uppercase;color:var(--muted);margin-bottom:.35rem}
.campo select,.campo input{width:100%;border:1px solid var(--linea);border-radius:.6rem;
  padding:.6rem .7rem;font:inherit;font-size:.95rem;background:#fff}
.totalCaja{margin-top:1.1rem;border-top:1px solid var(--linea);padding-top:.9rem}
.totalFila{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;margin-top:.45rem}
.totalFila.credito b{color:#15803d}
.totalFila.final{margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--linea);font-size:1.02rem}
.totalFila.final b{font-size:1.15rem}
.btnCotiza{display:block;width:100%;margin-top:1rem;text-align:center;background:#25d366;color:#04220f;
  border-radius:9999px;padding:.75rem 1rem;font-weight:800;font-size:.92rem;text-decoration:none}
.btnCotiza:hover{opacity:.9}
.leyenda{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:1rem;font-size:.82rem;color:var(--muted)}
.leyenda span{display:flex;align-items:center;gap:.4rem}
.leyenda i{width:.9rem;height:.9rem;border-radius:.2rem;display:inline-block}
.lgDisp{background:#e2e8f0;border:1px solid #c8d0dd}
.lgApar{background:#fac800}
.lgVend{background:#ff6568}

.avisoLote{margin-top:.9rem;font-size:.78rem;color:var(--muted);line-height:1.55}

/* ---- Ficha del lote seleccionado ---- */
.estadoPill{display:inline-block;border-radius:9999px;padding:.15rem .6rem;font-size:.72rem;
  font-weight:800;background:#dcfce7;color:#15803d;margin-left:.45rem;vertical-align:middle}
/* Forma acotada: se dibuja de la geometría del lote, con las medidas
   calculadas a partir de su superficie real. */
.formaCaja{margin-top:.9rem;background:#f4f6f8;border-radius:.9rem;padding:.8rem;aspect-ratio:4/3;
  display:flex;align-items:center;justify-content:center}
.formaCaja svg{width:100%;height:100%}
.formaLote{fill:#cfe6c8;stroke:#3f7d3a;stroke-width:1.5;vector-effect:non-scaling-stroke}
.formaExt{stroke:#e05252;stroke-width:1;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}
.formaCota{font-family:"Mulish",sans-serif;font-weight:700;fill:#2b3642;
  paint-order:stroke;stroke:#f4f6f8;stroke-width:.28em;stroke-linejoin:round}
.avisoLote{margin-top:.9rem;font-size:.78rem;color:var(--muted);line-height:1.55}

.mapaDev{height:22rem;border-radius:1rem;overflow:hidden;border:1px solid var(--linea);margin-top:.6rem;
  position:relative;isolation:isolate;z-index:0}
.mapaDev .ppPin img{height:2.1rem;width:auto;display:block}
.mapaDev .ppPin:has(img){padding:.45rem .8rem}
.mapaDev .ppPin{background:#0a0c12;color:#fff;border-radius:9999px;padding:.35rem .8rem;
  font-size:.78rem;font-weight:800;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.3)}

.btnPdf{display:block;width:100%;margin-top:.6rem;border:0;background:var(--dark);
  border-radius:9999px;padding:.8rem 1rem;font:inherit;font-weight:800;font-size:.92rem;
  color:#fff;cursor:pointer;transition:.15s}
.btnPdf:hover{opacity:.85}

/* ---- Secciones de landing ---- */
.servGrid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin-top:1.2rem}
@media(min-width:820px){.servGrid{grid-template-columns:repeat(4,1fr)}}
.servGrid figure{margin:0;border:1px solid var(--linea);border-radius:1rem;overflow:hidden;background:#fff}
.servGrid img{width:100%;aspect-ratio:4/3;object-fit:cover}
.servGrid figcaption{padding:.8rem .9rem 1rem;font-size:.82rem;color:var(--muted);line-height:1.5}
.servGrid figcaption b{display:block;color:var(--tinta);font-size:.92rem;margin-bottom:.2rem}
.entGrid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin-top:1.2rem}
@media(min-width:820px){.entGrid{grid-template-columns:repeat(4,1fr)}}
.entGrid figure{margin:0;position:relative;border-radius:1rem;overflow:hidden;aspect-ratio:3/4}
.entGrid img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.entGrid figure:hover img{transform:scale(1.06)}
.entGrid figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.6rem .9rem .8rem;color:#fff;
  font-weight:800;font-size:.95rem;background:linear-gradient(180deg,transparent,rgba(6,10,18,.75))}
.galeria img{transition:transform .35s ease}
.galeria img:hover{transform:scale(1.03)}
/* Aparición al hacer scroll: mismo espíritu que la home, con IO ligero. */
.rev{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.rev.on{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rev{opacity:1;transform:none;transition:none}}

.heroAcc{margin-top:1.5rem;display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.heroAcc .ico{width:1.5rem;height:1.5rem;object-fit:contain;flex:none;margin:-.3rem 0}
.heroAcc .desde{margin-top:0}
.btnBrochure{display:inline-flex;align-items:center;gap:.5rem;background:var(--lima);color:#0a1503;border-radius:9999px;
  padding:.5rem 1.2rem;font-size:.85rem;font-weight:800;text-decoration:none;transition:.15s}
.btnBrochure:hover{opacity:.85}

/* ---- Secciones editoriales tipadas ---- */
.secCita{margin:3rem auto;max-width:42rem;text-align:center}
.secCita p{font-style:italic;font-size:1.15rem;line-height:1.7;color:#39424e}
.propsGrid{display:grid;gap:1.4rem;grid-template-columns:repeat(2,1fr);margin-top:1.2rem}
@media(min-width:820px){.propsGrid{grid-template-columns:repeat(4,1fr)}}
.propsGrid figure{margin:0}
.propsGrid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:.8rem}
.propsGrid figcaption{margin-top:.7rem;font-size:.85rem;color:var(--muted);line-height:1.55}
.propsGrid figcaption b{display:block;color:var(--tinta);font-size:1rem;margin-bottom:.25rem;line-height:1.3}
.colFoto{margin:3rem 0;display:grid;gap:.8rem;grid-template-columns:1fr}
@media(min-width:760px){.colFoto{grid-template-columns:1fr 1fr}}
.colGrande{position:relative;border-radius:1rem;overflow:hidden;min-height:22rem}
.colGrande img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.55) saturate(.8)}
.colGrande p{position:absolute;left:1.6rem;right:1.6rem;bottom:1.6rem;color:#fff;font-style:italic;
  font-size:1.35rem;line-height:1.45;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.colChicas{display:grid;gap:.8rem;grid-template-columns:1fr 1fr}
.colChicas img{width:100%;height:100%;object-fit:cover;border-radius:.8rem;aspect-ratio:3/4}
.colChicas img:last-child{grid-column:span 2;aspect-ratio:16/7}
.secSplit{margin:3rem 0;display:grid;gap:1.6rem;align-items:center}
@media(min-width:760px){.secSplit{grid-template-columns:1fr 1fr}
  .secSplit.ladoIzq img{order:2}}
.secSplit img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:1rem}
.secSplit h2{margin-top:0}
.secServ{margin:3rem 0;display:grid;gap:1.6rem}
@media(min-width:820px){.secServ{grid-template-columns:2fr 3fr}}
.servIntro h2{margin-top:0}
.servLista{display:grid;gap:1rem}
.servLista figure{margin:0;display:grid;grid-template-columns:7rem 1fr;gap:1rem;align-items:center}
.servLista img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:.8rem}
.servLista figcaption{font-size:.88rem;color:var(--muted);line-height:1.55}
.servLista figcaption b{display:block;color:var(--tinta);font-size:.98rem;margin-bottom:.15rem}

/* ---- Modal del lote en móvil/tablet ----
   En escritorio el cotizador vive en el panel lateral; en pantallas angostas
   ese panel queda debajo del plano y obliga a scrollear: ahí se abre en modal
   (bottom sheet), como hace el propio desarrollador con sus diálogos. */
#loteModal[hidden]{display:none}
#loteModal{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;
  justify-content:center;background:rgba(6,10,18,.55);backdrop-filter:blur(2px)}
.lmCaja{background:#fff;width:100%;max-height:88dvh;overflow-y:auto;position:relative;
  border-radius:1.25rem 1.25rem 0 0;padding:1.4rem 1.3rem 1.6rem;
  animation:lmSube .28s ease}
@keyframes lmSube{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.lmCerrar{position:sticky;top:0;float:right;z-index:2;border:0;background:#eef1f4;
  width:2.1rem;height:2.1rem;border-radius:50%;font:inherit;font-size:1.15rem;cursor:pointer}

.btnCotizaHero{display:inline-flex;align-items:center;gap:.5rem;background:#fff;color:#0a0c12;border-radius:9999px;
  padding:.5rem 1.2rem;font-size:.85rem;font-weight:800;text-decoration:none;transition:.15s}
.btnCotizaHero:hover{opacity:.85}

.ft2{font-style:normal;font-weight:600;font-size:.78em;color:var(--muted)}

.tTit{margin-top:1.2rem;font-size:.8rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--tinta)}
.planTabla{width:100%;border-collapse:collapse;margin-top:.5rem;font-size:.85rem}
.planTabla th{background:#f5f7f9;text-align:left;padding:.45rem .6rem;font-size:.72rem;
  letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.planTabla td{border-bottom:1px solid var(--linea);padding:.5rem .6rem}
.planTabla tr[data-plan]{cursor:pointer;transition:background .12s}
.planTabla tr[data-plan]:hover{background:#f2f5f8}
.planTabla tr.on td{background:#0a0c12;color:#fff}
.planTabla tr.on td:first-child{border-radius:.4rem 0 0 .4rem}
.planTabla tr.on td:last-child{border-radius:0 .4rem .4rem 0}
.tNota{margin-top:.5rem;font-size:.74rem;color:var(--muted);line-height:1.5}

.planoLienzo{position:relative}
.planoLienzo svg{touch-action:none;cursor:grab}
.planoLienzo svg.arrastrando{cursor:grabbing}
.planoZoom{position:absolute;left:.8rem;bottom:.8rem;z-index:3;display:flex;flex-direction:column;gap:.35rem}
.planoZoom button{width:2.1rem;height:2.1rem;border:1px solid var(--linea);border-radius:.55rem;
  background:#fff;font:800 1rem/1 "Mulish",sans-serif;color:var(--tinta);cursor:pointer;
  box-shadow:0 2px 8px rgba(4,7,15,.12)}
.planoZoom button:hover{background:#f2f5f8}
.planoPista{position:absolute;right:.8rem;bottom:.8rem;z-index:3;background:rgba(10,12,18,.78);
  color:#fff;font-size:.68rem;border-radius:.5rem;padding:.35rem .6rem;pointer-events:none}
@media(max-width:899px){.planoPista{display:none}}

/* El plano necesita aire: rompe la columna de lectura (52rem) y usa hasta
   80rem, con el lienzo dominando el espacio. */
#plano{width:100vw;margin-left:calc(50% - 50vw);padding:0 1.5rem}
#plano>*{max-width:80rem;margin-left:auto;margin-right:auto}
@media(min-width:900px){
  .planoCaja{grid-template-columns:1fr 24rem}
  .planoLienzo{aspect-ratio:auto;min-height:34rem;height:calc(100vh - 12rem);max-height:44rem}
}

/* Sin panel lateral: el plano manda. */
.planoCaja{display:block}
@media(min-width:900px){
  .planoCaja{display:block}
  .planoLienzo{aspect-ratio:auto;height:calc(100vh - 14rem);min-height:30rem;max-height:46rem}
}
.planoAyuda{margin-top:.8rem;font-size:.85rem;color:var(--muted)}

/* Ficha del lote en modal, siempre. En escritorio a dos columnas:
   contexto del plano a la izquierda, cotizador a la derecha. */
#loteModal{align-items:center;padding:1rem}
.lmCaja{position:relative;max-width:64rem;max-height:92dvh;border-radius:1.25rem;padding:0}
@media(max-width:719px){
  #loteModal{align-items:flex-end;padding:0}
  .lmCaja{border-radius:1.25rem 1.25rem 0 0;max-height:90dvh}
}
#lmCuerpo{display:grid;gap:0}
@media(min-width:720px){#lmCuerpo{grid-template-columns:1fr 1fr}}
.lmIzq{padding:1.5rem;border-bottom:1px solid var(--linea);background:#f7f9fb}
@media(min-width:720px){.lmIzq{border-bottom:0;border-right:1px solid var(--linea)}}
.lmDer{padding:1.5rem}
@media(min-width:720px){.lmDer{max-height:92dvh;overflow-y:auto}}
.lmCerrar{position:absolute;right:.9rem;top:.9rem;float:none}

/* Recorte del plano centrado en el lote: los vecinos y las calles quedan
   visibles pero atenuados, para que se lea DÓNDE está el lote. */
.miniMapa{border:1px solid var(--linea);border-radius:.9rem;overflow:hidden;background:#fff;
  aspect-ratio:1/1}
.miniMapa svg{width:100%;height:100%;display:block}
/* Vecinos desactivados: gris uniforme, sin competir con el lote elegido. */
.miniMapa #Numbers,.miniMapa text,.miniMapa circle{pointer-events:none}
.miniMapa .vecino{fill:#dfe4ea!important;stroke:#c2cad3;stroke-width:.5;vector-effect:non-scaling-stroke}
.miniMapa .destacado{fill:url(#vegLote)!important;stroke:#2f6b28;stroke-width:2.6;
  vector-effect:non-scaling-stroke}
.miniMapa .fill-green-area-a{fill:url(#vegArea)!important}

.miniMapa .cotasPlano{pointer-events:none}
.miniMapa .cotaLado{font-family:"Mulish",sans-serif;font-weight:700;fill:#26323d;
  paint-order:stroke;stroke:#fff;stroke-width:.3em;stroke-linejoin:round}
.miniMapa .cotaSup{font-family:"Mulish",sans-serif;font-weight:800;fill:#1c2b17;
  paint-order:stroke;stroke:#fff;stroke-width:.32em;stroke-linejoin:round}
.miniLeyenda{margin:.5rem 0 0;font-size:.72rem;color:var(--muted);line-height:1.5}

/* ===== Landing más amplia y aireada ===== */
.cuerpo{max-width:62rem;padding:4rem 1.5rem 5rem}
.cuerpo h2{font-size:1.7rem;margin:0 0 1rem}
@media(min-width:768px){.cuerpo h2{font-size:2.1rem}}
.cuerpo p{font-size:1.06rem;line-height:1.75;margin-bottom:1.15rem}
.secCita{margin:5.5rem auto;max-width:46rem}
.secCita p{font-size:1.35rem}
@media(min-width:768px){.secCita p{font-size:1.55rem}}
.propsGrid{gap:1.75rem;margin-top:2rem}
.secSplit,.secServ,.colFoto{margin:5.5rem 0}
.secSplit{gap:2.5rem}
.galeria{gap:1rem;margin:2rem 0}

/* Parallax: la imagen sobresale del marco para poder desplazarse sin huecos. */
.splitFoto{border-radius:1rem;overflow:hidden;aspect-ratio:4/3}
.splitFoto img{width:100%;height:128%;margin-top:-14%;object-fit:cover;display:block}
.colGrande{overflow:hidden}
.colGrande img{height:128%!important;top:-14%!important}


/* ===== Modal del plano ===== */
#planoModal[hidden]{display:none}
#planoModal{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;
  padding:1rem;background:rgba(6,10,18,.72);backdrop-filter:blur(3px)}
.pmCaja{position:relative;background:#fff;border-radius:1.25rem;width:100%;max-width:76rem;
  height:92dvh;display:flex;flex-direction:column;overflow:hidden}
.pmX{position:absolute;right:.9rem;top:.9rem;z-index:4;border:0;background:#eef1f4;
  width:2.3rem;height:2.3rem;border-radius:50%;font:1.3rem/1 "Mulish",sans-serif;cursor:pointer}
.pmHead{padding:1.4rem 1.5rem .9rem;border-bottom:1px solid var(--linea)}
.pmHead h3{font-size:1.25rem;font-weight:800;letter-spacing:-.01em;padding-right:2.5rem}
#planoModal .planoLienzo{flex:1;border:0;border-radius:0;min-height:0;height:auto;max-height:none;aspect-ratio:auto}
#planoModal .leyenda{padding:.8rem 1.5rem;border-top:1px solid var(--linea);margin:0}

/* Unidades de un desarrollo vertical */
.uSub{color:var(--muted);font-size:.9rem;margin:-.4rem 0 1.2rem}
.uGrid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}
.uCard{border:1px solid var(--linea);border-radius:1rem;overflow:hidden;background:#fff;
  text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:.18s}
.uCard:hover{box-shadow:0 12px 30px rgba(4,7,15,.1);transform:translateY(-2px)}
.uFoto{position:relative;aspect-ratio:4/3;background:#eef1f4;overflow:hidden}
.uFoto img{width:100%;height:100%;object-fit:cover}
.uTipo{position:absolute;left:.6rem;top:.6rem;background:rgba(10,12,18,.82);color:#fff;
  border-radius:9999px;padding:.2rem .6rem;font-size:.7rem;font-weight:800}
.uCuerpo{padding:.85rem 1rem 1rem;display:flex;flex-direction:column;gap:.2rem}
.uCuerpo b{font-size:1rem;letter-spacing:-.01em}
.uMeta{font-size:.82rem;color:var(--muted)}
.uVista{font-size:.76rem;color:#3f7d3a;font-weight:700}
.uPre{margin-top:.3rem;font-size:1.05rem;font-weight:800}

.btnUbic{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.35);
  border-radius:9999px;padding:.5rem 1.2rem;font:inherit;font-size:.85rem;font-weight:800;
  cursor:pointer;backdrop-filter:blur(4px);transition:.15s}
.btnUbic:hover{background:rgba(255,255,255,.28)}
#unidadesModal[hidden]{display:none}
#unidadesModal{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;
  padding:1rem;background:rgba(6,10,18,.72);backdrop-filter:blur(3px)}
#unidadesModal .pmCaja{max-width:68rem}

#ubicModal[hidden]{display:none}
#ubicModal{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;
  padding:1rem;background:rgba(6,10,18,.72);backdrop-filter:blur(3px)}
#ubicModal .pmCaja{max-width:62rem}
#ubicModal .mapaDev{flex:1;min-height:24rem;border:0;border-radius:0 0 1.25rem 1.25rem;margin:0}
#ubicModal .pmHead .avisoLote{margin:.5rem 0 0}
.umCuerpo{flex:1;overflow-y:auto;padding:1.4rem 1.5rem 1.8rem}

/* Íconos más grandes y, en móvil, solos: el pulgar reconoce el símbolo antes
   que la palabra, y tres botones con texto no caben sin romper la línea. */
.heroAcc .ico{width:2rem;height:2rem;object-fit:contain;flex:none;margin:-.45rem 0}
@media(max-width:620px){
  .heroAcc .ico{width:2.1rem;height:2.1rem}
  .heroAcc .btxt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .heroAcc .btnCotizaHero,.heroAcc .btnUbic,.heroAcc .btnBrochure{padding:.55rem .8rem;gap:0}
}
/* Sólo un perfil propio completo habilita las variantes de marca. */
:root[data-perfil=marca]{--dark:var(--primario);--tinta:var(--texto);--muted:var(--texto-suave);--lima:var(--foco-oscuro)}
:root[data-perfil=marca] body{font-family:var(--fuente-cuerpo);background:var(--superficie);}
:root[data-perfil=marca] .portada{color:var(--sobre-primario);}
:root[data-perfil=marca] .portada::before{background:linear-gradient(180deg,color-mix(in srgb,var(--primario) 46%,transparent) 0%,color-mix(in srgb,var(--primario) 8%,transparent) 26%,color-mix(in srgb,var(--primario) 4%,transparent) 52%,color-mix(in srgb,var(--primario) 62%,transparent) 100%);}
:root[data-perfil=marca] .portada h1,:root[data-perfil=marca] .portada .tagline,:root[data-perfil=marca] .portada .ppRuta{text-shadow:0 2px 6px var(--sombra-80),0 6px 24px var(--sombra-55);}
:root[data-perfil=marca] .portada h1,:root[data-perfil=marca] .portada p,:root[data-perfil=marca] .portada .ojito{text-shadow:0 2px 6px var(--sombra-75),0 4px 22px var(--sombra-60);}
:root[data-perfil=marca] .portada .tag{color:var(--sobre-primario);}
:root[data-perfil=marca] .pLogo{filter:drop-shadow(0 2px 12px var(--sombra-50));}
@media(max-width:720px){
:root[data-perfil=marca] .pLogo{height:4.2rem;}
}
:root[data-perfil=marca] .desde{border:1px solid var(--sobre-primario);color:var(--sobre-primario);}
:root[data-perfil=marca] .cuerpo p{color:var(--texto);}
:root[data-perfil=marca] .avisoPrevia{background:var(--texto);color:var(--sobre-primario);}
@media(min-width:768px){
:root[data-perfil=marca] .galeria{grid-template-columns:repeat(4,1fr);}
}
:root[data-perfil=marca] .lista li{color:var(--texto);}
:root[data-perfil=marca] .fichas{border-radius:var(--radio);}
:root[data-perfil=marca] .contacto{color:var(--sobre-primario);border-radius:var(--radio);}
:root[data-perfil=marca] .contacto p{color:var(--sobre-primario);}
:root[data-perfil=marca] .btns .wa{background:var(--acento);color:var(--sobre-acento);}
:root[data-perfil=marca] .btns .sec{border:1px solid var(--sobre-primario);color:var(--sobre-primario);}
:root[data-perfil=marca] .btns .sec:hover{background:color-mix(in srgb,var(--sobre-primario) 10%,transparent);}
:root[data-perfil=marca] .planoEstado.frio{color:var(--estado-aviso-texto);}
:root[data-perfil=marca] .planoTabs button{background:var(--superficie);}
:root[data-perfil=marca] .planoTabs button:hover{background:var(--superficie-alterna);}
:root[data-perfil=marca] .planoTabs button.on{color:var(--sobre-primario);}
:root[data-perfil=marca] .planoLienzo{border-radius:var(--radio);background:var(--superficie-alterna);}
:root[data-perfil=marca] .pdfDatos{background:var(--superficie-alterna);border:1px solid var(--linea);}
:root[data-perfil=marca] .pdfIntro{color:var(--texto);}
:root[data-perfil=marca] .pdfDatos input{border:1px solid var(--linea);background:var(--superficie);}
:root[data-perfil=marca] .pdfDatos input:focus{outline:2px solid var(--estado-exito-texto);}
:root[data-perfil=marca] .pdfError{color:var(--estado-error-texto);}
:root[data-perfil=marca] .pdfOmitir{color:var(--texto-suave);}
:root[data-perfil=marca] .pdfOmitir:hover{color:var(--estado-exito-texto);}
:root[data-perfil=marca] .planoLienzo .fill-slate-600,:root[data-perfil=marca] .miniMapa .fill-slate-600{fill:var(--texto-suave);}
:root[data-perfil=marca] .planoLienzo .stroke-slate-600,:root[data-perfil=marca] .miniMapa .stroke-slate-600{stroke:var(--texto-suave);}
:root[data-perfil=marca] .planoLienzo .fill-white,:root[data-perfil=marca] .miniMapa .fill-white{fill:var(--superficie);}
:root[data-perfil=marca] .planoLienzo .fill-slate-200,:root[data-perfil=marca] .miniMapa .fill-slate-200{fill:var(--estado-disponible-fondo);}
:root[data-perfil=marca] .planoLienzo .fill-zinc-100,:root[data-perfil=marca] .miniMapa .fill-zinc-100{fill:var(--superficie-alterna);}
:root[data-perfil=marca] .planoLienzo .fill-red-400,:root[data-perfil=marca] .miniMapa .fill-red-400{fill:var(--estado-vendido-fondo);}
:root[data-perfil=marca] .planoLienzo .fill-yellow-400,:root[data-perfil=marca] .miniMapa .fill-yellow-400{fill:var(--estado-apartado-fondo);}
:root[data-perfil=marca] .planoLienzo .fill-green-area-a,:root[data-perfil=marca] .miniMapa .fill-green-area-a{fill:var(--plano-verde);}
:root[data-perfil=marca] .planoLienzo .fill-private-area-a,:root[data-perfil=marca] .miniMapa .fill-private-area-a{fill:var(--plano-calle);}
:root[data-perfil=marca] .planoLienzo [data-libre="1"]:hover{fill:var(--acento)!important;}
:root[data-perfil=marca] .planoLienzo [data-libre="1"]{stroke:var(--control);}
:root[data-perfil=marca] .planoLienzo [data-sel="1"]{fill:var(--primario)!important;}
:root[data-perfil=marca] .lotePanel{border-radius:var(--radio);background:var(--superficie);}
:root[data-perfil=marca] .campo select,:root[data-perfil=marca] .campo input{background:var(--superficie);}
:root[data-perfil=marca] .totalFila.credito b{color:var(--estado-exito-texto);}
:root[data-perfil=marca] .btnCotiza{background:var(--acento);color:var(--sobre-acento);}
:root[data-perfil=marca] .lgDisp{background:var(--estado-disponible-fondo);border:1px solid var(--control);}
:root[data-perfil=marca] .lgApar{background:var(--estado-apartado-fondo);}
:root[data-perfil=marca] .lgVend{background:var(--estado-vendido-fondo);}
:root[data-perfil=marca] .estadoPill{background:var(--estado-exito-fondo);color:var(--estado-exito-texto);}
:root[data-perfil=marca] .formaCaja{background:var(--superficie-alterna);}
:root[data-perfil=marca] .formaLote{fill:var(--plano-area);stroke:var(--plano-area-borde);}
:root[data-perfil=marca] .formaExt{stroke:var(--plano-cota);}
:root[data-perfil=marca] .formaCota{font-family:var(--fuente-cuerpo);fill:var(--texto);stroke:var(--superficie-alterna);}
:root[data-perfil=marca] .mapaDev{border-radius:var(--radio);}
:root[data-perfil=marca] .mapaDev .ppPin{background:var(--primario);color:var(--sobre-primario);box-shadow:0 4px 14px var(--sombra-30);}
:root[data-perfil=marca] .btnPdf{color:var(--sobre-primario);}
:root[data-perfil=marca] .servGrid figure{border-radius:var(--radio);background:var(--superficie);}
@media(min-width:820px){
:root[data-perfil=marca] .entGrid{grid-template-columns:repeat(4,1fr);}
}
:root[data-perfil=marca] .entGrid figure{border-radius:var(--radio);}
:root[data-perfil=marca] .entGrid figcaption{color:var(--sobre-primario);background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--primario) 75%,transparent));}
:root[data-perfil=marca] .btnBrochure{color:var(--sobre-acento);}
:root[data-perfil=marca] .secCita p{color:var(--texto);}
@media(min-width:820px){
:root[data-perfil=marca] .propsGrid{grid-template-columns:repeat(4,1fr);}
}
:root[data-perfil=marca] .colGrande{border-radius:var(--radio);}
:root[data-perfil=marca] .colGrande p{color:var(--sobre-primario);text-shadow:0 2px 10px var(--sombra-50);}
@media(min-width:760px){
:root[data-perfil=marca] .secSplit{grid-template-columns:1fr 1fr;}
:root[data-perfil=marca] .secSplit.ladoIzq img{order:2;}
}
:root[data-perfil=marca] .secSplit img{border-radius:var(--radio);}
@media(min-width:820px){
:root[data-perfil=marca] .secServ{grid-template-columns:2fr 3fr;}
}
:root[data-perfil=marca] #loteModal{background:color-mix(in srgb,var(--primario) 55%,transparent);}
:root[data-perfil=marca] .lmCaja{background:var(--superficie);border-radius:var(--radio) 1.25rem 0 0;}
:root[data-perfil=marca] .lmCerrar{background:var(--superficie-alterna);}
:root[data-perfil=marca] .btnCotizaHero{background:var(--superficie);color:var(--primario);}
:root[data-perfil=marca] .planTabla th{background:var(--superficie-alterna);}
:root[data-perfil=marca] .planTabla tr[data-plan]:hover{background:var(--superficie-alterna);}
:root[data-perfil=marca] .planTabla tr.on td{background:var(--primario);color:var(--sobre-primario);}
:root[data-perfil=marca] .planoZoom button{background:var(--superficie);box-shadow:0 2px 8px var(--sombra-12);}
:root[data-perfil=marca] .planoZoom button:hover{background:var(--superficie-alterna);}
:root[data-perfil=marca] .planoPista{background:color-mix(in srgb,var(--primario) 78%,transparent);color:var(--sobre-primario);}
@media(min-width:900px){
:root[data-perfil=marca] .planoCaja{grid-template-columns:1fr 24rem;}
:root[data-perfil=marca] .planoLienzo{aspect-ratio:auto;min-height:34rem;height:calc(100vh - 12rem);max-height:44rem;}
}
@media(min-width:900px){
:root[data-perfil=marca] .planoCaja{display:block;}
:root[data-perfil=marca] .planoLienzo{aspect-ratio:auto;height:calc(100vh - 14rem);min-height:30rem;max-height:46rem;}
}
:root[data-perfil=marca] .lmCaja{border-radius:var(--radio);}
@media(max-width:719px){
:root[data-perfil=marca] .lmCaja{border-radius:var(--radio) 1.25rem 0 0;}
}
:root[data-perfil=marca] .lmIzq{background:var(--superficie-alterna);}
@media(min-width:720px){
:root[data-perfil=marca] .lmIzq{border-bottom:0;border-right:1px solid var(--linea);}
}
@media(min-width:720px){
:root[data-perfil=marca] .lmDer{max-height:92dvh;overflow-y:auto;}
}
:root[data-perfil=marca] .miniMapa{background:var(--superficie);}
:root[data-perfil=marca] .miniMapa .vecino{fill:var(--plano-vecino)!important;stroke:var(--linea);}
:root[data-perfil=marca] .miniMapa .destacado{fill:url(#vegLote)!important;stroke:var(--plano-seleccion-borde);}
:root[data-perfil=marca] .miniMapa .fill-green-area-a{fill:url(#vegArea)!important;}
:root[data-perfil=marca] .miniMapa .cotaLado{font-family:var(--fuente-cuerpo);fill:var(--texto);stroke:var(--superficie);}
:root[data-perfil=marca] .miniMapa .cotaSup{font-family:var(--fuente-cuerpo);fill:var(--plano-superficie-texto);stroke:var(--superficie);}
@media(min-width:768px){
:root[data-perfil=marca] .cuerpo h2{font-size:2.1rem;}
}
@media(min-width:768px){
:root[data-perfil=marca] .secCita p{font-size:1.55rem;}
}
:root[data-perfil=marca] .splitFoto{border-radius:var(--radio);}
:root[data-perfil=marca] .colGrande img{height:128%!important;top:-14%!important;}
:root[data-perfil=marca] #planoModal{background:color-mix(in srgb,var(--primario) 72%,transparent);}
:root[data-perfil=marca] .pmCaja{background:var(--superficie);border-radius:var(--radio);}
:root[data-perfil=marca] .pmX{background:var(--superficie-alterna);}
:root[data-perfil=marca] .uCard{border-radius:var(--radio);background:var(--superficie);}
:root[data-perfil=marca] .uCard:hover{box-shadow:0 12px 30px var(--sombra-10);}
:root[data-perfil=marca] .uFoto{background:var(--superficie-alterna);}
:root[data-perfil=marca] .uTipo{background:color-mix(in srgb,var(--primario) 82%,transparent);color:var(--sobre-primario);}
:root[data-perfil=marca] .uVista{color:var(--plano-area-borde);}
:root[data-perfil=marca] .btnUbic{background:color-mix(in srgb,var(--sobre-primario) 16%,transparent);color:var(--sobre-primario);border:1px solid var(--sobre-primario);}
:root[data-perfil=marca] .btnUbic:hover{background:var(--sobre-primario);}
:root[data-perfil=marca] #unidadesModal{background:color-mix(in srgb,var(--primario) 72%,transparent);}
:root[data-perfil=marca] #ubicModal{background:color-mix(in srgb,var(--primario) 72%,transparent);}
@media(max-width:620px){
:root[data-perfil=marca] .heroAcc .ico{width:2.1rem;height:2.1rem;}
:root[data-perfil=marca] .heroAcc .btxt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
:root[data-perfil=marca] .heroAcc .btnCotizaHero,:root[data-perfil=marca] .heroAcc .btnUbic,:root[data-perfil=marca] .heroAcc .btnBrochure{padding:.55rem .8rem;gap:0;}
}
:root[data-perfil=marca] [hidden]{display:none!important;}
:root[data-perfil=marca]{scroll-padding-top:6rem;}
:root[data-perfil=marca] body{font-family:var(--fuente-cuerpo);background:var(--superficie);color:var(--texto);}
:root[data-perfil=marca] h1,:root[data-perfil=marca] h2,:root[data-perfil=marca] h3{font-family:var(--fuente-titulos);text-wrap:balance;overflow-wrap:anywhere;letter-spacing:-.02em;}
:root[data-perfil=marca] p{text-wrap:pretty;}
:root[data-perfil=marca] button,:root[data-perfil=marca] input,:root[data-perfil=marca] select{font-family:var(--fuente-cuerpo);color:inherit;}
:root[data-perfil=marca] button:disabled{opacity:.55;cursor:not-allowed;}
:root[data-perfil=marca] :focus-visible{outline:3px solid var(--foco-claro);outline-offset:4px;}
:root[data-perfil=marca] .portada :focus-visible,:root[data-perfil=marca] .contacto :focus-visible{outline-color:var(--foco-oscuro);}
:root[data-perfil=marca] .devNav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:min(1180px,100% - 40px);margin:auto;background:var(--superficie);color:var(--texto);}
:root[data-perfil=marca] .devNavLogo{display:block;max-width:55%;font-family:var(--fuente-titulos);font-weight:700;line-height:1.1;text-decoration:none;}
:root[data-perfil=marca] .devNavLogo img{height:44px;max-width:100%;object-fit:contain;}
:root[data-perfil=marca] .devNavHost{font-size:.85rem;text-decoration:none;text-align:right;}
:root[data-perfil=marca] .devNavHost:hover{text-decoration:underline;text-underline-offset:4px;}
:root[data-perfil=marca] .portada{padding-bottom:0;min-height:clamp(36rem,78svh,54rem);background-color:var(--primario);background-image:var(--hero-foto);color:var(--sobre-primario);}
:root[data-perfil=marca] .portada::before{background:linear-gradient(180deg,var(--primario),transparent 35%);}
:root[data-perfil=marca] .portada>.ppRuta{padding-top:1rem;}
:root[data-perfil=marca] .portada .caja{width:100%;max-width:none;margin-top:auto;padding:2rem max(24px,calc((100vw - 1180px)/2));background:var(--primario);color:var(--sobre-primario);}
:root[data-perfil=marca] .portada h1,:root[data-perfil=marca] .portada p,:root[data-perfil=marca] .portada .tag,:root[data-perfil=marca] .portada .ojito,:root[data-perfil=marca] .portada .ppRuta{text-shadow:none;color:var(--sobre-primario);}
:root[data-perfil=marca] .portada h1{font-size:clamp(2rem,4.1vw,3.6rem);font-weight:500;line-height:1.14;}
:root[data-perfil=marca] .portada .pTexto{max-width:56rem;}
:root[data-perfil=marca] .portada .pLogo{max-width:32%;height:auto;max-height:100px;filter:none;}
:root[data-perfil=marca] .portada .tag{font-size:1rem;margin-top:.7rem;}
:root[data-perfil=marca] .portada .ojito{font-size:.85rem;text-transform:none;letter-spacing:0;}
:root[data-perfil=marca] .heroAcc{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;}
:root[data-perfil=marca] .heroAcc .desde{flex-basis:100%;border:0;padding:0;color:var(--sobre-primario);}
:root[data-perfil=marca] .heroAcc .btnCotizaHero,:root[data-perfil=marca] .heroAcc .btnUbic,:root[data-perfil=marca] .heroAcc .btnBrochure{font:700 .9rem/1.3 var(--fuente-cuerpo);min-height:44px;border-radius:var(--radio);backdrop-filter:none;border:1px solid var(--sobre-primario);background:var(--primario);color:var(--sobre-primario);text-shadow:none;padding:.8rem 1rem;}
:root[data-perfil=marca] .heroAcc .btnCotizaHero{background:var(--acento);color:var(--sobre-acento);border-color:var(--acento);}
:root[data-perfil=marca] .heroAcc .ico{display:none;}
:root[data-perfil=marca] .heroAcc .btxt{position:static;width:auto;height:auto;clip-path:none;overflow:visible;white-space:normal;}
:root[data-perfil=marca] .heroAcc button:hover,:root[data-perfil=marca] .heroAcc a:hover,:root[data-perfil=marca] .devBoton:hover{opacity:1;text-decoration:underline;text-underline-offset:4px;transform:translateY(-1px);}
:root[data-perfil=marca][data-hero=cinematografico] .portada{min-height:88svh;background-position:center 35%;}
:root[data-perfil=marca][data-hero=cinematografico] .portada .caja{padding-block:2.6rem;}
:root[data-perfil=marca][data-hero=split] .portada{min-height:36rem;background-position:right center;background-size:55% 100%;background-repeat:no-repeat;align-items:flex-start;}
:root[data-perfil=marca][data-hero=split] .portada .caja{width:48%;margin:0 auto 0 0;padding:3rem clamp(1.5rem,4vw,4rem);flex-direction:column;align-items:flex-start;flex:1;}
:root[data-perfil=marca][data-hero=split] .portada .pLogo{max-width:70%;}
:root[data-perfil=marca][data-alineacion=centro] .portada .caja{flex-direction:column;text-align:center;align-items:center;}
:root[data-perfil=marca][data-alineacion=centro] .heroAcc{justify-content:center;}
:root[data-perfil=marca] .cuerpo{max-width:none;padding:0;}
:root[data-perfil=marca] .devSeccion{padding:var(--ritmo) max(24px,calc((100vw - 1180px)/2));scroll-margin-top:2rem;}
:root[data-perfil=marca] .devSeccion>p,:root[data-perfil=marca] .devSeccion>h2,:root[data-perfil=marca] .devSeccion>dl{max-width:72ch;}
:root[data-perfil=marca] .devSeccion h2{font-size:clamp(1.65rem,3vw,2.5rem);font-weight:500;line-height:1.2;}
:root[data-perfil=marca] .devSeccion p{color:var(--texto);line-height:1.7;}
:root[data-perfil=marca] .devSeccion[data-slot=descripcion]{padding-block:calc(var(--ritmo)*1.1);}
:root[data-perfil=marca] .devSeccion[data-slot=descripcion][data-variante=split]{display:grid;grid-template-columns:1fr 1.6fr;gap:1rem 3rem;}
:root[data-perfil=marca] .devSeccion[data-slot=descripcion][data-variante=split] h2{grid-row:span 8;}
:root[data-perfil=marca] .devSeccion[data-slot=editorial]{background:var(--superficie-alterna);}
:root[data-perfil=marca] .devSeccion[data-slot=inventario]{background:var(--superficie);}
:root[data-perfil=marca] .devSeccion[data-slot=galeria]{padding-top:0;padding-bottom:var(--ritmo);}
:root[data-perfil=marca] .devSeccion[data-slot=amenidades]{background:var(--superficie-alterna);}
:root[data-perfil=marca] .devSeccion[data-slot=ubicacion]{background:var(--superficie-alterna);}
:root[data-perfil=marca] .devSeccion[data-slot=contacto]{padding:0;background:var(--primario);}
:root[data-perfil=marca] .devSeccion[data-slot=legal]{padding-block:2rem;}
:root[data-perfil=marca] .devSeccion .secSplit,:root[data-perfil=marca] .devSeccion .secServ,:root[data-perfil=marca] .devSeccion .colFoto,:root[data-perfil=marca] .devSeccion .secCita{margin:0;}
:root[data-perfil=marca] .devSeccion .galeria{margin:0;}
:root[data-perfil=marca] .devSeccion[data-variante=tira] .galeria{display:flex;overflow:auto;scroll-snap-type:x mandatory;}
:root[data-perfil=marca] .devSeccion[data-variante=tira] .galeria img{flex:0 0 72%;width:72%;aspect-ratio:3/2;scroll-snap-align:start;}
:root[data-perfil=marca] .devSeccion .contacto{max-width:none;margin:0;border-radius:0;padding:var(--ritmo) max(24px,calc((100vw - 1180px)/2));color:var(--sobre-primario);}
:root[data-perfil=marca] .devSeccion .contacto h3,:root[data-perfil=marca] .devSeccion .contacto p{color:var(--sobre-primario);max-width:64ch;}
:root[data-perfil=marca] .devSeccion .contacto h3{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:500;}
:root[data-perfil=marca] .btns .wa{background:var(--acento);color:var(--sobre-acento);}
:root[data-perfil=marca] .btns .wa:hover{opacity:1;text-decoration:underline;}
:root[data-perfil=marca] .btns .sec{color:var(--sobre-primario);border-color:var(--sobre-primario);}
:root[data-perfil=marca] .btns a{border-radius:var(--radio);}
:root[data-perfil=marca] .devBoton{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.8rem 1.2rem;border:0;border-radius:var(--radio);background:var(--acento);color:var(--sobre-acento);font:700 1rem/1.4 var(--fuente-cuerpo);text-decoration:none;cursor:pointer;}
:root[data-perfil=marca] .campo input,:root[data-perfil=marca] .campo select,:root[data-perfil=marca] .planoTabs button{border-color:var(--control);}
:root[data-perfil=marca] .uCard:hover{box-shadow:none;border-color:var(--control);}
:root[data-perfil=marca] .uVista{color:var(--texto-suave);}
:root[data-perfil=marca] .uGrid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));}
@media(max-width:720px){
:root[data-perfil=marca] .portada .pLogo{max-width:65%;max-height:66px;}
:root[data-perfil=marca] .portada .caja{gap:1.5rem;}
:root[data-perfil=marca] .devNav{height:68px;}
:root[data-perfil=marca] .devNavLogo img{height:36px;}
:root[data-perfil=marca] .devNavHost{font-size:.75rem;max-width:40%;}
:root[data-perfil=marca][data-hero=split] .portada{background-size:100% 100%;}
:root[data-perfil=marca][data-hero=split] .portada .caja{width:100%;flex:0;margin-top:20rem;}
:root[data-perfil=marca] .devSeccion[data-slot=descripcion][data-variante=split]{display:block;}
:root[data-perfil=marca] .fila{padding-inline:0;}
:root[data-perfil=marca] .fila dt{flex-basis:45%;}
}
@media(prefers-reduced-motion:reduce){
:root[data-perfil=marca] *,:root[data-perfil=marca] *::before,:root[data-perfil=marca] *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important;}
:root[data-perfil=marca] .rev{opacity:1!important;transform:none!important;}
:root[data-perfil=marca] [data-parallax]{transform:none!important;}
:root[data-perfil=marca] .heroAcc button:hover,:root[data-perfil=marca] .heroAcc a:hover,:root[data-perfil=marca] .devBoton:hover{transform:none;}
}
:root[data-perfil=marca][data-movimiento=ninguno] *,:root[data-perfil=marca][data-movimiento=ninguno] *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important;}

/* Escala y cadencia de la presentación aprobada, elegidas por composición. */
:root[data-perfil=marca] body{font-size:17px;line-height:1.55}
:root[data-perfil=marca] h1,:root[data-perfil=marca] h2{font-weight:400;letter-spacing:-.015em}
:root[data-perfil=marca] .devSeccion h2{font-size:clamp(1.8rem,3.9vw,3.3rem);line-height:1.08;margin:0 0 24px;color:var(--acento)}
:root[data-perfil=marca] .devSeccion{padding-inline:max(20px,calc((100vw - 1180px)/2))}
:root[data-perfil=marca] .devSeccion .secSplit{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px)}
:root[data-perfil=marca] .devSeccion .splitFoto img{border-radius:var(--radio)}
:root[data-perfil=marca] .devSeccion[data-slot=editorial][data-variante=split]{background:var(--acento);color:var(--sobre-acento);padding-block:clamp(80px,10vw,130px) clamp(70px,9vw,110px)}
:root[data-perfil=marca] .devSeccion[data-slot=editorial][data-variante=split] h2,:root[data-perfil=marca] .devSeccion[data-slot=editorial][data-variante=split] p{color:var(--sobre-acento)}
:root[data-perfil=marca] .devSeccion[data-slot=editorial][data-variante=split] h2{max-width:16ch}
:root[data-perfil=marca] .devSeccion[data-slot=editorial][data-variante=split] p{font-size:clamp(1.05rem,1.5vw,1.2rem);max-width:58ch}
:root[data-perfil=marca] #ppNav{position:sticky;top:0;z-index:40;background:var(--primario)}
:root[data-perfil=marca] .devNav{height:68px;background:var(--primario);color:var(--sobre-primario)}
:root[data-perfil=marca] .devNav :focus-visible{outline-color:var(--foco-oscuro)}
:root[data-perfil=marca] .devNavLinks{display:flex;align-items:center;gap:20px}
:root[data-perfil=marca] .devNavIdioma{font:600 .85rem var(--fuente-cuerpo);text-underline-offset:4px}
:root[data-perfil=marca][data-hero=cinematografico] .portada{min-height:calc(100svh - 68px)}
:root[data-perfil=marca][data-hero=cinematografico] .portada .caja{padding-block:clamp(32px,5vw,64px)}
:root[data-perfil=marca][data-hero=cinematografico] .portada h1{font-size:clamp(2.2rem,min(6.4vw,9vh),5.6rem);font-weight:300;line-height:1;letter-spacing:-.02em}
:root[data-perfil=marca][data-hero=cinematografico] .portada .tag{font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.4;max-width:36ch}
:root[data-perfil=marca] .portada .caja{min-width:0}
:root[data-perfil=marca] .devSeccion .dmp{--dmp-hondo:var(--acento);--dmp-crema:var(--sobre-acento)}
:root[data-perfil=marca] .devSeccion .dmp p{color:inherit;line-height:inherit}
:root[data-perfil=marca] .devSeccion .dmp-modal h3,:root[data-perfil=marca] .devSeccion .dmp-modal p{color:var(--dmp-crema)}
@media(max-width:900px){:root[data-perfil=marca] .devSeccion .secSplit{grid-template-columns:minmax(0,1fr)}}
@media(max-width:540px){:root[data-perfil=marca] .devNavLinks{gap:12px}:root[data-perfil=marca] .devNavHost{max-width:120px}:root[data-perfil=marca] .devNavLogo{max-width:45%}}
