/* ============================================================================
   ANIDA Inmobiliaria — clon estructural de grattoinmobiliaria.com
   Paleta real clonada: verde institucional rgb(4,56,43) #04382B +
   crema rgb(234,225,213) #EAE1D5 sobre blanco, footer casi negro #202120.
   Tipografia real: Funnel Sans (Google Font, sin sustitucion).
   ========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Funnel+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,500&display=swap");

:root{
  --bg:#ffffff;
  --bg-2:#F6F3EC;
  --panel:#EFEAE0;
  --line: rgba(4,56,43,.14);
  --line-soft: rgba(4,56,43,.09);
  --ink:#1B1E1A;
  --ink-dim: rgba(27,30,26,.68);
  --ink-faint: rgba(27,30,26,.46);

  --green:#04382B;       /* verde institucional real, clonado de grattoinmobiliaria.com */
  --green-2:#0C5A43;     /* realce, hover */
  --cream:#EAE1D5;       /* crema real, botones/badges */
  --cream-ink:#04382B;
  --charcoal:#202120;    /* footer real */
  --on-dark: rgba(234,225,213,.86);
  --on-dark-faint: rgba(234,225,213,.55);
  --whatsapp:#25d366;

  --font:"Funnel Sans","Inter",sans-serif;

  --ease-out: cubic-bezier(.16,1,.3,1);
  --ease-in-out: cubic-bezier(.65,0,.35,1);
  --container: 1280px;
  --gut: clamp(20px, 5vw, 64px);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font); font-weight:400; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ margin:0; font-weight:500; letter-spacing:-.01em; color:var(--green); }
