/* ============================================================
   NEVERLAND — Dossier de inversión  ·  Editorial system v2
   Instrument Serif + Hanken Grotesk · jungle / sand / terracotta
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Hanken+Grotesk:wght@300;400;500;600;700&display=swap');

:root{
  --paper:    #EFE7D7;
  --paper-2:  #E4D9C3;
  --ink:      #221E18;
  --forest:   #1E3127;
  --forest-d: #16241C;
  --forest-l: #2A3E33;
  --clay:     #AE5E3A;
  --clay-l:   #C27C53;
  --brass:    #B79A5C;
  --stone:    #7C7565;
  --stone-l:  #A89E8B;
  --line-d:   #354A3D;     /* hairline on dark */
  --line-l:   #CBBEA6;     /* hairline on paper */

  --serif:'Instrument Serif', Georgia, serif;
  --sans:'Hanken Grotesk', system-ui, sans-serif;

  --px: clamp(28px, 5vw, 104px);   /* horizontal text padding */
  --py: clamp(34px, 5.4vh, 76px);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ font-family:var(--sans); background:var(--forest-d); color:var(--ink);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img{ display:block; max-width:100%; }

/* ---------- page shell ---------- */
.page{ position:relative; width:100%; min-height:100vh; min-height:100dvh;
  display:flex; flex-direction:column; overflow:hidden; background:var(--paper); color:var(--ink); }
.is-dark{ background:var(--forest); color:var(--paper); }
.is-deep{ background:var(--forest-d); color:var(--paper); }
.is-paper2{ background:var(--paper-2); }

