/* Lomas de Escobar · Mercado Lote */
:root {
  --green: #0D2C20;
  --green-2: #123A2A;
  --green-3: #1B4A38;
  --green-soft: #2E5F4B;
  --cream: #F4EEE2;
  --cream-2: #EAE2D2;
  --cream-dim: #CFC6B5;
  --ink: #0B1F17;
  --ink-2: #3B4A43;
  --ochre: #E0AC55;
  --terra: #C85F31;
  --terra-2: #B0512A;
  --wa: #25D366;
  --font: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --cond: "Barlow Condensed", "Arial Narrow", ui-sans-serif, sans-serif;
  --ease: cubic-bezier(.16, 1, .3, 1);
  --pad: clamp(20px, 5vw, 72px);
  --z-nav: 50; --z-mapui: 10; --z-float: 60;
  color-scheme: light;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0; font-family: var(--font); color: var(--ink); background: var(--cream);
  font-size: 17px; line-height: 1.55; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
h1, h2, h3 { text-wrap: balance; margin: 0; letter-spacing: -0.02em; line-height: 1.05; font-weight: 700; }
h2 { font-size: clamp(1.9rem, 1.2rem + 2.4vw, 3.1rem); }
p { margin: 0; text-wrap: pretty; }
a { color: inherit; }
svg { display: block; }
img { max-width: 100%; height: auto; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--terra); color: #fff; padding: 8px 14px; border-radius: 6px; z-index: 100; }
.skip:focus { left: 8px; }

/* ---------- Botones ---------- */
.btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border-radius: 999px; font-weight: 700; font-size: 1rem; text-decoration: none; border: 0; cursor: pointer; transition: transform .25s var(--ease), background .2s, box-shadow .25s; line-height: 1; white-space: nowrap; font-family: var(--font); }
.btn svg { width: 20px; height: 20px; fill: currentColor; }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn:focus-visible { outline: 3px solid var(--ochre); outline-offset: 3px; }
.btn-primary { background: var(--terra); color: #fff; }
.btn-primary:hover { background: var(--terra-2); }
.btn-ghost { background: transparent; color: var(--cream); box-shadow: inset 0 0 0 1.5px rgba(244,238,226,.45); }
.btn-ghost:hover { box-shadow: inset 0 0 0 1.5px rgba(244,238,226,.9); }
.btn-wa { background: var(--wa); color: #06331b; }
.btn-wa:hover { background: #1fc25b; }
.btn-sm { padding: 10px 16px; font-size: .92rem; }
.btn-lg { padding: 18px 30px; font-size: 1.1rem; }

/* ---------- Nav ---------- */
.nav { position: sticky; top: 0; z-index: var(--z-nav); display: flex; align-items: center; gap: 24px; padding: 14px var(--pad); color: var(--cream); background: transparent; transition: background .3s, box-shadow .3s; }
.nav.is-solid { background: rgba(13,44,32,.92); backdrop-filter: blur(10px); box-shadow: 0 1px 0 rgba(244,238,226,.08); }
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.brand-mark { width: 30px; height: 30px; fill: var(--cream); }
.brand-mark .mk-acc { fill: var(--ochre); }
.brand-mark .mk-dim { opacity: .55; }
.brand-word { font-weight: 500; letter-spacing: -0.02em; font-size: 1.25rem; }
.brand-word b { font-weight: 800; }
.nav-links { display: flex; gap: 22px; margin-left: auto; }
.nav-links a { text-decoration: none; font-weight: 600; font-size: .95rem; opacity: .85; padding: 6px 0; border-bottom: 2px solid transparent; }
.nav-links a:hover { opacity: 1; border-color: var(--ochre); }
@media (max-width: 760px) { .nav-links { display: none; } .nav .btn { margin-left: auto; } }

/* ---------- Hero ---------- */
.hero { position: relative; background: var(--green); color: var(--cream); min-height: 100svh; margin-top: -62px; padding: 120px var(--pad) 0; display: grid; grid-template-rows: 1fr auto auto; overflow: hidden; isolation: isolate; }
.hero-terrain { position: absolute; inset: -10% -10% -10% 20%; z-index: -1; opacity: 0; transition: opacity 1.6s ease; pointer-events: none; }
.hero-terrain.is-in { opacity: 1; }
.hero-terrain svg { width: 100%; height: 100%; }
.hero-terrain .min { stroke: rgba(244,238,226,.16); }
.hero-terrain .maj { stroke: rgba(224,172,85,.55); }
.hero-terrain path { stroke-dasharray: 2000; animation: contour-drift 90s linear infinite; }
@keyframes contour-drift { to { stroke-dashoffset: -4000; } }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 90% at 20% 40%, var(--green) 30%, rgba(13,44,32,.35) 70%, rgba(13,44,32,.1) 100%); pointer-events: none; }
.hero-inner { max-width: 860px; align-self: center; padding: 20px 0 40px; }
.hero-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-family: var(--cond); text-transform: uppercase; letter-spacing: .08em; font-size: 1.05rem; font-weight: 600; color: var(--cream-dim); margin-bottom: 26px; }
.hero-kicker .sep { width: 22px; height: 1px; background: rgba(244,238,226,.35); }
.hero-tag { color: var(--green); background: var(--ochre); padding: 3px 10px 2px; border-radius: 4px; }
.hero h1 { font-size: clamp(3.4rem, 2rem + 8vw, 7.4rem); font-weight: 800; letter-spacing: -0.035em; line-height: .92; color: #fff; }
.hero-lead { margin-top: 30px; font-size: clamp(1.1rem, 1rem + .6vw, 1.45rem); line-height: 1.5; max-width: 40ch; color: var(--cream); }
.hero-lead strong { color: var(--ochre); font-weight: 700; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 38px; }
.hero-data { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; margin: 0; border-top: 1px solid rgba(244,238,226,.18); }
.hero-data > div { padding: 22px 22px 22px 0; border-right: 1px solid rgba(244,238,226,.14); }
.hero-data > div + div { padding-left: 22px; }
.hero-data > div:last-child { border-right: 0; }
.hero-data dt { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cream-dim); font-weight: 600; margin-bottom: 4px; }
.hero-data dd { margin: 0; font-family: var(--cond); font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.3rem); font-weight: 600; line-height: 1; color: #fff; }
.hero-note { font-size: .78rem; color: rgba(244,238,226,.5); padding: 14px 0 18px; }
@media (max-width: 760px) {
  .hero { padding-top: 100px; }
  .hero-terrain { inset: -10% -30% 30% -10%; opacity: .7; }
  .hero-data > div { border-right: 0; border-bottom: 1px solid rgba(244,238,226,.12); padding: 14px 0; }
  .hero-data > div + div { padding-left: 0; }
}

