/* ==========================================================
   HUBCLUB — styles.css
   Paleta: blancos limpios, negro profundo, azules corporativos.
   ========================================================== */

:root{
  --white:#FFFFFF;
  --black:#0A0A0C;
  --ink-soft:#3D3D44;
  --ink-faint:#7A7A82;

  --blue:#16335E;
  --blue-bright:#2F5FA8;
  --blue-pale:#5C8AC9;
  --blue-light:#EEF3FA;

  --line:#E6E6EA;
  --line-on-dark:#26262E;

  --radius:3px;
  --max:1200px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; width:100%; }
body{
  margin:0;
  background:var(--white);
  color:var(--black);
  font-family:'Inter',sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  width:100%;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0; font-family:'Outfit',sans-serif; font-weight:800; letter-spacing:-0.02em; color:var(--black); }
p{ margin:0; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }

.section-inner{ max-width:var(--max); margin:0 auto; padding:0 32px; }

a:focus-visible, button:focus-visible, [tabindex]:focus-visible{
  outline:2px solid var(--blue-bright); outline-offset:3px;
}

.grid-bg{
  background-image: radial-gradient(circle, var(--line) 1px, transparent 1px);
  background-size: 30px 30px;
}

.eyebrow{
  font-size:13px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--blue-bright);
  margin-bottom:16px;
}
.eyebrow-light{ color:var(--blue-pale); }

/* ---------- BARRA DE PROGRESO DE SCROLL ---------- */
/* ---------- BOTONES ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:15px 30px;
  border-radius:var(--radius);
  font-weight:600;
  font-size:14.5px;
  letter-spacing:0.02em;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:all 0.3s ease;
}
.btn-small{ padding:11px 22px; font-size:13.5px; }

.btn-primary{ background:var(--blue); color:var(--white); }
.btn-primary::before{
  content:""; position:absolute; inset:0; background:var(--black);
  transform:scaleX(0); transform-origin:left; transition:transform 0.35s var(--ease); z-index:-1;
}
.btn-primary:hover::before{ transform:scaleX(1); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(10,10,12,0.18); }

.btn-ghost{ background:transparent; color:var(--blue); border:1.5px solid var(--blue); }
.btn-ghost::before{
  content:""; position:absolute; inset:0; background:var(--blue);
  transform:scaleX(0); transform-origin:left; transition:transform 0.35s var(--ease); z-index:-1;
}
.btn-ghost:hover::before{ transform:scaleX(1); }
.btn-ghost:hover{ color:var(--white); transform:translateY(-2px); }

.btn-ghost-light{ border-color:rgba(255,255,255,0.6); color:var(--white); }
.btn-ghost-light::before{ background:var(--white); }
.btn-ghost-light:hover{ color:var(--black); }

.btn-whatsapp{ background:#25D366; color:var(--white); border:none; }
.btn-whatsapp::before{
  content:""; position:absolute; inset:0; background:#128C7E;
  transform:scaleX(0); transform-origin:left; transition:transform 0.35s var(--ease); z-index:-1;
}
.btn-whatsapp:hover::before{ transform:scaleX(1); }
.btn-whatsapp:hover{ color:var(--white); transform:translateY(-2px); box-shadow:0 10px 24px rgba(37,211,102,0.28); }
.wa-icon{ width:18px; height:18px; flex-shrink:0; }

/* Floating WhatsApp button */
.wa-float{
  position:fixed; bottom:28px; right:28px; z-index:900;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; color:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 24px rgba(37,211,102,0.40);
  transition:transform 0.25s var(--ease), box-shadow 0.25s ease;
}
.wa-float svg{ width:30px; height:30px; }
.wa-float:hover{ transform:scale(1.1) translateY(-3px); box-shadow:0 12px 32px rgba(37,211,102,0.5); }
.wa-float::after{
  content:""; position:absolute; inset:0; border-radius:50%;
  border:2px solid rgba(37,211,102,0.6);
  animation:waPing 2.6s var(--ease) infinite;
}
@keyframes waPing{ 0%{ transform:scale(1); opacity:1; } 70%,100%{ transform:scale(1.55); opacity:0; } }
@media (max-width:980px){ .wa-float{ bottom:88px; right:18px; width:52px; height:52px; } .wa-float svg{ width:26px; height:26px; } }

/* ---------- PROMO BAR ---------- */
.promo-bar{
  background:var(--black); color:var(--white);
  display:flex; align-items:center; justify-content:center; gap:18px;
  padding:11px 20px; font-size:13.5px; text-align:center; position:relative;
  animation:slideDown 0.6s var(--ease) both;
}
.promo-bar p{ margin:0; }
.promo-bar strong{ color:var(--blue-pale); }
.promo-bar a{ text-decoration:underline; text-underline-offset:3px; transition:color 0.3s ease; }
.promo-bar a:hover{ color:var(--blue-pale); }
.promo-close{
  position:absolute; right:18px; top:50%; transform:translateY(-50%);
  color:var(--white); font-size:20px; line-height:1; opacity:0.6; transition:opacity 0.3s ease;
}
.promo-close:hover{ opacity:1; }
.promo-bar.hidden{ display:none; }

@keyframes slideDown{ from{ opacity:0; transform:translateY(-100%); } to{ opacity:1; transform:translateY(0); } }

/* ---------- HEADER ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:60;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background 0.5s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}
.site-header.scrolled{
  background:rgba(255,255,255,0.97); backdrop-filter:blur(14px);
  border-bottom-color:var(--line); box-shadow:0 4px 24px rgba(10,10,12,0.06);
}
/* Header: logo izquierda, links agrupados a la derecha */
.header-inner{
  max-width:var(--max); margin:0 auto; padding:0 32px; height:82px;
  display:grid; grid-template-columns:auto 1fr auto; align-items:center;
}
.brand{ display:flex; align-items:center; }
.brand-text{
  font-family:'Outfit',sans-serif; font-size:32px; font-weight:800;
  color:var(--white); letter-spacing:-0.02em;
  transition:color 0.4s ease;
}
.site-header.scrolled .brand-text{ color:var(--black); }

.main-nav{ display:flex; align-items:center; gap:38px; justify-self:end; margin-right:38px; }

/* Nav links + Nosotros button: estilo ligero tipo travel */
.main-nav a,
.nav-overlay-btn{
  font-family:'Outfit',sans-serif; font-size:19px; font-weight:800;
  color:rgba(255,255,255,0.95); letter-spacing:0.04em; text-transform:lowercase;
  position:relative; padding:4px 0;
  transition:color 0.25s ease; white-space:nowrap;
  background:none; border:none; cursor:pointer;
}
.main-nav a::after,
.nav-overlay-btn::after{
  content:""; position:absolute; left:0; bottom:-3px; right:0; height:1.5px;
  background:currentColor;
  transform:scaleX(0); transform-origin:left center;
  transition:transform 0.22s cubic-bezier(.22,.61,.36,1);
}
.main-nav a:hover,
.nav-overlay-btn:hover{ color:var(--white); }
.main-nav a:hover::after,
.nav-overlay-btn:hover::after,
.nav-overlay-btn.nos-active::after{ transform:scaleX(1); }

/* Contáctanos: plain large text, no pill */
.header-actions{ justify-self:end; display:flex; align-items:center; gap:18px; }
.nav-contacto{
  font-family:'Outfit',sans-serif; font-size:19px; font-weight:800; color:rgba(255,255,255,0.95);
  letter-spacing:0.04em; text-transform:lowercase;
  position:relative; padding:4px 0;
  transition:color 0.25s ease; white-space:nowrap;
}
.nav-contacto::after{
  content:""; position:absolute; left:0; bottom:-3px; right:0; height:1.5px;
  background:currentColor;
  transform:scaleX(0); transform-origin:left center;
  transition:transform 0.22s cubic-bezier(.22,.61,.36,1);
}
.nav-contacto:hover{ color:var(--white); }
.nav-contacto:hover::after{ transform:scaleX(1); }
.nav-contacto:hover::after{ width:100%; }
.site-header.scrolled .nav-contacto{ color:var(--ink-soft); }
.site-header.scrolled .nav-contacto::after{ background:var(--blue-bright); }
.site-header.scrolled .nav-contacto:hover{ color:var(--black); }

.header-actions{ display:flex; align-items:center; gap:20px; }

/* Redes sociales en el menú superior (minimalista, monocromo) */
.nav-social{ display:flex; align-items:center; gap:14px; }
.nav-social-link{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; color:rgba(255,255,255,0.95);
  transition:color 0.25s ease, transform 0.2s ease;
}
.nav-social-link svg{ width:20px; height:20px; }
.nav-social-link:hover{ transform:translateY(-2px); }
.site-header.scrolled .nav-social-link{ color:var(--black); }

.menu-toggle{ display:none; padding:6px; }
.menu-toggle span{ display:block; width:22px; height:2px; background:var(--white); margin:5px 0; transition:transform 0.3s ease, opacity 0.3s ease, background 0.4s ease; }
.site-header.scrolled .menu-toggle span{ background:var(--black); }

/* Menú abierto: bloquear scroll de fondo + X siempre visible (blanca) */
body.menu-open{ overflow:hidden; }
body.menu-open .menu-toggle span{ background:var(--white) !important; }
body.menu-open .menu-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
body.menu-open .menu-toggle span:nth-child(2){ opacity:0; }
body.menu-open .menu-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
/* Oculta iconos sociales cuando el menú está abierto (evita choque con la X) */
body.menu-open .nav-social{ opacity:0; pointer-events:none; }