p{ margin:0; }
.container{ max-width:var(--container); margin:0 auto; padding:0 var(--gut); }
.only-mobile{ display:none; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
section{ position:relative; }

::selection{ background:var(--green); color:var(--cream); }

/* ---------- Reveal defensivo ---------- */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease-out), transform .8s var(--ease-out); }
.reveal.is-visible{ opacity:1; transform:none; }
.reveal[data-split]{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ============================== SPLASH (gate-trace, casa) ============================== */
.splash{ position:fixed; inset:0; z-index:1000; background:var(--green); display:grid; place-items:center; animation:splashSafety .01s 6s forwards; }
.splash__frame{ position:absolute; inset:clamp(16px,5.5vmin,52px); pointer-events:none; }
.splash__edge{ position:absolute; background:rgba(234,225,213,.18); }
.splash__edge::after{ content:""; position:absolute; inset:0; background:var(--cream); }
.splash__edge--t,.splash__edge--b{ left:0; width:100%; height:1.5px; } .splash__edge--t{top:0} .splash__edge--b{bottom:0}
.splash__edge--l,.splash__edge--r{ top:0; width:1.5px; height:100%; } .splash__edge--l{left:0} .splash__edge--r{right:0}
.splash__edge--t::after,.splash__edge--b::after{ transform:scaleX(0); }
.splash__edge--l::after,.splash__edge--r::after{ transform:scaleY(0); }
.splash__edge--t::after{ transform-origin:left; animation:edgeX .62s linear 0s forwards; }
.splash__edge--r::after{ transform-origin:top; animation:edgeY .62s linear .6s forwards; }
.splash__edge--b::after{ transform-origin:right; animation:edgeX .62s linear 1.2s forwards; }
.splash__edge--l::after{ transform-origin:bottom; animation:edgeY .62s linear 1.8s forwards; }
@keyframes edgeX{ to{ transform:scaleX(1); } } @keyframes edgeY{ to{ transform:scaleY(1); } }
.splash__runner{ position:absolute; top:-4.5px; left:-4.5px; width:10px; height:10px; background:var(--cream); box-shadow:0 0 16px 2px rgba(234,225,213,.7); animation:runnerLap 2.42s var(--ease-in-out) forwards; }
@keyframes runnerLap{
  0%{top:-4.5px;left:-4.5px} 25%{top:-4.5px;left:calc(100% - 5.5px)}
  50%{top:calc(100% - 5.5px);left:calc(100% - 5.5px)} 75%{top:calc(100% - 5.5px);left:-4.5px} 100%{top:-4.5px;left:-4.5px}
}
.splash__in{ display:grid; place-items:center; gap:12px; text-align:center; }
.splash__logo{ opacity:0; display:flex; align-items:center; gap:10px; animation:splashLogo .8s var(--ease-out) .5s forwards; }
.splash__mark{ width:22px; height:22px; color:var(--cream); }
.splash__word{ font-size:26px; font-weight:600; letter-spacing:.05em; color:var(--cream); }
.splash__tag{ opacity:0; font-size:10.5px; letter-spacing:.32em; text-transform:uppercase; color:var(--on-dark-faint); animation:splashLogo .8s var(--ease-out) .8s forwards; }
.splash.is-out{ opacity:0; pointer-events:none; transition:opacity .55s var(--ease-out); }
@keyframes splashLogo{ from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
@keyframes splashSafety{ to{ opacity:0; pointer-events:none; visibility:hidden; } }
@media (prefers-reduced-motion: reduce){
  .splash__runner,.splash__edge::after{ animation:none; } .splash__edge::after{ transform:none; }
  .splash__logo,.splash__tag{ animation:none; opacity:1; }
}

/* ============================== NAV ============================== */
.nav{ position:fixed; top:0; left:0; right:0; z-index:400; padding:22px 0; transition:background .35s,padding .35s,border-color .35s; border-bottom:1px solid transparent; }
.nav .container{ display:flex; align-items:center; justify-content:space-between; }
.nav.is-stuck{ background:rgba(255,255,255,.94); backdrop-filter:blur(10px); padding:14px 0; border-color:var(--line-soft); }
.brand{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:20px; letter-spacing:.06em; color:var(--on-dark); }
.nav.is-stuck .brand{ color:var(--green); }
.brand__mark{ width:22px; height:22px; flex:none; color:var(--cream); }
.nav.is-stuck .brand__mark{ color:var(--green); }
.nav__right{ display:flex; align-items:center; gap:14px; }
.nav__cta{ display:inline-flex; align-items:center; gap:8px; padding:12px 22px; background:var(--cream); color:var(--cream-ink); font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; border-radius:3px; transition:transform .3s, box-shadow .3s; }
.nav__cta:hover{ transform:translateY(-2px); box-shadow:0 12px 24px -10px rgba(4,56,43,.4); }
.nav__burger{ width:44px; height:44px; display:grid; place-items:center; background:none; border:1px solid rgba(234,225,213,.4); border-radius:2px; color:var(--on-dark); }
.nav.is-stuck .nav__burger{ border-color:var(--line); color:var(--green); }
.nav__burger svg{ width:17px; height:17px; }

.menu{ position:fixed; inset:0; z-index:500; background:var(--green); visibility:hidden; opacity:0; transition:opacity .4s var(--ease-out), visibility 0s .4s; overflow-y:auto; }
.menu.is-open{ visibility:visible; opacity:1; transition:opacity .4s var(--ease-out); }
.menu__top{ padding:22px 0; }
.menu__top .container{ display:flex; align-items:center; justify-content:space-between; }
.menu__top .brand{ color:var(--cream); }
.menu__top .brand__mark{ color:var(--cream); }
.menu__close{ width:44px; height:44px; display:grid; place-items:center; background:none; border:1px solid rgba(234,225,213,.4); border-radius:2px; color:var(--cream); }
.menu__close svg{ width:16px; height:16px; }
.menu__list{ padding:26px var(--gut) 60px; max-width:var(--container); margin:0 auto; }
.menu__item{ border-bottom:1px solid rgba(234,225,213,.16); }
.menu__link{ display:flex; align-items:center; justify-content:space-between; padding:22px 4px; font-size:16px; font-weight:600; letter-spacing:.04em; color:var(--cream); }
.menu__link svg{ width:14px; height:14px; opacity:.6; transition:transform .3s; }
.menu__item.is-open .menu__link svg{ transform:rotate(180deg); }
.menu__sub{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease-out); }
.menu__item.is-open .menu__sub{ max-height:400px; }
.menu__sub a{ display:block; padding:12px 4px 12px 18px; font-size:14px; color:var(--on-dark-faint); border-top:1px solid rgba(234,225,213,.12); }
.menu__sub a:first-child{ border-top:none; }

/* ============================== BOTONES ============================== */
.btn{ display:inline-flex; align-items:center; gap:10px; padding:15px 26px; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; border-radius:3px; border:none; transition:transform .3s var(--ease-out), box-shadow .3s; }
.btn svg{ width:14px; height:14px; }
.btn--cream{ background:var(--cream); color:var(--cream-ink); }
.btn--cream:hover{ transform:translateY(-2px); box-shadow:0 14px 28px -12px rgba(4,56,43,.4); }
.btn--green{ background:var(--green); color:var(--cream); }
.btn--green:hover{ transform:translateY(-2px); box-shadow:0 14px 28px -12px rgba(4,56,43,.5); }
.btn--ghost{ background:transparent; color:var(--green); border:1px solid rgba(4,56,43,.4); }
.btn--ghost:hover{ background:rgba(4,56,43,.06); }
.btn--ghost-light{ background:transparent; color:var(--cream); border:1px solid rgba(234,225,213,.5); }
.btn--ghost-light:hover{ background:rgba(234,225,213,.1); }
.btn--wa{ background:var(--whatsapp); color:#08321a; }
.btn--wa:hover{ transform:translateY(-2px); box-shadow:0 14px 28px -12px rgba(37,211,102,.6); }
.btn--block{ width:100%; justify-content:center; }
.btn--sm{ padding:11px 18px; font-size:11px; }

/* status pill (Lanzamiento / Preventa / En construccion / Entregado) */
.status{ display:inline-flex; align-items:center; gap:7px; padding:8px 15px 8px 12px; background:rgba(4,56,43,.85); color:var(--cream); font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; border-radius:30px; backdrop-filter:blur(4px); }
.status i{ width:6px; height:6px; border-radius:50%; background:var(--cream); flex:none; }
.status--light{ background:rgba(255,255,255,.9); color:var(--green); }
.status--light i{ background:var(--green); }

/* ============================== HOME · HERO SLIDER ============================== */
.hero-slider{ position:relative; height:100svh; min-height:600px; overflow:hidden; background:#0a0f0c; }
.hs__slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.1s var(--ease-in-out); }
.hs__slide.is-active{ opacity:1; z-index:2; }
.hs__slide img{ width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 7s linear; }
.hs__slide.is-active img{ transform:scale(1); }
.hs__scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(4,10,8,.86) 0%, rgba(4,10,8,.18) 46%, rgba(4,10,8,.12) 100%); }
.hs__body{ position:absolute; left:0; right:0; bottom:0; z-index:3; padding:0 0 84px; }
.hs__body .container{ display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.hs__district{ display:flex; align-items:center; gap:10px; font-size:11.5px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--on-dark-faint); }
.hs__district i{ display:inline-block; width:20px; height:1px; background:var(--on-dark-faint); }
.hs__title{ font-size:clamp(40px,7vw,84px); font-weight:500; line-height:1; color:#fff; }
.hs__subtitle{ font-size:15px; font-weight:400; color:var(--on-dark); max-width:44ch; }
.hs__actions{ display:flex; align-items:center; gap:16px; margin-top:8px; }
.hs__nav{ position:absolute; top:50%; z-index:4; width:46px; height:46px; border-radius:50%; border:1px solid rgba(234,225,213,.4); background:rgba(4,10,8,.32); color:var(--cream); display:grid; place-items:center; transform:translateY(-50%); transition:background .3s; }
.hs__nav:hover{ background:rgba(4,10,8,.6); }
.hs__nav svg{ width:16px; height:16px; }
.hs__nav--prev{ left:var(--gut); } .hs__nav--next{ right:var(--gut); }
.hs__dots{ position:absolute; left:0; right:0; bottom:24px; z-index:4; display:flex; justify-content:center; gap:9px; }
.hs__dot{ width:26px; height:3px; background:rgba(234,225,213,.32); border:none; padding:0; transition:background .3s; }
.hs__dot.is-active{ background:var(--cream); }
.hs__status{ position:absolute; left:var(--gut); top:120px; z-index:4; }

/* ============================== PROYECTOS (grid, casa) ============================== */
.projects{ background:var(--bg-2); padding:110px 0 100px; }
.section-head{ margin-bottom:56px; }
.section-head__eyebrow{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--green-2); margin-bottom:16px; }
.section-head h2{ font-size:clamp(30px,4.6vw,48px); font-weight:500; }
.pgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.pcard{ display:flex; flex-direction:column; }
.pcard__figure{ position:relative; aspect-ratio:3/4; overflow:hidden; border-radius:4px; background:#0a0f0c; }
.pcard__figure img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease-out); }
.pcard:hover .pcard__figure img{ transform:scale(1.06); }
.pcard__status{ position:absolute; top:16px; left:16px; }
.pcard__price{ position:absolute; left:16px; bottom:16px; color:#fff; }
.pcard__price small{ display:block; font-size:10px; letter-spacing:.14em; text-transform:uppercase; opacity:.75; }
.pcard__price b{ display:block; font-size:19px; font-weight:700; margin-top:2px; }
.pcard__price span.entrega{ display:block; font-size:11px; opacity:.8; margin-top:2px; }
.pcard__scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(4,10,8,.62) 0%, rgba(4,10,8,0) 42%); }
.pcard__body{ padding-top:16px; }
.pcard__name{ font-size:19px; font-weight:600; color:var(--green); }
.pcard__district{ display:block; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin-top:3px; }
.pcard__specs{ margin-top:10px; font-size:12.5px; color:var(--ink-dim); line-height:1.7; }

