/* ═══════════════════════════════════════════════════════════════
   DISCOVERY WINE MENDOZA — Master Stylesheet
   Estructura:
   1. Tokens (CSS Custom Properties)
   2. Reset
   3. Base
   4. Loader
   5. Cursor + Progress
   6. Navbar
   7. Mobile Menu
   8. Marquee
   9. WhatsApp Button
   10. Componentes globales (botones, kickers, separadores)
   11. Secciones — INDEX
       a. Hero
       b. Tours / Experiencias
       c. Fleet
       d. About
       e. Differentials
       f. FAQ
       g. CTA Final
   12. Footer
   13. Dark Mode
   14. Responsive
═══════════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────
   1. TOKENS
───────────────────────────────────── */
:root {
  /* Palette */
  --wine:     #6B1D2A;
  --wine-mid: #8B2D3E;
  --wine-dk:  #4A0D1A;
  --gold:     #C4A35A;
  --gold-lt:  #D4B870;
  --cream:    #F7F4EF;
  --paper:    #F0EDE8;
  --ink:      #1A1816;
  --gray-dk:  #5C5850;
  --gray:     #8C8880;
  --gray-lt:  #C4C0BA;
  --gray-xlt: #E8E4DE;
  --white:    #FFFFFF;

  /* Semantic — light mode: TODO BLANCO */
  --bg:         #FFFFFF;
  --bg-alt:     #FFFFFF;
  --bg-card:    #FFFFFF;
  --text:       #1C1916;
  --text-soft:  #4A4540;
  --text-muted: #8C8880;
  --line:       #E8E4DE;
  --nav-bg:     rgba(255,255,255,0.97);
  --nav-text:   #1A1816;
  --mob-bg:     rgba(255,255,255,0.98);

  /* Spacing */
  --nav-h:   70px;
  --max-w:   1280px;
  --pad-x:   clamp(1.25rem, 5vw, 5rem);

  /* Easing */
  --ease:  cubic-bezier(0.16,1,0.3,1);
  --ease2: cubic-bezier(0.76,0,0.24,1);

  /* Viewport height (set by JS for Safari) */
  --vh: 1vh;
}

/* ─────────────────────────────────────
   2. RESET
───────────────────────────────────── */
*, *::before, *::after {
  margin: 0; padding: 0; box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  scroll-padding-top: var(--nav-h);
}
img, video { display: block; max-width: 100%; }
button { background: none; border: none; cursor: pointer; font: inherit; }
ul { list-style: none; }

/* ─────────────────────────────────────
   3. BASE
───────────────────────────────────── */
body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Poppins', sans-serif;
  font-size: 18px;
  font-weight: 300;
  line-height: 1.75;
  overflow-x: hidden;
  transition: background .35s ease, color .35s ease;
  -webkit-tap-highlight-color: transparent;
  -webkit-overflow-scrolling: touch;
  cursor: none;
}

/* Scroll bloqueado durante el loader — JS lo libera */
html.loading,
html.loading body {
  overflow: hidden;
  height: 100%;
}
a { text-decoration: none; color: inherit; }

em { font-style: italic; color: var(--wine); }

/* ─────────────────────────────────────
   4. LOADER
───────────────────────────────────── */
#loader {
  position: fixed;
  inset: 0;
  background: #0a0806;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: opacity .6s var(--ease), visibility .6s;
}
#loader.ldr-out {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.ldr-line {
  position: absolute;
  bottom: 0; left: 0;
  height: 2px;
  width: 0;
  background: linear-gradient(90deg, var(--wine), var(--gold));
  transition: width 1.8s var(--ease2);
}
.ldr-logo {
  overflow: hidden;
  margin-bottom: .5rem;
}
.ldr-logo-inner {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(.6rem, 1.2vw, .8rem);
  font-weight: 400;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: #fff;
  transform: translateY(100%);
  transition: transform 1s var(--ease) .3s;
}
#loader.ldr-ready .ldr-logo-inner { transform: translateY(0); }
#loader.ldr-ready .ldr-line       { width: 100%; }
.ldr-sub {
  font-size: clamp(.5rem, .9vw, .65rem);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  opacity: 0;
  transition: opacity .8s ease 1s;
}
#loader.ldr-ready .ldr-sub { opacity: 1; }

/* ─────────────────────────────────────
   5. CURSOR + PROGRESS BAR
───────────────────────────────────── */

/* Cursor nativo — cambia color según sección */
:root {
  --cur-default: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 2 L4 16 L8 12 L11 18 L13 17 L10 11 L15 11 Z' fill='%236B1D2A' stroke='white' stroke-width='1'/%3E%3C/svg%3E") 4 2, auto;
  --cur-pointer: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 2 L4 16 L8 12 L11 18 L13 17 L10 11 L15 11 Z' fill='%236B1D2A' stroke='white' stroke-width='1'/%3E%3C/svg%3E") 4 2, pointer;
  --cur-white:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 2 L4 16 L8 12 L11 18 L13 17 L10 11 L15 11 Z' fill='white' stroke='%236B1D2A' stroke-width='1'/%3E%3C/svg%3E") 4 2, auto;
  --cur-white-p: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 2 L4 16 L8 12 L11 18 L13 17 L10 11 L15 11 Z' fill='white' stroke='%236B1D2A' stroke-width='1'/%3E%3C/svg%3E") 4 2, pointer;
  --cur-gold:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 2 L4 16 L8 12 L11 18 L13 17 L10 11 L15 11 Z' fill='%23C4A35A' stroke='white' stroke-width='1'/%3E%3C/svg%3E") 4 2, auto;
  --cur-gold-p:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 2 L4 16 L8 12 L11 18 L13 17 L10 11 L15 11 Z' fill='%23C4A35A' stroke='white' stroke-width='1'/%3E%3C/svg%3E") 4 2, pointer;
}

/* Secciones claras (fondo blanco) → cursor wine */
body                    { cursor: var(--cur-default); }
body a, body button,
body [onclick]          { cursor: var(--cur-pointer); }

/* Secciones sobre fondo wine → cursor blanco */
.diff-left              { cursor: var(--cur-white); }
.diff-left a,
.diff-left button       { cursor: var(--cur-white-p); }

/* Secciones oscuras (CTA, footer) → cursor gold */


/* Loader → blanco */
#loader                 { cursor: var(--cur-white); }

/* Custom cursor elements hidden — display:none overrides any JS-set inline styles */
#cur-dot { display: none; }
#cur-ring { display: none; }

#prog {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 0%;
  background: linear-gradient(90deg, var(--wine), var(--gold));
  z-index: 9998;
  transition: width .1s linear;
  pointer-events: none;
}

/* ─────────────────────────────────────
   6. NAVBAR
───────────────────────────────────── */
#mainNav {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--nav-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--pad-x);
  background: var(--nav-bg);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-bottom: 1px solid var(--line);
  z-index: 900;
  transition: background .35s, border-color .35s, box-shadow .35s;
}
#mainNav.sc {
  box-shadow: 0 2px 24px rgba(26,24,22,.06);
}

/* ── Logo — light mode y dark mode ── */
#nav-logo-light { display: block; height: 44px; width: auto; }
#nav-logo-dark  { display: none;  height: 44px; width: auto; }

html.dark-pre #nav-logo-light,
body.dark #nav-logo-light { display: none; }
html.dark-pre #nav-logo-dark,
body.dark #nav-logo-dark  { display: block; }

/* ── Links — color del tema siempre ── */
.nav-links a {
  font-size: .72rem;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--nav-text);
  position: relative;
  padding-bottom: 2px;
  transition: color .3s;
}
.nav-links a::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 0; height: 2px;
  background: var(--wine);
  transition: none;
}
.nav-links a:hover { color: var(--wine); }
html[data-theme="dark"] .nav-links a:hover { color: var(--gold); }
.nav-links a:hover::after { width: 100%; }
html[data-theme="dark"] .nav-links a::after { background: var(--gold); }
.nav-has-dropdown.nav-mega-open > a { color: var(--wine); }
html[data-theme="dark"] .nav-has-dropdown.nav-mega-open > a { color: var(--gold); }
.nav-has-dropdown.nav-mega-open > a::after { width: 100%; }
html[data-theme="dark"] .nav-has-dropdown.nav-mega-open > a::after { background: var(--gold); }

/* ── Flags sin scroll: más visibles sobre imagen ── */
.nav-flag-active svg { box-shadow: 0 0 0 1.5px var(--gold), 0 2px 8px rgba(0,0,0,.3); }

/* ── Theme icons ── */

/* Logo wrap */
.nav-logo-wrap {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 0;
  text-decoration: none;
}

/* Links list */
.nav-links {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: clamp(.6rem, 1.5vw, 2rem);
  list-style: none;
  white-space: nowrap;
}

/* Right controls */
.nav-right {
  display: flex;
  align-items: center;
  gap: .8rem;
  flex-shrink: 0;
}

/* Flags */
.nav-lang {
  display: flex;
  align-items: center;
  gap: .35rem;
  padding-left: .8rem;
  border-left: 1px solid var(--line);
  transition: border-color .45s;
}
#mainNav.sc .nav-lang { border-left-color: var(--line); }

.nav-flag {
  display: flex;
  align-items: center;
  opacity: .4;
  transition: opacity .25s, transform .25s;
}
.nav-flag:hover  { opacity: .8; transform: translateY(-1px); }
.nav-flag-active { opacity: 1; }
.nav-flag svg { width: 24px; height: auto; border-radius: 2px; display: block; box-shadow: 0 1px 4px rgba(0,0,0,.15); }

/* Theme toggle */
.nav-theme {
  display: flex;
  align-items: center;
  gap: .35rem;
  pointer-events: all;
  user-select: none;
}
.nav-theme-icon {
  font-size: .78rem;
  color: var(--text-muted);
  line-height: 1;
  user-select: none;
  pointer-events: none;
  transition: color .45s;
}
.nav-toggle {
  position: relative;
  width: 34px; height: 18px;
  background: var(--gray-xlt);
  border-radius: 9px;
  transition: background .3s;
  flex-shrink: 0;
}
.nav-toggle::after {
  content: '';
  position: absolute;
  top: 2px; left: 2px;
  width: 14px; height: 14px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
  transition: transform .3s var(--ease);
}
body.dark .nav-toggle { background: var(--wine); }
body.dark .nav-toggle::after { transform: translateX(16px); }

/* Hamburger */
.nav-burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 4px;
  background: none;
  border: none;
}
.nav-burger span {
  display: block;
  width: 22px; height: 1.5px;
  background: #fff;
  border-radius: 2px;
  transition: background .3s;
}
#mainNav.sc .nav-burger span { background: var(--nav-text); }

/* ─────────────────────────────────────
   7. MOBILE MENU
───────────────────────────────────── */
#mobileMenu {
  position: fixed;
  inset: 0;
  z-index: 950;
  background: var(--mob-bg);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  transform: translateX(100%);
  transition: transform .45s var(--ease);
}
#mobileMenu.open { transform: translateX(0); }

#mobileMenuInner {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.5rem var(--pad-x);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
#mobileMenuTop {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  height: var(--nav-h);
  flex-shrink: 0;
  margin-bottom: .5rem;
}
#mobileMenuClose {
  font-size: 1.4rem;
  color: var(--text);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  transition: color .25s;
  font-family: inherit;
  line-height: 1;
}
#mobileMenuClose:hover { color: var(--wine); }

#mobileMenuLinks {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: .5rem;
  margin-top: 2rem;
}
#mobileMenuLinks a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: clamp(1.4rem, 5vw, 2rem);
  font-weight: 600;
  padding: .75rem 0;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  transition: color .25s, padding-left .25s;
}
#mobileMenuLinks a:hover { color: var(--wine); padding-left: .5rem; }

#mobileMenuBottom {
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
#mobileThemeRow, #mobileLangRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#mobileThemeLbl, #mobileLangLbl {
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
}
#mobileThemeSwitch {
  width: 44px; height: 22px;
  background: var(--gray-xlt);
  border-radius: 11px;
  position: relative;
  cursor: pointer;
  transition: background .3s;
}
#mobileThemeSwitch.on { background: var(--wine); }
#mobileThemeKnob {
  position: absolute;
  top: 3px; left: 3px;
  width: 16px; height: 16px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0,0,0,.2);
  transition: transform .3s var(--ease);
}
#mobileThemeSwitch.on #mobileThemeKnob { transform: translateX(22px); }

#mobileLangFlags { display: flex; gap: .5rem; align-items: center; }
.mob-flag {
  display: flex;
  align-items: center;
  gap: .3rem;
  padding: .3rem .5rem;
  border-radius: 4px;
  opacity: .5;
  transition: opacity .25s, background .25s;
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .05em;
}
.mob-flag:hover, .mob-flag-active { opacity: 1; background: var(--gray-xlt); }
.mob-flag svg { width: 20px; border-radius: 2px; }

/* ─────────────────────────────────────
   8. MARQUEE / TICKER
───────────────────────────────────── */
.mq-strip {
  background: var(--wine);
  overflow: hidden;
  padding: .55rem 0;
  border-top: 1px solid var(--wine-dk);
  border-bottom: 1px solid var(--wine-dk);
}
.mq-inner {
  display: flex;
  width: max-content;
  animation: ticker 28s linear infinite;
}
.mq-strip:hover .mq-inner { animation-play-state: paused; }
@keyframes ticker {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.mq-item {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: 0 1.5rem;
  white-space: nowrap;
}
.mq-dot {
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--gold);
  opacity: .7;
  flex-shrink: 0;
}
.mq-txt {
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.85);
}

/* ─────────────────────────────────────
   9. WHATSAPP + AI BUTTON
───────────────────────────────────── */
/* AI fab — solo mobile, oculto en desktop */
.ai-fab {
  display: none;
}

.wa-btn {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  width: 52px; height: 52px;
  background: #25D366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 800;
  box-shadow: 0 4px 20px rgba(37,211,102,.35);
  transition: transform .3s var(--ease), box-shadow .3s;
}
.wa-btn:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 28px rgba(37,211,102,.5);
}
.wa-btn svg { width: 26px; height: 26px; fill: #fff; }

/* In index: WA at base position */
html:has(#ai-popup) .wa-btn { bottom: 1.5rem !important; }

/* ─────────────────────────────────────
   10. COMPONENTES GLOBALES
───────────────────────────────────── */

/* Botones */


/* Kicker label */
.sec-kicker {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .8rem;
}
.sec-kicker::before {
  content: '';
  display: block;
  width: 24px; height: 1.5px;
  background: var(--gold);
}

/* Section heading */
.sec-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800;
  line-height: 1.1;
  color: var(--text);
}
.sec-h em { font-style: italic; color: var(--wine); font-weight: 800; }

/* Scroll reveal */
.sr {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.sr.vis { opacity: 1; transform: translateY(0); }
.sr.d1  { transition-delay: .1s; }
.sr.d2  { transition-delay: .18s; }
.sr.d3  { transition-delay: .26s; }
.sr.d4  { transition-delay: .34s; }
.sr.d5  { transition-delay: .42s; }

/* ─────────────────────────────────────
   11a. HERO
───────────────────────────────────── */
.hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100svh;
  position: relative;
  overflow: hidden;
  padding-top: var(--nav-h);
}

.hero-left {
  background: var(--bg);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(2.5rem, 5vw, 4rem) clamp(2rem, 5vw, 5rem);
  position: relative;
  z-index: 1;
}

.h-tag {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-size: .62rem;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.5rem;
  animation: fadeUp .8s var(--ease) .3s both;
}
.h-tag::before {
  content: '';
  display: block;
  width: 28px; height: 1.5px;
  background: var(--gold);
}

.hero-h1 {
  font-size: clamp(2.8rem, 6vw, 5.5rem);
  font-weight: 800;
  line-height: 1.15;
  color: var(--ink);
  letter-spacing: -.02em;
  animation: fadeUp .9s var(--ease) .45s both;
}
.hero-h1 em {
  color: var(--wine);
  font-style: italic;
}

.h-rule {
  width: 40px; height: 2px;
  background: var(--gold);
  margin: 1.5rem 0;
  animation: fadeUp .7s var(--ease) .6s both;
}

.h-sub {
  font-size: clamp(1rem, 1.4vw, 1.1rem);
  color: var(--text-soft);
  max-width: 480px;
  line-height: 1.7;
  animation: fadeUp .8s var(--ease) .7s both;
  font-weight: 400;
}

.h-btns {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
  flex-wrap: wrap;
  animation: fadeUp .8s var(--ease) .85s both;
}

/* TripAdvisor badges */
.h-counts {
  display: flex;
  gap: .75rem;
  align-items: center;
  margin-top: 2rem;
}
.h-counts-mobile { display: none; }

/* Right — image */
.hero-right-img {
  position: relative;
  overflow: hidden;
  min-height: 500px;
  will-change: transform;
}
.hero-right-img img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  animation: heroImgReveal 1.2s var(--ease) .2s both;
}
@keyframes heroImgReveal {
  from { transform: scale(1.08); opacity: .6; }
  to   { transform: scale(1); opacity: 1; }
}

/* Scroll indicator — ELIMINADO */
.h-scroll { display: none; }

/* ── All Inclusive chip — diseño exacto ── */
/* ── All Inclusive button — desktop: circular con expand hover ── */
.h-notif {
  position: fixed;
  bottom: calc(1.5rem + 52px + 0.75rem);
  right: 1.5rem;
  width: 52px; height: 52px;
  border-radius: 50%;
  background: var(--wine);
  color: #fff;
  border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  z-index: 799;
  overflow: hidden;
  animation: fadeUp .8s var(--ease) 1.6s both;
  transition: width .4s cubic-bezier(.4,0,.2,1),
              border-radius .4s cubic-bezier(.4,0,.2,1),
              background .25s;
  white-space: nowrap;
  box-shadow: 0 4px 20px rgba(107,29,42,.4);
}
.h-notif:hover {
  width: 230px;
  border-radius: 26px;
  background: #8B1A2C;
}
.h-notif-ring { display: none; }
.h-notif-ai {
  font-size: .72rem; font-weight: 700;
  letter-spacing: .08em; color: #fff;
  font-style: italic;
  flex-shrink: 0;
  transition: opacity .15s;
  position: relative; z-index: 1;
}
.h-notif:hover .h-notif-ai { opacity: 0; width: 0; overflow: hidden; }
.h-notif-expand {
  font-size: .48rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  color: #fff; opacity: 0;
  position: absolute;
  transition: opacity .2s .15s;
  pointer-events: none;
}
.h-notif:hover .h-notif-expand { opacity: 1; }

/* tablet override — same as desktop */
@media (min-width: 769px) and (max-width: 1024px) {
  .h-notif { display: flex; }
}

/* Legacy selectors cleanup */
.h-notif-label, .h-notif-dot { display: none; }
.h-notif-label span:first-child {
  font-size: .55rem
  text-transform: none;
}

/* ── Back to top button — wine color ── */

/* Keyframes */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ─────────────────────────────────────
   11b. TOURS / EXPERIENCIAS
───────────────────────────────────── */
#tours { padding-top: clamp(2rem, 4vw, 3.5rem); }

.exp-intro {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad-x) clamp(1.5rem, 3vw, 2.5rem);
}
.exp-intro-kicker {
  font-size: .62rem;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: .8rem;
}
.exp-intro-kicker::before {
  content: '';
  display: block;
  width: 24px; height: 1.5px;
  background: var(--gold);
}
.exp-intro-headline {
  font-size: clamp(2.2rem, 5.5vw, 4.2rem);
  font-weight: 800;
  line-height: 1.05;
  margin-bottom: 1.2rem;
  letter-spacing: -.02em;
}
.exp-intro-headline em { font-style: italic; color: var(--wine); }
.exp-intro-sub {
  font-size: 1.05rem;
  color: var(--text-soft);
  max-width: 540px;
  line-height: 1.75;
}
.exp-intro-rule {
  width: 40px; height: 2px;
  background: var(--gold);
  margin-top: 1.5rem;
}

/* Exp block — split layout */
.exp-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 80vh;
  position: relative;
}
.exp-block.exp-reverse { direction: rtl; }
.exp-block.exp-reverse > * { direction: ltr; }

.exp-img {
  position: relative;
  overflow: hidden;
  will-change: transform;
}
.exp-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .8s var(--ease);
  will-change: transform;
  transform-origin: center center;
}
.exp-block:hover .exp-img img { transform: scale(1.04); }

.exp-num {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .15em;
  color: #fff;
  background: rgba(26,24,22,.45);
  backdrop-filter: blur(8px);
  padding: .3rem .6rem;
  border-radius: 2px;
}

.exp-body {
  background: var(--bg-alt);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 4vw, 4rem) clamp(2rem, 5vw, 4rem);
}

.exp-cat {
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--gold);
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .8rem;
}
.exp-cat::before {
  content: '';
  display: block;
  width: 20px; height: 1px;
  background: var(--gold);
}

.exp-h {
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: .8rem;
}
.exp-h em { font-style: italic; color: var(--wine); }

.exp-hr {
  width: 32px; height: 2px;
  background: var(--gold);
  margin-bottom: 1rem;
}

.exp-p {
  font-size: 1rem;
  color: var(--text-soft);
  line-height: 1.75;
  max-width: 420px;
}

/* Meta stats */
.exp-meta {
  display: flex;
  gap: 1.5rem;
  margin: 1.5rem 0;
  padding: 1.2rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.exp-meta-item {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.exp-meta-val {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--wine);
}
.exp-meta-lbl {
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
}

/* Tour links */
.exp-tours {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.exp-tour {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  transition: padding-left .3s var(--ease);
  cursor: pointer;
}
.exp-tour:hover { padding-left: .5rem; }
.exp-tour:hover .exp-tour-arr { color: var(--wine); transform: translateX(4px); }
.exp-tour-info { display: flex; flex-direction: column; gap: .2rem; }
.exp-tour-tag {
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.exp-tour-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
}
.exp-tour-desc {
  font-size: .95rem;
  color: var(--text-soft);
  line-height: 1.6;
}
.exp-tour-arr {
  color: var(--gray);
  font-size: 1rem;
  flex-shrink: 0;
  margin-left: 1rem;
  transition: color .25s, transform .25s;
}

/* Separator */
.exp-sep {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0 var(--pad-x);
  max-width: var(--max-w);
  margin: 0 auto;
}
.exp-sep-line {
  flex: 1;
  height: 1px;
  background: var(--line);
}
.exp-sep-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--gold);
  opacity: .6;
}

/* ─────────────────────────────────────
   11c. FLEET
───────────────────────────────────── */
.fleet-sec {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: auto;
  background: var(--bg);
}

.fleet-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 4vw, 4rem) var(--pad-x);
  padding-right: clamp(1.5rem, 3vw, 3rem);
}

.fleet-hdr { margin-bottom: 2.5rem; }
.fleet-hdr .sec-kicker { margin-bottom: .6rem; }
.fleet-hdr .sec-h { margin-bottom: .6rem; }
.fleet-hdr .sec-h em { font-style: italic; color: var(--wine); }

.fleet-strip { display: flex; flex-direction: column; }

.fc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1rem;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
  transition: background .25s, padding-left .25s, border-left .25s;
  border-left: 3px solid transparent;
}
.fc:hover, .fc-active {
  background: var(--bg-alt);
  border-left-color: var(--wine);
  padding-left: 1.3rem;
}
.fc-left { display: flex; flex-direction: column; gap: .15rem; }
.fc-name { font-size: 1.1rem; font-weight: 700; color: var(--text); }
.fc-tag {
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.fc-right { display: flex; align-items: center; gap: 1.5rem; }
.fc-specs { display: flex; gap: 1rem; }
.fc-spec { display: flex; flex-direction: column; align-items: flex-end; gap: .1rem; }
.fc-val  { font-size: 1.05rem; font-weight: 700; color: var(--wine); }
.fc-lbl  { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.fc-arrow { font-size: .9rem; color: var(--gray); transition: color .25s, transform .25s; }
.fc:hover .fc-arrow, .fc-active .fc-arrow { color: var(--wine); transform: translateX(3px); }

/* Fleet visual */
.fleet-visual {
  background: var(--bg-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem;
  overflow: hidden;
}
.fleet-visual-img {
  width: 100%;
  max-width: 500px;
}
.fleet-visual-img img {
  width: 100%;
  object-fit: contain;
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.fleet-visual-img img.switching {
  opacity: 0;
  transform: scale(.96) translateY(8px);
}

/* ─────────────────────────────────────
   11d. ABOUT — rediseño
───────────────────────────────────── */
.about-sec {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: clamp(1.5rem, 3vw, 2.5rem) var(--pad-x) clamp(3rem, 6vw, 5rem);
  align-items: center;
}

.about-left {
  padding-right: clamp(2rem, 5vw, 5rem);
}

.a-kicker {
  font-size: .62rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .8rem;
}
.a-kicker::before {
  content: '';
  display: block;
  width: 20px; height: 1.5px;
  background: var(--gold);
}
.a-title {
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.02em;
  margin-bottom: 1.5rem;
}
.a-title em { font-style: italic; color: var(--wine); }
.a-p {
  font-size: .95rem;
  color: var(--text-soft);
  line-height: 1.8;
  margin-bottom: 1rem;
}
.a-badge {
  display: inline-block;
  background: var(--wine);
  color: #fff;
  font-size: .58rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .35rem .9rem;
  margin-top: .5rem;
}

/* Columna derecha — pilares */
.about-right {
  padding-left: clamp(2rem, 5vw, 5rem);
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.about-pillar {}

.about-pillar-num {
  font-size: .52rem;
  font-weight: 700;
  letter-spacing: .25em;
  color: var(--wine);
  margin-bottom: .6rem;
}
.about-pillar-title {
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: .5rem;
}
.about-pillar-desc {
  font-size: .9rem;
  color: var(--text-soft);
  line-height: 1.75;
}

/* ─────────────────────────────────────
   11e. DIFFERENTIALS
───────────────────────────────────── */
.diff-sec {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--bg-alt);
}

.diff-left {
  background: var(--wine);
  padding: clamp(2rem, 5vw, 4rem) var(--pad-x);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.diff-left .sec-kicker { color: var(--gold); }
.diff-left .sec-kicker::before { background: var(--gold); }
.diff-left .sec-h { color: #fff; margin-bottom: 1.2rem; }
.diff-left .sec-h em { color: var(--gold); }
.diff-left-p {
  font-size: 1rem;
  color: rgba(255,255,255,.75);
  line-height: 1.75;
  max-width: 380px;
  margin-bottom: 2rem;
}
.diff-cta {
  display: inline-block;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--gold);
  border-bottom: 1px solid var(--gold);
  padding-bottom: 2px;
  transition: letter-spacing .3s;
}
.diff-cta:hover { letter-spacing: .2em; }

.diff-right {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: clamp(2rem, 4vw, 3.5rem);
  gap: 2rem;
  align-content: center;
}

.di {
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.di-icon { font-size: 1.5rem; margin-bottom: .3rem; }
.di-title {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--wine);
}
.di-p {
  font-size: .92rem;
  color: var(--text-soft);
  line-height: 1.65;
}
.diff-mobile-list { display: none; }

/* ─────────────────────────────────────
   11f. FAQ
───────────────────────────────────── */
.faq-sec {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 4rem;
  padding: clamp(2.5rem, 5vw, 4rem) var(--pad-x) clamp(1.5rem, 3vw, 2.5rem);
  max-width: var(--max-w);
  margin: 0 auto;
  align-items: start;
}

.faq-sec .sec-kicker { margin-bottom: .6rem; }
.faq-sec .sec-h { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }

.faq-item {
  border-bottom: 1px solid var(--line);
}
.faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 0;
  text-align: left;
  cursor: pointer;
  gap: 1rem;
}
.faq-q-txt {
  font-size: .9rem;
  font-weight: 500;
  color: var(--text);
  transition: color .25s;
}
.faq-item.open .faq-q-txt { color: var(--wine); }
.faq-plus {
  width: 24px; height: 24px;
  border: 1.5px solid var(--line);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: var(--text-muted);
  flex-shrink: 0;
  transition: transform .35s var(--ease), border-color .25s, color .25s;
}
.faq-item.open .faq-plus {
  transform: rotate(45deg);
  border-color: var(--wine);
  color: var(--wine);
}
.faq-ans {
  max-height: 0;
  overflow: hidden;
  transition: max-height .45s var(--ease);
}
.faq-item.open .faq-ans { max-height: 200px; }
.faq-ai {
  font-size: .95rem;
  color: var(--text-soft);
  line-height: 1.75;
  padding-bottom: 1.1rem;
}

/* ─────────────────────────────────────
   11g. CTA FINAL
───────────────────────────────────── */


/* ─────────────────────────────────────
   12. FOOTER
───────────────────────────────────── */
footer {
  background: #0a0806;
  color: rgba(255,255,255,.55);
  padding: clamp(3rem, 7vw, 6rem) var(--pad-x) 2rem;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr 1fr;
  gap: 3rem;
  max-width: var(--max-w);
  margin: 0 auto;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255,255,255,.07);
}

.footer-brand-name {
  font-size: .6rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  margin-bottom: .5rem;
}
.footer-tagline {
  font-size: clamp(1rem, 1.8vw, 1.3rem);
  font-weight: 600;
  font-style: italic;
  color: var(--gold);
  line-height: 1.35;
  margin-bottom: 1.2rem;
}
.footer-desc {
  font-size: .9rem;
  line-height: 1.75;
  max-width: 300px;
  margin-bottom: 1.5rem;
}
.footer-contact { display: flex; flex-direction: column; gap: .4rem; }
.footer-contact a {
  font-size: .9rem;
  transition: color .25s;
}
.footer-contact a:hover { color: var(--gold); }

.footer-col-title {
  font-size: .58rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  margin-bottom: 1.2rem;
}
.footer-col-links { display: flex; flex-direction: column; gap: .55rem; }
.footer-col-links a {
  font-size: .9rem;
  transition: color .25s;
}
.footer-col-links a:hover { color: var(--gold); }
.footer-link-active { color: var(--gold) !important; }
.mob-link-active { color: var(--gold) !important; }

.footer-bottom {
  max-width: var(--max-w);
  margin: 0 auto;
  padding-top: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: .65rem;
  letter-spacing: .05em;
  flex-wrap: wrap;
  gap: .5rem;
}

/* Social links */
.footer-social {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-top: 1.5rem;
}
.footer-social a {
  width: 36px; height: 36px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.45);
  font-size: .8rem;
  transition: border-color .25s, color .25s, transform .25s;
}
.footer-social a:hover {
  border-color: var(--gold);
  color: var(--gold);
  transform: translateY(-2px);
}
.footer-social svg {
  width: 16px; height: 16px;
  fill: currentColor;
}

/* ── Reviews / Testimonials ── */
.reviews-sec {
  padding: clamp(1.5rem, 3vw, 2.5rem) var(--pad-x) clamp(2rem, 4vw, 3.5rem);
  max-width: var(--max-w);
  margin: 0 auto;
}
.reviews-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 2.5rem;
  gap: 1.5rem;
}
.reviews-hdr .sec-kicker {
  justify-content: center;
  margin-bottom: .6rem;
}
.reviews-hdr .sec-h { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
.reviews-hdr .sec-h em { font-style: italic; color: var(--wine); }

.ta-badge {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .75rem 1.2rem;
  border: 1px solid var(--line);
  flex-shrink: 0;
}
.ta-badge img { height: 32px; width: auto; }
.ta-badge-txt { display: flex; flex-direction: column; gap: 1px; }
.ta-badge-label {
  font-size: .58rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.ta-badge-val {
  font-size: .82rem;
  font-weight: 700;
  color: var(--text);
}

.reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.review-card {
  border: 1px solid var(--line);
  padding: 1.8rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: border-color .3s, transform .3s var(--ease);
  position: relative;
}
.review-card:hover {
  border-color: var(--wine);
  transform: translateY(-4px);
}
.review-stars {
  display: flex;
  gap: 3px;
}
.review-stars span {
  color: #00AA6C;
  font-size: .9rem;
}
.review-text {
  font-size: .92rem;
  line-height: 1.7;
  color: var(--text-soft);
  flex: 1;
}
.review-text::before {
  content: '"';
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--wine);
  opacity: .15;
  line-height: .5;
  display: block;
  margin-bottom: .5rem;
}
.review-author {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
.review-name {
  font-size: .8rem;
  font-weight: 600;
  color: var(--text);
}
.review-origin {
  font-size: .72rem;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: .3rem;
}
.review-date {
  font-size: .68rem;
  color: var(--text-muted);
}
.review-ta-logo {
  position: absolute;
  top: 1.4rem;
  right: 1.4rem;
  opacity: .3;
}
.review-ta-logo svg { width: 20px; height: 20px; fill: #00AA6C; }

/* Responsive reviews */
@media (max-width: 1024px) { .reviews-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px)  { .reviews-grid { grid-template-columns: 1fr; } .reviews-top { flex-direction: column; align-items: flex-start; } }

/* ─────────────────────────────────────
   13. DARK MODE — via data-theme en html
───────────────────────────────────── */
html[data-theme="dark"] {
  --bg:         #000000;
  --bg-alt:     #000000;
  --bg-card:    #000000;
  --text:       #F5F5F5;
  --text-soft:  #C0BCBA;
  --text-muted: #888480;
  --line:       #1A1A1A;
  --nav-bg:     rgba(0,0,0,0.97);
  --nav-text:   #F5F5F5;
  --mob-bg:     rgba(0,0,0,0.98);
  --ink:        #F5F5F5;
  --hero-ovl-mob: linear-gradient(to top,
    rgba(4,2,6,.92) 0%,
    rgba(4,2,6,.75) 35%,
    rgba(4,2,6,.40) 65%,
    rgba(4,2,6,.0)  100%);
}
html[data-theme="dark"] body {
  background: #000000;
  color: #F5F5F5;
}
html[data-theme="dark"] .hero-left,
html[data-theme="dark"] .exp-body,
html[data-theme="dark"] .fleet-sec,
html[data-theme="dark"] .fleet-visual { background: #000000; }
html[data-theme="dark"] #nav-logo-light { display: none; }
html[data-theme="dark"] #nav-logo-dark  { display: block; }

/* En mobile el hero-left es transparente sobre la imagen — anular el negro del dark mode */
@media (max-width: 768px) {
  html[data-theme="dark"] .hero-left { background: transparent; }
}

/* btt usa wine siempre */

/* ─────────────────────────────────────
   14. ALL INCLUSIVE POPUP
───────────────────────────────────── */
/* ═══════════════════════════════
   ALL INCLUSIVE POPUP
═══════════════════════════════ */
#ai-popup {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s;
  height: 100dvh;
}
#ai-popup.open { opacity: 1; visibility: visible; }

.ai-popup-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(4,3,2,.55);
}

/* Desktop box — 2 columnas */
.ai-popup-box {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 860px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 40px 120px rgba(0,0,0,.3);
  transform: translateY(24px);
  transition: transform .5s var(--ease);
  overflow: hidden;
  border: 1px solid var(--line);
}
.ai-popup-layout {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
#ai-popup.open .ai-popup-box { transform: translateY(0); }


/* Left — visual panel */

/* Right — content panel */
.ai-popup-content {
  background: var(--bg-card);
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
  position: relative;
}
body.dark .ai-popup-content { background: #0E0C0A; }


.ai-popup-close {
  position: absolute;
  top: 1.4rem; right: 1.4rem;
  width: 30px; height: 30px;
  border: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .75rem;
  color: var(--text-muted);
  background: transparent;
  transition: border-color .2s, color .2s;
  cursor: pointer;
  z-index: 10;
}
.ai-popup-close:hover { border-color: var(--wine); color: var(--wine); }

.ai-popup-head {
  padding: 2rem 2rem 1rem;
  flex-shrink: 0;
}
.ai-popup-kicker {
  font-size: .4rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-bottom: .8rem;
  display: flex; align-items: center; gap: .5rem;
}
.ai-popup-kicker::before {
  content: ''; width: 18px; height: 1px;
  background: var(--gold); flex-shrink: 0;
}
.ai-popup-title {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 800; color: var(--ink); line-height: 1.05; margin-bottom: .6rem;
}
html[data-theme="dark"] .ai-popup-title { color: var(--text); }
.ai-popup-title em { font-style: italic; font-weight: 300; color: var(--wine); }
html[data-theme="dark"] .ai-popup-title em { color: var(--gold-lt); }
.ai-popup-sub {
  font-size: .84rem; color: var(--text-soft); line-height: 1.7;
}

.ai-popup-divider {
  height: 1px; background: var(--line);
  margin: 0 2rem; flex-shrink: 0;
}

.ai-popup-items {
  padding: .4rem 2rem .8rem;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
  -webkit-overflow-scrolling: touch;
}
.ai-popup-item {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 1.1rem; align-items: start;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
}
.ai-popup-item:last-child { border-bottom: none; }
.ai-popup-item-icon {
  width: 30px; height: 30px;
  border: 1px solid rgba(196,163,90,.25);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold);
  font-size: .55rem; font-weight: 700; letter-spacing: .04em;
  flex-shrink: 0; margin-top: .15rem;
  font-family: 'Poppins', sans-serif;
  font-feature-settings: 'tnum';
}
.ai-popup-item-name {
  font-size: .68rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--wine); font-weight: 700; margin-bottom: .3rem;
}
html[data-theme="dark"] .ai-popup-item-name { color: var(--gold); }
.ai-popup-item-desc {
  font-size: .82rem; color: var(--text-soft); line-height: 1.65;
}

.ai-popup-foot {
  padding: 1.2rem 2rem 1.6rem;
  display: flex; flex-direction: column; gap: .7rem;
  border-top: 1px solid var(--line);
  flex-shrink: 0;
}
.ai-popup-cta {
  display: flex; align-items: center; justify-content: center; gap: .8rem;
  background: var(--wine); color: #fff;
  padding: 1rem 2rem;
  font-size: .52rem; letter-spacing: .22em; text-transform: uppercase;
  font-weight: 600; transition: background .25s; width: 100%;
}
.ai-popup-cta::after { content: '→'; font-size: .9rem; letter-spacing: 0; }
.ai-popup-cta:hover { background: var(--wine-dk); }
.ai-popup-note {
  font-size: .75rem; color: var(--text-muted); text-align: center;
}

/* Mobile popup — drawer desde abajo */
@media (max-width: 768px) {
  #ai-popup { padding: 0; align-items: flex-end; }
  .ai-popup-box {
    border-radius: 16px 16px 0 0;
    border: none;
    max-width: 100%;
    max-height: 88dvh;
    transform: translateY(100%);
    overscroll-behavior: contain;
    touch-action: pan-y;
  }
  #ai-popup.open .ai-popup-box { transform: translateY(0); }
  /* Single column on mobile */
  .ai-popup-layout { grid-template-columns: 1fr; }
  
  .ai-popup-content { max-height: 88dvh; overflow-y: auto; }
  .ai-popup-content::before { display: none; }
  /* Handle bar */
  .ai-popup-content::after {
    content: '';
    position: absolute;
    top: 10px; left: 50%;
    transform: translateX(-50%);
    width: 44px; height: 5px;
    background: rgba(0,0,0,.18);
    border-radius: 3px;
    pointer-events: none;
  }
  html[data-theme="dark"] .ai-popup-content::after { background: rgba(255,255,255,.22); }
  .ai-popup-close { top: 1.2rem; right: 1.2rem; }
  .ai-popup-head { padding: 2.4rem 1.4rem 1rem; }
  .ai-popup-divider { margin: 0 1.4rem; }
  .ai-popup-items { padding: .5rem 1.4rem; }
  .ai-popup-foot { padding: 1.2rem 1.4rem max(1.4rem, calc(env(safe-area-inset-bottom) + 1rem)); }
  .ai-popup-title { font-size: clamp(1.4rem, 6vw, 1.8rem); }
  .ai-popup-item { padding: 1rem 0; }
  .ai-popup-item-name { font-size: .68rem; }
  .ai-popup-head { padding: 1.8rem 1.5rem 1rem; }
  .ai-popup-divider { margin: 0 1.5rem; }
  .ai-popup-items { padding: 1rem 1.5rem; }
  .ai-popup-foot { padding: 1rem 1.5rem 2rem; }
}

/* ─────────────────────────────────────
   15. PARALLAX CINEMATOGRÁFICO
───────────────────────────────────── */

/* Parallax depth classes for JS */
.parallax-slow  { will-change: transform; }
.parallax-med   { will-change: transform; }
.parallax-fast  { will-change: transform; }

/* ═══════════════════════════════════════════════════════════════
   16. RESPONSIVE
   1280px → large desktop
   1024px → laptop / tablet landscape
   768px  → mobile (todo lo mobile va aquí, una sola vez)
   480px  → phones pequeños
   375px  → iPhone SE/14/15
═══════════════════════════════════════════════════════════════ */

/* ─── Hero mobile overlay ─── */
:root {
  --hero-ovl-mob: linear-gradient(to top,
    rgba(10,6,4,.96) 0%,
    rgba(10,6,4,.82) 35%,
    rgba(10,6,4,.48) 65%,
    rgba(10,6,4,.0)  100%);
}

/* Footer mobile — oculto en desktop */
.foot-mobile { display: none; }

/* ════════════════════
   1280px
════════════════════ */
@media (max-width: 1280px) {
  :root { --pad-x: clamp(1.5rem, 4vw, 4rem); }
  .footer-grid { gap: 2rem; }
}

/* ════════════════════
   1024px
════════════════════ */
@media (max-width: 1024px) {
  /* Hero */
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-left { padding: clamp(2.5rem, 6vw, 4rem) var(--pad-x); min-height: auto; justify-content: center; }
  .hero-right-img { position: relative; height: 52vw; min-height: 300px; max-height: 480px; }
  .hero-right-img img { position: absolute; }
  .h-counts { display: none; }
  .h-counts-mobile { display: flex; gap: .75rem; margin-top: 2rem; align-items: center; }

  /* Tours */
  .exp-block { grid-template-columns: 1fr; min-height: auto; }
  .exp-block.exp-reverse { direction: ltr; }
  .exp-img { height: 50vw; min-height: 280px; max-height: 460px; }
  .exp-body { padding: clamp(2rem, 5vw, 4rem); }

  /* Fleet */
  .fleet-sec { grid-template-columns: 1fr; }
  .fleet-inner { padding: clamp(2rem, 5vw, 4rem) var(--pad-x); }
  .fleet-visual { min-height: 260px; padding: 2rem; }

  /* About */
  .about-sec { grid-template-columns: 1fr 1fr; gap: 3rem; padding: 3rem var(--pad-x); }
  .about-left { padding-right: 0; }
  .about-right { padding-left: 0; }

  /* Differentials */
  .diff-sec { grid-template-columns: 1fr; }
  .diff-right { display: none; }
  .diff-mobile-list { display: flex; flex-direction: column; padding: clamp(2rem, 5vw, 4rem) var(--pad-x); }

  /* FAQ / Footer / Reviews */
  .faq-sec { grid-template-columns: 1fr; gap: 2rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  .reviews-grid { grid-template-columns: 1fr 1fr; }

  /* Cursor off */
  #cur-dot, #cur-ring { display: none; }
  body,
  body *,
  body *::before,
  body *::after { cursor: auto; }
}

/* ════════════════════════════════════════════════════════
   MOBILE — solo phones, no tablets
   Condición dual:
   - max-width: 768px  → pantalla pequeña
   - pointer: coarse   → dispositivo touch (excluye laptops touch)
   iPad Mini (768px touch) → usa desktop
   iPad / iPad Pro     → usa desktop
   iPhone              → usa mobile
════════════════════════════════════════════════════════ */
@media (max-width: 768px) and (pointer: coarse) {

  /* ── Variables ── */
  :root { --nav-h: 64px; }

  /* ── Navbar ── */
  #mainNav {
    height: 64px;
    padding: 0 1.6rem;
    background: var(--nav-bg);
    border-bottom-color: var(--line);
    box-shadow: 0 1px 0 var(--line);
  }
  #mainNav.sc {
    background: var(--nav-bg);
    border-bottom-color: var(--line);
    box-shadow: 0 1px 0 var(--line);
  }
  .nav-links { display: none; }
  .nav-right .nav-lang,
  .nav-right .nav-theme { display: none; }
  .nav-burger { display: flex; }
  .nav-burger span { background: var(--nav-text); }
  #mainNav.sc .nav-burger span { background: var(--nav-text); }
  .nav-logo-wrap img { height: 38px; }

  /* ── Hero — imagen full screen, texto y badges al fondo ── */
  .hero {
    display: block;
    position: relative;
    height: 100svh;
    min-height: 100svh;
    padding-top: 0;
    overflow: hidden;
  }

  .hero-right-img {
    position: absolute;
    inset: 0;
    height: 100%;
    max-height: none;
    min-height: 0;
    z-index: 0;
  }
  .hero-right-img img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
  }
  .hero-right-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--hero-ovl-mob);
    z-index: 1;
    pointer-events: none;
  }

  .hero-left {
    position: relative;
    z-index: 2;
    background: transparent;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100svh;
    padding: max(4.5rem, calc(env(safe-area-inset-top) + 3.5rem)) 1.6rem max(2rem, calc(env(safe-area-inset-bottom) + 1.5rem));
  }
  .hero-left::before { display: none; }

  /* Textos blancos sobre imagen */
  .hero-h1 {
    color: #F0EDE8;
    font-size: clamp(2.4rem, 8.5vw, 3.4rem);
    line-height: 1.15;
    margin-bottom: 1.2rem;
  }
  .hero-h1 em { color: #D4B870; }
  .h-tag {
    color: var(--gold);
    font-size: .46rem;
    letter-spacing: .35em;
    margin-bottom: 1.2rem;
  }
  .h-tag::before { background: var(--gold); }
  .h-sub {
    color: rgba(240,237,232,.75);
    font-size: .82rem;
    margin-bottom: 1.4rem;
    max-width: 100%;
    line-height: 1.65;
  }
  .h-rule {
    background: var(--gold);
    opacity: .7;
    margin-bottom: 1rem;
  }

  /* Botones apilados full width */
  .h-btns {
    flex-direction: column;
    gap: .7rem;
    width: 100%;
    margin-top: 0;
  }


  /* Badges TripAdvisor — en flujo normal, centrados debajo de los botones */
  .h-counts { display: none; }
  .h-counts-mobile {
    display: flex;
    gap: .75rem;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 1.2rem;
    position: static;
  }
  .h-counts-mobile img {
    height: 68px;
    width: auto;
  }

  /* Scroll indicator y notif */
  .h-scroll { display: none; }
  .h-notif { display: none !important; }

  /* WhatsApp y AI fab */
  .ai-fab {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: calc(max(1.2rem, calc(env(safe-area-inset-bottom) + .8rem)) + 60px);
    right: 1.2rem;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--wine);
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    font-style: italic;
    letter-spacing: .06em;
    z-index: 800;
    box-shadow: 0 4px 20px rgba(107,29,42,.45);
    border: none;
    cursor: pointer;
    transition: transform .3s var(--ease), box-shadow .3s;
  }
  .ai-fab:active {
    transform: scale(0.95);
    box-shadow: 0 2px 12px rgba(107,29,42,.35);
  }
  .wa-btn {
    bottom: max(1.2rem, calc(env(safe-area-inset-bottom) + .8rem)) !important;
    right: 1.2rem;
    width: 52px;
    height: 52px;
  }
  

  /* ── Marquee ── */
  .mq-txt { font-size: .55rem; letter-spacing: .14em; }
  .mq-item { padding: 0 1.2rem; }

  /* ── Tours ── */
  #tours { padding-top: 0; }
  .exp-intro { padding: 2.5rem 1.6rem 1.5rem; }
  .exp-intro-kicker { font-size: .44rem; }
  .exp-intro-headline { font-size: clamp(1.8rem, 7vw, 2.4rem); }
  .exp-intro-sub { font-size: .85rem; }

  .exp-block {
    display: flex;
    flex-direction: column;
    min-height: auto;
  }
  .exp-block.exp-reverse { direction: ltr; flex-direction: column; }
  .exp-img {
    order: 0;
    height: auto;
    aspect-ratio: 16/9;
    max-height: 55vw;
    min-height: 0;
  }
  .exp-body {
    order: 1;
    padding: 1.6rem 1.6rem 1.8rem;
    justify-content: flex-start;
  }
  .exp-body::before,
  .exp-body::after { display: none; }
  .exp-h { font-size: clamp(1.6rem, 6vw, 2.2rem); }
  .exp-p { font-size: .84rem; }
  .exp-tour-desc { display: none; }
  .exp-tour-name { font-size: 1rem; }
  .exp-cat { font-size: .42rem; letter-spacing: .38em; }

  /* ── Fleet ── */
  .fleet-sec { display: flex; flex-direction: column; min-height: auto; }
  .fleet-visual { order: 1; min-height: 180px; }
  .fleet-inner { order: 0; padding: 2rem 1.6rem 0; }
  .fleet-inner::before { display: none; }
  .fleet-hdr { margin-bottom: 1.5rem; }
  .fleet-strip {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .fc {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding: 1rem .8rem;
    border: none;
    border-bottom: 1px solid var(--line);
    border-right: 1px solid var(--line);
  }
  .fc:nth-child(even) { border-right: none; }
  .fc:nth-last-child(-n+2) { border-bottom: none; }
  .fc::before { top: 0; bottom: auto; left: 0; right: 0; width: auto; height: 2px; transform: scaleX(0); transform-origin: left; }
  .fc:hover::before,
  .fc.fc-active::before { transform: scaleX(1); }
  .fc-left { flex-direction: column; align-items: flex-start; gap: .1rem; }
  .fc-name { font-size: .9rem; }
  .fc-tag { font-size: .35rem; }
  .fc-right { gap: 1rem; margin-top: .4rem; }
  .fc-specs { gap: .8rem; }
  .fc-val { font-size: .9rem; }
  .fc-lbl { font-size: .32rem; }
  .fc-arrow { display: none; }

  /* ── About ── */
  .about-sec { grid-template-columns: 1fr; padding: 2.5rem 1.6rem; gap: 2.5rem; }
  .about-left { padding-right: 0; }
  .about-right { padding-left: 0; gap: 1.5rem; }
  .a-title { font-size: clamp(1.6rem, 6vw, 2.2rem); }
  .a-p { font-size: .88rem; }
  .about-pillar-desc { font-size: .84rem; }

  /* ── Differentials ── */
  .diff-sec { display: flex; flex-direction: column; }
  .diff-left { padding: 2.5rem 1.6rem 2rem; }
  .diff-left .sec-h { font-size: clamp(1.8rem, 7vw, 2.5rem); }
  .diff-left-p { font-size: .84rem; max-width: 100%; }
  .diff-right { display: none; }
  .diff-mobile-list {
    display: flex;
    flex-direction: column;
    background: var(--bg);
    padding: 0 1.6rem 1.5rem;
  }
  .diff-mobile-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--line);
  }
  .diff-mobile-item:last-child { border-bottom: none; }
  .diff-mobile-icon { font-size: 1.2rem; flex-shrink: 0; }
  .diff-mobile-text { flex: 1; }
  .diff-mobile-title {
    font-size: .68rem;
    font-weight: 700;
    color: var(--wine);
    letter-spacing: .1em;
    text-transform: uppercase;
    margin-bottom: .2rem;
  }
  html[data-theme="dark"] .diff-mobile-title { color: var(--gold); }
  .diff-mobile-desc { font-size: .8rem; color: var(--text-soft); line-height: 1.5; }
  .diff-mobile-arrow { display: none; }

  /* ── Reviews — scroll horizontal ── */
  .reviews-sec { padding: 2rem 0 1.5rem; }
  .reviews-top { padding: 0 1.6rem; }
  .reviews-grid {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    gap: 1rem;
    padding: 1rem 1.6rem;
    scrollbar-width: none;
  }
  .reviews-grid::-webkit-scrollbar { display: none; }
  .review-card {
    scroll-snap-align: start;
    flex: 0 0 84vw;
    max-width: 320px;
    min-width: 0;
    touch-action: pan-y;
  }
  .review-text { font-size: .82rem; }

  /* ── FAQ ── */
  .faq-sec { grid-template-columns: 1fr; gap: 1.5rem; padding: 2.5rem 1.6rem; }
  .faq-q-txt { font-size: .84rem; }
  .faq-ai { font-size: .82rem; }

  /* ── CTA ── */


  /* ── Footer mobile ── */
  footer { padding: 0; }
  .footer-grid { display: none; }
  .footer-bottom { display: none; }
  .foot-mobile {
    display: flex;
    flex-direction: column;
    padding: 2.8rem 1.6rem max(1.6rem, env(safe-area-inset-bottom));
    background: #0a0806;
  }
  .foot-mobile-logo {
    font-size: .56rem;
    letter-spacing: .32em;
    text-transform: uppercase;
    color: rgba(255,255,255,.9);
    font-weight: 500;
    margin-bottom: .5rem;
  }
  .foot-mobile-tag {
    font-size: 1.3rem;
    font-weight: 700;
    font-style: italic;
    color: var(--gold);
    line-height: 1.2;
    margin-bottom: 1.6rem;
  }
  .foot-mobile-contact {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin-bottom: 1.8rem;
  }
  .foot-mobile-contact a { font-size: .8rem; color: rgba(255,255,255,.55); }
  .foot-mobile-links {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.2rem;
    margin-bottom: 2rem;
    padding-top: 1.4rem;
    border-top: 1px solid rgba(255,255,255,.08);
  }
  .foot-mobile-links a { font-size: .68rem; color: rgba(255,255,255,.38); letter-spacing: .08em; }
  .foot-mobile-bottom {
    padding-top: 1.2rem;
    border-top: 1px solid rgba(255,255,255,.06);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
  }
  .foot-mobile-copy { font-size: .62rem; color: rgba(255,255,255,.22); }
  .foot-mobile-legal { display: flex; gap: 1rem; }
  .foot-mobile-legal a { font-size: .62rem; color: rgba(255,255,255,.22); }


  /* ── Mobile menu ── */
  #mobileMenuLinks a { font-size: clamp(1.3rem, 5vw, 1.8rem); padding: 18px 24px; }
}

/* ════════════════════
   Tablets — iPad / iPad Pro
   768px–1024px touch → layout desktop
════════════════════ */
@media (min-width: 768px) and (max-width: 1024px) and (pointer: coarse) {
  /* Hero — split desktop */
  .hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 100svh;
    padding-top: var(--nav-h);
  }
  .hero-left {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 3rem 2.5rem;
    background: var(--bg);
    height: auto;
  }
  .hero-right-img {
    position: relative;
    height: 100%;
    min-height: 100svh;
    max-height: none;
  }
  .hero-right-img img {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
  }
  .hero-right-img::after { display: none; }
  .hero-h1 { color: var(--ink); font-size: clamp(2rem, 4vw, 3rem); }
  .hero-h1 em { color: var(--wine); }
  .h-tag { color: var(--text-muted); }
  .h-tag::before { background: var(--wine); }
  .h-sub { color: var(--text-soft); }
  .h-rule { background: var(--wine); opacity: 1; }


  .h-btns { flex-direction: row; width: auto; }
  .h-counts { display: flex; }
  .h-counts-mobile { display: none; }

  /* Navbar — desktop style */
  #mainNav { padding: 0 2.5rem; }
  .nav-links { display: flex; }
  .nav-right .nav-lang,
  .nav-right .nav-theme { display: flex; }
  .nav-burger { display: none; }
  .nav-burger span { background: var(--nav-text); }

  /* Tours */
  .exp-block { grid-template-columns: 1fr 1fr; min-height: 480px; }
  .exp-block.exp-reverse { direction: rtl; }
  .exp-block.exp-reverse > * { direction: ltr; }
  .exp-img { height: 100%; max-height: none; aspect-ratio: unset; }
  .exp-body { padding: 2.5rem; display: flex; flex-direction: column; justify-content: center; }
  .exp-h { font-size: clamp(1.6rem, 3vw, 2.2rem); }
  .exp-tour-desc { display: block; }

  /* Fleet */
  .fleet-sec { grid-template-columns: 1fr 1fr; min-height: auto; }
  .fleet-inner { order: 0; padding: 3rem 2.5rem; }
  .fleet-visual { order: 1; min-height: 320px; }
  .fleet-strip { display: flex; flex-direction: column; }
  .fc { flex-direction: row; align-items: center; padding: 1rem 0; border: none; border-bottom: 1px solid var(--line); }
  .fc-left { flex-direction: column; align-items: flex-start; }
  .fc-arrow { display: flex; }

  /* About */
  .about-sec { grid-template-columns: 1fr 1fr; gap: 3rem; padding: 3rem 2.5rem; }
  .about-left { padding-right: 0; }
  .about-right { padding-left: 0; }

  /* Differentials */
  .diff-sec { grid-template-columns: 1fr 1fr; }
  .diff-right { display: grid; }
  .diff-mobile-list { display: none; }

  /* Reviews */
  .reviews-grid { display: grid; grid-template-columns: 1fr 1fr; overflow-x: visible; }
  .review-card { flex: none; max-width: none; }

  /* FAQ */
  .faq-sec { grid-template-columns: 1fr 1.6fr; }

  /* Footer */
  .footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; }
  .footer-grid { display: none; }
  .footer-bottom { display: none; }
  .foot-mobile { display: none; }

  /* Restore footer desktop on tablet */
  footer { padding: 4rem 2.5rem 2rem; }
  .footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 2rem;
    margin-bottom: 2rem;
  }
  .footer-bottom { display: flex; }

  /* Floating buttons — igual que desktop */
  .wa-btn { bottom: 1.5rem; right: 1.5rem; width: 52px; height: 52px; }
  
  .h-notif { display: flex; }
  .ai-fab { display: none; }

  /* Cursor off on touch */
  #cur-dot, #cur-ring { display: none; }
  body, body *,
  body *::before,
  body *::after { cursor: auto; }
}

/* ════════════════════
   480px — phones pequeños
════════════════════ */
@media (max-width: 480px) and (pointer: coarse) {
  .hero-h1 { font-size: clamp(2rem, 9vw, 2.8rem); }
  .h-tag { display: none; }
  .exp-intro-headline { font-size: clamp(1.7rem, 7vw, 2.2rem); }
  .review-card { flex: 0 0 88vw; }

}

/* ════════════════════
   375px — iPhone SE/14/15
════════════════════ */
@media (max-width: 375px) and (pointer: coarse) {
  :root { --nav-h: 56px; }
  #mainNav { height: 56px; }
  .hero-h1 { font-size: clamp(1.8rem, 9vw, 2.4rem); }
  .h-sub { font-size: .78rem; }

  .h-counts-mobile img { height: 60px; }
}

/* ════════════════════
   Landscape mobile
════════════════════ */
@media (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  .hero { height: 100dvh; }
  .hero-h1 { font-size: clamp(1.4rem, 4vw, 2rem); }
  .h-sub { display: none; }
  .h-rule { display: none; }
  .h-btns { flex-direction: row; width: auto; gap: .8rem; }

}

/* ════════════════════
   4K
════════════════════ */
@media (min-width: 1600px) {
  :root { --pad-x: 6rem; --max-w: 1440px; }
  .hero-h1 { font-size: 5.5rem; }

}

/* ════════════════════
   iOS optimizations
════════════════════ */
a, button, [onclick] {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

/* ════════════════════
   Print
════════════════════ */
@media print {
  #loader, #prog, .wa-btn, 
  #mainNav { position: relative; background: #fff; }
  body { font-size: 12pt; cursor: auto; }
}

/* ════════════════════
   Reduced motion
════════════════════ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms;
    transition-duration: .01ms;
  }
  .sr { opacity: 1; transform: none; }
  .mq-inner { animation: none; }
}

/* ═══════════════════════════════════════════════════════════════
   17. PÁGINAS DE TOUR — BODEGAS
   Compartido por: lujandecuyo, maipu, valledeuco
═══════════════════════════════════════════════════════════════ */

/* ── HERO LUJÁN ── */
.hero-luj {
  height: 100vh; height: 100dvh;
  min-height: 700px;
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  background: #080604;
}
.hero-luj-img { position: absolute; inset: 0; z-index: 0; }
.hero-luj-img img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 30%;
  animation: heroZoom 18s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes heroZoom { from { transform: scale(1.0); } to { transform: scale(1.06); } }
.hero-luj-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(105deg, rgba(4,3,2,.88) 0%, rgba(4,3,2,.6) 45%, rgba(4,3,2,.3) 100%);
}
.hero-luj-grain {
  position: absolute; inset: 0; z-index: 2; opacity: .03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  pointer-events: none;
}
.hero-luj-content {
  position: relative; z-index: 4;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 9rem 4.5rem 5rem 6rem;
  grid-column: 1;
}
.hero-luj-eyebrow {
  font-size: .52rem; letter-spacing: .44em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-bottom: 1.8rem;
  display: flex; align-items: center; gap: .7rem;
  animation: fadeUp .7s var(--ease) .4s both;
}
.hero-luj-eyebrow::before { content: ''; width: 24px; height: 1px; background: var(--gold); opacity: .6; }
.hero-luj-h1 {
  font-size: clamp(2.6rem, 4.2vw, 5.5rem);
  font-weight: 800; line-height: .95; letter-spacing: -.04em;
  color: #F0EDE8; margin-bottom: .8rem; overflow: hidden;
}
.hero-luj-h1 .line { display: block; overflow: hidden; padding-bottom: .18em; }
.hero-luj-h1 .line span { display: block; animation: hLineUp .9s var(--ease) both; }
.hero-luj-h1 .line:nth-child(1) span { animation-delay: .5s; }
.hero-luj-h1 .line:nth-child(2) span { animation-delay: .65s; }
.hero-luj-h1 em { font-style: italic; color: var(--wine); font-weight: 300; }
@keyframes hLineUp { from { transform: translateY(105%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.hero-luj-rule { width: 44px; height: 1px; background: var(--gold); opacity: .5; margin-bottom: 1.6rem; animation: fadeUp .7s var(--ease) .8s both; }
.hero-luj-sub { font-size: .92rem; color: rgba(240,237,232,.55); max-width: 420px; line-height: 1.85; margin-bottom: 1.4rem; animation: fadeUp .7s var(--ease) .9s both; }
.hero-luj-btns { display: flex; gap: 1rem; flex-wrap: wrap; animation: fadeUp .7s var(--ease) 1.05s both; }

.hero-luj-stats {
  position: absolute; bottom: 3rem; right: 4.5rem; z-index: 4;
  display: flex; flex-direction: column; gap: 1.6rem; align-items: flex-end;
  animation: fadeUp .7s var(--ease) 1.2s both;
}
.hero-luj-stat { display: flex; flex-direction: column; align-items: flex-end; gap: .2rem; }
.hero-luj-stat-n { font-size: clamp(1.6rem, 2vw, 2.2rem); font-weight: 800; color: var(--gold); line-height: 1; letter-spacing: -.03em; }
.hero-luj-stat-l { font-size: .37rem; letter-spacing: .28em; text-transform: uppercase; color: rgba(240,237,232,.75); }

/* ── INTRO BAND ── */
.intro-band { background: var(--bg); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.intro-band-inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.intro-band-left { padding: 4rem 4.5rem; border-right: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; }
.intro-band-h { font-size: clamp(2.8rem, 4.5vw, 5.5rem); font-weight: 800; line-height: 1.05; letter-spacing: -.04em; color: var(--ink); margin-top: .6rem; }
html[data-theme="dark"] .intro-band-h { color: var(--text); }
.intro-band-h em { font-style: italic; color: var(--wine); font-weight: 300; }
.intro-band-right { padding: 4rem 4.5rem; display: flex; flex-direction: column; justify-content: center; }
.intro-band-right p { font-size: .88rem; color: var(--text-soft); line-height: 1.85; }
.pull-quote { border-left: 3px solid var(--gold); padding: 1.2rem 1.8rem; margin-top: 1.6rem; background: rgba(196,163,90,.04); }
.pull-quote p { font-size: 1rem; font-style: italic; color: var(--text-soft); line-height: 1.7; font-weight: 300; margin: 0 0 .5rem; }
.pull-quote cite { font-size: .42rem; letter-spacing: .28em; text-transform: uppercase; color: var(--gold); font-weight: 500; font-style: normal; }

/* ── ITINERARIO ── */
.itinerario-sec {
  background: var(--ink);
  width: 100vw; position: relative; left: 50%; right: 50%;
  margin-left: -50vw; margin-right: -50vw; overflow: hidden;
}
html[data-theme="dark"] .itinerario-sec { background: #08060A; }
.itinerario-sec::after {
  content: ''; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity: .03; pointer-events: none; z-index: 0;
}
.itinerario-inner { width: 100%; max-width: none; margin: 0; position: relative; z-index: 1; }
.itinerario-hdr {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  padding: 5rem 6vw 4rem; align-items: end;
  border-bottom: 1px solid rgba(196,163,90,.14); position: relative;
}
.itinerario-hdr::before {
  content: ''; position: absolute; top: 0; left: 6vw; right: 6vw;
  height: 1px; background: linear-gradient(to right, var(--gold), transparent); opacity: .25;
}
.itinerario-hdr .kicker { color: var(--gold); opacity: .7; }
.itinerario-h { font-size: clamp(2.4rem, 4vw, 5rem); font-weight: 800; line-height: 1.0; letter-spacing: -.05em; color: #F0EDE8; }
html[data-theme="dark"] .itinerario-h { color: #F0EDE8; }
.itinerario-h em { font-style: italic; color: var(--gold); font-weight: 300; }
.itinerario-desc { font-size: .9rem; color: rgba(240,237,232,.5); line-height: 1.9; padding-left: 4rem; border-left: 1px solid rgba(196,163,90,.18); }

/* Pasos */
.pasos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; width: 100%; }
.paso { display: flex; flex-direction: column; border-right: 1px solid rgba(196,163,90,.1); position: relative; background: transparent; transition: background .5s var(--ease); overflow: hidden; }
.paso:last-child { border-right: none; }
@media(hover:hover) { .paso:hover { background: rgba(196,163,90,.04); } .paso:hover .paso-img img { transform: scale(1.06); filter: brightness(.95); } }
.paso::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(to right, var(--wine), var(--gold), transparent); transform: scaleX(0); transform-origin: left; transition: transform 1.1s var(--ease); z-index: 3; }
.paso.vis::before { transform: scaleX(1); }
.paso-img { position: relative; overflow: hidden; aspect-ratio: 3/4; flex-shrink: 0; }
.paso-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.4s var(--ease), filter 1.4s var(--ease); filter: brightness(.72) saturate(.9); transform-origin: center; }
.paso-img-num { display: block; position: absolute; top: 1.2rem; left: 1.4rem; z-index: 2; font-size: .38rem; letter-spacing: .3em; font-weight: 700; color: var(--gold); opacity: .9; text-transform: uppercase; background: rgba(10,8,6,.5); border: 1px solid rgba(196,163,90,.25); backdrop-filter: blur(6px); padding: .35rem .7rem; display: flex; align-items: center; gap: .4rem; }
.paso-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 30%, rgba(10,8,6,.55) 100%); pointer-events: none; z-index: 1; }
.paso-body { padding: 2rem 2.2rem; display: flex; flex-direction: column; flex: 1; }
.paso-num-small { font-size: .38rem; letter-spacing: .38em; text-transform: uppercase; color: var(--gold); font-weight: 600; margin-bottom: .8rem; opacity: 0; transform: translateY(10px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.paso.vis .paso-num-small { opacity: .7; transform: none; }
.paso-rule { width: 32px; height: 1px; background: linear-gradient(to right, var(--gold), transparent); margin-bottom: 1rem; transform: scaleX(0); transform-origin: left; transition: transform .8s var(--ease) .1s; }
.paso.vis .paso-rule { transform: scaleX(1); }
.paso-h { font-size: clamp(1.05rem, 1.3vw, 1.5rem); font-weight: 700; line-height: 1.15; letter-spacing: -.03em; color: #F0EDE8; margin-bottom: .7rem; opacity: 0; transform: translateY(12px); transition: opacity .7s var(--ease) .14s, transform .7s var(--ease) .14s; }
.paso.vis .paso-h { opacity: 1; transform: none; }
.paso-p { font-size: .8rem; color: rgba(240,237,232,.45); line-height: 1.75; flex: 1; margin-bottom: 1.2rem; opacity: 0; transform: translateY(8px); transition: opacity .65s var(--ease) .22s, transform .65s var(--ease) .22s; }
.paso.vis .paso-p { opacity: 1; transform: none; }
.paso-tag { display: inline-flex; align-items: center; gap: .5rem; font-size: .36rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; color: var(--gold); opacity: 0; transform: translateY(6px); transition: opacity .55s var(--ease) .28s, transform .55s var(--ease) .28s; border: 1px solid rgba(196,163,90,.2); padding: .4rem .8rem; align-self: flex-start; }
.paso.vis .paso-tag { opacity: 1; transform: none; }

/* Timeline */
.itin-timeline { padding: 1.4rem 6vw; border-bottom: 1px solid rgba(196,163,90,.1); background: rgba(196,163,90,.03); display: none; }
@media(min-width: 961px) { .itin-timeline { display: block; } }
.itin-tl-track { display: flex; align-items: center; gap: 0; margin-bottom: .6rem; }
.itin-tl-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); opacity: .7; flex-shrink: 0; }
.itin-tl-line { flex: 1; height: 1px; background: linear-gradient(to right, rgba(196,163,90,.35), rgba(196,163,90,.1)); }
.itin-tl-labels { display: flex; justify-content: space-between; }
.itin-tl-labels span { font-size: .36rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(196,163,90,.4); font-weight: 500; }

/* ── MODALIDADES ── */
.modalidades-sec { background: var(--ink); padding: 0; position: relative; overflow: hidden; }
html[data-theme="dark"] .modalidades-sec { background: #0C0A07; }
.modalidades-sec::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(to right, transparent, var(--gold), transparent); opacity: .25; }
.modalidades-hdr { padding: 5.5rem 4.5rem 4rem; display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: end; border-bottom: 1px solid rgba(255,255,255,.07); }
.modalidades-h { font-size: clamp(2.8rem, 4.5vw, 5.5rem); font-weight: 800; line-height: .97; letter-spacing: -.04em; color: #F0EDE8; margin-top: 1rem; }
.modalidades-h em { font-style: italic; color: var(--gold); font-weight: 300; }
.modalidades-sub { font-size: .88rem; color: rgba(240,237,232,.45); line-height: 1.8; max-width: 380px; margin-bottom: 2rem; }
.modalidades-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255,255,255,.07); }
.modal-card { padding: 4rem 4.5rem; position: relative; border-right: 1px solid rgba(255,255,255,.07); display: flex; flex-direction: column; transition: background .35s; }
.modal-card:last-child { border-right: none; }
.modal-card::before { content: ''; position: absolute; top: 0; left: 4.5rem; right: 4.5rem; height: 2px; background: var(--line); opacity: .3; }
.modal-card.gold-card::before { background: linear-gradient(to right, var(--wine), var(--gold)); opacity: 1; }
.modal-badge { font-size: .42rem; letter-spacing: .32em; text-transform: uppercase; font-weight: 600; color: rgba(240,237,232,.35); margin-bottom: 2rem; display: flex; align-items: center; gap: .6rem; }
.modal-card.gold-card .modal-badge { color: var(--gold); }
.modal-badge::before { content: ''; width: 14px; height: 1px; background: currentColor; opacity: .6; }
.modal-h { font-size: clamp(2rem, 2.8vw, 3.2rem); font-weight: 800; line-height: 1; letter-spacing: -.04em; color: #F0EDE8; margin-bottom: 1.4rem; }
.modal-card.gold-card .modal-h { color: var(--gold); }
.modal-rule { width: 36px; height: 1px; background: rgba(255,255,255,.15); margin-bottom: 1.4rem; }
.modal-card.gold-card .modal-rule { background: var(--gold); opacity: .5; }
.modal-p { font-size: .88rem; color: rgba(240,237,232,.5); line-height: 1.85; flex: 1; margin-bottom: 2.4rem; }
.modal-card.gold-card .modal-p { color: rgba(240,237,232,.6); }
.modal-p strong { color: rgba(240,237,232,.85); font-weight: 500; }
.modal-disc { color: var(--gold); font-weight: 600; font-style: italic; }
.modal-includes { display: flex; flex-direction: column; gap: 0; margin-bottom: 2.5rem; }
.modal-include { display: flex; align-items: flex-start; gap: .8rem; padding: .75rem 0; border-bottom: 1px solid rgba(255,255,255,.04); }
.modal-include:first-child { border-top: 1px solid rgba(255,255,255,.04); }
.modal-include-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.2); flex-shrink: 0; margin-top: .4rem; }
.modal-card.gold-card .modal-include-dot { background: var(--gold); }
.modal-include-not .modal-include-dot { background: rgba(255,255,255,.08); }
.modal-include-name { font-weight: 500; color: rgba(240,237,232,.85); display: block; margin-bottom: .1rem; }
.modal-include-not .modal-include-name { color: rgba(240,237,232,.3); }
.modal-card.gold-card .modal-include-name { color: #F0EDE8; }
.modal-include-text { font-size: .78rem; color: rgba(240,237,232,.55); line-height: 1.5; }
.modal-card.gold-card .modal-include-text { color: rgba(240,237,232,.7); }
.modal-include-not .modal-include-text { color: rgba(240,237,232,.25); text-decoration: line-through; }
.modal-cta-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.modal-cta-label { font-size: .42rem; letter-spacing: .28em; text-transform: uppercase; color: rgba(240,237,232,.25); }
.modal-cta-note { font-size: .76rem; color: rgba(240,237,232,.4); margin-top: .2rem; }
.btn-modal-gold { background: var(--wine); color: #fff; border: 1px solid var(--wine); padding: .9rem 2rem; font-size: .54rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; display: inline-flex; align-items: center; gap: .6rem; transition: background .25s, transform .2s; white-space: nowrap; }
@media(hover:hover) { .btn-modal-gold:hover { background: var(--wine-dk); transform: translateY(-2px); } }
.btn-modal-outline { background: transparent; color: rgba(240,237,232,.55); border: 1px solid rgba(255,255,255,.15); padding: .9rem 2rem; font-size: .54rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 400; display: inline-flex; align-items: center; gap: .6rem; transition: border-color .25s, color .25s, transform .2s; white-space: nowrap; }
@media(hover:hover) { .btn-modal-outline:hover { border-color: rgba(255,255,255,.35); color: rgba(240,237,232,.85); transform: translateY(-2px); } }
.modal-diff-note { background: rgba(196,163,90,.06); border: 1px solid rgba(196,163,90,.15); padding: 1rem 1.4rem; margin-bottom: 2rem; display: flex; align-items: flex-start; gap: .8rem; }
.modal-diff-note-icon { width: 16px; height: 16px; flex-shrink: 0; margin-top: .1rem; }
.modal-diff-note-icon svg { width: 100%; height: 100%; stroke: var(--gold); stroke-width: 1.8; fill: none; }
.modal-diff-note-text { font-size: .78rem; color: rgba(240,237,232,.55); line-height: 1.6; }
.modal-diff-note-text strong { color: var(--gold); font-weight: 500; }

/* ── MAPA ── */
.mapa-sec { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); background: var(--bg); min-height: 500px; }
#map { min-height: 500px; background: var(--bg-alt); }
.mapa-text { padding: 5rem 4.5rem; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid var(--line); }
.datos-grid { display: flex; flex-direction: column; gap: 0; margin-top: 2rem; }
.dato-item { display: flex; align-items: flex-start; gap: 1.4rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.dato-item:first-child { border-top: 1px solid var(--line); }
.dato-icon { width: 32px; height: 32px; flex-shrink: 0; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; color: var(--wine); margin-top: .1rem; }
.dato-icon svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 1.8; fill: none; }
.dato-info { display: flex; flex-direction: column; gap: .15rem; }
.dato-label { font-size: .4rem; letter-spacing: .26em; text-transform: uppercase; color: var(--text-muted); font-weight: 500; }
.dato-val { font-size: .9rem; font-weight: 600; color: var(--ink); letter-spacing: -.01em; }
html[data-theme="dark"] .dato-val { color: var(--text); }

/* ── CTA FINAL ── */
.cta-final { min-height: 80vh; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 5rem 3rem; overflow: hidden; background: linear-gradient(168deg, #0A0908 0%, #151008 20%, #1E1A0C 40%, #2A2410 60%, #1C1808 80%, #0C0A08 100%); }
.cta-final::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 600px; height: 400px; background: radial-gradient(ellipse, rgba(107,29,42,.2) 0%, transparent 70%); pointer-events: none; }
.cta-final-kicker { font-size: .5rem; letter-spacing: .46em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 1.4rem; }
.cta-final-h { font-size: clamp(2.6rem, 5vw, 5.5rem); font-weight: 800; line-height: 1.04; letter-spacing: -.025em; color: #fff; margin-bottom: 1.2rem; }
.cta-final-h em { font-style: italic; color: var(--gold); }
.cta-final-p { font-size: .9rem; color: rgba(255,255,255,.5); max-width: 500px; margin: 0 auto 3rem; line-height: 1.85; }
.cta-final-btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

@media(hover:hover) { .cta-final-btns .btn-w:hover { background: var(--wine-dk); transform: translateY(-2px); } }

/* ── OTROS TOURS ── */
.otros-sec { background: var(--bg); padding: 3.5rem 4.5rem; }
.otros-inner { max-width: 1280px; margin: 0 auto; }
.otros-hdr { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 3.5rem; flex-wrap: wrap; }
.otros-h { font-size: clamp(1.8rem, 2.5vw, 2.8rem); font-weight: 800; line-height: 1.1; letter-spacing: -.03em; color: var(--ink); }
html[data-theme="dark"] .otros-h { color: var(--text); }
.otros-h em { font-style: italic; color: var(--wine); }
.otros-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 0; border: 1px solid var(--line); }
.otro-card { display: flex; flex-direction: column; border-right: 1px solid var(--line); text-decoration: none; position: relative; overflow: hidden; transition: background .25s; }
.otro-card:last-child { border-right: none; }
@media(hover:hover) { .otro-card:hover { background: var(--bg-alt); } }
.otro-card::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: linear-gradient(to right, var(--wine), var(--gold)); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--ease); }
@media(hover:hover) { .otro-card:hover::after { transform: scaleX(1); } }
.otro-media { height: 340px; overflow: hidden; flex-shrink: 0; }
.otro-media-sm { height: 180px; overflow: hidden; flex-shrink: 0; }
.otro-media img, .otro-media-sm img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
@media(hover:hover) { .otro-card:hover .otro-media img, .otro-card:hover .otro-media-sm img { transform: scale(1.05); } }
.otro-body { padding: 1.6rem 1.8rem 2rem; display: flex; flex-direction: column; flex: 1; }
.otro-tag { font-size: .4rem; letter-spacing: .28em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: .6rem; }
.otro-h-card { font-size: clamp(.9rem, 1.2vw, 1.2rem); font-weight: 700; color: var(--ink); letter-spacing: -.02em; margin-bottom: .5rem; line-height: 1.2; }
html[data-theme="dark"] .otro-h-card { color: var(--text); }
.otro-p-card { font-size: .76rem; color: var(--text-soft); line-height: 1.6; flex: 1; margin-bottom: 1rem; }
.otro-link { font-size: .46rem; letter-spacing: .22em; text-transform: uppercase; color: var(--wine); font-weight: 600; display: flex; align-items: center; gap: .4rem; transition: gap .25s; }
@media(hover:hover) { .otro-card:hover .otro-link { gap: .7rem; } }

/* kicker helper for this page */
.kicker.left { display: inline-flex; align-items: center; gap: .5rem; font-size: .55rem; letter-spacing: .22em; text-transform: uppercase; color: var(--text-muted); font-weight: 500; }
.kicker.left::before { content: ''; display: block; width: 20px; height: 1px; background: var(--wine); opacity: .6; }

/* ── RESPONSIVE ── */
@media(max-width: 1200px) {
  .hero-luj-content { padding: 9rem 3.5rem 5rem 5rem; }
  .hero-luj-stats { right: 3.5rem; }
  .intro-band-left, .intro-band-right { padding: 3.5rem; }
  .itinerario-hdr { gap: 3rem; padding: 4rem 4vw 3rem; }
  .itinerario-desc { padding-left: 2.5rem; }
  .paso-body { padding: 1.6rem 1.8rem 2rem; }
  .modalidades-hdr { padding: 4.5rem 3.5rem 3.5rem; gap: 3rem; }
  .modal-card { padding: 3.5rem; }
  .modal-card::before { left: 3.5rem; right: 3.5rem; }
  .mapa-text { padding: 4rem 3.5rem; }
  .otros-sec { padding: 4rem 3.5rem; }
}
@media(max-width: 960px) {
  .hero-luj { grid-template-columns: 1fr; }
  .hero-luj-content { padding: 0 2rem; padding-top: max(5rem, calc(env(safe-area-inset-top) + 4rem)); padding-bottom: max(3rem, calc(env(safe-area-inset-bottom) + 2rem)); justify-content: center; text-align: center; }
  .hero-luj-eyebrow { justify-content: center; }
  .hero-luj-eyebrow::before { display: none; }
  .hero-luj-rule { margin: 0 auto 1.6rem; }
  .hero-luj-sub { margin: 0 auto 2.8rem; }
  .hero-luj-stats { position: static; flex-direction: row; flex-wrap: wrap; gap: 1.5rem; margin-top: 2.5rem; align-items: flex-start; justify-content: center; }
  .hero-luj-stat { align-items: center; }
  .hero-luj-btns { flex-direction: column; gap: .8rem; width: 100%; }

  .intro-band-inner { grid-template-columns: 1fr; }
  .intro-band-left { padding: 3rem 2rem; border-right: none; border-bottom: 1px solid var(--line); text-align: center; }
  .intro-band-right { padding: 2.5rem 2rem 3rem; text-align: center; }
  .itinerario-hdr { grid-template-columns: 1fr; gap: 1.5rem; padding: 3rem 2rem 2.5rem; }
  .itinerario-desc { padding-left: 0; border-left: none; border-top: 1px solid rgba(196,163,90,.15); padding-top: 1.5rem; }
  .pasos { grid-template-columns: repeat(2,1fr); }
  .paso { border-bottom: 1px solid rgba(196,163,90,.1); }
  .paso:nth-child(odd) { border-right: 1px solid rgba(196,163,90,.1); }
  .paso:nth-child(even) { border-right: none; }
  .paso-body { padding: 1.4rem 1.6rem 1.8rem; }
  .paso-num-small, .paso-h, .paso-rule, .paso-p, .paso-tag { opacity: 1; transform: none; }
  .paso-img { aspect-ratio: 3/4; }
  .modalidades-hdr { grid-template-columns: 1fr; gap: 1.5rem; padding: 3.5rem 2rem 2.5rem; }
  .modalidades-grid { grid-template-columns: 1fr; }
  .modal-card { border-right: none; border-bottom: 1px solid rgba(255,255,255,.07); padding: 3rem 2rem; }
  .modal-card:last-child { border-bottom: none; }
  .modal-card::before { left: 2rem; right: 2rem; }
  .modal-cta-row { flex-direction: column; align-items: flex-start; }
  .btn-modal-gold, .btn-modal-outline { width: 100%; justify-content: center; }
  .mapa-sec { grid-template-columns: 1fr; }
  #map { min-height: 360px; }
  .mapa-text { padding: 3rem 2rem; border-left: none; border-top: 1px solid var(--line); }
  .cta-final { padding: 4rem 1.8rem; }
  .cta-final-h { font-size: clamp(2.2rem, 7vw, 3.5rem); }
  .cta-final-btns { flex-direction: column; gap: .8rem; width: 100%; }

  .otros-sec { padding: 3.5rem 2rem; }
  .otros-grid { grid-template-columns: 1fr 1fr; }
  .otro-card.featured { grid-column: span 2; }
  .otro-media { height: 260px; }
  .otros-hdr { flex-direction: column; align-items: flex-start; }
}
@media(max-width: 640px) {
  .hero-luj-content { padding: 0 1.4rem; padding-top: max(4.5rem, calc(env(safe-area-inset-top) + 3.5rem)); padding-bottom: max(3rem, calc(env(safe-area-inset-bottom) + 2rem)); }
  .intro-band-left { padding: 2.5rem 1.4rem; }
  .intro-band-right { padding: 2rem 1.4rem 2.5rem; }
  .pasos { grid-template-columns: 1fr; }
  .paso { border-right: none; }
  .paso:nth-child(odd) { border-right: none; }
  .paso-img { aspect-ratio: 16/9; }
  .paso-body { padding: 1.2rem 1.4rem 1.6rem; }
  .otros-grid { grid-template-columns: 1fr; }
  .otro-card.featured { grid-column: span 1; }
  .otros-sec { padding: 3rem 1.4rem; }
  .cta-final { padding: 3rem 1.4rem; }
  .modalidades-hdr { padding: 3rem 1.4rem 2rem; }
  .modal-card { padding: 2.5rem 1.4rem; }
  .modal-card::before { left: 1.4rem; right: 1.4rem; }
  .mapa-text { padding: 2.5rem 1.4rem; }
}

/* ═══════════════════════════════════════════════════════════════
   18. PÁGINA — ALTA MONTAÑA
═══════════════════════════════════════════════════════════════ */

.hero-am {
  height: 100vh;
  height: 100dvh;
  min-height: 700px;
  position: relative;
  overflow: hidden;
  background: #060A0F;
  display: flex;
  align-items: stretch;
}

.hero-am-img {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-am-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 45%;
  animation: heroZoom 22s ease-in-out infinite alternate;
  will-change: transform;
  filter: brightness(.75) contrast(1.08) saturate(.85);
}

/* Gradiente multicapa — oscuro abajo, cielo arriba */
.hero-am-overlay {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(to top,  rgba(4,6,10,1) 0%, rgba(4,6,10,.88) 35%, rgba(4,6,10,.4) 60%, rgba(4,6,10,.15) 80%, transparent 100%),
    linear-gradient(to right, rgba(4,6,10,.55) 0%, transparent 60%);
}

/* Grain texture */
.hero-am-grain {
  position: absolute; inset: 0; z-index: 2; opacity: .04;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  pointer-events: none;
}

/* Altitud indicator — barra lateral derecha */
.hero-am-altbar {
  position: absolute;
  right: 3.5rem; top: 50%; transform: translateY(-50%);
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .6rem;
  animation: fadeUp 1s var(--ease) 1.6s both;
}
.hero-am-altbar-line {
  width: 1px; height: 80px;
  background: linear-gradient(to bottom, transparent, rgba(196,163,90,.5));
  flex-shrink: 0;
}
.hero-am-altbar-num {
  font-size: .38rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: rgba(196,163,90,.6);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}
.hero-am-altbar-line2 {
  width: 1px; height: 80px;
  background: linear-gradient(to top, transparent, rgba(196,163,90,.5));
  flex-shrink: 0;
}

/* Contenido hero */
.hero-am-content {
  position: relative;
  z-index: 4;
  padding: 100px 4.5rem 4rem;
  max-width: 860px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
}

.hero-am-eyebrow {
  font-size: .52rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
  margin-bottom: 1.8rem;
  display: flex;
  align-items: center;
  gap: .6rem;
  white-space: nowrap;
  overflow: hidden;
  animation: fadeUp .8s var(--ease) .4s both;
}
.hero-am-eyebrow::before {
  content: '';
  width: 32px; height: 1px;
  background: var(--gold);
  opacity: .6;
  flex-shrink: 0;
}

.hero-am-h1 {
  font-size: clamp(2.6rem, 4.2vw, 5.5rem);
  font-weight: 800;
  line-height: 1.0;
  letter-spacing: -.04em;
  color: #fff;
  margin-bottom: 1.6rem;
}
.hero-am-h1 .line {
  display: block; overflow: hidden; padding-bottom: .18em;
}
.hero-am-h1 .line span {
  display: block;
  animation: fadeUp .9s var(--ease) both;
}
.hero-am-h1 .line:nth-child(1) span { animation-delay: .5s; }
.hero-am-h1 .line:nth-child(2) span { animation-delay: .65s; }
.hero-am-h1 .line:nth-child(3) span { animation-delay: .8s; }
.hero-am-h1 em {
  font-style: italic;
  color: var(--gold-lt);
  font-weight: 300;
}

.hero-am-rule {
  width: 52px; height: 1px;
  background: linear-gradient(to right, var(--gold), transparent);
  margin-bottom: 1.6rem;
  animation: fadeUp .8s var(--ease) .9s both;
}

.hero-am-sub {
  font-size: .92rem;
  color: rgba(240,237,232,.62);
  max-width: 480px;
  line-height: 1.85;
  margin-bottom: 2.4rem;
  animation: fadeUp .8s var(--ease) 1.0s both;
}

.hero-am-btns {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  animation: fadeUp .8s var(--ease) 1.15s both;
}


/* Stats strip en el hero */
.hero-am-stats {
  display: flex;
  gap: 2.4rem;
  margin-top: 2rem;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(196,163,90,.15);
  animation: fadeUp .8s var(--ease) 1.3s both;
}
.hero-am-stat { display: flex; flex-direction: column; gap: .2rem; }
.hero-am-stat-n {
  font-size: clamp(1.6rem, 2vw, 2.2rem);
  font-weight: 700;
  color: #fff;
  letter-spacing: -.03em;
  line-height: 1;
}
.hero-am-stat-l {
  font-size: .42rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(240,237,232,.4);
  font-weight: 500;
}

/* ─────────────────────────────────────
   INTRO BAND — STORYTELLING
───────────────────────────────────── */
.intro-am {
  background: var(--bg);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.intro-am-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 0;
}
.intro-am-left {
  padding: 5.5rem 4.5rem 5.5rem 4.5rem;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}
.intro-am-left::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 0;
  width: 2px;
  background: linear-gradient(to bottom, transparent 10%, rgba(28,43,58,.25) 40%, var(--gold) 70%, transparent 90%);
  opacity: .4;
}
.intro-am-h {
  font-size: clamp(1.9rem, 2.8vw, 3.4rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.04em;
  color: var(--ink);
  margin-top: .6rem;
}
html[data-theme="dark"] .intro-am-h { color: var(--text); }
.intro-am-h em { font-style: italic; color: var(--wine); font-weight: 300; }
.intro-am-right {
  padding: 5.5rem 4.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.6rem;
}
.intro-am-right p {
  font-size: .9rem;
  color: var(--text-soft);
  line-height: 1.9;
}
.intro-am-quote {
  border-left: 2px solid var(--gold);
  padding: 1.2rem 1.8rem;
  background: var(--bg-alt);
  margin-top: .4rem;
}
.intro-am-quote p {
  font-size: .88rem;
  font-style: italic;
  color: var(--text-soft);
  line-height: 1.75;
}
.intro-am-quote cite {
  font-size: .46rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  font-style: normal;
  color: var(--gold);
  font-weight: 500;
  display: block;
  margin-top: .7rem;
}

/* ─────────────────────────────────────
   PARADAS SECTION — DESTINOS ICÓNICOS
   Dark background, 4 columnas
───────────────────────────────────── */
.paradas-sec {
  background: var(--ink);
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  overflow: hidden;
}
html[data-theme="dark"] .paradas-sec { background: #08060A; }
.paradas-sec::after {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity: .015;
  pointer-events: none;
  z-index: 0;
}
html[data-theme="dark"] .hero-left-panel::after { opacity: .028; }

.paradas-inner {
  position: relative;
  z-index: 1;
  width: 100%;
}

.paradas-hdr {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: 5rem 6vw 4rem;
  align-items: end;
  border-bottom: 1px solid rgba(196,163,90,.12);
  position: relative;
}
.paradas-hdr::before {
  content: '';
  position: absolute;
  top: 0; left: 6vw; right: 6vw; height: 1px;
  background: linear-gradient(to right, var(--gold), transparent);
  opacity: .2;
}
.paradas-h {
  font-size: clamp(2.4rem, 4vw, 5rem);
  font-weight: 800;
  line-height: 1.0;
  letter-spacing: -.05em;
  color: #F0EDE8;
}
.paradas-h em { font-style: italic; color: var(--gold); font-weight: 300; }
.paradas-desc {
  font-size: .9rem;
  color: rgba(240,237,232,.48);
  line-height: 1.9;
  padding-left: 4rem;
  border-left: 1px solid rgba(196,163,90,.15);
}

/* Grid 4 columnas */
.paradas-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.parada {
  display: flex;
  flex-direction: column;
  border-right: 1px solid rgba(196,163,90,.08);
  position: relative;
  overflow: hidden;
  transition: background .5s var(--ease);
  min-height: 560px;
}
.parada:last-child { border-right: none; }
@media(hover:hover) {
  .parada:hover { background: rgba(196,163,90,.03); }
  .parada:hover .parada-img img { transform: scale(1.07); filter: brightness(.8) saturate(.85); }
}

.parada::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(to right, var(--wine), var(--gold), transparent);
  transform: scaleX(0); transform-origin: left;
  transition: transform 1.1s var(--ease);
  z-index: 3;
}
.parada.vis::before { transform: scaleX(1); }

.parada-img {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.parada-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.4s var(--ease), filter 1.4s var(--ease);
  filter: brightness(.65) saturate(.75);
}
.parada-img::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 35%, rgba(6,8,12,.85) 100%);
  pointer-events: none; z-index: 1;
}
.parada-img-num {
  display: block;
  position: absolute;
  bottom: 1rem; left: 1.4rem;
  font-size: 5rem; font-weight: 900; line-height: 1;
  letter-spacing: -.08em;
  color: rgba(255,255,255,.05);
  z-index: 2; pointer-events: none;
  font-style: italic;
  -webkit-text-stroke: 1px rgba(196,163,90,.07);
  transition: color .5s var(--ease);
}
@media(hover:hover){ .parada:hover .parada-img-num { color: rgba(196,163,90,.1); } }

/* Altitude badge flotante en esquina superior */
.parada-alt-badge {
  position: absolute;
  top: 1rem; right: 1rem;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(4,6,10,.7);
  border: 1px solid rgba(196,163,90,.25);
  padding: .5rem .8rem;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity .6s var(--ease) .3s, transform .6s var(--ease) .3s;
}
.parada.vis .parada-alt-badge { opacity: 1; transform: none; }
.parada-alt-n {
  font-size: .78rem; font-weight: 700;
  color: var(--gold-lt);
  letter-spacing: -.01em;
  line-height: 1;
}
.parada-alt-l {
  font-size: .3rem; letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(196,163,90,.55);
  font-weight: 500;
  margin-top: .15rem;
}

.parada-body {
  position: relative;
  z-index: 2;
  margin-top: auto;
  padding: 2rem 2rem 1.8rem;
  display: flex;
  flex-direction: column;
}
.parada-num-small {
  font-size: .38rem; letter-spacing: .38em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: .8rem;
  opacity: 0; transform: translateY(10px);
  transition: opacity .6s var(--ease), transform .6s var(--ease);
}
.parada-body.vis .parada-num-small { opacity: .7; transform: none; }

.parada-rule {
  width: 28px; height: 1px;
  background: linear-gradient(to right, var(--gold), transparent);
  margin-bottom: .9rem;
  transform: scaleX(0); transform-origin: left;
  transition: transform .8s var(--ease) .1s;
}
.parada-body.vis .parada-rule { transform: scaleX(1); }

.parada-h {
  font-size: clamp(1rem, 1.3vw, 1.4rem);
  font-weight: 700; line-height: 1.15;
  letter-spacing: -.02em; color: #F0EDE8;
  margin-bottom: .65rem;
  opacity: 0; transform: translateY(12px);
  transition: opacity .7s var(--ease) .12s, transform .7s var(--ease) .12s;
}
.parada-body.vis .parada-h { opacity: 1; transform: none; }

.parada-p {
  font-size: .8rem; color: rgba(240,237,232,.42);
  line-height: 1.75; flex: 1; margin-bottom: 1.2rem;
  opacity: 0; transform: translateY(8px);
  transition: opacity .65s var(--ease) .2s, transform .65s var(--ease) .2s;
}
.parada-body.vis .parada-p { opacity: 1; transform: none; }

.parada-tag {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .34rem; letter-spacing: .22em; text-transform: uppercase;
  font-weight: 600; color: var(--gold);
  border: 1px solid rgba(196,163,90,.18);
  padding: .35rem .75rem; align-self: flex-start;
  opacity: 0; transform: translateY(6px);
  transition: opacity .55s var(--ease) .27s, transform .55s var(--ease) .27s;
}
.parada-body.vis .parada-tag { opacity: 1; transform: none; }

/* Timeline de horas */
.paradas-timeline {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  padding: 0 0;
  border-top: 1px solid rgba(196,163,90,.1);
}
.ptl-item {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: 1.2rem 2rem;
  border-right: 1px solid rgba(196,163,90,.08);
  position: relative;
}
.ptl-item:last-child { border-right: none; }
.ptl-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--gold); opacity: .5; flex-shrink: 0;
}
.ptl-time {
  font-size: .52rem; font-weight: 600;
  letter-spacing: .06em; color: rgba(196,163,90,.7);
}
.ptl-lbl {
  font-size: .42rem; letter-spacing: .12em;
  text-transform: uppercase; color: rgba(240,237,232,.3);
  font-weight: 400;
}

/* ─────────────────────────────────────
   EXPERIENCIA — SECCIÓN STORYTELLING
───────────────────────────────────── */
.experiencia-sec {
  background: var(--bg);
  padding: 7rem 4.5rem;
  position: relative;
  overflow: hidden;
}
/* Fondo decorativo — silueta montaña abstracta */
.experiencia-sec::before {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 220px;
  background: var(--bg-alt);
  clip-path: polygon(0 40%, 10% 20%, 22% 35%, 38% 5%, 50% 25%, 65% 0%, 78% 18%, 90% 8%, 100% 22%, 100% 100%, 0 100%);
  opacity: .5;
}
.experiencia-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
  position: relative;
  z-index: 1;
}
.exp-left { }
.exp-left .kicker { margin-bottom: 1.2rem; }
.exp-am-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.04em;
  color: var(--ink);
  margin-bottom: 2rem;
}
html[data-theme="dark"] .exp-am-h { color: var(--text); }
.exp-am-h em { font-style: italic; color: var(--wine); font-weight: 300; }

.exp-am-body {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}
.exp-am-body p {
  font-size: .88rem;
  color: var(--text-soft);
  line-height: 1.9;
}
.exp-am-body strong { color: var(--ink); font-weight: 600; }
html[data-theme="dark"] .exp-am-body strong { color: var(--text); }

.exp-divider {
  display: flex; align-items: center; gap: 1rem;
  margin: .4rem 0;
}
.exp-divider-line { flex: 1; height: 1px; background: var(--line); }
.exp-divider-icon { font-size: 1rem; opacity: .35; }

.exp-right {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.exp-stat-card {
  background: var(--bg-alt);
  border: 1px solid var(--line);
  padding: 1.8rem 2rem;
  position: relative;
  overflow: hidden;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
@media(hover:hover) {
  .exp-stat-card:hover {
    transform: translateX(6px);
    box-shadow: -4px 0 0 var(--gold);
  }
}
.exp-stat-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--wine), var(--gold));
  opacity: .5;
}
.exp-stat-num {
  font-size: 2.2rem;
  font-weight: 800;
  letter-spacing: -.04em;
  color: var(--ink);
  line-height: 1;
  margin-bottom: .3rem;
}
html[data-theme="dark"] .exp-stat-num { color: var(--text); }
.exp-stat-label {
  font-size: .52rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: .5rem;
}
.exp-stat-desc {
  font-size: .8rem;
  color: var(--text-muted);
  line-height: 1.6;
}

/* ─────────────────────────────────────
   MODALIDADES — SECCIÓN
───────────────────────────────────── */
.modalidades-am {
  background: linear-gradient(160deg, #0A0908 0%, #120F0A 30%, #1A1610 60%, #0E0C09 100%);
  padding: 7rem 0;
  position: relative;
  overflow: hidden;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}
.modalidades-am::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  width: 700px; height: 500px;
  background: radial-gradient(ellipse, rgba(196,163,90,.06) 0%, transparent 70%);
  pointer-events: none;
}
.modalidades-am-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 4.5rem;
  position: relative;
  z-index: 1;
}
.modalidades-am-hdr {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-bottom: 4rem;
  align-items: end;
}
.modalidades-am-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800;
  line-height: 1.0;
  letter-spacing: -.04em;
  color: #F0EDE8;
}
.modalidades-am-h em { font-style: italic; color: var(--gold); font-weight: 300; }
.modalidades-am-sub {
  font-size: .88rem;
  color: rgba(240,237,232,.45);
  line-height: 1.9;
  padding-left: 4rem;
  border-left: 1px solid rgba(196,163,90,.15);
}

.modalidades-am-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

/* Single-card layout */
.modal-am-single {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid rgba(196,163,90,.18);
  background: rgba(255,255,255,.03);
}
.modal-am-single::before {
  content: '';
  grid-column: 1 / -1;
  height: 2px;
  background: linear-gradient(to right, var(--wine), var(--gold), transparent);
  opacity: .7;
}
.modal-am-single-left {
  padding: 3rem 3.5rem 3rem;
  border-right: 1px solid rgba(196,163,90,.12);
}
.modal-am-single-right {
  padding: 3rem 3.5rem 3rem;
}
.modal-am-col-hdr {
  font-size: .38rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 1.2rem;
  opacity: .8;
}
.modal-am-card {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(196,163,90,.1);
  padding: 3rem 3rem 2.4rem;
  position: relative;
  overflow: hidden;
  transition: background .4s var(--ease), border-color .4s var(--ease);
}
@media(hover:hover){ .modal-am-card:hover { background: rgba(196,163,90,.04); border-color: rgba(196,163,90,.2); } }

.modal-am-card.gold-am {
  background: rgba(196,163,90,.06);
  border-color: rgba(196,163,90,.25);
}
@media(hover:hover){ .modal-am-card.gold-am:hover { background: rgba(196,163,90,.1); } }

/* Linea decorativa top */
.modal-am-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(to right, transparent, rgba(196,163,90,.25), transparent);
  opacity: .6;
}
.modal-am-card.gold-am::before {
  background: linear-gradient(to right, var(--wine), var(--gold));
  opacity: .7;
}

.modal-am-badge {
  font-size: .38rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: rgba(196,163,90,.55);
  font-weight: 500;
  margin-bottom: 1.4rem;
}
.modal-am-card.gold-am .modal-am-badge { color: var(--gold); }

.modal-am-h {
  font-size: clamp(1.8rem, 2.5vw, 3rem);
  font-weight: 800;
  line-height: 1.0;
  letter-spacing: -.04em;
  color: #F0EDE8;
  margin-bottom: 1.4rem;
}

.modal-am-rule {
  width: 36px; height: 1px;
  background: linear-gradient(to right, rgba(196,163,90,.4), transparent);
  margin-bottom: 1.6rem;
}
.modal-am-card.gold-am .modal-am-rule { background: linear-gradient(to right, var(--gold), transparent); }

.modal-am-p {
  font-size: .85rem;
  color: rgba(240,237,232,.45);
  line-height: 1.85;
  margin-bottom: 2rem;
}
.modal-am-card.gold-am .modal-am-p { color: rgba(240,237,232,.58); }
.modal-am-p strong { color: rgba(240,237,232,.82); font-weight: 500; }

/* Includes list */
.modal-am-list {
  display: flex;
  flex-direction: column;
  gap: .9rem;
  margin-bottom: 2.4rem;
}
.modal-am-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.modal-am-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: rgba(196,163,90,.3);
  flex-shrink: 0;
  margin-top: .45rem;
}
.modal-am-card.gold-am .modal-am-dot { background: var(--gold); opacity: .7; }
.modal-am-item-not .modal-am-dot { background: rgba(196,163,90,.12); }
.modal-am-item-name {
  display: block;
  font-size: .7rem;
  font-weight: 600;
  color: rgba(240,237,232,.7);
  letter-spacing: .04em;
  line-height: 1.3;
  margin-bottom: .1rem;
}
.modal-am-item-not .modal-am-item-name { color: rgba(240,237,232,.3); text-decoration: line-through; text-decoration-color: rgba(240,237,232,.15); }
.modal-am-card.gold-am .modal-am-item-name { color: rgba(240,237,232,.85); }
.modal-am-item-desc {
  display: block;
  font-size: .72rem;
  color: rgba(240,237,232,.28);
  line-height: 1.5;
}

/* CTA row */
.modal-am-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(196,163,90,.1);
  flex-wrap: wrap;
}
.modal-am-card.gold-am .modal-am-cta { border-top-color: rgba(196,163,90,.2); }
.modal-am-cta-label {
  font-size: .38rem;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(196,163,90,.45);
  font-weight: 500;
}
.modal-am-cta-note {
  font-size: .72rem;
  color: rgba(240,237,232,.35);
  margin-top: .15rem;
}
.btn-modal-am {
  display: inline-flex; align-items: center; gap: .6rem;
  border: 1px solid rgba(196,163,90,.25);
  color: rgba(196,163,90,.7);
  padding: .7rem 1.6rem;
  font-size: .5rem; letter-spacing: .2em; font-weight: 500;
  text-transform: uppercase;
  transition: border-color .25s, color .25s, background .25s;
  white-space: nowrap;
}
.btn-modal-am:hover { border-color: var(--gold); color: var(--gold); background: rgba(196,163,90,.05); }
.btn-modal-am-gold {
  background: var(--wine);
  border: 1px solid var(--wine);
  color: #fff;
  padding: .7rem 1.6rem;
  font-size: .5rem; letter-spacing: .2em; font-weight: 500;
  text-transform: uppercase;
  display: inline-flex; align-items: center; gap: .6rem;
  transition: background .25s, transform .2s;
  white-space: nowrap;
}
.btn-modal-am-gold:hover { background: var(--wine-mid); transform: translateY(-2px); }

/* Promo badge */
.modal-am-promo {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  background: rgba(107,29,42,.12);
  border: 1px solid rgba(107,29,42,.2);
  padding: 1rem 1.2rem;
  margin-bottom: 1.8rem;
}
.modal-am-promo svg { width: 16px; height: 16px; fill: var(--gold); flex-shrink: 0; margin-top: .1rem; }
.modal-am-promo-text {
  font-size: .76rem;
  color: rgba(240,237,232,.55);
  line-height: 1.6;
}
.modal-am-promo-text strong { color: rgba(240,237,232,.8); }
.modal-am-disc { color: var(--gold); font-weight: 600; }

/* ─────────────────────────────────────
   DIFERENCIAL SECTION
───────────────────────────────────── */
.diferencial-sec {
  background: var(--bg);
  padding: 7rem 4.5rem;
  border-top: 1px solid var(--line);
}
.diferencial-inner {
  max-width: 1280px;
  margin: 0 auto;
}
.diferencial-hdr {
  text-align: center;
  margin-bottom: 5rem;
}
.diferencial-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1.05;
  color: var(--ink);
  margin-top: .8rem;
}
html[data-theme="dark"] .diferencial-h { color: var(--text); }
.diferencial-h em { font-style: italic; color: var(--wine); font-weight: 300; }
.diferencial-sub {
  font-size: .88rem;
  color: var(--text-muted);
  max-width: 560px;
  margin: 1.2rem auto 0;
  line-height: 1.8;
}

.diferencial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--line);
}
.di-am {
  padding: 2.8rem 2.6rem;
  border-right: 1px solid var(--line);
  position: relative;
  overflow: hidden;
  transition: background .3s var(--ease);
}
.di-am:nth-child(3) { border-right: none; }
.di-am:nth-child(4), .di-am:nth-child(5), .di-am:nth-child(6) { border-top: 1px solid var(--line); }
.di-am:nth-child(6) { border-right: none; }
@media(hover:hover){ .di-am:hover { background: var(--bg-alt); } }

.di-am::before {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(to right, var(--wine), var(--gold), transparent);
  transform: scaleX(0); transform-origin: left;
  transition: transform .5s var(--ease);
}
@media(hover:hover){ .di-am:hover::before { transform: scaleX(1); } }

.di-am-icon {
  font-size: 1.6rem;
  margin-bottom: 1.4rem;
  display: block;
}
.di-am-title {
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--wine);
  margin-bottom: .7rem;
}
html[data-theme="dark"] .di-am-title { color: var(--gold); }
.di-am-p {
  font-size: .82rem;
  color: var(--text-soft);
  line-height: 1.8;
}

/* ─────────────────────────────────────
   CTA FINAL
───────────────────────────────────── */
.cta-am {
  min-height: 80vh;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 5rem 3rem;
  overflow: hidden;
}
.cta-am-img {
  position: absolute; inset: 0; z-index: 0;
}
.cta-am-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 40%;
  filter: brightness(.35) saturate(.6);
}
.cta-am-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(160deg, rgba(4,6,10,.65) 0%, rgba(107,29,42,.2) 60%, rgba(4,6,10,.8) 100%);
}
.cta-am-content {
  position: relative;
  z-index: 2;
  max-width: 680px;
}
.cta-am-kicker {
  font-size: .5rem;
  letter-spacing: .46em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
  margin-bottom: 1.6rem;
}
.cta-am-h {
  font-size: clamp(2.8rem, 5.5vw, 6rem);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -.03em;
  color: #fff;
  margin-bottom: 1.4rem;
}
.cta-am-h em { font-style: italic; color: var(--gold-lt); }
.cta-am-p {
  font-size: .9rem;
  color: rgba(255,255,255,.5);
  max-width: 480px;
  margin: 0 auto 3rem;
  line-height: 1.85;
}
.cta-am-btns {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}


/* Coordenadas decorativas */
.cta-am-coords {
  margin-top: 2.5rem;
  font-size: .42rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: rgba(255,255,255,.2);
}


@media(hover:hover) { .otro-card:hover { background: var(--bg-alt); } }
@media(hover:hover) { .otro-card:hover::after { transform: scaleX(1); } }
@media(hover:hover) { .otro-card:hover .otro-media img, .otro-card:hover .otro-media-sm img { transform: scale(1.05); } }
@media(hover:hover){ .otro-card:hover .otro-link { gap: .8rem; } }

/* ─────────────────────────────────────
   FOOTER
───────────────────────────────────── */

/* ─────────────────────────────────────
   FLOATING
───────────────────────────────────── */

/* ─────────────────────────────────────
   RESPONSIVE
───────────────────────────────────── */
@media (max-width: 960px) {
  nav { padding: 0 2rem; height: 64px; }
  .nav-links { display: none; }
  .nav-toggle { display: flex; }

  .hero-am-content { padding: 80px 2rem 2.5rem; max-width: 100%; justify-content: center; text-align: center; }
  .hero-am-eyebrow { justify-content: center; }
  .hero-am-eyebrow::before { display: none; }
  .hero-am-rule { margin: 0 auto 1.6rem; }
  .hero-am-sub { margin: 0 auto 2rem; }
  .hero-am-btns { flex-direction: column; width: 100%; }

  .hero-am-stats { justify-content: center; flex-wrap: wrap; gap: 1.5rem; }
  .hero-am-h1 { font-size: clamp(2.6rem, 9vw, 4rem); }
  .hero-am-altbar { display: none; }
  .hero-am-h1 { font-size: clamp(2.6rem, 9vw, 4rem); }
  .hero-am-sub { font-size: .82rem; max-width: 100%; }
  .hero-am-btns { flex-direction: column; width: 100%; gap: .7rem; }

  .hero-am-stats { gap: 1.4rem; flex-wrap: wrap; }

  .intro-am-inner { grid-template-columns: 1fr; }
  .intro-am-left { border-right: none; border-bottom: 1px solid var(--line); padding: 3rem 2rem; }
  .intro-am-left::before { display: none; }
  .intro-am-right { padding: 3rem 2rem; }

  .paradas-hdr { grid-template-columns: 1fr; padding: 3.5rem 2rem 2.5rem; }
  .paradas-desc { padding-left: 0; border-left: none; margin-top: 1.5rem; }
  .paradas-grid { grid-template-columns: repeat(2,1fr); }
  .paradas-timeline { grid-template-columns: repeat(2,1fr); }
  .ptl-item:nth-child(2) { border-right: none; }
  .ptl-item:nth-child(3), .ptl-item:nth-child(4) { border-top: 1px solid rgba(196,163,90,.08); }

  .experiencia-sec { padding: 4rem 2rem; }
  .experiencia-sec::before { display: none; }
  .experiencia-inner { grid-template-columns: 1fr; gap: 3rem; }

  .modalidades-am { padding: 4rem 0; }
  .modalidades-am-inner { padding: 0 2rem; }
  .modalidades-am-hdr { grid-template-columns: 1fr; gap: 2rem; }
  .modalidades-am-sub { padding-left: 0; border-left: none; }
  .modal-am-single { grid-template-columns: 1fr; }
  .modal-am-single::before { grid-column: 1; }
  .modal-am-single-left { border-right: none; border-bottom: 1px solid rgba(196,163,90,.12); padding: 2.4rem 2rem; }
  .modal-am-single-right { padding: 2.4rem 2rem; }

  .diferencial-sec { padding: 4rem 2rem; }
  .diferencial-grid { grid-template-columns: 1fr 1fr; }
  .di-am:nth-child(2) { border-right: none; }
  .di-am:nth-child(3) { border-right: 1px solid var(--line); border-top: 1px solid var(--line); }
  .di-am:nth-child(4) { border-right: none; }
  .di-am:nth-child(5), .di-am:nth-child(6) { border-top: 1px solid var(--line); }
  .di-am:nth-child(5) { border-right: 1px solid var(--line); }
  .di-am:nth-child(6) { border-right: none; }

  .cta-am { min-height: 70vh; padding: 4rem 1.5rem; }
  .cta-am-btns { flex-direction: column; width: 100%; max-width: 320px; margin: 0 auto; }


  .otros-sec { padding: 3.5rem 2rem; }
  .otros-grid { grid-template-columns: 1fr 1fr; }
  .otro-card.featured { grid-column: span 2; }
  .otro-media { height: 260px; }
}
@media (max-width: 768px) {
  .paradas-grid { grid-template-columns: 1fr; }
  .parada { border-right: none; border-bottom: 1px solid rgba(196,163,90,.08); min-height: auto; }
  .parada-img {
    position: relative;
    inset: auto;
    height: 260px;
    flex-shrink: 0;
  }
  .parada-body {
    position: relative;
    margin-top: 0;
    background: #0A0806;
    padding: 1.6rem 1.6rem 2rem;
  }
  .parada-num-small,
  .parada-h,
  .parada-rule,
  .parada-p,
  .parada-tag { opacity: 1; transform: none; }
  .paradas-timeline { grid-template-columns: repeat(2,1fr); }

  .diferencial-grid { grid-template-columns: 1fr; }
  .di-am { border-right: none; }
  .di-am:nth-child(n) { border-top: 1px solid var(--line); border-right: none; }
  .di-am:first-child { border-top: none; }

  .otros-grid { grid-template-columns: 1fr 1fr; }
  .otros-sec { padding: 3rem 1.4rem; }
}
@media (max-width: 480px) {
  .hero-am-h1 { font-size: clamp(2.6rem, 9vw, 4rem); }
  .hero-am-eyebrow { display: none; }
  .otros-grid { grid-template-columns: 1fr; }
  .otro-card.featured { grid-column: span 1; }
  .mq-txt { font-size: .44rem; }
}
@media (max-width: 960px) and (orientation: landscape) {
  .hero-am-h1 { font-size: clamp(2.6rem, 9vw, 4rem); }
  .hero-am-sub { display: none; }
}

/* Dark mode adjustments */
html[data-theme="dark"] .exp-stat-card { background: rgba(255,255,255,.03); border-color: rgba(255,255,255,.07); }
html[data-theme="dark"] .intro-am-quote { background: rgba(255,255,255,.04); }
html[data-theme="dark"] .diferencial-sec { border-top-color: var(--line); }
html[data-theme="dark"] .diferencial-grid { border-color: var(--line); }
html[data-theme="dark"] .di-am { border-right-color: var(--line); }
html[data-theme="dark"] .di-am:nth-child(n) { border-top-color: var(--line); }
html[data-theme="dark"] .otros-grid { border-color: var(--line); }
html[data-theme="dark"] .otro-card { border-right-color: var(--line); }
html[data-theme="dark"] .otros-sec { border-top-color: var(--line); }

/* ── Nav responsive — igual a lujandecuyo ── */
@media (min-width: 1920px) { nav { padding: 0 5rem; } }
@media (min-width: 2560px) { nav { padding: 0 8rem; height: 90px; } }
@media (min-width: 1025px) and (max-width: 1400px) { nav { padding: 0 2.5rem; height: 68px; } }
@media (max-width: 600px) { nav { height: 56px; padding: 0 1.4rem; } }
@media (max-width: 390px) { nav { height: 52px; padding: 0 1.2rem; } }
@media (max-width: 359px) { nav { height: 50px; padding: 0 1rem; } }

/* wa-btn — sin popup AI en esta página */
.wa-btn { bottom: 1.5rem; }

/* ── MAPA DE RUTA ALTA MONTAÑA ── */
.ruta-map-sec {
  position: relative;
  width: 100%;
  height: 55vh;
  min-height: 480px;
  overflow: hidden;
}

#map-ruta {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: #060A0F;
}

/* Mapa — mismo estilo invertido que bodegas en modo claro */
html[data-theme="light"] #map-ruta {
  filter: invert(100%) hue-rotate(180deg) sepia(0.25) saturate(0.85) brightness(1.05);
}
html[data-theme="dark"] #map-ruta {
  filter: none;
}

/* Bodegas maps — dark-v11 para ambos modos
   En claro: invertido + tono beige cálido = mismo detalle, look premium */
html[data-theme="light"] #map {
  filter: invert(100%) hue-rotate(180deg) sepia(0.25) saturate(0.85) brightness(1.05);
}
html[data-theme="dark"] #map { filter: none; }

/* Panel legend superpuesto — esquina inferior izquierda */
.ruta-map-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  display: flex;
  align-items: flex-end;
  padding: 2rem;
}

.ruta-map-legend {
  background: rgba(6, 8, 12, 0.82);
  border: 1px solid rgba(196, 163, 90, 0.2);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 1.4rem 1.6rem;
  pointer-events: all;
  min-width: 220px;
}
html[data-theme="light"] .ruta-map-legend {
  background: rgba(242, 234, 220, 0.94);
  border-color: rgba(154, 122, 58, 0.25);
}
html[data-theme="light"] .rml-title {
  color: #7A5E2A;
}
html[data-theme="light"] .rml-name {
  color: rgba(40, 28, 16, 0.85);
}
html[data-theme="light"] .rml-alt {
  color: rgba(130, 100, 50, 0.65);
}
html[data-theme="light"] .rml-num {
  background: #9A7A3A;
  color: #fff;
}

/* Mapbox logo — mínimo legal, no se puede quitar */
.mapboxgl-ctrl-logo {
  opacity: 0.35 !important;
  transform: scale(0.7) !important;
  transform-origin: bottom left !important;
}
.mapboxgl-ctrl-attrib {
  display: none !important;
}

.rml-title {
  font-size: .38rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 1rem;
  opacity: .8;
}

.rml-items {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}

.rml-item {
  display: flex;
  align-items: center;
  gap: .8rem;
}

.rml-num {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--gold);
  color: #0A0804;
  font-size: .5rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
}

.rml-info { display: flex; flex-direction: column; gap: .1rem; }

.rml-name {
  font-size: .72rem;
  font-weight: 600;
  color: rgba(240, 237, 232, .85);
  line-height: 1.2;
}

.rml-alt {
  font-size: .5rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(196, 163, 90, .55);
  font-weight: 400;
}

/* Marcadores del mapa */
.rml-marker {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(10, 8, 6, 0.9);
  color: #C4A35A;
  font-size: .48rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: 1.5px solid rgba(196, 163, 90, 0.7);
  box-shadow: 0 0 0 4px rgba(196, 163, 90, 0.12), 0 2px 12px rgba(0,0,0,.6);
  transition: transform .25s, box-shadow .25s;
  font-family: 'Poppins', sans-serif;
  letter-spacing: .02em;
}
.rml-marker:hover {
  transform: scale(1.3);
  box-shadow: 0 0 0 6px rgba(196, 163, 90, 0.2), 0 4px 20px rgba(0,0,0,.7);
}
.rml-marker-last {
  background: rgba(107, 29, 42, 0.95);
  border-color: rgba(196, 163, 90, 0.9);
  color: #E8C97A;
  width: 26px;
  height: 26px;
  font-size: .52rem;
  box-shadow: 0 0 0 5px rgba(107, 29, 42, 0.2), 0 2px 16px rgba(107,29,42,.4);
}
/* Modo claro — beige/marrón */
.rml-marker.rml-marker-light {
  background: rgba(242, 234, 220, 0.97);
  color: #7A5E2A;
  border-color: rgba(154, 122, 58, 0.7);
  box-shadow: 0 0 0 4px rgba(154, 122, 58, 0.12), 0 2px 10px rgba(0,0,0,.15);
}
.rml-marker.rml-marker-last.rml-marker-light {
  background: rgba(107, 29, 42, 0.92);
  color: #E8C97A;
  border-color: rgba(154, 122, 58, 0.8);
}

/* Mapbox popup estilo premium */
.mapboxgl-popup-content {
  background: rgba(8, 6, 4, 0.95) !important;
  border: 1px solid rgba(196,163,90,.2) !important;
  border-radius: 0 !important;
  padding: .8rem 1.1rem !important;
  font-family: 'Poppins', sans-serif !important;
  color: #F0EDE8 !important;
  font-size: .75rem !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.6) !important;
  backdrop-filter: blur(12px) !important;
}
.mapboxgl-popup-content strong {
  color: #C4A35A;
  font-weight: 600;
  font-size: .72rem;
  display: block;
  margin-bottom: .2rem;
  letter-spacing: .02em;
}
.mapboxgl-popup-content span {
  font-size: .5rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(196,163,90,.5);
  font-weight: 400;
}
.mapboxgl-popup-tip { display: none !important; }
.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip { display: none !important; }

/* Navigation control estilo oscuro */
.mapboxgl-ctrl-group {
  background: rgba(8,6,4,.9) !important;
  border: 1px solid rgba(196,163,90,.15) !important;
  border-radius: 0 !important;
}
.mapboxgl-ctrl-group button {
  background: transparent !important;
}
.mapboxgl-ctrl-icon { filter: invert(1) brightness(0.6); }

/* Responsive */
@media (max-width: 768px) {
  .ruta-map-sec { height: 60vh; min-height: 320px; }
  .ruta-map-overlay { padding: 1rem; }
  .ruta-map-legend { min-width: 180px; padding: 1rem 1.2rem; }
  .rml-name { font-size: .65rem; }
}

/* ═══════════════════════════════════════════════════════════════
   19. PÁGINA — 4X4 EXPERIENCE
═══════════════════════════════════════════════════════════════ */

.hero-4x4 {
  height: 100vh; height: 100dvh;
  min-height: 700px;
  position: relative;
  overflow: hidden;
  background: #080604;
}
.hero-4x4-img {
  position: absolute; inset: 0; z-index: 0;
}
.hero-4x4-img img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 40%;
  animation: heroZoom 18s ease-in-out infinite alternate;
  will-change: transform;
}
.hero-4x4-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(
    160deg,
    rgba(4,3,2,.92) 0%,
    rgba(4,3,2,.65) 40%,
    rgba(4,3,2,.35) 70%,
    rgba(4,3,2,.55) 100%
  );
}
.hero-4x4-grain {
  position: absolute; inset: 0; z-index: 2; opacity: .04;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  pointer-events: none;
}

/* Dust particles */
.hero-4x4-dust {
  position: absolute; inset: 0; z-index: 3; pointer-events: none; overflow: hidden;
}
.dust-p { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: rgba(196,163,90,.3); animation: dustFloat 6s ease-in-out infinite; }
.dust-p:nth-child(1) { top: 60%; left: 20%; animation-delay: 0s; animation-duration: 5s; }
.dust-p:nth-child(2) { top: 70%; left: 50%; animation-delay: 1.5s; animation-duration: 7s; width: 2px; height: 2px; }
.dust-p:nth-child(3) { top: 50%; left: 70%; animation-delay: 3s; animation-duration: 8s; }
.dust-p:nth-child(4) { top: 80%; left: 35%; animation-delay: 2s; animation-duration: 6s; width: 4px; height: 4px; }

/* Content */
.hero-4x4-content {
  position: relative; z-index: 4;
  display: flex; flex-direction: column;
  justify-content: flex-end;
  padding: 9rem 4.5rem 5rem 6rem;
  height: 100%;
  max-width: 720px;
}

.hero-4x4-eyebrow {
  font-size: .52rem; letter-spacing: .44em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-bottom: 1.8rem;
  display: flex; align-items: center; gap: .7rem;
  animation: fadeUp .7s var(--ease) .4s both;
}
.hero-4x4-eyebrow::before { content: ''; width: 24px; height: 1px; background: var(--gold); opacity: .6; }

.hero-4x4-h1 {
  font-size: clamp(2.6rem, 4.2vw, 5.5rem);
  font-weight: 900; line-height: .92; letter-spacing: -.05em;
  color: #F0EDE8; margin-bottom: 1rem;
}
.hero-4x4-h1 .line { display: block; overflow: hidden; padding-bottom: .18em; }
.hero-4x4-h1 .line span { display: block; animation: fadeUp .9s var(--ease) both; }
.hero-4x4-h1 .line:nth-child(1) span { animation-delay: .5s; }
.hero-4x4-h1 .line:nth-child(2) span { animation-delay: .65s; }
.hero-4x4-h1 em { font-style: italic; color: var(--gold); font-weight: 200; }

.hero-4x4-sub-line {
  font-size: 1.1rem; font-weight: 300; font-style: italic;
  color: rgba(196,163,90,.7); letter-spacing: .02em;
  margin-bottom: 2rem;
  animation: fadeUp .7s var(--ease) .85s both;
}

.hero-4x4-rule { width: 44px; height: 1px; background: var(--gold); opacity: .5; margin-bottom: 1.6rem; animation: fadeUp .7s var(--ease) .95s both; }

.hero-4x4-sub {
  font-size: .92rem; color: rgba(240,237,232,.5);
  max-width: 420px; line-height: 1.85; margin-bottom: 2.8rem;
  animation: fadeUp .7s var(--ease) 1s both;
}

.hero-4x4-btns { display: flex; gap: 1rem; flex-wrap: wrap; animation: fadeUp .7s var(--ease) 1.15s both; }

/* btn-g visible sobre hero oscuro */


/* cta btn-g visible sobre fondo oscuro */


/* Stats column */
.hero-4x4-stats {
  position: absolute; bottom: 3rem; right: 4.5rem; z-index: 4;
  display: flex; gap: 3rem; align-items: flex-end;
  animation: fadeUp .7s var(--ease) 1.3s both;
}
.hero-4x4-stat { display: flex; flex-direction: column; align-items: center; gap: .2rem; }
.hero-4x4-stat-n { font-size: clamp(1.6rem, 2vw, 2.2rem); font-weight: 800; color: var(--gold); line-height: 1; letter-spacing: -.03em; }
.hero-4x4-stat-l { font-size: .34rem; letter-spacing: .28em; text-transform: uppercase; color: rgba(240,237,232,.5); text-align: center; }

/* Scroll indicator */

/* ─────────────────────────────────────
   CONCEPTO — SPLIT SCREEN
───────────────────────────────────── */
.concepto-sec {
  display: grid; grid-template-columns: 1fr 1fr;
  min-height: 80vh; background: var(--bg);
  border-top: 1px solid var(--line);
}
.concepto-img {
  position: relative; overflow: hidden;
}
.concepto-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.concepto-img:hover img { transform: scale(1.04); }
.concepto-text {
  display: flex; flex-direction: column; justify-content: center;
  padding: 5rem 4.5rem; border-left: 1px solid var(--line);
}
.concepto-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem); font-weight: 800;
  line-height: 1.05; letter-spacing: -.04em;
  color: var(--ink); margin-bottom: 2rem;
}
html[data-theme="dark"] .concepto-h { color: var(--text); }
.concepto-h em { font-style: italic; color: var(--wine); font-weight: 300; }
.concepto-body p { font-size: .9rem; color: var(--text-soft); line-height: 1.9; margin-bottom: 1.2rem; }
.concepto-body strong { color: var(--ink); font-weight: 600; }
html[data-theme="dark"] .concepto-body strong { color: var(--text); }
.concepto-quote {
  border-left: 3px solid var(--gold); padding: 1.2rem 1.8rem;
  margin-top: 2rem; background: rgba(196,163,90,.04);
}
.concepto-quote p { font-size: 1rem; font-style: italic; color: var(--text-soft); line-height: 1.7; font-weight: 300; margin: 0 0 .5rem; }
.concepto-quote cite { font-size: .42rem; letter-spacing: .28em; text-transform: uppercase; color: var(--gold); font-weight: 500; font-style: normal; }

/* ─────────────────────────────────────
   QUÉ INCLUYE — CARDS MODERNAS
───────────────────────────────────── */
.incluye-sec {
  background: var(--ink); padding: 6rem 4.5rem; position: relative; overflow: hidden;
}
html[data-theme="dark"] .incluye-sec { background: #08060A; }
.incluye-sec::after {
  content: ''; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity: .028; pointer-events: none; z-index: 0;
}
.incluye-inner { max-width: 1280px; margin: 0 auto; position: relative; z-index: 1; }
.incluye-hdr { text-align: center; margin-bottom: 4rem; }
.incluye-h { font-size: clamp(2.2rem, 3.5vw, 4rem); font-weight: 800; line-height: 1.05; letter-spacing: -.04em; color: #F0EDE8; margin-top: .8rem; }
.incluye-h em { font-style: italic; color: var(--gold); font-weight: 300; }
.incluye-sub { font-size: .88rem; color: rgba(240,237,232,.45); max-width: 520px; margin: 1.2rem auto 0; line-height: 1.8; }
.incluye-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid rgba(196,163,90,.12); }
.inc-card {
  padding: 2.8rem 2.4rem; border-right: 1px solid rgba(196,163,90,.1);
  position: relative; overflow: hidden; transition: background .3s;
}
.inc-card:nth-child(3), .inc-card:nth-child(6) { border-right: none; }
.inc-card:nth-child(4), .inc-card:nth-child(5), .inc-card:nth-child(6) { border-top: 1px solid rgba(196,163,90,.1); }
@media(hover:hover) { .inc-card:hover { background: rgba(196,163,90,.04); } }
.inc-card::before { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: linear-gradient(to right, var(--wine), var(--gold), transparent); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease); }
@media(hover:hover) { .inc-card:hover::before { transform: scaleX(1); } }
.inc-icon { font-size: 1.8rem; margin-bottom: 1.4rem; display: block; }
.inc-title { font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; color: var(--gold); margin-bottom: .7rem; }
.inc-p { font-size: .82rem; color: rgba(240,237,232,.5); line-height: 1.8; }

/* ─────────────────────────────────────
   RECORRIDO — TIMELINE VISUAL
───────────────────────────────────── */
.recorrido-sec {
  background: var(--bg);
  padding: 6rem 0 0;
  border-top: 1px solid var(--line);
}
.recorrido-inner { max-width: 1280px; margin: 0 auto; padding: 0 4.5rem; }
.recorrido-hdr { margin-bottom: 4rem; }
.recorrido-h { font-size: clamp(2.8rem, 4.5vw, 5.5rem); font-weight: 800; line-height: 1.05; letter-spacing: -.04em; color: var(--ink); margin-top: .6rem; }
html[data-theme="dark"] .recorrido-h { color: var(--text); }
.recorrido-h em { font-style: italic; color: var(--wine); font-weight: 300; }

/* Grid 2x2 premium */
.recorrido-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

.rec-card {
  position: relative;
  overflow: hidden;
  height: 520px;
  cursor: default;
}
.rec-card img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--ease), filter 1.4s var(--ease);
  filter: brightness(.55) saturate(.85);
}
@media(hover:hover) {
  .rec-card:hover img { transform: scale(1.05); filter: brightness(.65) saturate(.9); }
}
.rec-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(4,3,2,.92) 0%, rgba(4,3,2,.5) 50%, rgba(4,3,2,.15) 100%);
  z-index: 1;
}
.rec-card-body {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  z-index: 2;
  padding: 2.2rem 2.5rem;
  display: flex;
  flex-direction: column;
}
.rec-card-num {
  font-size: .38rem;
  letter-spacing: .4em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 700;
  margin-bottom: .8rem;
  opacity: .8;
}
.rec-card-h {
  font-size: clamp(1.2rem, 1.6vw, 1.8rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.03em;
  color: #F0EDE8;
  margin-bottom: .6rem;
}
.rec-card-p {
  font-size: .8rem;
  color: rgba(240,237,232,.55);
  line-height: 1.7;
  margin-bottom: .9rem;
}
.rec-card-tag {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .34rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gold);
  border: 1px solid rgba(196,163,90,.25);
  padding: .35rem .75rem;
  align-self: flex-start;
}

/* ─────────────────────────────────────
   GALERÍA — GRID ASIMÉTRICO
───────────────────────────────────── */
.galeria-sec {
  background: var(--bg-alt); padding: 5rem 4.5rem;
  border-top: 1px solid var(--line);
}
.galeria-inner { max-width: 1280px; margin: 0 auto; }
.galeria-hdr { text-align: center; margin-bottom: 3.5rem; }
.galeria-h { font-size: clamp(2rem, 3vw, 3.5rem); font-weight: 800; line-height: 1.05; letter-spacing: -.04em; color: var(--ink); margin-top: .6rem; }
html[data-theme="dark"] .galeria-h { color: var(--text); }
.galeria-h em { font-style: italic; color: var(--wine); font-weight: 300; }
.galeria-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 280px 280px;
  gap: 4px;
}
.gal-item { overflow: hidden; position: relative; }
.gal-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), filter 1s; filter: brightness(.85) saturate(.9); }
.gal-item:hover img { transform: scale(1.06); filter: brightness(1) saturate(1); }
.gal-item.gal-tall { grid-row: span 2; }

/* ─────────────────────────────────────
   DIFERENCIAL
───────────────────────────────────── */
.dif-sec {
  background: var(--wine); padding: 6rem 4.5rem;
  position: relative; overflow: hidden;
}
.dif-inner { max-width: 900px; margin: 0 auto; text-align: center; }
.dif-kicker { font-size: .5rem; letter-spacing: .46em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 1.4rem; }
.dif-h { font-size: clamp(2.4rem, 4.5vw, 5rem); font-weight: 800; line-height: 1.04; letter-spacing: -.03em; color: #fff; margin-bottom: 1.4rem; }
.dif-h em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.dif-p { font-size: .92rem; color: rgba(255,255,255,.55); line-height: 1.85; max-width: 600px; margin: 0 auto 2.5rem; }
.dif-stats { display: flex; justify-content: center; gap: 4rem; flex-wrap: wrap; }
.dif-stat { display: flex; flex-direction: column; align-items: center; gap: .3rem; }
.dif-stat-n { font-size: 2.4rem; font-weight: 800; color: var(--gold); line-height: 1; }
.dif-stat-l { font-size: .38rem; letter-spacing: .26em; text-transform: uppercase; color: rgba(255,255,255,.45); }

/* ─────────────────────────────────────
   CTA FINAL
───────────────────────────────────── */
.cta-4x4 {
  min-height: 80vh; position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 5rem 3rem; overflow: hidden;
}
.cta-4x4-img { position: absolute; inset: 0; z-index: 0; }
.cta-4x4-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; filter: brightness(.3) saturate(.6); }
.cta-4x4-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(160deg, rgba(4,6,10,.65) 0%, rgba(107,29,42,.15) 60%, rgba(4,6,10,.8) 100%); }
.cta-4x4-content { position: relative; z-index: 2; max-width: 680px; }
.cta-4x4-kicker { font-size: .5rem; letter-spacing: .46em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 1.6rem; }
.cta-4x4-h { font-size: clamp(2.8rem, 5.5vw, 6rem); font-weight: 800; line-height: 1.02; letter-spacing: -.03em; color: #fff; margin-bottom: 1.4rem; }
.cta-4x4-h em { font-style: italic; color: var(--gold-lt); }
.cta-4x4-p { font-size: .9rem; color: rgba(255,255,255,.5); max-width: 480px; margin: 0 auto 3rem; line-height: 1.85; }
.cta-4x4-btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.cta-4x4-coords { margin-top: 2.5rem; font-size: .42rem; letter-spacing: .32em; text-transform: uppercase; color: rgba(255,255,255,.2); /* ─────────────────────────────────────
   OTROS TOURS
───────────────────────────────────── */

 }

/* ─────────────────────────────────────
   FOOTER
───────────────────────────────────── */
.foot-grid { max-width:1280px;margin:0 auto;display:grid;grid-template-columns:2.5fr 1fr 1fr 1fr;gap:4rem;margin-bottom:4.5rem;padding-bottom:4.5rem; }
.foot-logo { font-size:.66rem;letter-spacing:.32em;text-transform:uppercase;color:#fff;font-weight:500;margin-bottom:.5rem; }
.foot-tag  { font-size:1.3rem;font-weight:600;font-style:italic;color:var(--gold);margin-bottom:1.2rem;letter-spacing:-.01em; }
.foot-desc { font-size:.73rem;line-height:1.8;color:rgba(255,255,255,.3);max-width:300px;margin-bottom:1.5rem; }
.foot-ca a { display:block;font-size:.7rem;color:rgba(255,255,255,.35);margin-bottom:.4rem;transition:color .25s; }
.foot-ca a:hover { color:var(--gold); }
.foot-col-h { font-size:.48rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.28);font-weight:500;margin-bottom:1.2rem; }
.foot-links { list-style:none; }
.foot-links li { margin-bottom:.55rem; }
.foot-links a { font-size:.7rem;color:rgba(255,255,255,.35);transition:color .25s; }
.foot-links a:hover { color:#fff; }
.foot-bot { max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.07);padding-top:2rem; }
.foot-copy { font-size:.56rem;color:rgba(255,255,255,.18);letter-spacing:.1em; }
.foot-legal { display:flex;gap:2rem; }
.foot-legal a { font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.18);transition:color .25s; }
.foot-legal a:hover { color:rgba(255,255,255,.45); }

/* Footer mobile */
@media (max-width: 768px) {
  footer { padding: 0; }
  .foot-grid { display: none; }
    .foot-mobile-logo { font-size: .56rem; letter-spacing: .32em; text-transform: uppercase; color: rgba(255,255,255,.9); font-weight: 500; margin-bottom: .5rem; }
  .foot-mobile-tag { font-size: 1.3rem; font-weight: 700; font-style: italic; color: var(--gold); letter-spacing: -.01em; margin-bottom: 1.6rem; line-height: 1.2; }
  .foot-mobile-contact { display: flex; flex-direction: column; gap: .5rem; margin-bottom: 1.8rem; }
  .foot-mobile-contact a { font-size: .8rem; color: rgba(255,255,255,.55); transition: color .2s; }
  .foot-mobile-links { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; margin-bottom: 2rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.08); }
  .foot-mobile-links a { font-size: .68rem; color: rgba(255,255,255,.38); letter-spacing: .08em; }
  .foot-mobile-bottom { padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.06); display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
  .foot-mobile-copy { font-size: .62rem; color: rgba(255,255,255,.22); line-height: 1.5; }
  .foot-mobile-legal { display: flex; gap: 1rem; }
  .foot-mobile-legal a { font-size: .62rem; color: rgba(255,255,255,.22); }
  .foot-bot { display: none; }
  @media (min-width: 769px) { .foot-mobile { display: none; } }

/* Footer responsive — idéntico a lujandecuyo */
@media (min-width: 1920px) { footer { padding: 7rem 5rem 3.5rem; } .foot-grid { max-width: 1600px; gap: 5rem; } }
@media (min-width: 2560px) { footer { padding: 9rem 8rem 4rem; } .foot-grid { max-width: 2000px; } }
@media (min-width: 1025px) and (max-width: 1400px) { footer { padding: 5rem 3rem 3rem; } .foot-grid { gap: 3rem; } }
@media (min-width: 768px) and (max-width: 1024px) { .foot-mobile { display: none; } .foot-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2.5rem; } .foot-bot { display: flex; } footer { padding: 5rem 2.5rem 2.5rem; } }
@media (max-width: 960px) { footer { padding: 4rem 2rem 2rem; } .foot-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; } .foot-bot { flex-direction: column; align-items: flex-start; gap: .8rem; } }
/* FLOATING */

/* ─────────────────────────────────────
   DARK MODE OVERRIDES
───────────────────────────────────── */
html[data-theme="dark"] .concepto-body p { color: var(--text-soft); }

/* ─────────────────────────────────────
   RESPONSIVE
───────────────────────────────────── */

@media (max-width: 960px) {
  .nav-links { display: none; }
  .nav-toggle { display: flex; }

  .hero-4x4-content { padding: 0 2rem; padding-top: max(5rem,calc(env(safe-area-inset-top)+4rem)); padding-bottom: max(3rem,calc(env(safe-area-inset-bottom)+2rem)); max-width: 100%; justify-content: center; text-align: center; }
  .hero-4x4-h1 { font-size: clamp(2.6rem, 9vw, 4rem); }
  .hero-4x4-eyebrow { justify-content: center; }
  .hero-4x4-eyebrow::before { display: none; }
  .hero-4x4-rule { margin: 0 auto 1.6rem; }
  .hero-4x4-sub { margin: 0 auto 2rem; }
  .hero-4x4-sub-line { font-size: .9rem; text-align: center; }
  .hero-4x4-btns { flex-direction: column; width: 100%; }

  .hero-4x4-stats { position: static; flex-direction: row; flex-wrap: wrap; gap: 1.5rem; margin-top: 2rem; justify-content: center; animation: fadeUp .7s var(--ease) 1.3s both; }

  .concepto-sec { grid-template-columns: 1fr; }
  .concepto-img { height: 50vw; min-height: 250px; }
  .concepto-text { padding: 3rem 2rem; border-left: none; border-top: 1px solid var(--line); }

  .incluye-sec { padding: 4rem 2rem; }
  .incluye-grid { grid-template-columns: 1fr 1fr; }
  .inc-card:nth-child(3) { border-right: 1px solid rgba(196,163,90,.1); }
  .inc-card:nth-child(2), .inc-card:nth-child(4), .inc-card:nth-child(6) { border-right: none; }
  .inc-card:nth-child(3), .inc-card:nth-child(4) { border-top: 1px solid rgba(196,163,90,.1); }
  .inc-card:nth-child(5), .inc-card:nth-child(6) { border-top: 1px solid rgba(196,163,90,.1); }

  .recorrido-sec { padding: 4rem 2rem; }
  .recorrido-sec { padding-top: 4rem; }
  .recorrido-inner { padding: 0 2rem; }
  .recorrido-grid { margin: 0 -2rem; } /* compensate inner padding for full width */
  .recorrido-grid { grid-template-columns: 1fr; }
  .rec-card {
    height: auto;
    display: flex;
    flex-direction: column;
  }
  .rec-card img {
    position: relative;
    inset: auto;
    height: 260px;
    width: 100%;
    object-fit: cover;
    flex-shrink: 0;
  }
  .rec-card-overlay { display: none; }
  .rec-card-body {
    position: relative;
    background: #0A0806;
    padding: 1.6rem 1.6rem 2rem;
  }
  .rec-card-h { color: #F0EDE8; }
  .rec-card-p { color: rgba(240,237,232,.6); }

  .galeria-sec { padding: 4rem 2rem; }
  .galeria-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .gal-item.gal-tall { grid-row: span 1; }
  .gal-item { height: 220px; }

  .dif-sec { padding: 4rem 2rem; }
  .dif-stats { gap: 2rem; }

  
  
  .otro-card:nth-child(2) { border-right: none; }
  .otro-card:nth-child(3), .otro-card:nth-child(4) { border-top: 1px solid var(--line); }

  /* WA float — misma posición que lujandecuyo */
  .wa-btn { bottom: max(1.2rem, calc(env(safe-area-inset-bottom) + .8rem)); right: 1.2rem; width: 50px; height: 50px; }
}
@media (max-width: 640px) {
  #cur-dot, #cur-ring { display: none; }
  .nav-logo { font-size: .54rem; letter-spacing: .2em; }

  .hero-4x4-content { padding: 60px 1.4rem 2rem; }
  .hero-4x4-h1 { font-size: clamp(2.6rem, 9vw, 4rem); }
  .hero-4x4-sub { font-size: .78rem; max-width: 100%; }
  .hero-4x4-btns { flex-direction: column; gap: .7rem; width: 100%; }

  .hero-4x4-stats { gap: 1rem; }
  .hero-4x4-stat-n { font-size: 1.2rem; }

  .concepto-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }

  .incluye-grid { grid-template-columns: 1fr; }
  .inc-card { border-right: none; }
  .inc-card + .inc-card { border-top: 1px solid rgba(196,163,90,.1); }

  .galeria-grid { grid-template-columns: 1fr; }
  .gal-item { height: 200px; }

  
  
  .otro-card + 

  .cta-4x4-h { font-size: clamp(2rem, 8vw, 3.5rem); }
  .cta-4x4-btns { flex-direction: column; align-items: center; gap: .7rem; width: 100%; }

}

}

/* iOS — sin bloques adicionales */

/* wa-btn — sin popup AI en esta página */
.wa-btn { bottom: 1.5rem; }

/* ═══════════════════════════════════════════════════════════════
   20. PÁGINA — BODEGAS
═══════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════
   SISTEMA TIPOGRÁFICO — Discovery Wine Mendoza
   ─────────────────────────────────────────────
   Hero H1:      clamp(2.6rem, 4.2vw, 5.5rem)  → mobile: clamp(2.6rem, 9vw, 4rem)
   Section H2:   clamp(2.8rem, 4.5vw, 5.5rem)  → mobile: clamp(1.8rem, 7vw, 2.8rem)
   Card H3:      clamp(1.2rem, 1.6vw, 1.8rem)
   Eyebrow:      .52rem / letter-spacing: .44em
   Hero sub:     .92rem
   Section sub:  .9rem
   Kicker:       .55rem / letter-spacing: .28em
   Stats número: clamp(1.6rem, 2vw, 2.2rem)
   Stats label:  .37rem / letter-spacing: .2em
═══════════════════════════════════════════════════════════════ */

/* ── HERO BODEGAS — fullscreen igual que tours ── */
.hero-bod {
  height: 100vh; height: 100dvh;
  min-height: 700px;
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  background: #080604;
}
.hero-bod-img { position: absolute; inset: 0; z-index: 0; }
.hero-bod-img img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 30%;
  animation: heroZoom 18s ease-in-out infinite alternate;
  will-change: transform;
}
.hero-bod-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(105deg, rgba(4,3,2,.88) 0%, rgba(4,3,2,.6) 45%, rgba(4,3,2,.3) 100%);
}
.hero-bod-grain {
  position: absolute; inset: 0; z-index: 2; opacity: .03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  pointer-events: none;
}
.hero-bod-content {
  position: relative; z-index: 4;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 7rem 4.5rem 3.5rem 6rem;
  grid-column: 1;
}
.hero-bod-eyebrow {
  font-size: .52rem;
  letter-spacing: .46em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
  margin-bottom: 1.8rem;
  display: flex;
  align-items: center;
  gap: .8rem;
  animation: fadeUp .8s var(--ease) .4s both;
}
.hero-bod-eyebrow::before {
  content: '';
  width: 32px; height: 1px;
  background: var(--gold);
  opacity: .6; flex-shrink: 0;
}
.hero-bod-h1 {
  font-size: clamp(2.6rem, 4.2vw, 5.5rem);
  font-weight: 800;
  line-height: 1.0;
  letter-spacing: -.04em;
  color: #fff;
  margin-bottom: 1.2rem;
}
.hero-bod-h1 .line { display: block; }
.hero-bod-h1 .line span {
  display: block;
  animation: fadeUp .9s var(--ease) both;
}
.hero-bod-h1 .line:nth-child(1) span { animation-delay: .5s; }
.hero-bod-h1 .line:nth-child(2) span { animation-delay: .65s; }
.hero-bod-h1 .line:nth-child(3) span { animation-delay: .8s; }
.hero-bod-h1 em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.hero-bod-rule {
  width: 52px; height: 1px;
  background: linear-gradient(to right, var(--gold), transparent);
  margin-bottom: 1.6rem;
  animation: fadeUp .8s var(--ease) .9s both;
}
.hero-bod-sub {
  font-size: .92rem;
  color: rgba(240,237,232,.62);
  max-width: 480px;
  line-height: 1.85;
  margin-bottom: 1.8rem;
  animation: fadeUp .8s var(--ease) 1.0s both;
}
.hero-bod-btns {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  animation: fadeUp .8s var(--ease) 1.15s both;
}


.hero-bod-stats {
  display: flex;
  gap: 2.4rem;
  margin-top: 1.4rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(196,163,90,.15);
  animation: fadeUp .8s var(--ease) 1.3s both;
}
.hero-bod-stat {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.hero-bod-stat-n {
  font-size: clamp(1.6rem, 2vw, 2.2rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -.03em;
  line-height: 1;
}
.hero-bod-stat-l {
  font-size: .36rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(240,237,232,.4);
  font-weight: 500;
}

/* ═══════════════════════════════════
   MARQUEE
═══════════════════════════════════ */

html[data-theme="dark"] 

/* ═══════════════════════════════════
   INTRO BAND — 2 columnas editorial
═══════════════════════════════════ */
.intro-band {
  background: var(--bg);
}
.intro-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding-top:2rem;}
.intro-num-item{padding-right:1.5rem;}
.intro-num-item:last-child{border-right:none;padding-right:0;padding-left:1.5rem;}
.intro-num-item:nth-child(2){padding:0 1.5rem;}
.intro-num-n{font-size:clamp(1.6rem,2.5vw,2.5rem);font-weight:800;letter-spacing:-.05em;color:var(--wine);line-height:1;margin-bottom:.2rem;}
html[data-theme="dark"] .intro-num-n{color:var(--gold);}
.intro-num-l{font-size:.38rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);font-weight:500;}

/* ═══════════════════════════════════
   REGION SELECTOR — Tabs premium
═══════════════════════════════════ */
.region-sec{background:var(--bg);}

.region-header{
  max-width:1280px;margin:0 auto;
  padding:calc(var(--nav-h) + 1.8rem) 4.5rem 1.2rem;
  display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:end;
}
.region-h{
  font-size:clamp(3rem, 7vw, 8rem);
  font-weight:800;line-height:.92;letter-spacing:-.06em;
  color:var(--ink);margin-top:.8rem;
}
html[data-theme="dark"] .region-h{color:var(--text);}
.region-h em{font-style:italic;color:var(--wine);font-weight:300;}
html[data-theme="dark"] .region-h em{color:var(--gold);}
.region-desc-txt{font-size:.9rem;color:var(--text-soft);line-height:1.85;}

/* Tabs con diseño tipo label arquitectónico */
.region-tabs {
  max-width: 1280px; margin: 0 auto;
  padding: 0 4.5rem;
  display: flex; gap: 0;
  justify-content: center;
  margin-bottom: .5rem;
}
.region-tab {
  padding: 1rem 3.5rem;
  font-size: .55rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 500;
  color: var(--text-muted); background: none; border: none;
  position: relative; transition: color .3s; cursor: inherit; white-space: nowrap;
  display: flex; align-items: center; gap: .8rem;
}
.region-tab-num {
  font-size: .38rem; letter-spacing: .06em;
  color: var(--text-muted);
  opacity: .5; transition: opacity .3s, color .3s;
}
.region-tab::after {
  content: ''; position: absolute;
  bottom: -1px; left: 0; right: 0; height: 2px;
  background: var(--wine); transform: scaleX(0);
  transition: transform .4s var(--ease);
}
.region-tab.active { color: var(--wine); }
html[data-theme="dark"] .region-tab.active { color: var(--gold); }
html[data-theme="dark"] .region-tab.active::after { background: var(--gold); }
.region-tab.active::after { transform: scaleX(1); }
.region-tab.active .region-tab-num { opacity: 1; color: var(--wine); }
html[data-theme="dark"] .region-tab.active .region-tab-num { color: var(--gold); }
.region-tab:hover { color: var(--text); }

/* ═══════════════════════════════════
   BODEGAS GRID — Cards premium
═══════════════════════════════════ */
.bodegas-panel{display:none;}
.bodegas-panel.active{display:block;}

.bodegas-container {
  max-width: 1280px; margin: 0 auto;
  padding: 1.5rem 4.5rem 2rem;
}

.bodegas-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  background: transparent;
  border: none;
}

/* Card */
.b-card {
  background: var(--bg-card);
  display: flex; flex-direction: column;
  position: relative; overflow: hidden;
  transition: background .3s;
}
.b-card:hover { background: var(--bg); }
html[data-theme="dark"] .b-card:hover { background: #100E0B; }

/* Imagen */
.b-img{
  position:relative;overflow:hidden;
  aspect-ratio:16/10;flex-shrink:0;
}
.b-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.3s var(--ease),filter .7s;
  filter:brightness(.8) saturate(.9);
  display:block;
}
.b-card:hover .b-img img{transform:scale(1.07);filter:brightness(.65) saturate(1.1);}

/* Overlay hover */
.b-img-ovl{
  position:absolute;inset:0;
  background:linear-gradient(to bottom,transparent 30%,rgba(8,6,4,.75) 100%);
  opacity:0;transition:opacity .5s;
}
.b-card:hover .b-img-ovl{opacity:1;}

/* Badge tipo label minimalista */
.b-badge{
  position:absolute;top:1rem;left:1rem;
  font-size:.32rem;letter-spacing:.22em;text-transform:uppercase;
  background:rgba(10,8,6,.72);backdrop-filter:blur(6px);
  color:var(--gold);padding:.3rem .7rem;font-weight:600;z-index:2;
  border:1px solid rgba(196,163,90,.2);
}

/* CTA que aparece al hover */
.b-hover-label{
  position:absolute;bottom:1.2rem;left:1.4rem;z-index:3;
  font-size:.36rem;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(240,237,232,.8);font-weight:500;
  opacity:0;transform:translateY(5px);
  transition:opacity .35s,transform .35s var(--ease);
}
.b-card:hover .b-hover-label{opacity:1;transform:none;}

/* Cuerpo de la card */
.b-body{
  padding:1.6rem 1.8rem 2rem;
  flex:1;display:flex;flex-direction:column;
}
.b-region{
  font-size:.36rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--wine);font-weight:600;margin-bottom:.45rem;
}
html[data-theme="dark"] .b-region{color:var(--gold);}
.b-name{
  font-size:clamp(.95rem,1.3vw,1.15rem);
  font-weight:700;letter-spacing:-.02em;
  color:var(--ink);line-height:1.18;margin-bottom:.45rem;
}
html[data-theme="dark"] .b-name{color:var(--text);}
.b-tagline{
  font-size:.76rem;color:var(--text-muted);
  line-height:1.65;flex:1;margin-bottom:1.2rem;
}
.b-meta {
  display: flex; gap: 0;
  border-top: none; padding-top: 1rem;
}
.b-meta-i {
  flex: 1; padding-right: 1rem;
}
.b-meta-i:last-child { padding-right: 0; padding-left: 1rem; }
.b-meta-i:nth-child(2) { padding: 0 1rem; }
.b-meta-lbl { font-size: .3rem; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); font-weight: 500; margin-bottom: .15rem; }
.b-meta-val { font-size: .7rem; color: var(--text-soft); font-weight: 500; }

/* ═══════════════════════════════════
   MODAL BODEGA
═══════════════════════════════════ */
#modalOverlay {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease, visibility .35s;
  background: rgba(6,4,3,.6);
  overscroll-behavior: none;
  touch-action: none;
}
#modalOverlay.open { opacity: 1; visibility: visible; }

/* Prevent page scroll when modal open — no position:fixed needed, no jump */
html:has(#modalOverlay.open) { overflow: hidden; overscroll-behavior: none; }

.bod-popup-box {
  position: relative;
  z-index: 1;
  background: var(--bg-card);
  width: min(880px, 95vw);
  max-height: min(88vh, 760px);
  display: grid;
  grid-template-rows: auto 1fr auto;
  border: 1px solid var(--line);
  box-shadow: 0 40px 120px rgba(0,0,0,.25);
  transform: translateY(20px);
  transition: transform .45s var(--ease);
  overflow: hidden;
}
html[data-theme="dark"] .bod-popup-box {
  background: #0E0C0A;
  border-color: rgba(196,163,90,.18);
  box-shadow: 0 40px 120px rgba(0,0,0,.7);
}
#modalOverlay.open .bod-popup-box { transform: translateY(0); }

/* Gold line top */
.bod-popup-box-top {
  position: absolute;
  top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(to right, transparent 0%, var(--gold) 30%, rgba(196,163,90,.6) 70%, transparent 100%);
  z-index: 2;
}

/* ── HEAD ── */
.bod-popup-head {
  padding: 2rem 2.5rem 1.5rem;
  position: relative;
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
}
.bod-popup-kicker {
  font-size: .44rem;
  letter-spacing: .36em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.bod-popup-kicker::before {
  content: '';
  width: 18px; height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}
.bod-popup-title {
  font-size: clamp(1.6rem, 2.5vw, 2.2rem);
  font-weight: 800;
  color: var(--ink);
  line-height: 1.05;
  letter-spacing: -.03em;
  margin-bottom: .6rem;
}
html[data-theme="dark"] .bod-popup-title { color: var(--text); }
.bod-popup-sub {
  font-size: .84rem;
  color: var(--text-soft);
  line-height: 1.7;
  max-width: 600px;
  margin: 0;
}
.bod-popup-close {
  position: absolute;
  top: 1.5rem; right: 1.5rem;
  width: 32px; height: 32px;
  border: 1px solid var(--line);
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem; color: var(--text-muted);
  background: transparent;
  transition: border-color .2s, color .2s;
  cursor: pointer; z-index: 10;
}
.bod-popup-close:hover { border-color: var(--wine); color: var(--wine); }

/* ── BODY — 2 columnas desktop ── */
.bod-popup-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  min-height: 0;
}

/* Columna izquierda: highlights */
#mHl {
  padding: 1.5rem 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-content: start;
  gap: 0;
  border-right: 1px solid var(--line);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.bod-popup-hl {
  padding: .9rem 0;
  border-bottom: 1px solid var(--line);
}
.bod-popup-hl:nth-child(even) { padding-left: 1.2rem; border-left: 1px solid var(--line); }
.bod-popup-hl:nth-child(odd) { padding-right: 1.2rem; }
.bod-popup-hl:nth-last-child(-n+2) { border-bottom: none; }
.bod-popup-hl-label {
  font-size: .36rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--text-muted);
  font-weight: 500; margin-bottom: .25rem;
}
.bod-popup-hl-val {
  font-size: .82rem; font-weight: 700;
  color: var(--ink); letter-spacing: -.01em;
}
html[data-theme="dark"] .bod-popup-hl-val { color: var(--text); }

/* Columna derecha: incluye */
.bod-popup-includes {
  padding: 1rem 1.8rem;
  display: flex; flex-direction: column;
  overflow-y: auto;
  overscroll-behavior: contain;
  min-height: 0;
}
.bod-popup-inc-title {
  font-size: .4rem; letter-spacing: .24em;
  text-transform: uppercase; color: var(--gold);
  font-weight: 600; margin-bottom: .8rem; opacity: .8;
}
.bod-popup-item {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: .8rem; align-items: start;
  padding: .7rem 0;
  border-bottom: 1px solid var(--line);
}
.bod-popup-item:last-child { border-bottom: none; }
.bod-popup-item-icon {
  width: 28px; height: 28px;
  border: 1px solid rgba(196,163,90,.25);
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem; flex-shrink: 0;
}
.bod-popup-item-body { display: flex; flex-direction: column; gap: .1rem; }
.bod-popup-item-name {
  font-size: .55rem; letter-spacing: .08em;
  text-transform: uppercase; color: var(--wine);
  font-weight: 700;
}
html[data-theme="dark"] .bod-popup-item-name { color: var(--gold); }
.bod-popup-item-desc {
  font-size: .8rem; color: var(--text-soft); line-height: 1.55;
}

/* ── FOOTER ── */
.bod-popup-foot {
  padding: 1.2rem 2.5rem 1.5rem;
  display: flex; flex-direction: column; gap: .6rem;
  border-top: 1px solid var(--line);
  flex-shrink: 0;
}
.bod-popup-cta {
  display: flex; align-items: center; justify-content: center;
  background: var(--wine); color: #fff;
  padding: 1rem 2rem;
  font-size: .58rem; letter-spacing: .22em;
  text-transform: uppercase; font-weight: 600;
  transition: background .25s; width: 100%;
}
.bod-popup-cta:hover { background: var(--wine-dk); }
.bod-popup-note {
  font-size: .72rem; color: var(--text-muted); text-align: center;
}
.bod-popup-divider { display: none; } /* no longer needed in 2-col layout */
.bod-popup-items { display: none; } /* replaced by .bod-popup-includes */

/* ── MOBILE — drawer desde abajo ── */
@media (max-width: 768px) {
  #modalOverlay {
    padding: 0;
    align-items: flex-end;
    /* prevent background scroll */
    overscroll-behavior: none;
  }
  .bod-popup-box {
    width: 100%;
    max-height: 88dvh;
    border-radius: 16px 16px 0 0;
    border-left: none; border-right: none; border-bottom: none;
    display: flex; flex-direction: column;
    grid-template-rows: none;
    transform: translateY(100%);
  }
  #modalOverlay.open .bod-popup-box { transform: translateY(0); }
  .bod-popup-head { padding: 1.6rem 1.4rem 1.2rem; }
  .bod-popup-body {
    grid-template-columns: 1fr;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    flex: 1; min-height: 0;
  }
  #mHl {
    border-right: none;
    border-bottom: 1px solid var(--line);
    overflow-y: visible;
    padding: 1rem 1.4rem;
  }
  .bod-popup-includes {
    overflow-y: visible;
    padding: .8rem 1.4rem;
  }
  .bod-popup-foot { padding: 1rem 1.4rem 2rem; }
}

/* ── BOTONES BODEGAS ── */
.btn-wine {
  background: var(--wine); color: #fff; border: 1px solid var(--wine);
  padding: .9rem 2rem; font-size: .52rem; letter-spacing: .24em; font-weight: 500;
  text-transform: uppercase; display: inline-block;
  transition: background .25s, transform .2s; cursor: pointer;
}
.btn-wine:hover { background: var(--wine-dk); transform: translateY(-2px); }
.btn-outline-light {
  background: transparent; color: var(--text-muted);
  border: 1px solid var(--line); padding: .9rem 2rem;
  font-size: .52rem; letter-spacing: .24em; font-weight: 400;
  text-transform: uppercase; display: inline-block;
  transition: border-color .25s, color .25s, transform .2s;
}
html[data-theme="dark"] .btn-outline-light { color: rgba(240,237,232,.6); border-color: rgba(240,237,232,.2); }
.btn-outline-light:hover { border-color: var(--wine); color: var(--wine); transform: translateY(-2px); }

/* ── INTRO BAND ── */
.intro-band-p { font-size: .9rem; color: var(--text-soft); line-height: 1.85; }

/* ── POR QUÉ ESTAS BODEGAS ── */
.porq-sec { background: var(--bg-alt); padding: 3.5rem 4.5rem; }
.porq-inner { max-width: 1280px; margin: 0 auto; }
.porq-hdr { margin-bottom: 3rem; }
.porq-h { font-size: clamp(2.8rem, 4.5vw, 5.5rem); font-weight: 800; line-height: 1.05; letter-spacing: -.04em; color: var(--ink); margin-top: .6rem; }
.porq-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .porq-h { color: var(--text); }
.porq-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-bottom: 3rem; }
.porq-item { padding: 2rem 1.8rem; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: .8rem; }
.porq-item:last-child { border-right: none; }
.porq-num { font-size: .36rem; letter-spacing: .36em; text-transform: uppercase; color: var(--gold); font-weight: 700; opacity: .7; }
.porq-item-h { font-size: .95rem; font-weight: 700; line-height: 1.3; letter-spacing: -.02em; color: var(--ink); }
html[data-theme="dark"] .porq-item-h { color: var(--text); }
.porq-item-p { font-size: .82rem; color: var(--text-soft); line-height: 1.85; flex: 1; }
.porq-quote { border-left: 2px solid var(--gold); padding-left: 2rem; max-width: 680px; }
.porq-bq p { font-size: clamp(1rem, 1.5vw, 1.3rem); font-style: italic; font-weight: 300; color: var(--ink); line-height: 1.7; letter-spacing: -.01em; margin-bottom: .8rem; }
html[data-theme="dark"] .porq-bq p { color: var(--text); }
.porq-bq cite { font-size: .55rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); font-weight: 500; font-style: normal; }

/* ── REVIEWS BODEGAS ── */
.reviews-bod-sec { background: var(--bg); padding: 3.5rem 4.5rem; }
.reviews-bod-inner { max-width: 1280px; margin: 0 auto; }
.reviews-bod-hdr { margin-bottom: 3rem; }
.reviews-bod-h { font-size: clamp(2.8rem, 4.5vw, 5.5rem); font-weight: 800; line-height: 1.05; letter-spacing: -.04em; color: var(--ink); margin-top: .6rem; }
.reviews-bod-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .reviews-bod-h { color: var(--text); }
.reviews-bod-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--line); margin-bottom: 2.5rem; }
.rbod-card { background: var(--bg); padding: 2.2rem 2rem; display: flex; flex-direction: column; gap: 1rem; }
.rbod-stars { color: var(--gold); font-size: 1rem; letter-spacing: .1em; }
.rbod-text { font-size: .84rem; color: var(--text-soft); line-height: 1.85; font-style: italic; flex: 1; }
.rbod-author { display: flex; flex-direction: column; gap: .2rem; }
.rbod-name { font-size: .78rem; font-weight: 700; color: var(--ink); letter-spacing: -.01em; }
html[data-theme="dark"] .rbod-name { color: var(--text); }
.rbod-origin { font-size: .5rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); font-weight: 500; opacity: .7; }
.rbod-logo img { height: 18px; width: auto; opacity: .45; }
.reviews-bod-cta { display: flex; justify-content: flex-start; }
.rbod-link { display: inline-flex; align-items: center; gap: .6rem; font-size: .55rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--gold); text-decoration: none; border-bottom: 1px solid rgba(196,163,90,.3); padding-bottom: .2rem; transition: gap .3s, border-color .3s; }
.rbod-link svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; fill: none; flex-shrink: 0; }
@media(hover:hover) { .rbod-link:hover { gap: 1rem; border-color: var(--gold); } }

/* ── CTA FINAL BODEGAS ── */
.cta-final-sec { background: linear-gradient(168deg, #0A0908 0%, #14100A 25%, #1E1810 50%, #14100A 75%, #0A0908 100%); padding: 5rem 4.5rem; text-align: center; position: relative; overflow: hidden; }


.cta-p { font-size: .9rem; color: rgba(240,237,232,.55); max-width: 520px; margin: 0 auto 2.5rem; line-height: 1.85; }


/* ── Bodegas layout — responsive ── */
@media (max-width: 768px) {
  .hero-bod { grid-template-columns: 1fr; }
  .hero-bod-content { padding: 0 2rem; padding-top: max(5rem,calc(env(safe-area-inset-top)+4rem)); padding-bottom: max(3rem,calc(env(safe-area-inset-bottom)+2rem)); justify-content: center; text-align: center; grid-column: 1; }
  .hero-bod-h1 { font-size: clamp(2.6rem, 9vw, 4rem); }
  .hero-bod-eyebrow { justify-content: center; }
  .hero-bod-eyebrow::before { display: none; }
  .hero-bod-rule { margin: 0 auto 1.6rem; }
  .hero-bod-sub { margin: 0 auto 1.8rem; font-size: .84rem; }
  .hero-bod-btns { flex-direction: column; gap: .8rem; width: 100%; }

  .hero-bod-stats { justify-content: center; flex-wrap: wrap; gap: 1.5rem; margin-top: 2rem; }
  .region-header { grid-template-columns: 1fr; padding: calc(var(--nav-h) + 1.2rem) 1.6rem 1rem; gap: .8rem; }
  .region-tabs { padding: 0 1.6rem; overflow-x: auto; scrollbar-width: none; justify-content: flex-start; }
  .region-tabs::-webkit-scrollbar { display: none; }
  .region-tab { padding: 1.2rem 1.4rem; font-size: .46rem; white-space: nowrap; }
  .bodegas-container { padding: 1.5rem 1.2rem 2rem; }
  .bodegas-grid { grid-template-columns: 1fr; gap: 1rem; }
  .cta-final-sec { padding: 3rem 1.6rem; }

  .porq-sec { padding: 2.5rem 1.4rem; }
  .porq-grid { grid-template-columns: 1fr; }
  .porq-item { border-right: none; border-bottom: 1px solid var(--line); }
  .porq-item:last-child { border-bottom: none; }
  .porq-hdr { margin-bottom: 2rem; }
  .reviews-bod-sec { padding: 2.5rem 1.4rem; }
  .reviews-bod-grid { grid-template-columns: 1fr; gap: 1px; }
  .reviews-bod-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .hero-bod-content { padding: 100px 3rem 3rem; }
  .hero-bod-h1 { font-size: clamp(2.4rem, 4.5vw, 4rem); }
  .bodegas-grid { grid-template-columns: repeat(2, 1fr); }
  .bodegas-container { padding: 2rem 3rem 3rem; }
  .region-header { padding: calc(var(--nav-h) + 1.5rem) 3rem 1.2rem; }
  .region-tabs { padding: 0 3rem; }
  .cta-final-sec { padding: 4rem 3rem; }
  .porq-grid { grid-template-columns: 1fr 1fr; }
  .reviews-bod-grid { grid-template-columns: 1fr; gap: 1px; }
  .porq-sec { padding: 3rem 3rem; }
  .reviews-bod-sec { padding: 3rem 3rem; }
}


/* ═══════════════════════════════════════════════════════════════
   21. PÁGINA — BLENDING EXPERIENCE
   ─────────────────────────────────────────────────────────────
   Hero:       .hero-bl
   Bodega:     .bl-bodega-sec
   Proceso:    .bl-proceso-sec / .bl-paso
   Varietales: .bl-var-sec / .bl-var-card
   Final:      .bl-final-sec / .bl-final-item
   Incluye:    .bl-incluye-sec
   Diferencial:.bl-dif-sec
═══════════════════════════════════════════════════════════════ */

/* wa-btn override */
.hero-bl ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ .wa-btn,
.wa-btn { bottom: 1.5rem; }

/* ── HERO ── */
.hero-bl {
  height: 100vh; height: 100dvh;
  min-height: 700px;
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  background: #080604;
}
.hero-bl-img { position: absolute; inset: 0; z-index: 0; }
.hero-bl-img img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 40%;
  animation: heroZoom 18s ease-in-out infinite alternate;
  will-change: transform;
}
.hero-bl-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(105deg, rgba(4,3,2,.9) 0%, rgba(4,3,2,.65) 45%, rgba(4,3,2,.25) 100%);
}
.hero-bl-grain {
  position: absolute; inset: 0; z-index: 2; opacity: .03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  pointer-events: none;
}
.hero-bl-content {
  position: relative; z-index: 4;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 7rem 4.5rem 3.5rem 6rem;
  grid-column: 1;
}
.hero-bl-eyebrow {
  font-size: .52rem; letter-spacing: .44em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-bottom: 1.8rem;
  display: flex; align-items: center; gap: .8rem;
  animation: fadeUp .8s var(--ease) .4s both;
}
.hero-bl-eyebrow::before {
  content: ''; width: 28px; height: 1px;
  background: var(--gold); opacity: .6; flex-shrink: 0;
}
.hero-bl-h1 {
  font-size: clamp(2.6rem, 4.2vw, 5.5rem);
  font-weight: 800; line-height: .95; letter-spacing: -.04em;
  color: #F0EDE8; margin-bottom: 1.2rem;
}
.hero-bl-h1 .line { display: block; overflow: hidden; padding-bottom: .05em; padding-bottom: .18em; }
.hero-bl-h1 .line span { display: block; animation: hLineUp .9s var(--ease) both; }
.hero-bl-h1 .line:nth-child(1) span { animation-delay: .5s; }
.hero-bl-h1 .line:nth-child(2) span { animation-delay: .65s; }
.hero-bl-h1 .line:nth-child(3) span { animation-delay: .8s; }
.hero-bl-h1 em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.hero-bl-rule {
  width: 52px; height: 1px;
  background: linear-gradient(to right, var(--gold), transparent);
  margin-bottom: 1.4rem;
  animation: fadeUp .8s var(--ease) .9s both;
}
.hero-bl-sub {
  font-size: .92rem; color: rgba(240,237,232,.6);
  max-width: 420px; line-height: 1.85; margin-bottom: 1.4rem;
  animation: fadeUp .8s var(--ease) 1.0s both;
}
.hero-bl-btns {
  display: flex; gap: 1rem; flex-wrap: wrap;
  animation: fadeUp .8s var(--ease) 1.15s both;
}


.hero-bl-stats {
  display: flex; gap: 2rem; margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(196,163,90,.15);
  animation: fadeUp .8s var(--ease) 1.3s both;
}
.hero-bl-stat { display: flex; flex-direction: column; gap: .25rem; }
.hero-bl-stat-n {
  font-size: clamp(1.6rem, 2vw, 2.2rem);
  font-weight: 800; color: #fff; letter-spacing: -.03em; line-height: 1;
}
.hero-bl-stat-l {
  font-size: .37rem; letter-spacing: .2em;
  text-transform: uppercase; color: rgba(240,237,232,.38); font-weight: 500;
}

/* ── BODEGA ── */
.bl-bodega-sec { background: var(--bg); padding: 5rem 4.5rem; }
.bl-bodega-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center;
}
.bl-bodega-img { position: relative; overflow: hidden; }
.bl-bodega-img img {
  width: 100%; aspect-ratio: 4/3;
  object-fit: cover; object-position: center;
  display: block;
}
.bl-bodega-img-badge {
  position: absolute; bottom: 1.5rem; left: 1.5rem;
  background: rgba(6,4,3,.75); backdrop-filter: blur(8px);
  color: var(--gold); font-size: .42rem; letter-spacing: .22em;
  text-transform: uppercase; font-weight: 600;
  padding: .5rem 1rem; border: 1px solid rgba(196,163,90,.25);
}
.bl-bodega-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.0; letter-spacing: -.04em;
  color: var(--ink); margin: .6rem 0 1.4rem;
}
html[data-theme="dark"] .bl-bodega-h { color: var(--text); }
.bl-bodega-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .bl-bodega-h em { color: var(--gold); }
.bl-bodega-p {
  font-size: .9rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 1rem;
}
.bl-bodega-datos {
  display: flex; gap: 0; margin-top: 2rem;
  border-top: 1px solid var(--line);
  padding-top: 1.6rem;
}
.bl-dato { flex: 1; padding-right: 1.5rem; border-right: 1px solid var(--line); }
.bl-dato:last-child { border-right: none; padding-right: 0; padding-left: 1.5rem; }
.bl-dato:nth-child(2) { padding: 0 1.5rem; }
.bl-dato-n {
  font-size: clamp(1.4rem, 2vw, 2rem); font-weight: 800;
  color: var(--wine); letter-spacing: -.04em; line-height: 1; margin-bottom: .3rem;
}
html[data-theme="dark"] .bl-dato-n { color: var(--gold); }
.bl-dato-l {
  font-size: .36rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--text-muted); font-weight: 500;
}

/* ── PROCESO — TIMELINE EDITORIAL ── */
.bl-proceso-sec { background: var(--bg-alt); padding: 5rem 4.5rem; }
.bl-proceso-inner { max-width: 1280px; margin: 0 auto; }
.bl-proceso-hdr { margin-bottom: 4rem; max-width: 640px; }
.bl-proceso-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: var(--ink); margin: .6rem 0 1rem;
}
html[data-theme="dark"] .bl-proceso-h { color: var(--text); }
.bl-proceso-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .bl-proceso-h em { color: var(--gold); }
.bl-proceso-sub { font-size: .9rem; color: var(--text-soft); line-height: 1.85; }

.bl-timeline { display: flex; flex-direction: column; }
.bl-tl-item {
  display: grid;
  grid-template-columns: 90px 1fr 320px;
  border-top: 1px solid var(--line);
  transition: background .3s;
  min-height: 200px;
}
.bl-tl-item:last-child { border-bottom: 1px solid var(--line); }
@media(hover:hover) { .bl-tl-item:hover { background: var(--bg); } }
html[data-theme="dark"] .bl-tl-item:hover { background: rgba(255,255,255,.02); }
.bl-tl-left {
  display: flex; flex-direction: column;
  align-items: center; padding-top: 2.5rem;
}
.bl-tl-num {
  font-size: 3rem; font-weight: 800;
  color: var(--line); letter-spacing: -.06em; line-height: 1;
  transition: color .3s; font-feature-settings: 'tnum';
}
.bl-tl-item:hover .bl-tl-num { color: var(--gold); }
.bl-tl-line {
  width: 1px; flex: 1; min-height: 20px;
  background: var(--line); margin-top: 1rem;
}
.bl-tl-body {
  padding: 2.5rem 2.5rem 2.5rem 1.5rem;
  display: flex; flex-direction: column; gap: .4rem;
}
.bl-tl-tag {
  font-size: .38rem; letter-spacing: .32em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 600;
}
.bl-tl-tag-gold { color: var(--gold); }
.bl-tl-h {
  font-size: clamp(1rem, 1.4vw, 1.4rem); font-weight: 700;
  letter-spacing: -.03em; color: var(--ink); line-height: 1.2;
}
html[data-theme="dark"] .bl-tl-h { color: var(--text); }
.bl-tl-p { font-size: .84rem; color: var(--text-soft); line-height: 1.8; margin-top: .3rem; }
.bl-tl-detail {
  font-size: .36rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-top: .8rem; opacity: .7;
}
.bl-tl-img { overflow: hidden; border-left: 1px solid var(--line); }
.bl-tl-img img {
  width: 100%; height: 100%; object-fit: cover;
  display: block; transition: transform .6s var(--ease);
  filter: grayscale(20%) brightness(.9);
}
.bl-tl-item:hover .bl-tl-img img { transform: scale(1.05); filter: none; }
.bl-tl-featured { background: var(--bg); }
html[data-theme="dark"] .bl-tl-featured { background: rgba(196,163,90,.03); }
.bl-tl-featured .bl-tl-num { color: rgba(196,163,90,.25); }

/* ── VARIETALES — DARK LAB PREMIUM ── */
.bl-var-sec { background: #0A0806; padding: 5rem 4.5rem; }
.bl-var-inner { max-width: 1280px; margin: 0 auto; }
.bl-var-hdr { margin-bottom: 4rem; max-width: 640px; }
.bl-var-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: #F0EDE8; margin: .6rem 0 1rem;
}
.bl-var-h em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.bl-var-sub { font-size: .9rem; color: rgba(240,237,232,.45); line-height: 1.85; }
.bl-var-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border: 1px solid rgba(196,163,90,.15);
}
.bl-var-card {
  padding: 3rem 2.2rem; position: relative; overflow: hidden;
  border-right: 1px solid rgba(196,163,90,.15);
  transition: background .4s;
}
.bl-var-card:last-child { border-right: none; }
@media(hover:hover) { .bl-var-card:hover { background: rgba(196,163,90,.04); } }
.bl-var-card-bg {
  position: absolute; bottom: -1.5rem; right: -.5rem;
  font-size: clamp(5rem, 9vw, 9rem); font-weight: 800;
  color: rgba(196,163,90,.06); letter-spacing: -.06em; line-height: 1;
  pointer-events: none; user-select: none;
  transition: color .4s, transform .5s;
}
.bl-var-card:hover .bl-var-card-bg { color: rgba(196,163,90,.11); transform: scale(1.04) translateY(-4px); }
.bl-var-card-featured .bl-var-card-bg { color: rgba(196,163,90,.1); }
.bl-var-card-content { position: relative; z-index: 1; display: flex; flex-direction: column; height: 100%; }
.bl-var-card-eyebrow {
  font-size: .37rem; letter-spacing: .26em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: 1rem; opacity: .75;
}
.bl-var-card-h {
  font-size: clamp(1.5rem, 2.2vw, 2.2rem); font-weight: 800;
  letter-spacing: -.04em; color: #F0EDE8; line-height: 1; margin-bottom: 1.4rem;
}
.bl-var-card-sep { width: 24px; height: 1px; background: var(--gold); opacity: .35; margin-bottom: 1.4rem; }
.bl-var-card-desc { font-size: .82rem; color: rgba(240,237,232,.45); line-height: 1.8; flex: 1; margin-bottom: 1.8rem; }
.bl-var-card-attr { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: auto; }
.bl-var-card-attr span {
  font-size: .34rem; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(196,163,90,.55); font-weight: 500;
  border: 1px solid rgba(196,163,90,.18); padding: .28rem .65rem;
}
.bl-var-card-featured { background: rgba(196,163,90,.03); }
.bl-var-card-featured .bl-var-card-h { color: var(--gold-lt); }

/* ── PASOS FINALES ── */
.bl-final-sec { background: var(--bg-alt); padding: 5rem 4.5rem; }
.bl-final-inner { max-width: 1280px; margin: 0 auto; }
.bl-final-hdr { margin-bottom: 4rem; max-width: 640px; }
.bl-final-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: var(--ink); margin: .6rem 0 1rem;
}
html[data-theme="dark"] .bl-final-h { color: var(--text); }
.bl-final-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .bl-final-h em { color: var(--gold); }
.bl-final-sub { font-size: .9rem; color: var(--text-soft); line-height: 1.85; }
.bl-final-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  border-top: 1px solid var(--line);
}
.bl-final-item {
  padding: 2.5rem 2rem;
  border-right: 1px solid var(--line);
}
.bl-final-item:last-child { border-right: none; }
.bl-final-icon {
  width: 44px; height: 44px; margin-bottom: 1.4rem;
  color: var(--gold);
}
.bl-final-icon svg { width: 44px; height: 44px; }
.bl-final-item-h {
  font-size: .95rem; font-weight: 700; letter-spacing: -.02em;
  color: var(--ink); margin-bottom: .7rem;
}
html[data-theme="dark"] .bl-final-item-h { color: var(--text); }
.bl-final-item-p { font-size: .82rem; color: var(--text-soft); line-height: 1.8; }

/* ── QUÉ INCLUYE — PREMIUM ── */
.bl-incluye-sec { background: var(--bg); padding: 5rem 4.5rem; }
.bl-incluye-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 6rem; align-items: start;
}
.bl-incluye-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: var(--ink); margin: .6rem 0 1.2rem;
}
html[data-theme="dark"] .bl-incluye-h { color: var(--text); }
.bl-incluye-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .bl-incluye-h em { color: var(--gold); }
.bl-incluye-p { font-size: .9rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 2rem; }
.bl-incluye-price-box {
  border: 1px solid var(--line); border-left: 3px solid var(--gold);
  padding: 1.4rem 1.6rem; margin-bottom: 2rem; background: var(--bg-alt);
}
.bl-incluye-price-label {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; margin-bottom: .25rem;
}
.bl-incluye-price-val {
  font-size: 1.4rem; font-weight: 800; color: var(--ink); letter-spacing: -.04em; line-height: 1;
}
html[data-theme="dark"] .bl-incluye-price-val { color: var(--text); }
.bl-incluye-price-note {
  font-size: .37rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-top: .4rem; opacity: .8;
}
.bl-incluye-cta { display: inline-block; }
.bl-inc-item {
  display: grid; grid-template-columns: 38px 1fr; gap: 1rem;
  align-items: start; padding: 1.1rem 0;
  border-bottom: 1px solid var(--line);
}
.bl-inc-item:first-child { border-top: 1px solid var(--line); }
.bl-inc-icon {
  width: 34px; height: 34px; display: flex; align-items: center;
  justify-content: center; font-size: 1rem; flex-shrink: 0;
  border: 1px solid var(--line); margin-top: .1rem;
}
.bl-inc-title {
  font-size: .78rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.01em; margin-bottom: .3rem;
}
html[data-theme="dark"] .bl-inc-title { color: var(--text); }
.bl-inc-desc { font-size: .82rem; color: var(--text-soft); line-height: 1.7; }
.bl-inc-item-featured {
  margin: 0 -.8rem; padding: 1.1rem .8rem;
  background: rgba(196,163,90,.05); border-color: rgba(196,163,90,.2);
}
.bl-inc-item-featured .bl-inc-title { color: var(--wine); }
html[data-theme="dark"] .bl-inc-item-featured .bl-inc-title { color: var(--gold); }
.bl-inc-item-featured .bl-inc-icon { border-color: rgba(196,163,90,.3); }

/* ── DIFERENCIAL ── */
.bl-dif-sec {
  background: linear-gradient(168deg, #0A0908 0%, #14100A 35%, #1E1810 65%, #0A0908 100%);
  padding: 5rem 4.5rem;
}
.bl-dif-inner { max-width: 1280px; margin: 0 auto; }
.bl-dif-hdr { margin-bottom: 4rem; }
.bl-dif-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: #F0EDE8; margin: .6rem 0;
}
.bl-dif-h em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.bl-dif-cols {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  border-top: 1px solid rgba(196,163,90,.12);
  padding-top: 2.5rem;
}
.bl-dif-col { padding-right: 3rem; border-right: 1px solid rgba(196,163,90,.1); }
.bl-dif-col:last-child { border-right: none; padding-right: 0; padding-left: 3rem; }
.bl-dif-col:nth-child(2) { padding: 0 3rem; }
.bl-dif-col-num {
  font-size: clamp(2.4rem, 4vw, 4rem); font-weight: 800;
  color: var(--gold); letter-spacing: -.05em; line-height: 1; margin-bottom: .4rem;
}
.bl-dif-col-title {
  font-size: .78rem; font-weight: 700; color: #F0EDE8;
  letter-spacing: -.01em; margin-bottom: .8rem;
}
.bl-dif-col-p { font-size: .82rem; color: rgba(240,237,232,.45); line-height: 1.8; }

/* Blending structural containers */
.bl-bodega-body { display: flex; flex-direction: column; }
.bl-paso-body { display: flex; flex-direction: column; }
.bl-inc-body { display: flex; flex-direction: column; }
.bl-incluye-left { display: flex; flex-direction: column; }
.bl-incluye-right { display: flex; flex-direction: column; }


/* ══════════════════════════════════════
   RESPONSIVE — BLENDING EXPERIENCE
══════════════════════════════════════ */

/* ── Tablet 769–1024px ── */
@media (min-width: 769px) and (max-width: 1024px) {
  .hero-bl-content { padding: 7rem 3rem 3rem; }
  .hero-bl-h1 { font-size: clamp(2.4rem, 4.5vw, 4rem); }

  .bl-bodega-sec { padding: 4rem 3rem; }
  .bl-bodega-inner { gap: 3rem; }

  .bl-proceso-sec { padding: 4rem 3rem; }
  .bl-tl-item { grid-template-columns: 70px 1fr 240px; }
  .bl-tl-num { font-size: 2.4rem; }

  .bl-var-sec { padding: 4rem 3rem; }
  .bl-var-grid { grid-template-columns: repeat(2, 1fr); }
  .bl-var-card:nth-child(2) { border-right: none; }
  .bl-var-card:nth-child(3) { border-top: 1px solid rgba(196,163,90,.15); }
  .bl-var-card:nth-child(4) { border-top: 1px solid rgba(196,163,90,.15); border-right: none; }

  .bl-final-sec { padding: 4rem 3rem; }
  .bl-final-grid { grid-template-columns: repeat(2, 1fr); }
  .bl-final-item:nth-child(2) { border-right: none; }
  .bl-final-item:nth-child(3), .bl-final-item:nth-child(4) { border-top: 1px solid var(--line); }
  .bl-final-item:nth-child(4) { border-right: none; }

  .bl-incluye-sec { padding: 4rem 3rem; }
  .bl-incluye-inner { grid-template-columns: 1fr; gap: 3rem; }

  .bl-dif-sec { padding: 4rem 3rem; }
  .bl-dif-col { padding-right: 2rem; }
  .bl-dif-col:last-child { padding-left: 2rem; }
  .bl-dif-col:nth-child(2) { padding: 0 2rem; }
}

/* ── Mobile ≤768px ── */
@media (max-width: 768px) {
  /* Hero */
  .hero-bl { grid-template-columns: 1fr; }
  .hero-bl-content {
    padding: 0 1.6rem;
    padding-top: max(5rem, calc(env(safe-area-inset-top) + 4rem));
    padding-bottom: max(3rem, calc(env(safe-area-inset-bottom) + 2rem));
    justify-content: center;
    text-align: center;
    grid-column: 1;
  }
  .hero-bl-eyebrow { justify-content: center; }
  .hero-bl-eyebrow::before { display: none; }
  .hero-bl-h1 { font-size: clamp(2.6rem, 9vw, 4rem); }
  .hero-bl-rule { margin: 0 auto 1.4rem; }
  .hero-bl-sub { margin: 0 auto 1.8rem; font-size: .84rem; }
  .hero-bl-btns { flex-direction: column; gap: .7rem; width: 100%; }

  .hero-bl-stats { justify-content: center; flex-wrap: wrap; gap: 1.4rem; margin-top: 1.8rem; }

  /* Bodega */
  .bl-bodega-sec { padding: 3rem 1.6rem; }
  .bl-bodega-inner { grid-template-columns: 1fr; gap: 2rem; }
  .bl-bodega-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }

  /* Proceso — Timeline mobile */
  .bl-proceso-sec { padding: 3rem 1.6rem; }
  .bl-proceso-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .bl-tl-item { grid-template-columns: 54px 1fr; }
  .bl-tl-img { display: none; }
  .bl-tl-num { font-size: 2rem; }
  .bl-tl-body { padding: 1.8rem 0 1.8rem 1rem; }

  /* Varietales */
  .bl-var-sec { padding: 3rem 1.6rem; }
  .bl-var-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .bl-var-grid { grid-template-columns: 1fr; border: none; }
  .bl-var-card { border-right: none; border-bottom: 1px solid rgba(196,163,90,.15); padding: 2.2rem 0; }
  .bl-var-card:last-child { border-bottom: none; }
  .bl-var-card-bg { font-size: 5rem; }

  /* Final */
  .bl-final-sec { padding: 3rem 1.6rem; }
  .bl-final-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .bl-final-grid { grid-template-columns: 1fr; }
  .bl-final-item { border-right: none; border-bottom: 1px solid var(--line); padding: 1.8rem 0; }
  .bl-final-item:last-child { border-bottom: none; }

  /* Incluye */
  .bl-incluye-sec { padding: 3rem 1.6rem; }
  .bl-incluye-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .bl-incluye-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .bl-incluye-cta { width: 100%; text-align: center; display: block; }
  .bl-inc-item-featured { margin: 0; padding: 1.1rem 0; }

  /* Diferencial */
  .bl-dif-sec { padding: 3rem 1.6rem; }
  .bl-dif-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .bl-dif-cols { grid-template-columns: 1fr; gap: 0; padding-top: 0; border-top: none; }
  .bl-dif-col { border-right: none; padding: 1.8rem 0; border-bottom: 1px solid rgba(196,163,90,.1); }
  .bl-dif-col:last-child { border-bottom: none; padding-left: 0; }
  .bl-dif-col:nth-child(2) { padding: 1.8rem 0; }
}

/* ═══════════════════════════════════════════════════════════════
   22. PÁGINA — COOKING CLASS
   ─────────────────────────────────────────────────────────────
   Hero:       .hero-ck
   Experiencias:.ck-exp-sec / .ck-exp-card
   Incluye:    .ck-inc-sec
   Cultura:    .ck-cultura-sec
═══════════════════════════════════════════════════════════════ */

/* wa-btn override */
.wa-btn { bottom: 1.5rem; }

/* ── HERO ── */
.hero-ck {
  height: 100vh; height: 100dvh;
  min-height: 700px;
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  background: #080604;
}
.hero-ck-img { position: absolute; inset: 0; z-index: 0; }
.hero-ck-img img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 40%;
  animation: heroZoom 18s ease-in-out infinite alternate;
  will-change: transform;
}
.hero-ck-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(105deg, rgba(4,3,2,.92) 0%, rgba(4,3,2,.65) 45%, rgba(4,3,2,.2) 100%);
}
.hero-ck-grain {
  position: absolute; inset: 0; z-index: 2; opacity: .03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  pointer-events: none;
}
.hero-ck-content {
  position: relative; z-index: 4;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 7rem 4.5rem 3.5rem 6rem;
  grid-column: 1;
}
.hero-ck-eyebrow {
  font-size: .52rem; letter-spacing: .44em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-bottom: 1.8rem;
  display: flex; align-items: center; gap: .8rem;
  animation: fadeUp .8s var(--ease) .4s both;
}
.hero-ck-eyebrow::before {
  content: ''; width: 28px; height: 1px;
  background: var(--gold); opacity: .6; flex-shrink: 0;
}
.hero-ck-h1 {
  font-size: clamp(2.6rem, 4.2vw, 5.5rem);
  font-weight: 800; line-height: .95; letter-spacing: -.04em;
  color: #F0EDE8; margin-bottom: .8rem;
}
.hero-ck-h1 .line { display: block; overflow: hidden; padding-bottom: .05em; padding-bottom: .18em; }
.hero-ck-h1 .line span { display: block; animation: hLineUp .9s var(--ease) both; }
.hero-ck-h1 .line:nth-child(1) span { animation-delay: .5s; }
.hero-ck-h1 .line:nth-child(2) span { animation-delay: .65s; }
.hero-ck-h1 .line:nth-child(3) span { animation-delay: .8s; }
.hero-ck-h1 em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.hero-ck-rule {
  width: 52px; height: 1px;
  background: linear-gradient(to right, var(--gold), transparent);
  margin-bottom: 1.4rem;
  animation: fadeUp .8s var(--ease) .9s both;
}
.hero-ck-sub {
  font-size: .92rem; color: rgba(240,237,232,.6);
  max-width: 420px; line-height: 1.85; margin-bottom: 1.4rem;
  animation: fadeUp .8s var(--ease) 1.0s both;
}
.hero-ck-btns {
  display: flex; gap: 1rem; flex-wrap: wrap;
  animation: fadeUp .8s var(--ease) 1.15s both;
}


.hero-ck-stats {
  display: flex; gap: 2rem; margin-top: 1rem;
  padding-top: .9rem; border-top: 1px solid rgba(196,163,90,.15);
  animation: fadeUp .8s var(--ease) 1.3s both;
}
.hero-ck-stat { display: flex; flex-direction: column; gap: .25rem; }
.hero-ck-stat-n {
  font-size: clamp(1.6rem, 2vw, 2.2rem);
  font-weight: 800; color: #fff; letter-spacing: -.03em; line-height: 1;
}
.hero-ck-stat-l {
  font-size: .37rem; letter-spacing: .2em;
  text-transform: uppercase; color: rgba(240,237,232,.38); font-weight: 500;
}

/* ── EXPERIENCIAS ── */
.ck-exp-sec { background: var(--bg); padding: 5rem 4.5rem; }
.ck-exp-inner { max-width: 1280px; margin: 0 auto; }
.ck-exp-hdr { margin-bottom: 5rem; max-width: 640px; }
.ck-exp-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: var(--ink); margin: .6rem 0 1rem;
}
html[data-theme="dark"] .ck-exp-h { color: var(--text); }
.ck-exp-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .ck-exp-h em { color: var(--gold); }
.ck-exp-sub { font-size: .9rem; color: var(--text-soft); line-height: 1.85; }

/* Cards de experiencia — alternadas */
.ck-exp-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid var(--line);
  margin-bottom: 3rem;
  overflow: hidden;
}
.ck-exp-card:last-child { margin-bottom: 0; }
.ck-exp-media {
  position: relative; overflow: hidden;
  min-height: 520px;
}
.ck-exp-media img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  transition: transform .7s var(--ease);
}
.ck-exp-card:hover .ck-exp-media img { transform: scale(1.04); }
.ck-exp-media-label {
  position: absolute; bottom: 1.5rem; left: 1.5rem;
  background: rgba(6,4,3,.75); backdrop-filter: blur(8px);
  color: var(--gold); font-size: .42rem; letter-spacing: .22em;
  text-transform: uppercase; font-weight: 600;
  padding: .5rem 1rem; border: 1px solid rgba(196,163,90,.25);
}
.ck-exp-body {
  padding: 3.5rem 3.5rem;
  display: flex; flex-direction: column; gap: 0;
  background: var(--bg);
  border-left: 1px solid var(--line);
}
.ck-exp-card-alt .ck-exp-body {
  border-left: none; border-right: 1px solid var(--line);
}
.ck-exp-num {
  font-size: 5rem; font-weight: 800;
  color: var(--line); letter-spacing: -.06em; line-height: 1;
  margin-bottom: 1rem; display: block;
}
.ck-exp-title {
  font-size: clamp(2rem, 3.5vw, 3.5rem);
  font-weight: 800; line-height: 1.0; letter-spacing: -.04em;
  color: var(--ink); margin: .4rem 0 1.4rem;
}
html[data-theme="dark"] .ck-exp-title { color: var(--text); }
.ck-exp-title em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .ck-exp-title em { color: var(--gold); }
.ck-exp-desc {
  font-size: .88rem; color: var(--text-soft); line-height: 1.85;
  margin-bottom: 2rem;
}
.ck-exp-menu { margin-bottom: 2rem; }
.ck-exp-menu-title {
  font-size: .42rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: 1.2rem; opacity: .8;
}
.ck-exp-menu-grid { display: flex; flex-direction: column; }
.ck-menu-item {
  display: grid; grid-template-columns: 1fr 1.4fr; gap: .5rem;
  padding: .85rem 0; border-bottom: 1px solid var(--line);
  align-items: start;
}
.ck-menu-item:first-child { border-top: 1px solid var(--line); }
.ck-menu-item-name {
  font-size: .72rem; font-weight: 700; color: var(--ink); letter-spacing: -.01em;
}
html[data-theme="dark"] .ck-menu-item-name { color: var(--text); }
.ck-menu-item-desc { font-size: .78rem; color: var(--text-soft); line-height: 1.6; }
.ck-menu-item-wine .ck-menu-item-name { color: var(--wine); }
html[data-theme="dark"] .ck-menu-item-wine .ck-menu-item-name { color: var(--gold); }
.ck-menu-item-wine { margin-top: .3rem; border-bottom: none; }

/* ── QUÉ INCLUYE ── */
.ck-inc-sec { background: var(--bg-alt); padding: 5rem 4.5rem; }
.ck-inc-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 6rem; align-items: start;
}
.ck-inc-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: var(--ink); margin: .6rem 0 1.2rem;
}
html[data-theme="dark"] .ck-inc-h { color: var(--text); }
.ck-inc-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .ck-inc-h em { color: var(--gold); }
.ck-inc-p { font-size: .9rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 2rem; }
.ck-inc-price-box {
  border: 1px solid var(--line); border-left: 3px solid var(--gold);
  padding: 1.4rem 1.6rem; margin-bottom: 2rem; background: var(--bg);
}
.ck-inc-price-label {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; margin-bottom: .25rem;
}
.ck-inc-price-val {
  font-size: 1.4rem; font-weight: 800; color: var(--ink); letter-spacing: -.04em; line-height: 1;
}
html[data-theme="dark"] .ck-inc-price-val { color: var(--text); }
.ck-inc-price-note {
  font-size: .37rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-top: .4rem; opacity: .8;
}
.ck-inc-item {
  display: grid; grid-template-columns: 38px 1fr; gap: 1rem;
  align-items: start; padding: 1.1rem 0; border-bottom: 1px solid var(--line);
}
.ck-inc-item:first-child { border-top: 1px solid var(--line); }
.ck-inc-icon {
  width: 34px; height: 34px; display: flex; align-items: center;
  justify-content: center; font-size: 1rem; flex-shrink: 0;
  border: 1px solid var(--line); margin-top: .1rem;
}
.ck-inc-body { display: flex; flex-direction: column; }
.ck-inc-title {
  font-size: .78rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.01em; margin-bottom: .3rem;
}
html[data-theme="dark"] .ck-inc-title { color: var(--text); }
.ck-inc-desc { font-size: .82rem; color: var(--text-soft); line-height: 1.7; }
.ck-inc-item-featured {
  margin: 0 -.8rem; padding: 1.1rem .8rem;
  background: rgba(196,163,90,.05); border-color: rgba(196,163,90,.2);
}
.ck-inc-item-featured .ck-inc-title { color: var(--wine); }
html[data-theme="dark"] .ck-inc-item-featured .ck-inc-title { color: var(--gold); }
.ck-inc-item-featured .ck-inc-icon { border-color: rgba(196,163,90,.3); }

/* ── CULTURA ── */
.ck-cultura-sec { background: var(--bg); padding: 5rem 4.5rem; }
.ck-cultura-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center;
}
.ck-cultura-img { position: relative; overflow: hidden; }
.ck-cultura-img img {
  width: 100%; aspect-ratio: 4/3;
  object-fit: cover; object-position: center;
  display: block;
}
.ck-cultura-img-badge {
  position: absolute; bottom: 1.5rem; left: 1.5rem;
  background: rgba(6,4,3,.75); backdrop-filter: blur(8px);
  color: var(--gold); font-size: .42rem; letter-spacing: .22em;
  text-transform: uppercase; font-weight: 600;
  padding: .5rem 1rem; border: 1px solid rgba(196,163,90,.25);
}
.ck-cultura-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.0; letter-spacing: -.04em;
  color: var(--ink); margin: .6rem 0 1.4rem;
}
html[data-theme="dark"] .ck-cultura-h { color: var(--text); }
.ck-cultura-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .ck-cultura-h em { color: var(--gold); }
.ck-cultura-p {
  font-size: .9rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 1rem;
}
.ck-cultura-datos {
  display: flex; gap: 0; margin-top: 2rem;
  border-top: 1px solid var(--line); padding-top: 1.6rem;
}
.ck-dato { flex: 1; padding-right: 1.5rem; border-right: 1px solid var(--line); }
.ck-dato:last-child { border-right: none; padding-right: 0; padding-left: 1.5rem; }
.ck-dato:nth-child(2) { padding: 0 1.5rem; }
.ck-dato-n {
  font-size: clamp(1.4rem, 2vw, 2rem); font-weight: 800;
  color: var(--wine); letter-spacing: -.04em; line-height: 1; margin-bottom: .3rem;
}
html[data-theme="dark"] .ck-dato-n { color: var(--gold); }
.ck-dato-l {
  font-size: .36rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--text-muted); font-weight: 500;
}

/* Structural containers */
.ck-inc-left { display: flex; flex-direction: column; }
.ck-inc-right { display: flex; flex-direction: column; }
.ck-cultura-body { display: flex; flex-direction: column; }

/* ══════════════════════════════════════
   RESPONSIVE — COOKING CLASS
══════════════════════════════════════ */

/* ── Tablet 769–1024px ── */
@media (min-width: 769px) and (max-width: 1024px) {
  .hero-ck-content { padding: 7rem 3rem 3rem; }
  .hero-ck-h1 { font-size: clamp(2.8rem, 5vw, 5rem); }
  .ck-exp-sec { padding: 4rem 3rem; }
  .ck-exp-card { grid-template-columns: 1fr; }
  .ck-exp-media { min-height: 320px; }
  .ck-exp-body { border-left: none; border-top: 1px solid var(--line); padding: 2.5rem; }
  .ck-exp-card-alt .ck-exp-body { border-right: none; border-top: 1px solid var(--line); }
  .ck-exp-card-alt { direction: ltr; }
  .ck-inc-sec { padding: 4rem 3rem; }
  .ck-inc-inner { grid-template-columns: 1fr; gap: 3rem; }
  .ck-cultura-sec { padding: 4rem 3rem; }
  .ck-cultura-inner { gap: 3rem; }
}

/* ── Mobile ≤768px ── */
@media (max-width: 768px) {
  /* Hero */
  .hero-ck { grid-template-columns: 1fr; }
  .hero-ck-content {
    padding: 0 1.6rem;
    padding-top: max(5rem, calc(env(safe-area-inset-top) + 4rem));
    padding-bottom: max(3rem, calc(env(safe-area-inset-bottom) + 2rem));
    justify-content: center; text-align: center; grid-column: 1;
  }
  .hero-ck-eyebrow { justify-content: center; }
  .hero-ck-eyebrow::before { display: none; }
  .hero-ck-h1 { font-size: clamp(2.6rem, 9vw, 4rem); }
  .hero-ck-rule { margin: 0 auto 1.4rem; }
  .hero-ck-sub { margin: 0 auto 1.8rem; font-size: .84rem; }
  .hero-ck-btns { flex-direction: column; gap: .7rem; width: 100%; }

  .hero-ck-stats { justify-content: center; flex-wrap: wrap; gap: 1.4rem; margin-top: 1.8rem; }

  /* Experiencias */
  .ck-exp-sec { padding: 3rem 1.6rem; }
  .ck-exp-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .ck-exp-hdr { margin-bottom: 3rem; }
  .ck-exp-card { grid-template-columns: 1fr; border: none; border-top: 1px solid var(--line); margin-bottom: 0; }
  .ck-exp-card:last-child { border-bottom: 1px solid var(--line); }
  .ck-exp-media { min-height: 260px; order: 0; }
  .ck-exp-body { border-left: none; border-top: 1px solid var(--line); padding: 2rem 0; order: 1; }
  .ck-exp-card-alt .ck-exp-body { border-right: none; }
  .ck-exp-card-alt .ck-exp-media { order: 0; }
  .ck-exp-num { font-size: 3rem; margin-bottom: .6rem; }
  .ck-exp-title { font-size: clamp(1.8rem, 7vw, 2.5rem); }
  .ck-menu-item { grid-template-columns: 1fr; gap: .2rem; }

  /* Incluye */
  .ck-inc-sec { padding: 3rem 1.6rem; }
  .ck-inc-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .ck-inc-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .ck-inc-item-featured { margin: 0; padding: 1.1rem 0; }

  /* Cultura */
  .ck-cultura-sec { padding: 3rem 1.6rem; }
  .ck-cultura-inner { grid-template-columns: 1fr; gap: 2rem; }
  .ck-cultura-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
}

/* ═══════════════════════════════════════════════════════════════
   23. PÁGINA — CITY TOUR MENDOZA
   ─────────────────────────────────────────────────────────────
   Diseño: editorial masivo — tipografía oversized, paradas
   full-bleed alternadas, datos urbanos en grid
═══════════════════════════════════════════════════════════════ */

/* ── HERO — TIPOGRAFÍA MASIVA ÚNICA ── */
.ct-hero {
  height: 100vh; height: 100dvh;
  min-height: 700px;
  position: relative;
  overflow: hidden;
  background: #06050A;
  display: flex; flex-direction: column;
}
.ct-hero-bg {
  position: absolute; inset: 0; z-index: 0;
}
.ct-hero-bg img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 60%;
  animation: heroZoom 20s ease-in-out infinite alternate;
  will-change: transform;
  filter: brightness(.55) saturate(.8);
}
.ct-hero-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(to right, rgba(6,5,10,.75) 0%, transparent 60%),
    linear-gradient(to top, rgba(6,5,10,.9) 0%, transparent 50%);
}
.ct-hero-content {
  position: relative; z-index: 3;
  display: flex; flex-direction: column;
  height: 100%;
  padding: 0 4.5rem 0 6rem;
}
.ct-hero-top {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: max(5rem, calc(env(safe-area-inset-top) + 4.5rem));
  animation: fadeUp .8s var(--ease) .3s both;
}
.ct-hero-eyebrow {
  display: flex; align-items: center; gap: .8rem;
  font-size: .46rem; letter-spacing: .42em; text-transform: uppercase;
  color: var(--gold); font-weight: 500;
}
.ct-hero-dash {
  width: 28px; height: 1px; background: var(--gold); opacity: .6; flex-shrink: 0;
}
.ct-hero-tag {
  font-size: .38rem; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(240,237,232,.35); font-weight: 400;
}

/* Tipografía masiva oversized */
.ct-hero-title-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 1.4rem;
  gap: 1.4rem;
}
.ct-hero-h1 {
  font-size: clamp(4.5rem, 11vw, 14rem);
  font-weight: 800;
  line-height: .85;
  letter-spacing: -.06em;
  color: #F0EDE8;
  margin: 0;
  user-select: none;
  animation: fadeUp 1s var(--ease) .4s both;
}
.ct-h1-line { display: block; overflow: hidden; padding-bottom: .18em; }
.ct-h1-line span { display: block; animation: hLineUp 1s var(--ease) both; }
.ct-h1-line-1 span { animation-delay: .4s; }
.ct-h1-line-2 span { animation-delay: .55s; }
.ct-h1-line-3 span { animation-delay: .7s; }
.ct-hero-h1 em {
  font-style: italic; color: var(--gold-lt); font-weight: 300;
}

/* desc + btns — horizontal row below h1 */
.ct-hero-side {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3rem;
  align-items: end;
  animation: fadeUp .8s var(--ease) .85s both;
}
.ct-hero-desc {
  font-size: .88rem; color: rgba(240,237,232,.5);
  line-height: 1.8; margin: 0;
  max-width: 420px;
}
.ct-hero-btns { display: flex; gap: .8rem; flex-shrink: 0; align-items: center; }
.ct-btn-g {
  color: rgba(255,255,255,.7);
  border-color: rgba(255,255,255,.25);
  background: transparent;
  white-space: nowrap;
}
.ct-btn-g:hover { border-color: var(--gold); color: var(--gold); }

.ct-hero-bottom {
  display: flex; align-items: flex-end; justify-content: space-between;
  padding-bottom: max(1.8rem, calc(env(safe-area-inset-bottom) + 1.5rem));
  animation: fadeUp .8s var(--ease) 1.1s both;
}
.ct-hero-stats { display: flex; align-items: center; gap: 0; }
.ct-stat {
  display: flex; flex-direction: column; gap: .2rem;
  padding: 0 1.8rem 0 0;
}
.ct-stat:first-child { padding-left: 0; }
.ct-stat-n {
  font-size: clamp(1.4rem, 2vw, 2rem); font-weight: 800;
  color: #fff; letter-spacing: -.04em; line-height: 1;
}
.ct-stat-l {
  font-size: .33rem; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(240,237,232,.32); font-weight: 500;
}
.ct-stat-sep {
  width: 1px; height: 28px; background: rgba(196,163,90,.2); margin: 0 1.8rem 0 0; flex-shrink: 0;
}
.ct-scroll-cue {
  display: flex; align-items: center; gap: .6rem;
  font-size: .36rem; letter-spacing: .28em; text-transform: uppercase;
  color: rgba(240,237,232,.3); text-decoration: none;
  transition: color .3s;
}
.ct-scroll-cue svg {
  width: 16px; height: 16px; stroke: currentColor;
  animation: ctScrollBounce 2s ease infinite;
}
@keyframes ctScrollBounce {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(4px); }
}
.ct-scroll-cue:hover { color: var(--gold); }

/* ── INTRO — DATOS URBANOS ── */
.ct-intro-sec {
  background: var(--bg);
  padding: 5rem 4.5rem 5rem 6rem;
}
.ct-intro-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.3fr; gap: 6rem; align-items: start;
}
.ct-intro-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.05; letter-spacing: -.04em;
  color: var(--ink); margin: .6rem 0;
}
html[data-theme="dark"] .ct-intro-h { color: var(--text); }
.ct-intro-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .ct-intro-h em { color: var(--gold); }
.ct-intro-p { font-size: .9rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 1rem; }
.ct-intro-datos {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  margin-top: 2.5rem; border-top: 1px solid var(--line); padding-top: 1.8rem;
}
.ct-intro-dato { padding-right: 1.5rem; border-right: 1px solid var(--line); }
.ct-intro-dato:last-child { border-right: none; padding-right: 0; padding-left: 1.5rem; }
.ct-intro-dato:nth-child(2) { padding: 0 1.5rem; }
.ct-intro-dato-n {
  font-size: clamp(1.2rem, 1.8vw, 1.8rem); font-weight: 800;
  color: var(--wine); letter-spacing: -.04em; line-height: 1; margin-bottom: .3rem;
}
html[data-theme="dark"] .ct-intro-dato-n { color: var(--gold); }
.ct-intro-dato-l {
  font-size: .35rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
}

/* ── RECORRIDO — PARADAS FULL-BLEED ── */
.ct-recorrido-sec { background: var(--bg-alt); }

.ct-parada {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 520px;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}
.ct-parada:last-child { border-bottom: none; }
.ct-parada-inv { direction: rtl; }
.ct-parada-inv .ct-parada-content { direction: ltr; }
.ct-parada-inv .ct-parada-media { direction: ltr; }

.ct-parada-media {
  position: relative; overflow: hidden;
}
.ct-parada-media img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  transition: transform .8s var(--ease), filter .6s;
  filter: grayscale(15%) brightness(.9);
}
.ct-parada:hover .ct-parada-media img {
  transform: scale(1.04);
  filter: grayscale(0%) brightness(1);
}
.ct-parada-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, transparent 60%, rgba(6,5,10,.15) 100%);
  pointer-events: none;
}
.ct-parada-inv .ct-parada-overlay {
  background: linear-gradient(to left, transparent 60%, rgba(6,5,10,.15) 100%);
}

.ct-parada-content {
  display: flex; align-items: center;
  padding: 4rem 4.5rem;
  background: var(--bg-alt);
  position: relative;
}
.ct-parada-num {
  position: absolute;
  top: 2rem; right: 3rem;
  font-size: clamp(5rem, 9vw, 10rem); font-weight: 800;
  color: var(--line); letter-spacing: -.08em; line-height: 1;
  pointer-events: none; user-select: none;
  transition: color .4s;
}
html[data-theme="dark"] .ct-parada-num { color: rgba(255,255,255,.04); }
.ct-parada:hover .ct-parada-num { color: rgba(196,163,90,.08); }
.ct-parada-inv .ct-parada-num { right: auto; left: 3rem; }

.ct-parada-info { position: relative; z-index: 1; }
.ct-parada-tag {
  font-size: .4rem; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: 1rem; opacity: .8;
}
.ct-parada-h {
  font-size: clamp(1.8rem, 2.8vw, 3.2rem);
  font-weight: 800; line-height: 1.05; letter-spacing: -.04em;
  color: var(--ink); margin-bottom: 1.4rem;
}
html[data-theme="dark"] .ct-parada-h { color: var(--text); }
.ct-parada-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .ct-parada-h em { color: var(--gold); }
.ct-parada-p {
  font-size: .86rem; color: var(--text-soft); line-height: 1.85;
  max-width: 440px; margin-bottom: 1.4rem;
}
.ct-parada-detail {
  font-size: .38rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
  padding-top: 1rem; border-top: 1px solid var(--line);
  display: inline-block;
}

/* ── CTA STRIP ── */
.ct-cta-strip {
  background: linear-gradient(135deg, #0A0806 0%, #120F0A 50%, #0A0806 100%);
  padding: 5rem 6rem;
  position: relative; overflow: hidden;
}
.ct-cta-strip::before {
  content: 'MDZ';
  position: absolute; right: -2rem; top: 50%;
  transform: translateY(-50%);
  font-size: 22rem; font-weight: 800; letter-spacing: -.08em;
  color: rgba(196,163,90,.04); line-height: 1;
  pointer-events: none; user-select: none;
}
.ct-cta-strip-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 6rem; align-items: center;
  position: relative; z-index: 1;
}
.ct-cta-strip-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: #F0EDE8; margin: .6rem 0;
}
.ct-cta-strip-h em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.ct-cta-strip-p {
  font-size: .9rem; color: rgba(240,237,232,.45); line-height: 1.85; margin-bottom: 2rem;
}
.ct-cta-strip-btns { margin-bottom: 2rem; }
.ct-cta-strip-includes {
  display: flex; flex-wrap: wrap; gap: .5rem;
}
.ct-inc-chip {
  font-size: .38rem; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(196,163,90,.6); font-weight: 500;
  border: 1px solid rgba(196,163,90,.18);
  padding: .3rem .8rem;
}

/* Structural containers */
.ct-intro-left { display: flex; flex-direction: column; }
.ct-intro-right { display: flex; flex-direction: column; }
.ct-cta-strip-left { display: flex; flex-direction: column; }
.ct-cta-strip-right { display: flex; flex-direction: column; }

/* ══════════════════════════════════════
   RESPONSIVE — CITY TOUR
══════════════════════════════════════ */

/* ── Tablet 769–1024px ── */
@media (min-width: 769px) and (max-width: 1024px) {
  .ct-hero-content { padding: 0 3rem; }
  .ct-hero-h1 { font-size: clamp(4rem, 11vw, 10rem); }
  .ct-hero-side { gap: 2rem; }
  .ct-hero-desc { max-width: 300px; }
  .ct-intro-sec { padding: 4rem 3rem; }
  .ct-intro-inner { gap: 3rem; }
  .ct-parada { min-height: 420px; }
  .ct-parada-content { padding: 3rem; }
  .ct-parada-h { font-size: clamp(1.6rem, 2.5vw, 2.4rem); }
  .ct-cta-strip { padding: 4rem 3rem; }
  .ct-cta-strip-inner { gap: 3rem; }
  .ct-cta-strip::before { font-size: 16rem; }
}

/* ── Mobile ≤768px ── */
@media (max-width: 768px) {
  /* Hero */
  .ct-hero-content { padding: 0 1.6rem; }
  .ct-hero-top {
    flex-direction: column; align-items: flex-start; gap: .6rem;
    padding-top: max(5rem, calc(env(safe-area-inset-top) + 4.5rem));
  }
  .ct-hero-h1 { font-size: clamp(3.5rem, 17vw, 7rem); line-height: .85; word-break: keep-all; }
  .ct-hero-title-wrap {
    gap: 1rem; padding-bottom: 1.2rem;
  }
  .ct-hero-side {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
  .ct-hero-desc { font-size: .84rem; max-width: 100%; }
  .ct-hero-btns { flex-direction: column; gap: .6rem; }

  .ct-hero-bottom { flex-direction: column; align-items: flex-start; gap: 1.2rem;
    padding-bottom: max(2rem, calc(env(safe-area-inset-bottom) + 1.5rem)); }
  .ct-hero-stats { flex-wrap: wrap; gap: .8rem; }
  .ct-stat { padding-right: 1.2rem; }
  .ct-stat-sep { height: 24px; margin: 0 1.2rem 0 0; }
  .ct-scroll-cue { display: none; }

  /* Intro */
  .ct-intro-sec { padding: 3rem 1.6rem; }
  .ct-intro-inner { grid-template-columns: 1fr; gap: 2rem; }
  .ct-intro-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .ct-intro-datos { grid-template-columns: 1fr; gap: 1rem; }
  .ct-intro-dato { border-right: none; padding: 0 0 1rem; border-bottom: 1px solid var(--line); }
  .ct-intro-dato:last-child { border-bottom: none; padding: 0; }
  .ct-intro-dato:nth-child(2) { padding: 0 0 1rem; }

  /* Paradas */
  .ct-parada { grid-template-columns: 1fr; min-height: auto; direction: ltr; }
  .ct-parada-media { height: 260px; min-height: 0; }
  .ct-parada-inv .ct-parada-media { order: 0; }
  .ct-parada-content { padding: 2rem 1.6rem; order: 1; }
  .ct-parada-num { font-size: 4rem; top: 1.2rem; right: 1.4rem; }
  .ct-parada-inv .ct-parada-num { left: auto; right: 1.4rem; }
  .ct-parada-h { font-size: clamp(1.5rem, 6vw, 2rem); }
  .ct-parada-p { max-width: 100%; font-size: .84rem; }

  /* CTA strip */
  .ct-cta-strip { padding: 3rem 1.6rem; }
  .ct-cta-strip::before { display: none; }
  .ct-cta-strip-inner { grid-template-columns: 1fr; gap: 2rem; }
  .ct-cta-strip-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
}

/* ═══════════════════════════════════════════════════════════════
   24. PÁGINA — CORPORATIVO
   ─────────────────────────────────────────────────────────────
   Hero:      estándar fullscreen igual que todos los tours
   Secciones: usan variables CSS (light/dark mode completo)
   Diferencial: tono ejecutivo, grid servicios, flota formal
═══════════════════════════════════════════════════════════════ */

/* wa-btn override */
.corp-page .wa-btn { bottom: 1.5rem; }

/* ── HERO — ESTÁNDAR FULLSCREEN ── */
.corp-hero {
  height: 100vh; height: 100dvh;
  min-height: 700px;
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  background: #080604;
}
.corp-hero-img { position: absolute; inset: 0; z-index: 0; }
.corp-hero-img img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 40%;
  animation: heroZoom 18s ease-in-out infinite alternate;
  will-change: transform;
}
.corp-hero-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(105deg, rgba(4,3,2,.92) 0%, rgba(4,3,2,.65) 45%, rgba(4,3,2,.15) 100%);
}
.corp-hero-grain {
  position: absolute; inset: 0; z-index: 2; opacity: .03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  pointer-events: none;
}
.corp-hero-content {
  position: relative; z-index: 4;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 7rem 4.5rem 3.5rem 6rem;
  grid-column: 1;
}
.corp-hero-eyebrow {
  font-size: .52rem; letter-spacing: .44em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-bottom: 1.8rem;
  display: flex; align-items: center; gap: .8rem;
  animation: fadeUp .7s var(--ease) .4s both;
}
.corp-eyebrow-line {
  width: 28px; height: 1px; background: var(--gold); opacity: .6; flex-shrink: 0;
}
.corp-hero-h1 {
  font-size: clamp(2.6rem, 4.2vw, 5.5rem);
  font-weight: 800; line-height: .95; letter-spacing: -.04em;
  color: #F0EDE8; margin-bottom: .8rem; overflow: hidden;
}
.corp-hero-h1 .line { display: block; overflow: hidden; padding-bottom: .18em; }
.corp-hero-h1 .line span { display: block; animation: hLineUp .9s var(--ease) both; }
.corp-hero-h1 .line:nth-child(1) span { animation-delay: .5s; }
.corp-hero-h1 .line:nth-child(2) span { animation-delay: .65s; }
.corp-hero-h1 .line:nth-child(3) span { animation-delay: .8s; }
.corp-hero-h1 em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.corp-hero-rule {
  width: 44px; height: 1px; background: var(--gold); opacity: .5;
  margin-bottom: 1.4rem; animation: fadeUp .7s var(--ease) .8s both;
}
.corp-hero-sub {
  font-size: .92rem; color: rgba(240,237,232,.55);
  max-width: 420px; line-height: 1.85; margin-bottom: 1.8rem;
  animation: fadeUp .7s var(--ease) .9s both;
}
.corp-hero-btns {
  display: flex; gap: 1rem; flex-wrap: wrap;
  animation: fadeUp .7s var(--ease) 1.05s both;
  margin-bottom: 1rem;
}
.corp-btn-g {
  color: rgba(255,255,255,.85);
  border-color: rgba(255,255,255,.4);
  background: transparent;
}
.corp-btn-g:hover { border-color: var(--gold); color: var(--gold); }
.corp-hero-stats {
  display: flex; gap: 2rem;
  margin-top: 1rem; padding-top: .9rem;
  border-top: 1px solid rgba(196,163,90,.15);
  animation: fadeUp .7s var(--ease) 1.2s both;
}
.corp-hero-stat { display: flex; flex-direction: column; gap: .2rem; }
.corp-hero-stat-n {
  font-size: clamp(1.4rem, 2vw, 2rem);
  font-weight: 800; color: #fff; letter-spacing: -.03em; line-height: 1;
}
.corp-hero-stat-l {
  font-size: .36rem; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(240,237,232,.35); font-weight: 500;
}

/* ── MANIFIESTO ── */
.corp-manifiesto {
  background: var(--bg-alt);
  border-top: 1px solid var(--line);
  padding: 5rem 6rem;
}
.corp-manifiesto-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 220px 1fr; gap: 5rem; align-items: start;
}
.corp-manifiesto-left {
  display: flex; flex-direction: column; justify-content: flex-start;
  padding-top: .4rem;
}
.corp-manifiesto-label {
  font-size: .4rem; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; opacity: .7;
}
.corp-manifiesto-right { display: flex; flex-direction: column; }
.corp-manifiesto-quote {
  font-size: clamp(1.6rem, 2.8vw, 2.8rem);
  font-style: italic; font-weight: 300;
  color: var(--ink); line-height: 1.25; letter-spacing: -.02em;
  margin: 0 0 2.2rem; border: none; padding: 0;
}
html[data-theme="dark"] .corp-manifiesto-quote { color: var(--text); }
.corp-manifiesto-quote::before { content: none; }
.corp-manifiesto-p {
  font-size: .9rem; color: var(--text-soft);
  line-height: 1.9; max-width: 680px; margin-bottom: 1.2rem;
}

/* ── SERVICIOS ── */
.corp-servicios-sec {
  background: var(--bg);
  padding: 5rem 4.5rem;
  border-top: 1px solid var(--line);
}
.corp-servicios-inner { max-width: 1280px; margin: 0 auto; }
.corp-section-label {
  font-size: .4rem; letter-spacing: .38em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: .8rem; opacity: .8;
}
.corp-servicios-hdr { margin-bottom: 4rem; max-width: 640px; }
.corp-servicios-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.0; letter-spacing: -.04em;
  color: var(--ink); margin: .5rem 0 1rem;
}
html[data-theme="dark"] .corp-servicios-h { color: var(--text); }
.corp-servicios-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .corp-servicios-h em { color: var(--gold); }
.corp-servicios-sub {
  font-size: .88rem; color: var(--text-soft); line-height: 1.85;
}
.corp-servicios-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 0; border: 1px solid var(--line);
}
.corp-srv-card {
  padding: 2.8rem 2.5rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  position: relative; overflow: hidden;
  display: flex; flex-direction: column;
  transition: background .3s;
}
.corp-srv-card:nth-child(3),
.corp-srv-card:nth-child(6) { border-right: none; }
.corp-srv-card:nth-child(4),
.corp-srv-card:nth-child(5),
.corp-srv-card:nth-child(6) { border-bottom: none; }
@media(hover:hover) { .corp-srv-card:hover { background: var(--bg-alt); } }
.corp-srv-card-featured { background: rgba(196,163,90,.04); }
html[data-theme="dark"] .corp-srv-card-featured { background: rgba(196,163,90,.06); }
.corp-srv-num {
  position: absolute; top: 1.5rem; right: 2rem;
  font-size: 4.5rem; font-weight: 800; letter-spacing: -.08em;
  color: var(--line); line-height: 1;
  transition: color .4s; pointer-events: none;
  font-feature-settings: 'tnum';
}
.corp-srv-card:hover .corp-srv-num { color: rgba(196,163,90,.1); }
.corp-srv-body { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; }
.corp-srv-icon { width: 36px; height: 36px; margin-bottom: 1.4rem; color: var(--gold); }
.corp-srv-icon svg { width: 36px; height: 36px; }
.corp-srv-h {
  font-size: .9rem; font-weight: 700; letter-spacing: -.02em;
  color: var(--ink); margin-bottom: .7rem;
}
html[data-theme="dark"] .corp-srv-h { color: var(--text); }
.corp-srv-p {
  font-size: .82rem; color: var(--text-soft);
  line-height: 1.8; flex: 1; margin-bottom: 1.4rem;
}
.corp-srv-detail {
  font-size: .36rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; opacity: .7;
  padding-top: 1rem; border-top: 1px solid var(--line);
}

/* ── FLOTA EJECUTIVA — CENTRADA Y FORMAL ── */
.corp-flota-sec {
  background: var(--bg-alt);
  padding: 5rem 4.5rem;
  border-top: 1px solid var(--line);
}
.corp-flota-hdr {
  max-width: 1280px; margin: 0 auto 3.5rem;
}
.corp-flota-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.0; letter-spacing: -.04em;
  color: var(--ink); margin: .5rem 0;
}
html[data-theme="dark"] .corp-flota-h { color: var(--text); }
.corp-flota-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .corp-flota-h em { color: var(--gold); }
.corp-flota-grid {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0; border: 1px solid var(--line);
}
.corp-flota-card {
  border-right: 1px solid var(--line);
  overflow: hidden; transition: background .3s;
  display: flex; flex-direction: column;
}
.corp-flota-card:last-child { border-right: none; }
@media(hover:hover) { .corp-flota-card:hover { background: var(--bg); } }
.corp-flota-card-img {
  height: 180px; background: var(--bg-alt);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; border-bottom: 1px solid var(--line);
  padding: 1.2rem;
}
.corp-flota-card-img img {
  width: 100%; height: 100%; object-fit: contain;
  object-position: center;
  transition: transform .5s var(--ease);
}
.corp-flota-card:hover .corp-flota-card-img img { transform: scale(1.04); }
.corp-flota-card-body { padding: 1.6rem 1.8rem 2rem; flex: 1; display: flex; flex-direction: column; }
.corp-flota-card-name {
  font-size: .82rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.01em; margin-bottom: .5rem;
}
html[data-theme="dark"] .corp-flota-card-name { color: var(--text); }
.corp-flota-card-desc {
  font-size: .78rem; color: var(--text-soft);
  line-height: 1.7; margin-bottom: 1.2rem; flex: 1;
}
.corp-flota-card-specs {
  display: flex; gap: .4rem; flex-wrap: wrap;
}
.corp-flota-card-specs span {
  font-size: .34rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold); border: 1px solid var(--line);
  padding: .25rem .65rem; font-weight: 500;
}

/* ── PROCESO ── */
.corp-proceso-sec {
  background: var(--bg);
  padding: 5rem 4.5rem;
  border-top: 1px solid var(--line);
}
.corp-proceso-inner { max-width: 1280px; margin: 0 auto; }
.corp-proceso-hdr { margin-bottom: 4rem; max-width: 600px; }
.corp-proceso-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.0; letter-spacing: -.04em;
  color: var(--ink); margin: .5rem 0;
}
html[data-theme="dark"] .corp-proceso-h { color: var(--text); }
.corp-proceso-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .corp-proceso-h em { color: var(--gold); }
.corp-proceso-steps {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0; border-top: 1px solid var(--line);
}
.corp-step { padding: 2.5rem 2.5rem 2.5rem 0; border-right: 1px solid var(--line); }
.corp-step:last-child { border-right: none; padding-right: 0; }
.corp-step:not(:first-child) { padding-left: 2.5rem; }
.corp-step-track { margin-bottom: 1.4rem; }
.corp-step-body { display: flex; flex-direction: column; }
.corp-step-num {
  font-size: 2.8rem; font-weight: 800;
  color: var(--line); letter-spacing: -.06em; line-height: 1;
  display: block; margin-bottom: .8rem;
}
.corp-step-line {
  width: 100%; height: 1px;
  background: linear-gradient(to right, var(--gold), transparent);
  opacity: .3;
}
.corp-step-h {
  font-size: .88rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.01em; margin-bottom: .7rem;
}
html[data-theme="dark"] .corp-step-h { color: var(--text); }
.corp-step-p { font-size: .8rem; color: var(--text-soft); line-height: 1.8; }

/* ── NÚMEROS ── */
.corp-numeros-sec {
  background: var(--bg-alt);
  padding: 6rem 4.5rem;
  border-top: 1px solid var(--line);
  text-align: center;
  position: relative; overflow: hidden;
}
.corp-numeros-grain {
  position: absolute; inset: 0; opacity: .015;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  pointer-events: none;
}
.corp-numeros-inner { max-width: 1100px; margin: 0 auto; position: relative; z-index: 1; }
.corp-numeros-label {
  font-size: .4rem; letter-spacing: .38em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: 4rem;
  display: block; opacity: .8;
}
.corp-numeros-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0; margin-bottom: 4rem;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  padding: 3.5rem 0;
}
.corp-numero { padding: 0 2rem; border-right: 1px solid var(--line); }
.corp-numero:last-child { border-right: none; }
.corp-numero-n {
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 800; color: var(--ink); letter-spacing: -.06em; line-height: 1;
  margin-bottom: .5rem;
}
html[data-theme="dark"] .corp-numero-n { color: var(--text); }
.corp-numero-n span { color: var(--wine); }
html[data-theme="dark"] .corp-numero-n span { color: var(--gold); }
.corp-numero-l {
  font-size: .38rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; line-height: 1.6;
}
.corp-numeros-quote {
  display: flex; align-items: center; justify-content: center; gap: 1.5rem; flex-wrap: wrap;
  font-size: clamp(.88rem, 1.4vw, 1.1rem);
}
.corp-numeros-quote span:first-child { font-style: italic; color: var(--text-soft); font-weight: 300; }
.corp-numeros-quote-sep { color: var(--line); font-size: 1.5rem; }
.corp-numeros-quote span:last-child { color: var(--text-soft); }

/* ── CTA FINAL ── */
.corp-cta-sec {
  background: var(--bg);
  padding: 5rem 4.5rem;
  border-top: 1px solid var(--line);
}
.corp-cta-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.2fr; gap: 6rem; align-items: start;
}
.corp-cta-left { display: flex; flex-direction: column; }
.corp-cta-right { display: flex; flex-direction: column; }
.corp-cta-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.0; letter-spacing: -.04em;
  color: var(--ink); margin: .5rem 0 1.4rem;
}
html[data-theme="dark"] .corp-cta-h { color: var(--text); }
.corp-cta-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .corp-cta-h em { color: var(--gold); }
.corp-cta-p { font-size: .88rem; color: var(--text-soft); line-height: 1.85; }
.corp-cta-contact-grid { display: flex; flex-direction: column; gap: 1px; margin-bottom: 2rem; }
.corp-cta-channel {
  display: flex; align-items: center; gap: 1.5rem;
  padding: 1.6rem 1.8rem;
  background: var(--bg-alt);
  border: 1px solid var(--line);
  transition: border-color .25s, background .25s;
  text-decoration: none;
}
.corp-cta-channel:hover { border-color: var(--gold); }
.corp-cta-channel-icon {
  width: 40px; height: 40px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  color: var(--gold); border: 1px solid var(--line);
}
.corp-cta-channel-icon svg { width: 20px; height: 20px; fill: var(--gold); }
.corp-cta-channel-body { flex: 1; }
.corp-cta-channel-label {
  font-size: .38rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: .2rem; opacity: .8;
}
.corp-cta-channel-val {
  font-size: .82rem; font-weight: 600; color: var(--ink); margin-bottom: .2rem;
}
html[data-theme="dark"] .corp-cta-channel-val { color: var(--text); }
.corp-cta-channel-tag { font-size: .72rem; color: var(--text-muted); }
.corp-cta-channel-arrow {
  width: 18px; height: 18px; color: var(--text-muted); flex-shrink: 0;
  transition: transform .25s, color .25s;
}
.corp-cta-channel:hover .corp-cta-channel-arrow { transform: translateX(4px); color: var(--gold); }
.corp-cta-trust {
  display: flex; gap: 1.5rem; flex-wrap: wrap;
  border-top: 1px solid var(--line); padding-top: 1.5rem;
}
.corp-cta-trust-item {
  display: flex; align-items: center; gap: .5rem;
  font-size: .72rem; color: var(--text-muted);
}
.corp-cta-trust-item svg { width: 14px; height: 14px; color: var(--gold); flex-shrink: 0; }

/* ══════════════════════════════════════
   RESPONSIVE — CORPORATIVO
══════════════════════════════════════ */

/* ── Tablet ── */
@media (min-width: 769px) and (max-width: 1024px) {
  .corp-hero-content { padding: 7rem 3rem 3rem; }
  .corp-hero-h1 { font-size: clamp(2.8rem, 5vw, 5rem); }
  .corp-manifiesto { padding: 4rem 3rem; }
  .corp-manifiesto-inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .corp-servicios-sec { padding: 4rem 3rem; }
  .corp-servicios-grid { grid-template-columns: repeat(2, 1fr); }
  .corp-srv-card:nth-child(3) { border-right: 1px solid var(--line); }
  .corp-srv-card:nth-child(2),
  .corp-srv-card:nth-child(4) { border-right: none; }
  .corp-srv-card:nth-child(5),
  .corp-srv-card:nth-child(6) { border-bottom: none; }
  .corp-flota-sec { padding: 4rem 3rem; }
  .corp-flota-grid { grid-template-columns: repeat(2, 1fr); }
  .corp-flota-card:nth-child(2) { border-right: none; }
  .corp-flota-card:nth-child(1),
  .corp-flota-card:nth-child(2) { border-bottom: 1px solid var(--line); }
  .corp-proceso-sec { padding: 4rem 3rem; }
  .corp-proceso-steps { grid-template-columns: repeat(2, 1fr); }
  .corp-step:nth-child(2) { border-right: none; padding-right: 0; }
  .corp-step:nth-child(3) { border-top: 1px solid var(--line); }
  .corp-numeros-sec { padding: 4rem 3rem; }
  .corp-numeros-grid { grid-template-columns: repeat(2, 1fr); padding: 2.5rem 0; }
  .corp-numero:nth-child(2) { border-right: none; }
  .corp-numero:nth-child(3) { border-top: 1px solid var(--line); padding-top: 2rem; }
  .corp-cta-sec { padding: 4rem 3rem; }
  .corp-cta-inner { grid-template-columns: 1fr; gap: 3rem; }
}

/* ── Mobile ── */
@media (max-width: 768px) {
  /* Hero */
  .corp-hero { grid-template-columns: 1fr; }
  .corp-hero-content {
    padding: 0 1.6rem;
    padding-top: max(5rem, calc(env(safe-area-inset-top) + 4.5rem));
    padding-bottom: max(3rem, calc(env(safe-area-inset-bottom) + 2rem));
    justify-content: center; text-align: center;
  }
  .corp-hero-eyebrow { justify-content: center; }
  .corp-eyebrow-line { display: none; }
  .corp-hero-h1 { font-size: clamp(2.4rem, 9vw, 4rem); }
  .corp-hero-rule { margin: 0 auto 1.4rem; }
  .corp-hero-sub { margin: 0 auto 1.6rem; font-size: .84rem; }
  .corp-hero-btns { flex-direction: column; gap: .7rem; width: 100%; }

  .corp-hero-stats { justify-content: center; flex-wrap: wrap; gap: 1.2rem; margin-top: 1.5rem; }
  /* Manifiesto */
  .corp-manifiesto { padding: 3rem 1.6rem; }
  .corp-manifiesto-inner { grid-template-columns: 1fr; gap: 1.2rem; }
  .corp-manifiesto-quote { font-size: clamp(1.3rem, 5.5vw, 1.8rem); }
  /* Servicios */
  .corp-servicios-sec { padding: 3rem 1.6rem; }
  .corp-servicios-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .corp-servicios-grid { grid-template-columns: 1fr; }
  .corp-srv-card { border-right: none; }
  .corp-srv-card:nth-child(6) { border-bottom: none; }
  .corp-srv-card { padding: 2rem 1.6rem; }
  /* Flota */
  .corp-flota-sec { padding: 3rem 1.6rem; }
  .corp-flota-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .corp-flota-grid { grid-template-columns: repeat(2, 1fr); }
  .corp-flota-card:nth-child(2) { border-right: none; }
  .corp-flota-card:nth-child(1),
  .corp-flota-card:nth-child(2) { border-bottom: 1px solid var(--line); }
  /* Proceso */
  .corp-proceso-sec { padding: 3rem 1.6rem; }
  .corp-proceso-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .corp-proceso-steps { grid-template-columns: 1fr; }
  .corp-step { border-right: none; border-bottom: 1px solid var(--line); padding: 2rem 0; }
  .corp-step:not(:first-child) { padding-left: 0; }
  .corp-step:last-child { border-bottom: none; }
  /* Números */
  .corp-numeros-sec { padding: 3.5rem 1.6rem; }
  .corp-numeros-grid { grid-template-columns: repeat(2, 1fr); padding: 2rem 0; }
  .corp-numero { padding: 0 1rem; }
  .corp-numero:nth-child(2) { border-right: none; }
  .corp-numero:nth-child(3) { border-top: 1px solid var(--line); padding-top: 1.5rem; }
  .corp-numero-n { font-size: clamp(2.5rem, 10vw, 4rem); }
  .corp-numeros-quote { flex-direction: column; gap: .5rem; text-align: center; }
  .corp-numeros-quote-sep { display: none; }
  /* CTA */
  .corp-cta-sec { padding: 3rem 1.6rem; }
  .corp-cta-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .corp-cta-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .corp-cta-channel { padding: 1.2rem 1rem; gap: 1rem; }
  .corp-cta-trust { gap: 1rem; }
}

/* ── Missing utility classes ── */
.ai-popup-item-txt { display: flex; flex-direction: column; gap: .2rem; }
.sec-sub { font-size: .9rem; color: var(--text-soft); margin-top: .5rem; line-height: 1.7; }
.h-scroll-chevron { display: none; }
.kicker.center { text-align: center; justify-content: center; }

/* ═══════════════════════════════════════════════════════════════
   26. PÁGINA — DESPEDIDA DE SOLTERO/A
═══════════════════════════════════════════════════════════════ */

.wa-btn { bottom: 1.5rem; }

/* ── HERO ── */
.desp-hero {
  height: 100vh; height: 100dvh; min-height: 700px;
  position: relative; display: grid;
  grid-template-columns: 1fr 1fr; overflow: hidden; background: #080604;
}
.desp-hero-img { position: absolute; inset: 0; z-index: 0; }
.desp-hero-img img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 35%;
  animation: heroZoom 18s ease-in-out infinite alternate; will-change: transform;
}
.desp-hero-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(105deg, rgba(4,3,2,.93) 0%, rgba(4,3,2,.6) 48%, rgba(4,3,2,.1) 100%);
}
.desp-hero-content {
  position: relative; z-index: 4; display: flex; flex-direction: column;
  justify-content: flex-end; padding: 7rem 4.5rem 3.5rem 6rem; grid-column: 1;
}
.desp-hero-eyebrow {
  font-size: .52rem; letter-spacing: .44em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-bottom: 1.8rem;
  display: flex; align-items: center; gap: .8rem;
  animation: fadeUp .7s var(--ease) .3s both;
}
.desp-eyebrow-line { width: 28px; height: 1px; background: var(--gold); opacity: .6; flex-shrink: 0; }
.desp-hero-h1 {
  font-size: clamp(2.6rem, 4.2vw, 5.5rem);
  font-weight: 800; line-height: .95; letter-spacing: -.04em;
  color: #F0EDE8; margin-bottom: .8rem; overflow: hidden;
}
.desp-hero-h1 .line { display: block; overflow: hidden; padding-bottom: .18em; }
.desp-hero-h1 .line span { display: block; animation: hLineUp .9s var(--ease) both; }
.desp-hero-h1 .line:nth-child(1) span { animation-delay: .5s; }
.desp-hero-h1 .line:nth-child(2) span { animation-delay: .65s; }
.desp-hero-h1 .line:nth-child(3) span { animation-delay: .8s; }
.desp-hero-h1 em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.desp-hero-rule {
  width: 44px; height: 1px; background: var(--gold); opacity: .5; margin-bottom: 1.4rem;
  animation: fadeUp .7s var(--ease) .8s both;
}
.desp-hero-sub {
  font-size: .92rem; color: rgba(240,237,232,.55); max-width: 420px;
  line-height: 1.85; margin-bottom: 1.6rem;
  animation: fadeUp .7s var(--ease) .9s both;
}
.desp-hero-btns {
  display: flex; gap: 1rem; flex-wrap: wrap;
  animation: fadeUp .7s var(--ease) 1.05s both; margin-bottom: 1rem;
}
.desp-btn-g {
  color: rgba(255,255,255,.85); border-color: rgba(255,255,255,.4); background: transparent;
}
.desp-btn-g:hover { border-color: var(--gold); color: var(--gold); }
.desp-hero-stats {
  display: flex; gap: 2rem; margin-top: 1rem;
  padding-top: .9rem; border-top: 1px solid rgba(196,163,90,.15);
  animation: fadeUp .7s var(--ease) 1.2s both;
}
.desp-stat { display: flex; flex-direction: column; gap: .2rem; }
.desp-stat-n {
  font-size: clamp(1.4rem, 2vw, 2rem); font-weight: 800;
  color: #fff; letter-spacing: -.03em; line-height: 1;
}
.desp-stat-l {
  font-size: .36rem; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(240,237,232,.35); font-weight: 500;
}

/* ── DIFERENCIAL OSCURO ── */
.desp-diff-sec {
  background: #080604; padding: 5rem 4.5rem;
  border-top: 1px solid rgba(196,163,90,.08);
}
.desp-diff-inner { max-width: 1280px; margin: 0 auto; }
.desp-diff-hdr { margin-bottom: 4rem; max-width: 700px; }
.desp-diff-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: #F0EDE8; margin: .6rem 0;
}
.desp-diff-h em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.desp-diff-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0; border-top: 1px solid rgba(196,163,90,.1);
}
.desp-diff-item {
  padding: 2.5rem 2rem 2.5rem 0; border-right: 1px solid rgba(196,163,90,.08);
}
.desp-diff-item:last-child { border-right: none; }
.desp-diff-item:not(:first-child) { padding-left: 2rem; }
.desp-diff-icon {
  font-size: 1.2rem; color: var(--gold); margin-bottom: 1.2rem;
  display: block; opacity: .7;
}
.desp-diff-item-h {
  font-size: .9rem; font-weight: 700; color: #F0EDE8;
  letter-spacing: -.01em; margin-bottom: .7rem;
}
.desp-diff-item-p { font-size: .82rem; color: rgba(240,237,232,.35); line-height: 1.8; }

/* ── COMO FUNCIONA ── */
.desp-como-sec { background: var(--bg-alt); padding: 5rem 4.5rem; }
.desp-como-inner { max-width: 1280px; margin: 0 auto; }
.desp-como-hdr { margin-bottom: 4rem; max-width: 640px; }
.desp-como-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: var(--ink); margin: .6rem 0 1rem;
}
html[data-theme="dark"] .desp-como-h { color: var(--text); }
.desp-como-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .desp-como-h em { color: var(--gold); }
.desp-como-sub { font-size: .9rem; color: var(--text-soft); line-height: 1.85; }
.desp-como-steps {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0; border-top: 1px solid var(--line);
}
.desp-como-step { padding: 2.5rem 2.5rem 2.5rem 0; border-right: 1px solid var(--line); }
.desp-como-step:last-child { border-right: none; padding-right: 0; }
.desp-como-step:not(:first-child) { padding-left: 2.5rem; }
.desp-como-step-num {
  font-size: 2.8rem; font-weight: 800; color: var(--line);
  letter-spacing: -.06em; line-height: 1; display: block; margin-bottom: 1rem;
}
.desp-como-step-h {
  font-size: .88rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.01em; margin-bottom: .7rem;
}
html[data-theme="dark"] .desp-como-step-h { color: var(--text); }
.desp-como-step-p { font-size: .82rem; color: var(--text-soft); line-height: 1.8; }

/* ── CTA FINAL ── */
.desp-cta-sec {
  background: #080604; padding: 7rem 4.5rem;
  position: relative; overflow: hidden; text-align: center;
}
.desp-cta-grain {
  position: absolute; inset: -100px; opacity: .025; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.desp-cta-inner { max-width: 800px; margin: 0 auto; position: relative; z-index: 1; }
.desp-cta-label {
  font-size: .4rem; letter-spacing: .38em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; opacity: .7; margin-bottom: 1.5rem; display: block;
}
.desp-cta-h {
  font-size: clamp(2.4rem, 4.5vw, 5rem);
  font-weight: 800; line-height: 1.05; letter-spacing: -.04em;
  color: #F0EDE8; margin-bottom: 1.4rem;
}
.desp-cta-h em { font-style: italic; color: var(--gold-lt); font-weight: 300; }
.desp-cta-p {
  font-size: .9rem; color: rgba(240,237,232,.4); line-height: 1.85; margin-bottom: 2.5rem;
}
.desp-cta-btns { margin-bottom: 2rem; display: flex; justify-content: center; }
.desp-cta-btn-primary {
  display: inline-flex; align-items: center; gap: .9rem;
  background: var(--gold); color: #0A0806;
  padding: 1.1rem 2.5rem;
  font-size: .52rem; letter-spacing: .22em; font-weight: 700;
  text-transform: uppercase; transition: background .25s, transform .2s;
}
.desp-cta-btn-primary svg { width: 16px; height: 16px; stroke: #0A0806; flex-shrink: 0; }
.desp-cta-btn-primary:hover { background: #D4B36A; transform: translateY(-2px); }
.desp-cta-trust {
  display: flex; align-items: center; justify-content: center; gap: 2rem; flex-wrap: wrap;
  font-size: .38rem; letter-spacing: .16em; text-transform: uppercase;
  color: rgba(240,237,232,.25); font-weight: 500;
}

/* Structural containers */
.desp-gancho-left { display: flex; flex-direction: column; }
.desp-gancho-right { display: flex; flex-direction: column; }
.desp-como-step-body { display: flex; flex-direction: column; }
.desp-cta-content { display: flex; flex-direction: column; align-items: center; }

/* ── Tablet ── */
@media (min-width: 769px) and (max-width: 1024px) {
  .desp-hero-content { padding: 7rem 3rem 3rem; }
  .desp-gancho { padding: 4rem 3rem; }
  .desp-gancho-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .desp-filosofia-sec { padding: 4rem 3rem; }
  .desp-filosofia-hdr { grid-template-columns: 1fr !important; gap: 2rem !important; margin-bottom: 3rem !important; padding-bottom: 3rem !important; }
  .desp-momentos-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .desp-momento:nth-child(2) { border-right: none; }
  .desp-momento:nth-child(3) { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .desp-momento:nth-child(4) { border-bottom: 1px solid var(--line); }
  .desp-momento:nth-child(5) { border-right: none; border-bottom: none; }
  .desp-momento:nth-child(6) { border-right: none; }
  .desp-diff-sec { padding: 4rem 3rem; }
  .desp-diff-grid { grid-template-columns: repeat(2, 1fr); }
  .desp-diff-item:nth-child(2) { border-right: none; padding-right: 0; }
  .desp-diff-item:nth-child(3) { border-top: 1px solid rgba(196,163,90,.08); }
  .desp-como-sec { padding: 4rem 3rem; }
  .desp-como-steps { grid-template-columns: repeat(2, 1fr); }
  .desp-como-step:nth-child(2) { border-right: none; padding-right: 0; }
  .desp-como-step:nth-child(3) { border-top: 1px solid var(--line); }
  .desp-cta-sec { padding: 5rem 3rem; }
}

/* ── Mobile ── */
@media (max-width: 768px) {
  /* Hero */
  .desp-hero { grid-template-columns: 1fr; }
  .desp-hero-content {
    padding: 0 1.6rem;
    padding-top: max(5rem, calc(env(safe-area-inset-top) + 4.5rem));
    padding-bottom: max(3rem, calc(env(safe-area-inset-bottom) + 2rem));
    justify-content: center; text-align: center;
  }
  .desp-hero-eyebrow { justify-content: center; }
  .desp-eyebrow-line { display: none; }
  .desp-hero-h1 { font-size: clamp(2.4rem, 9vw, 4rem); }
  .desp-hero-rule { margin: 0 auto 1.4rem; }
  .desp-hero-sub { margin: 0 auto 1.6rem; font-size: .84rem; }
  .desp-hero-btns { flex-direction: column; gap: .7rem; width: 100%; }

  .desp-hero-stats { justify-content: center; flex-wrap: wrap; gap: 1.2rem; margin-top: 1.5rem; }
  /* Gancho */
  .desp-gancho { padding: 3rem 1.6rem; }
  .desp-gancho-inner { grid-template-columns: 1fr; gap: 2rem; }
  .desp-gancho-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  /* Filosofía + Momentos */
  .desp-filosofia-sec { padding: 3rem 1.6rem; }
  .desp-filosofia-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .desp-filosofia-hdr { grid-template-columns: 1fr; gap: 1.8rem; margin-bottom: 2rem; padding-bottom: 2rem; }
  .desp-momentos-grid { grid-template-columns: 1fr; }
  .desp-momento { border-right: none; }
  .desp-momento:nth-child(n) { border-bottom: 1px solid var(--line); }
  .desp-momento:last-child { border-bottom: none; }
  .desp-momento-media { height: 180px; }
  .desp-momento-cta-inner { padding: 1.8rem 1.4rem; }
  .desp-momento-cta-btn { width: 100%; justify-content: center; }
  /* Diferencial */
  .desp-diff-sec { padding: 3rem 1.6rem; }
  .desp-diff-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .desp-diff-grid { grid-template-columns: 1fr; }
  .desp-diff-item { border-right: none; border-bottom: 1px solid rgba(196,163,90,.08); padding: 2rem 0; }
  .desp-diff-item:last-child { border-bottom: none; }
  .desp-diff-item:not(:first-child) { padding-left: 0; }
  /* Como funciona */
  .desp-como-sec { padding: 3rem 1.6rem; }
  .desp-como-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .desp-como-steps { grid-template-columns: 1fr; }
  .desp-como-step { border-right: none; border-bottom: 1px solid var(--line); padding: 2rem 0; }
  .desp-como-step:last-child { border-bottom: none; }
  .desp-como-step:not(:first-child) { padding-left: 0; }
  /* CTA */
  .desp-cta-sec { padding: 4rem 1.6rem; }
  .desp-cta-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .desp-cta-btn-primary { width: 100%; justify-content: center; padding: 1.1rem 1.5rem; }
  .desp-cta-trust { gap: 1rem; }
}


/* ── FILOSOFÍA + MOMENTOS — reglas base ── */
.desp-filosofia-inner { max-width: 1280px; margin: 0 auto; }
.desp-filosofia-hdr-left { display: flex; flex-direction: column; }
.desp-filosofia-hdr-right { display: flex; flex-direction: column; }
.desp-filosofia-intro { font-size: .9rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 2rem; }
.desp-filosofia-claim { display: flex; gap: 1rem; align-items: flex-start; border-left: 2px solid var(--gold); padding-left: 1.2rem; }
.desp-filosofia-claim-icon { font-size: 1rem; color: var(--gold); opacity: .7; flex-shrink: 0; margin-top: .1rem; }
.desp-filosofia-claim p { font-size: .86rem; color: var(--text-soft); line-height: 1.75; font-style: italic; }
.desp-momento-body { padding: 1.4rem 1.6rem 1.8rem; flex: 1; display: flex; flex-direction: column; gap: .3rem; }
.desp-momento-hora { font-size: .36rem; letter-spacing: .28em; text-transform: uppercase; color: var(--text-muted); font-weight: 500; margin-bottom: .2rem; }
.desp-momento-badge { display: inline-block; font-size: .34rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; padding: .22rem .7rem; margin-bottom: .5rem; width: fit-content; }
.desp-momento-badge-opt { color: var(--text-muted); border: 1px solid var(--line); }
.desp-momento-badge-gold { color: var(--gold); border: 1px solid rgba(196,163,90,.3); background: rgba(196,163,90,.06); }
.desp-momento-badge-wine { color: var(--wine); border: 1px solid rgba(107,29,42,.2); background: rgba(107,29,42,.05); }
html[data-theme="dark"] .desp-momento-badge-wine { color: #E05070; border-color: rgba(224,80,112,.25); background: rgba(224,80,112,.06); }
.desp-momento-h { font-size: .92rem; font-weight: 700; letter-spacing: -.02em; color: var(--ink); line-height: 1.2; }
html[data-theme="dark"] .desp-momento-h { color: var(--text); }
.desp-momento-p { font-size: .8rem; color: var(--text-soft); line-height: 1.7; flex: 1; }
.desp-momento-featured { border-left: 2px solid var(--wine); }
html[data-theme="dark"] .desp-momento-featured { border-left-color: #E05070; }
.desp-momento-cta-icon { font-size: 1.6rem; color: var(--gold); opacity: .6; margin-bottom: 1rem; }
.desp-momento-cta-h { font-size: 1.1rem; font-weight: 700; color: var(--ink); letter-spacing: -.02em; margin-bottom: .7rem; }
html[data-theme="dark"] .desp-momento-cta-h { color: var(--text); }
.desp-momento-cta-p { font-size: .82rem; color: var(--text-soft); line-height: 1.7; margin-bottom: 1.4rem; flex: 1; }

/* ── FILOSOFÍA HEADER ── */
.desp-filosofia-sec {
  background: var(--bg-alt);
  padding: 5rem 4.5rem 0;
  border-top: 1px solid var(--line);
}
.desp-filosofia-inner { max-width: 1280px; margin: 0 auto; }
.desp-filosofia-hdr {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 5rem; align-items: start;
  margin-bottom: 5rem; padding-bottom: 4rem;
  border-bottom: 1px solid var(--line);
}
.desp-filosofia-hdr-left { display: flex; flex-direction: column; }
.desp-filosofia-hdr-right { display: flex; flex-direction: column; }
.desp-filosofia-h {
  font-size: clamp(2.8rem, 4.5vw, 5.5rem);
  font-weight: 800; line-height: 1.02; letter-spacing: -.04em;
  color: var(--ink); margin: .6rem 0;
}
html[data-theme="dark"] .desp-filosofia-h { color: var(--text); }
.desp-filosofia-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .desp-filosofia-h em { color: var(--gold); }
.desp-filosofia-intro { font-size: .9rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 2rem; }
.desp-filosofia-claim {
  display: flex; gap: 1rem; align-items: flex-start;
  border-left: 2px solid var(--gold); padding-left: 1.2rem;
}
.desp-filosofia-claim-icon { font-size: 1rem; color: var(--gold); opacity: .7; flex-shrink: 0; margin-top: .15rem; }
.desp-filosofia-claim p { font-size: .86rem; color: var(--text-soft); line-height: 1.75; font-style: italic; }

/* ── MOMENTOS — FULL-BLEED ALTERNADO ── */
.desp-momentos { display: flex; flex-direction: column; }

.desp-momento-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 520px;
  border-top: 1px solid var(--line);
}
.desp-momento-row:last-of-type { border-bottom: 1px solid var(--line); }
.desp-momento-row-rev .desp-momento-img { order: 2; }
.desp-momento-row-rev .desp-momento-txt { order: 1; }

.desp-momento-img {
  position: relative; overflow: hidden;
}
.desp-momento-img img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  transition: transform .8s var(--ease);
  filter: brightness(.88) saturate(.8);
}
.desp-momento-row:hover .desp-momento-img img {
  transform: scale(1.04);
  filter: brightness(1) saturate(1);
}
.desp-momento-img-featured::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(107,29,42,.25) 0%, transparent 60%);
  z-index: 1; pointer-events: none;
}

.desp-momento-txt {
  display: flex; flex-direction: column; justify-content: center;
  padding: 4rem 5rem;
  background: var(--bg-alt);
  border-left: 1px solid var(--line);
  transition: background .3s;
}
.desp-momento-row-rev .desp-momento-txt {
  border-left: none;
  border-right: 1px solid var(--line);
}
.desp-momento-row:hover .desp-momento-txt { background: var(--bg); }

.desp-momento-txt-featured {
  border-left: 3px solid var(--wine) !important;
}
html[data-theme="dark"] .desp-momento-txt-featured { border-left-color: #E05070 !important; }

.desp-momento-meta {
  display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem;
}
.desp-momento-hora {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
}
.desp-momento-badge {
  font-size: .34rem; letter-spacing: .14em; text-transform: uppercase;
  font-weight: 600; padding: .22rem .75rem;
}
.desp-momento-badge-opt { color: var(--text-muted); border: 1px solid var(--line); }
.desp-momento-badge-gold { color: var(--gold); border: 1px solid rgba(196,163,90,.3); background: rgba(196,163,90,.06); }
.desp-momento-badge-wine { color: var(--wine); border: 1px solid rgba(107,29,42,.2); background: rgba(107,29,42,.05); }
html[data-theme="dark"] .desp-momento-badge-wine { color: #E05070; border-color: rgba(224,80,112,.3); }

.desp-momento-h {
  font-size: clamp(1.8rem, 2.8vw, 3.2rem);
  font-weight: 800; letter-spacing: -.04em; color: var(--ink);
  line-height: 1.05; margin-bottom: 1.2rem;
}
html[data-theme="dark"] .desp-momento-h { color: var(--text); }
.desp-momento-p {
  font-size: .88rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 1.6rem;
  max-width: 440px;
}
.desp-momento-chips {
  display: flex; flex-wrap: wrap; gap: .4rem;
}
.desp-momento-chips span {
  font-size: .33rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold); border: 1px solid var(--line); padding: .25rem .65rem; font-weight: 500;
}

.desp-momento-cta-row {
  background: var(--bg-alt);
  padding: 5rem 4.5rem;
  display: flex; align-items: center; justify-content: center;
  text-align: center;
  border-top: 1px solid var(--line);
}
.desp-momento-cta-content { max-width: 640px; }
.desp-momento-cta-icon { display: none; }
.desp-momento-cta-h {
  font-size: clamp(2rem, 3.5vw, 4rem);
  font-weight: 800; letter-spacing: -.04em; color: var(--ink); margin-bottom: 1rem;
}
html[data-theme="dark"] .desp-momento-cta-h { color: var(--text); }
.desp-momento-cta-p {
  font-size: .88rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 2rem;
}
.desp-momento-cta-btn {
  display: inline-flex; align-items: center; gap: .8rem;
  background: var(--wine); color: #fff;
  padding: 1rem 2.2rem;
  font-size: .5rem; letter-spacing: .2em; font-weight: 700; text-transform: uppercase;
  transition: background .25s, transform .2s;
}
.desp-momento-cta-btn:hover { background: var(--wine-dk); transform: translateY(-2px); }
.desp-momento-cta-btn svg { flex-shrink: 0; stroke: #fff; }

/* Tablet */
@media (min-width: 769px) and (max-width: 1024px) {
  .desp-filosofia-sec { padding: 4rem 3rem 0; }
  .desp-filosofia-hdr { grid-template-columns: 1fr; gap: 2rem; }
  .desp-momento-row { min-height: 420px; }
  .desp-momento-txt { padding: 3rem; }
  .desp-momento-cta-row { padding: 4rem 3rem; }
}

/* Mobile */
@media (max-width: 768px) {
  .desp-filosofia-sec { padding: 3rem 1.6rem 0; }
  .desp-filosofia-hdr { grid-template-columns: 1fr; gap: 1.8rem; margin-bottom: 0; padding-bottom: 2rem; }
  .desp-filosofia-h { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .desp-momento-row { grid-template-columns: 1fr; min-height: auto; }
  .desp-momento-row-rev .desp-momento-img { order: 0; }
  .desp-momento-row-rev .desp-momento-txt { order: 1; }
  .desp-momento-img { height: 56vw; min-height: 220px; position: relative; }
  .desp-momento-txt { padding: 2rem 1.6rem; border-left: none !important; border-right: none !important; border-top: 1px solid var(--line); }
  .desp-momento-txt-featured { border-left: none !important; border-top: 3px solid var(--wine) !important; }
  .desp-momento-h { font-size: clamp(1.5rem, 6vw, 2.2rem); }
  .desp-momento-p { max-width: 100%; font-size: .84rem; }
  .desp-momento-cta-row { padding: 3.5rem 1.6rem; }
  .desp-momento-cta-h { font-size: clamp(1.6rem, 6vw, 2.4rem); }
  .desp-momento-cta-btn { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════
   27. PÁGINA — EVENTOS EN MENDOZA (editorial de lujo)
═══════════════════════════════════════════════════════════════ */

.wa-btn { bottom: 1.5rem; }

/* ── PORTADA EDITORIAL ── */
.ev-portada {
  min-height: 100vh; min-height: 100dvh;
  background: var(--bg);
  padding-top: var(--nav-h);
  display: flex; flex-direction: column;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}

/* Top bar — número de edición + contacto */
.ev-portada-top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 2rem 5rem 0;
  border-bottom: 1px solid var(--line);
  padding-bottom: 1.2rem;
  animation: fadeUp .5s var(--ease) .2s both;
}
.ev-portada-meta {
  display: flex; align-items: center; gap: .8rem;
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
}
.ev-portada-sep { color: var(--line); }
.ev-portada-issue { color: var(--text-muted); font-weight: 600; }
.ev-portada-cat { color: var(--text-muted); }
.ev-portada-contact {
  font-size: .38rem; letter-spacing: .22em; text-transform: uppercase;
  font-weight: 600; color: var(--wine); transition: color .2s;
}
html[data-theme="dark"] .ev-portada-contact { color: var(--gold); }
.ev-portada-contact:hover { color: var(--wine-dk); }

/* Título gigante */
.ev-portada-titulo {
  padding: 0 3rem;
  flex: 1; display: flex; flex-direction: column; justify-content: center;
}
.ev-portada-linea {
  display: block;
  line-height: 1.15;
  padding: 0 0 .12em;
}
.ev-portada-word {
  display: block;
  font-size: clamp(3rem, 9vw, 11rem);
  font-weight: 800; letter-spacing: -.04em;
  color: var(--ink);
  animation: hLineUp 1s var(--ease) both;
}
html[data-theme="dark"] .ev-portada-word { color: var(--text); }
.ev-portada-linea-1 .ev-portada-word { animation-delay: .3s; }
.ev-portada-linea-2 .ev-portada-word { animation-delay: .5s; }
.ev-portada-linea-3 .ev-portada-word { animation-delay: .7s; }
.ev-portada-word-italic {
  font-style: italic; color: var(--wine); font-weight: 300;
}
html[data-theme="dark"] .ev-portada-word-italic { color: var(--gold); }

/* Bottom bar — descripción + stats */
.ev-portada-bottom {
  border-top: 1px solid var(--line);
  padding: 0 5rem;
}
.ev-portada-desc {
  padding: 1.8rem 0;
  animation: fadeUp .6s var(--ease) .9s both;
}
.ev-portada-desc p {
  font-size: .88rem; color: var(--text-soft); line-height: 1.75; max-width: 420px;
}
.ev-portada-stats {
  display: flex; align-items: center;
  padding: 1.8rem 0 1.8rem 3rem;
  gap: 0;
  animation: fadeUp .6s var(--ease) 1s both;
}
.ev-portada-stat {
  display: flex; flex-direction: column; gap: .25rem; flex: 1;
}
.ev-portada-stat-n {
  font-size: clamp(1.8rem, 3.5vw, 3.5rem);
  font-weight: 800; color: var(--ink); letter-spacing: -.05em; line-height: 1;
}
html[data-theme="dark"] .ev-portada-stat-n { color: var(--text); }
.ev-portada-stat-u {
  font-size: .34rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
}
.ev-portada-stat-sep {
  width: 1px; background: var(--line); align-self: stretch; margin: 0 2rem;
}

/* ── STATEMENT ── */
.ev-statement-sec {
  background: var(--bg-alt);
  padding: 8rem 5rem;
  border-top: 1px solid var(--line);
}
.ev-statement-inner {
  max-width: 1000px; margin: 0 auto;
  display: grid; grid-template-columns: 80px 1fr; gap: 4rem; align-items: start;
}
.ev-statement-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; writing-mode: vertical-rl;
  transform: rotate(180deg); padding-top: .5rem;
}
.ev-statement-q {
  font-size: clamp(1.8rem, 3.5vw, 4rem);
  font-weight: 800; line-height: 1.1; letter-spacing: -.04em;
  color: var(--ink); margin: 0;
  border: none; padding: 0;
}
html[data-theme="dark"] .ev-statement-q { color: var(--text); }
.ev-statement-q em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .ev-statement-q em { color: var(--gold); }
.ev-statement-firma {
  grid-column: 2; display: flex; align-items: center; gap: 1.2rem; margin-top: 2rem;
}
.ev-statement-firma-line { width: 30px; height: 1px; background: var(--gold); opacity: .6; flex-shrink: 0; }
.ev-statement-firma span {
  font-size: .36rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
}

/* ── LISTA EDITORIAL DE EVENTOS ── */
.ev-lista-sec {
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.ev-lista-inner { max-width: 1280px; margin: 0 auto; }

.ev-lista-hdr {
  display: flex; align-items: baseline; gap: 2rem;
  padding: 4rem 5rem 3rem;
  border-bottom: 1px solid var(--line);
}
.ev-lista-hdr-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; flex-shrink: 0;
}
.ev-lista-hdr-h {
  font-size: clamp(1.4rem, 2.5vw, 2.5rem);
  font-weight: 800; letter-spacing: -.04em; color: var(--ink);
}
html[data-theme="dark"] .ev-lista-hdr-h { color: var(--text); }

.ev-lista-item {
  display: grid; grid-template-columns: 1fr 1.6fr;
  padding: 4rem 5rem;
  border-bottom: 1px solid var(--line);
  transition: background .3s;
  gap: 5rem; align-items: start;
}
.ev-lista-item:last-child { border-bottom: none; }
@media(hover:hover) { .ev-lista-item:hover { background: var(--bg-alt); } }

.ev-lista-item-left { display: flex; flex-direction: column; gap: 1.2rem; position: sticky; top: calc(var(--nav-h) + 2rem); }
.ev-lista-n {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
}
.ev-lista-h {
  font-size: clamp(2rem, 3vw, 3.5rem);
  font-weight: 800; letter-spacing: -.05em; color: var(--ink); line-height: 1;
}
html[data-theme="dark"] .ev-lista-h { color: var(--text); }
.ev-lista-h em { display: block; font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .ev-lista-h em { color: var(--gold); }

.ev-lista-item-right { display: flex; flex-direction: column; gap: 1.4rem; }
.ev-lista-p { font-size: .9rem; color: var(--text-soft); line-height: 1.85; }
.ev-lista-tags {
  display: flex; flex-wrap: wrap; gap: .4rem;
}
.ev-lista-tags span {
  font-size: .33rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold); border: 1px solid var(--line); padding: .25rem .7rem; font-weight: 500;
}
.ev-lista-link {
  font-size: .48rem; letter-spacing: .18em; text-transform: uppercase;
  font-weight: 700; color: var(--wine); display: inline-flex; align-items: center;
  transition: color .2s, letter-spacing .2s;
}
html[data-theme="dark"] .ev-lista-link { color: var(--gold); }
.ev-lista-link:hover { color: var(--wine-dk); letter-spacing: .24em; }

/* ── FOTO FULL-BLEED ── */
.ev-foto-sec {
  position: relative; height: 70vh; min-height: 400px;
  overflow: hidden; border-top: 1px solid var(--line);
}
.ev-foto-img { position: absolute; inset: 0; }
.ev-foto-img img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 40%;
  filter: brightness(.6) saturate(.7);
}
.ev-foto-caption {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 2rem 5rem;
  display: flex; align-items: flex-end; gap: 2rem;
  background: linear-gradient(to top, rgba(4,3,2,.7) 0%, transparent 100%);
}
.ev-foto-caption-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: rgba(240,237,232,.4); font-weight: 500; flex-shrink: 0; margin-bottom: .1rem;
}
.ev-foto-caption p {
  font-size: .88rem; color: rgba(240,237,232,.55); line-height: 1.6; max-width: 500px;
}

/* ── COLUMNAS DIFERENCIAL ── */
.ev-columnas-sec {
  background: var(--bg-alt);
  padding: 6rem 5rem;
  border-top: 1px solid var(--line);
}
.ev-columnas-inner { max-width: 1280px; margin: 0 auto; }
.ev-columnas-hdr {
  display: flex; align-items: baseline; gap: 2rem;
  margin-bottom: 4rem; padding-bottom: 3rem;
  border-bottom: 1px solid var(--line);
}
.ev-columnas-hdr-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; flex-shrink: 0;
}
.ev-columnas-hdr-h {
  font-size: clamp(2rem, 4vw, 5rem);
  font-weight: 800; letter-spacing: -.05em; color: var(--ink); line-height: 1;
}
html[data-theme="dark"] .ev-columnas-hdr-h { color: var(--text); }
.ev-columnas-hdr-h em { display: block; font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .ev-columnas-hdr-h em { color: var(--gold); }
.ev-columnas-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
}
.ev-col {
  padding: 0 3rem 0 0;
  border-right: 1px solid var(--line);
}
.ev-col:last-child { border-right: none; padding-right: 0; }
.ev-col:not(:first-child) { padding-left: 3rem; }
.ev-col-rule {
  width: 24px; height: 2px; background: var(--gold); margin-bottom: 1.6rem; opacity: .7;
}
.ev-col-h {
  font-size: clamp(1.1rem, 1.8vw, 2rem); font-weight: 800;
  letter-spacing: -.04em; color: var(--ink); line-height: 1.05; margin-bottom: 1rem;
}
html[data-theme="dark"] .ev-col-h { color: var(--text); }
.ev-col-p { font-size: .82rem; color: var(--text-soft); line-height: 1.8; }

/* ── PROCESO ── */
.ev-proceso-sec {
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.ev-proceso-inner { max-width: 1280px; margin: 0 auto; }
.ev-proceso-hdr {
  display: flex; align-items: baseline; gap: 2rem;
  padding: 4rem 5rem 3rem;
  border-bottom: 1px solid var(--line);
}
.ev-proceso-hdr-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; flex-shrink: 0;
}
.ev-proceso-hdr-h {
  font-size: clamp(2rem, 4vw, 5rem);
  font-weight: 800; letter-spacing: -.05em; color: var(--ink); line-height: 1;
}
html[data-theme="dark"] .ev-proceso-hdr-h { color: var(--text); }
.ev-proceso-lista { display: flex; flex-direction: column; }
.ev-proceso-item {
  display: grid; grid-template-columns: 140px 1fr;
  padding: 3rem 5rem;
  border-bottom: 1px solid var(--line);
  align-items: start; gap: 3rem;
  transition: background .3s;
}
.ev-proceso-item:last-child { border-bottom: none; }
@media(hover:hover) { .ev-proceso-item:hover { background: var(--bg-alt); } }
.ev-proceso-n {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; padding-top: .2rem; white-space: nowrap;
}
.ev-proceso-body { display: flex; flex-direction: column; gap: .7rem; }
.ev-proceso-h {
  font-size: clamp(1.2rem, 2vw, 2rem); font-weight: 800;
  letter-spacing: -.03em; color: var(--ink);
}
html[data-theme="dark"] .ev-proceso-h { color: var(--text); }
.ev-proceso-p { font-size: .88rem; color: var(--text-soft); line-height: 1.8; max-width: 600px; }

/* ── CTA EDITORIAL FINAL ── */
.ev-cierre-sec {
  background: var(--bg-alt);
  border-top: 2px solid var(--gold);
}
.ev-cierre-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr;
  min-height: 60vh;
}
.ev-cierre-left {
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 5rem 5rem 5rem 5rem;
  border-right: 1px solid var(--line);
}
.ev-cierre-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; margin-bottom: 2rem; display: block;
}
.ev-cierre-h {
  font-size: clamp(3rem, 6vw, 8rem);
  font-weight: 800; letter-spacing: -.04em; color: var(--ink); line-height: .9;
}
html[data-theme="dark"] .ev-cierre-h { color: var(--text); }
.ev-cierre-right {
  display: flex; flex-direction: column; justify-content: center;
  padding: 5rem;
}
.ev-cierre-p {
  font-size: .9rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 2.5rem;
}
.ev-cierre-btns { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 2rem; }
.ev-cierre-btn-wa {
  display: inline-flex; align-items: center;
  background: var(--wine); color: #fff;
  padding: 1.1rem 2rem;
  font-size: .5rem; letter-spacing: .2em; font-weight: 700; text-transform: uppercase;
  transition: background .25s;
}
.ev-cierre-btn-wa:hover { background: var(--wine-dk); }
.ev-cierre-btn-mail {
  display: inline-flex; align-items: center;
  border: 1px solid var(--line); color: var(--text-soft);
  padding: 1.1rem 2rem;
  font-size: .5rem; letter-spacing: .12em; font-weight: 400;
  transition: border-color .2s, color .2s;
}
.ev-cierre-btn-mail:hover { border-color: var(--gold); color: var(--ink); }
html[data-theme="dark"] .ev-cierre-btn-mail:hover { color: var(--text); }
.ev-cierre-trust {
  display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
  font-size: .34rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
}

/* ══════════════════════════════════════
   RESPONSIVE — EVENTOS
══════════════════════════════════════ */

/* Tablet */
@media (min-width: 769px) and (max-width: 1024px) {
  .ev-portada-top { padding: 1.5rem 3rem 1.2rem; }
  .ev-portada-titulo { padding: 0 2.5rem; }
  .ev-portada-bottom { padding: 0 3rem; }
  .ev-portada-desc { padding-right: 2rem; }
  .ev-portada-stats { padding-left: 2rem; }
  .ev-statement-sec { padding: 5rem 3rem; }
  .ev-lista-hdr { padding: 3rem 3rem 2rem; }
  .ev-lista-item { padding: 3rem; gap: 3rem; }
  .ev-foto-caption { padding: 2rem 3rem; }
  .ev-columnas-sec { padding: 4rem 3rem; }
  .ev-columnas-grid { grid-template-columns: repeat(2, 1fr); }
  .ev-col:nth-child(2) { border-right: none; padding-right: 0; }
  .ev-col:nth-child(3) { border-right: 1px solid var(--line); padding-left: 0; border-top: 1px solid var(--line); padding-top: 2.5rem; }
  .ev-col:nth-child(4) { border-right: none; padding-right: 0; padding-left: 3rem; border-top: 1px solid var(--line); padding-top: 2.5rem; }
  .ev-proceso-hdr { padding: 3rem 3rem 2rem; }
  .ev-proceso-item { padding: 2.5rem 3rem; grid-template-columns: 100px 1fr; gap: 2rem; }
  .ev-cierre-inner { grid-template-columns: 1fr; min-height: auto; }
  .ev-cierre-left { border-right: none; border-bottom: 1px solid var(--line); padding: 4rem 3rem 3rem; }
  .ev-cierre-right { padding: 3rem; }
}

/* Mobile */
@media (max-width: 768px) {
  .ev-portada-top { padding: 1rem 1.6rem .8rem; }
  .ev-portada-titulo { padding: 0 1.5rem; }
  .ev-portada-word { font-size: clamp(2.5rem, 11vw, 5rem); }
  .ev-portada-bottom { grid-template-columns: 1fr; padding: 0 1.6rem; }
  .ev-portada-desc { border-right: none; border-bottom: 1px solid var(--line); padding: 1.5rem 0; }
  .ev-portada-desc p { max-width: 100%; }
  .ev-portada-stats { padding: 1.5rem 0; flex-wrap: wrap; gap: 1rem; }
  .ev-portada-stat-sep { display: none; }
  .ev-statement-sec { padding: 4rem 1.6rem; }
  .ev-statement-inner { grid-template-columns: 1fr; gap: 2rem; }
  .ev-statement-num { writing-mode: horizontal-tb; transform: none; }
  .ev-statement-firma { grid-column: 1; }
  .ev-lista-hdr { padding: 2rem 1.6rem 1.5rem; }
  .ev-lista-item { grid-template-columns: 1fr; padding: 2.5rem 1.6rem; gap: 2rem; }
  .ev-lista-item-left { position: static; }
  .ev-lista-h { font-size: clamp(1.6rem, 7vw, 2.5rem); }
  .ev-foto-sec { height: 50vw; min-height: 260px; }
  .ev-foto-caption { padding: 1.5rem 1.6rem; gap: 1rem; }
  .ev-columnas-sec { padding: 3rem 1.6rem; }
  .ev-columnas-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .ev-col { border-right: none; padding: 0 !important; border-top: 1px solid var(--line); padding-top: 2rem !important; }
  .ev-col:first-child { border-top: none; padding-top: 0 !important; }
  .ev-proceso-hdr { padding: 2rem 1.6rem 1.5rem; }
  .ev-proceso-item { grid-template-columns: 1fr; padding: 2rem 1.6rem; gap: .8rem; }
  .ev-cierre-inner { grid-template-columns: 1fr; min-height: auto; }
  .ev-cierre-left { border-right: none; border-bottom: 1px solid var(--line); padding: 3rem 1.6rem 2.5rem; }
  .ev-cierre-h { font-size: clamp(2.5rem, 10vw, 5rem); }
  .ev-cierre-right { padding: 2.5rem 1.6rem; }
  .ev-cierre-btn-wa, .ev-cierre-btn-mail { justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════
   28. BLOGS — Índice + Artículos individuales
═══════════════════════════════════════════════════════════════ */

.wa-btn { bottom: 1.5rem; }

/* ── BLOG INDEX — HERO ── */
.blog-hero {
  background: var(--bg);
  padding: calc(var(--nav-h) + 4rem) 4.5rem 4rem;
  border-bottom: 1px solid var(--line);
  max-width: 1280px;
  margin: 0 auto;
}
.blog-hero-eyebrow {
  display: flex; align-items: center; gap: .8rem;
  font-size: .52rem; letter-spacing: .44em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-bottom: 1.4rem;
}
.blog-hero-eyebrow-line { width: 28px; height: 1px; background: var(--gold); opacity: .6; }
.blog-hero-h {
  font-size: clamp(3rem, 7vw, 8rem);
  font-weight: 800; letter-spacing: -.04em; line-height: .92;
  color: var(--ink); margin-bottom: 1.2rem;
}
html[data-theme="dark"] .blog-hero-h { color: var(--text); }
.blog-hero-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .blog-hero-h em { color: var(--gold); }
.blog-hero-sub {
  font-size: .92rem; color: var(--text-soft); line-height: 1.8; max-width: 560px;
}

/* ── BLOG GRID ── */
.blog-grid-sec { background: var(--bg); padding: 3rem 4.5rem 6rem; }
.blog-grid-inner { max-width: 1280px; margin: 0 auto; }
.blog-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 0; border: 1px solid var(--line);
}

.blog-card {
  display: flex; flex-direction: column;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  transition: background .25s;
  overflow: hidden;
}
.blog-card:nth-child(3n) { border-right: none; }
@media(hover:hover) { .blog-card:hover { background: var(--bg-alt); } }

.blog-card-img {
  height: 220px; overflow: hidden; flex-shrink: 0;
  background: var(--bg-alt);
}
.blog-card-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s var(--ease);
  filter: brightness(.9) saturate(.85);
}
.blog-card:hover .blog-card-img img { transform: scale(1.04); filter: none; }

.blog-card-body { padding: 1.8rem 1.8rem 2rem; flex: 1; display: flex; flex-direction: column; }
.blog-card-cat {
  font-size: .36rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: .8rem; opacity: .8;
}
.blog-card-h {
  font-size: clamp(.9rem, 1.2vw, 1.2rem); font-weight: 700;
  letter-spacing: -.02em; color: var(--ink); line-height: 1.25; margin-bottom: .7rem; flex: 1;
}
html[data-theme="dark"] .blog-card-h { color: var(--text); }
.blog-card-desc {
  font-size: .82rem; color: var(--text-soft); line-height: 1.7; margin-bottom: 1.2rem;
}
.blog-card-link {
  font-size: .44rem; letter-spacing: .18em; text-transform: uppercase;
  font-weight: 700; color: var(--wine); display: inline-flex; align-items: center; gap: .4rem;
  transition: gap .2s, color .2s;
}
html[data-theme="dark"] .blog-card-link { color: var(--gold); }
.blog-card:hover .blog-card-link { gap: .7rem; }

/* ── BLOG ARTICLE — estructura individual ── */
.blog-article-page { background: var(--bg); }

.blog-art-header {
  position: relative;
  width: 100%;
  min-height: 70vh;
  min-height: 70dvh;
  display: flex; flex-direction: column; justify-content: flex-end;
  overflow: hidden;
  padding-top: var(--nav-h);
}

/* Background image — full bleed */
.blog-art-header-img {
  position: absolute; inset: 0; z-index: 0;
}
.blog-art-header-img img {
  width: 100%; height: 100%; object-fit: cover; object-position: center;
  filter: brightness(.45) saturate(.75);
  display: block;
}

/* Gradient overlay for text legibility */
.blog-art-header-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(
    to top,
    rgba(4,3,2,.85) 0%,
    rgba(4,3,2,.4) 50%,
    rgba(4,3,2,.15) 100%
  );
}

/* Text content */
.blog-art-header-body {
  position: relative; z-index: 2;
  padding: 3rem 4.5rem 4rem;
  max-width: 900px;
}

.blog-art-breadcrumb {
  display: flex; align-items: center; gap: .6rem;
  font-size: .38rem; letter-spacing: .18em; text-transform: uppercase;
  color: rgba(240,237,232,.5); margin-bottom: 1.6rem;
}
.blog-art-breadcrumb a { color: rgba(240,237,232,.5); transition: color .2s; }
.blog-art-breadcrumb a:hover { color: var(--gold); }
.blog-art-breadcrumb-sep { opacity: .4; }

.blog-art-cat {
  font-size: .44rem; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: 1rem; opacity: .85;
}
.blog-art-h1 {
  font-size: clamp(2.2rem, 5vw, 5.5rem);
  font-weight: 800; letter-spacing: -.04em; line-height: 1.02;
  color: #F0EDE8; margin-bottom: 1rem;
}
.blog-art-sub {
  font-size: 1rem; color: rgba(240,237,232,.65); line-height: 1.75;
  font-style: italic; margin-bottom: 1.6rem; max-width: 620px;
}
.blog-art-meta {
  display: flex; align-items: center; gap: 1.2rem;
  padding-top: 1.2rem; border-top: 1px solid rgba(240,237,232,.15);
  font-size: .4rem; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(240,237,232,.45); font-weight: 500;
}
.blog-art-meta-dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(240,237,232,.25); }

/* Hero image — hide, now used as bg */
.blog-art-hero-img { display: none; }

/* Content */
.blog-art-content {
  max-width: 760px; margin: 0 auto;
  padding: 4rem 4.5rem 0;
}
.blog-art-content p {
  font-size: .95rem; color: var(--text-soft); line-height: 1.9;
  margin-bottom: 1.6rem;
}
.blog-art-content h2 {
  font-size: clamp(1.4rem, 2.5vw, 2.2rem);
  font-weight: 800; letter-spacing: -.03em; color: var(--ink);
  margin: 3rem 0 1rem; line-height: 1.1;
}
html[data-theme="dark"] .blog-art-content h2 { color: var(--text); }
.blog-art-content h3 {
  font-size: clamp(1.1rem, 1.8vw, 1.5rem);
  font-weight: 700; letter-spacing: -.02em; color: var(--ink);
  margin: 2.2rem 0 .8rem; line-height: 1.2;
}
html[data-theme="dark"] .blog-art-content h3 { color: var(--text); }
.blog-art-content ul, .blog-art-content ol {
  padding-left: 1.4rem; margin-bottom: 1.6rem;
}
.blog-art-content li {
  font-size: .95rem; color: var(--text-soft); line-height: 1.8; margin-bottom: .4rem;
}
.blog-art-content strong { color: var(--ink); font-weight: 700; }
html[data-theme="dark"] .blog-art-content strong { color: var(--text); }
.blog-art-content hr {
  border: none; border-top: 1px solid var(--line); margin: 2.5rem 0;
}
.blog-art-content blockquote {
  border-left: 3px solid var(--gold); padding-left: 1.5rem;
  margin: 2rem 0; font-style: italic;
}
.blog-art-content blockquote p { color: var(--text-soft); font-size: 1rem; }

/* Pull quote */
.blog-pull-quote {
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  padding: 2rem 0; margin: 2.5rem 0;
  font-size: clamp(1.1rem, 2vw, 1.6rem);
  font-weight: 700; letter-spacing: -.03em; color: var(--ink); line-height: 1.2;
}
html[data-theme="dark"] .blog-pull-quote { color: var(--text); }

/* Tip box */
.blog-tip {
  background: var(--bg-alt); border-left: 3px solid var(--gold);
  padding: 1.2rem 1.5rem; margin: 2rem 0;
  font-size: .88rem; color: var(--text-soft); line-height: 1.75;
}

/* CTA inline */
.blog-art-cta {
  background: var(--wine);
  /* Full-bleed: rompe la columna de contenido */
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 3.5rem;
  margin-bottom: 0;
  padding: 4rem 4.5rem;
  display: flex; align-items: center; justify-content: space-between;
  gap: 3rem; flex-wrap: wrap;
}
.blog-art-cta-text h3 {
  font-size: clamp(1.6rem, 3vw, 3rem);
  font-weight: 800; letter-spacing: -.04em; color: #fff;
  line-height: 1.05; margin-bottom: .6rem;
}
.blog-art-cta-text p {
  font-size: .9rem; color: rgba(255,255,255,.65); line-height: 1.7;
}
.blog-art-cta-btn {
  display: inline-flex; align-items: center; gap: .7rem;
  background: #fff; color: var(--wine);
  padding: 1.1rem 2.4rem;
  font-size: .52rem; letter-spacing: .2em; font-weight: 700; text-transform: uppercase;
  white-space: nowrap; flex-shrink: 0;
  transition: background .2s, transform .2s;
}
.blog-art-cta-btn:hover { background: rgba(255,255,255,.92); transform: translateY(-2px); }

/* Related posts */
.blog-related-sec {
  background: var(--bg-alt); border-top: 1px solid var(--line);
  padding: 4rem 4.5rem;
}
.blog-related-inner { max-width: 1280px; margin: 0 auto; }
.blog-related-hdr {
  font-size: .44rem; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: 2rem; opacity: .8;
}
.blog-related-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  border: 1px solid var(--line);
}
.blog-related-card {
  border-right: 1px solid var(--line); padding: 1.8rem;
  display: flex; flex-direction: column; text-decoration: none;
  transition: background .25s;
}
.blog-related-card:last-child { border-right: none; }
@media(hover:hover) { .blog-related-card:hover { background: var(--bg); } }
.blog-related-card-cat {
  font-size: .34rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: .6rem; opacity: .7;
}
.blog-related-card-h {
  font-size: .88rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.02em; line-height: 1.3; margin-bottom: .5rem; flex: 1;
}
html[data-theme="dark"] .blog-related-card-h { color: var(--text); }
.blog-related-card-link {
  font-size: .38rem; letter-spacing: .16em; text-transform: uppercase;
  font-weight: 700; color: var(--wine); margin-top: .8rem;
}
html[data-theme="dark"] .blog-related-card-link { color: var(--gold); }

/* ══════════════════════════════════════
   RESPONSIVE — BLOGS
══════════════════════════════════════ */
@media (min-width: 769px) and (max-width: 1024px) {
  .blog-hero { padding: calc(var(--nav-h) + 3rem) 3rem 3rem; }
  .blog-grid-sec { padding: 2rem 3rem 4rem; }
  .blog-grid { grid-template-columns: repeat(2, 1fr); }
  .blog-card:nth-child(3n) { border-right: 1px solid var(--line); }
  .blog-card:nth-child(2n) { border-right: none; }
  .blog-art-header { min-height: 70svh; }
  .blog-art-header-body { padding: 2.5rem 3rem 3.5rem; }
  .blog-art-content { padding: 3rem 3rem 4rem; }
  .blog-related-sec { padding: 3rem; }
  .blog-related-grid { grid-template-columns: repeat(2, 1fr); }
  .blog-related-card:nth-child(2) { border-right: none; }
  .blog-related-card:nth-child(3) { display: none; }
}

@media (max-width: 768px) {
  .blog-hero { padding: calc(var(--nav-h) + 2rem) 1.6rem 2.5rem; }
  .blog-hero-h { font-size: clamp(2.5rem, 10vw, 4rem); }
  .blog-grid-sec { padding: 1.5rem 1.6rem 3rem; }
  .blog-grid { grid-template-columns: 1fr; }
  .blog-card { border-right: none; }
  .blog-card:last-child { border-bottom: none; }
  .blog-card-img { height: 200px; }
  .blog-art-header { min-height: 70svh; justify-content: center; }
  .blog-art-header-body { padding: 2rem 1.6rem; }
  .blog-art-h1 { font-size: clamp(1.8rem, 7vw, 3rem); }
  .blog-art-content { padding: 2.5rem 1.6rem 0; }
  .blog-art-content h2 { font-size: clamp(1.2rem, 5vw, 1.8rem); }
  .blog-art-cta { flex-direction: column; padding: 3rem 1.6rem; }
  .blog-art-cta-text h3 { font-size: clamp(1.4rem, 7vw, 2rem); }
  .blog-art-cta-btn { width: 100%; justify-content: center; }
  .blog-related-sec { padding: 3rem 1.6rem; }
  .blog-related-grid { grid-template-columns: 1fr; }
  .blog-related-card { border-right: none; border-bottom: 1px solid var(--line); }
  .blog-related-card:last-child { border-bottom: none; }
}

/* ═══════════════════════════════════════════════════════════════
   29. UTILITY — clases extraídas de style= inline
═══════════════════════════════════════════════════════════════ */

/* Index */
.sec-sub-sm { font-size: .9rem; color: var(--text-soft); margin-top: .5rem; }

/* Kicker variants */
.kicker-mb    { margin-bottom: .8rem; }
.kicker-mb-lg { margin-bottom: 1rem; }
.kicker-center { justify-content: center; }
.kicker-gold  { color: rgba(196,163,90,.7); }

/* Sec-h tight (no margin-bottom) */
.sec-h-tight { margin-bottom: 0; }

/* SVG icon sizes */
.icon-sm {
  width: 13px; height: 13px;
  stroke: currentColor; stroke-width: 2;
  fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.icon-xs {
  width: 12px; height: 12px;
  stroke: currentColor; stroke-width: 2;
  fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.icon-sm-flex {
  width: 13px; height: 13px; flex-shrink: 0;
  stroke: currentColor; stroke-width: 2;
  fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.icon-xs-flex {
  width: 12px; height: 12px; flex-shrink: 0;
  stroke: currentColor; stroke-width: 2;
  fill: none; stroke-linecap: round; stroke-linejoin: round;
}

/* Alta Montaña modal overrides */
.exp-am-body-mt    { margin-top: 2rem; }
.modal-am-badge-gold { color: var(--gold); opacity: 1; }
.modal-am-h-lg     { font-size: clamp(2rem,3vw,3.6rem); margin-bottom: 1.6rem; }
.modal-am-p-mt     { margin-top: .8rem; }
.modal-am-cta-spaced { margin-top: 2rem; padding-top: 1.8rem; }
.modal-am-list-mb  { margin-bottom: 2rem; }

/* ═══════════════════════════════════════════════════════════════
   30. PÁGINA — NOSOTROS
═══════════════════════════════════════════════════════════════ */

/* ── HERO EDITORIAL ── */
.nos-hero {
  background: var(--bg);
  padding: calc(var(--nav-h) + 3rem) 5rem 3rem;
  border-bottom: 1px solid var(--line);
  max-width: 1280px;
  margin: 0 auto;
}
.nos-hero-eyebrow {
  display: flex; align-items: center; gap: .8rem;
  font-size: .52rem; letter-spacing: .44em; text-transform: uppercase;
  color: var(--gold); font-weight: 500; margin-bottom: 2rem;
}
.nos-hero-eyebrow-line { width: 28px; height: 1px; background: var(--gold); opacity: .6; }
.nos-hero-grid {
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: 6rem; align-items: end;
}
.nos-hero-h {
  font-size: clamp(3.5rem, 7vw, 9rem);
  font-weight: 800; letter-spacing: -.04em; line-height: .9;
  color: var(--ink);
}
html[data-theme="dark"] .nos-hero-h { color: var(--text); }
.nos-hero-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .nos-hero-h em { color: var(--gold); }
.nos-hero-right { display: flex; flex-direction: column; gap: 1.6rem; padding-bottom: .5rem; }
.nos-hero-p {
  font-size: .95rem; color: var(--text-soft); line-height: 1.85;
}
.nos-hero-rule { width: 32px; height: 2px; background: var(--gold); opacity: .5; }
.nos-hero-since {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
}

/* ── MANIFIESTO ── */
.nos-manif-sec {
  background: var(--bg-alt);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 6rem 5rem;
}
.nos-manif-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 80px 1fr; gap: 4rem; align-items: start;
}
.nos-manif-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
  writing-mode: vertical-rl; transform: rotate(180deg); padding-top: .5rem;
}
.nos-manif-q {
  font-size: clamp(1.6rem, 3vw, 3.5rem);
  font-weight: 800; line-height: 1.1; letter-spacing: -.04em;
  color: var(--ink); margin: 0; border: none; padding: 0;
}
html[data-theme="dark"] .nos-manif-q { color: var(--text); }
.nos-manif-q em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .nos-manif-q em { color: var(--gold); }
.nos-manif-firma {
  grid-column: 2; display: flex; align-items: center; gap: 1.2rem; margin-top: 2rem;
}
.nos-manif-firma-line { width: 30px; height: 1px; background: var(--gold); opacity: .6; }
.nos-manif-firma span {
  font-size: .36rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500;
}

/* ── VALORES ── */
.nos-valores-sec { background: var(--bg); padding: 3.5rem 5rem; border-bottom: 1px solid var(--line); }
.nos-valores-inner { max-width: 1280px; margin: 0 auto; }
.nos-valores-hdr {
  display: flex; align-items: baseline; gap: 2rem;
  margin-bottom: 2.5rem; padding-bottom: 2rem; border-bottom: 1px solid var(--line);
}
.nos-valores-hdr-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; flex-shrink: 0;
}
.nos-valores-hdr-h {
  font-size: clamp(2rem, 4vw, 5rem);
  font-weight: 800; letter-spacing: -.05em; color: var(--ink); line-height: 1;
}
html[data-theme="dark"] .nos-valores-hdr-h { color: var(--text); }
.nos-valores-hdr-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .nos-valores-hdr-h em { color: var(--gold); }
.nos-valores-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
}
.nos-valor {
  padding: 0 3rem 0 0; border-right: 1px solid var(--line);
}
.nos-valor:last-child { border-right: none; padding-right: 0; }
.nos-valor:not(:first-child) { padding-left: 3rem; }
.nos-valor-rule { width: 24px; height: 2px; background: var(--gold); margin-bottom: 1.6rem; opacity: .7; }
.nos-valor-h {
  font-size: clamp(1.1rem, 1.8vw, 1.8rem); font-weight: 800;
  letter-spacing: -.04em; color: var(--ink); line-height: 1.05; margin-bottom: 1rem;
}
html[data-theme="dark"] .nos-valor-h { color: var(--text); }
.nos-valor-p { font-size: .86rem; color: var(--text-soft); line-height: 1.8; }

/* ── EQUIPO ── */
.nos-equipo-sec { background: var(--bg-alt); padding: 3.5rem 5rem 0; }
.nos-equipo-inner { max-width: 1280px; margin: 0 auto; }
.nos-equipo-hdr {
  display: flex; align-items: baseline; gap: 2rem;
  margin-bottom: 2.5rem; padding-bottom: 2rem; border-bottom: 1px solid var(--line);
}
.nos-equipo-hdr-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; flex-shrink: 0;
}
.nos-equipo-hdr-h {
  font-size: clamp(2rem, 4vw, 5rem);
  font-weight: 800; letter-spacing: -.05em; color: var(--ink); line-height: 1;
}
html[data-theme="dark"] .nos-equipo-hdr-h { color: var(--text); }
.nos-equipo-hdr-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .nos-equipo-hdr-h em { color: var(--gold); }
.nos-equipo-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-left: 1px solid var(--line); border-right: 1px solid var(--line); border-top: 1px solid var(--line);
}
.nos-miembro {
  border-right: 1px solid var(--line);
  display: flex; flex-direction: column;
  transition: background .3s;
}
.nos-miembro:last-child { border-right: none; }
@media(hover:hover) { .nos-miembro:hover { background: var(--bg); } }

.nos-miembro-img {
  height: 480px; overflow: hidden; flex-shrink: 0;
  background: var(--bg-alt); position: relative;
}
.nos-miembro-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center center;
  transition: transform .6s var(--ease);
}
.nos-miembro:hover .nos-miembro-img img {
  transform: scale(1.05);
}

.nos-miembro-body { padding: 2rem 2rem 2.5rem; flex: 1; display: flex; flex-direction: column; }
.nos-miembro-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; margin-bottom: 1rem;
}
.nos-miembro-name {
  font-size: clamp(1.3rem, 2vw, 2rem);
  font-weight: 800; letter-spacing: -.04em; color: var(--ink); line-height: 1.05;
  margin-bottom: .4rem;
}
html[data-theme="dark"] .nos-miembro-name { color: var(--text); }
.nos-miembro-role {
  font-size: .44rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: 1.2rem; opacity: .8;
}
.nos-miembro-rule { width: 20px; height: 1px; background: var(--line); margin-bottom: 1.2rem; }
.nos-miembro-bio { font-size: .84rem; color: var(--text-soft); line-height: 1.8; flex: 1; }


/* ── CTA FINAL ── */
.nos-cta-sec {
  background: var(--bg);
}
.nos-cta-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr;
  min-height: 40vh;
}
.nos-cta-left {
  display: flex; flex-direction: column; justify-content: center;
  padding: 3.5rem 5rem;
}
.nos-cta-num {
  font-size: .38rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 500; margin-bottom: 2rem; display: block;
}
.nos-cta-h {
  font-size: clamp(2.5rem, 5vw, 6rem);
  font-weight: 800; letter-spacing: -.04em; color: var(--ink); line-height: .92;
}
html[data-theme="dark"] .nos-cta-h { color: var(--text); }
.nos-cta-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .nos-cta-h em { color: var(--gold); }
.nos-cta-right {
  display: flex; flex-direction: column; justify-content: center;
  padding: 3.5rem 5rem; gap: 1.2rem;
}
.nos-cta-p { font-size: .9rem; color: var(--text-soft); line-height: 1.85; margin-bottom: 1rem; }
.nos-cta-btn-wa {
  display: inline-flex; align-items: center;
  background: var(--wine); color: #fff;
  padding: 1.1rem 2rem;
  font-size: .5rem; letter-spacing: .2em; font-weight: 700; text-transform: uppercase;
  transition: background .25s;
}
.nos-cta-btn-wa:hover { background: var(--wine-dk); }
.nos-cta-btn-mail {
  display: inline-flex; align-items: center;
  border: 1px solid var(--line); color: var(--text-soft);
  padding: 1.1rem 2rem;
  font-size: .5rem; letter-spacing: .12em;
  transition: border-color .2s, color .2s;
}
.nos-cta-btn-mail:hover { border-color: var(--gold); color: var(--ink); }
html[data-theme="dark"] .nos-cta-btn-mail:hover { color: var(--text); }

/* ══════════════════════════════════════
   RESPONSIVE — NOSOTROS
══════════════════════════════════════ */
@media (min-width: 769px) and (max-width: 1024px) {
  .nos-hero { padding: calc(var(--nav-h) + 2rem) 3rem 2rem; }
  .nos-hero-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .nos-manif-sec { padding: 5rem 3rem; }
  .nos-manif-inner { grid-template-columns: 1fr; gap: 2rem; }
  .nos-manif-num { writing-mode: horizontal-tb; transform: none; }
  .nos-manif-firma { grid-column: 1; }
  .nos-valores-sec { padding: 2.5rem 3rem; }
  .nos-valores-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .nos-valor { border-right: none; padding: 0 0 2.5rem; border-bottom: 1px solid var(--line); }
  .nos-valor:last-child { border-bottom: none; padding-bottom: 0; }
  .nos-valor:not(:first-child) { padding-left: 0; }
  .nos-equipo-sec { padding: 2.5rem 3rem; }
  .nos-equipo-grid { grid-template-columns: 1fr; }
  .nos-miembro { border-right: none; border-bottom: 1px solid var(--line); }
  .nos-miembro:last-child { border-bottom: none; }
  .nos-miembro-img { height: 400px; }
  .nos-cta-inner { grid-template-columns: 1fr; min-height: auto; }
  .nos-cta-left { border-right: none; border-bottom: 1px solid var(--line); padding: 2.5rem 3rem; }
  .nos-cta-right { padding: 2.5rem 3rem; }
}

@media (max-width: 768px) {
  .nos-hero { padding: calc(var(--nav-h) + 1.5rem) 1.6rem 2rem; }
  .nos-hero-grid { grid-template-columns: 1fr; gap: 2rem; }
  .nos-hero-h { font-size: clamp(3rem, 12vw, 5rem); }
  .nos-manif-sec { padding: 4rem 1.6rem; }
  .nos-manif-inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .nos-manif-num { writing-mode: horizontal-tb; transform: none; }
  .nos-manif-q { font-size: clamp(1.4rem, 6vw, 2.2rem); }
  .nos-manif-firma { grid-column: 1; }
  .nos-valores-sec { padding: 2rem 1.6rem; }
  .nos-valores-grid { grid-template-columns: 1fr; }
  .nos-valor { border-right: none; padding: 0 0 2.5rem; border-bottom: 1px solid var(--line); }
  .nos-valor:last-child { border-bottom: none; padding-bottom: 0; }
  .nos-valor:not(:first-child) { padding-left: 0; }
  .nos-equipo-sec { padding: 2rem 1.6rem; }
  .nos-equipo-grid { grid-template-columns: 1fr; }
  .nos-miembro { border-right: none; border-bottom: 1px solid var(--line); }
  .nos-miembro:last-child { border-bottom: none; }
  .nos-miembro-img { height: 380px; }
  .nos-cta-inner { grid-template-columns: 1fr; min-height: auto; }
  .nos-cta-left { border-right: none; border-bottom: 1px solid var(--line); padding: 2rem 1.6rem; }
  .nos-cta-h { font-size: clamp(2rem, 9vw, 4rem); }
  .nos-cta-right { padding: 2rem 1.6rem; }
  .nos-cta-btn-wa, .nos-cta-btn-mail { justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════
   31. NAVBAR — Mega Menu Tours (desktop only)
═══════════════════════════════════════════════════════════════ */

.nav-has-dropdown { position: relative; }

/* navMega is a <body>-level sibling of <nav> — fixed works because no backdrop-filter parent */
.nav-mega {
  display: none;
  position: fixed;
  top: var(--nav-h);
  left: 0; right: 0;
  background: var(--bg);
  border-top: 2px solid var(--wine);
  box-shadow: 0 12px 48px rgba(0,0,0,.15);
  z-index: 500;
}
html[data-theme="dark"] .nav-mega { border-top-color: var(--gold); }
.nav-mega.nav-mega-open { display: block; }

.nav-mega-inner {
  max-width: 100%;
  padding: 0 0 0 3rem;
  display: grid;
  grid-template-columns: 200px 1fr;
  min-height: 320px;
}

/* LEFT — categories */
.nav-mega-cats {
  border-right: 1px solid var(--line);
  padding: 1.5rem 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.nav-mega-cat {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.2rem 1.2rem 1.2rem 0;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: -.01em;
  color: var(--ink);
  cursor: pointer;
  border: none;
  border-left: 4px solid transparent;
  background: none;
  font-family: inherit;
  width: 100%;
  text-align: left;
  transition: color .15s, padding-left .15s, border-color .15s;
}
html[data-theme="dark"] .nav-mega-cat { color: #F0EDE8; }
.nav-mega-cat:hover { color: var(--ink); padding-left: .5rem; }
html[data-theme="dark"] .nav-mega-cat:hover { color: var(--text); }
.nav-mega-cat.nav-mega-cat-active {
  color: var(--wine);
  border-left-color: var(--wine);
  padding-left: .8rem;
  font-weight: 600;
}
html[data-theme="dark"] .nav-mega-cat.nav-mega-cat-active {
  color: var(--gold);
  border-left-color: var(--gold);
}
.nav-mega-cat svg {
  width: 14px; height: 14px;
  stroke: currentColor; stroke-width: 2.5; fill: none;
  flex-shrink: 0; opacity: .25;
  transition: opacity .15s, transform .15s;
}
.nav-mega-cat.nav-mega-cat-active svg { opacity: .6; transform: translateX(2px); }

/* RIGHT — panels */
.nav-mega-panels { padding: 1.5rem 2.5rem 1.5rem 2.5rem; display: flex; align-items: stretch; }
.nav-mega-panel { display: none; width: 100%; }
.nav-mega-panel.nav-mega-panel-active {
  display: grid;
  grid-auto-columns: 1fr;
  grid-auto-flow: column;
  gap: 1.2rem;
  width: 100%;
  align-items: stretch;
}

/* Card — image fills entire card, text overlaid */
.nav-mega-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  overflow: hidden;
  border: 1px solid var(--line);
  position: relative;
  transition: border-color .2s, transform .2s;
}
.nav-mega-card:hover { border-color: var(--wine); transform: translateY(-2px); }
html[data-theme="dark"] .nav-mega-card:hover { border-color: var(--gold); }
.nav-mega-card-img {
  flex: 1;
  overflow: hidden;
  position: relative;
}
.nav-mega-card-img img {
  width: 100%; height: 100%;
  position: absolute; inset: 0;
  object-fit: cover;
  filter: brightness(.6);
  transition: transform .4s var(--ease), filter .3s;
}
.nav-mega-card:hover .nav-mega-card-img img {
  transform: scale(1.05);
  filter: brightness(.78);
}
.nav-mega-card-body {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: .75rem;
  text-align: center;
  pointer-events: none;
}
.nav-mega-card-tag {
  font-size: .38rem; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(255,255,255,.85); font-weight: 600; display: block; margin-bottom: .5rem;
}
.nav-mega-card-name {
  font-size: 1.5rem; font-weight: 800; letter-spacing: -.04em;
  color: #fff; line-height: 1.05;
  text-shadow: 0 2px 20px rgba(0,0,0,.7), 0 1px 6px rgba(0,0,0,.5);
}

/* Chevron — ::before to not conflict with underline ::after */
.nav-has-dropdown > a { padding-right: 1.1em; }
.nav-has-dropdown > a::before {
  content: "▾";
  position: absolute;
  right: 0; top: 50%;
  transform: translateY(-50%);
  font-size: .85em;
  opacity: .7;
  transition: transform .2s, opacity .2s;
  line-height: 1;
}
.nav-has-dropdown.nav-mega-open > a::before {
  transform: translateY(-50%) rotate(180deg);
  opacity: 1;
}

@media (max-width: 1024px) {
  .nav-has-dropdown > a { padding-right: 0; }
  .nav-has-dropdown > a::before { display: none; }
  .nav-mega { display: none !important; }
}
/* ═══════════════════════════════════════════════════════════════
   32. PÁGINA — CONTACTO
═══════════════════════════════════════════════════════════════ */

/* ── HERO ── */
.cnt-hero {
  min-height: 100vh;
  background: var(--bg);
  padding-top: var(--nav-h);
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.cnt-hero-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 5rem var(--pad-x);
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 6rem;
  align-items: center;
}

/* Left — headline */
.cnt-eyebrow {
  display: flex; align-items: center; gap: .8rem;
  font-size: .38rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin-bottom: 2rem;
}
.cnt-eyebrow-line { width: 24px; height: 1px; background: var(--gold); opacity: .6; }

.cnt-hero-h {
  font-size: clamp(3.5rem, 7vw, 8rem);
  font-weight: 800; letter-spacing: -.04em; line-height: .92;
  color: var(--ink); margin-bottom: 2rem;
}
html[data-theme="dark"] .cnt-hero-h { color: var(--text); }
.cnt-hero-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .cnt-hero-h em { color: var(--gold); }

.cnt-hero-sub {
  font-size: .95rem; color: var(--text-soft); line-height: 1.8;
  max-width: 400px;
}

/* Right — form card */
.cnt-form-wrap {
  background: var(--bg-alt);
  border: 1px solid var(--line);
  border-top: 3px solid var(--wine);
}
html[data-theme="dark"] .cnt-form-wrap { border-top-color: var(--gold); }

.cnt-form-header {
  padding: 1.5rem 2rem 1rem;
  border-bottom: 1px solid var(--line);
}
.cnt-form-label {
  font-size: .38rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 600;
}

.cnt-form { padding: 1.8rem 2rem 2rem; display: flex; flex-direction: column; gap: 1.2rem; }

.cnt-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }

.cnt-field { display: flex; flex-direction: column; gap: .4rem; }
.cnt-field-label {
  font-size: .38rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 600;
}

.cnt-input {
  background: var(--bg);
  border: 1px solid var(--line);
  color: var(--ink);
  font-family: inherit;
  font-size: .88rem;
  padding: .75rem 1rem;
  outline: none;
  transition: border-color .2s;
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
}
html[data-theme="dark"] .cnt-input { color: var(--text); }
.cnt-input::placeholder { color: var(--text-muted); opacity: .5; }
.cnt-input:focus { border-color: var(--wine); }
html[data-theme="dark"] .cnt-input:focus { border-color: var(--gold); }

.cnt-select {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C8880' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .8rem center;
  background-size: 16px;
  padding-right: 2.5rem;
}
input[type="date"].cnt-input {
  height: calc(0.75rem * 2 + 1rem + 2px);
  line-height: 1;
  -webkit-appearance: none;
}

.cnt-textarea { resize: vertical; min-height: 100px; }

.cnt-submit {
  display: flex; align-items: center; justify-content: center; gap: .8rem;
  background: var(--wine); color: #fff;
  border: none; cursor: pointer; font-family: inherit;
  padding: 1.1rem 2rem;
  font-size: .5rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 700;
  transition: background .25s;
  margin-top: .3rem;
}
.cnt-submit:hover { background: var(--wine-dk); }
.cnt-submit svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }

.cnt-form-note {
  display: flex; align-items: center; gap: .5rem;
  font-size: .75rem; color: var(--text-muted);
}
.cnt-form-note svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; fill: none; flex-shrink: 0; }

.cnt-form-success {
  display: none; flex-direction: column; align-items: center; justify-content: center;
  gap: 1rem; padding: 3rem 2rem; text-align: center;
}
.cnt-form-success.cnt-success-visible { display: flex; }
.cnt-form-success svg { width: 48px; height: 48px; stroke: var(--wine); stroke-width: 1.5; fill: none; }
html[data-theme="dark"] .cnt-form-success svg { stroke: var(--gold); }
.cnt-form-success strong { font-size: 1.2rem; font-weight: 700; color: var(--ink); }
html[data-theme="dark"] .cnt-form-success strong { color: var(--text); }
.cnt-form-success p { font-size: .88rem; color: var(--text-soft); }

/* ── DATOS DE CONTACTO — editorial ── */
.cnt-datos-sec {
  background: var(--bg-alt);
  border-top: 1px solid var(--line);
}
.cnt-datos-inner {
  max-width: 1280px; margin: 0 auto;
  padding: 5rem var(--pad-x);
  display: grid;
  grid-template-columns: 1fr 1.8fr;
  gap: 6rem;
  align-items: start;
}

.cnt-datos-headline { display: flex; flex-direction: column; gap: 1.5rem; }
.cnt-datos-h {
  font-size: clamp(2.5rem, 4vw, 5rem);
  font-weight: 800; letter-spacing: -.04em; line-height: .92;
  color: var(--ink);
}
html[data-theme="dark"] .cnt-datos-h { color: var(--text); }
.cnt-datos-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .cnt-datos-h em { color: var(--gold); }

.cnt-datos-list { display: flex; flex-direction: column; }

.cnt-dato-item {
  display: flex; align-items: center; gap: 2rem;
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  transition: background .15s;
}
.cnt-dato-item:first-child { border-top: 1px solid var(--line); }

a.cnt-dato-item:hover { background: var(--bg-alt); margin: 0 -1.5rem; padding: 1.6rem 1.5rem; }

.cnt-dato-num {
  font-size: .34rem; letter-spacing: .2em; color: var(--text-muted);
  font-weight: 600; flex-shrink: 0; width: 2rem;
}
.cnt-dato-content { display: flex; flex-direction: column; gap: .25rem; flex: 1; }
.cnt-dato-type {
  font-size: .34rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--gold); font-weight: 600;
}
.cnt-dato-main {
  font-size: clamp(.9rem, 1.5vw, 1.2rem);
  font-weight: 700; letter-spacing: -.02em;
  color: var(--ink);
}
html[data-theme="dark"] .cnt-dato-main { color: var(--text); }
a.cnt-dato-item:hover .cnt-dato-main { color: var(--wine); }
html[data-theme="dark"] a.cnt-dato-item:hover .cnt-dato-main { color: var(--gold); }
.cnt-dato-sub { font-size: .8rem; color: var(--text-soft); }
.cnt-dato-arrow {
  font-size: 1.2rem; color: var(--wine); opacity: 0;
  transition: opacity .2s, transform .2s;
  flex-shrink: 0;
}
html[data-theme="dark"] .cnt-dato-arrow { color: var(--gold); }
a.cnt-dato-item:hover .cnt-dato-arrow { opacity: 1; transform: translateX(4px); }

/* ── CTA WHATSAPP ── */
.cnt-wa-sec {
  background: var(--bg-alt);
  padding: 0 var(--pad-x) 5rem;
}
.cnt-wa-inner {
  max-width: 1280px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
}
.cnt-wa-eyebrow {
  font-size: .38rem; letter-spacing: .25em; text-transform: uppercase;
  color: var(--text-muted); font-weight: 600; display: block; margin-bottom: 1.2rem;
}
.cnt-wa-h {
  font-size: clamp(2.5rem, 5vw, 6rem);
  font-weight: 800; letter-spacing: -.04em; color: var(--ink); line-height: .92;
  margin-bottom: 1.2rem;
}
html[data-theme="dark"] .cnt-wa-h { color: var(--text); }
.cnt-wa-h em { font-style: italic; color: var(--wine); font-weight: 300; }
html[data-theme="dark"] .cnt-wa-h em { color: var(--gold); }
.cnt-wa-p { font-size: .9rem; color: var(--ink); }
html[data-theme="dark"] .cnt-wa-p { color: rgba(240,237,232,.6); }

.cnt-wa-btn {
  display: inline-flex; align-items: center; gap: .9rem; flex-shrink: 0;
  background: #25D366; color: #fff;
  padding: 1.2rem 2.5rem;
  font-size: .5rem; letter-spacing: .18em; font-weight: 700; text-transform: uppercase;
  text-decoration: none; transition: background .2s;
  white-space: nowrap;
}
.cnt-wa-btn:hover { background: #1ebe5d; }
.cnt-wa-btn svg { width: 22px; height: 22px; fill: #fff; flex-shrink: 0; }

/* ── RESPONSIVE ── */
/* ── TABLET 769–1024px ── */
@media (min-width: 769px) and (max-width: 1024px) {
  /* Hero — apilado, formulario abajo */
  .cnt-hero { min-height: auto; }
  .cnt-hero-inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    padding: 3rem 3rem 3rem;
  }
  .cnt-hero-h { font-size: clamp(3.5rem, 8vw, 6rem); }
  .cnt-hero-sub { max-width: 100%; }

  /* Formulario — dos columnas se mantienen pero más compacto */
  .cnt-form { padding: 1.6rem 1.8rem 2rem; gap: 1rem; }
  .cnt-form-header { padding: 1.2rem 1.8rem .8rem; }

  /* Datos — 2 columnas */
  .cnt-datos-inner {
    grid-template-columns: 1fr 1.5fr;
    gap: 3rem;
    padding: 4rem 3rem;
  }
  a.cnt-dato-item:hover { margin: 0 -1rem; padding: 1.6rem 1rem; }

  /* CTA WhatsApp */
  .cnt-wa-sec { padding: 4rem 3rem; }
  .cnt-wa-inner { flex-direction: column; align-items: flex-start; gap: 2rem; }
  .cnt-wa-h { font-size: clamp(2.5rem, 6vw, 4.5rem); }
  .cnt-wa-btn { align-self: flex-start; }
}

/* ── MOBILE ≤768px ── */
@media (max-width: 768px) {
  /* Hero */
  .cnt-hero { min-height: auto; }
  .cnt-hero-inner {
    grid-template-columns: 1fr;
    padding: 2rem 1.6rem 2.5rem;
    gap: 2rem;
  }
  .cnt-hero-h { font-size: clamp(2.8rem, 11vw, 4rem); }
  .cnt-hero-sub { font-size: .88rem; }

  /* Formulario — todo en una columna */
  .cnt-form-wrap { border-top-width: 2px; }
  .cnt-form-header { padding: 1rem 1.2rem .7rem; }
  .cnt-form { padding: 1.2rem 1.2rem 1.5rem; gap: 1rem; }
  .cnt-form-row { grid-template-columns: 1fr; gap: 1rem; }
  .cnt-phone-wrap { gap: 0; }
  .cnt-phone-prefix { width: 80px; font-size: .76rem; }
  .cnt-submit { padding: .95rem 1.5rem; font-size: .44rem; }

  /* Datos */
  .cnt-datos-inner {
    grid-template-columns: 1fr;
    padding: 2.5rem 1.6rem;
    gap: 0;
  }
  .cnt-datos-headline { margin-bottom: 1.5rem; }
  .cnt-datos-h { font-size: clamp(2rem, 9vw, 3rem); }
  .cnt-dato-item { padding: 1.3rem 0; }
  .cnt-dato-main { font-size: .95rem; }
  a.cnt-dato-item:hover { margin: 0; padding: 1.3rem 0; }

  /* CTA WhatsApp */
  .cnt-wa-sec { padding: 3rem 1.6rem; }
  .cnt-wa-inner { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
  .cnt-wa-h { font-size: clamp(2rem, 9vw, 3.5rem); }
  .cnt-wa-btn { width: 100%; justify-content: center; padding: 1rem 1.5rem; }
}

/* contacto — helpers */
.cnt-hero-left  { display: flex; flex-direction: column; }
.cnt-hero-right { display: flex; flex-direction: column; }
.cnt-submit-text { display: inline; }
.cnt-wa-text    { display: flex; flex-direction: column; }

/* ── Phone field with prefix ── */
.cnt-phone-wrap {
  display: flex;
  gap: 0;
}
.cnt-phone-prefix {
  flex-shrink: 0;
  width: 90px;
  border-right: none;
  border-radius: 0;
  padding-right: .5rem;
  font-size: .8rem;
}
.cnt-phone-num {
  flex: 1;
  border-left: 1px solid var(--line);
  min-width: 0;
}
.cnt-phone-wrap .cnt-input:focus {
  border-color: var(--wine);
  z-index: 1;
}
html[data-theme="dark"] .cnt-phone-wrap .cnt-input:focus { border-color: var(--gold); }

@media (max-width: 768px) {
}

/* TripAdvisor badge sizes — extracted from inline styles */
.h-counts img { height: 85px; width: auto; }
.h-counts a:first-child img { height: 90px; }
.h-counts-mobile img { height: 62px; width: auto; }
.h-counts-mobile a:first-child img { height: 68px; }

/* ─── Mobile Tours submenu (collapsible, agrupado por categorías) ─── */
.mob-tours-wrap { display: flex; flex-direction: column; }

.mob-tours-toggle {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: clamp(1.4rem, 5vw, 2rem);
  font-weight: 600;
  padding: .75rem 0;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  cursor: pointer;
  width: 100%;
  text-align: left;
  font-family: inherit;
  transition: color .25s;
}
.mob-tours-toggle:hover { color: var(--wine); }
html[data-theme="dark"] .mob-tours-toggle:hover { color: var(--gold); }

.mob-tours-chev {
  transition: transform .3s ease;
  flex-shrink: 0;
}
.mob-tours-toggle[aria-expanded="true"] .mob-tours-chev {
  transform: rotate(180deg);
}
.mob-tours-toggle[aria-expanded="true"] { color: var(--wine); }
html[data-theme="dark"] .mob-tours-toggle[aria-expanded="true"] { color: var(--gold); }

.mob-tours-submenu {
  max-height: 0;
  overflow: hidden;
  transition: max-height .5s ease;
  display: flex;
  flex-direction: column;
}
.mob-tours-submenu.open {
  max-height: 2000px;
}

/* Grupo de categoría (Tours en Bodegas, Excursiones, etc) */
.mob-tours-cat-group {
  display: flex;
  flex-direction: column;
}

/* Título de cada categoría */
.mob-tours-cat-title {
  font-size: .62rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--wine);
  padding: 1.1rem .5rem .5rem 1rem;
  border-bottom: 1px solid var(--line);
}
html[data-theme="dark"] .mob-tours-cat-title { color: var(--gold); }

/* Items dentro de cada categoría */
.mob-tours-submenu a {
  display: block !important;
  font-size: clamp(1rem, 3.5vw, 1.15rem) !important;
  font-weight: 500 !important;
  padding: .6rem .5rem .6rem 1.5rem !important;
  border-bottom: 1px solid var(--line) !important;
  color: var(--text-soft) !important;
  transition: color .2s !important;
  text-align: left !important;
  justify-content: flex-start !important;
}
.mob-tours-submenu a:hover {
  color: var(--wine) !important;
}
html[data-theme="dark"] .mob-tours-submenu a:hover {
  color: var(--gold) !important;
}

@media (max-width: 768px) {
  .mob-tours-toggle { font-size: clamp(1.3rem, 5vw, 1.8rem); padding: 18px 24px; }
  .mob-tours-cat-title { padding: 1rem 24px .5rem 24px; font-size: .58rem; }
  .mob-tours-submenu a { padding: 12px 24px 12px 36px !important; font-size: 1rem !important; }
}

/* ─── Footer bottom: link a privacidad (solo desktop, mobile usa foot-mobile) ─── */
@media (min-width: 769px), (pointer: fine) {
  .footer-bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
  }
}
.footer-bottom-link {
  color: var(--text-muted);
  text-decoration: none;
  font-size: .8rem;
  letter-spacing: .03em;
  transition: color .25s;
}
.footer-bottom-link:hover {
  color: var(--wine);
}
html[data-theme="dark"] .footer-bottom-link:hover, body.dark .footer-bottom-link:hover {
  color: var(--gold);
}
@media (max-width: 640px) {
  .footer-bottom { justify-content: center; text-align: center; }
}

/* ─── Cookie Consent Banner ─── */
.cookie-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  background: var(--bg);
  border-top: 1px solid var(--line);
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.08);
  transform: translateY(100%);
  transition: transform .5s cubic-bezier(.16, 1, .3, 1);
  font-family: 'Poppins', sans-serif;
}
html[data-theme="dark"] .cookie-banner,
body.dark .cookie-banner {
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.4);
}
.cookie-banner-visible {
  transform: translateY(0);
}
.cookie-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 1.25rem var(--pad-x);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.cookie-msg {
  margin: 0;
  font-size: .9rem;
  line-height: 1.55;
  color: var(--text-soft);
  flex: 1;
  min-width: 280px;
}
.cookie-link {
  color: var(--wine);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 500;
  transition: color .2s;
}
html[data-theme="dark"] .cookie-link,
body.dark .cookie-link { color: var(--gold); }
.cookie-link:hover { opacity: .75; }

.cookie-actions {
  display: flex;
  gap: .75rem;
  flex-shrink: 0;
}
.cookie-btn {
  font-family: inherit;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .75rem 1.4rem;
  border: 1px solid;
  cursor: pointer;
  transition: all .25s;
  white-space: nowrap;
}
.cookie-btn-primary {
  background: var(--wine);
  color: white;
  border-color: var(--wine);
}
.cookie-btn-primary:hover {
  background: transparent;
  color: var(--wine);
}
html[data-theme="dark"] .cookie-btn-primary,
body.dark .cookie-btn-primary {
  background: var(--gold);
  border-color: var(--gold);
  color: #000;
}
html[data-theme="dark"] .cookie-btn-primary:hover,
body.dark .cookie-btn-primary:hover {
  background: transparent;
  color: var(--gold);
}
.cookie-btn-secondary {
  background: transparent;
  color: var(--text-soft);
  border-color: var(--line);
}
.cookie-btn-secondary:hover {
  border-color: var(--text);
  color: var(--text);
}

@media (max-width: 720px) {
  .cookie-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    padding: 1rem var(--pad-x) 1.25rem;
  }
  .cookie-msg { font-size: .85rem; }
  .cookie-actions {
    width: 100%;
    justify-content: stretch;
  }
  .cookie-btn {
    flex: 1;
    padding: .85rem .75rem;
    font-size: .7rem;
  }
}

/* ─── Newsletter Section ─── */
.news-sec {
  padding: clamp(4rem, 9vw, 7rem) var(--pad-x);
  background: var(--bg-soft);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.news-inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.news-kicker {
  display: inline-block;
  font-size: .7rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--wine);
  font-weight: 600;
  margin-bottom: 1rem;
}
html[data-theme="dark"] .news-kicker, body.dark .news-kicker { color: var(--gold); }
.news-h {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.02em;
  color: var(--text);
  margin: 0 0 1.25rem;
}
.news-h em {
  font-style: italic;
  font-weight: 500;
  color: var(--wine);
}
html[data-theme="dark"] .news-h em, body.dark .news-h em { color: var(--gold); }
.news-sub {
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.65;
  color: var(--text-soft);
  max-width: 520px;
  margin: 0 auto 2.5rem;
}

.news-form {
  text-align: left;
  max-width: 600px;
  margin: 0 auto;
}
.news-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 600px) {
  .news-row { grid-template-columns: 1fr; gap: 1rem; }
}
.news-field {
  display: flex;
  flex-direction: column;
}
.news-label {
  font-size: .7rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
  margin-bottom: .5rem;
}
.news-input {
  font-family: 'Poppins', sans-serif;
  font-size: 1rem;
  padding: .85rem 0;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  transition: border-color .25s;
  width: 100%;
}
.news-input:focus {
  outline: none;
  border-bottom-color: var(--wine);
}
html[data-theme="dark"] .news-input:focus, body.dark .news-input:focus {
  border-bottom-color: var(--gold);
}
.news-input::placeholder { color: var(--text-muted); opacity: .55; }


.news-submit {
  display: block;
  width: 100%;
  font-family: 'Poppins', sans-serif;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  padding: 1.1rem 2rem;
  background: var(--wine);
  color: white;
  border: 1px solid var(--wine);
  cursor: pointer;
  transition: all .25s;
  margin-top: 1rem;
}
.news-submit:hover:not(:disabled) {
  background: transparent;
  color: var(--wine);
}
html[data-theme="dark"] .news-submit, body.dark .news-submit {
  background: var(--gold); border-color: var(--gold); color: #000;
}
html[data-theme="dark"] .news-submit:hover:not(:disabled),
body.dark .news-submit:hover:not(:disabled) {
  background: transparent; color: var(--gold);
}
.news-submit:disabled { opacity: .6; cursor: not-allowed; }

.news-fineprint {
  font-size: .8rem;
  color: var(--text-muted);
  text-align: center;
  margin: 1.5rem 0 0;
  line-height: 1.5;
}
.news-link {
  color: var(--text-soft);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.news-link:hover { color: var(--wine); }
html[data-theme="dark"] .news-link:hover, body.dark .news-link:hover { color: var(--gold); }

.news-success {
  text-align: center;
  padding: 2rem;
  border: 1px solid var(--wine);
  background: rgba(123, 26, 45, 0.04);
}
html[data-theme="dark"] .news-success, body.dark .news-success {
  border-color: var(--gold);
  background: rgba(207, 175, 109, 0.06);
}
.news-success-title {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--wine);
  margin: 0 0 .75rem;
}
html[data-theme="dark"] .news-success-title, body.dark .news-success-title {
  color: var(--gold);
}
.news-success-msg {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text-soft);
  margin: 0;
}

/* ─── Footer Newsletter (compacto) ─── */


@media (max-width: 720px) {


}

/* ─── Newsletter Popup ─── */
.news-popup {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
}
.news-popup-visible {
  opacity: 1;
  pointer-events: auto;
}
.news-popup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  cursor: pointer;
}
.news-popup-box {
  position: relative;
  background: var(--bg);
  max-width: 480px;
  width: 100%;
  padding: 2.75rem 2.25rem 2.25rem;
  text-align: center;
  border: 1px solid var(--line);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
  transform: translateY(20px);
  transition: transform .4s cubic-bezier(.16, 1, .3, 1);
  max-height: 90vh;
  overflow-y: auto;
}
.news-popup-visible .news-popup-box { transform: translateY(0); }
.news-popup-close {
  position: absolute;
  top: .75rem;
  right: .75rem;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  font-size: 1.25rem;
  color: var(--text-muted);
  cursor: pointer;
  transition: color .2s;
  font-family: inherit;
}
.news-popup-close:hover { color: var(--wine); }
html[data-theme="dark"] .news-popup-close:hover,
body.dark .news-popup-close:hover { color: var(--gold); }
.news-popup-kicker {
  display: inline-block;
  font-size: .65rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--wine);
  font-weight: 600;
  margin-bottom: .75rem;
}
html[data-theme="dark"] .news-popup-kicker,
body.dark .news-popup-kicker { color: var(--gold); }
.news-popup-title {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1.6rem, 3.5vw, 2.1rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.015em;
  color: var(--text);
  margin: 0 0 1rem;
}
.news-popup-title em {
  font-style: italic;
  font-weight: 500;
  color: var(--wine);
}
html[data-theme="dark"] .news-popup-title em,
body.dark .news-popup-title em { color: var(--gold); }
.news-popup-sub {
  font-size: .95rem;
  line-height: 1.55;
  color: var(--text-soft);
  margin: 0 0 1.75rem;
}
.news-popup-form { display: flex; flex-direction: column; gap: .85rem; }
.news-popup-input {
  font-family: 'Poppins', sans-serif;
  font-size: 1rem;
  padding: .9rem 0;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  text-align: center;
  transition: border-color .2s;
  width: 100%;
}
.news-popup-input:focus {
  outline: none;
  border-bottom-color: var(--wine);
}
html[data-theme="dark"] .news-popup-input:focus,
body.dark .news-popup-input:focus { border-bottom-color: var(--gold); }
.news-popup-input::placeholder { color: var(--text-muted); opacity: .55; }
.news-popup-submit {
  font-family: 'Poppins', sans-serif;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  padding: 1rem 1.5rem;
  background: var(--wine);
  color: white;
  border: 1px solid var(--wine);
  cursor: pointer;
  transition: all .25s;
  margin-top: .5rem;
}
.news-popup-submit:hover:not(:disabled) {
  background: transparent;
  color: var(--wine);
}
html[data-theme="dark"] .news-popup-submit,
body.dark .news-popup-submit {
  background: var(--gold); border-color: var(--gold); color: #000;
}
html[data-theme="dark"] .news-popup-submit:hover:not(:disabled),
body.dark .news-popup-submit:hover:not(:disabled) {
  background: transparent; color: var(--gold);
}
.news-popup-decline {
  background: none;
  border: none;
  font-family: 'Poppins', sans-serif;
  font-size: .8rem;
  color: var(--text-muted);
  cursor: pointer;
  padding: .5rem;
  margin-top: .25rem;
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: color .2s;
}
.news-popup-decline:hover { color: var(--text); }
.news-popup-success { padding: 1rem 0; }
.news-popup-success-title {
  font-family: 'Poppins', sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--wine);
  margin: 0 0 .75rem;
}
html[data-theme="dark"] .news-popup-success-title,
body.dark .news-popup-success-title { color: var(--gold); }
.news-popup-success-msg {
  color: var(--text-soft);
  line-height: 1.5;
  margin: 0;
}

@media (max-width: 480px) {
  .news-popup-box { padding: 2.25rem 1.5rem 1.75rem; }
}

/* ─── Hero CTAs (btn-w / btn-g) ─── */
.h-btns {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
.btn-w, .btn-g {
  display: inline-block;
  font-family: 'Poppins', sans-serif;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  padding: 1rem 1.75rem;
  text-decoration: none;
  border: 1px solid;
  transition: all .25s;
  white-space: nowrap;
  cursor: pointer;
}
.btn-w {
  background: var(--wine);
  color: white;
  border-color: var(--wine);
}
.btn-w:hover {
  background: transparent;
  color: var(--wine);
}
.btn-g {
  background: transparent;
  color: var(--text);
  border-color: var(--text);
}
.btn-g:hover {
  background: var(--text);
  color: var(--bg);
}
html[data-theme="dark"] .btn-w,
body.dark .btn-w {
  background: var(--gold);
  border-color: var(--gold);
  color: #000;
}
html[data-theme="dark"] .btn-w:hover,
body.dark .btn-w:hover {
  background: transparent;
  color: var(--gold);
}
@media (max-width: 480px) {
  .h-btns { flex-direction: column; align-items: stretch; }
  .btn-w, .btn-g { text-align: center; width: 100%; }
}

/* ═══════════════════════════════════════════════
   BUG FIXES — Active states (navbar + footer langs)
═══════════════════════════════════════════════ */

/* Navbar — link de la página actual: vino en claro, gold en oscuro */
.nav-links a.nav-active {
  color: var(--wine);
}
.nav-links a.nav-active::after {
  width: 100%;
  background: var(--wine);
}
html[data-theme="dark"] .nav-links a.nav-active,
body.dark .nav-links a.nav-active {
  color: var(--gold);
}
html[data-theme="dark"] .nav-links a.nav-active::after,
body.dark .nav-links a.nav-active::after {
  background: var(--gold);
}

/* Mobile nav active */
.mob-nav-links a.nav-active,
.mob-tours-link.nav-active {
  color: var(--wine);
  font-weight: 600;
}
html[data-theme="dark"] .mob-nav-links a.nav-active,
html[data-theme="dark"] .mob-tours-link.nav-active,
body.dark .mob-nav-links a.nav-active,
body.dark .mob-tours-link.nav-active {
  color: var(--gold);
}

/* Footer — idioma activo: solo color gold, mismo peso que links normales */
.footer-col-links a.footer-lang-active {
  color: var(--gold);
}

/* ═══════════════════════════════════════════════
   BUG FIX 3 — btn-g visible en heros con overlay oscuro
   (siempre blanco/claro, en modo claro Y oscuro)
═══════════════════════════════════════════════ */
.hero .btn-g,
.hero-4x4 .btn-g,
.hero-am .btn-g,
.hero-luj .btn-g,
.hero-bl .btn-g,
.hero-ck .btn-g,
.ct-hero .btn-g,
.ct-btn-g,
.cta-am .btn-g,
.cta-4x4 .btn-g {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.85);
}
.hero .btn-g:hover,
.hero-4x4 .btn-g:hover,
.hero-am .btn-g:hover,
.hero-luj .btn-g:hover,
.hero-bl .btn-g:hover,
.hero-ck .btn-g:hover,
.ct-hero .btn-g:hover,
.ct-btn-g:hover,
.cta-am .btn-g:hover,
.cta-4x4 .btn-g:hover {
  background: #fff;
  color: #1a1a1a;
  border-color: #fff;
}
/* BUG FIX 4 — Eventos título: prevenir overflow en palabras largas */
.ev-portada { overflow-x: hidden; }
.ev-portada-word {
  word-break: keep-all;
  overflow-wrap: normal;
}
@media (max-width: 480px) {
  /* En mobile móvil pequeño, comprimir letter-spacing para que entren palabras largas */
  .ev-portada-word {
    letter-spacing: -.08em;
  }
}
/* BUG FIX 5 — City tour título mobile no cortado */
.ct-hero { overflow-x: hidden; }
.ct-hero-h1 { word-break: keep-all; overflow-wrap: normal; }
@media (max-width: 480px) {
  .ct-hero-content { padding: 0 1rem; }
  .ct-hero-h1 { letter-spacing: -.07em; }
}
/* BUG FIX 6 — Mobile staff: priorizar cabeza (object-position top) */
@media (max-width: 768px) {
  .nos-miembro-img img {
    object-position: center 25%;
  }
}

/* Footer mobile — link activo: gold */
.foot-mobile-links a.footer-link-active {
  color: var(--gold) !important;
}