/* full-bleed media */
.bleed{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.scrim{ position:absolute; inset:0; z-index:1; }
.scrim-b{ background:linear-gradient(180deg, rgba(18,28,21,0) 30%, rgba(18,28,21,.85) 100%); }
.scrim-bt{ background:linear-gradient(180deg, rgba(18,28,21,.5) 0%, rgba(18,28,21,0) 26%, rgba(18,28,21,.2) 52%, rgba(18,28,21,.9) 100%); }
.scrim-l{ background:linear-gradient(90deg, rgba(18,28,21,.78) 0%, rgba(18,28,21,.35) 40%, rgba(18,28,21,0) 72%); }
.scrim-soft{ background:rgba(18,28,21,.32); }
.on-img{ position:relative; z-index:2; color:#F3ECDD; }
.on-img .muted{ color:#D7CDBA; }

/* ---------- split / editorial grid ---------- */
.split{ display:grid; grid-template-columns:1.15fr 1fr; min-height:100vh; }
.split.r{ grid-template-columns:1fr 1.15fr; }
.split.wide{ grid-template-columns:1.5fr 1fr; }
.split.widr{ grid-template-columns:1fr 1.5fr; }
.media{ position:relative; overflow:hidden; min-height:42vh; }
.media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.media .cap{ position:absolute; left:0; bottom:0; z-index:2; color:#F1E9D9;
  font-family:var(--sans); font-weight:500; font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  padding:10px 16px; background:rgba(18,28,21,.5); backdrop-filter:blur(3px); }
.pane{ padding:var(--py) var(--px); display:flex; flex-direction:column; justify-content:center; gap:clamp(18px,2.4vh,30px); min-width:0; }

/* ---------- type ---------- */
.kicker{ font-family:var(--sans); font-weight:600; font-size:12px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--clay); display:inline-flex; align-items:center; gap:14px; }
.kicker.on::before{ content:""; width:34px; height:1px; background:currentColor; opacity:.6; }
.on-img .kicker, .is-dark .kicker, .is-deep .kicker{ color:var(--brass); }

.serif{ font-family:var(--serif); font-weight:400; }
.ital{ font-family:var(--serif); font-style:italic; font-weight:400; }
.display{ font-family:var(--serif); font-weight:400; line-height:.92; letter-spacing:-.005em;
  font-size:clamp(58px, 9vw, 168px); }
.h1{ font-family:var(--serif); font-weight:400; line-height:.98; letter-spacing:-.005em;
  font-size:clamp(40px, 5.2vw, 90px); }
.h2{ font-family:var(--serif); font-weight:400; line-height:1.02; letter-spacing:-.003em;
  font-size:clamp(30px, 3.7vw, 60px); }
.h3{ font-family:var(--serif); font-weight:400; line-height:1.06; font-size:clamp(26px, 3vw, 46px); }
.lede{ font-family:var(--serif); font-weight:400; font-size:clamp(22px, 2.2vw, 36px); line-height:1.28;
  letter-spacing:-.002em; max-width:24ch; }
.body{ font-family:var(--sans); font-weight:300; font-size:clamp(14.5px,1.05vw,17px); line-height:1.66;
  color:var(--ink); max-width:48ch; }
.is-dark .body, .is-deep .body, .on-img .body{ color:#E2D9C6; }
.body.sm{ font-size:14px; max-width:42ch; }
.muted{ color:var(--stone); }
.is-dark .muted, .is-deep .muted{ color:var(--stone-l); }
.amp{ color:var(--clay); }
.is-dark .amp, .is-deep .amp, .on-img .amp{ color:var(--brass); }
.serif-num{ font-family:var(--serif); font-weight:400; }

/* ---------- folio chrome ---------- */
.folio{ position:absolute; z-index:3; bottom:clamp(20px,3vh,34px); display:flex; gap:16px; align-items:baseline;
  font-family:var(--sans); font-weight:500; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; }
.folio.l{ left:var(--px); } .folio.rt{ right:var(--px); }
.folio .n{ color:var(--clay); }
.on-img .folio .n, .is-dark .folio .n, .is-deep .folio .n{ color:var(--brass); }
.folio .lbl{ color:var(--stone); }
.on-img .folio .lbl{ color:#D7CDBA; }
.is-dark .folio .lbl, .is-deep .folio .lbl{ color:var(--stone-l); }
.wm{ position:absolute; z-index:3; top:clamp(20px,3vh,34px); font-family:var(--serif); font-size:clamp(16px,1.5vw,21px);
  letter-spacing:.32em; text-transform:uppercase; }
.wm.l{ left:var(--px); } .wm.rt{ right:var(--px); }

/* ---------- section opener ---------- */
.opener-num{ font-family:var(--serif); font-weight:400; font-size:clamp(120px,22vw,360px); line-height:.8;
  letter-spacing:-.02em; }

/* ---------- metrics ---------- */
.stats{ display:grid; gap:clamp(20px,2.4vw,40px); }
.stats.c3{ grid-template-columns:repeat(3,1fr); }
.stats.c4{ grid-template-columns:repeat(4,1fr); }
.stat{ display:flex; flex-direction:column; gap:7px; padding-top:18px; border-top:1px solid var(--line-l); }
.is-dark .stat, .is-deep .stat, .on-img .stat{ border-top-color:var(--line-d); }
.stat .n{ font-family:var(--serif); font-weight:400; font-size:clamp(38px,4.4vw,68px); line-height:.85; color:var(--clay); }
.is-dark .stat .n, .is-deep .stat .n, .on-img .stat .n{ color:var(--brass); }
.stat .k{ font-family:var(--sans); font-weight:400; font-size:12px; letter-spacing:.04em; line-height:1.45;
  color:var(--stone); max-width:20ch; }
.is-dark .stat .k, .is-deep .stat .k, .on-img .stat .k{ color:var(--stone-l); }

/* ---------- index ---------- */
.toc{ display:flex; flex-direction:column; }
.toc a{ display:grid; grid-template-columns:58px 1fr auto; align-items:baseline; gap:20px; text-decoration:none;
  color:inherit; padding:clamp(15px,2vh,26px) 0; border-top:1px solid var(--line-d); transition:padding .35s ease; }
.toc a:last-child{ border-bottom:1px solid var(--line-d); }
.toc .tn{ font-family:var(--sans); font-weight:600; font-size:12px; letter-spacing:.16em; color:var(--brass); }
.toc .tt{ font-family:var(--serif); font-size:clamp(26px,2.9vw,48px); line-height:1; }
.toc .td{ font-family:var(--sans); font-weight:300; font-size:12.5px; color:var(--stone-l); text-align:right; max-width:32ch; }
.toc a:hover{ padding-left:14px; }
.toc a:hover .tt{ color:var(--brass); }

/* ---------- finance table ---------- */
.fin{ width:100%; border-collapse:collapse; font-family:var(--sans); }
.fin th,.fin td{ text-align:right; padding:clamp(8px,1.15vh,15px) clamp(8px,1.4vw,22px);
  border-bottom:1px solid var(--line-d); font-weight:300; font-size:clamp(13px,1.02vw,16px); }
.fin th:first-child,.fin td:first-child{ text-align:left; color:#CFC6B4; }
.fin thead th{ font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--stone-l); padding-bottom:16px; }
.fin .hl{ color:var(--brass)!important; }
.fin tbody tr:hover{ background:rgba(183,154,92,.07); }
.fin .row-hi{ background:rgba(183,154,92,.1); }
.fin .row-hi td{ font-family:var(--serif); font-size:clamp(16px,1.5vw,24px); color:var(--paper); }
.fin .row-hi td.hl{ color:var(--brass)!important; }

/* ---------- cards / lists ---------- */
.feat-grid{ display:grid; gap:1px; background:var(--line-l); }
.is-dark .feat-grid, .is-deep .feat-grid{ background:var(--line-d); }
.feat{ background:var(--paper); padding:clamp(18px,1.8vw,28px); display:flex; flex-direction:column; gap:8px; }
.is-dark .feat{ background:var(--forest); } .is-deep .feat{ background:var(--forest-d); }
.feat .fi{ font-family:var(--serif); font-size:22px; color:var(--clay); }
.is-dark .feat .fi, .is-deep .feat .fi{ color:var(--brass); }
.feat .ft{ font-family:var(--serif); font-size:clamp(19px,1.7vw,27px); line-height:1.05; }
.feat .fd{ font-family:var(--sans); font-weight:300; font-size:13px; line-height:1.5; color:var(--stone); }
.is-dark .feat .fd, .is-deep .feat .fd{ color:var(--stone-l); }

.rows{ display:flex; flex-direction:column; }
.rows .row{ display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:13px 0;
  border-bottom:1px solid var(--line-d); }
.is-paper .rows .row, .is-paper2 .rows .row{ border-bottom-color:var(--line-l); }
.rows .rk{ font-family:var(--serif); font-size:clamp(17px,1.5vw,25px); }
.rows .rv{ font-family:var(--sans); font-weight:400; font-size:12.5px; letter-spacing:.06em; color:var(--brass);
  text-transform:uppercase; white-space:nowrap; }
.is-paper .rows .rv, .is-paper2 .rows .rv{ color:var(--clay); }

.chips{ display:flex; flex-wrap:wrap; gap:9px; }
.chip{ font-family:var(--sans); font-weight:500; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  padding:8px 15px; border:1px solid var(--line-l); border-radius:100px; }
.is-dark .chip, .is-deep .chip, .on-img .chip{ border-color:rgba(241,233,217,.4); color:#F1E9D9; }

/* compare */
.compare{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line-d); border:1px solid var(--line-d); }
.compare .cc{ background:var(--forest); padding:clamp(22px,2.4vw,40px); display:flex; flex-direction:column; gap:12px; }
.compare .cc.win{ background:var(--forest-l); }
.lv-l{ font-family:var(--sans); font-weight:600; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--stone-l); }
.lv-b{ font-family:var(--serif); font-size:clamp(28px,3.2vw,50px); line-height:1; }
.lv-t{ font-family:var(--sans); font-weight:300; font-size:13px; color:var(--stone-l); }
.win .lv-t{ color:var(--brass); }

/* steps */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-d); }
.step{ background:var(--forest); padding:clamp(16px,1.7vw,26px); display:flex; flex-direction:column; gap:7px; }
.step .sn{ font-family:var(--serif); font-size:30px; color:var(--brass); line-height:.9; }
.step .st{ font-family:var(--sans); font-weight:600; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.step .sd{ font-family:var(--sans); font-weight:300; font-size:12.5px; color:var(--stone-l); line-height:1.45; }

/* press */
.press{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line-d); border:1px solid var(--line-d); }
.press .pq{ background:var(--forest); padding:clamp(20px,2.4vw,34px); display:flex; flex-direction:column;
  justify-content:space-between; gap:18px; min-height:150px; }
.press .q{ font-family:var(--serif); font-style:italic; font-size:clamp(19px,1.8vw,28px); line-height:1.22; color:var(--paper); }
.press .src{ font-family:var(--sans); font-weight:500; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--brass); }