/* ============================== TRAYECTORIA ============================== */
.trayectoria{ background:var(--bg); padding:120px 0 0; }
.trayectoria__grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:72px; align-items:center; margin-bottom:80px; }
.trayectoria__eyebrow{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--green-2); margin-bottom:20px; }
.trayectoria h2{ font-size:clamp(28px,4vw,42px); font-weight:500; line-height:1.18; }
.trayectoria__text p{ color:var(--ink-dim); font-size:15px; line-height:1.85; max-width:50ch; margin-top:22px; }
.trayectoria__link{ display:inline-flex; align-items:center; gap:8px; margin-top:26px; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--green); border-bottom:1px solid rgba(4,56,43,.4); padding-bottom:4px; }
.trayectoria__media{ position:relative; aspect-ratio:4/3.1; border-radius:4px; overflow:hidden; }
.trayectoria__media img{ width:100%; height:100%; object-fit:cover; }
.trayectoria__play{ position:absolute; inset:0; display:grid; place-items:center; background:rgba(4,10,8,.22); }
.trayectoria__play i{ width:64px; height:64px; border-radius:50%; background:rgba(255,255,255,.92); display:grid; place-items:center; transition:transform .3s; }
.trayectoria__play:hover i{ transform:scale(1.08); }
.trayectoria__play svg{ width:20px; height:20px; color:var(--green); margin-left:3px; }