@media (max-width:980px){
  .main-nav{
    position:fixed; top:0; left:0; right:0; bottom:0;
    width:100%; justify-self:stretch; margin:0;
    background:var(--black);
    flex-direction:column; align-items:flex-start; justify-content:center;
    padding:96px 34px 40px; gap:6px;
    transform:translateX(100%); transition:transform 0.4s var(--ease);
    overflow-y:auto; z-index:58;
  }
  .main-nav.open{ transform:translateX(0); }
  .main-nav a,
  .main-nav .nav-overlay-btn{
    font-size:30px; width:100%; padding:16px 0; text-align:left;
    border-bottom:1px solid rgba(255,255,255,0.1);
  }
  .main-nav .nav-overlay-btn::after{ display:none; }
  /* Contáctanos dentro del menú móvil */
  .nav-contacto-mobile{
    display:block !important;
    font-family:'Outfit',sans-serif; font-size:30px; font-weight:800;
    color:var(--white); letter-spacing:0.04em; text-transform:lowercase;
    width:100%; padding:16px 0;
  }
  .header-actions .nav-contacto{ display:none; }
  .menu-toggle{ display:block; position:relative; z-index:60; }
}
/* Link de contáctanos solo visible en móvil (dentro del drawer) */
.nav-contacto-mobile{ display:none; }

/* ---------- HERO DISCOVER (fondo full + cards de vista previa) ---------- */
.hero{ position:relative; min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; justify-content:center; overflow:hidden; color:var(--white); background:var(--black); }

.hd-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transform:scale(1.06);
  transition:opacity 1s var(--ease), transform 7s linear;
  will-change:opacity, transform;
}
.hd-bg.on{ opacity:1; transform:scale(1); }
.hd-shade{
  position:absolute; inset:0; pointer-events:none; z-index:3;
  background:linear-gradient(95deg, rgba(10,10,12,0.88) 0%, rgba(10,10,12,0.62) 38%, rgba(10,10,12,0.30) 62%, rgba(10,10,12,0.45) 100%),
             linear-gradient(to top, rgba(10,10,12,0.75) 0%, transparent 30%),
             linear-gradient(to bottom, rgba(10,10,12,0.55) 0%, transparent 22%);
}

.hd-inner{
  position:relative; z-index:4;
  max-width:var(--max); width:100%; margin:0 auto;
  padding:130px 32px 40px;
  display:grid; grid-template-columns:minmax(300px,1.15fr) auto;
  gap:48px; align-items:center; flex:1;
}
.hd-info{ max-width:560px; }
.hd-info .eyebrow{ margin-bottom:12px; }
.hero h1{ color:var(--white); font-size:clamp(40px,5.2vw,64px); line-height:1.05; margin-bottom:6px; text-shadow:0 4px 28px rgba(10,10,12,0.6); }
.hero h1 .accent{ color:var(--blue-pale); font-weight:800; }
.shimmer{
  background:linear-gradient(90deg, var(--blue-pale) 0%, var(--white) 50%, var(--blue-pale) 100%);
  background-size:200% auto;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:shimmerMove 5s linear infinite;
}
@keyframes shimmerMove{ 0%{ background-position:0% 50%; } 100%{ background-position:200% 50%; } }

.hero-lead{
  font-family:'Outfit',sans-serif; font-size:clamp(20px,2.4vw,28px);
  font-weight:700; color:var(--white); letter-spacing:-0.01em; line-height:1.25;
  max-width:22ch; margin:0 0 30px;
  text-shadow:0 2px 18px rgba(10,10,12,0.6);
}

.hero-offers{ margin-bottom:32px; }
.offer-row{
  display:inline-flex; align-items:center; gap:20px;
  background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2);
  border-radius:100px; padding:12px 28px; backdrop-filter:blur(8px);
}
.offer-item{ font-family:'Outfit',sans-serif; font-size:14px; font-weight:500; color:rgba(255,255,255,0.9); }
.offer-item strong{ font-size:20px; font-weight:800; color:var(--white); display:inline; }
.offer-sep{ width:1px; height:28px; background:rgba(255,255,255,0.25); flex-shrink:0; }

.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:26px; }

/* Cards de vista previa (derecha) */
.hd-cards{ display:flex; gap:18px; align-items:center; }
.hd-card{
  position:relative; width:150px; aspect-ratio:5/7; flex-shrink:0;
  border:1px solid rgba(255,255,255,0.25); padding:0; border-radius:14px; overflow:hidden; cursor:pointer;
  background:rgba(255,255,255,0.06); backdrop-filter:blur(4px);
  box-shadow:0 22px 44px rgba(0,0,0,0.45);
  opacity:0; transform:translateY(24px);
  animation:hdCardIn 0.55s var(--ease) both;
  transition:transform 0.3s var(--ease), box-shadow 0.3s ease, border-color 0.3s ease;
}
.hd-card:hover{ transform:translateY(-8px); border-color:rgba(255,255,255,0.55); box-shadow:0 30px 56px rgba(0,0,0,0.55); }
/* Zoom base para recortar franjas en los bordes de las fotos */
.hd-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.18); transition:transform 0.5s var(--ease); }
.hd-card:hover img{ transform:scale(1.26); }
.hd-card::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(10,10,12,0.8) 0%, transparent 48%);
}
.hd-card-over{
  position:absolute; bottom:34px; left:14px; z-index:1;
  font-family:'Outfit',sans-serif; font-size:9.5px; font-weight:600;
  letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.6);
}
.hd-card-name{
  position:absolute; bottom:13px; left:14px; right:14px; z-index:1; text-align:left;
  font-family:'Outfit',sans-serif; font-size:14px; font-weight:700;
  color:var(--white); line-height:1.25;
}
@keyframes hdCardIn{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:translateY(0); } }

@media (max-width:980px){
  .hd-inner{ grid-template-columns:1fr; gap:30px; align-items:start; }
  .hd-cards{ overflow-x:auto; padding-bottom:6px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .hd-cards::-webkit-scrollbar{ display:none; }
  .hd-card{ width:132px; }
}
.hero-actions .btn-ghost{ border-color:rgba(255,255,255,0.6); color:var(--white); }
.hero-actions .btn-ghost::before{ background:var(--white); }
.hero-actions .btn-ghost:hover{ color:var(--black); }

.hero-micro{ display:flex; gap:22px; font-size:12.5px; color:rgba(255,255,255,0.68); flex-wrap:wrap; justify-content:center; }

@keyframes fadeUp{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:translateY(0); } }

.scroll-cue{ display:none; }
@keyframes scrollCue{ 0%{ transform:translateY(-100%); } 100%{ transform:translateY(60px); } }

/* ---------- MARQUEE ---------- */
.marquee{ background:var(--blue); overflow:hidden; padding:13px 0; }
.marquee-track{ display:flex; white-space:nowrap; animation:marqueeScroll 22s linear infinite; }
.marquee-track span{ font-size:13px; font-weight:600; letter-spacing:0.1em; color:var(--white); padding:0 28px; opacity:0.92; }
.marquee-track span:nth-child(odd){ color:var(--blue-pale); }
@keyframes marqueeScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---------- SCROLL REVEAL ---------- */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity 0.7s var(--ease), transform 0.7s var(--ease); }
.reveal.visible{ opacity:1; transform:translateY(0); }

/* stagger en grids: cada hijo entra un poco después que el anterior */
.why-grid .why-card:nth-child(1){ transition-delay:0s; }
.why-grid .why-card:nth-child(2){ transition-delay:0.08s; }
.why-grid .why-card:nth-child(3){ transition-delay:0.16s; }
.why-grid .why-card:nth-child(4){ transition-delay:0.24s; }
.why-grid .why-card:nth-child(5){ transition-delay:0.32s; }

.steps .step:nth-child(1){ transition-delay:0s; }
.steps .step:nth-child(2){ transition-delay:0.1s; }
.steps .step:nth-child(3){ transition-delay:0.2s; }

.plans-grid .plan-card:nth-child(1){ transition-delay:0s; }
.plans-grid .plan-card:nth-child(2){ transition-delay:0.1s; }
.plans-grid .plan-card:nth-child(3){ transition-delay:0.2s; }

.testimonials .testimonial:nth-child(1){ transition-delay:0s; }
.testimonials .testimonial:nth-child(2){ transition-delay:0.1s; }
.testimonials .testimonial:nth-child(3){ transition-delay:0.2s; }

.gallery-grid .gallery-item:nth-child(1){ transition-delay:0s; }
.gallery-grid .gallery-item:nth-child(2){ transition-delay:0.06s; }
.gallery-grid .gallery-item:nth-child(3){ transition-delay:0.12s; }
.gallery-grid .gallery-item:nth-child(4){ transition-delay:0.18s; }
.gallery-grid .gallery-item:nth-child(5){ transition-delay:0.24s; }
.gallery-grid .gallery-item:nth-child(6){ transition-delay:0.3s; }

.stats-grid .stat:nth-child(1){ transition-delay:0s; }
.stats-grid .stat:nth-child(2){ transition-delay:0.08s; }
.stats-grid .stat:nth-child(3){ transition-delay:0.16s; }
.stats-grid .stat:nth-child(4){ transition-delay:0.24s; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }

  .hero-bg-img,.hero-orb,.shimmer,.marquee-track,.live-dot,.scroll-cue span,.offer-row,.promo-bar{ animation:none; }
}

/* ---------- POR QUÉ HUBCLUB — dark horizontal layout ---------- */
.section-lead{ color:var(--ink-faint); font-size:18px; max-width:60ch; margin-bottom:54px; }

