/* ============================================================
   Centro Empresarial Núñez — sistema de diseño (maqueta)
   Marca: verde #235B4E + dorado #C1AC81. Tipografía: Inter
   (provisoria; Contax Sans para titulares cuando haya licencia).
   ============================================================ */

/* ---- Fuentes self-hosted ---- */
@font-face{font-family:"Inter";src:url("../assets/fonts/inter-300.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Inter";src:url("../assets/fonts/inter-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url("../assets/fonts/inter-500.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("../assets/fonts/inter-600.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Inter";src:url("../assets/fonts/inter-700.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Inter";src:url("../assets/fonts/inter-800.woff2") format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Inter";src:url("../assets/fonts/inter-900.woff2") format("woff2");font-weight:900;font-display:swap}
@font-face{font-family:"Contax Sans";src:url("../assets/fonts/contax-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Contax Sans";src:url("../assets/fonts/contax-500.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Contax Sans";src:url("../assets/fonts/contax-700.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Contax Sans";src:url("../assets/fonts/contax-900.woff2") format("woff2");font-weight:900;font-display:swap}

:root{
  --verde:#235B4E;
  --verde-700:#1b4a3f;
  --verde-900:#143229;
  --dorado:#C1AC81;
  --dorado-700:#a8916a;
  --arena:#CFC5A8;
  --arena-claro:#E1E2E3;
  --gris:#848689;
  --gris-panel:#4b4e52;   /* gris del panel izquierdo del hero (botones del header) */
  --gris-700:#5e6164;
  --gris-claro:#C4C6C8;
  --gris-fondo:#36383b;       /* fondo de sección (reemplaza el verde medio) */
  --gris-fondo-osc:#26282b;   /* fondo de sección oscuro (reemplaza el verde 900) */
  --gris-fondo-footer:#1a1c1e;
  --tinta:#16201c;
  --papel:#f6f5f1;
  --blanco:#ffffff;

  --font:"Inter",ui-sans-serif,system-ui,"Segoe UI",sans-serif;
  --font-display:"Contax Sans","Inter",ui-sans-serif,system-ui,sans-serif;
  --maxw:1600px;
  --site-max:1600px;
  --gap:clamp(22px,2.6vw,46px);
  --pad:clamp(20px,5vw,72px);
  --r:999px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font);
  color:var(--tinta);
  background:var(--blanco);
  line-height:1.5;
  font-weight:400;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none}
/* Foco visible por teclado (accesibilidad AA) — anillo dorado con separación */
:focus-visible{outline:3px solid var(--dorado);outline-offset:3px;border-radius:2px}

/* ---- Tipografía ---- */
.display{
  font-family:var(--font-display);
  font-weight:900;
  letter-spacing:-.04em;
  line-height:.92;
  text-transform:none;
}
.section-title,.manifiesto .ph,.stats-statement,.menu-nav a,.especie-info h2,.pilar h3{font-family:var(--font-display)}
.eyebrow{
  font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--dorado-700);
}
/* Sobre secciones oscuras el eyebrow usa el dorado claro (contraste y consistencia) */
.manifiesto .eyebrow,.torre .eyebrow,.dispo .eyebrow,.dev .eyebrow,.contacto .eyebrow{color:var(--dorado)}
/* Selección de texto con color de marca */
::selection{background:var(--dorado);color:#16201c}
.section-title{
  font-weight:800;letter-spacing:-.03em;line-height:1.02;
  font-size:clamp(2rem,4.5vw,3.6rem);
}
.lead{font-size:clamp(1.05rem,1.6vw,1.35rem);font-weight:400;color:#3a463f}
/* Texto justificado en los párrafos de contenido (decisión de Noelia, 2026-07-30).
   `hyphens:auto` parte palabras según el idioma del <html> y evita las calles blancas
   que deja el justificado en columnas angostas. No aplica a títulos ni a botones. */
.manifiesto p,.dev p,.stat p,.pilar p,.especie-info p,.botanica p,
.lead,.cert-intro,.film-head .lead,.amen-head .lead{text-align:justify;hyphens:auto}

/* ---- Layout ---- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
section{position:relative}
.pad-y{padding-block:clamp(64px,9vw,140px)}

/* ---- Botones ---- */
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  padding:.85em 1.5em;border-radius:var(--r);
  font-weight:600;font-size:.95rem;letter-spacing:.01em;
  transition:transform .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn-dorado{background:var(--dorado);color:var(--verde-900)}
.btn-dorado:hover{background:var(--dorado-700)}
.btn-verde{background:var(--verde);color:#fff}
.btn-verde:hover{background:var(--verde-700)}
.btn-outline{border:1.5px solid var(--gris-fondo);color:var(--gris-fondo)}
.btn-outline:hover{background:var(--gris-fondo);color:#fff}
.btn-ghost-light{border:1.5px solid rgba(255,255,255,.5);color:#fff}
.btn-ghost-light:hover{background:#fff;color:var(--verde)}
.btn .arrow{transition:transform .25s ease}
.btn:hover .arrow{transform:translateX(3px)}

/* Las líneas verticales de la grilla se eliminaron (decisión de Noelia, 2026-07-30) */

/* ============================================================ HEADER */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding-block:18px;
  padding-left:max(var(--pad), calc((100% - var(--site-max)) / 2 + var(--pad)));
  padding-right:max(var(--pad), calc((100% - var(--site-max)) / 2 + var(--pad)));
  transition:background .35s ease,padding .35s ease,box-shadow .35s ease;
  animation:headerIn .9s ease .15s both;
}
.site-header.scrolled{background:rgba(38,40,43,.8);backdrop-filter:blur(10px);padding-block:12px;box-shadow:0 1px 0 rgba(255,255,255,.08)}
.brand{display:flex;align-items:center;height:48px}
.brand img{height:41px;width:auto;max-width:none;transition:opacity .35s}
.header-right{display:flex;align-items:center;gap:clamp(14px,2vw,28px)}
.brand .logo-white{display:none}
.site-header.scrolled .brand .logo-color{display:none}
.site-header.scrolled .brand .logo-white{display:block}
.nav{display:none}
.nav a{font-size:.9rem;font-weight:500;color:var(--tinta);opacity:.85;transition:opacity .2s,color .35s}
.nav a:hover{opacity:1}
.site-header.scrolled .nav a{color:#fff}
.nav-right{display:flex;align-items:center;gap:18px}
.lang{display:flex;gap:8px;font-size:.78rem;font-weight:600;letter-spacing:.08em}
.lang button{color:var(--tinta);opacity:.5;transition:opacity .2s,color .35s}
.lang button.active,.lang button:hover{opacity:1}
.lang .sep{opacity:.3}
.site-header.scrolled .lang button{color:#fff}
.ingresar{padding:.5em 1.1em;border-radius:var(--r);border:1.5px solid var(--verde);color:var(--verde);font-size:.82rem;font-weight:600;transition:all .25s}
.ingresar:hover{background:var(--verde);color:#fff}
.site-header.scrolled .ingresar{border-color:rgba(255,255,255,.6);color:#fff}
.site-header.scrolled .ingresar:hover{background:#fff;color:var(--verde)}
.burger{display:flex;flex-direction:column;gap:7px;padding:18px 24px;background:var(--gris-panel);border-radius:999px;justify-content:center;align-items:flex-end;transition:background .3s,transform .25s}
.burger:hover{transform:translateY(-2px)}
.burger span{width:26px;height:2px;background:#fff;border-radius:2px;transition:width .3s,background .3s}
.burger span:last-child{width:17px}
.burger:hover span:last-child{width:26px}
.site-header.scrolled .burger{background:#fff}
.site-header.scrolled .burger span{background:var(--verde)}

/* ============================================================ HERO (video full -> hero-4 al scrollear) */
.hx{position:relative;height:220vh}
.hx-sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:var(--gris-panel)}
/* Video: arranca full, termina en la columna derecha (JS interpola left/width).
   Al achicarse deja ver el fondo gris del sticky a la izquierda. */
.hx-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:2}
/* Velo a la izquierda: legibilidad de la leyenda sobre el video; se desvanece al scrollear */
.hx-scrim{position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(to right, rgba(16,18,20,.72) 0%, rgba(16,18,20,.32) 34%, rgba(16,18,20,0) 56%)}
/* Leyenda fija (siempre en el lugar del bloque gris) */
/* El padding vertical reserva el alto del header: en pantallas bajas la leyenda ya no
   sube hasta pisar el logo. Al ser simétrico, el bloque sigue centrado. */
.hx-legend{position:absolute;z-index:4;left:0;top:0;width:45%;height:100%;
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(92px,12vh,150px) clamp(28px,4.5vw,80px)}
/* El H1 envuelve kicker + palabra grande (semántica); ambos siguen siendo bloques */
.hx-h1{margin:0;font-weight:inherit}
.hx-kicker{display:block;font-size:clamp(.85rem,1.1vw,1.05rem);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dorado);max-width:26ch}
.hx-title{display:block;font-family:var(--font-display);font-weight:900;color:#fff;text-transform:uppercase;letter-spacing:-.03em;line-height:.86;
  font-size:clamp(3.5rem,7.5vw,8rem);margin:clamp(18px,2.6vw,34px) 0 .3em;margin-left:-.05em}
.hx-sub{color:rgba(255,255,255,.88);font-size:1.06rem;line-height:1.5;max-width:32ch;margin-bottom:1.8rem}
.hx-btn{opacity:0;align-self:flex-start}  /* tamaño del contenido; aparece sobre el gris (JS) */
.hx-cue{position:absolute;z-index:5;left:50%;bottom:22px;transform:translateX(-50%);color:#fff;font-size:1.4rem;opacity:.85;animation:hxbob 1.8s ease-in-out infinite}
@keyframes hxbob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(7px)}}
@keyframes headerIn{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}

/* En la home el logo va siempre en blanco (header sobre video/gris) */
body.home .site-header .logo-color{display:none}
body.home .site-header .logo-white{display:block}
/* Selector de idiomas del header: círculo que cicla al click (estilo RAGHSA) */
/* Selector de idioma: mismo fondo que el botón de menú (burger) — círculo gris,
   y blanco cuando el header pasa a grafito al scrollear. */
.lang-toggle{width:46px;height:46px;border-radius:50%;border:0;background:var(--gris-panel);
  color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.06em;cursor:pointer;
  display:grid;place-items:center;transition:background .3s,color .3s,transform .25s}
.lang-toggle:hover{transform:translateY(-2px)}
.site-header.scrolled .lang-toggle{background:#fff;color:var(--verde)}

/* ============================================================ MANIFIESTO (verde) */
.manifiesto{background:var(--gris-fondo);color:#fff}
.manifiesto .wrap{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--gap);align-items:start}
.manifiesto .ph{font-size:clamp(1.4rem,2.6vw,2.2rem);font-weight:600;letter-spacing:-.02em;line-height:1.25}
.manifiesto p{margin-top:1.2rem;color:rgba(255,255,255,.8);max-width:46ch;text-align:justify}
.manifiesto .m-img{aspect-ratio:1/1;border-radius:6px;overflow:hidden}
.manifiesto .m-img img{width:100%;height:100%;object-fit:cover}
/* Botones del manifiesto: aire respecto del texto */
.hero-cta{margin-top:clamp(26px,3vw,42px);display:flex;gap:12px;flex-wrap:wrap}

/* ============================================================ STATEMENT + CIFRAS */
.stats{background:var(--gris-fondo-osc);color:#fff}
.stats-top{display:grid;grid-template-columns:2fr 1fr;gap:var(--gap);align-items:start;margin-bottom:clamp(48px,7vw,104px)}
.stats-statement{font-size:clamp(1.6rem,3.4vw,3rem);font-weight:500;letter-spacing:-.02em;line-height:1.18;max-width:22ch}
.stats-img{border-radius:6px;overflow:hidden;aspect-ratio:4/3}
.stats-img img{width:100%;height:100%;object-fit:cover}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.stat .num{font-size:clamp(3.8rem,9vw,8.5rem);font-weight:300;letter-spacing:-.04em;line-height:.88;color:#fff}
.stat .num .u{font-size:.26em;font-weight:500;color:var(--dorado);vertical-align:super;margin-left:.08em}
.stat h3{margin-top:1.1rem;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.stat p{margin-top:.6rem;font-size:.9rem;color:rgba(255,255,255,.6);max-width:26ch}

/* Reveal palabra por palabra (textos grandes) */
.words .w{display:inline-block;overflow:hidden;vertical-align:top}
.words .w>span{display:inline-block;transform:translateY(115%);transition:transform .7s cubic-bezier(.16,1,.3,1)}
.words.in .w>span{transform:translateY(0)}

/* ============================================================ PILARES (LEED & WELL) */
.pilares{background:var(--papel)}
.pilares-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(32px,4vw,56px)}
.cert-head{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
  padding-left:18px;border-left:3px solid var(--dorado)}
.cert-title{margin:0}
.cert-intro{margin:1.1rem 0 clamp(28px,3.5vw,48px);max-width:62ch;color:#3a463f}
.cert-intro--gap{margin-top:clamp(20px,2.4vw,34px)}
.cert-note{margin-top:1.2rem;font-size:.82rem;color:#56615a;font-style:italic}
.cert-actions{margin-top:clamp(24px,3vw,40px)}
.pilares-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--gris-claro);border:1px solid var(--gris-claro)}
.pilar{background:var(--papel);padding:clamp(28px,3vw,40px) clamp(16px,2vw,26px);min-height:210px;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;
  transition:background .3s,color .3s}
.pilar:hover{background:var(--verde);color:#fff}
.pilar .pi{color:var(--verde);line-height:0;margin-bottom:clamp(20px,2.4vw,32px)}
.pilar .pi svg{width:clamp(92px,9vw,140px);height:clamp(92px,9vw,140px);stroke-width:1}
.pilar:hover .pi{color:#fff}
.pilar h3{font-size:1.1rem;font-weight:700;letter-spacing:-.01em}
.pilar p{margin-top:.55rem;font-size:.86rem;line-height:1.45;color:#56615a;max-width:26ch}
.pilar:hover p{color:rgba(255,255,255,.85)}

/* ============================================================ TORRE / OFICINAS */
.torre{background:var(--gris-fondo-osc);color:#fff}
.torre .wrap{display:grid;grid-template-columns:1fr 2fr;gap:var(--gap);align-items:start}
.torre .t-img{position:relative;border-radius:6px;overflow:hidden;aspect-ratio:4/5}
.torre .t-img img{width:100%;height:100%;object-fit:cover}
.torre h2{color:#fff}
.torre .feat{margin-top:1.8rem;display:grid;gap:0;max-width:520px}
.torre .feat li{list-style:none;display:flex;justify-content:space-between;gap:16px;padding:11px 0;font-size:.98rem}
.torre .feat li span:last-child{color:var(--dorado);font-weight:600}
.torre .t-cta{margin-top:2.4rem;display:flex;gap:12px;flex-wrap:wrap}

/* ============================================================ VIDEO INSTITUCIONAL */
.film{background:var(--gris-fondo);color:#fff}
.film-head{max-width:none}
.film-head .lead{max-width:70ch}
.film .section-title{color:#fff}
.film-head .lead{margin-top:1rem;color:rgba(255,255,255,.8)}
/* Portada: botón a lo ancho, 16:9, con zoom suave al pasar el mouse */
.film-cover{display:block;position:relative;width:100%;margin-top:clamp(28px,4vw,52px);
  padding:0;border:0;background:none;cursor:pointer;border-radius:8px;overflow:hidden;aspect-ratio:16/9}
.film-cover>img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .8s cubic-bezier(.16,1,.3,1),filter .4s ease}
.film-cover::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(16,18,20,.55),rgba(16,18,20,0) 55%)}
.film-cover:hover>img,.film-cover:focus-visible>img{transform:scale(1.03)}
.film-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  width:clamp(66px,7vw,96px);height:clamp(66px,7vw,96px);border-radius:50%;
  background:var(--dorado);color:var(--verde);display:grid;place-items:center;
  box-shadow:0 12px 34px rgba(0,0,0,.35);transition:transform .3s ease,background .3s ease}
.film-play svg{width:44%;height:44%;margin-left:6%}
.film-cover:hover .film-play,.film-cover:focus-visible .film-play{transform:translate(-50%,-50%) scale(1.08);background:#fff}
.film-meta{position:absolute;left:clamp(16px,2vw,28px);bottom:clamp(14px,1.8vw,24px);z-index:2;
  display:flex;align-items:center;gap:12px;color:#fff}
.film-dur{font-size:.78rem;font-weight:700;letter-spacing:.08em;padding:.35em .7em;
  border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(6px)}
.film-cta{font-size:.82rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}

/* ============================================================ AMENITIES */
.amen-head{max-width:60ch}
.amen-head .lead{margin-top:1rem}
.carousel{position:relative}
.amen-carousel{margin-top:clamp(40px,5vw,72px)}
.carousel-track{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-track>*{scroll-snap-align:start}
.amen-track>.galeria-item{flex:0 0 calc((100% - 2*var(--gap))/3)}
.well-track>.pilar,.leed-track>.pilar{flex:0 0 calc((100% - 3*var(--gap))/4);border:1px solid var(--gris-claro);border-radius:4px}
.leed-carousel{margin-top:clamp(28px,3.5vw,48px)}
.carousel-nav{position:absolute;top:40%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.92);color:var(--verde);box-shadow:0 6px 20px rgba(20,50,41,.18);
  display:grid;place-items:center;font-size:1.7rem;line-height:1;transition:background .25s,transform .25s}
.carousel-nav:hover{background:#fff;transform:translateY(-50%) scale(1.06)}
.carousel-nav.prev{left:-10px}
.carousel-nav.next{right:-10px}
.botanica{margin-top:clamp(28px,3.5vw,48px);display:flex;align-items:flex-start;gap:14px}
.botanica .leaf{font-size:1.5rem}
.botanica p{font-size:.95rem;color:#3a463f;max-width:80ch}

/* ============================================================ UBICACIÓN */
.ubic{background:var(--papel)}
.ubic-top{display:grid;grid-template-columns:2fr 1fr;gap:var(--gap);align-items:start;margin-bottom:clamp(32px,4vw,56px)}
.tiempos{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(16px,2.6vw,40px)}
.tiempo{padding-top:16px}
.tiempo .min{font-size:clamp(3rem,6vw,5.5rem);font-weight:300;color:var(--verde);letter-spacing:-.04em;line-height:.88}
.tiempo .min em{font-style:normal;font-size:.3em;font-weight:500;color:var(--dorado-700);vertical-align:super;margin-left:.04em}
.tiempo .d{margin-top:.7rem;font-size:.85rem;color:#56615a;max-width:16ch}
.ubic-map{margin-top:clamp(36px,4.5vw,64px)}
.ubic-addr{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}
.ubic-addr .pin{color:var(--dorado-700);flex:0 0 auto}
.ubic-addr .pin svg{width:30px;height:30px}
.ubic-addr p{font-size:1rem;font-weight:500;color:var(--verde);line-height:1.35}
.map-frame{position:relative;border-radius:8px;overflow:hidden;border:1px solid var(--gris-claro);aspect-ratio:16/9;background:#ececeb}
/* Mapa interactivo de Google (zoom/arrastre): el marcador es nativo, se mueve con el
   mapa; estilo gris de marca vía styles del mapa (ver initCenMap en main.js). */
.cen-map{width:100%;height:100%}
.map-actions{margin-top:16px;display:flex;gap:12px;flex-wrap:wrap}

/* Lightbox de galería: imagen a pantalla completa */
.galeria-item .g-img{cursor:zoom-in}
.lightbox{position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:16px;background:rgba(16,18,20,.93);padding:clamp(20px,5vw,60px);cursor:zoom-out}
.lightbox[hidden]{display:none}
.lightbox-img{max-width:min(1200px,100%);max-height:82vh;object-fit:contain;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
/* Reproductor de video en el lightbox (iframe de Vimeo, 16:9) */
.lightbox-video{width:min(1280px,100%);aspect-ratio:16/9;max-height:82vh;border-radius:6px;overflow:hidden;
  background:#000;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox-video[hidden]{display:none}
.lightbox-video iframe{width:100%;height:100%;border:0;display:block}
.lightbox-cap{color:#fff;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.lightbox-close{position:absolute;top:clamp(16px,3vw,28px);right:clamp(16px,3vw,28px);width:48px;height:48px;border-radius:50%;
  border:0;background:#fff;color:var(--verde);font-size:1.15rem;cursor:pointer;display:grid;place-items:center;transition:transform .3s ease}
.lightbox-close:hover{transform:rotate(90deg)}

/* ============================================================ DESARROLLADORA */
.dev{background:var(--gris-fondo);color:#fff}
/* Izquierda angosta (rótulo + logo + botón), derecha el texto en caja y más ancho */
.dev-top{display:grid;grid-template-columns:minmax(200px,.62fr) 2.5fr;gap:var(--gap);align-items:start}
.dev-brand{display:flex;flex-direction:column;align-items:flex-start}
.dev-logo{height:clamp(22px,3.2vw,36px);width:auto;max-width:100%;margin-top:clamp(14px,1.6vw,22px)}
.dev-cta{margin-top:clamp(22px,2.6vw,34px)}
/* Texto sin caja: mantiene el ancho (alineado con el mapa de arriba), sin fondo ni borde */
.dev-texto{background:none;border:0;padding:0}
.dev p{color:rgba(255,255,255,.82);margin-top:0;max-width:none;text-align:justify;hyphens:auto}

/* ============================================================ CONTACTO */
.contacto{background:var(--gris-fondo-osc);color:#fff}
.contacto .wrap{display:grid;grid-template-columns:2fr 1fr;gap:var(--gap)}
.form{display:grid;gap:14px;margin-top:1.4rem}
.form input,.form textarea{
  width:100%;padding:14px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.06);color:#fff;font-family:inherit;font-size:.95rem;
}
.form input::placeholder,.form textarea::placeholder{color:rgba(255,255,255,.5)}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contacto .info{font-size:.98rem;line-height:2;color:rgba(255,255,255,.85)}
.contacto .info strong{color:var(--dorado)}
.contacto-lead{font-family:var(--font-display);font-size:clamp(1.5rem,2.8vw,2.4rem);font-weight:500;line-height:1.22;letter-spacing:-.01em;max-width:none;hyphens:manual}
.note{font-size:.78rem;color:rgba(255,255,255,.5);margin-top:6px}
/* Estado del envío del formulario (vacío hasta que se envía) */
.form-status{font-size:.88rem;line-height:1.45;margin-top:10px;color:rgba(255,255,255,.7);max-width:52ch}
.form-status:empty{display:none}
.form-status.is-ok{color:var(--dorado);font-weight:600}
.form-status.is-error{color:#f0a9a0}

/* ============================================================ FOOTER */
.footer{background:var(--gris-fondo-footer);color:rgba(255,255,255,.7);padding-block:clamp(48px,6vw,80px)}
.footer .wrap{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.1fr;gap:40px}
.footer img.foot-cen{height:33px;margin-bottom:16px}
.foot-dev{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:24px;margin-bottom:10px}
.foot-raghsa{display:inline-block}
.raghsa-mark{height:19px;width:auto;display:block}
.raghsa-mark .cls-2,.raghsa-mark .cls-1{fill:#fff;transition:fill .2s}
.foot-raghsa:hover .raghsa-mark .cls-2,.foot-raghsa:hover .raghsa-mark .cls-1{fill:var(--dorado)}
.footer h4{color:#fff;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px}
.footer a{display:block;font-size:.9rem;padding:3px 0;transition:color .2s}
/* Datos de contacto del footer: rótulo chico arriba y el dato debajo */
.foot-dato{margin-bottom:12px}
.foot-dato>span:first-child{display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.foot-dato .foot-dir{display:block;font-size:.9rem;padding:3px 0}
.footer a:hover{color:var(--dorado)}
.foot-social{display:flex;gap:12px;margin-bottom:20px}
.foot-social a{width:38px;height:38px;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:grid;place-items:center;color:rgba(255,255,255,.85);transition:color .25s,background .25s,border-color .25s}
.foot-social a:hover{color:var(--verde);background:#fff;border-color:#fff}
.foot-social svg{width:18px;height:18px}
.foot-app-label{font-size:.86rem;color:rgba(255,255,255,.6);margin-bottom:10px}
.foot-apps{display:flex;flex-direction:column;gap:8px}
.foot-app{display:inline-flex;align-items:center;gap:9px;font-size:.9rem;color:rgba(255,255,255,.85);padding:0}
.foot-app svg{width:18px;height:18px;flex:0 0 auto}
.foot-app:hover{color:var(--dorado)}
.legal{grid-column:1/-1;margin-top:40px;font-size:.74rem;color:rgba(255,255,255,.45);max-width:none}

/* ============================================================ REVEAL */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

/* ============================================================ TARJETAS DE FOTO (carrusel) */
.galeria-item{margin:0}
.galeria-item .g-img{display:block;aspect-ratio:4/5;border-radius:6px;overflow:hidden}
.galeria-item .g-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.galeria-item:hover .g-img img{transform:scale(1.05)}
.galeria-item figcaption{margin-top:12px;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#56615a}

/* ============================================================ MENÚ FULLSCREEN */
.menu-overlay{position:fixed;inset:0;z-index:60;background:#2e302f;color:#fff;
  display:flex;flex-direction:column;justify-content:center;gap:clamp(26px,5vh,60px);
  padding:clamp(28px,5vw,72px) var(--pad);
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:opacity .5s ease,transform .5s ease,visibility .5s}
body.menu-open .menu-overlay{opacity:1;visibility:visible;transform:none}
body.menu-open{overflow:hidden}
.menu-close{position:absolute;top:clamp(18px,2.5vw,28px);right:var(--pad);width:54px;height:54px;border-radius:50%;
  background:#fff;color:var(--verde);display:grid;place-items:center;font-size:1.25rem;transition:transform .3s}
.menu-close:hover{transform:rotate(90deg)}
.menu-nav{align-self:center;display:flex;flex-direction:column;gap:clamp(2px,.6vw,10px)}
.menu-nav a{display:inline-flex;align-items:baseline;gap:clamp(14px,1.6vw,26px);width:fit-content;
  font-size:clamp(1.8rem,4.4vw,3.4rem);font-weight:800;letter-spacing:-.02em;line-height:1.18;color:#fff;
  transition:color .25s ease,opacity .25s ease,transform .35s cubic-bezier(.2,.7,.2,1)}
/* Spotlight: al pasar sobre la lista, los que no están activos se atenúan */
.menu-nav:hover a{opacity:.32}
.menu-nav:hover a:hover{opacity:1;color:var(--dorado);transform:translateX(clamp(10px,1.2vw,22px))}
.mn-num{font-family:var(--font-body);font-weight:600;font-size:clamp(.7rem,.9vw,.9rem);letter-spacing:.12em;
  color:var(--dorado);opacity:.6;transition:opacity .25s ease}
.menu-nav a:hover .mn-num{opacity:1}
.mn-arrow{color:var(--dorado);font-weight:400;opacity:0;transform:translateX(-14px);
  transition:opacity .25s ease,transform .35s cubic-bezier(.2,.7,.2,1)}
.menu-nav a:hover .mn-arrow{opacity:1;transform:none}
.menu-media{position:relative;align-self:stretch;border-radius:8px;overflow:hidden;min-height:0}
.menu-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* Preview: la foto de la sección aparece sobre el video al pasar por su ítem */
.menu-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:2;
  opacity:0;transform:scale(1.06);transition:opacity .45s ease,transform .8s ease}
.menu-preview.is-on{opacity:1;transform:scale(1)}
.menu-foot{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
  font-size:.85rem;color:rgba(255,255,255,.6)}
.menu-foot a{color:rgba(255,255,255,.6)}.menu-foot a:hover{color:var(--dorado)}
.menu-social{display:flex;gap:18px}
.menu-left{align-self:center}
.menu-row{display:grid;grid-template-columns:1.35fr .8fr;gap:clamp(24px,4vw,56px);align-items:stretch}
.menu-actions{margin-top:clamp(26px,4vw,46px);display:flex;align-items:center;gap:clamp(14px,2vw,24px);flex-wrap:nowrap}
.menu-actions .lang{display:flex;gap:8px;font-size:.85rem;font-weight:600;letter-spacing:.08em;color:#fff}
.menu-actions .lang button{color:#fff;opacity:.55;transition:opacity .2s}
.menu-actions .lang button.active,.menu-actions .lang button:hover{opacity:1}
.menu-actions .lang .sep{opacity:.3}
.menu-actions .ingresar{padding:.55em 1.2em;border-radius:var(--r);border:1.5px solid rgba(255,255,255,.55);color:#fff;font-size:.85rem;font-weight:600;transition:all .25s}
.menu-actions .ingresar:hover{background:#fff;color:var(--verde)}

/* ============================================================ DISPONIBILIDAD */
.dispo{background:var(--gris-fondo-osc);color:#fff}
.dispo .section-title{color:#fff}
/* Banner destacado "100% alquilado": cinta infinita (marquee) */
.dispo-banner{margin-bottom:clamp(28px,4vw,48px);border-block:1px solid rgba(255,255,255,.14);
  padding-block:clamp(12px,1.6vw,20px);overflow:hidden}
.dispo-banner .carousel-track{gap:0;scroll-snap-type:none;padding-bottom:0}
.dispo-banner span{font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  white-space:nowrap;font-size:clamp(1.7rem,3.4vw,3rem);color:var(--dorado);line-height:1.15}
.dispo-banner span::after{content:"•";margin-inline:clamp(18px,2.4vw,34px);color:rgba(255,255,255,.3)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.dispo-controls{display:flex;gap:16px;flex-wrap:wrap;align-items:stretch;margin-bottom:clamp(24px,3vw,36px)}
.select-wrap{position:relative;flex:1;min-width:240px}
.select-wrap::after{content:"▾";position:absolute;right:18px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--dorado);font-size:.9rem}
.select-wrap select{width:100%;padding:16px 44px 16px 18px;border-radius:8px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff;font-family:inherit;font-size:1rem;font-weight:500;appearance:none;-webkit-appearance:none;cursor:pointer;
  color-scheme:dark}  /* fallback si el listbox propio no se monta */
.select-wrap select option{background:var(--gris-fondo-osc);color:#fff}
.select-wrap select option:checked{background:var(--verde);color:#fff}
/* Desplegable propio: hover dorado, selección verde (el popup nativo no se puede teñir) */
.select-wrap .fsel-native{display:none}
.fsel-btn{width:100%;padding:16px 44px 16px 18px;border-radius:8px;border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.06);color:#fff;font-family:inherit;font-size:1rem;font-weight:500;text-align:left;cursor:pointer;
  transition:border-color .2s}
.fsel-btn:hover,.fsel-btn[aria-expanded="true"]{border-color:var(--dorado)}
.fsel-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 6px);max-height:320px;overflow:auto;
  margin:0;padding:6px;list-style:none;background:var(--gris-fondo-osc);
  border:1px solid rgba(255,255,255,.15);border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.fsel-list li{padding:10px 12px;border-radius:6px;color:#fff;cursor:pointer;font-size:.95rem}
.fsel-list li.is-selected{background:var(--verde);color:#fff}
.fsel-list li.is-active,.fsel-list li.is-selected.is-active{background:var(--dorado);color:#16201c}
.dispo-status{display:flex;align-items:center;gap:11px;padding:16px 24px;border-radius:8px;border:1px solid rgba(255,255,255,.22);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem;white-space:nowrap}
.dispo-status .dot{width:11px;height:11px;border-radius:50%;background:var(--gris);flex:none}
.dispo-status.ok .dot{background:#5bbd86}
.dispo-status.no .dot{background:#e0564f}
.dispo-body{display:grid;grid-template-columns:1fr 2fr;gap:var(--gap);align-items:start;padding-top:clamp(20px,3vw,32px)}
.dispo-specs h3{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:6px}
.dispo-list{list-style:none}
.dispo-list li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;font-size:1.02rem;color:rgba(255,255,255,.82)}
.dispo-list strong{color:var(--dorado);font-weight:600;font-size:1.15rem}
.dispo-dl{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap}
.dispo-img{border-radius:8px;overflow:hidden;aspect-ratio:4/3}
.dispo-img img{width:100%;height:100%;object-fit:cover}

/* ===== Revelado tipo hero: la imagen cubre toda la fila y se achica a su lugar,
   mostrando el texto que queda detrás (JS interpola left/top/width/height). ===== */
.manifiesto .m-img,.stats-top .stats-img,.torre .t-img{overflow:visible;position:relative;z-index:3}
.manifiesto .m-img>img,.stats-top .stats-img>img,.torre .t-img>img{
  position:absolute;top:0;left:0;max-width:none;max-height:none;border-radius:6px;will-change:left,top,width,height}
/* "Pin" de la fila: la sección se fija mientras la imagen se contrae. Da lugar de
   scroll (.rv alto) y fija la fila (.rv-sticky) hasta terminar el efecto. */
.rv{min-height:132vh;position:relative}
/* El bloque fijo mide lo que mide su contenido (antes 100vh, lo que dejaba un vacío
   de media pantalla debajo del contenido al terminar el efecto) y se ancla debajo del
   header. Así, al soltarse, el contenido queda pegado al final de la sección. */
.rv-sticky{position:sticky;top:clamp(88px,11vh,150px);display:block}
/* El .wrap es hijo de un flex column y su margin-inline:auto le impedía estirarse
   (quedaba al ancho del contenido). Con width:100% recupera el ancho de la sección,
   igual que en las secciones sin efecto. */
.rv-sticky>.wrap{width:100%}
/* La sección que sigue a un bloque con efecto no necesita todo el padding superior:
   el contenido anterior ya termina pegado al borde. */
.rv + .pad-y{padding-top:clamp(40px,5vw,72px)}
@media (max-width:920px){
  .manifiesto .m-img,.stats-top .stats-img,.torre .t-img{overflow:hidden}
  .rv{min-height:0}
  .rv-sticky{position:static;min-height:0;display:block}
}

/* ============================================================ GUÍA BOTÁNICA */
.guia{background:var(--papel);padding-block:clamp(112px,14vh,180px) clamp(64px,9vw,140px)}
.guia-head{max-width:64ch;margin-bottom:clamp(40px,6vw,72px)}
.guia-head .lead{margin-top:1rem}
.guia-head .lead .en{color:#7d857f}
.guia-tip{margin-top:1.2rem;font-size:.88rem;color:var(--dorado-700);font-weight:600}
.guia-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,3vw,48px)}
.especie{scroll-margin-top:96px;display:grid;grid-template-columns:.82fr 1fr;align-items:stretch;background:#fff;border-radius:10px;overflow:hidden;border:1px solid var(--gris-claro)}
.especie-img{margin:0;overflow:hidden}
.especie-img img{width:100%;height:100%;min-height:230px;object-fit:cover;display:block}
.especie-info{padding:clamp(20px,2vw,30px)}
.especie-fam{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dorado-700)}
.especie-info h2{font-size:clamp(1.25rem,1.9vw,1.65rem);font-weight:800;letter-spacing:-.02em;margin:.35rem 0 .7rem;color:var(--verde)}
.especie-info p{font-size:.88rem;line-height:1.5;color:#3a463f}
/* Guía botánica trilingüe: se muestra solo el párrafo del idioma activo */
.especie-es,.especie-en,.especie-pt{display:none}
html[lang^="es"] .especie-es,html[lang="en"] .especie-en,html[lang^="pt"] .especie-pt{display:block}

/* ============================================================ RESPONSIVE */
@media(max-width:920px){
  .nav,.nav-right .lang{display:none}
  .burger{display:flex}
  .manifiesto .wrap,.torre .wrap,.ubic-top,.dev-top,.contacto .wrap{grid-template-columns:1fr}
  .amen-track>.galeria-item,.well-track>.pilar,.leed-track>.pilar{flex:0 0 calc((100% - var(--gap))/2)}
  .map-frame{aspect-ratio:4/3}
  /* Hero mobile: sin animación — video arriba, bloque con texto debajo */
  .hx{height:auto}
  .hx-sticky{position:relative;height:auto;display:flex;flex-direction:column;background:#4b4e52}
  .hx-video{position:relative;height:44vh;width:100%!important;left:0!important;z-index:1;order:-1}
  .hx-legend{position:relative;width:100%;height:auto;padding:36px var(--pad)}
  .hx-btn{opacity:1!important}
  .hx-scrim,.hx-cue{display:none}
  .stats-top{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr;gap:34px}
  .footer .wrap{grid-template-columns:1fr 1fr}
  .form .row{grid-template-columns:1fr}
  /* Menú mobile: sin video, una columna */
  .menu-overlay{justify-content:flex-start;padding-top:96px;gap:32px}
  .menu-row{grid-template-columns:1fr}
  .menu-media{display:none}
  .menu-nav{align-self:start;gap:4px;margin-top:6px}
  .menu-foot{flex-direction:column;align-items:flex-start;gap:8px}
  .tiempos{grid-template-columns:repeat(3,1fr);gap:24px}
  .hero::after,.manifiesto::after,.stats::after,.pilares::after,.torre::after,.dispo::after,.amen::after,.ubic::after,.dev::after,.contacto::after{display:none}
  .dispo-body{grid-template-columns:1fr}
  .guia-grid{grid-template-columns:1fr}
  .especie{grid-template-columns:1fr}
  .especie-img img{aspect-ratio:16/10;min-height:0}
}
@media(max-width:520px){
  .footer .wrap{grid-template-columns:1fr}
  .tiempos{grid-template-columns:1fr 1fr}
  .amen-track>.galeria-item{flex:0 0 82%}
  .well-track>.pilar,.leed-track>.pilar{flex:0 0 70%}
  .cert-head{flex-direction:column;align-items:flex-start;gap:14px}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none;transition:none}
  .btn:hover{transform:none}
  .hero-big,.hero-inner *,.hero-title .line,.hero-kicker span,.hero-foot,.hero-mini,.site-header{animation:none!important}
  .hero-title .line,.hero-kicker span{transform:none}
  .hero-big,.hero-foot,.hero-mini{opacity:1;transform:none;clip-path:none}
  .hero-mini img,.hero-mini video{animation:none}
  .words .w>span{transform:none!important;transition:none}
  /* El zoom del hero corre aun en modo reducido (decisión de Noelia); solo se
     frena el rebote autónomo de la flecha. */
  .hx-cue{animation:none}
}