.stats{ background:var(--green); padding:64px 0; }
.stats__row{ display:grid; grid-template-columns:repeat(3,1fr); }
.stat{ text-align:center; padding:0 20px; border-left:1px solid rgba(234,225,213,.22); }
.stat:first-child{ border-left:none; }
.stat b{ display:block; font-size:clamp(30px,4.6vw,50px); font-weight:600; line-height:1; color:var(--cream); }
.stat span{ display:block; margin-top:12px; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--on-dark-faint); }

/* ============================== TIMELINE (proyectos, carrusel) ============================== */
.timeline{ background:var(--bg); padding:110px 0; }
.timeline__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:44px; }
.timeline__nav{ display:flex; gap:10px; }
.timeline__nav button{ width:44px; height:44px; border-radius:50%; border:1px solid var(--line); background:none; color:var(--green); display:grid; place-items:center; transition:background .3s; }
.timeline__nav button:hover{ background:var(--bg-2); }
.timeline__nav svg{ width:16px; height:16px; }
.timeline__track{ display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none; }
.timeline__track::-webkit-scrollbar{ display:none; }
.tl-card{ scroll-snap-align:start; flex:0 0 auto; width:min(78vw, 260px); }
.tl-card__figure{ position:relative; aspect-ratio:3/4; border-radius:4px; overflow:hidden; background:var(--bg-2); }
.tl-card__figure img{ width:100%; height:100%; object-fit:cover; }
.tl-card__year{ position:absolute; top:14px; left:14px; font-family:var(--font); font-size:11px; font-weight:700; letter-spacing:.12em; color:#fff; background:rgba(4,10,8,.5); padding:6px 11px; border-radius:20px; }
.tl-card__body{ padding-top:14px; display:flex; flex-direction:column; }
.tl-card__name{ display:block; font-size:15.5px; font-weight:600; color:var(--green); }
.tl-card__meta{ display:block; font-size:11.5px; color:var(--ink-faint); margin-top:3px; letter-spacing:.04em; }

/* ============================== BLOG ============================== */
.blog{ background:var(--bg-2); padding:110px 0 120px; }
.blog__head{ text-align:center; max-width:580px; margin:0 auto 56px; }
.blog__tag{ display:inline-block; margin-top:10px; font-size:10.5px; font-weight:700; letter-spacing:.3em; color:var(--green-2); }
.bgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.bcard__figure{ position:relative; aspect-ratio:4/3; border-radius:4px; overflow:hidden; }
.bcard__figure img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease-out); }
.bcard:hover .bcard__figure img{ transform:scale(1.05); }
.bcard__meta{ display:flex; gap:10px; margin-top:18px; font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--green-2); }
.bcard__meta span:last-child{ color:var(--ink-faint); font-weight:500; }
.bcard__title{ font-size:17px; font-weight:600; color:var(--green); margin-top:10px; line-height:1.4; }
.bcard__excerpt{ font-size:13px; color:var(--ink-dim); margin-top:8px; line-height:1.6; }