/* ---------- NOSOTROS OVERLAY ---------- */
.nos-overlay{
  position:fixed; inset:0; z-index:200;
  background:#EAF0FA;
  overflow-y:auto; overflow-x:hidden;
  opacity:0; pointer-events:none;
  transform:translateY(28px);
  transition:opacity 0.38s cubic-bezier(.22,.61,.36,1), transform 0.38s cubic-bezier(.22,.61,.36,1);
}
.nos-overlay.open{ opacity:1; pointer-events:auto; transform:translateY(0); }

/* Sticky top bar */
.nos-bar{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 48px; height:72px;
  background:#EAF0FA;
  border-bottom:1px solid rgba(10,10,12,0.06);
}
.nos-brand{
  font-family:'Outfit',sans-serif; font-size:28px; font-weight:800;
  color:var(--black); letter-spacing:-0.02em;
}
.nos-close{
  width:44px; height:44px; border:none; background:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  color:var(--black); border-radius:50%;
  transition:background 0.2s ease;
}
.nos-close:hover{ background:rgba(10,10,12,0.06); }
.nos-close svg{ width:22px; height:22px; }

/* ── SECTION 1: Statement + photo ── */
.nos-hero{ background:#EAF0FA; }
.nos-hero-inner{
  max-width:1200px; margin:0 auto;
  padding:80px 48px 56px;
}
.nos-eyebrow{
  font-family:'Outfit',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:0.15em; text-transform:uppercase; color:var(--blue-bright);
  margin:0 0 28px;
}
.nos-hero-title{
  font-family:'Outfit',sans-serif;
  font-size:clamp(32px,4.8vw,68px);
  font-weight:800; letter-spacing:-0.02em; text-transform:uppercase;
  color:var(--black); line-height:1.0; margin:0; max-width:900px;
}
.nos-hero-img{
  width:100%; aspect-ratio:16/6; overflow:hidden;
}
.nos-hero-img img{ width:100%; height:100%; object-fit:cover; object-position:center 35%; display:block; }

/* ── SECTION 2: NOSOTROS about (left title + right text) ── */
.nos-about{
  background:var(--white);
  padding:80px 0;
}
.nos-about-inner{
  max-width:1200px; margin:0 auto; padding:0 48px;
  display:grid; grid-template-columns:1fr 1.4fr; gap:64px; align-items:start;
}
.nos-about-left{ position:sticky; top:100px; }
.nos-about-title{
  font-family:'Outfit',sans-serif;
  font-size:clamp(44px,5.5vw,76px);
  font-weight:800; letter-spacing:-0.03em; text-transform:uppercase;
  color:var(--black); line-height:0.95; margin:0;
}
.nos-about-pillars{ display:flex; flex-direction:column; gap:0; margin-top:34px; border-top:2px solid var(--black); }
.nos-pillar{
  font-family:'Outfit',sans-serif; font-size:15px; font-weight:700;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--black);
  padding:14px 2px; border-bottom:1px solid var(--line);
  display:flex; align-items:center; gap:10px;
}
.nos-pillar::before{ content:"—"; color:var(--blue-bright); }
.nos-about-lead{
  font-family:'Outfit',sans-serif;
  font-size:clamp(20px,2vw,26px);
  font-weight:700; color:var(--black); line-height:1.35;
  margin:0 0 28px;
}
.nos-about-body{
  font-family:'Inter',sans-serif;
  font-size:clamp(17px,1.5vw,20px);
  font-weight:400; color:rgba(10,10,12,0.7); line-height:1.65;
  margin:0 0 24px;
}

/* ── SECTION 3: Interactive stats ── */
.nos-stats{
  background:var(--black);
  padding:100px 0 80px;
}
.nos-stats-inner{
  max-width:1200px; margin:0 auto; padding:0 48px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:2px;
  margin-bottom:64px;
}
.nos-stat-card{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  padding:48px 32px;
  transition:background 0.3s var(--ease), transform 0.3s var(--ease), border-color 0.3s ease;
  cursor:default;
}
.nos-stat-card:hover{
  background:rgba(47,95,168,0.18);
  border-color:rgba(92,138,201,0.3);
  transform:translateY(-6px);
}
.nos-stat-num{
  font-family:'Outfit',sans-serif;
  font-size:clamp(48px,5vw,72px);
  font-weight:800; color:var(--white);
  display:block; line-height:1; margin-bottom:14px;
}
.nos-stat-label{
  font-family:'Outfit',sans-serif; font-size:12px; font-weight:700;
  color:var(--blue-pale); letter-spacing:0.08em; text-transform:uppercase;
  margin:0 0 14px;
}
.nos-stat-desc{
  font-size:15px; color:rgba(255,255,255,0.5); line-height:1.65; margin:0;
}
.nos-stats-cta{
  max-width:1200px; margin:0 auto; padding:0 48px;
}
.nos-cta-btn{
  font-family:'Outfit',sans-serif; font-size:17px; font-weight:700;
  color:var(--white); background:none; border:1.5px solid rgba(255,255,255,0.4);
  padding:18px 44px; border-radius:var(--radius);
  display:inline-block; letter-spacing:0.03em;
  transition:background 0.22s var(--ease), border-color 0.22s ease, color 0.22s ease;
}
.nos-cta-btn:hover{ background:var(--white); color:var(--black); border-color:var(--white); }

/* ── Animaciones de entrada al abrir el overlay ── */
.nos-overlay .nos-eyebrow,
.nos-overlay .nos-hero-title{ opacity:0; transform:translateY(24px); }
.nos-overlay.open .nos-eyebrow{ animation:nosIn 0.6s var(--ease) 0.15s forwards; }
.nos-overlay.open .nos-hero-title{ animation:nosIn 0.7s var(--ease) 0.25s forwards; }
.nos-overlay .nos-hero-img img{ transform:scale(1.06); transition:transform 1.4s var(--ease); }
.nos-overlay.open .nos-hero-img img{ transform:scale(1); }
.nos-overlay .nos-stat-card{ opacity:0; transform:translateY(20px); }
.nos-overlay.open .nos-stat-card{ animation:nosIn 0.55s var(--ease) forwards; }
.nos-overlay.open .nos-stat-card:nth-child(1){ animation-delay:0.30s; }
.nos-overlay.open .nos-stat-card:nth-child(2){ animation-delay:0.40s; }
.nos-overlay.open .nos-stat-card:nth-child(3){ animation-delay:0.50s; }
.nos-overlay.open .nos-stat-card:nth-child(4){ animation-delay:0.60s; }
@keyframes nosIn{ to{ opacity:1; transform:translateY(0); } }

/* ── MOBILE ── */
@media(max-width:860px){
  .nos-bar{ padding:0 24px; }
  .nos-hero-inner{ padding:48px 24px 40px; }
  .nos-hero-img{ aspect-ratio:4/3; }
  .nos-about{ padding:56px 0; }
  .nos-about-inner{ grid-template-columns:1fr; gap:36px; padding:0 24px; }
  .nos-about-left{ position:static; }
  .nos-about-title br{ display:none; }
  .nos-about-pillars{ flex-direction:row; flex-wrap:wrap; gap:0 22px; border-top:none; margin-top:20px; }
  .nos-pillar{ border-bottom:none; padding:6px 0; font-size:13px; }
  .nos-stats-inner{ grid-template-columns:1fr 1fr; padding:0 24px; }
  .nos-stats-cta{ padding:0 24px; }
  .nos-stat-card{ padding:32px 24px; }
}
@media(max-width:520px){
  .nos-stats-inner{ grid-template-columns:1fr; }
  .nos-hero-title{ font-size:clamp(26px,8vw,34px); }
}

/* ---------- DISPONIBILIDAD ---------- */
.disponibilidad{ padding:100px 0 110px; background:var(--white); }
.disponibilidad .eyebrow{ color:var(--blue-bright); }
.disponibilidad .floorplan-text h2{ color:var(--black); }
.disponibilidad .floorplan-text .section-lead{ color:var(--ink-soft); }
.floorplan-eyebrow-row{ display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.floorplan-eyebrow-row .eyebrow{ margin-bottom:0; }
.envivo-badge{ display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:700; color:var(--blue); background:var(--blue-light); border:1px solid rgba(92,138,201,0.3); padding:5px 13px; border-radius:100px; letter-spacing:0.07em; text-transform:uppercase; }
.floorplan-grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:56px; align-items:stretch; }
.floorplan-text{ display:flex; flex-direction:column; justify-content:center; }
.floorplan-text h2{ font-size:clamp(28px,3.6vw,38px); margin-bottom:14px; }

.floorplan-ctas{ display:flex; flex-direction:column; gap:14px; margin-top:26px; max-width:380px; }
.floorplan-ctas .btn{ width:100%; justify-content:center; min-height:54px; }
.floorplan-ctas .btn-ghost{ border-color:var(--black); color:var(--black); }
.floorplan-ctas .btn-ghost::before{ background:var(--black); }
.floorplan-ctas .btn-ghost:hover{ color:var(--white); }