/* ---------- Secciones comunes ---------- */
section { padding: clamp(64px, 9vw, 120px) var(--pad); }
.reveal { opacity: 1; transform: none; }
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .reveal { opacity: 1; transform: none; transition: none; } .hero-terrain path { animation: none; } }

/* ---------- Ubicación + mapa ---------- */
.loc { background: var(--green-2); color: var(--cream); padding-bottom: 0; }
.loc-head { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 40px 64px; align-items: end; max-width: 1400px; margin: 0 auto 40px; }
.loc-head h2 { color: #fff; }
.loc-head p { max-width: 58ch; color: var(--cream-2); font-size: 1.05rem; }
.loc-facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 18px 28px; margin: 8px 0 0; border-top: 1px solid rgba(244,238,226,.16); padding-top: 22px; }
.loc-facts dt { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cream-dim); font-weight: 600; }
.loc-facts dd { margin: 2px 0 0; font-family: var(--cond); font-size: 1.7rem; font-weight: 600; line-height: 1; color: #fff; }
.loc-facts dd small { font-size: .95rem; color: var(--cream-dim); margin-left: 8px; font-weight: 500; }
.loc-facts-note a { color: var(--ochre); }
.loc-facts-note { grid-column: 1 / -1; font-size: .78rem; color: rgba(244,238,226,.5); }
@media (max-width: 860px) { .loc-head { grid-template-columns: 1fr; } }

.map-wrap { position: relative; margin: 0 calc(-1 * var(--pad)); height: min(82vh, 860px); min-height: 520px; background: var(--green); }
.map { position: absolute; inset: 0; }
.map.is-plan { background: var(--green); }
.map-ui { position: absolute; z-index: var(--z-mapui); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; left: var(--pad); pointer-events: none; }
.map-ui > * { pointer-events: auto; }
.map-ui-top { top: 18px; }
.map-ui-bottom { bottom: 44px; left: auto; right: var(--pad); justify-content: flex-end; }
.seg { display: inline-flex; background: rgba(13,44,32,.85); backdrop-filter: blur(8px); border-radius: 999px; padding: 4px; box-shadow: 0 6px 20px rgba(0,0,0,.25); }
.seg-btn, .chip-btn { font-family: var(--font); font-weight: 700; font-size: .9rem; border: 0; cursor: pointer; border-radius: 999px; padding: 9px 16px; color: var(--cream); background: transparent; transition: background .2s, color .2s; display: inline-flex; align-items: center; gap: 8px; text-decoration: none; line-height: 1; }
.seg-btn.is-on { background: var(--cream); color: var(--green); }
.chip-btn { background: rgba(13,44,32,.85); backdrop-filter: blur(8px); box-shadow: 0 6px 20px rgba(0,0,0,.25); padding: 12px 18px; }
.chip-btn:hover { background: rgba(27,74,56,.95); }
.chip-btn.is-on { background: var(--ochre); color: var(--green); }
.chip-btn svg { width: 16px; height: 16px; fill: currentColor; }
.chip-link svg { fill: none; }
.chip-tour { background: var(--ochre); color: var(--green); }
.chip-tour:hover { background: #e9bb6c; }
.seg-btn:focus-visible, .chip-btn:focus-visible { outline: 3px solid var(--ochre); outline-offset: 2px; }
.map-legend { position: absolute; z-index: var(--z-mapui); left: var(--pad); bottom: 18px; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .8rem; color: var(--cream); background: rgba(13,44,32,.8); backdrop-filter: blur(8px); padding: 10px 14px; border-radius: 10px; max-width: min(46vw, 420px); }
.map-legend span { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.lg { width: 14px; height: 10px; border-radius: 2px; display: inline-block; }
.lg-stage { border: 2px solid var(--ochre); background: transparent; }
.lg-avail { background: var(--cream); }
.lg-sold { background: var(--green); border: 1px solid rgba(244,238,226,.5); }
.lg-plan { border: 1px solid var(--cream); background: rgba(244,238,226,.15); }
@media (max-width: 760px) {
  .map-wrap { height: 78vh; }
  .map-legend { display: none; }
  .map-ui-bottom { right: auto; left: var(--pad); bottom: 46px; justify-content: flex-start; }
  .map-ui-top { right: 56px; }
}
.map-credit { max-width: 1400px; margin: 0 auto; padding: 14px 0 22px; font-size: .78rem; color: rgba(244,238,226,.55); }
.map-fallback { position: absolute; inset: 0; overflow: auto; padding: 24px; color: var(--cream); }
.map-fallback img { max-height: 70%; margin: 0 auto; display: block; }
.map-fallback p { text-align: center; margin-top: 16px; }

/* POI markers */
.poi { display: inline-flex; align-items: center; gap: 7px; font-family: var(--cond); font-size: 15px; font-weight: 600; letter-spacing: .02em; color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.8); white-space: nowrap; pointer-events: none; }
.poi i { width: 8px; height: 8px; border-radius: 50%; background: var(--cream); box-shadow: 0 0 0 3px rgba(13,44,32,.7); }
.poi-access { font-size: 17px; color: #fff; }
.poi-access i { width: 12px; height: 12px; background: var(--terra); box-shadow: 0 0 0 4px rgba(200,95,49,.35), 0 0 0 8px rgba(200,95,49,.15); }
.poi-access span { background: var(--terra); color: #fff; text-shadow: none; padding: 3px 9px 2px; border-radius: 4px; }
/* popup */
.maplibregl-popup-content { font-family: var(--font); background: var(--cream); color: var(--ink); border-radius: 12px; padding: 14px 16px; box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.maplibregl-popup-tip { border-top-color: var(--cream) !important; }
.maplibregl-popup-close-button { font-size: 20px; padding: 4px 8px; color: var(--ink-2); }
.pp-k { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--terra); }
.pp-n { font-family: var(--cond); font-size: 1.9rem; font-weight: 700; line-height: 1; margin: 2px 0 8px; }
.pp-p { font-size: .9rem; color: var(--ink-2); margin-bottom: 12px; line-height: 1.4; }
.maplibregl-ctrl-group { background: rgba(13,44,32,.85) !important; backdrop-filter: blur(8px); border-radius: 10px !important; overflow: hidden; }
.maplibregl-ctrl-group button { filter: invert(1) hue-rotate(180deg); }
.maplibregl-ctrl-attrib { font-size: 10px; }

/* ---------- Etapa / lotes ---------- */
.stage { background: var(--cream); }
.stage-head { max-width: 1400px; margin: 0 auto 40px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 24px 64px; align-items: end; }
.stage-head p { color: var(--ink-2); font-size: 1.05rem; max-width: 56ch; }
@media (max-width: 860px) { .stage-head { grid-template-columns: 1fr; } }
.stage-grid { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 32px; align-items: start; }
@media (max-width: 960px) { .stage-grid { grid-template-columns: 1fr; } }
.stage-plan { position: relative; background: var(--green); border-radius: 18px; padding: 22px; color: var(--cream); overflow: hidden; }
.plan-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; font-size: .88rem; margin-bottom: 14px; }
.plan-count b { font-family: var(--cond); font-size: 1.5rem; font-weight: 700; color: var(--ochre); margin-right: 4px; }
.plan-key { display: inline-flex; align-items: center; gap: 7px 10px; color: var(--cream-dim); }
.plan-key .lg { margin-left: 6px; }
.plan-svg { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-color: var(--green-soft) transparent; }
.plan-svg svg { width: 100%; height: auto; margin: 0 auto; display: block; overflow: visible; }
.plan-hint { display: none; font-size: .8rem; color: var(--cream-dim); margin-top: 8px; }
@media (max-width: 700px) { .plan-svg svg { min-width: 680px; } .plan-hint { display: block; } .plan-north { position: static; margin-top: 10px; } }
.plan-north { position: absolute; right: 22px; bottom: 18px; display: inline-flex; align-items: center; gap: 6px; font-family: var(--cond); text-transform: uppercase; letter-spacing: .1em; font-size: .85rem; color: var(--cream-dim); }
.plan-north svg { width: 22px; height: 22px; fill: var(--ochre); transition: transform .4s; }
.sv-stage { fill: rgba(224,172,85,.06); stroke: var(--ochre); stroke-width: 2.2; }
.sv-mz { font-family: var(--cond); font-size: 12px; font-weight: 600; fill: var(--cream-dim); text-anchor: middle; letter-spacing: .08em; text-transform: uppercase; }
.sv-lot polygon { stroke: var(--green); stroke-width: 1.2; stroke-linejoin: round; transition: fill .2s, stroke .2s; }
.sv-lot text { font-family: var(--cond); font-size: 9.5px; font-weight: 600; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.sv-lot.is-avail polygon { fill: var(--cream); cursor: pointer; }
.sv-lot.is-avail text { fill: var(--green); }
.sv-lot.is-avail:hover polygon, .sv-lot.is-avail:focus-visible polygon { fill: var(--ochre); }
.sv-lot.is-avail:focus-visible { outline: none; }
.sv-lot.is-sold polygon { fill: var(--green-3); }
.sv-lot.is-sold text { fill: rgba(244,238,226,.4); }
.sv-lot.is-sel polygon { fill: var(--terra) !important; stroke: #fff; stroke-width: 1.4; }
.sv-lot.is-sel text { fill: #fff; }

.lot-panel { position: sticky; top: 84px; background: #fff; border-radius: 18px; padding: 26px; box-shadow: 0 1px 0 rgba(11,31,23,.08), 0 20px 40px -30px rgba(11,31,23,.35); }
.lot-panel-kicker { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; color: var(--terra); margin-bottom: 8px; }
.lot-empty p:last-child { color: var(--ink-2); font-size: .95rem; }
.lot-number { font-family: var(--cond); font-size: 3.2rem; font-weight: 700; line-height: .95; letter-spacing: -0.01em; margin-bottom: 14px; }
.lot-dl { margin: 0 0 18px; display: grid; gap: 10px; }
.lot-dl > div { display: grid; grid-template-columns: 96px 1fr; gap: 10px; font-size: .93rem; border-top: 1px solid var(--cream-2); padding-top: 8px; }
.lot-dl dt { color: var(--ink-2); }
.lot-dl dd { margin: 0; font-weight: 600; }
.link-btn { background: none; border: 0; color: var(--green-2); font-family: var(--font); font-weight: 700; font-size: .92rem; cursor: pointer; padding: 12px 0 0; text-decoration: underline; text-underline-offset: 4px; }
.lot-list { margin-top: 26px; border-top: 1px solid var(--cream-2); padding-top: 18px; }
.chip-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 8px; }
.chip-mz { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--ink-2); width: 100%; }
.chip { font-family: var(--cond); font-size: 1rem; font-weight: 600; padding: 5px 9px; border-radius: 6px; border: 1px solid var(--cream-dim); background: var(--cream); color: var(--green); cursor: pointer; line-height: 1; transition: background .15s, border-color .15s; }
.chip:hover { border-color: var(--green-soft); background: #fff; }
.chip.is-sel { background: var(--terra); border-color: var(--terra); color: #fff; }
.chip:focus-visible { outline: 2px solid var(--terra); outline-offset: 2px; }
.stage-docs { max-width: 1400px; margin: 36px auto 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.doc { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border: 1px solid var(--cream-dim); border-radius: 14px; text-decoration: none; background: #fff; transition: border-color .2s, transform .25s var(--ease); }
.doc:hover { border-color: var(--green-soft); transform: translateY(-2px); }
.doc svg { width: 30px; height: 30px; color: var(--terra); flex: none; }
.doc span { display: grid; gap: 2px; }
.doc small { color: var(--ink-2); font-size: .85rem; }

/* ---------- Precio ---------- */
.price { background: var(--green); color: var(--cream); }
.price-head { max-width: 1400px; margin: 0 auto 44px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 24px 64px; align-items: end; }
.price-head h2 { color: #fff; }
.price-head p { color: var(--cream-2); font-size: 1.05rem; max-width: 52ch; }
@media (max-width: 860px) { .price-head { grid-template-columns: 1fr; } }
.price-cols { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 20px; }
@media (max-width: 860px) { .price-cols { grid-template-columns: 1fr; } }
.price-card { border: 1px solid rgba(244,238,226,.2); border-radius: 20px; padding: clamp(24px, 3vw, 40px); display: grid; gap: 14px; align-content: start; }
.price-card h3 { font-size: 1rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ochre); font-weight: 700; }
.price-card p { color: var(--cream-2); }
.price-big { font-family: var(--cond); font-size: clamp(3rem, 2rem + 4vw, 5.2rem); font-weight: 700; line-height: .95; color: #fff !important; letter-spacing: -0.01em; }
.price-big small { font-size: .38em; font-weight: 600; vertical-align: top; margin-right: 6px; letter-spacing: .04em; color: var(--cream-dim); }
.price-plus { font-family: var(--font); font-size: 1rem; font-weight: 600; color: var(--cream-dim); letter-spacing: 0; margin-left: 6px; }
.price-card-fin { background: var(--green-2); }
.price-line { font-size: 1.25rem; color: #fff !important; }
.price-line b { color: var(--ochre); }
.pay-bar { display: flex; height: 44px; border-radius: 8px; overflow: hidden; font-family: var(--cond); font-size: .95rem; font-weight: 600; letter-spacing: .03em; margin: 6px 0; }
.pay-ant { width: var(--w); background: var(--ochre); color: var(--green); display: flex; align-items: center; padding: 0 12px; white-space: nowrap; overflow: hidden; }
@media (max-width: 600px) { .pay-ant .long { display: none; } .pay-cuotas span { font-size: .85rem; } }
.pay-cuotas { flex: 1; background: repeating-linear-gradient(90deg, rgba(244,238,226,.28) 0 calc(100% / 30 - 2px), transparent calc(100% / 30 - 2px) calc(100% / 30)); color: var(--cream); display: flex; align-items: center; padding: 0 12px; }
.price-notes { max-width: 1400px; margin: 28px auto 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px 32px; color: var(--cream-2); font-size: .95rem; }
.price-notes li { border-top: 1px solid rgba(244,238,226,.18); padding-top: 12px; }
.price-notes b { color: #fff; }

/* ---------- Barrio ---------- */
.hood { background: var(--cream); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px 64px; max-width: calc(1400px + 2 * var(--pad)); margin: 0 auto; align-items: start; }
@media (max-width: 860px) { .hood { grid-template-columns: 1fr; } }
.hood-text p { color: var(--ink-2); font-size: 1.05rem; max-width: 52ch; margin-top: 18px; }
.hood-facts { margin: 28px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; }
.hood-facts dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-2); font-weight: 700; }
.hood-facts dd { margin: 2px 0 0; font-weight: 600; }
.services { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--cream-dim); }
.services li { display: flex; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--cream-dim); font-weight: 600; font-size: 1.05rem; }
.services svg { width: 26px; height: 26px; fill: var(--terra); color: var(--terra); flex: none; }

/* ---------- FAQ ---------- */
.faq { background: #fff; }
.faq h2 { max-width: 1400px; margin: 0 auto 32px; }
.faq-list { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 0 48px; }
details { border-top: 1px solid var(--cream-dim); }
summary { cursor: pointer; list-style: none; padding: 18px 36px 18px 0; font-weight: 700; font-size: 1.05rem; position: relative; }
summary::-webkit-details-marker { display: none; }
summary::after { content: ""; position: absolute; right: 6px; top: 24px; width: 10px; height: 10px; border-right: 2px solid var(--terra); border-bottom: 2px solid var(--terra); transform: rotate(45deg); transition: transform .3s var(--ease); }
details[open] summary::after { transform: rotate(225deg); top: 28px; }
details p { padding: 0 0 20px; color: var(--ink-2); max-width: 62ch; }

/* ---------- Final ---------- */
.final { background: var(--terra); color: #fff; text-align: center; display: grid; justify-items: center; gap: 18px; }
.final h2 { color: #fff; font-size: clamp(2.2rem, 1.4rem + 3vw, 4rem); }
.final p { max-width: 46ch; font-size: 1.1rem; opacity: .95; }
.final .btn { margin-top: 8px; }
.final-phone { font-family: var(--cond); font-size: 1.3rem; letter-spacing: .04em; opacity: .9; }

/* ---------- Footer ---------- */
.foot { background: var(--green); color: var(--cream-dim); padding: 44px var(--pad); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 24px 64px; font-size: .88rem; }
.foot .brand-word { color: var(--cream); display: block; margin-bottom: 8px; }
.foot-legal { line-height: 1.6; }
@media (max-width: 760px) { .foot { grid-template-columns: 1fr; } }

/* ---------- WhatsApp flotante ---------- */
.wa-float { position: fixed; right: 18px; bottom: 18px; z-index: var(--z-float); width: 56px; height: 56px; border-radius: 50%; background: var(--wa); color: #06331b; display: grid; place-items: center; box-shadow: 0 10px 28px rgba(0,0,0,.28); transition: transform .25s var(--ease); }
.wa-float:hover { transform: scale(1.06); }
.wa-float svg { width: 30px; height: 30px; fill: currentColor; }
.wa-float:focus-visible { outline: 3px solid var(--ochre); outline-offset: 3px; }

/* ===== Orientación del sol en la ubicación (Andrés, 7-sep) ===== */
.loc-sun{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:14px 0 0;
  font-size:14px;line-height:1.5;color:rgba(244,238,226,.72)}
.loc-sun b{color:#F4EEE2;font-weight:600}
.loc-sun i{width:1px;height:14px;background:rgba(244,238,226,.22)}
.loc-sun .sun-r,.loc-sun .sun-s{width:11px;height:11px;border-radius:50%;flex:0 0 auto}
.loc-sun .sun-r{background:#E0AC55;box-shadow:0 0 10px rgba(224,172,85,.7)}
.loc-sun .sun-s{background:rgba(224,172,85,.35)}

/* ===== Nosotros · Poblar Desarrollos ===== */
.about{background:var(--green-2);color:var(--cream);padding:clamp(64px,9vw,120px) var(--pad)}
.about>*{max-width:1400px;margin-left:auto;margin-right:auto}
.about h2{color:#fff}
.about-k{margin:0 0 10px;font:700 11px/1 'Barlow Condensed',system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#E0AC55}
.about-head{max-width:760px}
.about-head h2{margin:0 0 16px;font-size:clamp(28px,4.4vw,46px);line-height:1.08;letter-spacing:-.02em}
.about-head p{margin:0;font-size:15.5px;line-height:1.68;color:rgba(244,238,226,.76)}
.about-stats{display:flex;flex-wrap:wrap;gap:14px;margin:34px 0}
.about-stats div{flex:1 1 180px;background:rgba(244,238,226,.05);border:1px solid rgba(244,238,226,.12);border-radius:14px;padding:18px 20px}
.about-stats b{display:block;font-size:38px;line-height:1;font-weight:800;color:#E0AC55;letter-spacing:-.02em}
.about-stats span{display:block;margin-top:6px;font-size:13px;color:rgba(244,238,226,.62)}
.about-cols{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(24px,4vw,60px);align-items:start}
.about-cols h3{margin:0 0 14px;font:700 11px/1 'Barlow Condensed',system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,238,226,.5)}
.about-list{list-style:none;margin:0;padding:0;columns:2;column-gap:28px}
.about-list li{break-inside:avoid;margin:0 0 9px;font-size:14px;line-height:1.4;color:rgba(244,238,226,.86)}
.about-list i{display:block;font-style:normal;font-size:11.5px;color:rgba(244,238,226,.45)}
.about-staff{list-style:none;margin:0 0 18px;padding:0}
.about-staff li{margin:0 0 8px;font-size:14.5px;color:rgba(244,238,226,.86)}
.about-note{margin:0;font-size:13.5px;line-height:1.6;color:rgba(244,238,226,.58)}
@media (max-width:860px){ .about-cols{grid-template-columns:1fr} .about-list{columns:1} }

/* Marca: Mercado Lote por defecto, Poblar con ?poblar=1 (ver marca.js) */
.brand-poblar{display:none !important}
.marca-poblar .brand-poblar{display:flex !important}
.marca-poblar .drawer-foot .brand-poblar{display:inline !important}
.marca-poblar p.brand-poblar,.marca-poblar span.brand-poblar{display:block !important}
.marca-poblar .brand-ml{display:none !important}
.drawer-foot .brand-ml{display:inline}
.brand-logo{width:30px;height:30px;border-radius:7px;object-fit:cover;flex:0 0 auto}
.brand-poblar .brand-word b{margin-left:.28em}

/* ===== Testimonios (se muestra solo si hay material real) ===== */
.testi{background:var(--cream)}
.testi-head{max-width:1400px;margin:0 auto 34px}
.testi-k{margin:0 0 10px;font-family:var(--cond);font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--terra)}
.testi-head h2{margin:0;font-size:clamp(1.7rem,4vw,2.7rem);line-height:1.1;letter-spacing:-.02em}
.testi-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.testi-card{margin:0;background:#fff;border:1px solid var(--cream-dim);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.testi-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.testi-card figcaption{padding:18px 20px 20px}
.testi-card blockquote{margin:0 0 12px;font-size:.98rem;line-height:1.6;color:var(--ink)}
.testi-card blockquote::before{content:"“"}
.testi-card blockquote::after{content:"”"}
.testi-who{margin:0;font-weight:700;font-size:.9rem;color:var(--ink)}
.testi-who span{display:block;margin-top:3px;font-weight:500;font-size:.8rem;color:var(--ink-2)}
.brand-poblar .brand-word b{margin-left:.28em}

/* Logo del barrio en el hero */
.hero-logo{display:block;width:auto;height:clamp(74px,8vw,104px);margin:0 0 20px}
@media (max-width:760px){ .hero-logo{height:68px;margin-bottom:14px} }

/* Orientación del lote en el panel del plano */
.ld-orient dd { line-height: 1.3; }
.ld-orient small { display: block; margin-top: 3px; font-size: .74rem; font-weight: 500; color: var(--ink-2); letter-spacing: 0; text-transform: none; }