/* team */
.team{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,52px); }
.team .nm{ font-family:var(--serif); font-size:clamp(22px,2.1vw,34px); line-height:1; }
.team .rl{ font-family:var(--sans); font-weight:400; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--brass); margin-top:7px; }

/* image-page content frame */
.page > .split, .page > .frame{ flex:1 1 auto; }
.frame{ position:relative; z-index:2; display:flex; flex-direction:column; padding:var(--py) var(--px);
  gap:clamp(16px,2.4vh,30px); min-height:100vh; }
.frame.end{ justify-content:flex-end; }
.frame.center{ justify-content:center; }
.frame.between{ justify-content:space-between; }
.maxw{ max-width:50ch; } .mw-s{ max-width:34ch; }
.stack{ display:flex; flex-direction:column; gap:clamp(14px,2vh,26px); }
.stack.s{ gap:12px; }
.row-end{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }

/* logo slot */
.logo-slot{ position:absolute; z-index:4; }
image-slot{ display:block; }

/* nav dots */
.navdots{ position:fixed; right:18px; top:50%; transform:translateY(-50%); z-index:60; display:flex; flex-direction:column; gap:9px; }
.navdots a{ width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.3); border:1px solid rgba(255,255,255,.45); transition:.3s; }
.navdots a:hover{ background:var(--brass); border-color:var(--brass); transform:scale(1.4); }