.avail-panel{ background:var(--white); border:1px solid var(--line); padding:24px; border-radius:var(--radius); box-shadow:0 20px 44px rgba(10,10,12,0.06); }
.floorplan-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.floorplan-head h3{ font-family:'Inter',sans-serif; font-size:13px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); margin:0; }
.live-pill{ display:flex; align-items:center; gap:7px; font-size:12.5px; color:#16A34A; }
.live-dot{ width:7px; height:7px; border-radius:50%; background:#22C55E; animation:pulseDot 1.8s ease-in-out infinite; }
@keyframes pulseDot{ 0%,100%{ opacity:1; transform:scale(1); } 50%{ opacity:.4; transform:scale(1.3); } }

.avail-grid{ display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.avail-card{ background:var(--blue-light); border:1px solid var(--line); padding:20px; transition:background 0.2s ease, border-color 0.2s ease; }
.avail-card:hover{ background:#E4EDF9; border-color:var(--blue-pale); }
.avail-card--wide{ grid-column:1 / -1; }
.avail-card-top{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:8px; }
.avail-name{ font-family:'Outfit',sans-serif; font-size:14px; font-weight:700; color:var(--black); }
.avail-badge{ display:none; }
.avail-desc{ font-size:12.5px; color:var(--ink-soft); line-height:1.55; margin:0 0 10px; }
.avail-meta{ display:flex; gap:6px; flex-wrap:wrap; font-size:11px; font-weight:600; color:var(--ink-faint); letter-spacing:0.04em; text-transform:uppercase; }
.avail-occ{ margin-bottom:10px; }
.avail-occ-bar{ height:4px; background:rgba(10,10,12,0.1); border-radius:2px; overflow:hidden; margin-bottom:7px; }
.avail-occ-fill{ height:100%; background:linear-gradient(90deg, var(--blue-bright), var(--blue-pale)); border-radius:2px; transition:width 1.4s var(--ease); }

/* Stagger reveal para cards de disponibilidad (se dispara con .visible del observer) */
.avail-panel .avail-card{ opacity:0; transform:translateY(18px); }
.avail-panel.visible .avail-card{ animation:availIn 0.55s var(--ease) forwards; }
.avail-panel.visible .avail-card:nth-child(1){ animation-delay:0.05s; }
.avail-panel.visible .avail-card:nth-child(2){ animation-delay:0.12s; }
.avail-panel.visible .avail-card:nth-child(3){ animation-delay:0.19s; }
.avail-panel.visible .avail-card:nth-child(4){ animation-delay:0.26s; }
.avail-panel.visible .avail-card:nth-child(5){ animation-delay:0.33s; }
.avail-panel.visible .avail-card:nth-child(6){ animation-delay:0.40s; }
@keyframes availIn{ to{ opacity:1; transform:translateY(0); } }
.avail-occ-label{ display:flex; justify-content:space-between; font-size:11px; color:var(--ink-faint); }

@media (max-width:900px){ .floorplan-grid{ grid-template-columns:1fr; } .avail-grid{ grid-template-columns:1fr; } .avail-card--wide{ grid-column:1; } }

/* ---------- STATS BAR ---------- */
.stats-bar{ background:var(--black); color:var(--white); padding:50px 0; }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:left; }
.stats-grid--2{ grid-template-columns:repeat(2,1fr); max-width:640px; }
.stat .num{ font-family:'Outfit',sans-serif; font-size:clamp(26px,4vw,38px); font-weight:700; color:var(--blue-pale); }
.stat .label{ font-size:12px; color:rgba(255,255,255,0.55); margin-top:6px; text-transform:uppercase; letter-spacing:0.05em; }
@media (max-width:700px){ .stats-grid{ grid-template-columns:repeat(2,1fr); row-gap:30px; } }

/* ---------- CÓMO FUNCIONA ---------- */
.como-funciona{ padding:110px 0; }
.como-funciona h2{ font-size:clamp(36px,4.5vw,54px); margin-bottom:14px; }
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
.step .step-num{ font-size:12.5px; font-weight:600; letter-spacing:0.06em; color:var(--blue-bright); margin-bottom:14px; }
.step h3{ font-size:22px; margin-bottom:10px; }
.step p{ color:var(--ink-faint); font-size:17px; }
.step{ transition:transform 0.35s var(--ease), box-shadow 0.35s ease; cursor:default; padding:28px 24px; border:1px solid var(--line); border-radius:var(--radius); }
.step:hover{ transform:scale(1.04); box-shadow:0 18px 36px rgba(10,10,12,0.08); border-color:var(--blue-bright); }
@media (max-width:780px){ .steps{ grid-template-columns:1fr; gap:40px; } }

/* ---------- ESPACIOS ---------- */
.espacios{ padding:0 0 0; background:var(--black); }
.espacios .section-inner{ padding-top:100px; padding-bottom:0; }
.espacios .eyebrow{ color:var(--blue-pale); }
.espacios h2{ font-size:clamp(34px,4.5vw,56px); color:var(--white); margin-bottom:14px; }
.spaces-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.1); margin-bottom:0; }
.space-card{
  background:var(--black); padding:40px 32px 36px;
  display:flex; flex-direction:column; gap:14px; min-height:260px;
  cursor:pointer;
  transition:transform 0.38s var(--ease), background 0.38s ease, box-shadow 0.38s ease, border-color 0.38s ease;
}
.space-card:hover{ background:var(--blue-bright); transform:scale(1.04) translateY(-4px); box-shadow:0 24px 48px rgba(10,10,12,0.35); z-index:2; position:relative; }
.space-top{ display:flex; align-items:center; gap:12px; }
.space-num{ font-family:'Outfit',sans-serif; font-size:13px; font-weight:700; color:rgba(255,255,255,0.3); letter-spacing:0.06em; }
.space-card .tag{ font-size:11px; font-weight:700; color:var(--blue-pale); text-transform:uppercase; letter-spacing:0.08em; }
.space-card h3{ font-size:22px; color:var(--white); margin:0; line-height:1.2; }
.space-card p{ color:rgba(255,255,255,0.65); font-size:15px; line-height:1.6; flex:1; }
.space-ref{ font-size:11.5px; color:rgba(255,255,255,0.35); text-transform:uppercase; letter-spacing:0.06em; margin-top:auto; padding-top:18px; border-top:1px solid rgba(255,255,255,0.1); }
@media(max-width:900px){ .spaces-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .spaces-grid{ grid-template-columns:1fr; } }

/* ---------- MEMBRESÍAS ---------- */
.membresias{ padding:120px 0; background:var(--black); }
.membresias h2{ font-size:clamp(30px,3.6vw,42px); margin-bottom:14px; color:var(--white); }
.membresias .section-lead{ color:rgba(255,255,255,0.65); margin:0 auto; }
.membresias .eyebrow{ color:var(--blue-pale); }
.membresias .plans-extra{ border-top-color:rgba(255,255,255,0.15); }
.membresias .plans-extra .btn-ghost{ border-color:rgba(255,255,255,0.4); color:var(--white); }
.membresias .contact-quick{ color:rgba(255,255,255,0.6); }

.plans-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; align-items:stretch; }
.plan-card{
  position:relative; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.12); border-radius:var(--radius);
  padding:38px 32px; display:flex; flex-direction:column;
  transition:transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.4s ease;
  will-change:transform;
}
.plan-card:hover{ box-shadow:0 28px 50px rgba(10,10,12,0.10); border-color:var(--blue-bright); transform:translateY(-6px) scale(1.02); }
.plan-card h3{ color:var(--white); }
.plan-card .amount{ color:var(--white); }
.plan-card .period{ color:rgba(255,255,255,0.5); }
.plan-card .plan-features li{ color:rgba(255,255,255,0.75); }
.plan-card .plan-offer{ border-top-color:rgba(255,255,255,0.12); }
.plan-card .offer-tag{ color:var(--blue-pale); }
.plan-card .plan-offer p{ color:rgba(255,255,255,0.6); }

.plan-card--featured{ background:var(--blue); border-color:var(--blue); box-shadow:0 30px 56px rgba(22,51,94,0.28); }
.plan-card--featured:hover{ box-shadow:0 36px 64px rgba(22,51,94,0.34); }
.plan-card--featured h3, .plan-card--featured .amount{ color:var(--white); }
.plan-card--featured .period{ color:rgba(255,255,255,0.65); }
.plan-card--featured .plan-features li{ color:rgba(255,255,255,0.85); }
.plan-card--featured .plan-features li::before{ color:var(--blue-pale); }
.plan-card--featured .plan-offer{ border-top-color:rgba(255,255,255,0.18); }
.plan-card--featured .offer-tag{ color:var(--blue-pale); }
.plan-card--featured .plan-offer p{ color:rgba(255,255,255,0.85); }
.plan-card--featured .btn-primary{ background:var(--white); color:var(--blue); }
.plan-card--featured .btn-primary::before{ background:var(--blue-pale); }
.plan-card--featured .btn-primary:hover{ color:var(--white); }

.plan-badge{ position:absolute; top:-13px; left:32px; background:var(--black); color:var(--white); font-size:11.5px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; padding:6px 14px; border-radius:20px; }

.plan-header{ margin-bottom:26px; }
.plan-header h3{ font-size:23px; margin-bottom:10px; }
.plan-price .amount{ font-family:'Outfit',sans-serif; font-size:32px; font-weight:700; color:var(--white); }
.plan-price .period{ font-size:14px; color:var(--ink-faint); }

.plan-features{ display:flex; flex-direction:column; gap:13px; margin-bottom:26px; flex:1; }
.plan-features li{ font-size:14.5px; color:var(--ink-soft); padding-left:20px; position:relative; }
.plan-features li::before{ content:"—"; position:absolute; left:0; color:var(--blue-bright); }

.plan-offer{ border-top:1px dashed var(--line); padding-top:18px; margin-bottom:26px; }
.offer-tag{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--blue-bright); margin-bottom:6px; }
.plan-offer p{ font-size:13.5px; color:var(--ink-faint); }