/* ============================== FOOTER ============================== */
.footer{ background:var(--charcoal); padding:80px 0 26px; }
.footer__top{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; padding-bottom:52px; border-bottom:1px solid rgba(234,225,213,.1); }
.footer__brand .brand{ color:var(--cream); margin-bottom:16px; }
.footer__brand .brand__mark{ color:var(--cream); }
.footer__brand p{ color:var(--on-dark-faint); font-size:14px; max-width:30ch; line-height:1.7; }
.footer__social{ display:flex; gap:10px; margin-top:22px; }
.footer__social a{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(234,225,213,.24); display:grid; place-items:center; color:var(--cream); transition:border-color .3s, background .3s; }
.footer__social a:hover{ background:var(--cream); color:var(--green); border-color:var(--cream); }
.footer__social svg{ width:15px; height:15px; }
.fcol h6{ font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--on-dark-faint); margin-bottom:20px; }
.fcol ul li{ margin-bottom:13px; }
.fcol a, .fcol span{ font-size:13.5px; color:var(--on-dark); }
.fcol a:hover{ color:var(--cream); }
.fcol .fcontact{ display:flex; align-items:flex-start; gap:9px; }
.fcol .fcontact svg{ width:14px; height:14px; margin-top:3px; flex:none; opacity:.7; color:var(--cream); }
.footer__bottom{ padding-top:24px; }
.footer__bottom-row{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.footer__bottom small{ font-size:11.5px; color:var(--on-dark-faint); }
.footer__credit{ font-size:11.5px; color:var(--on-dark-faint); }
.footer__credit a{ color:var(--cream); text-decoration:underline; text-underline-offset:3px; }
.footer__disclaimer{ font-size:10.5px; color:rgba(234,225,213,.35); margin-top:16px; line-height:1.6; max-width:90ch; }

/* ============================== WHATSAPP FLOTANTE ============================== */
.wa-float{ position:fixed; right:22px; bottom:22px; z-index:300; width:56px; height:56px; border-radius:50%; background:var(--whatsapp); display:grid; place-items:center; box-shadow:0 12px 26px -8px rgba(0,0,0,.4); transition:transform .3s; }
.wa-float:hover{ transform:scale(1.08); }
.wa-float svg{ width:28px; height:28px; color:#08321a; }

/* ============================================================================
   PAGINAS DE PROYECTO
   ========================================================================== */

.phero{ position:relative; min-height:100svh; overflow:hidden; background:#0a0f0c; }
.phero__bg{ position:absolute; inset:0; }
.phero__bg img{ width:100%; height:100%; object-fit:cover; }
.phero__scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(4,10,8,.55) 0%, rgba(4,10,8,.06) 32%, rgba(4,10,8,.15) 60%, rgba(4,10,8,.72) 100%); }
.phero__body{ position:relative; z-index:2; min-height:100svh; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; padding:150px var(--gut) 0; }
.phero__meta{ display:flex; align-items:center; gap:14px; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--on-dark); margin:22px 0 10px; }
.phero__meta i{ width:1px; height:12px; background:rgba(234,225,213,.4); }
.phero__meta svg{ width:14px; height:14px; opacity:.7; }
.phero__title{ font-size:clamp(44px,9vw,104px); font-weight:500; line-height:.98; color:#fff; }
.phero__subtitle{ font-size:16px; color:var(--on-dark); max-width:44ch; margin-top:14px; }
.phero__cta{ margin-top:26px; }

/* franja de specs flotante (4 col) */
.pspecs-strip{ position:relative; z-index:3; margin-top:46px; transform:translateY(50%); align-self:stretch; width:100%; }
.pspecs-strip__in{ max-width:calc(var(--container) - var(--gut)*2); margin:0 auto var(--gut); background:rgba(4,10,8,.72); backdrop-filter:blur(10px); border:1px solid rgba(234,225,213,.14); border-radius:6px; display:grid; grid-template-columns:repeat(4,1fr); }
.pspecs-strip__item{ padding:26px 28px; border-left:1px solid rgba(234,225,213,.14); }
.pspecs-strip__item:first-child{ border-left:none; }
.pspecs-strip__item b{ display:block; font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--on-dark-faint); margin-bottom:8px; }
.pspecs-strip__item span{ display:block; font-size:15px; font-weight:600; color:#fff; }
.phero-spacer{ height:60px; background:var(--bg); }

/* ---- descripcion + stats + amenidades ---- */
.pabout{ background:var(--bg); padding:60px 0 100px; }
.pabout__grid{ display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start; }
.pabout__eyebrow{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.26em; text-transform:uppercase; color:var(--green-2); margin-bottom:18px; }
.pabout h2{ font-size:clamp(26px,3.4vw,36px); font-weight:500; line-height:1.2; }
.pabout__text p{ color:var(--ink-dim); font-size:15px; line-height:1.85; margin-top:20px; max-width:52ch; }
.pabout__stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:40px; padding-top:32px; border-top:1px solid var(--line); }
.pabout__stats b{ display:block; font-size:clamp(24px,3vw,32px); font-weight:600; color:var(--green); }
.pabout__stats span{ display:block; margin-top:6px; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); }
.pabout__amenities{ margin-top:36px; }
.pabout__amenities h4{ font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:16px; }
.amen-list{ display:flex; flex-direction:column; gap:12px; }
.amen-list li{ display:flex; align-items:center; gap:12px; font-size:14.5px; color:var(--ink); padding-bottom:12px; border-bottom:1px solid var(--line-soft); }
.amen-list li:last-child{ border-bottom:none; }
.amen-list svg{ width:15px; height:15px; color:var(--green-2); flex:none; }
.pabout__brochure{ margin-top:28px; }
.pabout__figure{ position:relative; aspect-ratio:4/5; border-radius:4px; overflow:hidden; }
.pabout__figure img{ width:100%; height:100%; object-fit:cover; }

