/* ==========================================================================
   VIDA SANA — DESIGN TOKENS
   Official palette. Do not replace these five brand colors; auxiliary tones
   derived from them (lines, hovers, tints) may be adjusted.
   ========================================================================== */
:root{
  --vs-ivory:#f6f1eb;
  --vs-stone:#a8a29e;
  --vs-sage:#88a489;
  --vs-forest:#4e6c50;
  --vs-gold:#bfa254;
  --vs-ink:#102a20;
  --vs-white:#ffffff;

  /* auxiliary tones derived from the palette above */
  --vs-ink-2:#0c2118;
  --vs-forest-deep:#1c3324;
  --vs-sand:#ddd4c4;
  --vs-line:rgba(16,42,32,.15);
  --vs-line-light:rgba(255,255,255,.18);
  --vs-gold-soft:rgba(191,162,84,.35);

  /* legacy aliases: keep older selectors (index / gabriel-mancera) working */
  --ink:var(--vs-ink);
  --forest:var(--vs-forest);
  --cream:var(--vs-ivory);
  --sand:var(--vs-sand);
  --white:var(--vs-white);
  --line:var(--vs-line);

  --max:1580px;
  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --sans:'Lato',Arial,Helvetica,sans-serif;
  --header-h:clamp(64px,8vw,88px);
  --local-nav-h:54px;
  --ease:cubic-bezier(.4,0,.2,1);
}

/* ==========================================================================
   BASE / RESET
   ========================================================================== */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
body{margin:0;background:var(--vs-ivory);color:var(--vs-ink);font-family:var(--sans);line-height:1.55;font-size:16px;-webkit-font-smoothing:antialiased}
figure{margin:0}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--vs-gold);outline-offset:3px}