.plan-coupon{ display:flex; align-items:center; gap:10px; margin-top:14px; }
.plan-coupon-label{ font-family:'Outfit',sans-serif; font-size:11px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); white-space:nowrap; }
.plan-coupon-code{
  font-family:'Outfit',sans-serif; font-size:15px; font-weight:800; letter-spacing:0.1em;
  color:var(--white); background:rgba(255,255,255,0.1);
  border:1.5px dashed rgba(255,255,255,0.35); border-radius:var(--radius);
  padding:7px 16px; cursor:pointer;
  transition:background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  position:relative;
}
.plan-coupon-code:hover{ background:rgba(255,255,255,0.18); border-color:rgba(255,255,255,0.6); }
.plan-coupon-code.copied{ background:rgba(34,197,94,0.2); border-color:#22C55E; color:#22C55E; }

.plan-cta{ width:100%; }

.plans-extra{ margin-top:54px; padding-top:44px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:22px; }
.plans-extra .btn-ghost{ border-color:var(--black); color:var(--black); }
.plans-extra .btn-ghost::before{ background:var(--black); }
.contact-quick{ font-size:15px; color:var(--ink-soft); }
.contact-quick a{ color:var(--blue-bright); font-weight:600; transition:color 0.3s ease; }
.contact-quick a:hover{ color:var(--black); }

@media (max-width:980px){ .plans-grid{ grid-template-columns:1fr; } }

/* ---------- GALERÍA — ACCORDION ---------- */
.galeria{ padding:0 0 130px; }
.galeria h2{ font-size:clamp(36px,4.5vw,54px); margin-bottom:14px; }

.gallery-accordion{
  display:flex; height:560px; gap:5px;
  border-radius:var(--radius); overflow:hidden;
}
.gallery-item{
  position:relative; flex:1; overflow:hidden; margin:0;
  cursor:zoom-in;
  transition:flex 0.72s cubic-bezier(.22,.61,.36,1);
}
.gallery-accordion:hover .gallery-item:not(:hover){ flex:0.22; }
.gallery-accordion .gallery-item:hover{ flex:5; }

.gallery-item img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block;
  transition:transform 0.72s cubic-bezier(.22,.61,.36,1), filter 0.55s ease;
}
.gallery-item:hover img{ transform:scale(1.04); }
.gallery-accordion:hover .gallery-item:not(:hover) img{
  filter:brightness(0.45) saturate(0.3);
}

/* Gradient overlay — slides in on expand */
.gallery-item::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, transparent 35%, rgba(10,10,12,0.78) 100%);
  opacity:0; transition:opacity 0.5s ease;
}
.gallery-item:hover::before{ opacity:1; }

/* Bottom-edge accent line */
.gallery-item::after{
  content:""; position:absolute; bottom:0; left:0; right:0; height:3px; z-index:3;
  background:var(--blue-pale); pointer-events:none;
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.55s cubic-bezier(.22,.61,.36,1) 0.08s;
}
.gallery-item:hover::after{ transform:scaleX(1); }

/* Index number — visible when narrow */
.gallery-item .gal-index{
  position:absolute; bottom:18px; left:50%; transform:translateX(-50%);
  z-index:2; font-size:11px; font-weight:700; letter-spacing:0.06em;
  color:rgba(255,255,255,0.35);
  transition:opacity 0.3s ease;
}
.gallery-accordion .gallery-item:hover .gal-index{ opacity:0; }

/* Caption — slides up on expand */
.gallery-item figcaption{
  position:absolute; bottom:0; left:0; right:0; z-index:2;
  padding:48px 20px 20px;
  transform:translateY(10px); opacity:0;
  transition:transform 0.45s cubic-bezier(.22,.61,.36,1) 0.12s,
             opacity 0.4s ease 0.12s;
}
.gallery-item:hover figcaption{ transform:translateY(0); opacity:1; }
.gallery-item figcaption .cap-label{
  display:block; font-size:10px; font-weight:700; text-transform:uppercase;
  letter-spacing:0.1em; color:var(--blue-pale); margin-bottom:5px;
}
.gallery-item figcaption .cap-title{
  display:block; font-size:13px; font-weight:500; color:var(--white);
  line-height:1.45;
}

/* Mobile: 2×3 grid fallback */
@media(max-width:760px){
  .gallery-accordion{
    display:grid; grid-template-columns:repeat(2,1fr);
    height:auto; gap:8px; border-radius:var(--radius);
  }
  .gallery-item{ flex:none; aspect-ratio:4/3; }
  .gallery-item img{ filter:none !important; }
  .gallery-accordion:hover .gallery-item:not(:hover){ flex:none; }
  .gallery-item::before{ opacity:1; }
  .gallery-item figcaption{ opacity:1; transform:translateY(0); }
  .gallery-item .gal-index{ display:none; }
}

/* ---------- COMUNIDAD ---------- */
.comunidad{ padding:110px 0; background:var(--blue-light); }
.comunidad h2{ font-size:clamp(28px,3.6vw,40px); margin-bottom:54px; }
.testimonials{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.testimonial{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:30px; transition:transform 0.35s var(--ease), box-shadow 0.35s var(--ease); }
.testimonial:hover{ transform:translateY(-6px); box-shadow:0 24px 44px rgba(10,10,12,0.08); }
.testimonial .quote{ font-size:15px; color:var(--ink-soft); margin-bottom:20px; line-height:1.65; }
.testimonial .who{ font-size:12.5px; color:var(--ink-faint); }
.testimonial .who b{ color:var(--black); font-weight:600; font-size:13.5px; display:block; margin-bottom:2px; }
@media (max-width:900px){ .testimonials{ grid-template-columns:1fr; } }

/* ---------- UBICACIÓN ---------- */
.ubicacion{ padding:110px 0 0; }
.ubicacion-header{ text-align:center; margin-bottom:56px; }
.ubicacion-header h2{ font-size:clamp(34px,4.5vw,56px); }
.ubicacion-header .section-lead{ margin:0 auto; text-align:center; }
.ubicacion-info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; margin-bottom:56px; }
.info-block{ display:flex; flex-direction:column; gap:0; }
.info-row{ display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); }
.info-row .k{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:var(--ink-faint); width:90px; flex-shrink:0; padding-top:2px; }
.info-row .v{ font-size:16px; color:var(--ink-soft); line-height:1.5; }
.info-row .v a{ color:var(--blue-bright); transition:color 0.3s ease; }
.info-row .v a:hover{ color:var(--black); }
.ubicacion-map{ height:500px; }
.ubicacion-map iframe{ width:100%; height:100%; border:0; display:block; }
@media(max-width:900px){ .ubicacion-info-grid{ grid-template-columns:1fr; } .ubicacion-map{ height:380px; } }

.form{ display:flex; flex-direction:column; gap:18px; }
.form label{ font-size:11.5px; font-weight:600; color:var(--blue-bright); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:7px; display:block; }
.form input, .form textarea{
  width:100%; padding:14px 15px; background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius); font-family:'Inter',sans-serif; font-size:14.5px; color:var(--black);
  transition:border-color 0.3s ease, box-shadow 0.3s ease;
}
.form input:focus, .form textarea:focus{ outline:none; border-color:var(--blue-bright); box-shadow:0 0 0 3px var(--blue-light); }
.form-msg{ font-size:14px; color:var(--blue); font-weight:600; display:none; }
.form-msg.show{ display:block; animation:fadeUp 0.5s var(--ease) both; }

@media (max-width:860px){ .location-grid{ grid-template-columns:1fr; } }

/* ---------- CTA FINAL ---------- */
.cta-final{ background:var(--blue); color:var(--white); padding:100px 0; text-align:center; }
.cta-final h2{ color:var(--white); font-size:clamp(28px,4vw,42px); margin:0 auto 18px; }
.cta-final p{ color:rgba(255,255,255,0.78); margin-bottom:36px; }
.cta-final .btn-primary{ background:var(--white); color:var(--blue); }
.cta-final .btn-primary::before{ background:var(--black); }
.cta-final .btn-primary:hover{ color:var(--white); }

/* ---------- FOOTER ---------- */
.site-footer{ background:var(--black); color:rgba(255,255,255,0.7); }
.footer-inner{ max-width:var(--max); margin:0 auto; padding:74px 32px 50px; }
.footer-brand{ margin-bottom:50px; }
.footer-logo{ height:30px; width:auto; filter:brightness(0) invert(1); margin-bottom:14px; }
.footer-tagline{ font-size:14.5px; color:rgba(255,255,255,0.55); }

.footer-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
.footer-col h4{ color:var(--white); font-size:13px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:16px; }
.footer-col p{ font-size:14.5px; line-height:1.7; margin-bottom:6px; }
.footer-col a{ transition:color 0.3s ease; }
.footer-col a:hover{ color:var(--blue-pale); }
.footer-nav{ display:flex; flex-direction:column; gap:10px; }

.footer-bottom{ border-top:1px solid var(--line-on-dark); padding:22px 32px; text-align:center; font-size:12.5px; color:rgba(255,255,255,0.4); }

@media (max-width:700px){ .footer-grid{ grid-template-columns:1fr; gap:30px; } }

/* ==========================================================
   BILLING TOGGLE — semestral / mensual (estilo Netflix/HBO)
   ========================================================== */
.billing-toggle{
  display:inline-flex;
  align-items:center;
  gap:4px;
  background:var(--line);
  border-radius:40px;
  padding:5px;
  margin-bottom:44px;
}
.toggle-btn{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 26px;
  border-radius:36px;
  font-size:14.5px;
  font-weight:600;
  color:var(--ink-faint);
  background:transparent;
  border:none;
  cursor:pointer;
  transition:color 0.3s ease, background 0.3s ease;
}
.toggle-btn.active{
  background:var(--blue);
  color:var(--white);
  box-shadow:0 4px 16px rgba(22,51,94,0.22);
}
.toggle-savings-pill{
  background:#D4EDDA;
  color:#1A6B33;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.04em;
  padding:3px 9px;
  border-radius:20px;
}
.toggle-btn.active .toggle-savings-pill{
  background:rgba(255,255,255,0.2);
  color:var(--white);
}

