/* Las Palmas Campestre · tipografías propias (Cormorant Garamond y Outfit, licencia OFL) */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/cormorant.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:300 700;font-display:swap;src:url(../fonts/cormorant-italic.woff2) format("woff2")}
@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/outfit.woff2) format("woff2")}
/* Las Palmas Campestre
   Paleta: verde bosque (base, igual que Construc) + verde lima, amarillo sol y arena tomados del logo de Las Palmas. */

:root{
  --bosque:#1F2A2C; --bosque-2:#141D1F; --bosque-3:#2B3A3D;
  --lima:#5E7556; --lima-claro:#A9BFA0; --sol:#B08D57; --arena:#E7DCC8; --crema:#FAF7F0; --blanco:#fff;
  --tinta:#1B2224; --gris:#5A5F5C; --lima-txt:#3F5A45; --lima-em:#3F5A45; --lima-btn:#1F2A2C; --linea:rgba(31,42,44,.14);
  --radio:16px; --radio-s:10px; --ancho:1200px; --gut:clamp(18px,4vw,40px);
  --sombra:0 24px 60px -24px rgba(20,29,31,.45);
  --ease:cubic-bezier(.22,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:90px;font-size:calc(112.5% * var(--esc,1))}
body{margin:0;font-family:Outfit,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:1rem;line-height:1.7;color:var(--tinta);background:var(--crema);overflow-x:hidden}
[hidden]{display:none!important}
img,video{max-width:100%;display:block}
img{height:auto}
a{color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.08;letter-spacing:-.03em;font-weight:600;color:inherit}
p{margin:0 0 1em}
ul{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--sol);outline-offset:3px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:absolute;left:12px;top:-60px;z-index:200;background:var(--sol);color:var(--bosque);padding:10px 16px;border-radius:999px;font-weight:600;text-decoration:none}
.saltar:focus{top:12px}
.caja{width:100%;max-width:var(--ancho);margin:0 auto;padding:0 var(--gut)}
.sec{padding:clamp(64px,9vw,120px) 0;position:relative}
.sec-oscura{background:var(--bosque);color:#F0F2EA}
.sec-blanca{background:var(--blanco)}

/* barra de progreso de lectura */
.progreso{position:fixed;left:0;top:0;height:3px;width:100%;z-index:120;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--lima),var(--sol))}