@media (max-width:880px){
  .split,.split.r,.split.wide,.split.widr{ grid-template-columns:1fr; }
  .stats.c3,.stats.c4{ grid-template-columns:repeat(2,1fr); }
  .steps,.press,.team,.compare{ grid-template-columns:1fr; }
  .navdots{ display:none; }
  .media{ min-height:56vh; }
}

.langsw{ position:fixed; top:14px; left:50%; transform:translateX(-50%); z-index:9500; display:flex; gap:2px;
  background:rgba(14,22,17,.55); backdrop-filter:blur(6px); border:1px solid rgba(241,233,217,.22); border-radius:100px; padding:3px; }
.langsw button{ font-family:'Hanken Grotesk',system-ui,sans-serif; font-weight:600; font-size:11px; letter-spacing:.12em; color:#E2D9C6;
  background:transparent; border:0; border-radius:100px; padding:6px 13px; cursor:pointer; transition:background .2s,color .2s; }
.langsw button.on{ background:var(--brass); color:var(--forest-d); }
.langsw button:hover:not(.on){ color:#fff; }
@media print{ .langsw{ display:none!important; } }

@page{ size:landscape; margin:0; }
@media print{
  html,body{ background:#fff; margin:0; padding:0; }
  *{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .navdots, .flipnav, .flipcount{ display:none!important; }
  main{ display:block; }
  .page{ min-height:0; height:100vh; overflow:hidden; page-break-after:always; break-after:page; page-break-inside:avoid; break-inside:avoid; }
  .page:last-child{ page-break-after:avoid; break-after:avoid; }
}

/* ---- Kuta gallery fits viewport height (print + flip safe) ---- */
#kuta .frame{ justify-content:flex-start; }
#kuta .gallery3{ flex:1 1 auto; min-height:0; }
#kuta .gallery3 figure{ aspect-ratio:auto; height:100%; min-height:0; }

/* ---- gallery (Kuta) ---- */
.gallery3{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(10px,1.2vw,20px); }
.gallery3 figure{ position:relative; aspect-ratio:3/4; overflow:hidden; }
.gallery3 img{ width:100%; height:100%; object-fit:cover; display:block; }
.gallery3 figcaption{ position:absolute; left:0; bottom:0; right:0; padding:18px 16px 14px;
  background:linear-gradient(180deg,rgba(18,28,21,0),rgba(18,28,21,.45) 45%,rgba(18,28,21,.9));
  color:#F1E9D9; display:flex; flex-direction:column; gap:3px; }
.gallery3 .gt{ font-family:var(--serif); font-size:clamp(20px,1.8vw,28px); line-height:1; }
.gallery3 .gd{ font-family:var(--sans); font-weight:400; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--brass); }

/* ---- amenity icon grid ---- */
.ament{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line-l); }
.is-dark .ament, .is-deep .ament{ background:var(--line-d); }
.am{ background:var(--paper); padding:clamp(16px,1.6vw,26px); display:flex; flex-direction:column; gap:12px; }
.is-dark .am, .is-deep .am{ background:var(--forest); }
.am svg{ width:32px; height:32px; stroke:var(--clay); fill:none; stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round; }
.is-dark .am svg, .is-deep .am svg{ stroke:var(--brass); }
.am .amt{ font-family:var(--serif); font-size:clamp(17px,1.45vw,23px); line-height:1.04; }
.am .amd{ font-family:var(--sans); font-weight:300; font-size:12px; line-height:1.45; color:var(--stone); }
.is-dark .am .amd, .is-deep .am .amd{ color:var(--stone-l); }
@media (max-width:880px){ .ament{ grid-template-columns:repeat(2,1fr); } .gallery3{ grid-template-columns:1fr; } }

/* ---- press logos ---- */
.logos{ display:flex; flex-wrap:wrap; align-items:center; gap:clamp(18px,3vw,52px); padding-top:clamp(20px,3vh,40px); margin-top:clamp(18px,2.6vh,32px); border-top:1px solid var(--line-d); }
.logos .lg{ font-family:var(--serif); font-size:clamp(18px,1.7vw,26px); color:#CFC6B4; letter-spacing:.01em; opacity:.85; white-space:nowrap; }
.logos .lg.sans{ font-family:var(--sans); font-weight:700; letter-spacing:-.01em; font-size:clamp(16px,1.5vw,22px); }
.logos .lg.bbc{ font-family:var(--sans); font-weight:800; letter-spacing:.04em; background:#CFC6B4; color:var(--forest-d); padding:4px 8px; font-size:clamp(15px,1.4vw,21px); }

/* ---- map ---- */
.mapframe{ position:relative; width:100%; height:100%; min-height:52vh; background:var(--forest-d); }
.mapframe iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.mapframe .mtag{ position:absolute; left:16px; bottom:16px; z-index:2; background:rgba(18,28,21,.62); backdrop-filter:blur(3px);
  color:#F1E9D9; font-family:var(--sans); font-weight:500; font-size:11px; letter-spacing:.16em; text-transform:uppercase; padding:8px 14px; }
a.maplink{ text-decoration:none; cursor:pointer; transition:background .25s, color .25s; }
a.maplink:hover{ background:var(--brass); color:var(--forest-d); }

/* ---- connections ---- */
.conx{ display:flex; flex-direction:column; }
.conx .cx{ display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:18px; padding:14px 0; border-bottom:1px solid var(--line-d); }
.conx .cxk{ font-family:var(--serif); font-size:clamp(20px,1.9vw,30px); }
.conx .cxv{ font-family:var(--sans); font-weight:400; font-size:13px; letter-spacing:.06em; color:var(--brass); text-transform:uppercase; white-space:nowrap; }
.conx .cxs{ font-family:var(--sans); font-weight:300; font-size:11px; letter-spacing:.04em; color:var(--stone-l); display:block; margin-top:3px; }

/* ---- flame mark ---- */
.flame{ width:clamp(40px,4vw,62px); height:clamp(40px,4vw,62px); }
.flame svg{ width:100%; height:100%; }

/* ---- full-page plan slides ---- */
.planpage{ background:#fff; }
.planfull{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.is-deep .am .amt{ color:var(--paper); }

/* ---- route schematic (conexiones) ---- */
.routes{ width:100%; margin:clamp(6px,1.5vh,18px) 0 clamp(14px,2.4vh,30px); }
.routes svg{ width:100%; height:auto; display:block; overflow:visible; }

/* ---- simulator CTA ---- */
.cta-row{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:clamp(6px,1.4vh,16px); }
.cta{ display:inline-flex; align-items:center; gap:10px; font-family:var(--sans); font-weight:600;
  font-size:clamp(13.5px,1.05vw,16px); letter-spacing:.06em; text-transform:uppercase; padding:16px 30px;
  background:var(--brass); color:var(--forest-d); text-decoration:none; transition:transform .2s, background .2s; }
.cta:hover{ background:#cbac6a; transform:translateY(-2px); }
.cta-note{ font-family:var(--sans); font-weight:400; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--stone-l); }
.simchart{ position:absolute; left:0; right:0; bottom:0; z-index:0; height:48%; opacity:.55; pointer-events:none; }
.simchart svg{ width:100%; height:100%; display:block; }

/* ---- feat icons (revenue) ---- */
.feat .ic svg{ width:30px; height:30px; stroke:var(--clay); fill:none; stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round; display:block; }
.is-dark .feat .ic svg, .is-deep .feat .ic svg{ stroke:var(--brass); }
.feat .fi{ font-family:var(--sans); font-weight:600; font-size:11px; letter-spacing:.16em; color:var(--clay); }
.is-dark .feat .fi, .is-deep .feat .fi{ color:var(--brass); }

/* ---- finance: highlighted rows ---- */
.fin tr.row-hi{ background:var(--brass); }
.fin tr.row-hi td{ font-family:var(--serif); color:var(--forest-d); font-size:clamp(17px,1.6vw,26px); }
.fin tr.row-hi td:first-child{ color:var(--forest-d); }
.fin tr.row-hi td.hl{ color:var(--forest-d)!important; font-weight:600; }
.fin tr.row-hi:hover{ background:var(--brass); }
.fin tr.row-mid{ background:rgba(183,154,92,.16); }
.fin tr.row-mid td{ color:var(--paper); }
.fin tr.row-mid td:first-child{ color:#E7DEC9; }

/* ---- plusvalía bars ---- */
.pv{ display:grid; grid-template-columns:1fr; gap:clamp(14px,2vh,26px); }
.pvrow{ display:grid; grid-template-columns:130px 1fr; align-items:center; gap:clamp(16px,2.4vw,40px); }
.pvrow .pvl{ font-family:var(--sans); font-weight:600; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--stone-l); }
.pvrow.win .pvl{ color:var(--brass); }
.pvtrack{ display:grid; grid-template-columns:1fr 1fr 1fr; align-items:stretch; gap:10px; }
.pvstep{ position:relative; padding:clamp(12px,1.4vw,20px) clamp(14px,1.6vw,22px); background:var(--forest); border:1px solid var(--line-d); display:flex; flex-direction:column; gap:4px; }
.pvrow.win .pvstep{ background:var(--brass); border-color:var(--brass); }
.pvrow.win .pvstep .pvv{ color:var(--forest-d); }
.pvrow.win .pvstep .pvk{ color:rgba(22,36,28,.66); }
.pvrow.win .pvstep .pvd{ color:var(--forest-d); }
.pvstep .pvv{ font-family:var(--serif); font-size:clamp(20px,2vw,32px); line-height:1; }
.pvstep .pvk{ font-family:var(--sans); font-weight:400; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--stone-l); }
.pvstep .pvd{ font-family:var(--sans); font-weight:600; font-size:12px; color:var(--brass); margin-top:2px; }
@media(max-width:880px){ .pvrow{ grid-template-columns:1fr; gap:8px; } }

/* ---- connections: city cards ---- */
.citygrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-d); border:1px solid var(--line-d); }
.city{ background:var(--forest); padding:clamp(16px,1.8vw,28px); display:flex; flex-direction:column; gap:10px; }
.city svg{ width:42px; height:42px; stroke:var(--brass); fill:none; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; }
.city .cyrow{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.city .cyn{ font-family:var(--serif); font-size:clamp(20px,1.8vw,28px); line-height:1; }
.city .cyv{ font-family:var(--sans); font-weight:600; font-size:13px; letter-spacing:.04em; color:var(--brass); white-space:nowrap; }
.city .cys{ font-family:var(--sans); font-weight:300; font-size:11.5px; letter-spacing:.04em; color:var(--stone-l); }
@media(max-width:880px){ .citygrid{ grid-template-columns:1fr 1fr; } }

/* ---- conexiones: centered header + routes + 6 cities, balanced framing ---- */
#conexiones .frame.conx{ justify-content:center; gap:clamp(16px,2.8vh,32px); padding-bottom:clamp(58px,8.5vh,94px); }
#conexiones .conx-head{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:clamp(10px,1.6vh,18px); margin:0 auto; max-width:64ch; }
#conexiones .conx-head .h2{ max-width:22ch; }
#conexiones .conx-head .body{ max-width:52ch; color:var(--stone-l); }
#conexiones .routes{ width:100%; margin:0 auto; }
#conexiones .routes svg{ width:auto; max-width:100%; max-height:clamp(66px,10vh,120px); margin:0 auto; }
#conexiones .citygrid{ width:100%; }
#conexiones .city{ padding:clamp(12px,1.5vw,24px); gap:clamp(6px,1vh,10px); }
#conexiones .city svg{ width:clamp(30px,3vw,40px); height:clamp(30px,3vw,40px); }

/* ---- plan slides: image-forward ---- */
.planframe{ position:relative; width:100%; min-height:100vh; display:flex; }
.planimg{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:clamp(20px,3.6vh,56px) clamp(24px,5vw,96px); }
.planinfo{ position:relative; z-index:2; align-self:flex-end; margin:auto 0 clamp(30px,5.4vh,64px) clamp(28px,5vw,96px); width:min(330px,36vw);
  background:rgba(246,240,225,.93); backdrop-filter:blur(4px); border:1px solid var(--line-l); padding:clamp(18px,1.8vw,28px); }
.planinfo .kicker{ color:var(--clay); }
.planinfo h3{ margin:8px 0 4px; }
.spaces{ display:flex; flex-direction:column; margin-top:10px; }
.spaces .sphead{ font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--stone); margin-top:12px; margin-bottom:2px; }
.spaces .sphead:first-child{ margin-top:0; }
.spaces .sp{ display:flex; justify-content:space-between; gap:14px; padding:6px 0; border-top:1px solid var(--line-l); }
.spaces .spk{ font-family:var(--sans); font-weight:400; font-size:13px; color:var(--ink); }
.spaces .spv{ font-family:var(--sans); font-weight:600; font-size:12.5px; color:var(--clay); white-space:nowrap; }
@media(max-width:880px){ .planinfo{ width:auto; margin:auto clamp(20px,5vw,40px) 30px; } }

/* ---- talenthome lever visual ---- */
.cc .lvico{ margin-bottom:4px; }
.cc .lvico svg{ width:30px; height:30px; stroke:var(--stone-l); fill:none; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.cc.win .lvico svg{ stroke:var(--brass); }

/* ---- unit price list ---- */
#precios-baja .frame, #precios-primera .frame, #precios-segunda .frame{ gap:clamp(9px,1.4vh,18px); padding-bottom:clamp(62px,9vh,96px); }
.pricehead{ display:flex; justify-content:space-between; align-items:flex-end; gap:28px; }
.pricehead .muted{ font-family:var(--sans); font-weight:300; font-size:11px; line-height:1.5; letter-spacing:.02em; max-width:30ch; text-align:right; color:var(--stone-l); }
.fstats{ display:flex; gap:clamp(20px,3.2vw,52px); padding-bottom:clamp(8px,1.3vh,15px); border-bottom:1px solid var(--line-d); }
.fstat{ display:flex; flex-direction:column; gap:5px; }
.fstat .n{ font-family:var(--serif); font-size:clamp(17px,1.6vw,25px); color:var(--brass); line-height:1; }
.fstat .k{ font-family:var(--sans); font-weight:500; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--stone-l); }

.units{ width:100%; border-collapse:collapse; }
.units thead th{ font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:.15em; text-transform:uppercase; color:var(--stone-l); padding-bottom:10px; text-align:right; white-space:nowrap; }
.units thead th:first-child{ text-align:left; }
.units tbody td{ border-top:1px solid var(--line-d); padding:clamp(2px,0.45vh,6px) 0; text-align:right; vertical-align:baseline;
  color:var(--paper); font-family:var(--sans); font-weight:300; font-size:clamp(11.5px,0.92vw,14px); white-space:nowrap; line-height:1.25; }
.units tbody td:first-child{ text-align:left; padding-right:16px; white-space:normal; }
.units tbody tr:hover{ background:rgba(183,154,92,.06); }
.units .uno{ font-family:var(--serif); font-size:clamp(14px,1.2vw,18px); color:var(--paper); }
.units .uty{ font-family:var(--sans); font-weight:400; font-size:clamp(10.5px,0.85vw,12.5px); letter-spacing:.01em; color:var(--stone-l); margin-left:10px; }
.units .extt{ font-family:var(--sans); font-weight:400; font-size:9.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--stone); margin-left:7px; }
.units .price{ font-family:var(--serif); font-size:clamp(15px,1.35vw,21px); color:var(--brass); }
.badge{ display:inline-block; font-family:var(--sans); font-weight:600; font-size:8.5px; letter-spacing:.12em; text-transform:uppercase;
  padding:3px 9px; border-radius:100px; border:1px solid rgba(183,154,92,.5); color:var(--brass); }
.badge.v{ border-color:rgba(124,117,101,.5); color:var(--stone-l); }
.units tr.sold .uno{ color:var(--stone-l); }
.units tr.sold .price{ color:var(--stone-l); }
@media(max-width:880px){
  .pricehead{ flex-direction:column; align-items:flex-start; gap:10px; }
  .pricehead .muted{ text-align:left; }
  .fstats{ flex-wrap:wrap; gap:16px 26px; }
  .units .uty{ font-size:10.5px; }
}