/* ---------- iOS TOGGLE ---------- */
.billing-toggle-ios{
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,0.1); border-radius:100px; padding:5px;
  width:fit-content; margin:0 auto 54px; position:relative;
}
.billing-toggle-ios::before{
  content:""; position:absolute; top:5px; bottom:5px; left:5px;
  width:calc(50% - 5px); background:var(--white); border-radius:100px;
  transition:transform 0.4s cubic-bezier(.34,1.56,.64,1);
}
.billing-toggle-ios.at-mensual::before{ transform:translateX(100%); }
.ios-opt{
  min-width:180px; padding:14px 28px; border-radius:100px;
  font-size:16px; font-weight:700; color:rgba(255,255,255,0.5);
  cursor:pointer; border:none; background:transparent;
  position:relative; z-index:2; transition:color 0.3s ease;
}
.ios-opt.active{ color:var(--blue); }
.ios-save{
  display:inline-block; background:var(--blue-bright); color:var(--white);
  font-size:11px; font-weight:700; padding:2px 8px; border-radius:100px;
  margin-left:6px; vertical-align:middle;
}
.ios-opt.active .ios-save{ background:var(--blue-light); color:var(--blue); }

/* Bloques de precio intercambiables */
.price-block{ transition:opacity 0.3s ease; }
.price-block.hidden{ display:none; }
.price-total{
  font-size:13px;
  color:var(--ink-faint);
  margin-top:4px;
}
.price-vs{
  font-size:12.5px;
  color:var(--ink-faint);
  margin-top:2px;
}
.price-vs s{ opacity:0.65; }

/* plan-card--featured overrides for price-total / price-vs */
.plan-card--featured .price-total,
.plan-card--featured .price-vs{ color:rgba(255,255,255,0.65); }

/* offers semestral/mensual */
.plan-offer-semestral.hidden,
.plan-offer-mensual.hidden{ display:none; }

/* Ticker de ocupación: rango bajo (preapertura) */
.ticker-low .bar-fill{ background:var(--blue-pale); }

/* Room-label uniform font size (match screenshot) */
.room .room-label{ font-size:9.5px !important; }

/* ---------- BURGER → X ---------- */
.menu-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; transform:scaleX(0); }
.menu-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- SCROLLSPY: enlace activo en nav ---------- */
.main-nav a.active,
.nav-overlay-btn.nos-active{ color:var(--white); }
.main-nav a.active::after,
.nav-overlay-btn.nos-active::after{ transform:scaleX(1); }
.site-header.scrolled .main-nav a,
.site-header.scrolled .nav-overlay-btn{ color:var(--ink-soft); }
.site-header.scrolled .main-nav a:hover,
.site-header.scrolled .nav-overlay-btn:hover{ color:var(--black); }
.site-header.scrolled .main-nav a.active,
.site-header.scrolled .nav-overlay-btn.nos-active{ color:var(--black); }
.site-header.scrolled .nav-contacto{ color:var(--ink-soft); }
.site-header.scrolled .nav-contacto:hover{ color:var(--black); }

/* ---------- FOOTER TEXT LOGO ---------- */
.footer-logo-text{
  font-family:'Outfit',sans-serif; font-size:28px; font-weight:800;
  color:var(--white); letter-spacing:-0.02em; display:block; margin-bottom:14px;
}

/* ---------- BACK TO TOP ---------- */
.back-top{
  position:fixed; right:28px; bottom:32px; z-index:50;
  width:44px; height:44px; border-radius:50%; border:none; cursor:pointer;
  background:var(--blue); color:var(--white);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transform:translateY(12px);
  transition:opacity 0.3s var(--ease), transform 0.3s var(--ease), background 0.3s ease;
  box-shadow:0 6px 20px rgba(22,51,94,0.28);
}
.back-top.visible{ opacity:1; pointer-events:auto; transform:translateY(0); }
.back-top:hover{ background:var(--black); transform:translateY(-2px) !important; }
.back-top svg{ width:18px; height:18px; }

/* ---------- MOBILE STICKY CTA ---------- */
.mobile-cta-bar{
  display:none;
  position:fixed; bottom:0; left:0; right:0; z-index:49;
  padding:12px 20px 20px;
  background:rgba(255,255,255,0.95); backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
  box-shadow:0 -8px 28px rgba(10,10,12,0.06);
}
.mobile-cta-bar .btn{ width:100%; justify-content:center; }
@media (max-width:980px){
  .mobile-cta-bar{ display:block; }
  .footer-bottom{ padding-bottom:72px; }
}

/* ---------- GALLERY LIGHTBOX ---------- */
.gallery-item{ cursor:zoom-in; }

.lightbox{
  position:fixed; inset:0; z-index:200;
  background:rgba(10,10,12,0.94); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none;
  transition:opacity 0.3s var(--ease);
}
.lightbox.open{ opacity:1; pointer-events:auto; }
.lightbox-img{
  max-width:min(90vw,1080px); max-height:86vh;
  object-fit:contain; border-radius:var(--radius); display:block;
  transform:scale(0.94); transition:transform 0.35s var(--ease);
}
.lightbox.open .lightbox-img{ transform:scale(1); }
.lightbox-close{
  position:absolute; top:20px; right:20px;
  width:44px; height:44px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(255,255,255,0.14); color:var(--white);
  font-size:22px; line-height:1; display:flex; align-items:center; justify-content:center;
  transition:background 0.25s ease;
}
.lightbox-close:hover{ background:rgba(255,255,255,0.26); }

@media (prefers-reduced-motion:reduce){
  .back-top{ transition:none; }
  .lightbox,.lightbox-img{ transition:none; }
  .menu-toggle span{ transition:none; }
  .hd-bg{ transition:opacity 0.3s ease; transform:none; }
  .hd-card{ opacity:1; transform:none; animation:none; }
  .hd-anim{ animation:none; }
  .wa-float::after{ animation:none; }
  .avail-panel .avail-card,
  .nos-overlay .nos-eyebrow,
  .nos-overlay .nos-hero-title,
  .nos-overlay .nos-stat-card{ opacity:1; transform:none; animation:none; }
  .avail-occ-fill{ transition:none; }
  .sc-bg{ transition:opacity 0.3s ease; transform:none; }
  .sc-card{ opacity:1; transform:none; animation:none; }
  .sc-anim{ animation:none; }
}

/* ---------- SEMINARIOS ---------- */
.seminarios{ padding:80px 0; background:var(--blue); }
.seminarios .eyebrow{ color:var(--blue-pale); }
.seminarios h2{ color:var(--white); font-size:clamp(28px,3.6vw,42px); margin-bottom:14px; }
.seminarios .section-lead{ color:rgba(255,255,255,0.68); margin-bottom:56px; }

.seminar-grid{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.1); margin-bottom:52px;
}
.seminar-card{
  background:var(--blue); padding:36px 30px;
  transition:background 0.35s var(--ease);
}
.seminar-card:hover{ background:var(--blue-bright); }
.seminar-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,0.1); color:var(--blue-pale);
  margin-bottom:20px; transition:background 0.35s ease, color 0.35s ease;
}
.seminar-card:hover .seminar-icon{ background:rgba(255,255,255,0.2); color:var(--white); }
.seminar-icon svg{ width:20px; height:20px; }
.seminar-card h3{ font-size:17px; color:var(--white); margin-bottom:10px; }
.seminar-card p{ font-size:14px; color:rgba(255,255,255,0.58); line-height:1.65; }
.seminar-card:hover p{ color:rgba(255,255,255,0.85); }

.seminarios-footer{
  display:flex; align-items:center; justify-content:space-between;
  padding:28px 32px; border:1px solid rgba(255,255,255,0.16);
  border-radius:var(--radius); flex-wrap:wrap; gap:20px;
}
.seminarios-badge .badge-label{
  font-size:11px; font-weight:600; color:var(--blue-pale);
  text-transform:uppercase; letter-spacing:0.08em; display:block; margin-bottom:5px;
}
.seminarios-badge strong{ color:var(--white); font-size:16px; display:block; margin-bottom:4px; }
.seminarios-badge p{ color:rgba(255,255,255,0.62); font-size:14px; }
.seminarios-footer .btn-primary{ background:var(--white); color:var(--blue); }
.seminarios-footer .btn-primary::before{ background:var(--black); }
.seminarios-footer .btn-primary:hover{ color:var(--white); }

@media (max-width:900px){ .seminar-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .seminar-grid{ grid-template-columns:1fr; } }

/* ---------- LOCATION VISUAL (cursor parallax) ---------- */
.ubicacion{ position:relative; overflow:hidden; }
.ubicacion .section-inner{ position:relative; z-index:1; }
.location-visual{
  position:absolute; inset:0; pointer-events:none; z-index:0; overflow:hidden;
}
.lv-frame{
  position:absolute; border-radius:var(--radius); overflow:hidden;
  transition:transform 0.7s cubic-bezier(0.2,0,0,1);
  opacity:0.09; box-shadow:0 20px 44px rgba(10,10,12,0.12);
}
.lv-frame--1{ width:230px; height:155px; right:2%; top:15%; }
.lv-frame--2{ width:165px; height:112px; right:6%; top:50%; }
.lv-frame--3{ width:195px; height:130px; right:0%; top:72%; }
.lv-frame img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:860px){ .location-visual{ display:none; } }

/* ---------- HERO: offset for fixed header ---------- */
.hero{ padding-top:0; }

/* ---------- NUESTROS SERVICIOS ---------- */
.nuestros-servicios{ padding:110px 0 100px; background:var(--white); }
.servicios-title{
  font-size:clamp(42px,6vw,80px); font-weight:800; color:var(--black);
  text-align:center; letter-spacing:-0.02em;
  margin-bottom:56px; line-height:1;
}