/* ===== Encabezado ===== */
.cab{position:fixed;inset:0 0 auto 0;z-index:100;padding:14px 0;transition:background .35s,padding .35s,box-shadow .35s}
.cab.solido{background:rgba(20,29,31,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:9px 0;box-shadow:0 8px 30px -12px rgba(0,0,0,.5)}
.cab-in{display:flex;align-items:center;gap:18px}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;margin-right:auto}
.marca img{width:46px;height:auto}
.marca b{display:block;font-size:1.062rem;letter-spacing:-.02em;line-height:1.05}
.marca small{display:block;font-size:0.78rem;font-weight:400;opacity:.8;letter-spacing:.14em;text-transform:uppercase}
.nav{display:none;gap:4px}
.nav a{color:#fff;text-decoration:none;font-size:0.875rem;font-weight:500;padding:8px 14px;border-radius:999px;transition:background .25s}
.nav a:hover{background:rgba(255,255,255,.14)}
.pildora{border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:9px 20px;font-size:0.875rem;font-weight:500;cursor:pointer;backdrop-filter:blur(6px)}
.menu-m{position:fixed;inset:0;z-index:99;background:var(--bosque-2);display:flex;flex-direction:column;justify-content:center;gap:6px;padding:90px var(--gut) 40px;transform:translateY(-100%);transition:transform .55s var(--ease);visibility:hidden}
.menu-m.abierto{transform:none;visibility:visible}
.menu-m a{font-size:clamp(1.875rem,8vw,2.875rem);font-weight:600;letter-spacing:-.03em;color:#fff;text-decoration:none;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.menu-m a small{font-family:Outfit,sans-serif;font-size:0.78rem;color:var(--lima-claro);margin-right:14px;letter-spacing:.1em;vertical-align:middle}
.nav a{white-space:nowrap}
@media(max-width:759px){.cab .btn{display:none}}
@media(min-width:1440px){.nav{display:flex}.pildora{display:none}.menu-m{display:none}}

/* ===== Botones ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:999px;padding:15px 28px;font-weight:600;font-size:0.9375rem;line-height:1;text-decoration:none;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s,background .25s,color .25s;will-change:transform}
.btn svg{width:20px;height:20px;fill:currentColor;flex:none}
.btn-sol{background:var(--sol);color:var(--bosque)}
.btn-sol:hover{box-shadow:0 10px 30px -8px rgba(176,141,87,.65)}
.btn-lima{background:var(--lima-btn);color:#fff}
.btn-lima:hover{background:#141D1F}
.btn-linea{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55)}
.btn-linea:hover{background:rgba(255,255,255,.12)}
.btn-linea-v{background:transparent;color:var(--bosque);box-shadow:inset 0 0 0 1.5px var(--bosque)}
.btn-linea-v:hover{background:var(--bosque);color:#fff}
.btn-sm{padding:11px 20px;font-size:0.875rem}
.btn:active{transform:scale(.97)}

/* ===== Hero ===== */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--bosque-2)}
.hero-medio{position:absolute;inset:-6% 0 -6%;will-change:transform}
.hero-medio video,.hero-medio img{width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,29,31,.55) 0%,rgba(20,29,31,.15) 32%,rgba(20,29,31,.78) 78%,rgba(20,29,31,.95) 100%)}
.manchas{position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:soft-light;opacity:.9}
.mancha{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform}
.mancha.m1{width:60vmax;height:60vmax;left:-18vmax;top:-10vmax;background:radial-gradient(circle,var(--lima) 0%,transparent 65%);animation:flota1 19s ease-in-out infinite alternate}
.mancha.m2{width:48vmax;height:48vmax;right:-14vmax;top:8vmax;background:radial-gradient(circle,var(--sol) 0%,transparent 65%);animation:flota2 23s ease-in-out infinite alternate}
.mancha.m3{width:52vmax;height:52vmax;left:22vw;bottom:-22vmax;background:radial-gradient(circle,var(--arena) 0%,transparent 65%);animation:flota3 27s ease-in-out infinite alternate}
@keyframes flota1{to{transform:translate(22vmax,14vmax) scale(1.2)}}
@keyframes flota2{to{transform:translate(-20vmax,16vmax) scale(.85)}}
@keyframes flota3{to{transform:translate(-18vmax,-12vmax) scale(1.15)}}
.hero-in{position:relative;z-index:2;width:100%;padding-top:140px;padding-bottom:clamp(40px,7vh,84px)}
.insignia{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;padding:7px 16px 7px 12px;font-size:0.8125rem;font-weight:500;margin-bottom:22px}
.insignia i{width:9px;height:9px;border-radius:50%;background:var(--sol);box-shadow:0 0 0 0 rgba(176,141,87,.7);animation:pulso 2s infinite}
@keyframes pulso{70%{box-shadow:0 0 0 10px rgba(176,141,87,0)}100%{box-shadow:0 0 0 0 rgba(176,141,87,0)}}
.hero h1{font-size:clamp(2.5rem,8.6vw,6.75rem);letter-spacing:-.045em;max-width:15ch;margin-bottom:22px}
.rota-caja{display:inline-block;position:relative;vertical-align:bottom}
.rota{display:inline-block;background:var(--lima-em);color:#fff;border-radius:.2em;padding:0 .22em .06em;line-height:1.05;transition:opacity .35s,transform .35s var(--ease)}
.rota.sale{opacity:0;transform:translateY(.35em)}
.hero-sub{font-size:clamp(1rem,2vw,1.312rem);max-width:44ch;opacity:.92;margin-bottom:26px}
.hero-sub b{color:var(--sol);font-weight:600}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.hero-datos{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:clamp(30px,5vh,56px);max-width:760px}
.dato-h{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:var(--radio-s);padding:14px 18px}
.dato-h strong{display:block;font-size:clamp(1.25rem,2.6vw,1.75rem);letter-spacing:-.03em;line-height:1.1}
.dato-h span{font-size:0.7812rem;opacity:.85}
.baja{position:absolute;right:var(--gut);bottom:30px;z-index:2;display:none;writing-mode:vertical-rl;font-family:Outfit,sans-serif;font-size:0.78rem;letter-spacing:.3em;color:#fff;opacity:.75;text-decoration:none}
.baja::after{content:"";display:block;width:1px;height:54px;margin:10px auto 0;background:#fff;transform-origin:top;animation:linea 2.2s ease-in-out infinite}
@keyframes linea{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
@media(min-width:760px){.hero-datos{grid-template-columns:repeat(4,1fr)}.baja{display:block}}

/* ===== Cinta ===== */
.cinta{background:var(--sol);color:var(--bosque);overflow:hidden;border-block:1px solid rgba(31,42,44,.2);padding:15px 0;white-space:nowrap}
.cinta-pista{display:inline-flex;animation:cinta 38s linear infinite}
.cinta:hover .cinta-pista{animation-play-state:paused}
.cinta span{display:inline-flex;align-items:center;gap:26px;padding-right:26px;font-weight:600;font-size:clamp(0.9375rem,2vw,1.25rem);letter-spacing:-.01em}
.cinta span::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--lima)}
@keyframes cinta{to{transform:translateX(-50%)}}

/* ===== Titulares de sección ===== */
.ey{font-family:Outfit,sans-serif;font-size:0.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lima-txt);margin-bottom:18px;display:block}
.sec-oscura .ey{color:var(--lima-claro)}
.tit{font-size:clamp(2rem,5.4vw,4.125rem);letter-spacing:-.04em;max-width:18ch}
.tit em{font-style:normal;background:var(--lima-em);color:#fff;border-radius:.18em;padding:0 .2em .05em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.sec-oscura .tit em{background:var(--sol);color:var(--bosque)}
.lead{font-size:clamp(1.062rem,1.7vw,1.312rem);color:var(--gris);max-width:56ch;margin-top:22px}
.sec-oscura .lead{color:rgba(240,242,234,.92)}
.cab-sec{margin-bottom:clamp(36px,5vw,64px)}

/* animaciones de entrada */
.rev{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
.rev.on{opacity:1;transform:none}
.pal{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.pal>span{display:inline-block;transform:translateY(105%);transition:transform .9s var(--ease);transition-delay:var(--d,0s)}
.on .pal>span,.pal.on>span{transform:none}
.sinjs .rev{opacity:1;transform:none}

/* ===== El proyecto ===== */
.proy-grid{display:grid;gap:clamp(32px,5vw,70px);align-items:start}
.cifras{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.cifra{background:var(--blanco);border-radius:var(--radio);padding:clamp(20px,3vw,32px);box-shadow:0 1px 0 var(--linea)}
.cifra strong{display:block;font-size:clamp(2rem,4.6vw,3.5rem);letter-spacing:-.045em;line-height:1;color:var(--bosque)}
.cifra strong sup{font-size:.45em;vertical-align:top;position:relative;top:.2em}
.cifra span{display:block;margin-top:10px;font-size:0.875rem;color:var(--gris)}
.cifra.sol{background:var(--sol)}
.cifra.sol span{color:var(--bosque)}
.cifra.bos{background:var(--bosque);color:#fff}
.cifra.bos strong{color:var(--sol)}
.cifra.bos span{color:rgba(255,255,255,.8)}
.rasgos{display:grid;gap:12px;margin-top:clamp(36px,5vw,60px);grid-template-columns:repeat(2,1fr)}
.rasgo{display:flex;flex-direction:column;gap:12px;background:var(--blanco);border-radius:var(--radio-s);padding:20px;transition:transform .4s var(--ease),box-shadow .4s}
.rasgo:hover{transform:translateY(-6px);box-shadow:var(--sombra)}
.rasgo svg{width:34px;height:34px;stroke:var(--lima);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.rasgo b{font-size:0.9375rem;line-height:1.25;font-weight:600}
.rasgo small{font-size:0.8125rem;color:var(--gris);line-height:1.45}
@media(min-width:900px){.proy-grid{grid-template-columns:1fr 1fr}.rasgos{grid-template-columns:repeat(4,1fr)}}
.foto-grande{margin-top:clamp(36px,5vw,64px);border-radius:var(--radio);overflow:hidden;position:relative;aspect-ratio:16/9;background:var(--bosque)}
.foto-grande img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.foto-grande:hover img{transform:scale(1.04)}
.etq{position:absolute;left:14px;bottom:14px;background:rgba(20,29,31,.78);color:#fff;font-size:0.78rem;padding:6px 13px;border-radius:999px;backdrop-filter:blur(6px)}

/* ===== Lotes (tarjetas apiladas) ===== */
.pila{display:grid;gap:18px}
.lote{color:var(--tinta);background:var(--blanco);border-radius:var(--radio);overflow:hidden;display:grid;box-shadow:0 1px 0 var(--linea),var(--sombra);position:relative}
.lote-img{aspect-ratio:16/10;overflow:hidden;background:var(--bosque)}
.lote-img img{width:100%;height:100%;object-fit:cover}
.lote-cu{padding:clamp(22px,3vw,40px);display:flex;flex-direction:column;gap:6px}
.lote-t{font-family:Outfit,sans-serif;font-size:0.78rem;letter-spacing:.12em;color:var(--lima-txt);text-transform:uppercase}
.lote h3{font-size:clamp(1.625rem,3.4vw,2.5rem);letter-spacing:-.04em}
.lote-med{color:var(--gris);font-size:0.9375rem}
.lote-p{font-size:clamp(1.875rem,4vw,3rem);font-weight:700;letter-spacing:-.045em;color:var(--bosque);margin-top:14px;line-height:1}
.lote-p small{display:block;font-size:0.8125rem;font-weight:400;letter-spacing:0;color:var(--gris);margin-bottom:6px}
.lote-pl{display:grid;gap:8px;margin:18px 0 22px;font-size:0.875rem}
.lote-pl li{display:flex;justify-content:space-between;gap:14px;border-bottom:1px dashed var(--linea);padding-bottom:8px}
.lote-pl li span{color:var(--gris)}
.lote-pl li b{font-weight:600;text-align:right}
.lote-ac{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.nota{font-size:0.8438rem;color:var(--gris);max-width:70ch}
.sec-oscura .nota{color:rgba(240,242,234,.88)}
@media(min-width:900px){
  .lote{grid-template-columns:1.1fr 1fr;min-height:440px}
  .lote-img{aspect-ratio:auto;height:100%}
}
.pila-caja{padding-left:0;padding-right:0}

/* ----- Escenario fijo: cada deslizamiento / flecha / rueda cambia de lote (lo activa js/sitio.js) ----- */
.js-lotes{height:300vh;height:300svh;position:relative}
.js-lotes .lotes-escenario{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;overflow:hidden;padding:84px 0 96px}
.js-lotes .pila-caja{width:100%;padding:0 var(--gut)}
.js-lotes .pila{display:grid;max-width:1120px;margin:0 auto;gap:0}
.js-lotes .lote{grid-area:1/1;align-self:center;opacity:0;pointer-events:none;visibility:hidden;
  transform:translateY(70px) scale(.94);clip-path:inset(7% 5% 7% 5% round 28px);
  transition:opacity .7s var(--ease),transform .9s var(--ease),clip-path .9s var(--ease),visibility 0s .9s}
.js-lotes .lote.pas{transform:translateY(-70px) scale(.94)}
.js-lotes .lote.act{opacity:1;pointer-events:auto;visibility:visible;transform:none;clip-path:inset(0 round 28px);transition-delay:.12s,.12s,.12s,0s}
.js-lotes .lote-img img{transform:scale(1.14);transition:transform 1.6s var(--ease)}
.js-lotes .lote.act .lote-img img{transform:scale(1)}
.js-lotes .lote-cu>*{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.js-lotes .lote.act .lote-cu>*{opacity:1;transform:none}
.js-lotes .lote.act .lote-cu>*:nth-child(2){transition-delay:.25s}.js-lotes .lote.act .lote-cu>*:nth-child(3){transition-delay:.32s}
.js-lotes .lote.act .lote-cu>*:nth-child(4){transition-delay:.4s}.js-lotes .lote.act .lote-cu>*:nth-child(5){transition-delay:.48s}
.js-lotes .lote.act .lote-cu>*:nth-child(6){transition-delay:.56s}.js-lotes .lote.act .lote-cu>*:nth-child(1){transition-delay:.18s}
.riel{display:none}
.js-lotes .riel{display:flex;position:absolute;z-index:3;right:10px;top:50%;transform:translateY(-50%);flex-direction:column;align-items:center;gap:14px}
.riel-num{font-family:Outfit,sans-serif;font-size:0.78rem;letter-spacing:.08em;color:rgba(255,255,255,.55);writing-mode:vertical-rl;margin-bottom:6px}
.riel-num b{color:var(--sol);font-weight:400;font-size:0.8125rem}
.punto{width:12px;height:12px;padding:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.6);background:transparent;cursor:pointer;position:relative;transition:all .4s var(--ease)}
.punto::before{content:"";position:absolute;inset:-9px}
.punto.act{background:var(--sol);border-color:var(--sol);height:34px;border-radius:99px}
.guia{display:none}
.js-lotes .guia{display:flex}
.guia{position:absolute;z-index:3;left:50%;bottom:26px;transform:translateX(-50%);align-items:center;gap:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:999px;padding:10px 22px 10px 14px;color:#fff;cursor:pointer;text-align:left;max-width:calc(100vw - 28px);transition:background .3s,transform .4s var(--ease)}
.guia:hover{background:rgba(255,255,255,.2)}
.guia-txt{display:grid;font-size:0.8438rem;line-height:1.3}
.guia-txt small{display:block;font-size:0.78rem;opacity:.75;font-weight:400}
.guia-txt b{font-weight:600}
.guia-txt .t-inicio b{color:var(--sol)}
.guia[data-estado=inicio] .t-sig,.guia[data-estado=inicio] .t-fin,.guia[data-estado=sig] .t-inicio,.guia[data-estado=sig] .t-fin,.guia[data-estado=fin] .t-inicio,.guia[data-estado=fin] .t-sig{display:none}
.guia[data-estado=sig] .t-sig b,.guia[data-estado=fin] .t-fin b{color:var(--sol)}
.guia[data-estado=sig] .guia-ico,.guia[data-estado=fin] .guia-ico,.guia[data-estado=sig] .guia-teclas,.guia[data-estado=fin] .guia-teclas{display:none!important}
.guia[data-estado=inicio]{animation:late 2.6s var(--ease) infinite}
@keyframes late{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-6px)}}
.guia-ico{flex:none;position:relative;display:none}
/* mouse con rueda que baja */
.guia-raton{width:22px;height:34px;border:2px solid #fff;border-radius:12px}
.guia-raton i{position:absolute;left:50%;top:6px;width:3px;height:7px;margin-left:-1.5px;border-radius:3px;background:var(--sol);animation:rueda 1.7s ease-in-out infinite}
@keyframes rueda{0%{transform:translateY(0);opacity:0}25%{opacity:1}80%{transform:translateY(11px);opacity:0}100%{opacity:0}}
/* dedo que desliza hacia arriba */
.guia-dedo{width:34px;height:42px}
.guia-dedo i{position:absolute;left:4px;bottom:0;width:26px;height:26px;border-radius:50%;background:rgba(176,141,87,.9);box-shadow:0 0 0 7px rgba(176,141,87,.22);animation:dedo 1.9s var(--ease) infinite}
@keyframes dedo{0%{transform:translateY(8px) scale(.8);opacity:0}20%{opacity:1;transform:translateY(8px) scale(1)}75%{transform:translateY(-22px) scale(1);opacity:1}100%{transform:translateY(-28px) scale(.9);opacity:0}}
/* teclas ↑ ↓ que se "presionan" */
.guia-teclas{display:none;gap:5px;flex:none}
.guia-teclas kbd{font-family:Outfit,sans-serif;font-size:0.8125rem;line-height:1;width:26px;height:26px;display:grid;place-items:center;border-radius:7px;border:1.5px solid rgba(255,255,255,.7);border-bottom-width:3px;color:#fff;animation:tecla 2.4s ease-in-out infinite}
.guia-teclas kbd:last-child{animation-delay:1.2s}
@keyframes tecla{0%,70%,100%{transform:none;background:transparent;color:#fff}15%{transform:translateY(2px);background:var(--sol);color:var(--bosque);border-bottom-width:1.5px}}
.guia-chev{display:grid;gap:0;flex:none}
.guia-chev i{width:10px;height:10px;border-right:2px solid var(--sol);border-bottom:2px solid var(--sol);transform:rotate(45deg);margin:-3px 0;opacity:0;animation:chev 1.6s infinite}
.guia-chev i:nth-child(2){animation-delay:.2s}.guia-chev i:nth-child(3){animation-delay:.4s}
@keyframes chev{0%{opacity:0;transform:translateY(-4px) rotate(45deg)}50%{opacity:1}100%{opacity:0;transform:translateY(6px) rotate(45deg)}}
.solo-raton,.solo-tactil{display:none}
@media(hover:hover) and (pointer:fine){.guia-raton{display:block}.guia-teclas{display:flex}.solo-raton{display:inline}.guia-dedo{display:none}}
@media(hover:none),(pointer:coarse){.guia-dedo{display:block}.solo-tactil{display:inline}}
@media(max-width:899px){
  .js-lotes .lotes-escenario{padding:70px 0 142px}
  .js-lotes .riel{right:4px}
  .js-lotes .pila-caja{padding-right:26px}
  .js-lotes .lote-img{aspect-ratio:auto;height:clamp(96px,19svh,170px)}
  .js-lotes .lote-cu{padding:16px 18px 18px;gap:4px}
  .js-lotes .lote h3{font-size:1.375rem}
  .js-lotes .lote-med{display:none}
  .js-lotes .lote-p{font-size:1.75rem;margin-top:6px}
  .js-lotes .lote-p small{display:none}
  .js-lotes .lote-pl{margin:10px 0 14px;gap:6px;font-size:0.8125rem}
  .js-lotes .lote-ac .btn{padding:12px 18px;font-size:0.875rem}
  .guia{left:14px;right:14px;bottom:74px;transform:none;max-width:none;justify-content:center;border-radius:20px;padding:9px 16px}
  .guia[data-estado=inicio]{animation:lateM 2.6s var(--ease) infinite}
  .guia-txt{font-size:0.8125rem}
}
@keyframes lateM{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:899px) and (max-height:780px){.js-lotes .lote-pl li:first-child{display:none}.js-lotes .lote-t{display:none}.js-lotes .lote-p{font-size:1.625rem}}
@media(prefers-reduced-motion:reduce){
  .js-lotes .lote{transition-duration:.01ms!important;clip-path:none}
  .js-lotes .lote.act{clip-path:none}
  .guia[data-estado=inicio]{animation:none}
}

/* ===== Simulador ===== */
.sim{display:grid;background:var(--blanco);color:var(--tinta);border-radius:var(--radio);overflow:hidden;box-shadow:0 30px 70px -26px rgba(0,0,0,.6)}
.sim-ctrl{padding:clamp(20px,3.2vw,40px);display:grid;gap:28px;align-content:start}
.paso-t{display:flex;align-items:center;gap:12px;font-size:1.1rem;font-weight:600;letter-spacing:-.01em;color:var(--bosque);margin-bottom:14px}
.paso-t i{flex:none;width:34px;height:34px;border-radius:50%;background:var(--bosque);color:var(--sol);display:grid;place-items:center;font-style:normal;font-weight:700;font-size:1rem}
.lote-op{display:grid;gap:10px}
.lote-card{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:0 16px;border:2px solid var(--linea);border-radius:18px;padding:14px 18px;cursor:pointer;background:#fff;transition:border-color .25s,background .25s,box-shadow .25s,transform .25s var(--ease)}
.lote-card:hover{border-color:var(--lima-btn);transform:translateY(-2px)}
.lote-card input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.lote-card .m2{font-size:1.9rem;font-weight:700;letter-spacing:-.04em;color:var(--bosque);line-height:1}
.lote-card .m2 small{font-size:.9rem;font-weight:500;margin-left:2px}
.lote-card .info{display:grid;gap:1px}
.lote-card .info b{font-size:1rem;font-weight:600}
.lote-card .info small{font-size:.95rem;color:var(--gris)}
.lote-card .tic{width:28px;height:28px;border-radius:50%;border:2px solid var(--linea);display:grid;place-items:center;transition:all .25s}
.lote-card.sel{border-color:var(--lima-btn);background:#EFE7D6;box-shadow:0 0 0 4px rgba(94,117,86,.25)}
.lote-card.sel .tic{background:var(--lima-btn);border-color:var(--lima-btn)}
.lote-card.sel .tic::after{content:"";width:7px;height:12px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg) translate(-1px,-1px)}
.plan-op{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.plan-card{position:relative;display:grid;gap:2px;border:2px solid var(--linea);border-radius:18px;padding:14px 16px;cursor:pointer;background:#fff;transition:all .25s var(--ease)}
.plan-card:hover{border-color:var(--bosque);transform:translateY(-2px)}
.plan-card input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.plan-card b{font-size:1rem;font-weight:600;line-height:1.25}
.plan-card small{font-size:.9rem;color:var(--gris)}
.plan-card.sel{background:var(--bosque);border-color:var(--bosque);color:#fff;box-shadow:0 10px 24px -10px rgba(31,42,44,.7)}
.plan-card.sel small{color:var(--sol)}
.plan-card:focus-within,.lote-card:focus-within{outline:3px solid var(--sol);outline-offset:2px}
.otro{display:none;gap:18px;background:#EFE7D6;border-radius:18px;padding:18px}
.otro.ver{display:grid;animation:aparece .4s var(--ease)}
@keyframes aparece{from{opacity:0;transform:translateY(-8px)}}
.campo-r label{display:block;font-weight:600;font-size:.98rem;margin-bottom:8px;color:var(--bosque)}
.campo-r label small{font-weight:400;color:var(--gris)}
.r-fila{display:grid;grid-template-columns:1fr 84px;gap:14px;align-items:center}
.r-fila input[type=range]{width:100%;height:36px;accent-color:var(--lima-btn);cursor:pointer;margin:0}
.r-fila input[type=number]{width:100%;border:2px solid var(--linea);border-radius:12px;padding:10px;font-size:1.05rem;font-weight:600;text-align:center;background:#fff;color:var(--tinta)}
.r-fila input[type=number]:focus{border-color:var(--lima-btn);outline:0;box-shadow:0 0 0 4px rgba(94,117,86,.25)}
/* panel de resultado */
.res{padding:clamp(22px,3.4vw,44px);display:flex;flex-direction:column;gap:14px;color:var(--bosque);background:linear-gradient(150deg,#B08D57 0%,#E6C55A 55%,#A9BFA0 100%);position:relative;overflow:hidden}
.res::before{content:"";position:absolute;right:-90px;top:-90px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.35);filter:blur(10px);pointer-events:none}
.res>*{position:relative}
.res.pulso{animation:pulsoRes .55s var(--ease)}
@keyframes pulsoRes{40%{transform:scale(.985)}}
.res-t{margin:0;font-weight:600;font-size:1rem;letter-spacing:.01em}
.res-cuota{font-size:clamp(2.6rem,7vw,4.6rem);font-weight:700;letter-spacing:-.05em;line-height:1;color:var(--bosque)}
.res-sub{margin:0;font-size:1.05rem;font-weight:500}
.res-frase{margin:0;background:rgba(255,255,255,.55);border-radius:14px;padding:12px 16px;font-size:1.02rem;line-height:1.55;text-align:left}
.barra{display:flex;height:16px;border-radius:99px;overflow:hidden;background:rgba(31,42,44,.15)}
.barra i{display:block;height:100%;width:0;transition:width .8s var(--ease)}
.barra .b-ini{background:var(--bosque)}
.barra .b-cuo{background:rgba(255,255,255,.85)}
.leyenda{display:flex;justify-content:space-between;gap:10px;font-size:.95rem;font-weight:500;margin-top:6px}
.puntos{display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-height:14px}
.puntos .pi{background:var(--bosque);color:var(--sol);font-size:.78rem;font-weight:600;border-radius:99px;padding:2px 10px}
.puntos .pc{width:12px;height:12px;border-radius:50%;background:rgba(31,42,44,.85);animation:pop .4s var(--ease) both}
@keyframes pop{from{transform:scale(0);opacity:0}}
.res dl{margin:0;display:grid;gap:8px}
.res dl div{display:flex;justify-content:space-between;gap:14px;font-size:1.02rem;border-bottom:1px solid rgba(31,42,44,.2);padding-bottom:8px}
.res dt{color:var(--bosque);opacity:.85}
.res dd{margin:0;font-weight:700;text-align:right}
.btn-oscuro{background:var(--bosque);color:#fff}
.btn-oscuro:hover{background:#141D1F;box-shadow:0 12px 28px -10px rgba(20,29,31,.8)}
@media(min-width:900px){.sim{grid-template-columns:1.05fr .95fr}}
@media(max-width:480px){.plan-op{grid-template-columns:minmax(0,1fr)}.lote-card{padding:12px 14px;gap:0 12px}}
html.alto .res{background:#B08D57}

/* ===== Galería interactiva (foto grande que se mueve sola + miniaturas) ===== */
.gal-barra{display:flex;align-items:end;justify-content:space-between;gap:20px}
.gal-ctrl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin-top:26px;margin-bottom:22px}
.filtros{display:flex;gap:8px;flex-wrap:wrap}
.filtro{border:1.5px solid var(--linea);background:var(--blanco);color:var(--bosque);border-radius:999px;padding:10px 18px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .25s;min-height:46px}
.filtro small{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:99px;background:var(--crema);font-size:.8rem;margin-left:6px;padding:0 6px}
.filtro:hover{border-color:var(--lima-btn)}
.filtro.act{background:var(--bosque);border-color:var(--bosque);color:#fff}
.filtro.act small{background:var(--sol);color:var(--bosque)}
.gal-guia{display:flex;align-items:center;gap:12px;font-size:.95rem;color:var(--bosque);background:var(--blanco);border:1.5px dashed var(--lima-btn);border-radius:999px;padding:8px 18px 8px 12px;transition:opacity .6s,transform .6s}
.gal-guia.fuera{opacity:.55}
.gal-guia b{font-weight:600;color:var(--lima-txt)}
.gg-mano{position:relative;width:34px;height:26px;flex:none;display:none}
.gg-mano i{position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:50%;background:var(--lima-btn);box-shadow:0 0 0 6px rgba(94,117,86,.25);animation:manoLado 2s var(--ease) infinite}
@keyframes manoLado{0%{transform:translateX(0);opacity:0}15%{opacity:1}70%{transform:translateX(16px);opacity:1}100%{transform:translateX(18px);opacity:0}}
.gg-teclas{display:none;gap:5px;flex:none}
.gg-teclas kbd{font-family:Outfit,sans-serif;font-size:.85rem;line-height:1;width:26px;height:26px;display:grid;place-items:center;border-radius:7px;border:1.5px solid var(--bosque);border-bottom-width:3px;color:var(--bosque);animation:teclaV 2.4s ease-in-out infinite}
.gg-teclas kbd:last-child{animation-delay:1.2s}
@keyframes teclaV{0%,70%,100%{transform:none;background:transparent}15%{transform:translateY(2px);background:var(--sol);border-bottom-width:1.5px}}
@media(hover:hover) and (pointer:fine){.gg-teclas{display:flex}}
@media(hover:none),(pointer:coarse){.gg-mano{display:block}}

.gal{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
.gal>*{min-width:0}
.gal-main{position:relative;border-radius:var(--radio);overflow:hidden;background:var(--bosque);aspect-ratio:4/3;box-shadow:var(--sombra);cursor:zoom-in;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.gal-capa{position:absolute;inset:0;opacity:0;transition:opacity .9s ease}
.gal-capa.act{opacity:1;z-index:1}
.gal-capa img{width:100%;height:100%;object-fit:cover;transform-origin:var(--ox,50%) var(--oy,50%);pointer-events:none;-webkit-user-drag:none}
.gal-capa.act img{animation:kb 9s ease-out forwards}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.13)}}
.gal-main::after{content:"";position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(transparent,rgba(20,29,31,.86));z-index:2;pointer-events:none}
.gal-top{position:absolute;z-index:4;left:14px;right:14px;top:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.gal-tag{background:var(--sol);color:var(--bosque);font-weight:600;font-size:.85rem;padding:6px 14px;border-radius:99px}
.gal-tag.r{background:rgba(255,255,255,.94)}
.gal-play{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.5);background:rgba(20,29,31,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;border-radius:99px;padding:8px 16px;font-size:.9rem;font-weight:500;cursor:pointer;min-height:44px}
.gal-play:hover{background:rgba(20,29,31,.8)}
.gal-play svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:2.4;stroke-linecap:round}
.gal-play .i-play{fill:#fff;stroke:none}
.gal-play .i-play,.gal-play .t-play{display:none}
.gal-play[aria-pressed=true] .i-pausa,.gal-play[aria-pressed=true] .t-pausa{display:none}
.gal-play[aria-pressed=true] .i-play{display:block}
.gal-play[aria-pressed=true] .t-play{display:inline}
.gal-nav{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:58px;height:58px;border-radius:50%;border:0;background:var(--sol);color:var(--bosque);cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 26px -6px rgba(0,0,0,.55);transition:transform .3s var(--ease),background .25s}
.gal-ant{left:14px}.gal-sig{right:14px}
.gal-nav:hover{background:#fff;transform:translateY(-50%) scale(1.1)}
.gal-nav svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.gal-pie-f{position:absolute;z-index:4;left:0;right:0;bottom:0;padding:18px 20px 22px;display:flex;align-items:flex-end;gap:14px;color:#fff;pointer-events:none}
.gal-cap{margin:0;flex:1;font-size:clamp(1.05rem,2vw,1.4rem);font-weight:600;line-height:1.25;letter-spacing:-.01em}
.gal-cont{font-family:Outfit,sans-serif;font-size:.8rem;letter-spacing:.08em;opacity:.9;white-space:nowrap}
.gal-zoom{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;border:0;background:var(--sol);color:var(--bosque);border-radius:99px;padding:10px 16px;font-weight:600;font-size:.92rem;cursor:pointer;min-height:44px}
.gal-zoom svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round}
.gal-zoom:hover{background:#fff}
.gal-tiempo{position:absolute;z-index:5;left:0;right:0;bottom:0;height:5px;background:rgba(255,255,255,.25)}
.gal-tiempo i{display:block;height:100%;width:0;background:var(--sol)}
.gal-tiempo i.corre{animation:llenar 5.2s linear forwards}
.gal-main.pausa .gal-tiempo i{animation-play-state:paused}
@keyframes llenar{from{width:0}to{width:100%}}
.gal-rail-w{position:relative}
.gal-rail{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:4px 2px 6px;position:relative;scroll-snap-type:x proximity}
.gal-rail::-webkit-scrollbar{display:none}
.mini{position:relative;flex:0 0 112px;aspect-ratio:4/3;border:3px solid transparent;border-radius:14px;overflow:hidden;padding:0;background:var(--bosque);cursor:pointer;opacity:.72;transition:opacity .25s,transform .3s var(--ease),border-color .25s;scroll-snap-align:start}
.mini img{width:100%;height:100%;object-fit:cover;display:block}
.mini:hover{opacity:1;transform:translateY(-3px)}
.mini.act{opacity:1;border-color:var(--sol);box-shadow:0 8px 20px -8px rgba(0,0,0,.6)}
.mini[hidden]{display:none}
.mini .mt{position:absolute;left:5px;top:5px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px rgba(20,29,31,.5)}
.mini[data-tipo="Foto real"] .mt{background:var(--sol)}
.gal-cta{margin:26px 0 0;text-align:center}
@media(min-width:900px){
  .gal{grid-template-columns:minmax(0,1fr) 236px;gap:18px;align-items:stretch}
  .gal-main{aspect-ratio:3/2}
  .gal-rail-w{min-height:100%}
  .gal-rail{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:min-content;align-content:start;gap:10px;overflow-x:hidden;overflow-y:auto;padding:4px;scroll-snap-type:none}
  .mini{flex:none;width:100%}
}
@media(max-width:560px){.gal-play .t-pausa,.gal-play .t-play{display:none!important}.gal-play{padding:8px 12px}.gal-nav{width:46px;height:46px}.gal-zoom span{display:none}.gal-zoom{padding:10px}.gal-ant{left:8px}.gal-sig{right:8px}.gal-pie-f{padding:14px 14px 18px}}
@media(prefers-reduced-motion:reduce){.gal-capa.act img{animation:none}.gal-tiempo{display:none}}
html.quieto .gal-capa.act img{animation:none}
html.quieto .gal-tiempo{display:none}

/* Visor ampliado */
.visor{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100%;height:100%;color:#fff}
.visor::backdrop{background:rgba(8,11,7,.96)}
.visor-in{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;padding:12px 12px 14px}
.visor-top{width:100%;display:flex;justify-content:space-between;align-items:center;padding:4px 4px 10px}
.visor-n{font-family:Outfit,sans-serif;font-size:0.78rem;letter-spacing:.1em;color:var(--sol)}
.visor-x{display:inline-flex;align-items:center;gap:8px;border:0;background:rgba(255,255,255,.16);color:#fff;border-radius:999px;padding:10px 18px 10px 14px;font-size:0.875rem;font-weight:500;cursor:pointer}
.visor-x:hover{background:#fff;color:var(--bosque)}
.visor-x svg,.visor-p svg,.visor-s svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.visor-lienzo{flex:1;min-height:0;width:100%;display:grid;place-items:center;overflow:hidden;touch-action:pan-y;cursor:zoom-in}
.visor-lienzo.zoom{cursor:zoom-out;touch-action:none}
.visor-lienzo img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;transition:transform .35s var(--ease);user-select:none;-webkit-user-drag:none}
.visor-lienzo.zoom img{transform:scale(2.3);transition:transform .35s var(--ease)}
.visor-p,.visor-s{position:absolute;top:50%;transform:translateY(-50%);width:58px;height:58px;border-radius:50%;border:0;background:var(--sol);color:var(--bosque);cursor:pointer;display:grid;place-items:center;box-shadow:0 8px 24px -6px rgba(0,0,0,.6);transition:transform .3s var(--ease),background .25s;z-index:3}
.visor-p{left:14px}.visor-s{right:14px}
.visor-p:hover,.visor-s:hover{background:#fff;transform:translateY(-50%) scale(1.1)}
.visor-cap{margin:12px 0 8px;text-align:center;display:grid;gap:3px;font-size:0.9375rem}
.visor-cap b{font-weight:600}
.visor-ayuda{font-size:0.7812rem;opacity:.7}
.visor-mini{display:flex;gap:8px;overflow-x:auto;max-width:100%;padding:4px;scrollbar-width:none}
.visor-mini::-webkit-scrollbar{display:none}
.visor-mini button{flex:none;width:68px;height:48px;border-radius:10px;overflow:hidden;border:2px solid transparent;padding:0;background:#000;opacity:.55;cursor:pointer;transition:all .25s}
.visor-mini button.act{border-color:var(--sol);opacity:1;transform:translateY(-3px)}
.visor-mini img{width:100%;height:100%;object-fit:cover}
@media(max-width:700px){.visor-p,.visor-s{width:46px;height:46px;top:auto;bottom:112px;transform:none}.visor-p:hover,.visor-s:hover{transform:scale(1.08)}.visor-x span{display:none}.visor-x{padding:10px}}

/* ===== Videos ===== */
.vid-grid{display:grid;gap:18px}
.vid{border-radius:var(--radio);overflow:hidden;background:#000;position:relative;aspect-ratio:16/9;box-shadow:var(--sombra)}
.vid video{width:100%;height:100%;object-fit:cover}
.vid .etq{z-index:2}
@media(min-width:900px){.vid-grid{grid-template-columns:1.6fr 1fr;align-items:stretch}.vid.alto{aspect-ratio:auto}}

/* ===== Ubicación ===== */
.ub-grid{display:grid;gap:clamp(22px,3vw,40px);align-items:stretch}
.ub-mapa{display:flex;flex-direction:column;gap:14px}
.mapa{border-radius:var(--radio);overflow:hidden;aspect-ratio:4/3;background:#dfe7dc;box-shadow:var(--sombra);flex:1;min-height:320px}
.mapa{position:relative}
.mapa iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.ub-lista h3{font-size:clamp(1.5rem,2.4vw,2rem)}
.cerca{display:grid;margin-top:10px}
.cerca li{display:grid;grid-template-columns:1fr auto;gap:0 14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--linea)}
.cerca b{font-weight:600;font-size:1.02rem;line-height:1.25}
.cerca .km{grid-column:1;font-size:.9rem;color:var(--gris)}
.cerca .km a{color:var(--lima-txt);font-weight:600;text-decoration:none;margin-left:4px}
.cerca .km a:hover{text-decoration:underline}
.cerca .t{grid-column:2;grid-row:1/3;font-weight:700;font-size:1.45rem;letter-spacing:-.03em;color:var(--bosque);text-align:right;white-space:nowrap}
.cerca .pista{grid-column:1/-1;height:6px;border-radius:99px;background:var(--linea);overflow:hidden;margin-top:8px}
.cerca .pista i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--lima),var(--sol));border-radius:99px;transition:width 1.4s var(--ease)}
.cerca li:hover b{color:var(--lima-txt)}
.ub-ruta{display:grid;gap:20px;align-items:center;margin-top:clamp(26px,3.6vw,44px);background:var(--blanco);border-radius:var(--radio);padding:clamp(16px,2.4vw,28px);box-shadow:0 1px 0 var(--linea)}
.ruta-img{margin:0;border-radius:18px;overflow:hidden;max-width:360px;width:100%;justify-self:center}
.ruta-txt h3{font-size:clamp(1.4rem,2.4vw,1.9rem);margin-bottom:10px}
.ruta-txt p{margin:0 0 12px}
.ruta-txt .check{display:grid;gap:8px;margin:0 0 14px}
.ruta-txt .check li{position:relative;padding-left:30px}
.ruta-txt .check li::before{content:"";position:absolute;left:0;top:.3em;width:20px;height:20px;border-radius:50%;background:var(--lima-btn)}
.ruta-txt .check li::after{content:"";position:absolute;left:7px;top:calc(.3em + 4px);width:5px;height:9px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
@media(min-width:900px){
  .ub-grid{grid-template-columns:1.1fr .9fr}
  .mapa{aspect-ratio:auto;min-height:440px}
  .ub-ruta{grid-template-columns:340px 1fr;gap:clamp(24px,3vw,44px)}
}

/* ===== Proceso ===== */
.proc{display:grid;gap:30px}
.proc-fijo{display:none}
.paso{border-top:1px solid rgba(255,255,255,.2);padding:26px 0 30px;display:grid;gap:8px;opacity:.55;transition:opacity .5s}
.paso.act{opacity:1}
.paso small{font-family:Outfit,sans-serif;font-size:0.78rem;letter-spacing:.14em;color:var(--lima-claro)}
.paso h3{font-size:clamp(1.5rem,3vw,2.25rem)}
.paso p{color:rgba(240,242,234,.8);max-width:46ch;margin:0}
@media(min-width:900px){
  .proc{grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}
  .proc-fijo{display:block;position:sticky;top:120px}
  .proc-num{font-size:clamp(7.5rem,17vw,15rem);font-weight:700;letter-spacing:-.07em;line-height:.9;color:var(--sol)}
  .proc-num span{font-size:.28em;color:rgba(255,255,255,.4);letter-spacing:-.03em}
  .paso{padding:60px 0 70px}
}

/* ===== Preguntas ===== */
.faq{max-width:900px;margin-top:10px}
.faq details{border-bottom:1px solid var(--linea)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-size:clamp(1.062rem,2vw,1.375rem);font-weight:600;letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:38px;height:38px;border-radius:50%;background:var(--bosque);color:#fff;display:grid;place-items:center;font-size:1.375rem;transition:transform .35s var(--ease),background .25s}
.faq details[open] summary::after{transform:rotate(135deg);background:var(--lima)}
.faq .resp{padding:0 0 24px;color:var(--gris);max-width:68ch}
.faq .resp p{margin:0}

/* ===== Contacto ===== */
.cont{display:grid;gap:clamp(30px,5vw,70px)}
.form{background:var(--blanco);color:var(--tinta);border-radius:var(--radio);padding:clamp(22px,3.4vw,40px);display:grid;gap:16px;box-shadow:var(--sombra)}
.form label{display:block;font-size:0.8125rem;font-weight:500;margin-bottom:7px;color:var(--bosque)}
.form input,.form select,.form textarea{width:100%;border:1.5px solid #cfd8cf;background:#fbfcfa;border-radius:14px;padding:14px 16px;font-size:1rem}
.form textarea{min-height:100px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--lima);outline:0;box-shadow:0 0 0 4px rgba(94,117,86,.2)}
.form .dos{display:grid;gap:16px}
.form .acepto{display:flex;gap:10px;align-items:flex-start;font-size:0.8125rem;color:var(--gris)}
.form .acepto input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--lima)}
.form .acepto label{margin:0;font-weight:400;color:var(--gris)}
.form .acepto a{color:var(--bosque);font-weight:600}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.estado{font-size:0.875rem;font-weight:500;min-height:1.4em}
.estado.ok{color:#3E7A2C}.estado.mal{color:#b3261e}
@media(min-width:640px){.form .dos{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.cont{grid-template-columns:.9fr 1.1fr;align-items:center}}
.cont-med{display:grid;gap:14px;margin-top:30px}
.cont-med a{display:flex;align-items:center;gap:14px;text-decoration:none;color:#fff;font-weight:500}
.cont-med svg{width:42px;height:42px;padding:10px;border-radius:50%;background:rgba(255,255,255,.12);fill:none;stroke:var(--sol);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.cont-med a:hover svg{background:var(--sol);stroke:var(--bosque)}

/* ===== Pie ===== */
.pie{background:var(--bosque-2);color:#cfdccf;padding:56px 0 110px;font-size:0.875rem}
.pie-g{display:grid;gap:30px}
.pie a{color:#fff;text-decoration:none}
.pie a:hover{text-decoration:underline}
.pie h4{font-family:Outfit,sans-serif;font-size:0.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lima-claro);margin-bottom:12px}
.pie li{margin-bottom:6px}
.pie .legal{border-top:1px solid rgba(255,255,255,.12);margin-top:34px;padding-top:22px;font-size:0.7812rem;opacity:.8}
@media(min-width:760px){.pie{padding-bottom:56px}}

/* ===== WhatsApp flotante y barra móvil ===== */
.wa-f{position:fixed;right:18px;bottom:88px;z-index:90;width:60px;height:60px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 10px 28px -6px rgba(0,0,0,.45);transition:transform .3s var(--ease)}
.wa-f:hover{transform:scale(1.1)}
.wa-f svg{width:32px;height:32px;fill:#fff}
.wa-f::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:onda 2.4s infinite}
@keyframes onda{to{transform:scale(1.55);opacity:0}}
.barra-m{position:fixed;left:0;right:0;bottom:0;z-index:95;display:grid;grid-template-columns:1fr 1fr 1fr;background:rgba(20,29,31,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px;transform:translateY(110%);transition:transform .45s var(--ease)}
.barra-m.ver{transform:none}
.barra-m a{display:flex;flex-direction:column;align-items:center;gap:3px;color:#fff;text-decoration:none;font-size:0.78rem;font-weight:500;padding:6px 4px;border-radius:12px}
.barra-m a.prin{background:var(--sol);color:var(--bosque);font-weight:600}
.barra-m svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.barra-m a.prin svg{fill:none;stroke:var(--bosque)}
@media(max-width:759px){.wa-f{display:none}}  /* en el celular el WhatsApp va en la barra inferior */
@media(min-width:760px){.barra-m{display:none}.wa-f{bottom:26px}}

/* ===== Página legal / 404 ===== */
.legal-pag{padding:150px 0 80px;background:var(--crema)}
.legal-pag h1{font-size:clamp(1.875rem,5vw,3.375rem);margin-bottom:26px}
.legal-pag h2{font-size:1.312rem;margin:34px 0 10px;color:var(--bosque)}
.legal-pag p,.legal-pag li{color:#2f3d36}
.legal-pag ul{list-style:disc;padding-left:22px;margin-bottom:16px}
.legal-pag li{margin-bottom:6px}
.legal-pag a{color:var(--bosque);font-weight:600}
.cab.fijo-solido{background:var(--bosque-2)}
.e404{min-height:100svh;display:grid;place-items:center;text-align:center;background:var(--bosque);color:#fff;padding:30px}
.e404 img{width:120px;margin:0 auto 22px}
.e404 h1{font-size:clamp(4.375rem,16vw,10rem);color:var(--sol);letter-spacing:-.06em}
.e404 p{max-width:34ch;margin:10px auto 26px;opacity:.85}

/* ===== Movimiento reducido ===== */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .rev,.pal>span{opacity:1;transform:none}
  .mancha{display:none}
  .cinta-pista{animation:none}
}
@media print{.cab,.wa-f,.barra-m,.progreso,.menu-m{display:none}}

/* ===== Comodidad de lectura y navegación (pensada también para personas mayores) ===== */
body{font-size:1rem}
.btn{min-height:54px}
.btn-sm{min-height:46px}
p,li{overflow-wrap:break-word}
/* Párrafos justificados */
.lead,.resp p,.paso p,.nota,.legal-pag p,.legal-pag li,.lote-med,.foto-fin span,.pie-g p,.proy-txt p{text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto}
.lead{line-height:1.75}
.hero-sub{text-align:left}
/* Enlace activo del menú */
.nav a[aria-current=true]{background:rgba(255,255,255,.2);box-shadow:inset 0 -3px 0 var(--sol)}
.menu-m a[aria-current=true]{color:var(--sol)}

/* Botón de accesibilidad */
.btn-acc{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.1);color:#fff;border-radius:999px;padding:8px 16px;font-size:.9rem;font-weight:600;cursor:pointer;min-height:46px}
.btn-acc b{font-size:1.15rem;line-height:1;letter-spacing:-.03em}
.btn-acc:hover{background:rgba(255,255,255,.22)}
.panel-acc{position:fixed;z-index:130;right:var(--gut);top:70px;width:min(360px,calc(100vw - 2*var(--gut)));background:var(--blanco);color:var(--tinta);border-radius:22px;padding:20px;box-shadow:0 24px 60px -12px rgba(0,0,0,.55);display:grid;gap:18px}
.panel-acc[hidden]{display:none}
.panel-acc h2{font-size:1.15rem;letter-spacing:-.02em}
.panel-acc p{margin:0 0 8px;font-weight:600;font-size:.95rem}
.acc-fila{display:flex;gap:8px}
.acc-fila button,.acc-op{flex:1;border:2px solid var(--bosque);background:transparent;color:var(--bosque);border-radius:14px;padding:12px 8px;font-weight:600;cursor:pointer;min-height:52px;font-size:1rem}
.acc-fila button[aria-pressed=true],.acc-op[aria-pressed=true]{background:var(--bosque);color:#fff}
.acc-op{width:100%;text-align:left;padding:12px 16px;display:flex;justify-content:space-between;align-items:center}
.acc-op::after{content:"No";font-weight:500;opacity:.8}
.acc-op[aria-pressed=true]::after{content:"Sí";color:var(--sol);opacity:1}
.panel-acc .cerrar-acc{justify-self:end;background:transparent;border:0;color:var(--gris);text-decoration:underline;cursor:pointer;font-size:.95rem;padding:6px}
.t-a1{font-size:1rem!important}.t-a2{font-size:1.2rem!important}.t-a3{font-size:1.4rem!important}
html.tx2{--esc:1.14}
html.tx3{--esc:1.3}

/* Subir */
.volver{position:fixed;left:16px;bottom:24px;z-index:90;width:56px;height:56px;border-radius:50%;border:0;background:var(--bosque);color:var(--sol);cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 26px -6px rgba(0,0,0,.5);opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .3s,transform .3s var(--ease)}
.volver.ver{opacity:1;transform:none;pointer-events:auto}
.volver svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.volver:hover{background:var(--lima-btn);color:#fff}
@media(max-width:759px){.volver{bottom:84px;left:12px;width:50px;height:50px}}

/* Empieza aquí */
.empieza{padding:clamp(40px,6vw,72px) 0 0}
.empieza-g{display:grid;gap:14px;margin-top:22px}
.empieza a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 18px;background:var(--blanco);border-radius:22px;padding:20px 22px;text-decoration:none;box-shadow:0 1px 0 var(--linea);transition:transform .35s var(--ease),box-shadow .35s,background .25s}
.empieza a:hover{transform:translateY(-4px);box-shadow:var(--sombra)}
.empieza .n{width:52px;height:52px;border-radius:50%;background:var(--bosque);color:var(--sol);display:grid;place-items:center;font-weight:700;font-size:1.4rem}
.empieza b{display:block;font-size:1.2rem;letter-spacing:-.02em;line-height:1.2}
.empieza small{display:block;color:var(--gris);font-size:.95rem;line-height:1.35;margin-top:2px}
.empieza .ir{font-size:1.6rem;color:var(--lima-txt);font-weight:700}
.empieza a.wa-card{background:var(--sol)}
.empieza a.wa-card .n{background:var(--bosque)}
.empieza a.wa-card small{color:var(--bosque)}
@media(min-width:900px){.empieza-g{grid-template-columns:repeat(3,1fr)}}

/* Lotes: elegir cómo verlos */
.lotes-barra{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:14px 18px;margin-bottom:26px}
.lotes-barra span{font-size:1rem;color:#fff}
.lotes-barra button{background:var(--sol);color:var(--bosque);border:0;border-radius:999px;padding:12px 22px;font-weight:600;font-size:1rem;cursor:pointer;min-height:48px}
.lotes-barra button:hover{background:#fff}
.lotes-pista:not(.js-lotes) .riel,.lotes-pista:not(.js-lotes) .guia{display:none}

/* Tabla comparativa de lotes */
.cuadro{margin-top:clamp(36px,5vw,60px);background:var(--bosque-3);border-radius:var(--radio);padding:clamp(18px,3vw,34px);border:1px solid rgba(255,255,255,.12)}
.cuadro h3{font-size:clamp(1.4rem,2.4vw,2rem);margin-bottom:6px}
.cuadro table{width:100%;border-collapse:collapse;margin-top:14px;font-size:1.02rem}
.cuadro th{text-align:left;font-weight:500;color:rgba(240,242,234,.85);padding:10px 12px;border-bottom:2px solid rgba(255,255,255,.25);font-size:.95rem}
.cuadro td{padding:16px 12px;border-bottom:1px solid rgba(255,255,255,.14);vertical-align:top}
.cuadro td b{font-weight:600}
.cuadro td small{display:block;color:rgba(240,242,234,.8);font-size:.9rem}
.cuadro .p{font-size:1.25rem;font-weight:700;color:var(--sol);letter-spacing:-.02em}
@media(max-width:999px){
  .cuadro thead{display:none}
  .cuadro tr{display:block;border-bottom:2px solid rgba(255,255,255,.22);padding:10px 0}
  .cuadro td{display:flex;justify-content:space-between;gap:16px;border:0;padding:8px 2px;text-align:right}
  .cuadro td::before{content:attr(data-t);font-weight:500;color:rgba(240,242,234,.8);text-align:left}
}

/* Avisos extra en las secciones que se deslizan */
.gal-pie .gal-ayuda{font-size:.95rem;color:var(--gris);white-space:nowrap}
.proc-ayuda{margin-top:26px;display:inline-flex;align-items:center;gap:10px;font-size:1rem;color:var(--sol);font-weight:500}
.proc-ayuda i{width:12px;height:12px;border-right:2.5px solid var(--sol);border-bottom:2.5px solid var(--sol);transform:rotate(45deg);animation:rebote 1.6s ease-in-out infinite}
@keyframes rebote{50%{transform:translateY(6px) rotate(45deg)}}
.js-lotes .riel-tit{display:none}
.lotes-pista.js-lotes .lotes-escenario::before{content:"";position:absolute;left:0;right:0;top:0;height:70px;background:linear-gradient(var(--bosque),transparent);z-index:2;pointer-events:none}

/* Formulario más cómodo */
.form input,.form select,.form textarea{font-size:1.02rem;padding:16px 16px}
.form label{font-size:.95rem}
.form .acepto label{font-size:.95rem;line-height:1.5}
.form .acepto input{width:26px;height:26px}
.form-llama{display:flex;align-items:center;gap:12px;margin-top:6px}
.tel-grande{display:inline-flex;align-items:center;gap:12px;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700;letter-spacing:-.02em;color:#fff;text-decoration:none;margin-top:18px}
.tel-grande svg{width:42px;height:42px;padding:10px;border-radius:50%;background:var(--sol);stroke:var(--bosque);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tel-grande small{display:block;font-size:.95rem;font-weight:400;opacity:.85;letter-spacing:0}
.cab-tel{display:none}
@media(min-width:1760px){.cab-tel{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;white-space:nowrap}.cab-tel svg{width:20px;height:20px;stroke:var(--sol);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}}

/* Alto contraste */
html.alto{--crema:#fff;--tinta:#000;--gris:#1b1b1b;--lima-txt:#26391A;--linea:rgba(0,0,0,.45)}
html.alto .sec-oscura,html.alto .pie{--gris:#fff}
html.alto .sec-oscura .lead,html.alto .sec-oscura .nota,html.alto .paso p,html.alto .res dt,html.alto .cuadro td small,html.alto .cuadro th,html.alto .lotes-barra span,html.alto .pie,html.alto .pie a{color:#fff}
html.alto .cifra span,html.alto .rasgo small,html.alto .lote-med,html.alto .lote-pl li span,html.alto .cerca .t small,html.alto .empieza small{color:#000}
html.alto .hero::after{background:rgba(0,0,0,.72)}
html.alto .manchas{display:none}
html.alto .dato-h{background:rgba(0,0,0,.6);border-color:#fff}
html.alto .lote,html.alto .rasgo,html.alto .cifra,html.alto .empieza a{box-shadow:0 0 0 2px #000}
html.alto .sec-oscura .lote{box-shadow:0 0 0 2px #fff}

/* Menos movimiento (lo elige la persona; también se activa solo con la opción del sistema) */
html.quieto *,html.quieto *::before,html.quieto *::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
html.quieto .rev{opacity:1;transform:none}
html.quieto .pal>span{transform:none}
html.quieto .mancha{display:none}
html.quieto .js-lotes .lote{clip-path:none}
html.quieto .js-lotes .lote.act{clip-path:none}

@media print{.panel-acc,.volver{display:none}}

@media(max-width:759px){.acc-txt{display:none}.btn-acc{padding:8px 14px}.btn-acc b{font-size:1.25rem}}
@media(min-width:760px) and (max-width:1279px){.cab-in{gap:12px}}
@media(max-width:480px){.marca small{display:none}.marca b{font-size:1.1rem}}
@media(max-width:759px){.cab .pildora,.cab .btn-acc{font-size:16px}html.tx2 .marca span,html.tx3 .marca span{display:none}}

/* Que nada se salga de la pantalla cuando el texto es grande */
.cont>*,.proy-grid>*,.ub-grid>*,.sim>*,.proc>*,.pie-g>*{min-width:0}
.cont-med span,.tel-grande span,.pie a,.lote h3,.rasgo b,.rasgo small{overflow-wrap:anywhere}
.rasgos,.cifras{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:900px){.rasgos{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:759px){html.tx2 .rasgos,html.tx3 .rasgos,html.tx3 .cifras{grid-template-columns:minmax(0,1fr)}}

/* Con letra grande en pantallas angostas, alinear a la izquierda es más fácil de leer que justificar */
@media(max-width:759px){
  html.tx2 .lead,html.tx2 .resp p,html.tx2 .paso p,html.tx2 .nota,html.tx2 .lote-med,html.tx2 .foto-fin span,html.tx2 .pie-g p,
  html.tx3 .lead,html.tx3 .resp p,html.tx3 .paso p,html.tx3 .nota,html.tx3 .lote-med,html.tx3 .foto-fin span,html.tx3 .pie-g p{text-align:left}
}

/* ===== Sección "El proyecto": más compacta y ordenada ===== */
.sec{padding:clamp(52px,7vw,92px) 0}
.sec-proy{padding-top:clamp(40px,5vw,64px)}
.cab-sec{margin-bottom:clamp(26px,3.6vw,44px)}
.tit{font-size:clamp(1.9rem,4.2vw,3.3rem)}
.lead{margin-top:16px}
.ey{margin-bottom:12px}
.proy-top{display:grid;gap:26px;align-items:center}
.proy-txt .tit{max-width:20ch}
.proy-txt .lead{max-width:none}
.proy-foto{margin:0;position:relative;border-radius:var(--radio);overflow:hidden;aspect-ratio:4/3;background:var(--bosque);box-shadow:var(--sombra)}
.proy-foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.proy-foto:hover img{transform:scale(1.04)}
.sec-proy .cifras{margin-top:clamp(26px,3.4vw,40px);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sec-proy .cifra{padding:clamp(16px,2vw,22px) clamp(16px,2vw,24px);border-radius:20px}
.sec-proy .cifra strong{font-size:clamp(1.9rem,3.2vw,2.7rem)}
.sec-proy .cifra span{margin-top:6px;font-size:.95rem;line-height:1.35}
.sec-proy .rasgos{margin-top:12px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.sec-proy .rasgo{flex-direction:row;align-items:center;gap:12px;padding:14px 16px;border-radius:18px}
.sec-proy .rasgo svg{width:30px;height:30px;flex:none}
.sec-proy .rasgo span{display:grid;gap:1px;min-width:0}
.sec-proy .rasgo b{font-size:1rem;line-height:1.2}
.sec-proy .rasgo small{font-size:.9rem;line-height:1.3}
@media(min-width:900px){
  .proy-top{grid-template-columns:1.1fr .9fr;gap:clamp(32px,4vw,56px)}
  .sec-proy .cifras{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sec-proy .rasgos{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:560px){.sec-proy .rasgo{padding:12px 12px;gap:10px}.sec-proy .rasgo svg{width:26px;height:26px}.sec-proy .rasgo b{font-size:.95rem}.sec-proy .rasgo small{font-size:.85rem}}

/* Justificado solo desde 600 px de ancho; en celular angosto deja huecos grandes entre palabras */
@media(max-width:599px){
  .lead,.resp p,.paso p,.nota,.legal-pag p,.legal-pag li,.lote-med,.foto-fin span,.pie-g p{text-align:left;hyphens:manual;-webkit-hyphens:manual}
}

/* Los párrafos ocupan todo el ancho de su columna (sin recortes por "ch") */
.lead,.nota,.faq,.faq .resp,.faq .resp p,.paso p,.lote-med,.cuadro .nota,.res-cuota small{max-width:none}
.hero-sub{max-width:none}

@media(max-width:480px){
  .lote-card{gap:0 10px}
  .lote-card .m2{font-size:1.55rem}
  .lote-card .info b{font-size:.92rem;line-height:1.2}
  .lote-card .info small{font-size:.9rem}
  .lote-card .tic{width:24px;height:24px}
}

/* Encabezado: el logo nunca se encoge ni se monta con el menú */
.marca{flex:none;white-space:nowrap}
.cab-in>*{flex-shrink:0}
.nav{flex:none}
/* con letra grande el menú completo no cabe: se usa el botón "Menú" */
@media(max-width:1699px){
  html.tx2 .nav,html.tx3 .nav{display:none}
  html.tx2 .pildora,html.tx3 .pildora{display:inline-block}
  html.tx2 .menu-m,html.tx3 .menu-m{display:flex}
}
@media(min-width:1440px) and (max-width:1639px){.nav a{padding:8px 10px;font-size:.88rem}}

/* Revisión en todos los tamaños de pantalla */
@media(max-width:340px){.marca span{display:none}.cab-in{gap:10px}.btn-acc{padding:8px 12px}}
.pie-g{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
.pie h4{overflow-wrap:anywhere}
@media(max-width:1279px){
  html.tx2 .cuadro thead,html.tx3 .cuadro thead{display:none}
  html.tx2 .cuadro tr,html.tx3 .cuadro tr{display:block;border-bottom:2px solid rgba(255,255,255,.22);padding:10px 0}
  html.tx2 .cuadro td,html.tx3 .cuadro td{display:flex;justify-content:space-between;gap:16px;border:0;padding:8px 2px;text-align:right}
  html.tx2 .cuadro td::before,html.tx3 .cuadro td::before{content:attr(data-t);font-weight:500;color:rgba(240,242,234,.8);text-align:left}
}

.cifra span,.dato-h span{overflow-wrap:anywhere}
@media(max-width:1099px){
  html.tx2 .marca span,html.tx3 .marca span{display:none}
  html.tx3 .cab-in>.btn{display:none}
}

/* Escenario de lotes: más compacto cuando la pantalla es baja */
@media(max-height:820px){
  .js-lotes .lote{min-height:0}
  .js-lotes .lote-cu{padding:20px 26px;gap:2px}
  .js-lotes .lote h3{font-size:1.7rem}
  .js-lotes .lote-med{display:none}
  .js-lotes .lote-p{font-size:2rem;margin-top:6px}
  .js-lotes .lote-p small{display:none}
  .js-lotes .lote-pl{margin:10px 0 14px;gap:6px;font-size:.95rem}
  .js-lotes .lote-ac .btn{min-height:48px;padding:12px 20px}
}
@media(max-height:700px){.js-lotes .lote-pl li:first-child{display:none}.js-lotes .lote-t{display:none}}
@media(min-width:760px) and (max-width:899px){.guia{right:92px}}

/* Visor: la foto siempre cabe entera entre la barra de arriba y el pie */
.visor-lienzo{display:block;position:relative}
.visor-lienzo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}
/* Menú móvil en pantallas bajas (celular acostado): se puede recorrer */
.menu-m{overflow-y:auto;justify-content:flex-start;padding-top:84px}
@media(max-height:830px){.menu-m a{font-size:1.7rem;padding:2px 0}}
@media(min-height:761px){.menu-m{justify-content:center}}

/* ===== Selector de idioma ===== */
.idioma{position:relative;flex:none}
.idioma summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.1);color:#fff;border-radius:999px;padding:8px 14px;font-size:.9rem;font-weight:600;min-height:46px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.idioma summary::-webkit-details-marker{display:none}
.idioma summary svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}
.idioma summary:hover{background:rgba(255,255,255,.22)}
.idioma[open] summary{background:#fff;color:var(--bosque)}
.idioma-lista{position:absolute;right:0;top:calc(100% + 8px);min-width:176px;background:#fff;border-radius:16px;box-shadow:0 24px 50px -14px rgba(0,0,0,.55);padding:6px;display:grid;gap:2px;z-index:140}
.idioma-lista a{display:block;padding:12px 16px;border-radius:11px;color:var(--tinta);text-decoration:none;font-weight:500;font-size:1rem}
.idioma-lista a:hover{background:var(--crema)}
.idioma-lista a[aria-current=true]{background:var(--bosque);color:#fff}
.idiomas-pie{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:26px 0 0;font-size:.95rem}
.idiomas-pie svg{width:20px;height:20px;stroke:var(--lima-claro);fill:none;stroke-width:1.8;stroke-linecap:round}
.idiomas-pie a{color:#fff}
@media(max-width:340px){.idioma summary svg{display:none}.idioma summary{padding:8px 11px}}

/* Encabezado en celular: con el selector de idioma el nombre junto al logo no cabe, queda solo el escudo */
@media(max-width:480px){.marca span{display:none}.cab-in{gap:8px}.marca{margin-right:auto}}

/* En celular la lista de idiomas se alinea con el borde derecho de la pantalla (nunca se sale) */
@media(max-width:480px){.cab-in{position:relative}.idioma{position:static}.idioma-lista{right:0;left:auto}}

/* Tabla comparativa: en pantallas angostas cada fila es una tarjeta y nada puede ensanchar la página (textos largos en francés o portugués) */
@media(max-width:999px){.cuadro table,.cuadro tbody{display:block;width:100%}.cuadro td{flex-wrap:wrap}.cuadro td small{display:inline;margin-left:6px}}
@media(max-width:1279px){html.tx2 .cuadro table,html.tx3 .cuadro table,html.tx2 .cuadro tbody,html.tx3 .cuadro tbody{display:block;width:100%}}
.cuadro td,.cuadro .p{min-width:0;overflow-wrap:anywhere}

/* Hasta 1100 px el boton de WhatsApp del encabezado sobra (hay boton flotante y barra inferior) y no cabe junto al selector de idioma */
@media(max-width:1099px){.cab-in>.btn{display:none}}

/* Barra inferior del celular: tres columnas iguales; los textos largos nunca la ensanchan */
.barra-m{grid-template-columns:repeat(2,minmax(0,1fr))}
.barra-m a{min-width:0;text-align:center;overflow-wrap:anywhere}

/* El encabezado puede ser más ancho que el cuerpo de la página: con menú, teléfono y selector de idioma necesita ~1480 px */
.caja.cab-in{max-width:1680px}

/* ===== Ajustes finales: ninguna caja deja salir su contenido (celulares de 320 px, letra grande, francés/portugués) ===== */
.hero-datos{grid-template-columns:repeat(2,minmax(0,1fr))}
.dato-h{min-width:0}
.dato-h strong,.dato-h span{overflow-wrap:anywhere}
@media(min-width:760px){.hero-datos{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:359px){.hero-datos{grid-template-columns:minmax(0,1fr)}}
@media(max-width:759px){html.tx2 .hero-datos,html.tx3 .hero-datos{grid-template-columns:minmax(0,1fr)}}
.empieza-g{grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.empieza-g{grid-template-columns:repeat(3,minmax(0,1fr))}}
.empieza a>span{min-width:0;overflow-wrap:anywhere}
.sim-ctrl>*,.res>*,.lote-op>*,.plan-op>*{min-width:0}
.lote-card .info,.plan-card{min-width:0;overflow-wrap:anywhere}
.res-cuota{overflow-wrap:anywhere;font-size:clamp(2.1rem,6vw,4rem)}
html:not([lang=es]) .res-cuota{font-size:clamp(1.9rem,5vw,3.3rem)}
html.tx3 .res-cuota{font-size:clamp(1.6rem,4vw,2.6rem)}
.res dl dd,.res dl dt{overflow-wrap:anywhere}
.proc-ayuda{flex-wrap:wrap;max-width:100%}
.tit{overflow-wrap:anywhere}
/* con letra grande el menú completo nunca cabe: siempre se usa el botón "Menú" */
html.tx2 .nav,html.tx3 .nav{display:none!important}
html.tx2 .pildora,html.tx3 .pildora{display:inline-block!important}
html.tx2 .menu-m,html.tx3 .menu-m{display:flex!important}
html.tx2 .cab-tel,html.tx3 .cab-tel{display:none!important}

.gal-pie-f{flex-wrap:wrap}
.gal-cap,.cerca b,.cerca .km{min-width:0;overflow-wrap:anywhere}
.ub-grid>*,.ub-ruta>*{min-width:0}

/* boton pulsante de registro */
.btn-pulso{position:relative;animation:pulso-btn 1.8s ease-out infinite}
@keyframes pulso-btn{0%{box-shadow:0 0 0 0 rgba(169,191,160,.65)}70%{box-shadow:0 0 0 18px rgba(169,191,160,0)}100%{box-shadow:0 0 0 0 rgba(169,191,160,0)}}
@media(prefers-reduced-motion:reduce){.btn-pulso{animation:none}}
@keyframes pulso-sol{0%{box-shadow:0 0 0 0 rgba(176,141,87,.7)}70%{box-shadow:0 0 0 18px rgba(176,141,87,0)}100%{box-shadow:0 0 0 0 rgba(176,141,87,0)}}
.btn-sol.btn-pulso{animation-name:pulso-sol}

/* ===== Las Palmas: zonas comunes, casa modelo y plano ===== */
.figs{display:grid;gap:18px;margin-top:clamp(22px,3vw,36px)}
.fig{margin:0;position:relative;border-radius:var(--radio);overflow:hidden;background:var(--bosque);box-shadow:var(--sombra)}
.fig img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.fig:hover img{transform:scale(1.03)}
.plano-txt{align-self:center;padding:6px 4px}
.plano-txt h3{font-size:clamp(1.4rem,2.4vw,1.9rem);margin-bottom:10px}
.plano-txt p{margin:0 0 16px}
.marca img{height:auto}
@media(min-width:900px){.figs{grid-template-columns:1fr 1fr}.fig{aspect-ratio:16/10}.fig.plano{aspect-ratio:auto}.fig.plano img{object-fit:contain}}
@media(min-width:900px){.zonas-g{grid-template-columns:repeat(4,1fr)}}
.zonas-g .rasgo{flex-direction:row;align-items:center;gap:14px;padding:16px 18px}
.vid{max-width:960px;margin:0 auto}
/* ===== Las Palmas: toque especial (sol con rayos, polen de luz, arcos, brillo dorado) ===== */
.sol-rayos{position:absolute;z-index:1;pointer-events:none;right:-30vmin;top:-38vmin;width:100vmin;height:100vmin;border-radius:50%;mix-blend-mode:screen;
  background:repeating-conic-gradient(from 0deg,rgba(176,141,87,.28) 0 3.5deg,transparent 3.5deg 15deg);
  -webkit-mask:radial-gradient(circle,#000 6%,transparent 70%);mask:radial-gradient(circle,#000 6%,transparent 70%);animation:giraSol 140s linear infinite}
.sol-rayos::after{content:"";position:absolute;inset:36%;border-radius:50%;background:radial-gradient(circle,rgba(255,232,150,.95),rgba(176,141,87,.5) 42%,transparent 72%);filter:blur(5px)}
@keyframes giraSol{to{transform:rotate(360deg)}}
.polen{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.polen i{position:absolute;bottom:-14px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:radial-gradient(circle,#ffe9a6,rgba(176,141,87,0) 72%);opacity:0;animation:sube var(--d) linear var(--w) infinite}
@keyframes sube{0%{transform:translate3d(0,0,0);opacity:0}10%{opacity:.95}90%{opacity:.6}100%{transform:translate3d(var(--dx),-105vh,0);opacity:0}}
.polen i:nth-child(1){--x:6%;--s:5px;--d:17s;--w:-2s;--dx:30px}
.polen i:nth-child(2){--x:14%;--s:8px;--d:21s;--w:-9s;--dx:-20px}
.polen i:nth-child(3){--x:23%;--s:4px;--d:15s;--w:-5s;--dx:40px}
.polen i:nth-child(4){--x:31%;--s:7px;--d:24s;--w:-14s;--dx:-35px}
.polen i:nth-child(5){--x:39%;--s:5px;--d:18s;--w:-1s;--dx:25px}
.polen i:nth-child(6){--x:47%;--s:9px;--d:26s;--w:-11s;--dx:-15px}
.polen i:nth-child(7){--x:55%;--s:4px;--d:16s;--w:-7s;--dx:35px}
.polen i:nth-child(8){--x:62%;--s:6px;--d:22s;--w:-3s;--dx:-30px}
.polen i:nth-child(9){--x:70%;--s:8px;--d:19s;--w:-12s;--dx:20px}
.polen i:nth-child(10){--x:77%;--s:5px;--d:25s;--w:-6s;--dx:-40px}
.polen i:nth-child(11){--x:84%;--s:7px;--d:17s;--w:-10s;--dx:28px}
.polen i:nth-child(12){--x:91%;--s:4px;--d:23s;--w:-4s;--dx:-18px}
.polen i:nth-child(13){--x:96%;--s:6px;--d:20s;--w:-8s;--dx:22px}
.polen i:nth-child(14){--x:18%;--s:5px;--d:28s;--w:-16s;--dx:-25px}
.quieto .sol-rayos,.quieto .polen i,.quieto .btn-sol::after,.quieto .ey::before{animation:none!important}
.quieto .polen{display:none}
/* luz del sol que sigue al cursor (hero y secciones oscuras) */
.hero::before,.sec-oscura::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(520px circle at var(--mx,78%) var(--my,12%),rgba(176,141,87,.13),transparent 62%)}
.hero::before{z-index:1}
.sec-oscura>*{position:relative;z-index:1}
/* fotos en arco (el arco del logo) y apertura al aparecer */
.proy-foto{border-radius:190px 190px var(--radio) var(--radio);aspect-ratio:5/4}
.fig:not(.plano){border-radius:150px 150px var(--radio) var(--radio)}
@media(min-width:900px){.fig{aspect-ratio:16/11}.fig.plano{aspect-ratio:auto}}
.proy-foto .etq,.fig:not(.plano) .etq{left:50%;transform:translateX(-50%);white-space:nowrap;max-width:calc(100% - 28px);overflow:hidden;text-overflow:ellipsis}
.proy-foto.rev,.fig.rev{clip-path:inset(16% 12% 0 12% round 150px 150px 0 0);transition:clip-path 1.3s var(--ease),opacity .8s,transform .8s}
.proy-foto.rev.on,.fig.rev.on{clip-path:inset(-90px -90px -90px -90px round 0)}
/* sol pequeño en cada título de sección */
.ey::before{content:"";display:inline-block;width:1em;height:1em;margin-right:.7em;vertical-align:-.14em;border-radius:50%;background:radial-gradient(circle,var(--sol) 0 26%,transparent 28%),repeating-conic-gradient(var(--sol) 0 9deg,transparent 9deg 30deg);animation:giraSol 30s linear infinite}
.hero .ey::before,.sec-oscura .ey::before{filter:drop-shadow(0 0 6px rgba(176,141,87,.7))}
/* brillo dorado que cruza los botones principales */
.btn-sol{position:relative;overflow:hidden}
.btn-sol::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.6) 50%,transparent 62%);transform:translateX(-130%);animation:brillo 5.5s ease-in-out infinite;pointer-events:none}
@keyframes brillo{0%,55%{transform:translateX(-130%)}100%{transform:translateX(130%)}}
.sec-oscura .tit em{box-shadow:0 0 34px rgba(176,141,87,.35)}
.progreso{box-shadow:0 0 12px var(--sol)}
.marca img{filter:drop-shadow(0 0 10px rgba(176,141,87,.4))}
.insignia{border:1px solid rgba(176,141,87,.55)}
.lote{transition:box-shadow .5s var(--ease)}
.lote:hover{box-shadow:0 34px 80px -34px rgba(176,141,87,.5)}

/* ===== Las Palmas v3: diseño propio (arcadas, fichas, recibo dorado, camino de 4 arcos) ===== */
/* arcada: borde de arcos entre secciones */
.sec-oscura::after{content:"";position:absolute;left:0;right:0;top:-13px;height:14px;pointer-events:none;z-index:2;background:radial-gradient(circle at 20px 14px,var(--bosque) 0 13.5px,transparent 14px) 0 0/40px 14px repeat-x}
.sec-blanca::after{content:"";position:absolute;left:0;right:0;top:-13px;height:14px;pointer-events:none;z-index:2;background:radial-gradient(circle at 20px 14px,#fff 0 13.5px,transparent 14px) 0 0/40px 14px repeat-x}
/* portada: ventana en arco con la foto real del terreno */
.hero-arco{display:none}
@media(min-width:1100px){
  .hero-arco{display:block;position:absolute;z-index:2;right:max(40px,calc((100vw - 1200px)/2 + 40px));bottom:clamp(50px,10vh,100px);width:min(27vw,350px);aspect-ratio:3/4.3;margin:0;padding:10px;
    border-radius:999px 999px 20px 20px;border:1.5px solid rgba(176,141,87,.75);background:rgba(31,42,44,.35);backdrop-filter:blur(6px);box-shadow:0 40px 90px -30px #000,0 0 70px rgba(176,141,87,.22);animation:flotaArco 9s ease-in-out infinite alternate}
  .hero-arco img{width:100%;height:100%;object-fit:cover;border-radius:999px 999px 12px 12px}
  .hero-arco figcaption{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);white-space:nowrap;background:rgba(31,42,44,.78);color:#fff;font-size:.78rem;padding:6px 14px;border-radius:999px;border:1px solid rgba(176,141,87,.5)}
  .hero h1{font-size:clamp(2.5rem,6.4vw,5.6rem);max-width:11ch}
  .hero-datos{max-width:620px}
}
@keyframes flotaArco{to{transform:translateY(-12px)}}
.quieto .hero-arco{animation:none}
/* cinta: banda oscura con texto dorado */
.cinta{background:var(--bosque-2);color:var(--sol);border-block:1px solid rgba(176,141,87,.35)}
.cinta span::after{content:"✦";width:auto;height:auto;border-radius:0;background:none;color:var(--lima-claro);font-size:.8em}
/* tres pasos: tarjetas en arco */
.empieza-g{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:26px}
.empieza .empieza-g a{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;background:var(--bosque);color:#F0F2EA;border:1px solid rgba(176,141,87,.4);border-radius:90px 90px var(--radio) var(--radio);padding:34px 22px 28px;min-height:0;box-shadow:0 24px 50px -30px rgba(31,42,44,.8);transition:transform .45s var(--ease),box-shadow .45s}
.empieza .empieza-g a:hover{transform:translateY(-6px);box-shadow:0 30px 60px -26px rgba(176,141,87,.5)}
.empieza .empieza-g a .n{width:54px;height:54px;font-size:1.5rem;background:var(--sol);color:var(--bosque);border-radius:50%;display:grid;place-items:center;font-weight:700;box-shadow:0 0 0 6px rgba(176,141,87,.18)}
.empieza .empieza-g a b{color:#fff;font-size:1.12rem;display:block;margin-bottom:4px}
.empieza .empieza-g a small{color:rgba(240,242,234,.72);display:block}
.empieza .empieza-g a .ir{display:none}
.empieza .empieza-g a.wa-card{background:linear-gradient(160deg,#C9A96E,#B08D57);color:var(--bosque)}
.empieza .empieza-g a.wa-card .n{background:var(--bosque);color:var(--sol)}
.empieza .empieza-g a.wa-card b{color:var(--bosque)}.empieza .empieza-g a.wa-card small{color:rgba(31,42,44,.75)}
@media(max-width:800px){.empieza-g{grid-template-columns:1fr}}
/* cifras: ficha técnica tipográfica, sin tarjetas */
.cifras{gap:0;border-block:1px solid var(--linea)}
.cifra,.cifra.sol,.cifra.bos{background:none;color:inherit;box-shadow:none;border-radius:0;border-left:1px solid var(--linea);padding:clamp(22px,3vw,36px) clamp(14px,2vw,28px)}
.cifra:nth-child(odd){border-left:0}
.cifra strong,.cifra.bos strong{background:linear-gradient(180deg,#1F2A2C 25%,var(--lima) 120%);-webkit-background-clip:text;background-clip:text;color:transparent}
.cifra span,.cifra.sol span,.cifra.bos span{color:var(--gris)}
@media(min-width:900px){.cifras{grid-template-columns:repeat(4,1fr)}.cifra:nth-child(odd){border-left:1px solid var(--linea)}.cifra:first-child{border-left:0}}
/* rasgos: lista de especificaciones con anillos dorados */
@media(min-width:900px){.rasgos:not(.zonas-g){grid-template-columns:repeat(2,1fr);column-gap:56px}}
.rasgos:not(.zonas-g){gap:0}
.rasgos:not(.zonas-g) .rasgo{background:none;border-radius:0;border-bottom:1px solid var(--linea);flex-direction:row;align-items:center;gap:16px;padding:16px 4px}
.rasgos:not(.zonas-g) .rasgo:hover{transform:translateX(6px);box-shadow:none}
.rasgo svg{box-sizing:content-box;width:22px;height:22px;padding:9px;border:1.5px solid var(--sol);border-radius:50%;flex:none}
/* zonas comunes: medallones en arco */
.zonas-g{gap:14px;grid-template-columns:repeat(2,1fr)}
@media(min-width:700px){.zonas-g{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.zonas-g{grid-template-columns:repeat(4,1fr)}}
.zonas-g .rasgo{flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:12px;padding:26px 12px 20px;background:rgba(255,255,255,.7);border:1px solid var(--linea);border-radius:90px 90px 14px 14px}
.zonas-g .rasgo svg{width:26px;height:26px;padding:12px;background:var(--bosque);stroke:var(--sol);border:0}
.zonas-g .rasgo:hover{transform:translateY(-5px)}
/* lotes: fichas oscuras con foto en arco y precio dorado */
.sec-oscura .lote{background:linear-gradient(160deg,#2B3A3D,#1F2A2C);color:#F0F2EA;border:1px solid rgba(176,141,87,.38);padding:14px;box-shadow:0 34px 80px -44px #000}
.sec-oscura .lote-img{border-radius:170px 170px 12px 12px;aspect-ratio:16/11;min-height:300px}
.sec-oscura .lote h3{color:#fff}
.sec-oscura .lote-t{color:var(--sol)}
.sec-oscura .lote-med,.sec-oscura .lote-pl li span,.sec-oscura .lote-p small{color:rgba(240,242,234,.7)}
.sec-oscura .lote-p{color:var(--sol)}
.sec-oscura .lote-pl li{border-color:rgba(255,255,255,.2)}
.sec-oscura .lote-pl li b{color:#fff}
.sec-oscura .lote .btn-lima{background:var(--sol);color:var(--bosque)}
.sec-oscura .lote .btn-lima:hover{background:#C9A96E}
.sec-oscura .lote .btn-linea-v{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.5)}
.sec-oscura .lote .btn-linea-v:hover{background:#fff;color:var(--bosque)}
/* simulador: panel oscuro y recibo crema */
.sim{background:#1B292B;border:1px solid rgba(176,141,87,.35)}
.sim-ctrl{color:#F0F2EA}
.sim .paso-t{color:#fff}
.sim .paso-t i{background:var(--sol);color:var(--bosque)}
.sim .lote-card,.sim .plan-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.16)}
.sim .lote-card:hover,.sim .plan-card:hover{border-color:var(--sol)}
.sim .lote-card .m2,.sim .lote-card .info b,.sim .plan-card b{color:#fff}
.sim .lote-card .info small,.sim .plan-card small{color:rgba(240,242,234,.68)}
.sim .lote-card .tic{border-color:rgba(255,255,255,.3)}
.sim .lote-card.sel{background:rgba(176,141,87,.13);border-color:var(--sol);box-shadow:0 0 0 4px rgba(176,141,87,.18)}
.sim .lote-card.sel .tic{background:var(--sol);border-color:var(--sol)}
.sim .lote-card.sel .tic::after{border-color:var(--bosque)}
.sim .plan-card.sel{background:var(--sol);border-color:var(--sol);color:var(--bosque);box-shadow:0 10px 26px -10px rgba(176,141,87,.6)}
.sim .plan-card.sel b,.sim .plan-card.sel small{color:var(--bosque)}
.sim .sim-ctrl .nota,.sim .sim-ctrl label,.sim .campo-r label{color:rgba(240,242,234,.75)}
.sim .res{background:#FAF7F0;color:#1B2224;border-left:2px dashed rgba(31,42,44,.28)}
.sim .res::before{background:rgba(176,141,87,.55);filter:blur(30px)}
.sim .res-cuota{color:#1F2A2C;background:linear-gradient(transparent 82%,rgba(176,141,87,.55) 82%);display:inline-block;align-self:flex-start;padding-right:8px}
.sim .res-frase{background:rgba(176,141,87,.2)}
.sim .barra{background:rgba(31,42,44,.12)}
.sim .barra .b-cuo{background:var(--sol)}
.sim .res dl div{border-bottom:1px dotted rgba(31,42,44,.35)}
.sim .btn-oscuro{background:var(--bosque);color:var(--sol)}
/* proceso: camino de cuatro arcos */
.proc{display:block}
.proc>div:last-child{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:34px}
.proc-ayuda{display:none}
.paso,.paso.act{opacity:1;position:relative;background:rgba(255,255,255,.045);border:1px solid rgba(176,141,87,.3);border-radius:100px 100px var(--radio) var(--radio);padding:76px 22px 30px;text-align:center;justify-items:center;transition:transform .45s var(--ease),border-color .3s}
.paso:hover{transform:translateY(-6px);border-color:var(--sol)}
.paso small{position:absolute;top:20px;left:50%;transform:translateX(-50%);width:44px;height:44px;border-radius:50%;background:var(--sol);color:var(--bosque);display:grid;place-items:center;font-size:.9rem;font-weight:700;letter-spacing:0}
.paso h3{font-size:clamp(1.2rem,1.9vw,1.5rem)}
.paso p{font-size:.95rem;max-width:30ch}
@media(max-width:1000px){.proc>div:last-child{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.proc>div:last-child{grid-template-columns:1fr}}
/* preguntas: dos columnas numeradas */
@media(min-width:900px){.faq{max-width:none;display:grid;grid-template-columns:1fr 1fr;column-gap:56px;align-items:start}}
.faq{counter-reset:q}
.faq details{counter-increment:q}
.faq summary{position:relative;padding-left:54px}
.faq summary::before{content:counter(q,decimal-leading-zero);position:absolute;left:0;top:50%;transform:translateY(-50%);font-family:Outfit,sans-serif;font-size:.72rem;letter-spacing:.08em;color:var(--lima-txt)}
/* contacto: formulario enmarcado en dorado */
.form{border:1px solid rgba(176,141,87,.4);box-shadow:0 0 60px -20px rgba(176,141,87,.35)}

/* ajustes v3 */
.proc-fijo{display:none!important}
.paso p{text-align:center!important}
.hero-datos .dato-h strong{white-space:nowrap}
@media(min-width:1100px){.hero-datos{max-width:700px;grid-template-columns:repeat(4,auto)}}
.sec-oscura .lote-img{aspect-ratio:auto;min-height:340px;height:100%}
@media(max-width:899px){.sec-oscura .lote-img{aspect-ratio:4/3;min-height:0;height:auto}}

/* ===== Las Palmas v4: fondos oliva suaves, arcos abiertos, galería firme ===== */
.sec-oscura{background:linear-gradient(180deg,#1A2527 0%,#1F2A2C 55%,#131C1E 100%)}
.cab.solido{background:rgba(38,44,30,.96)}
.sec-oscura::after{background:radial-gradient(circle at 20px 14px,#1A2527 0 13.5px,transparent 14px) 0 0/40px 14px repeat-x}
.sec-oscura .lote{background:linear-gradient(160deg,#263639,#182427)}
.sim{background:#1B292B}
/* fotos: se ven completas, el arco solo redondea la parte alta */
#zonas .fig{aspect-ratio:auto;align-self:start}
#zonas .figs{align-items:start}
@media(min-width:900px){#casa .fig:not(.plano){aspect-ratio:3/2}}
.fig img,.proy-foto img{object-position:center 40%}
.fig:not(.plano) .etq,.proy-foto .etq{bottom:16px}
/* el pie de foto nunca se monta sobre el contenido: va dentro de la foto, abajo, con fondo */
.fig .etq,.proy-foto .etq{background:rgba(20,29,31,.82)}
/* galería: flechas siempre encima y con área de toque grande */
.gal-nav{z-index:6}
.gal-nav::after{content:"";position:absolute;inset:-10px}

/* v4b: pies de foto fuera de la imagen (nada se monta sobre las fotos) y tabla sin cortes */
.fig,.proy-foto{overflow:visible;background:none;box-shadow:none;margin-bottom:46px}
.fig>img,.proy-foto>img{border-radius:inherit;box-shadow:var(--sombra)}
.fig .etq,.proy-foto .etq,.fig:not(.plano) .etq,.proy-foto .etq{position:absolute;left:0;right:0;top:calc(100% + 12px);bottom:auto;transform:none;background:none;backdrop-filter:none;color:var(--gris);padding:0;font-size:.86rem;white-space:normal;text-align:center;max-width:none;overflow:visible}
.cuadro .p{white-space:nowrap}
@media(max-width:1100px){.cuadro table{font-size:.88rem}.cuadro td,.cuadro th{padding-left:8px;padding-right:8px}}

/* v4c: collage y distribución con esquinas suaves para que no se corte ninguna etiqueta */
#zonas .fig:nth-child(2),#casa .fig:nth-child(2){border-radius:var(--radio)}

/* ===== Las Palmas v5: bento, microinteracciones y auditoría de detalles ===== */
:root{--ease:cubic-bezier(.23,1,.32,1);--ease-io:cubic-bezier(.77,0,.175,1);interpolate-size:allow-keywords;color-scheme:light}
::selection{background:var(--sol);color:var(--bosque)}
html{-webkit-tap-highlight-color:transparent}
button,a,.lote-card,.plan-card,.filtro,.mini{touch-action:manipulation}
h1,h2,h3,.tit{text-wrap:balance}
.lead{text-wrap:pretty}
p,li,.faq .resp{text-wrap:pretty}
.lote-p,.res-cuota,.cuadro td,.lote-pl li b,.res dd,.lote-card .info small,.cerca .t{font-variant-numeric:tabular-nums}
/* bento: mosaico de piezas de distinto tamaño */
.bento{display:grid;gap:14px;margin-top:clamp(30px,4vw,52px);grid-template-columns:repeat(2,minmax(0,1fr))}
.tile{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;min-height:150px;padding:clamp(18px,2.2vw,26px);border-radius:var(--radio);background:#fff;border:1px solid var(--linea);transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s}
.tile svg{width:26px;height:26px;stroke:var(--lima);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:auto}
.tile b{font-size:1rem;line-height:1.2;font-weight:600}
.tile small{font-size:.84rem;line-height:1.4;color:var(--gris)}
.tile strong{display:block;font-size:clamp(2.3rem,4.6vw,3.7rem);letter-spacing:-.045em;line-height:1;color:var(--bosque)}
.tile strong sup{font-size:.42em;vertical-align:top;position:relative;top:.25em;margin-left:2px}
.tile>span:not(.sol-deco){font-size:.9rem;color:var(--gris);line-height:1.35}
.t-sol{grid-column:span 2;min-height:300px;background:linear-gradient(150deg,#27373A,#1F2A2C);border-color:rgba(176,141,87,.4)}
.t-sol strong{font-size:clamp(4.6rem,13vw,9rem);color:var(--sol);text-shadow:0 0 50px rgba(176,141,87,.35)}
.t-sol>span:not(.sol-deco){color:#fff;font-size:1.25rem;font-weight:600}
.t-sol small{color:rgba(240,242,234,.75);font-size:.95rem}
.sol-deco{position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;pointer-events:none;background:repeating-conic-gradient(rgba(176,141,87,.3) 0 4deg,transparent 4deg 15deg);-webkit-mask:radial-gradient(circle,#000 5%,transparent 70%);mask:radial-gradient(circle,#000 5%,transparent 70%);animation:giraSol 90s linear infinite}
.t-n1{background:var(--arena);border-color:transparent}
.t-n2{background:linear-gradient(150deg,#C9A96E,#B08D57);border-color:transparent}
.t-n2 strong,.t-n2>span:not(.sol-deco){color:var(--bosque)}
.t-casa{grid-column:span 2;background:linear-gradient(170deg,#263639,#1F2A2C);border-color:rgba(176,141,87,.35)}
.t-casa svg{stroke:var(--sol);width:38px;height:38px}
.t-casa b{color:#fff;font-size:1.15rem}
.t-casa small{color:rgba(240,242,234,.72)}
.t-r{background:rgba(255,255,255,.72)}
@media(min-width:900px){
  .bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(150px,auto);grid-template-areas:"sol sol n5 n1" "sol sol n2 casa" "pl vi ag casa" "lu do ma es"}
  .t-sol{grid-area:sol}.t-n5{grid-area:n5}.t-n1{grid-area:n1}.t-n2{grid-area:n2}
  .t-casa{grid-area:casa;grid-column:auto;border-radius:100px 100px var(--radio) var(--radio);align-items:center;text-align:center;padding-top:34px}
  .t-casa svg{margin-bottom:auto}
  .t-pl{grid-area:pl}.t-vi{grid-area:vi}.t-ag{grid-area:ag}.t-lu{grid-area:lu}.t-do{grid-area:do}.t-ma{grid-area:ma}.t-es{grid-area:es}
}
@media(hover:hover){.tile:hover{transform:translateY(-4px);box-shadow:0 24px 44px -26px rgba(31,42,44,.5);border-color:var(--sol)}}
.quieto .sol-deco{animation:none}
/* microinteracciones: respuesta inmediata al toque, curvas con arranque rápido, nada de movimiento brusco */
.btn{transition:transform .22s var(--ease),box-shadow .25s var(--ease),background-color .2s,color .2s}
.btn:active,.lote-card:active,.plan-card:active,.filtro:active,.pildora:active,.btn-acc:active{transform:scale(.97);transition-duration:.08s}
.btn svg,.btn .flecha{transition:transform .25s var(--ease)}
@media(hover:hover){.btn:hover svg{transform:translateX(3px)}}
.lote-card,.plan-card,.filtro,.mini,.cerca li{transition:transform .22s var(--ease),border-color .2s,background-color .2s,box-shadow .22s var(--ease)}
.mini{transform-origin:center}
@media(hover:hover){.mini:hover{transform:translateY(-3px) scale(1.03)}}
.cerca li b{transition:color .2s}
.cerca .pista i{transition:width 1.1s var(--ease)}
.faq summary{transition:color .2s}
.faq summary:active{transform:scale(.995)}
.faq details::details-content{block-size:0;overflow:hidden;transition:block-size .35s var(--ease),content-visibility .35s allow-discrete}
.faq details[open]::details-content{block-size:auto}
.faq .resp{padding-bottom:6px}
.nav a{transition:color .2s,opacity .2s}
.gal-nav{transition:transform .2s var(--ease),background-color .2s}
@media(hover:hover){.gal-nav:hover{transform:scale(1.08)}}
.gal-nav:active{transform:scale(.94);transition-duration:.08s}
/* en pantallas táctiles no hay "hover": se evita que un toque deje la tarjeta levantada */
@media(hover:none){.rasgo:hover,.zonas-g .rasgo:hover,.paso:hover,.empieza .empieza-g a:hover,.lote:hover{transform:none;box-shadow:none}}
.volver{transition:opacity .25s var(--ease),transform .25s var(--ease)}

/* v5c: en celular los párrafos van alineados a la izquierda (el justificado deja huecos grandes en líneas cortas) */
@media(max-width:699px){.lead,.resp p,.paso p,.nota,.legal-pag p,.legal-pag li,.lote-med,.pie-g p,.proy-txt p{text-align:left;hyphens:manual;-webkit-hyphens:manual}}

/* v5d: en celular la pieza de cuotas ocupa todo el ancho (sin hueco en el mosaico) */
@media(max-width:899px){.t-n2{grid-column:span 2;min-height:120px}}

/* ===== Las Palmas v6: esmeralda y oro champán, acentos editoriales y luz dorada ===== */
/* títulos: énfasis en cursiva serif (editorial) en lugar de "píldora" */
.tit em,.sec-oscura .tit em{background:none!important;box-shadow:none!important;padding:0!important;border-radius:0;color:#8A6A1F;font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;font-style:italic;font-weight:500;letter-spacing:-.02em}
.sec-oscura .tit em,.cab-sec .tit em{color:#D8BE8C}
.sec-blanca .tit em,.sec:not(.sec-oscura) .tit em{color:#8A6A1F}
.sec-oscura .ey{color:#D8BE8C}
.ey::after{content:"";display:inline-block;width:34px;height:1.5px;margin-left:12px;vertical-align:middle;background:var(--sol)}
/* hero: la ventana en arco con luz dorada recorriendo el marco */
@property --lp-ang{syntax:"<angle>";inherits:false;initial-value:0deg}
@media(min-width:1100px){
  .hero-arco{border:2px solid transparent!important;background:linear-gradient(rgba(20,29,31,.55),rgba(20,29,31,.55)) padding-box,conic-gradient(from var(--lp-ang),rgba(176,141,87,.25) 0 62%,#E6CFA0 82%,rgba(176,141,87,.25) 100%) border-box!important;animation:lpAng 7s linear infinite,flotaArco 9s ease-in-out infinite alternate}
}
@keyframes lpAng{to{--lp-ang:360deg}}
/* cifras y precios con brillo de oro que se desplaza */
.t-sol strong,.sec-oscura .lote-p{background:linear-gradient(90deg,#9C7B45,#E6CFA0 45%,#9C7B45);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;animation:lpOro 9s linear infinite}
.sec-oscura .lote-p small{-webkit-text-fill-color:rgba(240,242,234,.7)}
@keyframes lpOro{to{background-position:220% 0}}
/* grano de película muy suave en las secciones claras (textura editorial) */
.sec:not(.sec-oscura):not(.sec-blanca)::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.sec:not(.sec-oscura)>.caja{position:relative;z-index:1}
/* simulador y fichas: marco de luz dorada muy sutil */
.sim{box-shadow:0 30px 80px -40px rgba(0,0,0,.65),0 0 0 1px rgba(176,141,87,.25),0 0 60px -24px rgba(176,141,87,.3)}
/* botón principal: oro champán con brillo, texto verde profundo */
.btn-sol{background:linear-gradient(180deg,#C9A96E,#B08D57);color:#141D1F}
/* enlaces del menú con subrayado dorado animado */
.nav a{position:relative}
.nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:3px;height:1.5px;background:var(--sol);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a[aria-current=true]::after{transform:scaleX(1)}
@media(hover:hover){.nav a:hover::after{transform:scaleX(1)}}
.quieto .hero-arco,.quieto .t-sol strong,.quieto .lote-p{animation:none!important}
@media(prefers-reduced-motion:reduce){.hero-arco,.t-sol strong,.lote-p{animation:none!important}}

/* v6b: lotes y simulador forman un solo bloque oscuro continuo (sin costura); rayos del sol más lejos del texto */
#lotes{background:linear-gradient(180deg,#1A2527 0%,#131C1E 100%)}
#simulador{background:linear-gradient(180deg,#131C1E 0%,#141D1F 100%)}
#simulador::after{display:none}
.sol-rayos{top:-48vmin;right:-34vmin;opacity:.8}

/* v6c: el texto de la portada nunca pasa por debajo de la ventana en arco (≥1100 px el arco ocupa la derecha) */
@media(min-width:1100px){
  .hero-in>*{max-width:calc(100% - min(27vw,350px) - 70px)}
  .hero .hero-sub{max-width:min(40rem,calc(100vw - min(27vw,350px) - 220px))}
  .hero .hero-datos{max-width:min(700px,calc(100vw - min(27vw,350px) - 200px))}
  .hero .hero-cta{max-width:none}
}

/* ===== Las Palmas v8: mejoras del agente visual + correcciones del supervisor de calidad ===== */
/* ===== Las Palmas v7: propuesta del agente de mejora visual (anexar al FINAL de estilos.css y subir ?v=) ===== */
/* Solo CSS. No cambia textos, precios ni HTML. Cada bloque es independiente: se puede quitar sin afectar a los demás. */

/* 01 · CONTACTO — la nota bajo el botón era casi invisible (texto claro de .sec-oscura dentro de la tarjeta blanca) */
.sec-oscura .form .nota,.form .nota{color:var(--gris);text-align:left;font-size:.9rem;line-height:1.5}

/* 02 · PREGUNTAS — filas desiguales dejaban huecos entre columnas; ahora dos columnas de flujo libre (01-06 | 07-12) */
@media(min-width:900px){
  .faq{display:block;columns:2;column-gap:56px}
  .faq details{break-inside:avoid;-webkit-column-break-inside:avoid}
}
.faq summary{transition:color .2s,padding-left .3s var(--ease)}
@media(hover:hover){.faq summary:hover{color:var(--lima-txt)}.faq summary:hover::after{background:var(--lima)}}
.faq summary:focus-visible{outline-offset:-3px;border-radius:10px}
.faq details[open]{border-bottom-color:var(--sol)}

/* 03 · VIDEO — botón alineado con el marco (estaba pegado a la izquierda bajo un video centrado) y fondo sin negro puro */
.vid{background:var(--bosque-2)}
#video .hero-cta{max-width:960px;margin-left:auto;margin-right:auto;display:flex;justify-content:center}

/* 04 · PÁRRAFOS — el justificado en escritorio abría "ríos" blancos; se alinean a la izquierda (borde irregular elegante).
   Las respuestas de FAQ y el pie también. Se mantienen las sílabas automáticas. */
.lead,.proy-txt p,.pie-g p,.resp p,.lote-med{text-align:left;text-justify:auto}

/* 05 · CASA Y PLANO — el texto del plano flotaba sin ancla: filete dorado a la izquierda, eyebrow y alineación con la foto */
@media(min-width:900px){
  .plano-txt{align-self:start;margin-top:clamp(18px,4vw,54px);padding:4px 0 4px 28px;border-left:2px solid var(--sol);max-width:34rem}
}

/* 06 · TRES PASOS — hilo dorado que une los números (da sensación de recorrido) */
@media(min-width:801px){
  .empieza-g{position:relative}
  .empieza-g::before{content:"";position:absolute;z-index:1;left:12%;right:12%;top:61px;height:0;border-top:1.5px dashed rgba(176,141,87,.7);pointer-events:none}
  .empieza .empieza-g a .n{position:relative;z-index:2}
  .empieza .empieza-g a.wa-card .n{box-shadow:0 0 0 6px rgba(31,42,44,.15)}
}
.empieza .empieza-g a:focus-visible{outline:3px solid var(--sol);outline-offset:4px}

/* 07 · PROCESO — los 4 arcos en escalera ascendente + hilo dorado: ya no son 4 tarjetas idénticas */
@media(min-width:1001px){
  .proc>div:last-child{align-items:start;padding-top:0}
  .paso:nth-child(2){margin-top:26px}.paso:nth-child(3){margin-top:52px}.paso:nth-child(4){margin-top:78px}
  .paso:hover{transform:translateY(-6px)}
  .paso small{box-shadow:0 0 0 6px rgba(176,141,87,.18)}
}
.paso small{font-family:Outfit,sans-serif}
.paso:focus-within{border-color:var(--sol)}

/* 08 · BENTO (El proyecto) — íconos dentro de anillo dorado fino (misma firma que "rasgos"), brillo dorado al pasar el mouse */
.t-r svg{box-sizing:content-box;width:22px;height:22px;padding:9px;border:1.5px solid var(--sol);border-radius:50%}
.t-r{background:linear-gradient(180deg,#fff,#FBF9F4)}
.tile::after{content:"";position:absolute;left:18px;right:18px;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--sol),transparent);opacity:0;transition:opacity .3s}
@media(hover:hover){.tile:hover::after{opacity:1}}
.tile:focus-within{border-color:var(--sol)}

/* 09 · ZONAS COMUNES — ondulación de arcada: las columnas pares bajan 18 px (ritmo de arcos, no cuadrícula rígida) + anillo dorado al pasar */
@media(min-width:1000px){
  .zonas-g .rasgo:nth-child(4n+2),.zonas-g .rasgo:nth-child(4n+4){margin-top:18px}
}
@media(hover:hover){.zonas-g .rasgo:hover{border-color:var(--sol);box-shadow:0 22px 40px -26px rgba(31,42,44,.5)}.zonas-g .rasgo:hover svg{background:var(--sol);stroke:var(--bosque)}}
.zonas-g .rasgo svg{transition:background-color .3s,stroke .3s}

/* 10 · GALERÍA — el título de cada foto sale de la imagen y se lee debajo, en verde oscuro (regla: nada de texto sobre fotos).
   Dentro de la foto quedan solo contador y botón "Ampliar" (con degradado para legibilidad). */
.gal{margin-bottom:76px}
.gal-main{overflow:visible}
.gal-capa{overflow:hidden;border-radius:var(--radio)}
.gal-main::after{border-radius:0 0 var(--radio) var(--radio)}
.gal-tiempo{border-radius:0 0 var(--radio) var(--radio);overflow:hidden}
.gal-pie-f{align-items:center;justify-content:flex-end}
.gal-cap{position:absolute;left:2px;right:2px;top:calc(100% + 16px);bottom:auto;flex:none;color:var(--bosque);font-size:clamp(1.05rem,2vw,1.35rem);text-align:left}
@media(max-width:899px){.gal{margin-bottom:20px}.gal-main{margin-bottom:62px}.gal-cap{font-size:1.05rem}}
.mini:focus-visible{outline:3px solid var(--sol);outline-offset:2px}

/* 11 · SIMULADOR — el resultado respira más: cuota con línea dorada completa, etiqueta "Inicial" alineada y borde de recibo con muescas */
.sim .res{background-image:radial-gradient(circle at 0 14px,#1B292B 0 7px,transparent 7.5px);background-size:14px 28px;background-repeat:repeat-y;background-color:#FAF7F0}
.sim .res>*{position:relative}
.sim .lote-card,.sim .plan-card{transition:transform .25s var(--ease),border-color .2s,background-color .2s,box-shadow .25s}
@media(hover:hover){.sim .lote-card:hover,.sim .plan-card:hover{transform:translateY(-2px)}}
.sim .lote-card:focus-visible,.sim .plan-card:focus-visible{outline:3px solid var(--sol);outline-offset:3px}

/* 12 · TRANSICIONES — línea dorada fina entre secciones claras consecutivas y ritmo vertical más parejo */
.sec{padding:clamp(68px,8.5vw,112px) 0}
.sec:not(.sec-oscura):not(.sec-blanca)+.sec-blanca,.sec-blanca+.sec:not(.sec-oscura){border-top:1px solid rgba(176,141,87,.35)}
.cab-sec{margin-bottom:clamp(34px,4.4vw,56px)}
.ey{margin-bottom:16px}
.tit{line-height:1.04}

/* 13 · PIE — párrafo a la izquierda, enlaces con subrayado dorado, filete superior dorado */
.pie{border-top:1px solid rgba(176,141,87,.35)}
.pie a{text-underline-offset:4px;text-decoration-thickness:1.5px}
.pie a:hover{text-decoration-color:var(--sol)}
.pie li a{display:inline-block;padding:3px 0}

/* 14 · TIPOGRAFÍA — cifras y precios con tipografía tabular/lining y cursiva editorial más fina */
.tile strong,.cerca .t,.hero-datos strong,.res-cuota{font-variant-numeric:lining-nums tabular-nums}
.tit em{font-feature-settings:"liga","dlig";padding-right:.04em!important}

/* 15 · HERO — la cinta de abajo se funde con la portada (sin corte seco) y las tarjetas de datos ganan un filete dorado */
.dato-h{border-top:2px solid rgba(176,141,87,.6)}

/* Movimiento reducido: ninguna de estas mejoras anima nada, solo transiciones cortas que ya respetan el ajuste global */
@media(prefers-reduced-motion:reduce){.faq summary,.sim .lote-card,.sim .plan-card,.zonas-g .rasgo svg,.tile::after{transition:none!important}}

/* QA F2: el enlace vertical "DESCUBRE" no pisa las tarjetas de datos en pantallas medianas */
@media(max-width:1099px){.baja{display:none}}
/* QA F6: puntos de "uno a uno" con área de toque grande */
.punto{position:relative}
.punto::after{content:"";position:absolute;inset:-10px}
/* botón de contacto en el encabezado (escritorio) */
.cab-cta{white-space:nowrap}
@media(max-width:999px){.cab .cab-cta{display:none}}

/* ===== Las Palmas v9: Quiet Luxury editorial (líneas de 1px, fotos limpias, numeración técnica, sin ornamentos) ===== */
:root{--ease:cubic-bezier(.16,1,.3,1);--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-editorial:cubic-bezier(.22,.8,.2,1);--radio:8px;--radio-s:4px;
  --sombra:0 1px 0 rgba(31,42,44,.05),0 28px 60px -28px rgba(20,29,31,.3),0 10px 24px -14px rgba(20,29,31,.14)}
/* fuera adornos: arcada, polen, rayos, soles de títulos */
.sol-rayos,.polen,.sol-deco{display:none!important}
.sec-oscura::after,.sec-blanca::after,#simulador::after,.ey::before{display:none!important}
/* entradas escalonadas con curva expo */
.rev{transform:translateY(28px);transition:opacity .9s var(--ease-out-expo),transform .9s var(--ease-out-expo);transition-delay:var(--d,0s)}
.rev.on{transform:none}
/* encabezado de cristal calibrado */
.cab.solido{background:rgba(20,29,31,.9);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);border-bottom:1px solid rgba(255,255,255,.12);box-shadow:none}
/* botones: esquinas rectas, presión inmediata */
.btn,.pildora,.filtro{border-radius:4px}
.lote-card,.plan-card{border-radius:8px}
/* portada: la ventana en arco es la ÚNICA firma curva, quieta y con marco fino */
@media(min-width:1100px){.hero-arco{animation:none!important;border:1px solid rgba(176,141,87,.7)!important;background:rgba(20,29,31,.4)!important;border-radius:999px 999px 8px 8px!important}}
.hero h1,.tit{letter-spacing:-.035em;line-height:1.06}
/* fotos limpias: rectángulos de 8px, zoom lento dentro del marco, pie técnico con línea fina */
.proy-foto,.fig{overflow:visible!important;margin-bottom:0!important;box-shadow:none!important;background:none!important;clip-path:none!important;aspect-ratio:auto!important;border-radius:0!important}
.proy-foto.rev,.fig.rev{clip-path:none!important}
.fig-m{overflow:hidden;border-radius:var(--radio);box-shadow:var(--sombra);background:var(--bosque-2)}
.fig-m img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0!important;box-shadow:none!important;transition:transform 1.2s var(--ease-out-expo)}
.proy-foto .fig-m{aspect-ratio:5/4}
#casa .fig:not(.plano) .fig-m{aspect-ratio:3/2}
#zonas .fig-m img,.fig.plano .fig-m img{height:auto}
.fig.plano .fig-m{background:#26353A}
@media(hover:hover){.fig:hover .fig-m img,.proy-foto:hover .fig-m img{transform:scale(1.035)}}
.proy-foto .etq,.fig .etq,.fig:not(.plano) .etq{position:static!important;display:block;margin-top:14px;padding:12px 0 0;border-top:1px solid var(--linea);background:none!important;backdrop-filter:none;color:var(--gris);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;text-align:left;font-weight:500;white-space:normal;max-width:none;transform:none}
.figs{row-gap:34px}
.sec-oscura .lote-img{border-radius:var(--radio)!important;overflow:hidden}
.sec-oscura .lote-img img{transition:transform 1.2s var(--ease-out-expo)}
@media(hover:hover){.sec-oscura .lote:hover .lote-img img{transform:scale(1.035)}}
/* tres pasos: lista editorial con filete de 1px y numeración técnica */
.empieza-g::before{display:none!important}
.empieza-g{grid-template-columns:repeat(3,1fr);gap:0 44px;margin-top:30px}
.empieza .empieza-g a,.empieza .empieza-g a.wa-card{display:grid;grid-template-columns:auto 1fr;align-items:start;text-align:left;gap:6px 18px;background:none;color:var(--tinta);border:0;border-top:1px solid rgba(31,42,44,.55);border-radius:0;box-shadow:none;padding:22px 0 10px;min-height:0;transform:none}
.empieza .empieza-g a .n,.empieza .empieza-g a.wa-card .n{width:auto;height:auto;display:block;background:none!important;box-shadow:none;border-radius:0;color:var(--lima-txt)!important;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:400;letter-spacing:.14em;padding-top:5px}
.empieza .empieza-g a .n::before{content:"("}.empieza .empieza-g a .n::after{content:")"}
.empieza .empieza-g a b,.empieza .empieza-g a.wa-card b{color:var(--tinta);font-size:1.15rem}
.empieza .empieza-g a small,.empieza .empieza-g a.wa-card small{color:var(--gris)}
.empieza .empieza-g a.wa-card b{color:var(--lima-txt)}
.empieza .empieza-g a.wa-card b::after{content:"  →"}
@media(hover:hover){.empieza .empieza-g a:hover,.empieza .empieza-g a.wa-card:hover{transform:none;box-shadow:none;border-top-color:var(--sol)}}
@media(max-width:800px){.empieza-g{grid-template-columns:1fr;gap:6px}}
/* proceso: línea de tiempo con punto dorado y numeración técnica */
.proc>div:last-child{gap:0 36px;margin-top:40px}
.paso,.paso.act{position:relative;background:none!important;border:0!important;border-top:1px solid rgba(255,255,255,.3)!important;border-radius:0!important;padding:30px 0 0!important;text-align:left!important;justify-items:start;margin-top:0!important;transform:none!important;box-shadow:none}
.paso::before{content:"";position:absolute;top:-4px;left:0;width:7px;height:7px;border-radius:50%;background:var(--sol)}
.paso small{position:static!important;transform:none!important;width:auto!important;height:auto!important;background:none!important;color:var(--sol)!important;box-shadow:none!important;display:block!important;border-radius:0;font-size:.78rem;letter-spacing:.16em;margin-bottom:12px}
.paso h3{font-size:clamp(1.25rem,2vw,1.6rem)}
.paso p{text-align:left!important;max-width:30ch}
.paso:hover{transform:none!important}
/* zonas comunes: lista editorial numerada en 2–3 columnas */
.zonas-g{counter-reset:z;grid-template-columns:1fr!important;gap:0 56px!important}
@media(min-width:760px){.zonas-g{grid-template-columns:repeat(2,1fr)!important}}
@media(min-width:1100px){.zonas-g{grid-template-columns:repeat(3,1fr)!important}}
.zonas-g .rasgo,.zonas-g .rasgo:nth-child(n){flex-direction:row;align-items:center;justify-content:flex-start;text-align:left;gap:14px;background:none;border:0;border-bottom:1px solid var(--linea);border-radius:0!important;padding:16px 0;margin-top:0!important;box-shadow:none;counter-increment:z}
.zonas-g .rasgo::before{content:counter(z,decimal-leading-zero);font-family:Outfit,sans-serif;font-size:.7rem;letter-spacing:.1em;color:var(--lima-txt);min-width:2.2ch}
.zonas-g .rasgo svg{width:22px;height:22px;padding:0;background:none!important;border:0;stroke:var(--lima-txt)!important}
@media(hover:hover){.zonas-g .rasgo:hover{transform:none;box-shadow:none;border-bottom-color:var(--sol)}.zonas-g .rasgo:hover svg{background:none!important;stroke:var(--bosque)!important}}
/* bento sobrio */
.t-casa{border-radius:var(--radio)!important;align-items:flex-start!important;text-align:left!important}
.tile{box-shadow:none}
@media(hover:hover){.tile:hover{box-shadow:0 24px 50px -28px rgba(20,29,31,.35)}}
/* robustez móvil: nada desborda, objetivos táctiles de 48px */
.tile,.lote-pl li,.cuadro td,.res dl div{min-width:0}
.tile b,.tile small,.lote-pl li span{overflow-wrap:anywhere}
@media(max-width:759px){.btn{min-height:48px}.filtro{min-height:44px}.pie li a{padding:10px 0}}

/* ===== Las Palmas v10: residencial claro y fotográfico (una tipografía, una acento, aire y fotos grandes) ===== */
/* una sola familia tipográfica: Outfit (se retira Outfit y la cursiva serif) */
.ey,.paso small,.empieza .empieza-g a .n,.zonas-g .rasgo::before,.lote-t,.faq summary::before,.marca small,.menu-m a small,.riel-num{font-family:Outfit,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif!important}
.ey{font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--lima-txt)}
.tit em,.sec-oscura .tit em,.cab-sec .tit em,.sec .tit em{font-family:inherit!important;font-style:normal!important;font-weight:inherit!important;letter-spacing:inherit!important;color:var(--lima-em)!important;background:none!important}
.sec-oscura .tit em{color:#D8BE8C!important}
.sec-oscura .ey{color:#D8BE8C}
.sec-piedra{background:#EBE3D3;color:var(--tinta)}
.sec:not(.sec-oscura):not(.sec-blanca)::before{display:none!important}
/* portada limpia: foto, titular, dos botones y una barra clara con los 4 datos */
.manchas{display:none}
.hero-in>*{max-width:none!important}
.hero h1{font-size:clamp(2.4rem,5.4vw,4.8rem);max-width:14ch!important}
.hero .hero-sub{max-width:40rem!important}
.hero .hero-datos{display:grid;grid-template-columns:repeat(2,1fr);gap:0;max-width:none!important;margin-top:clamp(26px,5vh,52px);background:rgba(250,248,245,.97);border-radius:6px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.55)}
.hero .hero-datos .dato-h{background:none;border:0;border-top:1px solid var(--linea);border-left:1px solid var(--linea);backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0;padding:16px 20px;color:var(--tinta)}
.hero .hero-datos .dato-h:nth-child(-n+2){border-top:0}
.hero .hero-datos .dato-h:nth-child(odd){border-left:0}
.hero .hero-datos .dato-h strong{color:var(--bosque);white-space:nowrap}
.hero .hero-datos .dato-h span{color:var(--gris)}
@media(min-width:800px){
  .hero .hero-datos{grid-template-columns:repeat(4,1fr);max-width:880px!important}
  .hero .hero-datos .dato-h,.hero .hero-datos .dato-h:nth-child(odd){border-top:0;border-left:1px solid var(--linea)}
  .hero .hero-datos .dato-h:first-child{border-left:0}
}
.baja{display:none}
.cinta{background:var(--bosque);border-block:0}
/* lotes y simulador en claro */
#lotes .cab-sec,#simulador .cab-sec{color:var(--tinta)}
#lotes .lead,#simulador .lead{color:var(--gris)}
.lotes-barra{background:#fff;border:1px solid var(--linea);color:var(--tinta);border-radius:6px}
.lotes-barra button{background:var(--bosque);color:#fff;border-radius:4px}
.lotes-barra button:hover{background:var(--lima-btn)}
.lote{background:#fff;border:1px solid var(--linea);box-shadow:none;color:var(--tinta)}
.lote-img{border-radius:0}
.lote-p{color:var(--bosque);background:none;-webkit-text-fill-color:currentColor}
.cuadro{background:#fff;border:1px solid var(--linea);color:var(--tinta)}
.cuadro th{color:var(--gris);border-bottom:1px solid rgba(31,42,44,.4)}
.cuadro td{border-bottom:1px solid var(--linea)}
.cuadro td small{color:var(--gris)}
.cuadro .p{color:var(--lima-txt)}
#lotes .riel-num{color:var(--gris)}#lotes .riel-num b{color:var(--lima-txt)}
#lotes .punto{border-color:rgba(31,42,44,.45)}#lotes .punto.act{background:var(--bosque);border-color:var(--bosque)}
#lotes .guia{background:rgba(255,255,255,.92);border-color:var(--linea);color:var(--tinta)}
#lotes .guia-txt .t-inicio b{color:var(--lima-txt)}
.sim{background:#fff;border:1px solid var(--linea);box-shadow:var(--sombra)}
.sim-ctrl{color:var(--tinta)}
.sim .paso-t{color:var(--bosque)}
.sim .paso-t i{background:var(--bosque);color:#fff}
.sim .lote-card,.sim .plan-card{background:#fff;border-color:var(--linea)}
.sim .lote-card:hover,.sim .plan-card:hover{border-color:var(--lima-btn)}
.sim .lote-card .m2,.sim .lote-card .info b,.sim .plan-card b{color:var(--tinta)}
.sim .lote-card .info small,.sim .plan-card small{color:var(--gris)}
.sim .lote-card .tic{border-color:rgba(31,42,44,.3)}
.sim .lote-card.sel{background:#EEF3EF;border-color:var(--lima-btn);box-shadow:0 0 0 3px rgba(94,117,86,.16)}
.sim .lote-card.sel .tic{background:var(--lima-btn);border-color:var(--lima-btn)}
.sim .lote-card.sel .tic::after{border-color:#fff}
.sim .plan-card.sel{background:var(--bosque);border-color:var(--bosque);color:#fff;box-shadow:none}
.sim .plan-card.sel b{color:#fff}.sim .plan-card.sel small{color:#D8BE8C}
.sim .sim-ctrl .nota,.sim .sim-ctrl label,.sim .campo-r label{color:var(--gris)}
.sim .res{background:#EBE3D3;background-image:none;border-left:1px solid var(--linea)}
.sim .res::before{display:none}
.sim .btn-oscuro{background:var(--bosque);color:#fff}
/* botones: verde profundo como acción principal, oro solo como acento en portada y encabezado */
.btn-lima{background:var(--bosque);color:#fff}
.btn-lima:hover{background:var(--lima-btn)}
/* galería y mosaico en tonos claros */
.t-n2{background:#B08D57}
.sec-blanca{background:#fff}

/* ===== Las Palmas v11: lenguaje de plano topográfico (cuadrícula visible, cotas, coordenadas, contraste de pesos) ===== */
:root{--papel:#F4EFE4;--trazo:rgba(31,42,44,.11)}
body{background:var(--papel)}
/* cuadrícula de 4 columnas visible en secciones claras, como un plano */
.sec:not(.sec-oscura):not(.sec-blanca)>.caja,.sec-blanca>.caja,.empieza>.caja{background-image:linear-gradient(90deg,var(--trazo) 1px,transparent 1px);background-size:25% 100%;background-position:var(--gut) 0;background-repeat:repeat-x;background-origin:content-box;background-clip:content-box}
.sec-piedra{background:#EBE3D3}
.sec-blanca{background:#fff}
/* titulares: contraste de pesos (400 fino vs 700 en el énfasis), escala fluida grande */
.tit{font-size:clamp(2.5rem,6vw,5.4rem);font-weight:400;letter-spacing:-.045em;line-height:1}
.tit em,.sec-oscura .tit em,.cab-sec .tit em,.sec .tit em{font-weight:700!important}
.hero h1{font-weight:400;font-size:clamp(2.6rem,6.2vw,5.8rem);letter-spacing:-.05em;line-height:.98}
.hero h1 .rota-caja{font-weight:700}
.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);max-width:46rem}
/* etiqueta técnica con cruz de registro */
.ey::before{content:"+";display:inline-block!important;width:auto;height:auto;margin-right:12px;font-weight:300;font-size:1.3em;line-height:0;vertical-align:-.1em;color:var(--sol);background:none;animation:none;filter:none}
.ey::after{width:56px;height:1px}
/* portada: coordenadas reales a lo largo del borde, como en un plano */
.coord{position:absolute;right:clamp(14px,2.6vw,40px);top:50%;z-index:3;writing-mode:vertical-rl;transform:rotate(180deg) translateY(50%);font-size:.72rem;letter-spacing:.22em;color:rgba(255,255,255,.8);font-variant-numeric:tabular-nums;pointer-events:none}
.coord::before{content:"";display:inline-block;width:1px;height:46px;background:rgba(255,255,255,.55);margin-bottom:14px}
@media(max-width:899px){.coord{display:none}}
.hero .hero-datos{border-radius:0;background:rgba(246,243,236,.98)}
.hero .hero-datos .dato-h strong{font-weight:600;letter-spacing:-.03em}
/* ficha técnica: el mosaico se vuelve rejilla de líneas compartidas (sin tarjetas redondeadas) */
.bento{gap:0;border-top:1px solid var(--bosque);border-left:1px solid var(--trazo)}
.tile,.tile.t-r,.t-n1,.t-n2{border-radius:0!important;box-shadow:none!important;background:transparent;border:0;border-right:1px solid var(--trazo);border-bottom:1px solid var(--trazo)}
.t-sol{background:var(--bosque);border-right:1px solid var(--bosque)}
.t-casa{background:var(--bosque);border-right:1px solid var(--bosque)}
.t-n2{background:#B08D57}
.t-n1{background:#E7DCC8}
@media(hover:hover){.tile:hover{transform:none;background:rgba(255,255,255,.7);border-color:var(--trazo)}.t-sol:hover,.t-casa:hover{background:var(--bosque)}.t-n2:hover{background:#B08D57}.t-n1:hover{background:#E7DCC8}}
.tile strong{font-weight:400;letter-spacing:-.05em}
.t-sol strong{font-weight:400;font-size:clamp(5rem,14vw,10rem)}
/* "El proyecto": la foto se queda fija mientras se lee el texto */
@media(min-width:900px){.proy-top{align-items:start}.proy-foto{position:sticky;top:110px}}
/* cota dibujada del lote con su proporción real (20 × 25 m, 20 × 50 m) */
.dim{position:relative;height:96px;aspect-ratio:var(--r);margin:22px 0 30px 34px;border:1px solid var(--bosque);background:repeating-linear-gradient(0deg,transparent 0 11px,rgba(31,42,44,.06) 11px 12px),repeating-linear-gradient(90deg,transparent 0 11px,rgba(31,42,44,.06) 11px 12px)}
.dim::before{content:attr(data-a);position:absolute;left:0;right:0;top:-20px;text-align:center;font-size:.72rem;letter-spacing:.08em;color:var(--gris);border-top:0;font-variant-numeric:tabular-nums}
.dim::after{content:attr(data-b);position:absolute;top:0;bottom:0;left:-34px;display:flex;align-items:center;font-size:.72rem;letter-spacing:.08em;color:var(--gris);writing-mode:vertical-rl;transform:rotate(180deg);font-variant-numeric:tabular-nums}
@media(min-width:900px){.lote{grid-template-columns:1.1fr 1fr}.lote-img{min-height:100%}}
.lote{border-radius:0;border:1px solid var(--bosque);background:#fff}
.lote-img{border-radius:0!important}
.lote-t{letter-spacing:.16em}
.lote h3{font-weight:500;letter-spacing:-.04em}
.lote-p{font-weight:600;letter-spacing:-.05em}
.lote-ac .btn-lima{border-radius:0}
.sec-oscura .lote-img,.fig-m,.proy-foto .fig-m{border-radius:0!important}
.fig-m{box-shadow:none}
/* botones y controles rectos */
.btn,.pildora,.filtro,.lotes-barra button,.lote-ac .btn{border-radius:0}
.sim,.cuadro,.lotes-barra,.lote-card,.plan-card,.sim .res-frase{border-radius:0}
.sim{border:1px solid var(--bosque);box-shadow:none}
.cuadro{border:1px solid var(--bosque);box-shadow:none}
.empieza .empieza-g a,.empieza .empieza-g a.wa-card{border-top:1px solid var(--bosque)}
/* encabezado: filete, sin cápsulas */
.cab.solido{border-bottom:1px solid rgba(255,255,255,.14)}
.insignia{border-radius:0}
.cinta{border-block:1px solid rgba(255,255,255,.14)}
/* FAQ y proceso con la misma regla de 1px */
.faq details{border-bottom:1px solid var(--trazo)}
.faq details:first-child{border-top:1px solid var(--bosque)}

/* v11b: lotes y simulador en papel claro (anula el fondo oscuro por id de versiones anteriores) y cota con su tamaño real */
#lotes,#simulador{background:#EBE3D3!important;color:var(--tinta)}
#lotes::before,#simulador::before{display:none!important}
.lotes-barra,.lotes-barra span{color:var(--tinta)}
.lotes-barra{background:#fff;border:1px solid var(--bosque)}
.dim{align-self:flex-start;width:auto}
#lotes .cab-sec .tit,#simulador .cab-sec .tit{color:var(--tinta)}
#lotes .cab-sec .lead,#simulador .cab-sec .lead{color:var(--gris)}

/* v11c: etiquetas de cota sin cortes */
.dim::before{white-space:nowrap;left:50%;right:auto;transform:translateX(-50%);width:max-content}

/* ===== Las Palmas v12: formas redondeadas modernas, iconos en cápsulas y módulos de respaldo (confianza y seguridad) ===== */
:root{--radio:20px;--radio-s:12px;--sombra:0 1px 0 rgba(31,42,44,.04),0 30px 60px -32px rgba(20,29,31,.28),0 12px 28px -16px rgba(20,29,31,.12);--chip:#EFE7D6}
.btn,.pildora,.filtro,.lotes-barra button,.lote-ac .btn,.btn-acc{border-radius:14px}
.insignia{border-radius:999px}
.lotes-barra,.lote-card,.plan-card,.sim .res-frase{border-radius:16px}
.sim,.cuadro,.lote,.form{border-radius:24px}
.lote,.sim,.cuadro{border:1px solid var(--trazo);box-shadow:var(--sombra)}
.lote,.sim,.cuadro{overflow:hidden}
.fig-m,.proy-foto .fig-m,.sec-oscura .lote-img{border-radius:22px!important}
.fig-m{box-shadow:var(--sombra)}
.hero .hero-datos{border-radius:20px}
.hero .hero-datos .dato-h:first-child{border-left:0}
.dim{border-radius:6px}
/* mosaico: piezas separadas y redondeadas, iconos en cápsula */
.bento{gap:14px;border:0}
.tile,.tile.t-r,.t-n1,.t-n2,.t-sol,.t-casa{border-radius:22px!important;border:1px solid var(--trazo)!important;box-shadow:none!important}
.t-sol,.t-casa{border-color:rgba(176,141,87,.35)!important}
.t-casa{align-items:flex-start!important;text-align:left!important;padding-top:clamp(18px,2.2vw,26px)!important}
.t-r{background:#fff}
.t-r svg{box-sizing:content-box;width:22px;height:22px;padding:11px;border:0;border-radius:15px;background:var(--chip);stroke:var(--lima-txt)}
.t-casa svg{box-sizing:content-box;width:26px;height:26px;padding:11px;border-radius:15px;background:rgba(176,141,87,.18);stroke:var(--sol)}
@media(hover:hover){.tile:hover,.tile.t-r:hover{transform:translateY(-3px);background:#fff;box-shadow:0 26px 50px -30px rgba(20,29,31,.4)!important;border-color:rgba(176,141,87,.7)!important}.t-sol:hover,.t-casa:hover{background:var(--bosque)}.t-n2:hover{background:#B08D57}.t-n1:hover{background:#E7DCC8}}
/* tres pasos: tarjetas suaves con número en cápsula */
.empieza-g{gap:16px}
.empieza .empieza-g a,.empieza .empieza-g a.wa-card{background:#fff;border:1px solid var(--trazo);border-radius:20px;padding:22px 24px;box-shadow:0 18px 40px -30px rgba(20,29,31,.4);align-items:center}
.empieza .empieza-g a .n::before,.empieza .empieza-g a .n::after{content:none}
.empieza .empieza-g a .n,.empieza .empieza-g a.wa-card .n{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--chip)!important;color:var(--lima-txt)!important;font-weight:700;font-size:1.05rem;letter-spacing:0;padding:0}
.empieza .empieza-g a.wa-card{background:var(--bosque);border-color:var(--bosque)}
.empieza .empieza-g a.wa-card b{color:#fff}.empieza .empieza-g a.wa-card small{color:rgba(255,255,255,.78)}
.empieza .empieza-g a.wa-card .n{background:#B08D57!important;color:var(--bosque)!important}
@media(hover:hover){.empieza .empieza-g a:hover,.empieza .empieza-g a.wa-card:hover{transform:translateY(-3px);border-color:rgba(176,141,87,.7)}}
/* zonas comunes: fichas redondeadas con icono en cápsula */
.zonas-g{gap:14px!important}
.zonas-g .rasgo,.zonas-g .rasgo:nth-child(n){background:#fff;border:1px solid var(--trazo);border-radius:18px!important;padding:14px 18px}
.zonas-g .rasgo::before{display:none}
.zonas-g .rasgo svg{box-sizing:content-box;width:20px;height:20px;padding:11px;border-radius:14px;background:var(--chip)!important;stroke:var(--lima-txt)!important}
@media(hover:hover){.zonas-g .rasgo:hover{transform:translateY(-3px);box-shadow:0 22px 40px -28px rgba(20,29,31,.4);border-color:rgba(176,141,87,.7)}.zonas-g .rasgo:hover svg{background:var(--chip)!important;stroke:var(--lima-txt)!important}}
/* proceso: tarjetas redondeadas sobre la línea de tiempo */
.paso,.paso.act{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.14)!important;border-top:1px solid rgba(255,255,255,.14)!important;border-radius:20px!important;padding:26px 24px!important}
.paso::before{display:none}
.paso small{display:grid!important;place-items:center;width:40px!important;height:40px!important;border-radius:13px!important;background:#B08D57!important;color:var(--bosque)!important;font-weight:700;letter-spacing:0;font-size:.9rem}
@media(min-width:1001px){.proc>div:last-child{gap:16px}}
/* preguntas: tarjetas suaves */
.faq details{background:#fff;border:1px solid var(--trazo);border-radius:18px;padding:0 22px;margin-bottom:12px;break-inside:avoid}
.faq details:first-child{border-top:1px solid var(--trazo)}
.faq details[open]{border-color:rgba(176,141,87,.8)}
/* franja de respaldo: 4 garantías con icono */
.confianza{background:#fff;border-bottom:1px solid var(--trazo)}
.confianza-g{display:grid;grid-template-columns:repeat(2,1fr)}
.conf{display:flex;align-items:center;gap:14px;padding:20px 18px;border-left:1px solid var(--trazo);min-width:0}
.conf:nth-child(odd){border-left:0}
.conf:nth-child(n+3){border-top:1px solid var(--trazo)}
.conf svg{flex:none;box-sizing:content-box;width:24px;height:24px;padding:12px;border-radius:16px;background:var(--chip);stroke:var(--lima-txt);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.conf b{display:block;font-size:.98rem;line-height:1.2;font-weight:600}
.conf small{display:block;color:var(--gris);font-size:.84rem;line-height:1.35}
@media(min-width:900px){.confianza-g{grid-template-columns:repeat(4,1fr)}.conf,.conf:nth-child(odd){border-left:1px solid var(--trazo);border-top:0;padding:26px 24px}.conf:first-child{border-left:0}}
/* contacto: garantías y sello de conexión segura */
.garantias{display:grid;gap:12px;margin:24px 0 8px}
.garantias li{display:flex;align-items:center;gap:12px;color:#E8EDE9;font-size:.98rem}
.garantias svg{flex:none;box-sizing:content-box;width:20px;height:20px;padding:10px;border-radius:14px;background:rgba(255,255,255,.1);stroke:#D8BE8C;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.seguro{display:flex;align-items:center;gap:10px;margin:0;font-size:.86rem;color:var(--gris)}
.seguro svg{flex:none;width:18px;height:18px;stroke:var(--lima-txt);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.form{box-shadow:0 30px 70px -34px rgba(0,0,0,.6)}

/* v12b: la barra de "uno a uno" no lleva las líneas de la cuadrícula */
#lotes .caja.lotes-barra{background-image:none;background-color:#fff}

.escasez{display:inline-block;margin-left:12px;padding:2px 8px;background:var(--sol);color:var(--bosque);font-size:.7rem;font-weight:800;border-radius:4px;letter-spacing:.05em;animation:parpadeo 2s infinite}
@keyframes parpadeo{0%,100%{opacity:1}50%{opacity:.6}}

.progreso-obra{display:flex;align-items:center;gap:12px;margin-top:22px;font-family:Outfit,sans-serif;font-size:.875rem;color:var(--gris);max-width:24ch}
.po-label strong{color:var(--bosque);font-weight:700}
.po-barra{flex:1;height:6px;background:var(--linea);border-radius:99px;overflow:hidden}
.po-llenado{height:100%;background:linear-gradient(90deg,var(--lima),var(--sol));border-radius:999px;transition:width 1.5s cubic-bezier(.23,1,.32,1)}

/* ===== Efectos de Lujo Orgánico (Fase 2) ===== */

.parallax-wrap { overflow: hidden; position: relative; }
.parallax-img {
  will-change: transform;
  transition: transform 0.6s cubic-bezier(.23,1,.32,1);
}

.gal-capa img {
  transition: opacity 0.9s ease, transform 12s ease-out;
}
.gal-capa.act img {
  animation: kenBurns 12s ease-out forwards;
}
@keyframes kenBurns {
  from { transform: scale(1); }
  to { transform: scale(1.15) translate(1%, 1%); }
}

.gal-capa {
  transition: opacity 1.2s cubic-bezier(.23,1,.32,1), transform 1.2s cubic-bezier(.23,1,.32,1);
}
.gal-capa:not(.act) {
  transform: scale(1.05);
}