.skip-link{position:absolute;left:12px;top:-60px;background:var(--vs-ink);color:#fff;padding:12px 18px;border-radius:8px;z-index:1000;transition:top .2s var(--ease)}
.skip-link:focus{top:12px}

/* ==========================================================================
   HEADER + NAVIGATION
   ========================================================================== */
.site-header{height:var(--header-h);padding:0 clamp(20px,3vw,56px);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;background:rgba(12,33,24,.97);backdrop-filter:saturate(140%) blur(6px);color:#fff;border-bottom:1px solid var(--vs-line-light)}
.brand{display:flex;align-items:center;gap:11px;font:400 22px/1 var(--serif);letter-spacing:.01em;flex-shrink:0}
.brand img{width:clamp(30px,4vw,38px);height:clamp(30px,4vw,38px);display:block}
.brand span{white-space:nowrap}
.main-nav{display:flex;gap:clamp(14px,2vw,30px);align-items:center;font-size:14.5px}
.main-nav a{opacity:.88;padding:6px 0;border-bottom:2px solid transparent;transition:opacity .2s var(--ease),border-color .2s var(--ease)}
.main-nav a:hover,.main-nav a:focus-visible{opacity:1}
.main-nav a[aria-current="page"]{opacity:1;border-color:var(--vs-gold)}
.nav-cta{border:1px solid rgba(255,255,255,.45);border-radius:999px;padding:11px 20px;font-weight:700;white-space:nowrap}
.nav-cta:hover{background:#fff;color:var(--vs-ink)}
.menu-button{display:none;background:none;border:0;padding:10px;cursor:pointer}
.menu-button span{display:block;width:24px;height:1px;background:#fff;margin:6px 0;transition:transform .2s var(--ease),opacity .2s var(--ease)}
.menu-button[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-button[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-button[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* keep anchor-linked sections from hiding behind the sticky header + local nav */
main [id]{scroll-margin-top:calc(var(--header-h) + var(--local-nav-h) + 16px)}

.local-nav{position:sticky;top:var(--header-h);z-index:90;background:var(--vs-white);border-bottom:1px solid var(--vs-line);display:flex;gap:30px;padding:15px clamp(20px,3vw,56px);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.local-nav::-webkit-scrollbar{display:none}
.local-nav a{white-space:nowrap;font-size:13.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;opacity:.7}
.local-nav a:hover,.local-nav a:focus-visible{opacity:1}

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:999px;font-weight:700;font-size:15px;border:1px solid transparent;cursor:pointer;transition:transform .18s var(--ease),background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}
.button:hover{transform:translateY(-1px)}
.button.light{background:#fff;color:var(--vs-ink)}
.button.light:hover{background:var(--vs-ivory)}
.button.dark{background:var(--vs-ink);color:#fff}
.button.dark:hover{background:var(--vs-forest-deep)}
.button.ghost{border-color:rgba(255,255,255,.55);color:#fff}
.button.ghost:hover{background:rgba(255,255,255,.12)}
.button.outline{border-color:var(--vs-ink);color:var(--vs-ink)}
.button.outline:hover{background:var(--vs-ink);color:#fff}
.button.full{width:100%}
.button[disabled]{opacity:.6;cursor:progress;transform:none}

/* ==========================================================================
   HERO (shared across pages)
   ========================================================================== */
.hero{position:relative;display:grid;align-items:end;color:#fff;overflow:hidden;min-height:clamp(560px,86svh,900px)}
.hero picture,.hero>img{position:absolute;inset:0;width:100%;height:100%}
.hero img{width:100%;height:100%;object-fit:cover}
.hero-invest img{object-fit:cover}
.scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(6,17,12,.86) 0%,rgba(6,17,12,.55) 42%,rgba(6,17,12,.18) 72%,rgba(6,17,12,.08) 100%),linear-gradient(0deg,rgba(4,12,8,.55),transparent 45%)}
.hero-inner{position:relative;z-index:1;width:min(var(--max),calc(100% - 10vw));margin:0 auto;padding:8vh 0 9vh;max-width:960px;margin-left:max(5vw,calc((100vw - var(--max))/2))}
.hero h1{font:400 clamp(40px,6vw,92px)/1.03 var(--serif);letter-spacing:-.02em;margin:20px 0;max-width:920px}
.section h2{font:400 clamp(38px,5vw,80px)/1.06 var(--serif);letter-spacing:-.02em;margin:0}
.lead{font-size:clamp(18px,1.6vw,23px);max-width:640px;line-height:1.5}
.light{color:#fff}
.eyebrow{font:700 12px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase}
.availability-line{display:inline-flex;align-items:center;gap:10px;margin:22px 0 0;font:700 15px var(--sans);letter-spacing:.03em}
.availability-line::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--vs-gold)}
.actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.scroll-cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.8);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.scroll-cue span{width:1px;height:34px;background:linear-gradient(#fff,transparent);animation:scrollcue 1.8s infinite var(--ease)}
@keyframes scrollcue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(prefers-reduced-motion:reduce){.scroll-cue span{animation:none}}

/* ==========================================================================
   GENERIC SECTION LAYOUT
   ========================================================================== */
.section{padding:clamp(64px,9vw,140px) max(5vw,calc((100vw - var(--max))/2))}
.editorial{display:grid;grid-template-columns:1.1fr .9fr;gap:6vw;align-items:stretch}
.editorial h2{font-size:clamp(40px,5.5vw,80px)}
.big-copy{font-size:clamp(22px,2vw,32px);line-height:1.42;font-family:var(--serif);margin-top:20px}
.editorial p:not(.big-copy){font-size:17px;max-width:65ch;color:var(--vs-ink);opacity:.85}
.editorial .secondary-note,.dv-architecture .secondary-note,.concept .secondary-note{margin-top:22px;padding-top:22px;border-top:1px solid var(--line);font-size:15.5px;opacity:.8;max-width:60ch}
.editorial-media{display:flex}
.intro-media{position:relative;border-radius:18px;overflow:hidden;width:100%;min-height:100%;margin:0}
.intro-media img{width:100%;height:100%;object-fit:cover}
.intro-media figcaption{position:absolute;left:16px;bottom:14px;background:rgba(16,42,32,.72);color:#fff;font-size:11.5px;letter-spacing:.06em;padding:6px 11px;border-radius:999px}

.section-title{margin-bottom:50px}
.section-title h2{font-size:clamp(38px,5.5vw,80px);max-width:1150px}
.section-title.split{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:end}
.section-title.split>p{font-size:17px;opacity:.85;max-width:48ch}

/* reveal-on-scroll (guarded by prefers-reduced-motion) */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in-view{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

/* ==========================================================================
   METRICS BAND
   ========================================================================== */
.metrics{background:var(--vs-ink);color:#fff;padding:60px max(5vw,calc((100vw - var(--max))/2));display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
.metrics div{padding:8px 28px;border-left:1px solid var(--vs-line-light)}
.metrics strong{display:block;font:400 clamp(32px,4vw,60px) var(--serif)}
.metrics span{opacity:.72;font-size:14.5px}

/* ==========================================================================
   PORTFOLIO / TIMELINE
   ========================================================================== */
.text-link{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:24px;font-weight:700}
.certainty{background:#fff}
.certainty>ol,.dv-timeline ol{list-style:none;padding:0;margin:50px 0 0}
.certainty li,.dv-timeline li{display:grid;grid-template-columns:80px 1fr 1.2fr;gap:26px;padding:26px 0;border-top:1px solid var(--line)}
.certainty li>*,.dv-timeline li>*{min-width:0}
.certainty li h3,.dv-timeline strong{font:400 36px var(--serif);margin:0;overflow-wrap:break-word}

/* ==========================================================================
   PRINCIPLES / PILLARS (shared: del valle differentiators + gbm founding partners)
   ========================================================================== */
.principles{background:#fff}
.dv-pillars,.diligence-list{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.dv-pillars.five{grid-template-columns:repeat(5,1fr)}
.dv-pillars article,.diligence-list article{border-top:1px solid var(--line);padding-top:22px}
.dv-pillars h3,.diligence-list h3{font:400 26px var(--serif);margin:10px 0}
.dv-pillars p,.diligence-list p{font-size:15.5px;opacity:.85}
.dv-pillars .pillar-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:rgba(136,164,137,.16);color:var(--vs-forest);margin-bottom:16px}
.dv-pillars .pillar-icon svg{width:22px;height:22px}
.dv-pillars .pillar-number{display:block;font:400 15px var(--serif);color:var(--vs-gold)}
.pillar-carousel-dots{display:none}

/* ==========================================================================
   EXPERIENCE GALLERY (del valle)
   ========================================================================== */
.dv-gallery{display:grid;grid-template-columns:1.55fr 1fr;gap:16px}
.dv-gallery-main-col{display:grid;grid-template-rows:auto auto;gap:16px}
.dv-gallery-secondary{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dv-tile{position:relative;display:block;width:100%;margin:0;background:#e9e3d8;overflow:hidden;border-radius:16px}
.dv-tile img{width:100%;height:100%;object-fit:cover}
.g-main{aspect-ratio:16/10}
.g-a,.g-b{aspect-ratio:4/3}
.g-vertical{aspect-ratio:3/4;height:100%}
.dv-tile .tile-caption{position:absolute;left:0;right:0;bottom:0;margin:0;padding:16px 18px 14px;color:#fff;font-size:13.5px;letter-spacing:.01em;background:linear-gradient(transparent,rgba(6,15,10,.78));display:block}

/* ==========================================================================
   ARCHITECTURE / DISTRIBUTION
   ========================================================================== */
.dv-architecture{display:grid;grid-template-columns:.85fr 1.15fr;gap:6vw;align-items:start}
.dv-architecture h2{font-size:clamp(38px,5vw,72px)}
.dv-architecture-media{display:flex;flex-direction:column;gap:20px}
.dv-architecture .plan-frame{position:relative;display:block;width:100%;margin:0;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#fff}
.dv-architecture .plan-frame img{width:100%;height:auto;display:block}
.dv-architecture .plan-caption{padding:14px 18px 0;font-size:13px;letter-spacing:.03em;color:var(--vs-ink);opacity:.75}
.dv-architecture-photo{margin:0;border-radius:18px;overflow:hidden;position:relative;aspect-ratio:16/9}
.dv-architecture-photo img{width:100%;height:100%;object-fit:cover}
.tag-photo{position:absolute;left:14px;bottom:14px;background:rgba(16,42,32,.75);color:#fff;font-size:11.5px;letter-spacing:.06em;padding:6px 11px;border-radius:999px}
.dv-architecture-list{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:14px}
.dv-architecture-list li{display:flex;gap:12px;font-size:15.5px}
.dv-architecture-list li::before{content:"";width:6px;height:6px;margin-top:9px;border-radius:50%;background:var(--vs-gold);flex-shrink:0}

/* ==========================================================================
   UNIT CARDS (residencias disponibles)
   ========================================================================== */
.unit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.unit-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.unit-card .unit-media{position:relative;display:flex;width:100%;aspect-ratio:4/3;background:linear-gradient(160deg,var(--vs-forest-deep),var(--vs-ink));overflow:hidden;align-items:center;justify-content:center;padding:14px;border:0;margin:0;cursor:zoom-in}
.unit-card .unit-media img{width:100%;height:100%;object-fit:contain}
.unit-card .unit-media .expand-hint{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;background:rgba(246,241,235,.92);color:var(--vs-ink);display:grid;place-items:center}
.unit-card .unit-media .expand-hint svg{width:14px;height:14px}
.unit-hint{margin:0 0 24px;font-size:14px;font-weight:700;color:var(--vs-forest);letter-spacing:.01em}
.unit-hint .arrow{display:inline-block}
.unit-hint-mobile{display:none}
.unit-card .unit-body{padding:24px;display:flex;flex-direction:column;gap:12px;flex:1}
.unit-card .unit-label{font-size:11px;letter-spacing:.2em;opacity:.6;text-transform:uppercase}
.unit-card h3{font:400 46px var(--serif);margin:0}
.unit-card .unit-type{font-weight:700;font-size:14.5px}
.unit-card .unit-specs{display:flex;flex-wrap:wrap;gap:8px;font-size:13px}
.unit-card .unit-specs li{list-style:none;border:1px solid var(--line);border-radius:999px;padding:5px 11px;opacity:.85}
.unit-card .unit-desc{font-size:15px;opacity:.85;flex:1}
.unit-card .button{margin-top:6px}
.unit-legend{margin-top:26px;font-size:13px;opacity:.65;max-width:80ch}
.unit-carousel-dots{display:none}

/* ==========================================================================
   LOCATION
   ========================================================================== */
.dv-location{display:grid;grid-template-columns:1.1fr .9fr;gap:6vw;align-items:start}
.dv-location-address{font-style:normal;margin:20px 0 0;font-size:16px;line-height:1.6;opacity:.9}
.dv-location-nearby{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dv-location-nearby li{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.dv-location-nearby .place{font-weight:700;font-size:14px}
.dv-location-nearby .dist{font-size:12.5px;opacity:.55;font-style:italic}
.dv-location-media{display:grid;gap:20px}
.map-frame{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/10;background:var(--vs-sand)}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.location-photo img{width:100%;height:auto;border-radius:18px;display:block}
.map-cta{margin-top:22px}

/* ==========================================================================
   BUYER VALUE (lo que valoran) + TIMELINE (ruta a la entrega)
   ========================================================================== */
.buyer-value{background:var(--vs-ink);color:#fff;display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw}
.value-list article{padding:22px 0;border-top:1px solid var(--vs-line-light)}
.value-list h3{font:400 27px var(--serif);margin:0 0 8px}
.note{opacity:.62;font-size:13px}
.dv-timeline{background:#fff}
.dv-timeline-media{margin:40px auto 0;border-radius:18px;overflow:hidden;position:relative;max-width:640px;aspect-ratio:4/5}
.dv-timeline-media img{width:100%;height:100%;object-fit:cover;object-position:center 25%}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq{max-width:1160px;margin:auto}
.faq details{border-top:1px solid var(--line);padding:22px 0}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{font:400 24px var(--serif);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:baseline}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-size:22px;flex-shrink:0;transition:transform .2s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{font-size:16px;max-width:80ch;margin-top:14px;opacity:.85}

/* ==========================================================================
   CONTACT FORM
   ========================================================================== */
.contact-form{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;background:var(--vs-sand)}
.contact-form h2{font-size:clamp(42px,5vw,72px)}
.lead-form{background:#fff;border-radius:22px;padding:36px;display:grid;grid-template-columns:1fr 1fr;gap:22px}
.lead-form label{display:grid;gap:9px;font-size:13px;font-weight:700;letter-spacing:.01em}
.lead-form input,.lead-form select,.lead-form textarea{border:0;border-bottom:1px solid var(--vs-ink);background:transparent;padding:12px 0;min-width:0;font-size:16px;min-height:44px}
.lead-form input:invalid:not(:placeholder-shown),.lead-form select:invalid{border-color:#a4351f}
.lead-form .field-error{display:none;color:#a4351f;font-size:12.5px;font-weight:400}
.lead-form .invalid .field-error{display:block}
.lead-form .invalid input,.lead-form .invalid select{border-color:#a4351f}
.lead-form .full{grid-column:1/-1}
.lead-form fieldset{border:0;margin:0;padding:0;grid-column:1/-1}
.lead-form fieldset legend{font-size:13px;font-weight:700;margin-bottom:10px;padding:0}
.lead-form .radio-row{display:flex;flex-wrap:wrap;gap:10px}
.lead-form .radio-row label{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:10px 16px;font-weight:400;font-size:14.5px;cursor:pointer;min-height:44px}
.lead-form .radio-row input{accent-color:var(--vs-forest);width:16px;height:16px}
.consent{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:10px;font-weight:400;font-size:13.5px;line-height:1.4}
.consent input{margin-top:3px;width:18px;height:18px;flex-shrink:0}
.form-message{margin:0;font-size:14px}
.form-message[data-state="error"]{color:#a4351f}
.form-message[data-state="success"]{color:var(--vs-forest)}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{background:var(--vs-ink-2);color:#fff;padding:60px max(5vw,calc((100vw - var(--max))/2)) 100px;display:grid;grid-template-columns:1fr 1fr;gap:44px}
.site-footer .brand{font-size:20px}
.site-footer p{opacity:.75;font-size:14.5px}
.footer-links{display:flex;gap:22px;flex-wrap:wrap;align-self:start}
.footer-links a{opacity:.8;font-size:14.5px}
.footer-links a:hover{opacity:1}
.footer-links form{margin:0}
.gbm-logout-link{all:unset;cursor:pointer;font:inherit;opacity:.8;font-size:14.5px}
.gbm-logout-link:hover{opacity:1}
.site-footer small{grid-column:1/-1;opacity:.55;font-size:12.5px}
.footer-credit{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:14px 0 0;opacity:.9}
.footer-credit span{font-size:12px;letter-spacing:.03em;opacity:.7}
.footer-credit img{width:120px;height:auto;display:block}
.footer-credit.subtle{opacity:.7}
.footer-credit.subtle img{width:90px}

/* ==========================================================================
   LIGHTBOX / GALLERY MODAL
   ========================================================================== */
.gallery-modal{position:fixed;inset:0;z-index:300;background:rgba(6,12,9,.9);padding:24px}
.gallery-shell{height:100%;background:var(--vs-ivory);border-radius:22px;padding:32px;position:relative;display:grid;grid-template-rows:auto 1fr auto}
.gallery-close{position:absolute;right:22px;top:16px;border:0;background:none;font-size:38px;cursor:pointer;line-height:1;padding:8px;color:var(--vs-ink)}
.gallery-head h2{font:400 42px var(--serif);margin:4px 0 18px}
.gallery-stage{display:grid;grid-template-columns:56px 1fr 56px;align-items:center;min-height:0}
.gallery-stage img{max-width:100%;max-height:68vh;margin:auto;object-fit:contain;border-radius:8px}
/* Planos de unidad (Del Valle): la resolucion nativa (346-546px) es mucho menor
   a las fotografias de trayectoria, asi que max-height/max-width por si solos
   nunca la amplian -- el plano se queda a tamano intrinseco (diminuto). width:100%
   + height:72vh (definida, no max) + object-fit:contain fuerza una caja de tamano
   fijo y deja que el navegador escale el contenido hacia arriba dentro de ella sin
   deformar ni recortar. (Se probo height:min(72vh,100%): el 100% no resuelve contra
   la fila auto de .gallery-stage y produce un bug de layout circular -- se descarto).
   Causa raiz real del "diminuto en una esquina": 201/202/203 tienen una sola
   imagen, asi que sus flechas quedan [hidden] (display:none) -- un elemento
   con display:none no participa en el grid, asi que el auto-placement mete
   la imagen en la primera columna de 56px (la de la flecha oculta) en vez de
   la columna central. Se fuerza la columna explicitamente, solo dentro de
   esta clase, para no tocar el resto de las galerias (fotograficas o GBM). */
.gallery-modal.plan-gallery .gallery-stage img{grid-column:2;max-width:100%;max-height:none;width:100%;height:72vh;object-fit:contain}
.gallery-modal.plan-gallery .gallery-stage .gallery-prev{grid-column:1}
.gallery-modal.plan-gallery .gallery-stage .gallery-next{grid-column:3}
/* min-width/min-height:0 son criticos: por defecto un grid item no encoge por debajo
   de su contenido (min-width:auto), asi que un <button> sin padding/tamano reseteado
   se sale de su columna de 44-56px y la flecha queda cortada en mobile. */
.gallery-stage button{border:0;margin:0;padding:0;background:none;width:100%;height:100%;min-width:0;min-height:0;display:grid;place-items:center;font-size:26px;line-height:1;cursor:pointer;color:var(--vs-ink)}
.gallery-stage button[hidden]{display:none}
.gallery-modal[hidden]{display:none}

/* ==========================================================================
   MOBILE STICKY CTA
   ========================================================================== */
.dv-mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:120;display:none;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(16,42,32,.97);backdrop-filter:blur(6px);border-top:1px solid var(--vs-line-light);transform:translateY(100%);transition:transform .28s var(--ease)}
.dv-mobile-cta.visible{transform:translateY(0)}
.dv-mobile-cta a{flex:1;min-height:48px}

/* ==========================================================================
   CONCEPT (gabriel mancera — arquitectura)
   ========================================================================== */
.concept{display:grid;grid-template-columns:.75fr 1.25fr;gap:6vw}
.concept h2{font-size:clamp(42px,5vw,72px)}
.concept-media{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.concept-media img{width:100%;height:600px;object-fit:cover;border-radius:22px}

/* ==========================================================================
   GBM — ARQUITECTURA / VIDA INTERIOR (solo renders; planos vive aparte)
   ========================================================================== */
.gbm-arch{display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;align-items:start}
.gbm-arch h2{font-size:clamp(38px,5vw,64px)}
.gbm-arch-gallery{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}
.gbm-arch-main{margin:0;position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3}
.gbm-arch-main img{width:100%;height:100%;object-fit:cover}
.gbm-arch-secondary{display:grid;grid-template-rows:1fr 1fr;gap:16px}
.gbm-arch-secondary figure{margin:0;position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3}
.gbm-arch-secondary img{width:100%;height:100%;object-fit:cover}

/* ==========================================================================
   GBM — DISTRIBUCIONES (plano, protagonista y ampliable)
   ========================================================================== */
.gbm-planos{background:#fff;text-align:center}
.gbm-planos .section-title{margin:0 auto 36px;max-width:720px}
.gbm-planos .section-title h2{max-width:none}
.gbm-planos-cta-wrap{display:inline-block;max-width:100%}
.gbm-planos-frame{position:relative;display:block;width:100%;max-width:1040px;margin:0 auto;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--vs-ivory);cursor:zoom-in;padding:0}
.gbm-planos-frame img{width:100%;height:auto;display:block}
.gbm-planos-cta{display:inline-flex;align-items:center;gap:6px;margin:18px 0 0;font-size:14px;font-weight:700;color:var(--vs-forest)}
.gbm-planos-cta .arrow{display:inline-block;transition:transform .2s var(--ease)}
.gbm-planos-cta-wrap:hover .arrow,.gbm-planos-cta-wrap:focus-within .arrow{transform:translateX(3px)}

/* ==========================================================================
   HOME — MANIFESTO (editorial rhythm, not feature cards)
   ========================================================================== */
.manifesto{background:#fff}
.manifesto h2{max-width:16ch}
.manifesto .big-copy{max-width:34ch}
.manifesto-lines{list-style:none;margin:clamp(40px,6vw,72px) 0 0;padding:0;display:grid;gap:4px}
.manifesto-lines li{font:400 clamp(26px,4.4vw,58px) var(--serif);letter-spacing:-.01em;padding-left:0;transition:opacity .6s var(--ease),transform .6s var(--ease)}
.manifesto-lines li:nth-child(1){padding-left:0}
.manifesto-lines li:nth-child(2){padding-left:6%}
.manifesto-lines li:nth-child(3){padding-left:12%}
.manifesto-lines li:nth-child(4){padding-left:18%}
.manifesto-lines .reveal:nth-child(2){transition-delay:.08s}
.manifesto-lines .reveal:nth-child(3){transition-delay:.16s}
.manifesto-lines .reveal:nth-child(4){transition-delay:.24s}

/* ==========================================================================
   HOME — NATURALEZA / ÁRBOL
   ========================================================================== */
.nature{background:var(--vs-ivory)}
.nature .lead{margin-top:18px;opacity:.85}
.nature-mark{width:40px;height:40px;margin:clamp(40px,5vw,64px) auto 0;opacity:.9}
.nature-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,28px);margin-top:clamp(24px,3vw,40px)}
.nature-panel{margin:0;position:relative;border-radius:18px;overflow:hidden;aspect-ratio:3/4}
.nature-panel img{width:100%;height:100%;object-fit:cover}
.nature-panel-delvalle img{object-position:center 38%}
.intro-media.gbm-primer-capitulo img{object-position:center 38%}
.nature-panel figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 22px 20px;color:#fff;background:linear-gradient(transparent,rgba(6,15,10,.8))}
.nature-panel figcaption .eyebrow{color:var(--vs-gold-soft);color:#e7dcc0}
.nature-panel figcaption p{margin:8px 0 0;font-size:15px;opacity:.92}

/* ==========================================================================
   HOME — UNA FILOSOFÍA. DOS MOMENTOS. (chapters)
   ========================================================================== */
.chapters{background:#fff}
.chapter{display:grid;grid-template-columns:1.1fr .9fr;gap:6vw;align-items:center;padding:clamp(40px,6vw,80px) 0;border-top:1px solid var(--line)}
.chapter:first-of-type{border-top:0}
.chapter.reverse{grid-template-columns:.9fr 1.1fr}
.chapter.reverse .chapter-media{order:2}
.chapter.reverse .chapter-copy{order:1}
.chapter-media{margin:0;position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/3}
.chapter-media img{width:100%;height:100%;object-fit:cover}
.chapter-copy h3{font:400 clamp(34px,4vw,58px) var(--serif);margin:14px 0 18px}
.chapter-stat{display:inline-flex;align-items:center;gap:10px;margin:6px 0 26px;font:700 14.5px var(--sans);letter-spacing:.03em;color:var(--vs-forest)}
.chapter-stat::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--vs-gold)}

/* ==========================================================================
   HOME — DEVELOPER BIO (Ernesto)
   ========================================================================== */
.developer-bio{background:var(--vs-ivory);display:grid;grid-template-columns:.55fr 1fr;gap:6vw;align-items:center}
.developer-media{margin:0;position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/5;max-width:400px}
.developer-media img{width:100%;height:100%;object-fit:cover}
.developer-copy{max-width:620px}
.developer-copy h2{font-size:clamp(36px,4.6vw,60px);margin:14px 0 18px}
.developer-copy .big-copy{max-width:58ch;font-size:clamp(20px,1.7vw,26px);line-height:1.55}

/* ==========================================================================
   HOME — SELECTED WORK / TRAYECTORIA
   ========================================================================== */
.selected-work{background:#fff}
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.work-card button{all:unset;display:block;cursor:pointer;width:100%}
.work-card button:focus-visible{outline:2px solid var(--vs-gold);outline-offset:3px}
.work-card .work-media{position:relative;width:100%;aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:var(--vs-sand)}
.work-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.work-card button:hover img,.work-card button:focus-visible img{transform:scale(1.035)}
.work-card .work-label{display:flex;justify-content:space-between;align-items:baseline;margin-top:16px}
.work-card strong{font:400 26px var(--serif)}
.work-card small{opacity:.6;font-size:13px}
.work-card .work-cta{display:inline-flex;align-items:center;gap:5px;margin-top:8px;font-size:13.5px;font-weight:700;letter-spacing:.02em;color:var(--vs-forest)}
.work-card .work-cta .arrow{display:inline-block;transition:transform .2s var(--ease)}
.work-card button:hover .work-cta,.work-card button:focus-visible .work-cta{text-decoration:underline;text-underline-offset:3px}
.work-card button:hover .work-cta .arrow,.work-card button:focus-visible .work-cta .arrow{transform:translateX(3px)}

/* ==========================================================================
   HOME — CIERRE
   ========================================================================== */
.closing{background:var(--vs-ink);color:#fff;text-align:center}
.closing h2{max-width:18ch;margin:0 auto;font-size:clamp(36px,5vw,66px)}
.closing-actions{display:flex;justify-content:center;gap:16px;margin-top:36px;flex-wrap:wrap}

/* ==========================================================================
   DEL VALLE — ESCASEZ (escasez elegante, sin urgencia falsa)
   ========================================================================== */
.scarcity{background:var(--vs-sand);text-align:center}
.scarcity .eyebrow{color:var(--vs-forest)}
.scarcity h2{font-size:clamp(28px,3.6vw,46px);max-width:22ch;margin:16px auto 0}
.scarcity p{max-width:60ch;margin:16px auto 0;font-size:16.5px;opacity:.85}
.scarcity-stat{display:inline-flex;align-items:center;gap:10px;margin:22px 0 0;font:700 15px var(--sans);letter-spacing:.03em;color:var(--vs-forest)}
.scarcity-stat::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--vs-gold)}
.scarcity .button{margin-top:28px}

/* ==========================================================================
   DEL VALLE — RESPALDO (conexion breve con Vida Sana)
   ========================================================================== */
.dv-backing{background:var(--vs-ink);color:#fff;text-align:center}
.dv-backing h2{font-size:clamp(28px,3.4vw,42px);max-width:26ch;margin:14px auto 0}
.dv-backing .backing-copy{max-width:56ch;margin:16px auto 0;opacity:.85}
.dv-backing .button{margin-top:26px}

/* ==========================================================================
   GBM — PRIVATE ACCESS GATE (pagina completa, no modal)
   ========================================================================== */
.gbm-gate{min-height:100svh;background:var(--vs-ink);color:#fff;display:flex;align-items:center;justify-content:center;padding:8vh 5vw}
.gbm-gate-inner{width:100%;max-width:420px;text-align:center}
.gbm-gate-mark{width:52px;height:53px;margin:0 auto 28px;opacity:.92}
.gbm-gate-inner .eyebrow{opacity:.75}
.gbm-gate-inner h1{font:400 clamp(38px,6vw,58px)/1.05 var(--serif);margin:18px 0 16px}
.gbm-gate-inner .lead{margin:0 auto;font-size:17px;opacity:.85}
.gbm-gate-error{margin:22px 0 0;padding:12px 16px;border-radius:10px;background:rgba(164,53,31,.18);border:1px solid rgba(164,53,31,.4);color:#f3c9c0;font-size:14.5px}
.gbm-gate-form{margin-top:32px;display:grid;gap:18px;text-align:left}
.gbm-gate-form label{font-size:13px;font-weight:700;letter-spacing:.03em;opacity:.85}
.gbm-gate-form input{width:100%;margin-top:9px;border:0;border-bottom:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;padding:12px 0;font-size:17px;min-height:44px}
.gbm-gate-form input:focus-visible{outline:2px solid var(--vs-gold);outline-offset:4px}
.gbm-gate-form .button{margin-top:6px;min-height:52px}
.gbm-gate-note{margin:26px 0 0;font-size:13px;opacity:.6;letter-spacing:.02em}
.gbm-gate-back{display:inline-block;margin-top:22px;font-size:13.5px;opacity:.7;text-decoration:none}
.gbm-gate-back:hover,.gbm-gate-back:focus-visible{opacity:1;text-decoration:underline}

/* ==========================================================================
   GBM — EL EDIFICIO (fachada completa, sin recorte: object-fit:contain)
   ========================================================================== */
.gbm-fachada{display:grid;grid-template-columns:.85fr 1.15fr;gap:6vw;align-items:center}
.gbm-fachada-copy{max-width:46ch}
.gbm-fachada-copy h2{font-size:clamp(30px,3.6vw,48px);margin-top:14px}
.gbm-fachada-copy p{font-size:17px;opacity:.85;margin-top:16px}
.gbm-fachada-media{margin:0 auto;width:100%;max-width:480px}
.gbm-fachada-media img{width:100%;height:auto;display:block;border-radius:20px}

/* ==========================================================================
   GBM — EL ARBOL (momento visual, full-bleed, unico)
   ========================================================================== */
.gbm-tree{position:relative;background:var(--vs-ink)}
.gbm-tree-media{position:relative;width:100%;aspect-ratio:16/10;margin:0}
.gbm-tree-media img{width:100%;height:100%;object-fit:cover}
.gbm-tree-copy{position:relative;z-index:1;max-width:640px;margin:-90px auto 0;padding:26px clamp(20px,4vw,44px);background:rgba(12,33,24,.94);border-radius:20px;text-align:center;color:#fff}
.gbm-tree-copy .eyebrow{opacity:.75}
.gbm-tree-copy h2{font-size:clamp(26px,3.4vw,40px);margin:12px 0 0}

/* ==========================================================================
   GBM — DISCLAIMERS
   ========================================================================== */
.gbm-disclaimer{background:var(--vs-sand);font-size:14px;line-height:1.6;opacity:.85;max-width:900px;margin:0 auto}
.gbm-disclaimer p{margin:0 0 12px}
.gbm-disclaimer p:last-child{margin-bottom:0}

/* ==========================================================================
   AVISO DE PRIVACIDAD
   ========================================================================== */
.aviso-privacidad{max-width:760px;margin:0 auto}
.aviso-privacidad h1{font-size:clamp(2.2rem,5.5vw,3.6rem);margin:18px 0 24px}
.aviso-privacidad h2{font-family:var(--serif);font-weight:400;font-size:clamp(20px,2.4vw,26px);margin:40px 0 12px}
.aviso-privacidad p,.aviso-privacidad li{font-size:16px;line-height:1.65;opacity:.88}
.aviso-privacidad ul{margin:0;padding-left:20px}
.aviso-privacidad li{margin:6px 0}
.aviso-privacidad a:not(.button){color:var(--vs-forest);text-decoration:underline;opacity:1}
.aviso-privacidad .button{margin-top:36px}

/* ==========================================================================
   GBM — SOCIOS FUNDADORES: teaser publico (sin cifras privadas)
   ========================================================================== */
.gbm-founding-teaser{background:var(--vs-ink);color:#fff;text-align:center}
.gbm-founding-teaser .eyebrow{color:var(--vs-gold)}
.gbm-founding-teaser h2{font-size:clamp(32px,4.2vw,52px);max-width:18ch;margin:16px auto 0}
.gbm-founding-teaser>p{max-width:60ch;margin:16px auto 0;font-size:16.5px;opacity:.85}
.gbm-founding-note{font-size:13px;opacity:.6;max-width:52ch;margin:14px auto 0}
.gbm-founding-teaser .actions{justify-content:center;margin-top:30px}
.gbm-capital-note{font:700 15px/1.5 var(--sans);color:var(--vs-gold);max-width:52ch;margin:18px auto 0}

/* ==========================================================================
   GBM — PRICE LINE (hero)
   ========================================================================== */
.availability-line.light{color:#fff}

/* ==========================================================================
   SOCIOS — INTRO PRIVADA
   ========================================================================== */
.gbm-socios-intro{text-align:center;padding-bottom:0}
.gbm-socios-intro h1{font:400 clamp(38px,5.5vw,64px)/1.05 var(--serif);margin:16px auto 0;max-width:16ch}
.gbm-socios-intro .gbm-capital-note{color:var(--vs-forest)}

/* ==========================================================================
   SOCIOS — ENTRAR DESDE EL ORIGEN
   ========================================================================== */
.gbm-entry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:12px}
.gbm-entry-stat{border-top:1px solid var(--line);padding-top:20px;display:flex;flex-direction:column;gap:6px}
.gbm-entry-stat strong{font:400 clamp(28px,3vw,42px) var(--serif)}
.gbm-entry-stat strong span{font-size:15px;opacity:.6;margin-left:2px}
.gbm-entry-stat-diff strong{color:var(--vs-forest)}
.gbm-stat-label{font-weight:700;font-size:14px}
.gbm-stat-note{font-size:13px;opacity:.6}

/* ==========================================================================
   SOCIOS — EN NÚMEROS
   ========================================================================== */
.gbm-numeros-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px 24px;margin-top:12px}
.gbm-numeros-stat{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:6px}
.gbm-numeros-stat strong{font:400 26px var(--serif)}
.gbm-inline-disclaimer{font-size:13.5px;opacity:.65;max-width:72ch;margin:18px 0 0}

/* ==========================================================================
   SOCIOS — ESTRUCTURA JURÍDICA (flujo del fideicomiso)
   ========================================================================== */
.gbm-estructura-flow{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:2px}
.gbm-estructura-flow li{background:var(--vs-ink);color:#fff;padding:18px 24px;border-radius:12px;font-weight:700;position:relative}
.gbm-estructura-flow li:not(:last-child)::after{content:"↓";position:absolute;left:24px;bottom:-26px;color:var(--vs-forest);font-size:18px;z-index:1}
.gbm-estructura-flow li:not(:last-child){margin-bottom:24px}
.gbm-estructura-notes{list-style:none;margin:32px 0 0;padding:0;max-width:60ch}
.gbm-estructura-notes li{font-size:14.5px;opacity:.75}

/* ==========================================================================
   SOCIOS — TABLA DE DISPONIBILIDAD
   ========================================================================== */
.gbm-table-wrap{overflow-x:auto;margin-top:12px;-webkit-overflow-scrolling:touch}
.gbm-table{border-collapse:collapse;width:100%;min-width:720px;font-size:14.5px}
.gbm-table th{text-align:left;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;opacity:.6;padding:0 14px 12px;font-weight:700}
.gbm-table td{padding:14px;border-top:1px solid var(--line)}
.gbm-table td:first-child,.gbm-table th:first-child{padding-left:0;font-family:var(--serif);font-size:18px}
.gbm-table tr.is-closed td{opacity:.42}
.gbm-table-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:18px;font-size:13px;opacity:.75}
.gbm-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--vs-forest)}
.gbm-dot-closed{background:var(--vs-stone)}

/* ==========================================================================
   SOCIOS — POSICIONES FUNDADORAS
   ========================================================================== */
.gbm-positions{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.gbm-positions li{border:1px solid var(--line);border-radius:14px;padding:20px 14px;text-align:center;font-weight:700;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:10px}
.gbm-dot-lg{width:18px;height:18px;border-radius:50%;border:2px solid var(--vs-forest)}
.gbm-positions li.is-committed{background:var(--vs-ink);color:#fff;border-color:var(--vs-ink)}
.gbm-positions li.is-committed .gbm-dot-lg{background:var(--vs-gold);border-color:var(--vs-gold)}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media(max-width:1080px){
  .main-nav{position:absolute;top:var(--header-h);left:0;right:0;background:var(--vs-ink);display:none;flex-direction:column;align-items:stretch;padding:10px 22px 26px;gap:2px;max-height:calc(100svh - var(--header-h));overflow-y:auto}
  .main-nav.open{display:flex}
  .main-nav a{padding:14px 0;border-bottom:1px solid var(--vs-line-light);min-height:44px;display:flex;align-items:center}
  .main-nav .nav-cta{margin-top:14px;justify-content:center;min-height:48px}
  .menu-button{display:block}
  .editorial,.section-title.split,.buyer-value,.contact-form,.concept,.dv-architecture,.dv-location,.gbm-arch,.gbm-fachada{grid-template-columns:1fr}
  .editorial-media{display:block}
  .intro-media{max-width:100%;min-height:0;margin-top:32px;aspect-ratio:16/9}
  .gbm-fachada-media{max-width:100%;margin-top:32px}
  .metrics{grid-template-columns:1fr 1fr}
  .dv-pillars,.dv-pillars.five,.diligence-list,.unit-grid{grid-template-columns:1fr 1fr}
  .dv-gallery{grid-template-columns:1fr}
  .dv-gallery-main-col{order:1}
  .g-vertical{aspect-ratio:16/9;height:auto}
  .dv-architecture-media{margin-top:32px}
  .gbm-arch-gallery{grid-template-columns:1fr;margin-top:32px}
  .gbm-arch-secondary{grid-template-columns:1fr 1fr;grid-template-rows:none}
  .chapter,.chapter.reverse{grid-template-columns:1fr}
  .chapter.reverse .chapter-media,.chapter.reverse .chapter-copy{order:initial}
  .chapter-media{margin-bottom:28px;max-width:560px}
  .developer-bio{grid-template-columns:1fr;text-align:center}
  .developer-media{margin:0 auto 32px}
  .work-grid{grid-template-columns:1fr 1fr}
  .gbm-entry-grid{grid-template-columns:1fr}
  .gbm-numeros-grid{grid-template-columns:1fr 1fr}
  .gbm-positions{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:620px){
  :root{--header-h:64px}
  .brand span{font-size:19px}
  .hero{min-height:clamp(520px,88svh,760px)}
  .hero-inner{width:calc(100% - 40px);margin-left:20px;padding-bottom:64px}
  .lead{font-size:18px}
  .section{padding:60px 20px}
  .section h2,.editorial h2,.section-title h2,.dv-architecture h2{font-size:clamp(32px,9vw,46px)}
  .metrics{grid-template-columns:1fr 1fr;padding:32px 20px}
  .metrics div{padding:12px;border-left:0;border-top:1px solid var(--vs-line-light)}
  .local-nav{gap:24px;padding:13px 20px}
  .diligence-list{grid-template-columns:1fr}
  .dv-gallery-secondary{grid-template-columns:1fr}
  .gbm-arch-secondary{grid-template-columns:1fr}
  .unit-grid,.dv-pillars.five{display:flex;flex-wrap:nowrap;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding:4px 0 6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .unit-grid::-webkit-scrollbar,.dv-pillars.five::-webkit-scrollbar{display:none}
  .unit-card{scroll-snap-align:start;flex:0 0 84%;min-width:0}
  .dv-pillars.five article{scroll-snap-align:start;flex:0 0 82%;min-width:0;padding-right:6px}
  .unit-carousel-dots,.pillar-carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}
  .unit-carousel-dots button,.pillar-carousel-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:var(--vs-stone);opacity:.5;cursor:pointer}
  .unit-carousel-dots button.active,.pillar-carousel-dots button.active{opacity:1;background:var(--vs-forest);width:18px;border-radius:4px;transition:width .2s var(--ease)}
  .certainty li,.dv-timeline li{grid-template-columns:48px 1fr}
  .certainty li p,.dv-timeline li p{grid-column:2}
  .contact-form{padding:60px 20px}
  .lead-form{grid-template-columns:1fr;padding:22px}
  .lead-form .full{grid-column:1}
  .concept-media{grid-template-columns:1fr}
  .concept-media img{height:400px}
  .dv-timeline-media{max-width:100%}
  .unit-hint-desktop{display:none}
  .unit-hint-mobile{display:inline}
  .gbm-numeros-grid{grid-template-columns:1fr}
  .gbm-positions{grid-template-columns:1fr 1fr}
  .gbm-socios-intro h1{font-size:clamp(32px,9vw,46px)}
  .site-footer{grid-template-columns:1fr;padding:50px 20px 110px}
  .gallery-modal{padding:8px}
  .gallery-shell{padding:18px 10px}
  .gallery-stage{grid-template-columns:44px 1fr 44px}
  .gallery-head h2{font-size:30px}
  .dv-mobile-cta{display:flex}
  .manifesto-lines li:nth-child(1){padding-left:0}
  .manifesto-lines li:nth-child(2){padding-left:4%}
  .manifesto-lines li:nth-child(3){padding-left:8%}
  .manifesto-lines li:nth-child(4){padding-left:12%}
  .nature-split{grid-template-columns:1fr;gap:16px}
  .nature-panel{aspect-ratio:4/3}
  .work-grid{grid-template-columns:1fr}
  .closing-actions{flex-direction:column;align-items:stretch;max-width:360px;margin-left:auto;margin-right:auto}
  .gbm-gate{padding:8vh 24px}
  .gbm-gate-inner{max-width:100%}
  .gbm-tree-media{aspect-ratio:4/5}
  .gbm-tree-copy{margin-top:-60px;padding:22px 20px;border-radius:16px}
  .footer-credit img{width:96px}
  .footer-credit.subtle img{width:80px}
}