.servicios-tabs{
  display:flex; gap:10px; flex-wrap:wrap; justify-content:center;
  margin-bottom:64px;
}
.stab{
  padding:14px 28px; border-radius:100px;
  border:1.5px solid var(--line); background:transparent;
  color:var(--ink-faint); font-size:14px; font-weight:600;
  letter-spacing:0.04em; cursor:pointer; pointer-events:auto;
  touch-action:manipulation;
  transition:border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
}
.stab:hover{ border-color:var(--black); color:var(--black); }
.stab.active{ background:var(--black); border-color:var(--black); color:var(--white); }

/* force tabs to always be visible/clickable even if parent has reveal */
.servicios-tabs .stab{ pointer-events:auto !important; opacity:1 !important; }

.servicios-panels{ position:relative; }
.servicios-panel{
  display:none; grid-template-columns:1fr 1fr; gap:72px; align-items:center;
}
.servicios-panel.active{ display:grid; animation:fadeUp 0.5s var(--ease) both; }

.sp-img{
  border-radius:var(--radius); overflow:hidden; aspect-ratio:4/3;
}
.sp-img img{ width:100%; height:100%; object-fit:cover; display:block; }

.sp-text{ color:var(--black); }
.sp-text .eyebrow{ color:var(--blue-bright); margin-bottom:14px; }
.sp-text h3{ font-size:clamp(26px,3vw,38px); color:var(--black); margin-bottom:20px; line-height:1.1; }
.sp-text > p{ font-size:17px; color:var(--ink-soft); margin-bottom:28px; line-height:1.65; }
.sp-list{ list-style:none; padding:0; margin:0 0 36px; display:flex; flex-direction:column; gap:12px; }
.sp-list li{ font-size:15px; color:var(--ink-soft); padding-left:22px; position:relative; }
.sp-list li::before{ content:"—"; position:absolute; left:0; color:var(--blue-bright); font-weight:700; }
.sp-text .btn-primary{ background:var(--blue); color:var(--white); }
.sp-text .btn-primary::before{ background:var(--black); }
.sp-text .btn-primary:hover{ color:var(--white); }

@media(max-width:860px){
  .servicios-panel.active{ grid-template-columns:1fr; gap:40px; }
  .sp-img{ aspect-ratio:16/9; }
}
@media(max-width:560px){
  .stab{ padding:10px 18px; font-size:13px; }
}

/* ---------- SEMINARIOS — fullbleed redesign ---------- */
.seminarios{
  position:relative; min-height:70vh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; padding:0;
}
.seminarios-bg{ position:absolute; inset:0; }
.seminarios-bg-img{ width:100%; height:100%; object-fit:cover; display:block; }
.seminarios-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,12,0.55) 0%, rgba(10,10,12,0.75) 100%);
}
.seminarios-content{
  position:relative; z-index:1; text-align:center;
  padding:100px 32px; max-width:760px; margin:0 auto;
}
.seminarios-content .eyebrow{ color:var(--blue-pale); margin-bottom:18px; }
.seminarios-content h2{
  font-size:clamp(56px,9vw,110px); font-weight:800; color:var(--white);
  letter-spacing:-0.03em; line-height:1; margin-bottom:28px;
}
.seminarios-lead{
  font-size:18px; color:rgba(255,255,255,0.72); max-width:52ch;
  margin:0 auto 44px; line-height:1.65;
}
.seminarios-cta{ background:var(--white); color:var(--black); }
.seminarios-cta::before{ background:var(--blue-pale); }
.seminarios-cta:hover{ color:var(--white); }

/* ---------- GALERÍA — showcase slider (cards que abren al fondo) ---------- */
.galeria{ padding:0; background:var(--black); }

.showcase{
  position:relative; min-height:92vh; overflow:hidden;
  display:flex; flex-direction:column; justify-content:flex-end;
  color:var(--white); background:var(--black);
}
.sc-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transform:scale(1.08);
  transition:opacity 0.9s var(--ease), transform 1.6s var(--ease);
  will-change:opacity, transform;
}
.sc-bg.on{ opacity:1; transform:scale(1); }
.sc-shade{
  position:absolute; inset:0; pointer-events:none; z-index:3;
  background:linear-gradient(100deg, rgba(10,10,12,0.82) 0%, rgba(10,10,12,0.45) 45%, rgba(10,10,12,0.25) 70%, rgba(10,10,12,0.55) 100%),
             linear-gradient(to top, rgba(10,10,12,0.85) 0%, transparent 35%);
}

.sc-content{
  position:relative; z-index:4;
  max-width:var(--max); width:100%; margin:0 auto;
  padding:120px 32px 30px;
  display:grid; grid-template-columns:minmax(280px,1fr) auto;
  gap:40px; align-items:end;
}
.sc-info{ padding-bottom:12px; }
.sc-line{ display:block; width:44px; height:3px; background:var(--white); margin-bottom:18px; }
.sc-eyebrow{
  font-family:'Outfit',sans-serif; font-size:13px; font-weight:600;
  letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.75);
  margin:0 0 10px;
}
.sc-title{
  font-family:'Outfit',sans-serif; font-size:clamp(44px,5.5vw,84px);
  font-weight:800; letter-spacing:-0.01em; line-height:0.95;
  text-transform:uppercase; color:var(--white); margin:0 0 16px;
}
.sc-desc{
  font-size:15.5px; color:rgba(255,255,255,0.7); line-height:1.6;
  max-width:42ch; margin:0;
}
.sc-anim{ animation:scTextIn 0.6s var(--ease) both; }
@keyframes scTextIn{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:translateY(0); } }

/* Cards de vista previa */
.sc-cards{ display:flex; gap:16px; align-items:end; }
.sc-card{
  position:relative; width:150px; aspect-ratio:5/7; flex-shrink:0;
  border:none; padding:0; border-radius:10px; overflow:hidden; cursor:pointer;
  box-shadow:0 18px 40px rgba(0,0,0,0.45);
  opacity:0; transform:translateY(26px);
  animation:scCardIn 0.55s var(--ease) both;
  transition:transform 0.3s var(--ease), box-shadow 0.3s ease;
}
.sc-card:hover{ transform:translateY(-8px); box-shadow:0 26px 52px rgba(0,0,0,0.55); }
.sc-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 0.5s var(--ease); }
.sc-card:hover img{ transform:scale(1.07); }
.sc-card::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(10,10,12,0.75) 0%, transparent 45%);
  pointer-events:none;
}
.sc-card-label{
  position:absolute; bottom:12px; left:12px; right:12px; z-index:1;
  font-family:'Outfit',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:0.04em; text-transform:uppercase; color:var(--white);
  text-align:left; line-height:1.3;
}
@keyframes scCardIn{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:translateY(0); } }