/* ---- galeria ---- */
.pgal{ background:var(--bg-2); padding:100px 0; }
.pgal__head{ text-align:center; margin-bottom:36px; }
.pgal__tabs{ display:inline-flex; gap:6px; background:var(--panel); padding:5px; border-radius:4px; }
.pgal__tab{ padding:11px 22px; font-size:12.5px; font-weight:700; letter-spacing:.06em; background:transparent; border:none; color:var(--ink-dim); border-radius:3px; transition:background .25s, color .25s; }
.pgal__tab.is-active{ background:var(--green); color:var(--cream); }
.pgal__stage{ position:relative; aspect-ratio:16/8.2; max-height:600px; border-radius:6px; overflow:hidden; }
.pgal__pane{ position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .5s var(--ease-out); }
.pgal__pane.is-active{ opacity:1; visibility:visible; }
.pgal__pane img{ width:100%; height:100%; object-fit:cover; }

/* ---- ubicacion ---- */
.ploc{ background:var(--bg); padding:100px 0; }
.ploc__head{ text-align:center; max-width:600px; margin:0 auto 44px; }
.ploc__head p{ color:var(--ink-dim); margin-top:14px; font-size:14.5px; }
.ploc__poi{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-bottom:44px; }
.poi-tab{ padding:10px 18px; font-size:12px; font-weight:700; letter-spacing:.05em; border:1px solid var(--line); background:transparent; color:var(--ink-dim); border-radius:30px; transition:background .25s, color .25s, border-color .25s; }
.poi-tab.is-active{ background:var(--green); border-color:var(--green); color:var(--cream); }
.ploc__grid{ display:grid; grid-template-columns:1fr 1fr; gap:0; border-radius:6px; overflow:hidden; }
.ploc__list{ background:var(--bg-2); padding:40px; display:flex; flex-direction:column; }
.poi-panel{ display:none; flex-direction:column; gap:14px; }
.poi-panel.is-active{ display:flex; }
.poi-item{ display:flex; align-items:center; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line-soft); font-size:14px; }
.poi-item:last-child{ border-bottom:none; }
.poi-item span.poi-dist{ font-size:12px; color:var(--ink-faint); }
.ploc__addr{ display:flex; gap:12px; margin-top:auto; padding-top:24px; align-items:flex-start; }
.ploc__addr svg{ width:19px; height:19px; flex:none; color:var(--green-2); margin-top:2px; }
.ploc__addr p{ font-size:13.5px; line-height:1.7; color:var(--ink-dim); }
.ploc__btns{ display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
/* mini-mapa ilustrado (vive siempre, sin depender de iframes ni de estar top-level) */
.mapviz{ position:relative; min-height:340px; overflow:hidden;
  background-color:#EFEAE0;
  background-image:
    linear-gradient(120deg, rgba(4,56,43,.07) 1px, transparent 1px),
    linear-gradient(30deg, rgba(4,56,43,.07) 1px, transparent 1px),
    linear-gradient(rgba(4,56,43,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(4,56,43,.045) 1px, transparent 1px);
  background-size: 220px 220px, 220px 220px, 44px 44px, 44px 44px;
}
.mapviz__center{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:3; display:grid; place-items:center; }
.mapviz__center i{ position:relative; width:22px; height:22px; border-radius:50%; background:var(--green); display:grid; place-items:center; box-shadow:0 4px 14px -4px rgba(4,56,43,.6); }
.mapviz__center i svg{ width:11px; height:11px; color:var(--cream); }
.mapviz__ring{ position:absolute; inset:0; border-radius:50%; border:1.5px solid var(--green-2); opacity:0; animation:mapPulse 2.8s var(--ease-out) infinite; }
.mapviz__ring:nth-child(2){ animation-delay:.9s; }
.mapviz__ring:nth-child(3){ animation-delay:1.8s; }
@keyframes mapPulse{ 0%{ width:22px; height:22px; left:0; top:0; opacity:.55; } 100%{ width:120px; height:120px; left:-49px; top:-49px; opacity:0; } }
.mapviz__pin{ position:absolute; left:var(--x); top:var(--y); transform:translate(-50%,-50%) scale(1); z-index:2;
  width:30px; height:30px; border-radius:50%; background:#fff; border:1px solid var(--line); color:var(--green);
  display:grid; place-items:center; box-shadow:0 6px 16px -6px rgba(4,20,14,.28);
  transition:opacity .35s var(--ease-out), transform .35s var(--ease-out), background .25s, color .25s;
}
.mapviz__pin svg{ width:14px; height:14px; }
.mapviz__pin:hover, .mapviz__pin:focus-visible{ background:var(--green); color:var(--cream); transform:translate(-50%,-50%) scale(1.14); z-index:4; }
.mapviz__pin.is-hidden{ opacity:0; transform:translate(-50%,-50%) scale(.4); pointer-events:none; }
.mapviz__tip{ position:absolute; left:50%; bottom:calc(100% + 9px); transform:translate(-50%,4px); white-space:nowrap;
  background:var(--green); color:var(--cream); font-size:11px; font-weight:600; padding:6px 10px; border-radius:4px;
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; }
.mapviz__tip::after{ content:""; position:absolute; left:50%; top:100%; transform:translateX(-50%); border:5px solid transparent; border-top-color:var(--green); }
.mapviz__pin:hover .mapviz__tip, .mapviz__pin:focus-visible .mapviz__tip{ opacity:1; transform:translate(-50%,0); }
.mapviz__pin:nth-of-type(1){ --x:16%; --y:22%; }
.mapviz__pin:nth-of-type(2){ --x:50%; --y:12%; }
.mapviz__pin:nth-of-type(3){ --x:84%; --y:24%; }
.mapviz__pin:nth-of-type(4){ --x:12%; --y:55%; }
.mapviz__pin:nth-of-type(5){ --x:88%; --y:52%; }
.mapviz__pin:nth-of-type(6){ --x:22%; --y:84%; }
.mapviz__pin:nth-of-type(7){ --x:50%; --y:90%; }
.mapviz__pin:nth-of-type(8){ --x:78%; --y:82%; }
.mapviz__pin:nth-of-type(9){ --x:66%; --y:34%; }
@media (prefers-reduced-motion: reduce){ .mapviz__ring{ animation:none; opacity:0; } }

/* ---- cotizador (fiel a Gratto: carrusel de plano + formulario real) ---- */
.pquote{ background:var(--bg-2); padding:100px 0; }
.pquote__head{ margin-bottom:40px; max-width:640px; }
.pquote__head span.eyebrow{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.26em; text-transform:uppercase; color:var(--green-2); margin-bottom:14px; }
.pquote__head h2{ font-size:clamp(26px,3.4vw,34px); font-weight:500; }
.pquote__head p{ color:var(--ink-dim); margin-top:12px; font-size:13.5px; max-width:60ch; }

.pq-step{ font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--green); margin-bottom:18px; }
.pq-pills{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:30px; }
.pq-pill{ padding:12px 22px; font-size:13px; font-weight:600; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:30px; transition:background .25s, border-color .25s, color .25s; }
.pq-pill.is-active{ background:var(--green); border-color:var(--green); color:var(--cream); }

/* carrusel de plano */
.qcarousel{ background:#fff; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.qcarousel__stage{ position:relative; aspect-ratio:16/10; background:var(--bg-2); }
.qcarousel__plan{ position:absolute; inset:0; display:grid; place-items:center; padding:8%; opacity:0; transition:opacity .35s var(--ease-out); }
.qcarousel__plan.is-active{ opacity:1; }
.qcarousel__plan svg{ width:100%; height:100%; max-width:280px; color:var(--green); }
.qcarousel__nav{ position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:#fff; border:1px solid var(--line); color:var(--green); display:grid; place-items:center; transition:background .25s, transform .25s; z-index:2; }
.qcarousel__nav:hover{ background:var(--bg-2); }
.qcarousel__nav svg{ width:16px; height:16px; }
.qcarousel__nav--prev{ left:18px; } .qcarousel__nav--next{ right:18px; }
.qcarousel__bar{ background:var(--green); color:var(--cream); display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:28px; padding:18px 24px; }
.qcarousel__brand{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:14px; letter-spacing:.04em; }
.qcarousel__brand svg{ width:16px; height:16px; color:var(--cream); }
.qcarousel__proj b{ display:block; font-size:12.5px; font-weight:700; letter-spacing:.03em; }
.qcarousel__proj span{ display:block; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--on-dark-faint); margin-top:2px; }
.qcarousel__specs{ display:flex; gap:20px; font-size:11px; }
.qcarousel__specs div{ display:flex; flex-direction:column; gap:2px; }
.qcarousel__specs span{ color:var(--on-dark-faint); letter-spacing:.06em; text-transform:uppercase; font-size:9.5px; }
.qcarousel__specs b{ font-size:12.5px; font-weight:700; }
.qcarousel__mark{ width:26px; height:26px; opacity:.5; }

/* formulario real (empaqueta a WhatsApp, sin backend/almacenamiento) */
.qform{ margin-top:52px; }
.qform__grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px 24px; margin-top:22px; }
.qform__field{ display:flex; flex-direction:column; gap:8px; }
.qform__field label{ font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); }
.qform__field input, .qform__field select{ width:100%; padding:13px 4px; background:transparent; border:none; border-bottom:1px solid var(--line); color:var(--ink); font-family:inherit; font-size:14.5px; border-radius:0; transition:border-color .25s; }
.qform__field input::placeholder{ color:var(--ink-faint); }
.qform__field input:focus, .qform__field select:focus{ outline:none; border-color:var(--green); }
.qform__check{ display:flex; align-items:flex-start; gap:10px; margin-top:30px; font-size:12.5px; color:var(--ink-dim); line-height:1.6; }
.qform__check input{ margin-top:3px; flex:none; accent-color:var(--green); width:16px; height:16px; }
.qform__check a{ color:var(--green); text-decoration:underline; text-underline-offset:2px; }
.qform__submit{ margin-top:26px; width:100%; justify-content:center; padding:17px; font-size:12.5px; }
.qform__note{ margin-top:14px; font-size:11.5px; color:var(--ink-faint); text-align:center; }

