/* ============================================================
   Chunmul — NOVO Proyectos Inmobiliarios
   Shared stylesheet
   ============================================================ */

:root{
  --primary:#6E7B54;
  --accent:#C15B40;
  --gold:#C29B47;
  --bg-light:#F4F1EA;
  --dark:#3d4a28;
  --text-dark:#1A1A1A;
  --text-light:#FFFFFF;
  --placeholder:#D4D4C8;
  --muted:#6b6b63;
  --pad-y:80px;
  --maxw:1180px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Montserrat',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--text-dark);
  background:var(--bg-light);
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}

.container{
  width:100%;
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 24px;
}

section{padding:var(--pad-y) 0;}

h1,h2,h3,h4{line-height:1.15;font-weight:800;letter-spacing:-0.01em;}

.eyebrow{
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:14px;
  display:block;
}
.eyebrow.on-dark{color:rgba(255,255,255,.7);}

.lead{
  font-size:1.05rem;
  color:var(--muted);
  max-width:640px;
}

/* Buttons */
.btn{
  display:inline-block;
  font-weight:700;
  font-size:.92rem;
  padding:13px 26px;
  border-radius:6px;
  cursor:pointer;
  border:2px solid transparent;
  transition:all .2s ease;
  letter-spacing:.01em;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.12);}