/* Nav inferior: flechas + progreso + número */
.sc-nav{
  position:relative; z-index:4;
  max-width:var(--max); width:100%; margin:0 auto;
  padding:22px 32px 44px;
  display:flex; align-items:center; gap:18px;
}
.sc-arrow{
  width:50px; height:50px; border-radius:50%; flex-shrink:0;
  border:1.5px solid rgba(255,255,255,0.45);
  background:rgba(10,10,12,0.3); backdrop-filter:blur(6px);
  color:var(--white); font-size:26px; line-height:1;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.sc-arrow:hover{ background:var(--white); color:var(--black); border-color:var(--white); transform:scale(1.06); }
.sc-progress{
  flex:1; height:2px; background:rgba(255,255,255,0.22);
  border-radius:2px; overflow:hidden;
}
.sc-progress-fill{
  height:100%; width:0; background:var(--white);
  transition:width 0.6s var(--ease);
}
.sc-num{
  font-family:'Outfit',sans-serif; font-size:26px; font-weight:800;
  color:var(--white); letter-spacing:0.02em; flex-shrink:0;
}

@media(max-width:980px){
  .sc-content{ grid-template-columns:1fr; gap:30px; padding:90px 24px 20px; }
  .sc-cards{ overflow-x:auto; padding-bottom:8px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .sc-cards::-webkit-scrollbar{ display:none; }
  .sc-card{ width:124px; }
  .sc-nav{ padding:16px 24px 36px; }
}
@media(max-width:640px){
  .showcase{ min-height:88vh; }
  .sc-card{ width:106px; }
  .sc-arrow{ width:44px; height:44px; }
  .sc-num{ font-size:20px; }
}

/* ---------- REFINAMIENTO MOBILE GLOBAL ---------- */
@media (max-width:640px){
  /* Hero discover en móvil */
  .hd-inner{ grid-template-columns:1fr; gap:26px; padding:110px 22px 20px; }
  .hd-cards{ overflow-x:auto; padding-bottom:6px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .hd-cards::-webkit-scrollbar{ display:none; }
  .hd-card{ width:118px; }
  .hero-actions .btn{ width:100%; justify-content:center; }
  .hero-micro{ gap:12px; font-size:11.5px; }

  /* Disponibilidad */
  .disponibilidad{ padding:70px 0 80px; }
  .floorplan-ctas{ max-width:100%; }

  /* Secciones: menos padding vertical */
  .nuestros-servicios{ padding:70px 0 60px; }
  .comunidad{ padding:70px 0; }
  .ubicacion{ padding:70px 0 0; }
  .seminarios{ padding:60px 0; }

  /* Planes: cupones y botones cómodos al tacto */
  .plan-coupon-code{ padding:10px 18px; font-size:16px; }
  .plan-cta{ min-height:48px; }

  /* Tipografía de títulos más contenida */
  .hero h1{ font-size:clamp(34px,10vw,42px); }
}

/* Botones táctiles: elimina delay de 300ms en móvil */
.btn, .plan-coupon-code, .hd-card, .stab, .sc-arrow, .sc-card, .nav-overlay-btn{ touch-action:manipulation; }

/* ---------- PÁGINAS LEGALES (terminos.html / privacidad.html) ---------- */
.legal-body{ background:var(--white); color:var(--black); }

.legal-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,0.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.legal-header-inner{
  max-width:1200px; margin:0 auto; padding:16px 32px;
  display:flex; align-items:center; justify-content:space-between;
}
.legal-brand{
  font-family:'Outfit',sans-serif; font-size:26px; font-weight:800;
  color:var(--black); letter-spacing:-0.02em;
}
.legal-back{
  font-family:'Outfit',sans-serif; font-size:14px; font-weight:600;
  color:var(--blue-bright); transition:color 0.2s ease;
}
.legal-back:hover{ color:var(--black); }

.legal-hero{
  max-width:1200px; margin:0 auto; padding:64px 32px 44px;
  border-bottom:1px solid var(--line);
}
.legal-hero h1{
  font-family:'Outfit',sans-serif; font-size:clamp(32px,4.5vw,52px);
  font-weight:800; letter-spacing:-0.02em; color:var(--black);
  line-height:1.08; margin:0 0 14px;
}
.legal-meta{ font-size:14px; color:var(--ink-faint); margin:0 0 22px; }
.legal-idcard{
  background:var(--blue-light); border-left:3px solid var(--blue-bright);
  border-radius:var(--radius); padding:18px 22px; margin:8px 0 0;
}
.legal-idcard p{ font-size:14px; color:var(--ink-soft); line-height:1.7; margin:0 0 6px; }
.legal-idcard p:last-child{ margin-bottom:0; }

.legal-layout{
  max-width:1200px; margin:0 auto; padding:48px 32px 100px;
  display:grid; grid-template-columns:270px 1fr; gap:60px; align-items:start;
}

/* Índice (TOC) con anclas */
.legal-toc{ position:sticky; top:88px; }
.toc-box{ border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; }
.toc-title{
  font-family:'Outfit',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--black);
  cursor:pointer; list-style:none;
}
.toc-title::-webkit-details-marker{ display:none; }
.toc-nav{ display:flex; flex-direction:column; margin-top:12px; }
.toc-nav a{
  font-size:13.5px; color:var(--ink-soft); padding:7px 0 7px 12px;
  border-left:2px solid var(--line); line-height:1.4;
  transition:color 0.2s ease, border-color 0.2s ease;
}
.toc-nav a:hover{ color:var(--blue-bright); border-left-color:var(--blue-bright); }
.toc-cross{
  display:block; margin-top:16px; font-family:'Outfit',sans-serif;
  font-size:13.5px; font-weight:700; color:var(--blue-bright);
  transition:color 0.2s ease;
}
.toc-cross:hover{ color:var(--black); }

/* Contenido */
.legal-content{ max-width:760px; }
.legal-content h2{
  font-family:'Outfit',sans-serif; font-size:clamp(22px,2.4vw,28px);
  font-weight:800; letter-spacing:-0.01em; color:var(--black);
  margin:56px 0 18px; padding-top:34px; border-top:1px solid var(--line);
  scroll-margin-top:96px;
}
.legal-content h2:first-child{ margin-top:0; padding-top:0; border-top:none; }
.legal-content h3{
  font-family:'Outfit',sans-serif; font-size:18px; font-weight:700;
  color:var(--black); margin:34px 0 12px; scroll-margin-top:96px;
}
.legal-content p{ font-size:15.5px; color:var(--ink-soft); line-height:1.8; margin:0 0 16px; }
.legal-content strong{ color:var(--black); }
.legal-content a{ color:var(--blue-bright); font-weight:600; transition:color 0.2s ease; }
.legal-content a:hover{ color:var(--black); }
.legal-content ul{ margin:0 0 16px; padding-left:20px; }
.legal-content li{ font-size:15.5px; color:var(--ink-soft); line-height:1.8; margin-bottom:8px; }
.legal-note{ font-size:13.5px !important; color:var(--ink-faint) !important; font-style:italic; }

.legal-table-wrap{ overflow-x:auto; margin:0 0 20px; border:1px solid var(--line); border-radius:var(--radius); }
.legal-content table{ width:100%; border-collapse:collapse; font-size:14px; min-width:560px; }
.legal-content th{
  font-family:'Outfit',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:0.06em; text-transform:uppercase; text-align:left;
  color:var(--black); background:var(--blue-light);
  padding:12px 16px; border-bottom:1px solid var(--line);
}
.legal-content td{
  padding:12px 16px; color:var(--ink-soft); line-height:1.6;
  border-bottom:1px solid var(--line); vertical-align:top;
}
.legal-content tr:last-child td{ border-bottom:none; }

.legal-crosslink{
  margin-top:56px; padding:22px 26px;
  background:var(--blue-light); border-radius:var(--radius);
}
.legal-crosslink p{ margin:0; font-family:'Outfit',sans-serif; font-weight:600; font-size:15px; }

.legal-footer{ margin-top:0; }
.footer-bottom a{ color:rgba(255,255,255,0.7); transition:color 0.2s ease; }
.footer-bottom a:hover{ color:var(--white); }

@media (max-width:900px){
  .legal-layout{ grid-template-columns:1fr; gap:36px; padding:36px 22px 80px; }
  .legal-toc{ position:static; }
  .toc-box:not([open]) .toc-nav{ display:none; }
  .legal-hero{ padding:44px 22px 34px; }
  .legal-header-inner{ padding:14px 22px; }
}

/* ---------- MODAL DE CONSENTIMIENTO LEGAL (antes de Stripe) ---------- */
.consent-modal{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none;
  transition:opacity 0.25s var(--ease);
}
.consent-modal.open{ opacity:1; pointer-events:auto; }
.consent-backdrop{
  position:absolute; inset:0;
  background:rgba(10,10,12,0.62); backdrop-filter:blur(6px);
}
.consent-card{
  position:relative; z-index:1;
  width:min(92vw, 540px); max-height:90vh; overflow-y:auto;
  background:var(--white); border-radius:14px;
  padding:36px 38px 30px;
  box-shadow:0 40px 80px rgba(10,10,12,0.35);
  transform:translateY(18px) scale(0.98);
  transition:transform 0.3s var(--ease);
}
.consent-modal.open .consent-card{ transform:translateY(0) scale(1); }

.consent-close{
  position:absolute; top:14px; right:14px;
  width:38px; height:38px; border-radius:50%; border:none; cursor:pointer;
  background:var(--blue-light); color:var(--black);
  font-size:20px; line-height:1; display:flex; align-items:center; justify-content:center;
  transition:background 0.2s ease;
}
.consent-close:hover{ background:var(--line); }

.consent-eyebrow{
  font-family:'Outfit',sans-serif; font-size:11.5px; font-weight:700;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--blue-bright);
  margin:0 0 8px;
}
.consent-title{
  font-family:'Outfit',sans-serif; font-size:24px; font-weight:800;
  color:var(--black); letter-spacing:-0.01em; margin:0 0 6px;
}
.consent-plan{
  display:inline-block; font-family:'Outfit',sans-serif;
  font-size:13px; font-weight:700; color:var(--blue);
  background:var(--blue-light); border-radius:100px;
  padding:6px 16px; margin:0 0 22px;
}

.consent-points{ list-style:none; padding:0; margin:0 0 20px; display:flex; flex-direction:column; gap:14px; }
.consent-points li{ display:flex; gap:12px; align-items:flex-start; }
.consent-points svg{ width:19px; height:19px; flex-shrink:0; color:var(--blue-bright); margin-top:2px; }
.consent-points span{ font-size:14px; color:var(--ink-soft); line-height:1.6; }
.consent-points strong{ color:var(--black); }

.consent-links{
  display:flex; gap:20px; flex-wrap:wrap;
  padding:14px 0 18px; border-top:1px dashed var(--line);
}
.consent-links a{
  font-family:'Outfit',sans-serif; font-size:13.5px; font-weight:700;
  color:var(--blue-bright); transition:color 0.2s ease;
}
.consent-links a::after{ content:" \2197"; font-size:11px; }
.consent-links a:hover{ color:var(--black); }

.consent-check{
  display:flex; gap:12px; align-items:flex-start; cursor:pointer;
  background:var(--blue-light); border-radius:var(--radius);
  padding:15px 17px; margin-bottom:18px;
}
.consent-check input{
  width:19px; height:19px; margin-top:1px; flex-shrink:0;
  accent-color:var(--blue-bright); cursor:pointer;
}
.consent-check span{ font-size:13.5px; color:var(--black); line-height:1.55; }
.consent-check a{ color:var(--blue-bright); font-weight:700; text-decoration:underline; }
.consent-check a:hover{ color:var(--black); }

.consent-continue{ width:100%; justify-content:center; min-height:52px; font-size:15.5px; }
.consent-continue:disabled{
  opacity:0.42; cursor:not-allowed; transform:none !important;
  box-shadow:none !important;
}
.consent-continue:disabled::before{ display:none; }

.consent-foot{
  font-size:11.5px; color:var(--ink-faint); text-align:center;
  line-height:1.6; margin:14px 0 0;
}

@media (max-width:560px){
  .consent-modal{ align-items:flex-end; }
  .consent-card{
    width:100%; max-height:94vh;
    border-radius:18px 18px 0 0;
    padding:30px 22px 26px;
  }
  .consent-links{ gap:12px; flex-direction:column; }
}

@media (prefers-reduced-motion:reduce){
  .consent-modal, .consent-card{ transition:none; }
}
