/* Urbanización La Florida · loteslaflorida.com
   Paleta: verde bosque (base, igual que Construc) + verde lima, amarillo sol y arena tomados del logo de La Florida. */
@font-face{font-family:Poppins;font-weight:400;font-display:swap;src:url(../fonts/poppins-400-latin.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:500;font-display:swap;src:url(../fonts/poppins-500-latin.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:600;font-display:swap;src:url(../fonts/poppins-600-latin.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:700;font-display:swap;src:url(../fonts/poppins-700-latin.woff2) format("woff2")}
@font-face{font-family:Michroma;font-weight:400;font-display:swap;src:url(../fonts/michroma-400-latin.woff2) format("woff2")}

:root{
  --bosque:#0E3B2E; --bosque-2:#0a2b21; --bosque-3:#164a39;
  --lima:#76A82F; --lima-claro:#a6d14f; --sol:#F7E93C; --arena:#D8CBA3; --crema:#F6F2E6; --blanco:#fff;
  --tinta:#10201a; --gris:#42514a; --lima-txt:#46710f; --lima-em:#5a8c1e; --lima-btn:#4b7a15; --linea:rgba(14,59,46,.14);
  --radio:28px; --radio-s:16px; --ancho:1200px; --gut:clamp(18px,4vw,40px);
  --sombra:0 24px 60px -24px rgba(8,38,29,.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:Poppins,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:#eef3ec}
.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(10,43,33,.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:Michroma,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(247,233,60,.65)}
.btn-lima{background:var(--lima-btn);color:#fff}
.btn-lima:hover{background:#3d6510}
.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(8,38,29,.55) 0%,rgba(8,38,29,.15) 32%,rgba(8,38,29,.78) 78%,rgba(8,38,29,.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(247,233,60,.7);animation:pulso 2s infinite}
@keyframes pulso{70%{box-shadow:0 0 0 10px rgba(247,233,60,0)}100%{box-shadow:0 0 0 0 rgba(247,233,60,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:Michroma,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(14,59,46,.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:Michroma,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(238,243,236,.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(8,38,29,.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:Michroma,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(238,243,236,.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:Michroma,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(247,233,60,.9);box-shadow:0 0 0 7px rgba(247,233,60,.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:Poppins,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:#f2f9e4;box-shadow:0 0 0 4px rgba(118,168,47,.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(14,59,46,.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:#f6f9ee;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(118,168,47,.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,#f7ec3e 0%,#d5ec55 55%,#a9d24c 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(14,59,46,.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(14,59,46,.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(14,59,46,.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:#0a2b21;box-shadow:0 12px 28px -10px rgba(10,43,33,.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:#f7ec3e}

/* ===== 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(118,168,47,.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:Poppins,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(8,38,29,.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(8,38,29,.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(8,38,29,.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:Michroma,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(8,38,29,.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(5,24,18,.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:Michroma,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:Michroma,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(238,243,236,.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(118,168,47,.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:#2c7a2c}.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:Michroma,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(10,43,33,.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(238,243,236,.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(238,243,236,.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(238,243,236,.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:#2a4a00;--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(238,243,236,.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(143,201,38,.65)}70%{box-shadow:0 0 0 18px rgba(143,201,38,0)}100%{box-shadow:0 0 0 0 rgba(143,201,38,0)}}
@media(prefers-reduced-motion:reduce){.btn-pulso{animation:none}}
@keyframes pulso-sol{0%{box-shadow:0 0 0 0 rgba(247,233,60,.7)}70%{box-shadow:0 0 0 18px rgba(247,233,60,0)}100%{box-shadow:0 0 0 0 rgba(247,233,60,0)}}
.btn-sol.btn-pulso{animation-name:pulso-sol}