/* ---- cierre CTA proyecto ---- */
.pclose{ position:relative; padding:110px 0; overflow:hidden; text-align:center; }
.pclose__bg{ position:absolute; inset:0; }
.pclose__bg img{ width:100%; height:100%; object-fit:cover; }
.pclose__scrim{ position:absolute; inset:0; background:rgba(4,10,8,.78); }
.pclose__in{ position:relative; z-index:2; max-width:620px; margin:0 auto; }
.pclose h2{ font-size:clamp(28px,4.4vw,44px); font-weight:500; color:#fff; }
.pclose p{ color:var(--on-dark); margin:18px 0 32px; font-size:15px; }

/* ============================== RESPONSIVE ============================== */
@media (max-width:1080px){
  .pgrid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:960px){
  .trayectoria__grid{ grid-template-columns:1fr; gap:40px; }
  .stats__row{ grid-template-columns:1fr; gap:34px; }
  .stat{ border-left:none; border-top:1px solid rgba(234,225,213,.22); padding-top:26px; }
  .stat:first-child{ border-top:none; padding-top:0; }
  .footer__top{ grid-template-columns:1fr 1fr; gap:36px 24px; }
  .pabout__grid{ grid-template-columns:1fr; gap:40px; }
  .bgrid{ grid-template-columns:1fr; gap:36px; }
  .pspecs-strip__in{ grid-template-columns:repeat(2,1fr); }
  .pspecs-strip__item:nth-child(3){ border-left:none; }
  .ploc__grid{ grid-template-columns:1fr; }
  .mapviz{ min-height:300px; }
  .qcarousel__bar{ grid-template-columns:1fr; gap:10px; text-align:left; }
  .qcarousel__specs{ flex-wrap:wrap; gap:14px 20px; }
}
@media (max-width:680px){
  .only-mobile{ display:block; }
  .pgrid{ grid-template-columns:1fr; }
  .hs__nav{ display:none; }
  .hs__status{ display:none; }
  .footer__top{ grid-template-columns:1fr; gap:34px; }
  .phero__body{ padding-top:130px; }
  .pspecs-strip__in{ grid-template-columns:1fr; }
  .pspecs-strip__item{ border-left:none; border-top:1px solid rgba(234,225,213,.14); }
  .pspecs-strip__item:first-child{ border-top:none; }
  .timeline__head{ flex-direction:column; align-items:flex-start; gap:18px; }
  .qform__grid{ grid-template-columns:1fr; }
  .qcarousel__nav{ width:38px; height:38px; }
  .qcarousel__nav--prev{ left:10px; } .qcarousel__nav--next{ right:10px; }
}
