/* caminoderosas — sistema visual
   papel #F4EFE6 · tinta #17150F · verde #20392C · punzó #A3282F · crema #F2ECE0
   Spectral (títulos) · Hanken Grotesk (UI) */

:root{
  --papel:#F4EFE6;
  --tinta:#17150F;
  --verde:#20392C;
  --punzo:#A3282F;
  --crema:#F2ECE0;
  --tinta-suave:rgba(23,21,15,.62);
  --tinta-borde:rgba(23,21,15,.14);
  --ff-serif:'Spectral', Georgia, serif;
  --ff-sans:'Hanken Grotesk', -apple-system, system-ui, sans-serif;
  --nav-h:64px;
  --sombra-suave:0 6px 24px rgba(23,21,15,.10);
  --sombra-fuerte:0 12px 40px rgba(23,21,15,.18);
  /* Paleta viva de tipologías — pivote terracota #C05B39. Definida acá una vez y
     consumida por: lote (fill SVG), sw-* (chip filtro), mp-tip-badge (panel),
     mp-lista-lote-tip (lista mobile). Cambiar acá cambia todo. */
  --tip-A:#F2C14E;
  --tip-B:#E08A3C;
  --tip-C:#C05B39;
  --tip-D:#8A4A2B;
  /* Ink sobre fill: A y B claros → tinta oscura; C y D oscuros → blanco. */
  --tip-A-ink:#17150F;
  --tip-B-ink:#17150F;
  --tip-C-ink:#FFFFFF;
  --tip-D-ink:#FFFFFF;
  --evlp-verde:#2F5D44;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 8px); }
body{
  margin:0; background:var(--papel); color:var(--tinta);
  font-family:var(--ff-sans); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
button{ font-family:inherit; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:1000;
  background:var(--verde); color:#fff; padding:12px 16px; text-decoration:none;
}
.skip:focus{ left:12px; top:12px; }

.wrap{ max-width:1160px; margin:0 auto; padding:0 24px; }
.wrap-narrow{ max-width:820px; margin:0 auto; padding:0 24px; }

.eyebrow{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; color:var(--punzo); margin:0 0 12px; }
.eyebrow-dark{ color:var(--punzo); }
.h2{ font-family:var(--ff-serif); font-weight:600; font-size:clamp(28px, 4vw, 44px); line-height:1.12; margin:0 0 24px; color:var(--verde); }
.h3{ font-family:var(--ff-serif); font-weight:600; font-size:24px; margin:0 0 12px; color:var(--verde); }

.section{ padding:80px 0; }
.section-alt{ background:var(--crema); }

/* ─── NAV ─── */
.nav{
  position:sticky; top:0; z-index:80; background:var(--papel);
  border-bottom:1px solid var(--tinta-borde);
  backdrop-filter:saturate(1.4) blur(6px);
}
.nav-inner{ max-width:1160px; margin:0 auto; padding:0 24px; height:var(--nav-h); display:flex; align-items:center; gap:24px; }
.wordmark{
  font-family:var(--ff-serif); font-weight:700; font-size:18px; letter-spacing:.12em;
  color:var(--verde); text-decoration:none; white-space:nowrap;
}
.wordmark span{ font-weight:400; font-size:14px; margin:0 4px; opacity:.7; }
.nav-links{ margin-left:auto; display:flex; gap:24px; }
.nav-links a{ text-decoration:none; font-size:14px; color:var(--tinta); opacity:.85; }
.nav-links a:hover{ color:var(--punzo); opacity:1; }
.nav-cta{ margin-left:16px; }
.nav-toggle{ display:none; background:none; border:0; font-size:22px; cursor:pointer; color:var(--verde); }

@media (max-width: 820px){
  .nav-links{ display:none; position:absolute; top:var(--nav-h); left:0; right:0; background:var(--papel); flex-direction:column; padding:12px 24px; gap:6px; border-bottom:1px solid var(--tinta-borde); }
  .nav-links.is-open{ display:flex; }
  .nav-links a{ padding:12px 0; font-size:16px; border-bottom:1px solid var(--tinta-borde); }
  .nav-cta{ display:none; }
  .nav-toggle{ display:block; margin-left:auto; }
}

/* ─── BOTONES ─── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 22px; border-radius:8px; font-weight:600; font-size:15px;
  text-decoration:none; border:0; cursor:pointer; transition:filter .15s, transform .15s;
  white-space:nowrap;
}
.btn:hover{ filter:brightness(1.08); }
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--verde); color:#fff; }
.btn-wa{ background:var(--punzo); color:#fff; }
.btn-wa::before{ content:'✓'; font-weight:700; }
.btn-big{ padding:18px 32px; font-size:17px; }

/* ─── HERO ─── */
.hero{ position:relative; min-height:88vh; display:flex; align-items:center; overflow:hidden; color:#fff; }
.hero-bg{
  position:absolute; inset:0;
  background:url('/assets/aerea-v1.webp') center/cover no-repeat;
  animation:kb 25s ease-in-out infinite alternate;
  transform-origin:center;
}
@keyframes kb{ 0%{ transform:scale(1); } 100%{ transform:scale(1.06); } }
.hero-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(32,57,44,.55) 0%, rgba(32,57,44,.62) 100%); }
.hero-inner{ position:relative; max-width:1160px; margin:0 auto; padding:120px 24px 140px; }
.hero .eyebrow{ color:#F2ECE0; opacity:.9; }
.hero-title{
  font-family:var(--ff-serif); font-weight:600; color:#fff;
  font-size:clamp(36px, 6.4vw, 76px); line-height:1.02; margin:0 0 20px;
  max-width:900px; letter-spacing:-.01em;
}
.hero-sub{ max-width:640px; font-size:17px; line-height:1.5; color:rgba(255,255,255,.9); margin:0 0 32px; }
.hero-cta{ display:flex; gap:12px; flex-wrap:wrap; }
.hero-band{
  position:absolute; left:0; right:0; bottom:0;
  background:var(--punzo); color:#fff; padding:12px 24px;
  font-size:14px; text-align:center; letter-spacing:.02em;
}
.hero-band b{ font-weight:700; }

/* ─── GRID ─── */
.grid{ display:grid; gap:24px; margin-top:32px; }
.grid-4{ grid-template-columns:repeat(4, 1fr); }
.grid-3{ grid-template-columns:repeat(3, 1fr); }
@media (max-width:920px){ .grid-4{ grid-template-columns:repeat(2,1fr); } .grid-3{ grid-template-columns:1fr; } }
@media (max-width:520px){ .grid-4{ grid-template-columns:1fr; } }

.card-porque, .card-perfil{
  background:var(--papel); border:1px solid var(--tinta-borde); border-radius:12px;
  padding:24px; display:flex; flex-direction:column;
}
.section-alt .card-porque, .section-alt .card-perfil{ background:#fff; }
.card-num{
  font-family:var(--ff-serif); font-size:36px; line-height:1; color:var(--punzo);
  font-weight:600; margin-bottom:12px;
}
.card-title{ font-family:var(--ff-serif); font-size:20px; margin:0 0 8px; color:var(--verde); font-weight:600; }
.card-porque p, .card-perfil p{ margin:0; color:var(--tinta); opacity:.85; font-size:15px; line-height:1.5; }

/* ─── MASTERPLAN ─── */
.pasos{ display:flex; gap:24px; padding:0; margin:0 0 32px; list-style:none; flex-wrap:wrap; font-size:14px; color:var(--tinta-suave); }
.pasos li{ display:flex; align-items:center; gap:8px; }
.pasos b{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--punzo); color:#fff; font-weight:700; }

.mp{ --mp-acento:var(--punzo); margin:16px 0; }
.mp-topbar{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-bottom:14px; align-items:flex-start; }
.mp-legend{ display:flex; gap:16px; flex-wrap:wrap; font-size:14px; }
.mp-leg{ display:inline-flex; align-items:center; gap:6px; }
.mp-leg i{ display:inline-block; width:12px; height:12px; border-radius:50%; flex-shrink:0; }
.mp-leg-disp i{ background:var(--mp-acento); }
.mp-leg-res i{ background:transparent; border:1.5px dashed var(--mp-acento); }
.mp-leg-ven i{ background:#BDB6A8; }
.mp-leg b{ color:var(--mp-acento); font-weight:700; margin-left:2px; }

.mp-filters{ font-size:13px; max-width:min(520px,100%); }
.mp-filters summary{ cursor:pointer; color:var(--mp-acento); font-weight:600; list-style:none; padding:6px 0; }
.mp-filters summary::-webkit-details-marker{ display:none; }
.mp-filters summary::before{ content:'▸ '; display:inline-block; transition:transform .15s; }
.mp-filters[open] summary::before{ transform:rotate(90deg); }
.mp-filters fieldset{ border:0; padding:8px 0 4px; margin:0; display:flex; flex-wrap:wrap; gap:8px 14px; }
.mp-filters legend{ font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--tinta-suave); margin-right:8px; padding:0; }
.mp-filters label{ display:inline-flex; align-items:center; gap:5px; cursor:pointer; font-size:12px; }
.mp-sw{ display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:2px; }
.mp-sw.sw-A{ background:var(--tip-A); }
.mp-sw.sw-B{ background:var(--tip-B); }
.mp-sw.sw-C{ background:var(--tip-C); }
.mp-sw.sw-D{ background:var(--tip-D); }

.mp-wrap{ position:relative; background:var(--crema); border-radius:14px; padding:10px; overflow:hidden; }
.mp-svg{ width:100%; height:auto; display:block; }
/* Calles: casing doble. Inferior gruesa color arena; superior fina color crema.
   Ambas pointer-events:none — no interfieren con lotes. */
.calles-casing line{ stroke:#CBC2AF; stroke-width:4.5; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.calles-top    line{ stroke:#EFE9DC; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
/* EVLP: fill lo pone el pattern (<url(#arbolado)> en el SVG). CSS solo bloquea events. */
.evlp .evlp-poly{ pointer-events:none; }
.evlp .evlp-label{ fill:var(--crema); font-family:var(--ff-sans); font-size:6px; font-weight:600; pointer-events:none; }
.lote{ stroke:rgba(23,21,15,.22); stroke-width:0.3; cursor:pointer; transition:fill-opacity .15s, stroke-width .15s, stroke .15s; }
.lote.tip-A{ fill:var(--tip-A); }
.lote.tip-B{ fill:var(--tip-B); }
.lote.tip-C{ fill:var(--tip-C); }
.lote.tip-D{ fill:var(--tip-D); }
.lote.st-vendido{ fill:#BDB6A8; cursor:default; pointer-events:none; }
.lote.st-reservado{ fill-opacity:.45; stroke:var(--mp-acento); stroke-dasharray:2 1.5; stroke-width:0.6; }
/* Hover/focus: stroke punzó grueso para destacar sobre C/D (terracota + tostado
   oscuro son parientes cercanos entre sí y del hover naranja). Stroke 3px + halo. */
.lote:hover, .lote:focus-visible{ stroke:var(--mp-acento); stroke-width:3; outline:none; filter:drop-shadow(0 0 3px rgba(163,40,47,.5)); }
.lote.is-selected{ stroke:var(--mp-acento); stroke-width:3; filter:drop-shadow(0 0 3px rgba(163,40,47,.6)); }
.lote.is-hidden{ display:none; }
/* Placas de manzana. Desktop: pointer-events:none (no roban clicks a los lotes).
   Mobile: la placa es el tap-target del zoom por manzana. */
.placa{ pointer-events:none; }
.placa rect{ transition:transform .15s; }
.placa .placa-mz{ fill:var(--punzo); font-family:var(--ff-serif); font-weight:700; font-size:16px; }
.placa .placa-count{ fill:rgba(23,21,15,.7); font-family:var(--ff-sans); font-size:7px; letter-spacing:.05em; text-transform:uppercase; }
.north text{ font-family:var(--ff-sans); }

.mp-zoom-reset{
  position:absolute; left:10px; top:10px; background:var(--papel); color:var(--mp-acento);
  border:1px solid var(--mp-acento); border-radius:20px; padding:8px 14px; font-size:13px;
  font-weight:600; cursor:pointer; z-index:4; box-shadow:0 2px 6px rgba(0,0,0,.08);
}
.mp-zoom-reset[hidden]{ display:none; }

/* Panel del lote */
.mp-panel{
  position:absolute; right:10px; top:10px; bottom:10px; width:min(340px,80%);
  background:var(--papel); border-radius:10px; box-shadow:var(--sombra-fuerte);
  padding:22px 20px; transform:translateX(calc(100% + 24px));
  transition:transform .28s cubic-bezier(.2,.8,.2,1); overflow:auto;
  color:var(--tinta); z-index:5;
}
.mp-panel.is-open{ transform:translateX(0); }
.mp-panel-close{
  position:absolute; right:10px; top:10px; background:none; border:0; font-size:20px;
  cursor:pointer; color:rgba(23,21,15,.5); line-height:1; padding:4px 8px;
}
.mp-panel-eyebrow{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--punzo); font-weight:700; margin-bottom:10px; line-height:1.3; }
.mp-panel-m2{ font-family:var(--ff-serif); font-size:28px; color:var(--verde); font-weight:600; margin-bottom:12px; line-height:1.1; }
.mp-panel-tip{ font-size:14px; line-height:1.35; margin-bottom:6px; display:flex; align-items:center; gap:6px; }
.mp-tip-badge{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:24px; height:24px; padding:0 8px; border-radius:6px;
  font-family:var(--ff-serif); font-weight:700; font-size:14px; line-height:1;
}
.mp-tip-badge.tip-A{ background:var(--tip-A); color:var(--tip-A-ink); }
.mp-tip-badge.tip-B{ background:var(--tip-B); color:var(--tip-B-ink); }
.mp-tip-badge.tip-C{ background:var(--tip-C); color:var(--tip-C-ink); }
.mp-tip-badge.tip-D{ background:var(--tip-D); color:var(--tip-D-ink); }
.mp-panel-nivel{ font-size:13px; line-height:1.35; color:var(--tinta-suave); margin-bottom:14px; text-transform:capitalize; }
.mp-panel-precios{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-bottom:14px; padding:10px; background:var(--crema); border-radius:6px; }
.mp-panel-precios .mp-price{ min-width:0; }
.mp-panel-precios .mp-price-label{ display:block; color:var(--tinta-suave); font-size:11px; line-height:1.25; margin-bottom:2px; }
.mp-panel-precios .mp-price-val{ display:block; color:var(--verde); font-size:13px; font-weight:600; line-height:1.25; white-space:nowrap; }
.mp-panel-precios .mp-price-val span{ font:inherit; color:inherit; display:inline; }
.mp-panel-cuota{ font-size:13px; margin-bottom:14px; padding:10px 12px; background:rgba(163,40,47,.06); border-left:3px solid var(--punzo); border-radius:0 4px 4px 0; line-height:1.4; }
.mp-panel-cuota b{ color:var(--punzo); }
.mp-panel-est{ display:flex; align-items:center; gap:8px; font-size:13px; margin-bottom:14px; }
.mp-panel-est .mp-est-dot{ width:8px; height:8px; border-radius:50%; background:var(--punzo); }
.mp-panel-est.est-vendido .mp-est-dot{ background:#BDB6A8; }
.mp-panel-est.est-reservado .mp-est-dot{ background:#E0A83B; }
.mp-panel-cta{ display:block; text-align:center; padding:14px; border-radius:6px; }

.mp-nota{ font-size:12px; color:var(--tinta-suave); text-align:center; margin-top:10px; }

/* Lista de manzanas (mobile) */
.mp-lista{ display:none; }
@media (max-width:768px){
  .mp-lista{ display:block; margin-top:14px; border-top:1px solid rgba(23,21,15,.08); }
  .mp-lista-hint{ font-size:13px; color:var(--tinta-suave); margin:12px 4px 8px; line-height:1.45; }
  .mp-lista-mz{ border-bottom:1px solid rgba(23,21,15,.08); }
  .mp-lista-mz summary{ list-style:none; cursor:pointer; padding:16px 8px; display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:48px; font-size:15px; font-weight:600; color:var(--verde); }
  .mp-lista-mz summary::-webkit-details-marker{ display:none; }
  .mp-lista-mz summary::after{ content:'▸'; font-weight:400; color:var(--punzo); transition:transform .15s; }
  .mp-lista-mz[open] summary::after{ transform:rotate(90deg); }
  .mp-lista-mz-count{ font-size:12px; font-weight:400; color:var(--tinta-suave); letter-spacing:0; }
  .mp-lista-mz-count b{ color:var(--punzo); font-weight:700; }
  .mp-lista-lotes{ display:flex; flex-direction:column; padding:0 4px 8px; }
  .mp-lista-lote{ display:grid; grid-template-columns:70px 1fr 60px 90px; gap:8px; align-items:center; padding:12px 8px; min-height:48px; width:100%; background:transparent; border:0; border-top:1px solid rgba(23,21,15,.06); text-align:left; cursor:pointer; font:inherit; color:var(--tinta); font-size:13px; }
  .mp-lista-lote:first-child{ border-top:0; }
  .mp-lista-lote-num{ font-weight:600; color:var(--verde); }
  .mp-lista-lote-tip{
    display:inline-flex; align-items:center; justify-content:center;
    width:22px; height:22px; border-radius:5px;
    font-family:var(--ff-serif); font-weight:700; font-size:12px; line-height:1;
  }
  .mp-lista-lote-tip.tip-A{ background:var(--tip-A); color:var(--tip-A-ink); }
  .mp-lista-lote-tip.tip-B{ background:var(--tip-B); color:var(--tip-B-ink); }
  .mp-lista-lote-tip.tip-C{ background:var(--tip-C); color:var(--tip-C-ink); }
  .mp-lista-lote-tip.tip-D{ background:var(--tip-D); color:var(--tip-D-ink); }
  .mp-lista-lote-est{ font-size:12px; text-align:right; color:var(--punzo); font-weight:600; }
  .mp-lista-lote.st-vendido{ color:rgba(23,21,15,.4); cursor:default; }
  .mp-lista-lote.st-vendido .mp-lista-lote-est{ color:rgba(23,21,15,.4); }
  .mp-lista-lote.st-reservado .mp-lista-lote-est{ color:#B87D0B; }
  .mp-lista-lote.is-hidden{ display:none; }
  .mp-lista-lote.is-selected{ background:rgba(163,40,47,.08); box-shadow:inset 3px 0 0 var(--punzo); }
  /* Placa como tap-target del zoom por manzana en mobile. */
  .placa{ pointer-events:auto; cursor:pointer; }
  .placa .placa-mz{ font-size:19px; }
  .placa .placa-count{ font-size:8.5px; }
  .mp-panel{ position:fixed; left:0; right:0; bottom:0; top:auto; width:100%; max-width:none; border-radius:14px 14px 0 0; transform:translateY(100%); max-height:76vh; z-index:120; }
  .mp-panel.is-open{ transform:translateY(0); }
  .mp-panel-precios{ grid-template-columns:1fr; }
}

/* ─── PRECIOS TABLA ─── */
.tabla-precios{ overflow-x:auto; }
.tabla-precios table{ width:100%; border-collapse:collapse; background:#fff; border-radius:12px; overflow:hidden; box-shadow:var(--sombra-suave); }
.tabla-precios th, .tabla-precios td{ padding:14px 16px; text-align:left; border-bottom:1px solid var(--tinta-borde); font-size:15px; }
.tabla-precios thead th{ background:var(--verde); color:#fff; font-weight:600; letter-spacing:.02em; font-size:13px; text-transform:uppercase; }
.tabla-precios tbody th{ font-family:var(--ff-serif); color:var(--verde); font-size:17px; font-weight:600; }
.tabla-precios tr:last-child td, .tabla-precios tr:last-child th{ border-bottom:0; }
.destaque-punzo{ background:var(--punzo); color:#fff; padding:22px 24px; border-radius:12px; margin-top:24px; font-size:17px; text-align:center; }
.destaque-punzo b{ font-family:var(--ff-serif); font-size:24px; }

/* ─── CALCULADORA ─── */
.calc{ background:#fff; border-radius:14px; box-shadow:var(--sombra-suave); overflow:hidden; }
.section-alt .calc{ background:var(--papel); }
.calc-tabs{ display:flex; }
.calc-tab{
  flex:1; padding:16px 12px; background:var(--crema); border:0; cursor:pointer;
  font-weight:600; font-size:14px; color:var(--tinta-suave);
  border-bottom:3px solid transparent;
}
.calc-tab.is-active{ background:#fff; color:var(--verde); border-bottom-color:var(--punzo); }
.calc-body{ padding:24px; }
.calc-row{ display:flex; justify-content:space-between; align-items:baseline; padding:12px 0; border-bottom:1px solid var(--tinta-borde); gap:16px; }
.calc-row:last-of-type{ border-bottom:0; }
.calc-lbl{ font-size:14px; color:var(--tinta-suave); }
.calc-val{ font-family:var(--ff-serif); font-size:20px; color:var(--verde); font-weight:600; white-space:nowrap; }
.calc-total{ padding-top:18px; border-top:2px solid var(--verde); margin-top:6px; }
.calc-total .calc-lbl{ color:var(--tinta); font-weight:600; }
.calc-total .calc-val{ font-size:26px; color:var(--punzo); }
.calc-nota{ margin:18px 0 0; font-size:13px; color:var(--tinta-suave); line-height:1.5; }
.calc-nota b{ color:var(--tinta); }

.banco-ciudad{ margin-top:32px; background:var(--verde); color:#fff; border-radius:14px; padding:32px; }
.banco-ciudad .h3{ color:#fff; }
.bc-datos{ list-style:none; padding:0; margin:0 0 20px; display:grid; gap:8px; }
.bc-datos li{ padding-left:18px; position:relative; font-size:15px; }
.bc-datos li::before{ content:'→'; position:absolute; left:0; color:var(--punzo); font-weight:700; }
.bc-datos b{ color:#fff; }
.legal-bc{ font-size:12px; color:rgba(255,255,255,.75); line-height:1.5; margin:0 0 20px; }

/* ─── QUINTA ─── */
.lede{ font-size:17px; line-height:1.55; max-width:720px; margin:0 0 32px; color:var(--tinta); opacity:.9; }
.quinta-grid{ display:grid; grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; gap:16px; }
.quinta-foto{ margin:0; border-radius:12px; overflow:hidden; background:var(--crema); }
.quinta-foto img{ width:100%; height:100%; object-fit:cover; aspect-ratio:3/2; }
.quinta-foto-lg{ grid-row:span 2; }
.quinta-foto-lg img{ aspect-ratio:auto; height:100%; }
@media (max-width:720px){
  .quinta-grid{ grid-template-columns:1fr; grid-template-rows:none; }
  .quinta-foto-lg{ grid-row:auto; }
  .quinta-foto img{ aspect-ratio:3/2; height:auto; }
}

/* ─── UBICACIÓN ─── */
.entorno{ font-size:16px; line-height:1.6; max-width:820px; margin:0 0 24px; }
.chips{ list-style:none; padding:0; margin:0 0 32px; display:flex; flex-wrap:wrap; gap:8px; }
.chips li{
  background:transparent; border:1.5px solid var(--punzo); color:var(--punzo);
  padding:6px 14px; border-radius:20px; font-size:13px; font-weight:600;
  letter-spacing:.02em;
}
.mapa-embed{ position:relative; padding-top:56.25%; border-radius:14px; overflow:hidden; box-shadow:var(--sombra-suave); }
.mapa-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.mapa-caption{ margin:12px 0 0; font-size:13px; color:var(--tinta-suave); text-align:center; }

/* ─── FAQ ─── */
.faq{ margin-top:24px; }
.faq-item{ border-bottom:1px solid var(--tinta-borde); padding:0; }
.faq-item summary{
  list-style:none; cursor:pointer; padding:20px 0; font-size:17px; font-weight:600;
  color:var(--verde); display:flex; justify-content:space-between; align-items:center; gap:16px;
  font-family:var(--ff-serif);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; color:var(--punzo); font-size:24px; line-height:1; transition:transform .15s; font-weight:400; flex-shrink:0; }
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item p{ margin:0 0 20px; font-size:15px; line-height:1.6; color:var(--tinta); opacity:.9; padding-right:40px; }

/* ─── CTA FINAL ─── */
.cta-final{ position:relative; padding:96px 24px; color:#fff; overflow:hidden; text-align:center; }
.cta-final-bg{ position:absolute; inset:0; background:url('/assets/aerea-v1.webp') center/cover no-repeat; }
.cta-final-overlay{ position:absolute; inset:0; background:rgba(32,57,44,.72); }
.cta-final-inner{ position:relative; max-width:720px; margin:0 auto; }
.cta-final-title{ font-family:var(--ff-serif); font-size:clamp(28px, 4vw, 40px); font-weight:600; margin:0 0 24px; line-height:1.15; }
.cta-final-title b{ color:var(--punzo); background:#fff; padding:2px 12px; border-radius:6px; font-weight:700; }
.cta-final-sub{ margin:16px 0 0; font-size:14px; opacity:.8; }

/* ─── FOOTER ─── */
.footer{ background:var(--verde); color:#fff; padding:56px 0 32px; }
.footer-grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:32px; align-items:start; }
@media (max-width:720px){ .footer-grid{ grid-template-columns:1fr; gap:20px; } }
.footer-wordmark{ font-family:var(--ff-serif); font-weight:700; font-size:20px; letter-spacing:.12em; margin:0 0 16px; }
.footer-wordmark span{ font-weight:400; font-size:16px; opacity:.7; margin:0 4px; }
.footer-legal{ font-size:12px; line-height:1.5; opacity:.7; margin:0 0 16px; }
.footer-copy{ font-size:12px; opacity:.6; margin:0; }
.footer nav{ display:flex; flex-direction:column; gap:10px; font-size:14px; }
.footer nav a{ color:#fff; opacity:.85; text-decoration:none; }
.footer nav a:hover{ opacity:1; color:var(--punzo); }
.footer-cta{ margin:0 0 12px; }
.footer-comercializa{ font-size:13px; opacity:.75; margin:0; }
.footer-comercializa a{ color:#fff; }

/* ═══════════════════════════════════════════════════════════════
   ARQUITECTURA "DOS CAMINOS" — bloques nuevos apilados abajo
   para no tocar los estilos anteriores del masterplan.
   ═══════════════════════════════════════════════════════════════ */

:root{
  --cian:#009EDF;
  --cian-oscuro:#0077B6;
}

.h2-center{ text-align:center; }
.lede-center{ font-size:17px; line-height:1.55; max-width:640px; margin:0 auto 40px; color:var(--tinta-suave); text-align:center; }

/* Sección caminos: contenedor con más aire */
.section-caminos{ padding:72px 0 88px; background:var(--papel); }

/* Botón ghost (para hero secundario) y block */
.btn-ghost{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.6); }
.btn-ghost:hover{ background:rgba(255,255,255,.08); }
.btn-block{ display:flex; width:100%; padding:16px 22px; font-size:16px; }
.btn-banco{ background:var(--cian); color:#fff; }
.btn-banco::before{ content:'✓'; font-weight:700; }

/* SPLIT — dos paneles enfrentados */
.split{
  display:grid; grid-template-columns:1fr 1fr; gap:24px;
  margin-top:24px; align-items:stretch;
}
@media (max-width:920px){ .split{ grid-template-columns:1fr; } }

.camino{
  background:#fff; border-radius:14px; padding:0; overflow:hidden;
  display:flex; flex-direction:column; box-shadow:var(--sombra-suave);
}
.camino-directo{ border-top:6px solid var(--punzo); }
.camino-banco{ border-top:6px solid var(--cian); }

.camino-band{
  padding:12px 24px; font-size:11px; letter-spacing:.16em; font-weight:700;
  text-transform:uppercase; color:#fff; display:flex; align-items:center; gap:10px;
}
.camino-band-directo{ background:var(--punzo); }
.camino-band-banco{ background:var(--cian); }
.cbanco-logo{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:50%; background:#fff; color:var(--cian);
  font-weight:800; font-size:11px; letter-spacing:0;
}

.camino-title{
  font-family:var(--ff-serif); font-weight:600; font-size:26px; line-height:1.2;
  color:var(--verde); margin:24px 24px 12px;
}

/* Cuenta viva — la ecuación grande */
.cuenta-viva{
  background:var(--crema); margin:16px 24px 20px; padding:22px 24px;
  border-radius:10px; border-left:4px solid var(--punzo);
  display:grid; grid-template-columns:1fr auto 1fr auto 1fr;
  gap:12px; align-items:center; justify-items:center;
}
.cuenta-viva .cv-line{ text-align:center; }
.cuenta-viva .cv-line b{ display:block; font-family:var(--ff-serif); font-size:22px; color:var(--verde); font-weight:600; }
.cuenta-viva .cv-line span{ display:block; font-size:11px; color:var(--tinta-suave); text-transform:uppercase; letter-spacing:.1em; margin-top:2px; }
.cuenta-viva .cv-plus, .cuenta-viva .cv-eq{ font-family:var(--ff-serif); font-size:26px; color:var(--punzo); font-weight:600; }
.cuenta-viva .cv-total b{ display:block; font-family:var(--ff-serif); font-size:26px; color:var(--punzo); font-weight:700; }
.cuenta-viva .cv-nota{
  grid-column:1 / -1; margin:14px 0 0; font-size:12px; line-height:1.5;
  color:var(--tinta-suave); text-align:center;
}
@media (max-width:520px){
  .cuenta-viva{ grid-template-columns:1fr; gap:6px; }
  .cuenta-viva .cv-plus, .cuenta-viva .cv-eq{ font-size:18px; }
}

/* Calculadora mini dentro del panel directo */
.calc-mini{ margin:0 24px 20px; border:1px solid var(--tinta-borde); border-radius:10px; overflow:hidden; }
.calc-mini-tabs{ display:flex; }
.cmt{
  flex:1; padding:12px 8px; background:var(--crema); border:0; cursor:pointer;
  font-weight:600; font-size:12px; color:var(--tinta-suave);
  border-bottom:3px solid transparent;
}
.cmt.is-active{ background:#fff; color:var(--verde); border-bottom-color:var(--punzo); }
.calc-mini-body{
  display:grid; grid-template-columns:1fr 1fr; gap:12px 24px;
  padding:16px 20px; margin:0;
}
.calc-mini-body > div{ display:flex; flex-direction:column; }
.calc-mini-body dt{ font-size:11px; color:var(--tinta-suave); text-transform:uppercase; letter-spacing:.08em; }
.calc-mini-body dd{ font-family:var(--ff-serif); font-size:18px; color:var(--verde); font-weight:600; margin:2px 0 0; white-space:nowrap; }

.camino-bullets{ list-style:none; padding:0; margin:0 24px 24px; display:grid; gap:8px; }
.camino-bullets li{ padding-left:18px; position:relative; font-size:14px; color:var(--tinta); }
.camino-bullets li::before{ content:'→'; position:absolute; left:0; color:var(--punzo); font-weight:700; }

.camino-directo > .btn{ margin:auto 24px 24px; }
.camino-banco > .btn{ margin:auto 24px 24px; }

/* Banco Ciudad — datos grandes */
.bc-datos-grandes{
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
  margin:16px 24px 20px; padding:20px; background:rgba(0,158,223,.06);
  border-radius:10px;
}
.bcg{ text-align:center; }
.bcg b{ display:block; font-family:var(--ff-serif); font-size:24px; color:var(--cian-oscuro); font-weight:700; line-height:1.1; }
.bcg span{ display:block; font-size:11px; color:var(--tinta-suave); text-transform:uppercase; letter-spacing:.08em; margin-top:4px; }
@media (max-width:520px){ .bc-datos-grandes{ grid-template-columns:1fr; } .bcg{ text-align:left; padding:6px 0; border-bottom:1px solid rgba(0,158,223,.15); } .bcg:last-child{ border-bottom:0; } }

.bc-diferencial{
  margin:0 24px 20px; padding:14px 16px; background:rgba(0,158,223,.08);
  border-left:3px solid var(--cian); border-radius:0 6px 6px 0;
  font-size:14px; line-height:1.5;
}
.bc-diferencial b{ color:var(--cian-oscuro); }

.bc-tabla{ margin:0 24px 20px; }
.bc-tabla-titulo{ font-family:var(--ff-serif); font-size:16px; color:var(--verde); font-weight:600; margin:0 0 10px; }
.bc-tabla table{ width:100%; border-collapse:collapse; font-size:13px; }
.bc-tabla th, .bc-tabla td{ padding:10px 12px; text-align:left; border-bottom:1px solid var(--tinta-borde); }
.bc-tabla thead th{ background:var(--verde); color:#fff; font-weight:600; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.bc-tabla tbody th{ font-weight:600; color:var(--tinta); }
.bc-tabla-nota{ font-size:11px; color:var(--tinta-suave); margin:10px 0 0; line-height:1.5; }

.legal-bc{ margin:0 24px 16px; font-size:11px; color:var(--tinta-suave); line-height:1.5; }

/* Comparativa */
.comparativa{
  margin:56px 0 14px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
  background:var(--crema); padding:24px; border-radius:12px;
}
@media (max-width:720px){ .comparativa{ grid-template-columns:1fr 1fr; } }
.cmp{ display:flex; flex-direction:column; gap:6px; text-align:center; }
.cmp-h{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--tinta-suave); font-weight:700; }
.cmp-a{ font-family:var(--ff-serif); font-size:16px; color:var(--punzo); font-weight:600; }
.cmp-a::before{ content:'Directo · '; font-family:var(--ff-sans); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--tinta-suave); display:block; font-weight:400; margin-bottom:2px; }
.cmp-b{ font-family:var(--ff-serif); font-size:16px; color:var(--cian-oscuro); font-weight:600; margin-top:6px; }
.cmp-b::before{ content:'Banco · '; font-family:var(--ff-sans); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--tinta-suave); display:block; font-weight:400; margin-bottom:2px; }
.cmp-cierre{ margin:24px 0 0; text-align:center; font-family:var(--ff-serif); font-size:22px; color:var(--verde); font-weight:600; }

/* Sección historia */
.section-historia{ background:var(--verde); color:#fff; padding:96px 0; }
.section-historia .eyebrow{ color:#F2ECE0; opacity:.85; }
.section-historia .h2{ color:#fff; }
.historia-cuerpo{ margin-top:24px; }
.historia-cuerpo p{ font-size:17px; line-height:1.7; color:rgba(255,255,255,.9); margin:0 0 20px; }
.historia-tagline{
  font-family:var(--ff-serif); font-size:26px; line-height:1.35; color:#fff;
  border-left:3px solid var(--punzo); padding-left:20px; margin-top:32px !important;
}