.btn-primary{background:var(--primary);color:#fff;}
.btn-gold{background:var(--gold);color:#1a1a1a;}
.btn-accent{background:var(--accent);color:#fff;}
.btn-outline{background:transparent;border-color:var(--text-dark);color:var(--text-dark);}
.btn-outline-light{background:transparent;border-color:rgba(255,255,255,.6);color:#fff;}
.btn-outline-dark{background:transparent;border-color:#1a1a1a;color:#1a1a1a;}

.textlink{
  font-weight:700;
  font-size:.92rem;
  color:var(--text-dark);
  border-bottom:2px solid var(--gold);
  padding-bottom:2px;
}
.textlink.on-dark{color:#fff;border-color:var(--gold);}

.btn-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:28px;}

/* Placeholder image */
.ph{
  background:var(--placeholder);
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#9a9a8e;
}
.ph svg{width:46px;height:46px;opacity:.7;}

/* ---------- Navbar (Aker-inspired) ---------- */
.nav{
  position:sticky;top:0;z-index:50;
  background:var(--bg-light);
  border-bottom:1px solid rgba(0,0,0,.06);
  transition:background-color .35s ease, box-shadow .35s ease, border-color .35s ease,
             opacity .5s ease, transform .5s ease;
}
.nav.scrolled{
  background:rgba(244,241,234,.82);
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  backdrop-filter:saturate(140%) blur(10px);
  box-shadow:0 6px 26px rgba(0,0,0,.08);
  border-color:transparent;
}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  height:76px;
  transition:height .35s ease;
}
.nav.scrolled .nav-inner{height:60px;}

/* Logo framed with animated corner brackets (Aker signature) */
.logo{
  position:relative;display:inline-flex;align-items:center;
  padding:10px 14px;
}
.logo::before,.logo::after{
  content:"";position:absolute;width:9px;height:9px;
  border:2px solid var(--gold);opacity:.7;
  transition:width .3s ease, height .3s ease, opacity .3s ease;
}
.logo::before{top:0;left:0;border-right:0;border-bottom:0;}
.logo::after{right:0;bottom:0;border-left:0;border-top:0;}
.logo:hover::before,.logo:hover::after{width:15px;height:15px;opacity:1;}
.logo img{transition:transform .35s ease;}
.logo:hover img{transform:scale(1.03);}

/* Nav links with wipe-in underline */
.nav-links{display:flex;gap:38px;align-items:center;}
.nav-links a{
  position:relative;padding:6px 0;
  font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text-dark);transition:color .25s ease;
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .3s cubic-bezier(.4,0,.2,1);
}
.nav-links a:hover{color:var(--primary);}
.nav-links a:hover::after,
.nav-links a.active::after{transform:scaleX(1);}
.nav-links a.active{color:var(--primary);}

.nav-right{display:flex;align-items:center;gap:30px;}
.nav .btn-primary{
  font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;padding:12px 22px;
}
.nav-toggle{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-dark);}

/* Navbar entrance on load (gated for reduced motion) */
@media (prefers-reduced-motion: no-preference){
  .js-anim .nav{opacity:0;transform:translateY(-14px);}
  .js-anim .nav.nav-in{opacity:1;transform:none;}
}

/* ---------- Hero (home) ---------- */
.hero{background:linear-gradient(135deg, #6E7B54 0%, #3d4a28 100%);color:#fff;padding:80px 0 90px;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;}
.badge{
  display:inline-block;
  background:var(--accent);
  color:#fff;
  font-size:.78rem;
  font-weight:700;
  padding:8px 16px;
  border-radius:30px;
  letter-spacing:.03em;
  margin-bottom:26px;
}
.hero h1{font-size:4.2rem;font-weight:900;letter-spacing:.02em;margin-bottom:14px;}
.hero-sub{font-size:1.4rem;font-weight:700;margin-bottom:22px;color:#fff;}
.hero-body{font-size:1.02rem;color:rgba(255,255,255,.85);max-width:520px;}
.hero-ph{aspect-ratio:4/3;background:rgba(255,255,255,.14);overflow:hidden;}
.hero-ph video{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit;}

/* ---------- Stats ---------- */
.stats-head{max-width:640px;margin-bottom:44px;}
.stats-head h2{font-size:2.4rem;margin-bottom:16px;}
.stats-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:36px;
  border-top:1px solid rgba(0,0,0,.1);padding-top:40px;
}
.stat .num{font-size:3.2rem;font-weight:900;color:var(--gold);line-height:1;}
.stat .stat-label{font-size:.95rem;color:var(--muted);margin-top:10px;font-weight:600;}
.stats-links{display:flex;gap:20px;margin-top:36px;align-items:center;}

/* ---------- Why (2 col) ---------- */
.why{background:var(--bg-light);}
.why-top{background:var(--primary);color:#fff;border-radius:14px;padding:40px 44px;margin-bottom:0;
  display:grid;grid-template-columns:45fr 55fr;gap:44px;align-items:stretch;}
.why-top h2{font-size:2rem;}
.why-top-head{display:flex;flex-direction:column;justify-content:center;gap:18px;}
.why-top-body{display:flex;}
.why-top-img{width:100%;height:100%;min-height:360px;object-fit:cover;border-radius:8px;display:block;}
.why-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center;margin-top:56px;}
.why-grid h3{font-size:2.1rem;margin-bottom:18px;}
.subcols{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:30px 0;}
.subcol h4{font-size:1rem;font-weight:700;margin-bottom:8px;color:var(--primary);}
.subcol p{font-size:.92rem;color:var(--muted);}
.why-ph{aspect-ratio:3/4;height:100%;min-height:340px;}

/* ---------- El Proyecto ---------- */
.proyecto{text-align:center;background:var(--bg-light);}
.proyecto h2{font-size:2.6rem;margin-bottom:18px;}
.proyecto .lead{margin:0 auto 28px;}
.proyecto .btn-row{justify-content:center;}

/* Marquee: galería de desplazamiento horizontal infinito */
.proyecto-marquee{
  margin-top:44px;
  overflow:hidden;
  height:400px;
  /* full-bleed breakout: rompe el padding/max-width del contenedor padre */
  width:100vw;
  position:relative;
  left:50%;
  transform:translateX(-50%);
}
.proyecto-marquee .marquee-track{
  display:flex;
  height:100%;
  width:max-content;
  animation:marquee 45s linear infinite;
}
.proyecto-marquee:hover .marquee-track{animation-play-state:paused;}
.proyecto-marquee .m-item{
  flex:0 0 auto;
  height:100%;
  width:auto;
  margin-right:16px;
  border-radius:10px;
  object-fit:cover;
}
.proyecto-marquee .m-item.ph{aspect-ratio:3/2;} /* placeholders: derivan su ancho del alto */
@keyframes marquee{
  0%   {transform:translateX(0);}
  100% {transform:translateX(-50%);}
}

/* ---------- Features ---------- */
.features{background:#fff;}
.features-head{text-align:center;max-width:620px;margin:0 auto 50px;}
.features-head h2{font-size:2.4rem;margin-bottom:14px;}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.card{
  background:var(--bg-light);
  border-radius:12px;
  padding:20px;
  display:flex;flex-direction:column;
}
.card .ph{aspect-ratio:1/1;margin-bottom:18px;}
.card h4{font-size:1.05rem;font-weight:700;margin-bottom:10px;}
.card p{font-size:.88rem;color:var(--muted);flex:1;margin-bottom:0;}
.card .textlink{font-size:.85rem;align-self:flex-start;}

/* ---------- Dark CTA ---------- */
.darkcta{background:var(--primary);color:#fff;text-align:center;}
.darkcta h2{font-size:2.8rem;margin-bottom:8px;}
.darkcta .eyebrow{color:rgba(255,255,255,.7);}
.darkcta .btn-row{justify-content:center;}

/* ---------- Financiamiento ---------- */
.financ{background:var(--bg-light);}
.financ-head{max-width:640px;margin-bottom:50px;}
.financ-head h2{font-size:2.4rem;margin-bottom:14px;}
.fin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-bottom:20px;}
.fin-item h4{font-size:1.05rem;font-weight:700;margin-bottom:8px;}
.fin-item p{font-size:.86rem;color:var(--muted);}

/* ---------- Final banner ---------- */
.finalcta{background:var(--dark);color:#fff;text-align:center;}
.finalcta h2{font-size:2.6rem;margin-bottom:16px;}
.finalcta p{max-width:560px;margin:0 auto 6px;color:rgba(255,255,255,.85);}
.finalcta .btn-row{justify-content:center;}

/* ============================================================
   NOSOTROS (About) page
   ============================================================ */

/* ---------- About hero (Karla intro) ---------- */
.about-hero{background:var(--bg-light);}
.about-hero-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:54px;align-items:center;}
.about-hero-ph{aspect-ratio:3/4;min-height:440px;border-radius:14px;}
.about-hero h1{font-size:3.4rem;font-weight:900;margin-bottom:12px;}
.location-tag{
  display:inline-block;font-size:.92rem;font-weight:600;
  color:var(--primary);margin-bottom:24px;
}
.about-hero .body-p{font-size:1rem;color:var(--muted);margin-bottom:16px;max-width:620px;}

/* ---------- Certificación CONOCER ---------- */
.cert-card{
  max-width:620px;margin-top:26px;padding:22px 26px;
  background:rgba(194,155,71,.06);
  border:1px solid rgba(194,155,71,.35);
  border-left:4px solid var(--gold);
  border-radius:12px;
}
.cert-badge{
  display:inline-block;font-size:.82rem;font-weight:700;letter-spacing:.01em;
  color:var(--dark);background:rgba(194,155,71,.16);
  padding:7px 14px;border-radius:999px;margin-bottom:18px;
}
.cert-details{display:grid;gap:14px;margin:0;}
.cert-item{display:flex;flex-direction:column;gap:2px;}
.cert-item dt{
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  color:var(--gold);
}
.cert-item dd{margin:0;font-size:.95rem;font-weight:600;color:var(--text-dark);}

/* ---------- Pull quote ---------- */
.pullquote{background:var(--primary);color:#fff;text-align:center;}
.pullquote .container{max-width:900px;}
.pullquote .qmark{
  font-family:Georgia,'Times New Roman',serif;
  font-size:5rem;line-height:.5;color:var(--gold);
  display:block;margin-bottom:18px;font-weight:700;
}
.pullquote blockquote{font-size:2rem;font-weight:700;line-height:1.35;margin-bottom:26px;}
.pullquote .attrib{color:var(--gold);font-size:.95rem;font-weight:600;}

/* ---------- Lo que nos diferencia ---------- */
.diff{background:var(--bg-light);}
.diff-head{text-align:center;max-width:660px;margin:0 auto 50px;}
.diff-head h2{font-size:2.4rem;margin-bottom:14px;}
.diff-head .lead{margin:0 auto;}
.diff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.diff-card{background:#fff;border-radius:12px;padding:34px 28px;}
.diff-card h4{font-size:1.2rem;font-weight:700;margin-bottom:10px;}
.diff-card p{font-size:.9rem;color:var(--muted);}

/* ---------- Nuestra Historia ---------- */
.historia{background:#fff;}
.historia-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center;}
.historia h2{font-size:2.4rem;margin-bottom:20px;}
.historia p{font-size:1rem;color:var(--muted);margin-bottom:16px;}
.historia-ph{aspect-ratio:4/3;min-height:340px;}

/* ---------- Stats row (about) ---------- */
.stats-row{background:var(--bg-light);}
.stats-row-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;text-align:center;}
.stats-row .stat .num{font-size:3.4rem;}

/* ---------- CTA banner (terracotta) ---------- */
.ctabanner{background:var(--accent);color:#fff;text-align:center;}
.ctabanner h2{font-size:2.6rem;margin-bottom:14px;}
.ctabanner p{max-width:560px;margin:0 auto;color:rgba(255,255,255,.9);}
.ctabanner .btn-row{justify-content:center;}

/* ============================================================
   Cotizaciones (placeholder) page
   ============================================================ */
.coming-soon{
  min-height:60vh;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  background:var(--bg-light);
}
.coming-soon .eyebrow{margin-bottom:18px;}
.coming-soon h1{font-size:3rem;font-weight:900;margin-bottom:16px;}
.coming-soon p{font-size:1.05rem;color:var(--muted);max-width:480px;}

/* ============================================================
   COTIZACIONES page
   ============================================================ */

/* ---------- Page header (olive) ---------- */
.page-header{background:var(--primary);color:#fff;padding:60px 0 52px;}
.page-header .eyebrow{color:var(--gold);}
.header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;}
.page-header h1{font-size:3rem;font-weight:900;margin-bottom:14px;}
.page-header .subtext{color:rgba(255,255,255,.85);font-size:1.05rem;}
.header-badge{
  display:inline-block;background:var(--gold);color:#1a1a1a;
  font-size:.82rem;font-weight:700;padding:10px 18px;border-radius:30px;white-space:nowrap;
}
.avail-counters{
  display:flex;gap:38px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.2);padding-top:26px;margin-top:32px;
}
.avail-stat{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.95rem;color:rgba(255,255,255,.85);}
.avail-stat .count{font-size:1.7rem;font-weight:900;line-height:1;}
.avail-stat .dot{width:11px;height:11px;border-radius:50%;display:inline-block;}
.dot-green{background:#a7c17e;}
.dot-gold{background:var(--gold);}
.dot-gray{background:#b3b3ab;}
.avail-stat.green .count{color:#c8dcaa;}
.avail-stat.gold .count{color:var(--gold);}
.avail-stat.gray .count{color:#cfcfc7;}

/* inset location map card (bottom-right of hero block) */
.page-header .container{position:relative;}
.header-map{position:absolute;right:0;bottom:0;width:200px;margin:0;text-align:center;}
.header-map img{
  width:200px;height:132px;object-fit:cover;display:block;
  border-radius:8px;border:2px solid rgba(255,255,255,0.3);
}
.header-map figcaption{margin-top:8px;font-size:.78rem;font-weight:600;color:rgba(255,255,255,.88);}

/* full-width aerial strip above the fact cards */
.invertir-strip{
  display:block;width:100%;height:280px;
  object-fit:cover;object-position:center top;margin-bottom:46px;
}

/* ---------- Map section ---------- */
.map-section{background:var(--bg-light);}
.map-wrap{width:100%;}

/* Section head: label + filter tabs on one row, heading below */
.map-head{margin-bottom:32px;}
.map-head-top{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  flex-wrap:wrap;margin-bottom:14px;
}
.map-head-bottom{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  flex-wrap:wrap;
}
.map-head h2{font-size:2.4rem;}
.map-filters{display:flex;gap:10px;flex-wrap:wrap;}
.map-filter{
  font-family:inherit;font-weight:700;font-size:.82rem;
  padding:9px 18px;border-radius:30px;
  border:1.5px solid rgba(0,0,0,.18);background:transparent;color:var(--text-dark);
  cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.map-filter:hover{border-color:var(--primary);color:var(--primary);}
.map-filter.active{background:var(--primary);border-color:var(--primary);color:#fff;}

/* Interactive photo map + overlaid pins */
.lot-map-container{
  position:relative;width:100%;border-radius:12px;overflow:hidden;
  box-shadow:0 12px 34px rgba(0,0,0,.12);
}
.lot-map-img{width:100%;display:block;border-radius:12px;}
/* Filled lot-area buttons overlaid on the plano. width/height are approximate
   starting sizes — fine-tune per lot after calibration. */
.lot-pin{
  position:absolute;
  width:3.2%;height:6.5%;
  cursor:pointer;
  border:2px solid rgba(255,255,255,0.8);
  border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  font-family:inherit;font-size:14px;font-weight:700;color:#fff;line-height:1;
  transition:all 0.15s ease;
  transform:rotate(-16deg); /* matches plano rotation — adjust after calibration */
}
.lot-pin.available{background:rgba(110,123,84,0.55);}       /* olive */
.lot-pin.reserved{background:rgba(194,155,71,0.65);}        /* gold  */
.lot-pin.sold{background:rgba(120,120,120,0.55);pointer-events:none;} /* gray */
.lot-pin.selected{background:rgba(193,91,64,0.75);border:2px solid #fff;} /* terracotta */
.lot-pin:not(.sold):hover{filter:brightness(1.12);z-index:5;}
.lot-pin.dim{opacity:.15;pointer-events:none;}
.filter-btns{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px;}
.filter-btn{
  font-family:inherit;font-weight:700;font-size:.85rem;
  padding:9px 18px;border-radius:30px;border:2px solid var(--primary);
  background:transparent;color:var(--primary);cursor:pointer;transition:background .15s,color .15s;
}
.filter-btn:hover{background:rgba(110,123,84,.12);}
.filter-btn.active{background:var(--primary);color:#fff;}

/* plano */
.plano{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:12px;padding:20px;}
.plano-top,.plano-bottom{
  text-align:center;font-size:.72rem;font-weight:700;letter-spacing:.08em;
  color:var(--muted);text-transform:uppercase;padding:10px 0;
}
.plano-bottom{color:var(--primary);}
.plano-body{display:grid;grid-template-columns:20px 1fr 44px 1fr 20px;gap:8px;align-items:stretch;}
.side-label{
  writing-mode:vertical-rl;font-size:.6rem;font-weight:700;letter-spacing:.05em;
  color:var(--muted);text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;text-align:center;
}
.side-label.left{transform:rotate(180deg);}
.lot-col{display:flex;flex-direction:column;gap:8px;}
.center-strip{
  background:var(--bg-light);border-radius:6px;
  display:flex;align-items:center;justify-content:center;
}
.center-strip span{
  writing-mode:vertical-rl;font-size:.6rem;font-weight:700;letter-spacing:.12em;
  color:var(--muted);text-transform:uppercase;
}
.lot{
  border-radius:6px;padding:9px 6px;text-align:center;cursor:pointer;color:#fff;
  border:2px solid transparent;user-select:none;
  transition:filter .15s ease,transform .2s ease,opacity .15s ease,box-shadow .15s ease;
}
.lot .lot-id{display:block;font-weight:800;font-size:.82rem;line-height:1.1;}
.lot .lot-size{display:block;font-size:.62rem;font-weight:600;opacity:.9;margin-top:2px;}
.lot.available{background:var(--primary);}
.lot.available:hover{filter:brightness(.92);transform:scale(1.03);}
.lot.reserved{background:var(--gold);color:#1a1a1a;}
.lot.reserved:hover{filter:brightness(.94);}
.lot.sold{background:#9a9a92;cursor:not-allowed;}
.lot.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);}
.lot.dim{opacity:.25;pointer-events:none;}
.legend{display:flex;gap:22px;flex-wrap:wrap;margin-top:18px;font-size:.82rem;font-weight:600;color:var(--muted);}
.legend span{display:inline-flex;align-items:center;gap:7px;}
.legend .dot{width:11px;height:11px;border-radius:50%;display:inline-block;flex:none;}

/* info panel — floating overlay on the right of the map, hidden until a lot is clicked */
.info-panel{
  position:absolute;top:0;right:0;
  height:auto;max-height:calc(100vh - 48px);
  width:340px;max-width:88%;
  background:#FBF8F1;border-left:1px solid rgba(0,0,0,.08);
  box-shadow:-10px 0 30px rgba(0,0,0,.18);
  z-index:20;padding:26px;overflow-y:auto;
  transform:translateX(100%);opacity:0;
  transition:transform .3s ease,opacity .3s ease,top .15s ease;
  display:none;
}
.info-panel.open{transform:none;opacity:1;}
.info-close{
  position:absolute;top:14px;right:14px;
  width:32px;height:32px;border-radius:50%;padding:0;
  border:none;background:rgba(0,0,0,.06);color:var(--text-dark);
  font-size:.95rem;line-height:1;cursor:pointer;z-index:2;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s ease;
}
.info-close:hover{background:rgba(0,0,0,.12);}
/* selected-lot card slides in on selection */
.info-card{opacity:0;transform:translateX(20px);transition:opacity .25s ease, transform .25s ease;}
.info-card.in{opacity:1;transform:none;}
.not-available{
  margin-top:22px;text-align:center;font-weight:700;color:var(--muted);
  background:rgba(0,0,0,.04);border-radius:8px;padding:14px;font-size:.9rem;
}
.info-lot-id{font-size:1.5rem;font-weight:900;margin-bottom:4px;}
.corner-badge{
  display:inline-block;background:var(--gold);color:#1a1a1a;
  font-size:.66rem;font-weight:800;padding:3px 9px;border-radius:20px;
  letter-spacing:.03em;vertical-align:middle;white-space:nowrap;
}
.info-area{color:var(--muted);font-weight:600;margin-bottom:14px;font-size:.95rem;}
.status-badge{
  display:inline-block;font-size:.72rem;font-weight:700;padding:6px 14px;border-radius:20px;
  text-transform:uppercase;letter-spacing:.05em;margin-bottom:18px;
}
.status-badge.available{background:rgba(110,123,84,.16);color:var(--primary);}
.status-badge.reserved{background:rgba(194,155,71,.20);color:#8a6d1f;}
.status-badge.sold{background:rgba(0,0,0,.08);color:#555;}
.info-photo{
  background:var(--placeholder);border-radius:10px;aspect-ratio:16/10;
  display:flex;align-items:center;justify-content:center;
  color:#7d7d72;font-size:.85rem;font-weight:600;margin-bottom:16px;text-align:center;padding:10px;
}
.data-row{
  display:flex;justify-content:space-between;gap:12px;padding:12px 0;
  border-bottom:1px solid rgba(0,0,0,.08);font-size:.9rem;
}
.data-row .dr-label{color:var(--muted);font-weight:600;}
.data-row .dr-val{font-weight:700;text-align:right;}
/* collapsible payment plan */
.plan-toggle{
  width:100%;background:none;border:none;font-family:inherit;cursor:pointer;
  padding:16px 0 0;font-size:.9rem;font-weight:700;color:var(--primary);
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}
.plan-toggle .chev{transition:transform .2s;font-size:1.3rem;line-height:1;flex:none;}
.plan-toggle.open .chev{transform:rotate(45deg);}
.plan-wrap{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.plan-wrap.open{max-height:360px;}
.plan-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:.84rem;}
.plan-table td{padding:9px 0;border-bottom:1px solid rgba(0,0,0,.07);}
.plan-table td:first-child{color:var(--muted);font-weight:600;}
.plan-table td:last-child{text-align:right;font-weight:700;}

.info-panel .btn{width:100%;text-align:center;margin-top:22px;}
.info-secondary{display:block;text-align:center;margin-top:14px;font-size:.85rem;font-weight:600;color:var(--primary);}
.info-secondary:hover{text-decoration:underline;}

/* ---------- Pasos (financiamiento) ---------- */
.pasos-section{background:#fff;}
.pasos-head{text-align:center;max-width:640px;margin:0 auto 46px;}
.pasos-head h2{font-size:2.4rem;margin-bottom:14px;}
.pasos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.paso-card{background:var(--bg-light);border-radius:12px;padding:32px 28px;}
.paso-num{font-size:1.3rem;font-weight:900;color:var(--gold);margin-bottom:14px;}
.paso-card h4{font-size:1.1rem;font-weight:700;margin-bottom:10px;}
.paso-card p{font-size:.9rem;color:var(--muted);}
.pasos-note{text-align:center;font-size:.82rem;color:var(--muted);margin-top:30px;}

/* ---------- Invertir (olive) ---------- */
.invertir{background:var(--primary);color:#fff;}
.invertir-head{text-align:center;max-width:680px;margin:0 auto 46px;}
.invertir-head h2{font-size:2.4rem;margin-bottom:14px;}
.invertir-head p{color:rgba(255,255,255,.85);font-size:1.05rem;}
.fact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.fact-card{background:var(--bg-light);color:var(--text-dark);border-radius:12px;padding:30px 28px;}
.fact-card h4{font-size:1.15rem;font-weight:700;margin-bottom:8px;}
.fact-card p{font-size:.9rem;color:var(--muted);}

/* ---------- FAQ (cream) ---------- */
.faq{background:var(--bg-light);}
.faq-head{text-align:center;margin-bottom:40px;}
.faq-head h2{font-size:2.4rem;}
.faq-list{max-width:760px;margin:0 auto;}
.faq-item{
  background:#fff;border-radius:10px;margin-bottom:14px;overflow:hidden;
  border:1px solid rgba(0,0,0,.06);
}
.faq-q{
  width:100%;text-align:left;background:none;border:none;font-family:inherit;cursor:pointer;
  padding:20px 24px;font-size:1rem;font-weight:700;color:var(--text-dark);
  display:flex;justify-content:space-between;align-items:center;gap:16px;
}
.faq-q .chev{transition:transform .3s ease;color:var(--gold);font-size:.8rem;flex:none;line-height:1;}
.faq-item.open .chev{transform:rotate(180deg);}
.faq-a{max-height:0;opacity:0;overflow:hidden;transition:max-height .3s ease, opacity .3s ease;}
.faq-a p{padding:0 24px 20px;font-size:.92rem;color:var(--muted);}
.faq-item.open .faq-a{max-height:500px;opacity:1;}

/* ---------- Footer ---------- */
footer{background:var(--dark);color:rgba(255,255,255,.8);padding:64px 0 30px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;}
.foot-logo{font-weight:900;letter-spacing:.18em;font-size:1.3rem;color:#fff;margin-bottom:18px;}
.foot-col h5{color:#fff;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;font-weight:700;}
.foot-col a{display:block;font-size:.9rem;margin-bottom:10px;color:rgba(255,255,255,.75);}
.foot-col a:hover{color:#fff;}
.foot-contact p{font-size:.9rem;margin-bottom:8px;color:rgba(255,255,255,.75);}
.socials{display:flex;gap:14px;margin-top:16px;}
.socials a{
  width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;
}
.socials svg{width:16px;height:16px;fill:#fff;}
.foot-bottom{
  border-top:1px solid rgba(255,255,255,.15);
  margin-top:44px;padding-top:22px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:.8rem;color:rgba(255,255,255,.6);
}
.foot-bottom-links{display:flex;gap:22px;flex-wrap:wrap;}
.foot-bottom-links a:hover{color:#fff;}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  :root{--pad-y:48px;}
  /* Mobile menu: the links become a panel that drops out from under the
     header when .nav-toggle sets .open (see animations.js). It is absolutely
     positioned against .nav (sticky, so it is the containing block), which
     keeps .nav-right's layout — and the closed state — exactly as before.
     Links keep their natural width so the gold underline stays text-wide,
     same as desktop. */
  .nav-links{
    display:none;
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:flex-start;gap:22px;
    padding:22px 24px 26px;
    background:var(--bg-light);
    border-bottom:1px solid rgba(0,0,0,.06);
    box-shadow:0 14px 30px rgba(0,0,0,.10);
  }
  .nav-links.open{display:flex;}
  .nav-toggle{display:block;}
  .hero-grid{grid-template-columns:1fr;gap:36px;}
  .hero h1{font-size:3rem;}
  .stats-grid{grid-template-columns:1fr;gap:28px;}
  .why-top{grid-template-columns:1fr;gap:28px;}
  .why-top-img{height:240px;min-height:240px;}
  .why-grid{grid-template-columns:1fr;gap:34px;}
  .why-ph{min-height:260px;}
  .cards{grid-template-columns:repeat(2,1fr);}
  .fin-grid{grid-template-columns:1fr 1fr;gap:26px;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .proyecto-marquee{height:240px;}

  /* nosotros */
  .about-hero-grid{grid-template-columns:1fr;gap:34px;}
  .about-hero-ph{min-height:360px;max-width:420px;}
  .about-hero h1{font-size:2.6rem;}
  .diff-grid{grid-template-columns:1fr;}
  .historia-grid{grid-template-columns:1fr;gap:34px;}
  .historia-ph{min-height:260px;}
  .stats-row-grid{grid-template-columns:1fr;gap:28px;}
  .pullquote blockquote{font-size:1.55rem;}

  /* cotizaciones */
  .page-header h1{font-size:2.3rem;}
  .info-panel{width:300px;max-width:100%;}
  .pasos-grid{grid-template-columns:1fr;}
  .fact-grid{grid-template-columns:1fr;}
  .header-map{position:static;width:200px;margin-top:28px;text-align:left;}
  .invertir-strip{height:220px;}
}
@media(max-width:560px){
  .hero h1{font-size:2.5rem;}
  .cards{grid-template-columns:1fr;}
  .fin-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .subcols{grid-template-columns:1fr;}
  .btn{width:100%;text-align:center;}
  .btn-row .textlink{width:auto;}
}

/* ============================================================
   Scroll reveals, entrance & hover motion
   Progressive enhancement — active only when <html> has .js-anim
   and the visitor has NOT requested reduced motion. All hiding
   lives inside (prefers-reduced-motion: no-preference), so
   reduced-motion users (or a JS failure) always see full content.
   ============================================================ */
@media (prefers-reduced-motion: no-preference){

  /* Transition carrier — always matches so the reveal animates even
     as the hidden rule below stops applying. */
  .js-anim .stats-head,
  .js-anim .why-top,
  .js-anim .why-grid,
  .js-anim .proyecto .container,
  .js-anim .features-head,
  .js-anim .about-hero-grid,
  .js-anim .pullquote .container,
  .js-anim .diff-head,
  .js-anim .historia-grid,
  .js-anim .ctabanner .container,
  .js-anim .page-header .header-top,
  .js-anim .pasos-head,
  .js-anim .invertir-head,
  .js-anim .faq-head,
  .js-anim .stats-grid > .stat,
  .js-anim .stats-row-grid > .stat,
  .js-anim .cards > .card,
  .js-anim .diff-grid > .diff-card,
  .js-anim .pasos-grid > .paso-card,
  .js-anim .fact-grid > .fact-card,
  .js-anim .avail-counters > .avail-stat,
  .js-anim .faq-list > .faq-item{
    transition:opacity .5s cubic-bezier(.4,0,.2,1), transform .5s cubic-bezier(.4,0,.2,1);
  }

  /* Hidden until JS adds .revealed. */
  .js-anim .stats-head:not(.revealed),
  .js-anim .why-top:not(.revealed),
  .js-anim .why-grid:not(.revealed),
  .js-anim .proyecto .container:not(.revealed),
  .js-anim .features-head:not(.revealed),
  .js-anim .about-hero-grid:not(.revealed),
  .js-anim .pullquote .container:not(.revealed),
  .js-anim .diff-head:not(.revealed),
  .js-anim .historia-grid:not(.revealed),
  .js-anim .ctabanner .container:not(.revealed),
  .js-anim .page-header .header-top:not(.revealed),
  .js-anim .pasos-head:not(.revealed),
  .js-anim .invertir-head:not(.revealed),
  .js-anim .faq-head:not(.revealed),
  .js-anim .stats-grid > .stat:not(.revealed),
  .js-anim .stats-row-grid > .stat:not(.revealed),
  .js-anim .cards > .card:not(.revealed),
  .js-anim .diff-grid > .diff-card:not(.revealed),
  .js-anim .pasos-grid > .paso-card:not(.revealed),
  .js-anim .fact-grid > .fact-card:not(.revealed),
  .js-anim .avail-counters > .avail-stat:not(.revealed),
  .js-anim .faq-list > .faq-item:not(.revealed){
    opacity:0;
    transform:translateY(24px);
  }

  /* Hero entrance on load (home) — staggered sequence. */
  .js-anim .hero .badge,
  .js-anim .hero h1,
  .js-anim .hero .hero-sub,
  .js-anim .hero .hero-body,
  .js-anim .hero .btn-row{
    opacity:0;
    transform:translateY(24px);
    transition:opacity .5s cubic-bezier(.4,0,.2,1), transform .5s cubic-bezier(.4,0,.2,1);
  }
  .js-anim .hero.hero-in .badge{opacity:1;transform:none;transition-delay:0s;}
  .js-anim .hero.hero-in h1{opacity:1;transform:none;transition-delay:.15s;}
  .js-anim .hero.hero-in .hero-sub{opacity:1;transform:none;transition-delay:.3s;}
  .js-anim .hero.hero-in .hero-body{opacity:1;transform:none;transition-delay:.45s;}
  .js-anim .hero.hero-in .btn-row{opacity:1;transform:none;transition-delay:.6s;}

  /* Hover lift on cards + FAQ items. */
  .card,.diff-card,.fact-card,.paso-card{
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .card:hover,.diff-card:hover,.fact-card:hover,.paso-card:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 28px rgba(0,0,0,.10);
  }
  .faq-item{transition:box-shadow .2s ease;}
  .faq-item:hover{box-shadow:0 6px 20px rgba(0,0,0,.07);}

  /* Subtle image zoom on hover (Aker-style, image-forward feel) */
  .about-hero-ph,.why-ph,.why-top-body{overflow:hidden;}
  .why-top-body{border-radius:8px;}
  .about-hero-ph img,.why-ph img,.why-top-img{
    transition:transform .6s cubic-bezier(.2,0,.2,1);
  }
  .about-hero-ph:hover img,.why-ph:hover img,.why-top-body:hover .why-top-img{
    transform:scale(1.05);
  }
}
