/* =====================================================
   EXPLORA CON AURORA — v5 · Light, agency, conversion
   ===================================================== */

:root{
  --paper:   #F4F1EA;
  --paper-2: #ECE7DC;
  --paper-3: #E1DAC9;
  --ink:     #0F1B3D;
  --ink-2:   #1F2A50;
  --mute:    rgba(15,27,61,.7);
  --mute-l:  rgba(244,241,234,.78);
  --line:    rgba(15,27,61,.16);
  --line-l:  rgba(244,241,234,.22);
  --teal:    #2C8580;
  --teal-2:  #1F6360;
  --mint:    #C8DDD2;
  --mint-2:  #D7E6DD;
  --gold:    #D89B68;
  --warm:    #E8C7A6;
  /* Roma warm palette */
  --terracotta: #C75D34;
  --sienna:     #B85F2E;
  --sun:        #E8A547;
  --sun-soft:   #F5C77A;
  --rose:       #E89999;
  --cream-warm: #F8EBD3;

  --serif: 'Fraunces', Georgia, serif;
  --sans:  'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --pad: clamp(20px, 4vw, 48px);
  --gut: clamp(70px, 9vw, 130px);
  --ease: cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px;background:var(--paper)}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* cursor custom desactivado — cursor del sistema siempre visible (más fiable) */
img{display:block;max-width:100%;image-orientation:from-image}
a{color:inherit;text-decoration:none}
button{font:inherit;background:0;border:0;cursor:pointer;color:inherit}
ul{margin:0;padding:0;list-style:none}
::selection{background:var(--ink);color:var(--paper)}

/* ============== TYPE ============== */
.eye{
  display:inline-block;
  font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--terracotta);
  margin-bottom:24px;
}
.eye--light{ color:var(--sun-soft) }

.display{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(36px, 5.2vw, 72px);
  line-height:1.02;letter-spacing:-.02em;
  margin:0 0 22px;color:var(--ink);
}
.display em{
  font-style:italic;font-weight:400;
  background: linear-gradient(180deg, var(--sun) 0%, var(--terracotta) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.display--xl{
  font-size:clamp(40px, 6.4vw, 110px);
  line-height:.96;letter-spacing:-.025em;
}
.display--light{ color:var(--paper) }
.display--light em{
  background: linear-gradient(180deg, var(--sun-soft) 0%, var(--sun) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

p{ font-size:clamp(16px,1.1vw,18px); line-height:1.7; color:var(--ink-2); margin:0 0 18px }
em{ font-style:italic }

.bg-num{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:14px;letter-spacing:.08em;
  color:var(--mute);
  display:block;margin-bottom:8px;
}

.more{
  display:inline-flex;align-items:center;gap:10px;
  font-size:14px;font-weight:600;letter-spacing:.04em;
  color:var(--ink);
  border-bottom:1.5px solid var(--ink);padding-bottom:5px;
  transition:gap .35s var(--ease), color .3s, border-color .3s;
}
.more i{ font-style:normal;transition:transform .35s var(--ease) }
.more:hover{ gap:18px;color:var(--teal);border-color:var(--teal) }

/* ============== BUTTONS ============== */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:14px;
  padding:16px 22px 16px 26px;border-radius:999px;
  font-size:14px;font-weight:600;letter-spacing:.04em;
  white-space:nowrap;
  transition:transform .35s var(--ease), background .3s, color .3s, border-color .3s;
}
.btn span{ position:relative;z-index:2 }
.btn i{
  position:relative;z-index:2;
  width:28px;height:28px;border-radius:50%;
  display:grid;place-items:center;
  transition:transform .35s var(--ease);
}
.btn i::before{ content:"→";font-size:14px }
.btn:hover{ transform:translateY(-2px) }
.btn:hover i{ transform:translateX(3px) }

.btn--solid{ background:var(--ink);color:var(--paper) }
.btn--solid i{ background:var(--paper);color:var(--ink) }
.btn--solid i::before{ color:var(--ink) }
.btn--solid:hover{ background:var(--terracotta) }

.btn--ghost{ background:transparent;color:var(--ink);border:1.5px solid var(--ink) }
.btn--ghost:hover{ background:var(--ink);color:var(--paper) }

.btn--light{ background:var(--paper);color:var(--ink) }
.btn--light i{ background:var(--ink);color:var(--paper) }
.btn--light i::before{ color:var(--paper) }
.btn--light:hover{ background:var(--mint-2) }

.btn--ghost-light{ background:transparent;color:var(--paper);border:1.5px solid rgba(244,241,234,.5) }
.btn--ghost-light:hover{ background:var(--paper);color:var(--ink) }

.btn--big{ padding:20px 26px 20px 30px;font-size:15.5px }
.btn--big i{ width:32px;height:32px }

/* ============== INTRO LOADER (light + facts) ============== */
.intro{
  position:fixed;inset:0;z-index:200;
  background:var(--paper);
  color:var(--ink);
  display:grid;place-items:center;
  transition:transform 1s var(--ease);
  overflow:hidden;
}
.intro::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(216,155,104,.18) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 100%, rgba(199,221,210,.45) 0%, transparent 55%);
  pointer-events:none;
}
.intro.is-out{ transform:translateY(-101%) }
.intro__inner{
  position:relative;z-index:1;
  width:min(820px, 92vw);text-align:center;
  padding: 0 var(--pad);
}
.intro__brand{
  display:block;
  font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--teal);margin-bottom:32px;
  opacity:0;animation:i-fade .8s var(--ease) .15s forwards;
}
.intro__facts{ position:relative;min-height:220px }
.intro__facts p{
  position:absolute;left:0;right:0;top:0;margin:0;
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(28px,4.4vw,56px);line-height:1.15;letter-spacing:-.01em;
  color:var(--ink);
  opacity:0;transform:translateY(20px);
  transition:opacity .6s var(--ease), transform .6s var(--ease);
}
.intro__facts p em{ font-style:italic;color:var(--teal) }
.intro__facts p.is-active{ opacity:1;transform:translateY(0) }

.intro__bar{
  position:relative;width:240px;max-width:60%;height:2px;
  background:rgba(15,27,61,.12);overflow:hidden;border-radius:2px;
  margin: 40px auto 18px;
}
.intro__bar span{ display:block;width:0;height:100%;background:var(--teal);
  animation:i-fill 2.6s var(--ease) forwards }
@keyframes i-fill{ to{ width:100% } }
.intro__count{
  display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--mute);
  font-weight:500;
}
.intro__count i{ font-style:normal;color:var(--ink);font-weight:600 }
@keyframes i-fade{ to{ opacity:1 } }

/* ============== CURSOR (desactivado) ============== */
.cur{ display:none !important }
.cur__label{
  font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);opacity:0;white-space:nowrap;
  transition:opacity .25s var(--ease);
}
.cur.is-link{ width:34px;height:34px;background:var(--teal);mix-blend-mode:normal }
.cur.is-text{ width:80px;height:80px;background:var(--mint-2);mix-blend-mode:normal }
.cur.has-label{ width:90px;height:90px;background:var(--mint-2);mix-blend-mode:normal }
.cur.has-label .cur__label{ opacity:1 }
@media (hover:none){ .cur{ display:none } }

/* ============== NAV ============== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:14px var(--pad);
  background:rgba(244,241,234,.86);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid transparent;
  transition:padding .3s var(--ease), border-color .3s, background .3s;
}
.nav.is-scrolled{
  padding:10px var(--pad);
  background:rgba(244,241,234,.94);
  border-bottom-color:var(--line);
}
.nav__logo img{ height:46px;width:auto;display:block }
.nav__links{ display:flex;gap:22px; flex-wrap:nowrap }
.nav__links a{
  position:relative;
  font-size:14px;font-weight:500;color:var(--ink);
  padding:6px 2px;
  white-space:nowrap;
  transition:color .3s;
}
@media (min-width:1101px) and (max-width:1320px){
  .nav__links{ gap:11px }
  .nav__links a{ font-size:12.5px; letter-spacing:.005em }
  .nav{ gap:12px; padding:10px var(--pad) }
  .nav__cta{ padding-left:14px; font-size:12.5px }
  .nav__logo img{ height:38px }
}
.nav__links a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;
  height:1.5px;background:var(--terracotta);
  transition:right .35s var(--ease);
}
.nav__links a:hover{ color:var(--terracotta) }
.nav__links a:hover::after{ right:0 }
.nav__links a.is-current{ color:var(--terracotta) }
.nav__links a.is-current::after{ right:0 }

.nav__cta{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--ink);color:var(--paper);
  padding:11px 11px 11px 20px;border-radius:999px;
  font-size:13px;font-weight:600;letter-spacing:.04em;
  transition:transform .3s var(--ease), background .3s;
}
.nav__cta i{
  width:24px;height:24px;border-radius:50%;background:var(--paper);
  display:grid;place-items:center;
}
.nav__cta i::before{ content:"→";color:var(--ink);font-size:12px }
.nav__cta:hover{ background:var(--teal); transform:translateY(-2px) }

/* burger */
.nav__burger{
  display:none;
  width:42px;height:42px;border-radius:999px;
  background:var(--paper);
  border:1px solid var(--line);
  align-items:center;justify-content:center;
  flex-direction:column;gap:5px;
  z-index:120;
}
.nav__burger span{
  display:block;width:18px;height:1.5px;background:var(--ink);
  transition:transform .3s var(--ease), opacity .2s var(--ease);
}
.nav__burger.is-open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg) }
.nav__burger.is-open span:nth-child(2){ opacity:0 }
.nav__burger.is-open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg) }

/* mobile menu panel */
.mobile-menu{
  position:fixed;inset:0;z-index:90;
  background:var(--ink);
  visibility:hidden;opacity:0;
  transition:opacity .4s var(--ease), visibility .4s;
  display:flex;align-items:flex-start;justify-content:center;
  padding: 80px var(--pad) calc(40px + env(safe-area-inset-bottom));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.mobile-menu.is-open{ visibility:visible;opacity:1 }
.mobile-menu__inner{
  display:flex;flex-direction:column;gap:2px;
  width:100%;max-width:520px;
}
.mobile-menu a{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(22px,5vw,32px);line-height:1.2;letter-spacing:-.01em;
  color:var(--paper);
  padding:13px 0;
  border-bottom:1px solid rgba(244,241,234,.12);
  transform:translateY(14px);opacity:0;
  transition:transform .5s var(--ease), opacity .5s var(--ease), color .3s;
}
.mobile-menu.is-open a{ transform:translateY(0);opacity:1 }
.mobile-menu.is-open a:nth-child(1){ transition-delay:.08s }
.mobile-menu.is-open a:nth-child(2){ transition-delay:.12s }
.mobile-menu.is-open a:nth-child(3){ transition-delay:.16s }
.mobile-menu.is-open a:nth-child(4){ transition-delay:.2s }
.mobile-menu.is-open a:nth-child(5){ transition-delay:.24s }
.mobile-menu.is-open a:nth-child(6){ transition-delay:.28s }
.mobile-menu.is-open a:nth-child(7){ transition-delay:.32s }
.mobile-menu.is-open a:nth-child(8){ transition-delay:.36s }
.mobile-menu.is-open a:nth-child(9){ transition-delay:.4s }
.mobile-menu.is-open a:nth-child(10){ transition-delay:.44s }
.mobile-menu a.is-current{ color:var(--mint-2) }
.mobile-menu__cta{
  margin-top:18px;
  background:var(--paper);color:var(--ink) !important;
  padding:18px 24px !important;
  border-radius:999px;border-bottom:0 !important;
  font-family:var(--sans) !important;font-weight:600 !important;
  font-size:16px !important;letter-spacing:.04em !important;
  text-align:center;
  display:flex;align-items:center;justify-content:center;gap:10px;
}
body.menu-open{ overflow:hidden }

@media (max-width:1100px){
  .nav__links, .nav__cta{ display:none }
  .nav__burger{ display:flex }
  .nav__logo img{ height:38px }
}

/* ============== HERO (light split) ============== */
.hero--light{
  background: linear-gradient(180deg, var(--paper) 0%, var(--cream-warm) 100%);
  padding: calc(var(--pad) + 90px) var(--pad) calc(var(--pad) + 30px);
  position:relative;overflow:hidden;
}
.hero--light::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 0% 0%, rgba(232,165,71,.16) 0%, transparent 50%),
    radial-gradient(ellipse at 100% 100%, rgba(199,93,52,.10) 0%, transparent 50%);
  pointer-events:none;
}
.hero__split{
  position:relative;
  display:grid;grid-template-columns: 1.05fr .95fr;
  gap: clamp(40px, 6vw, 80px);
  align-items:center;
  max-width:1320px;margin:0 auto;
  min-height:78dvh;
}
.hero__text .eye{
  color:var(--terracotta);
  margin-bottom:30px;
  opacity:0;transform:translateY(8px);
  animation:fade-up 1s var(--ease) .2s forwards;
}
.hero__h{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(42px, 6vw, 96px);line-height:.98;letter-spacing:-.02em;
  margin:0 0 28px;color:var(--ink);
}
.hero__h em{
  font-style:italic;font-weight:400;
  color: var(--terracotta);
}
.hero__h .line{
  display:block; overflow:hidden;
  padding-block: .04em;
}
.hero__h .line > span{
  display:inline-block;
  transform:translateY(105%);
  animation: line-rise 1s var(--ease) forwards;
}
.hero__h .line:nth-child(1) > span{ animation-delay: .4s }
.hero__h .line:nth-child(2) > span{ animation-delay: .6s }
.hero__h .line:nth-child(3) > span{ animation-delay: .8s }
@keyframes line-rise{ to{ transform:translateY(0) } }
@keyframes word-rise{ to{ transform:translateY(0) } }
@keyframes fade-up{ to{ opacity:1;transform:translateY(0) } }

.hero__p{
  max-width:520px;font-size:clamp(16px,1.2vw,19px);line-height:1.6;color:var(--ink-2);
  margin:0 0 32px;
  opacity:0;transform:translateY(10px);
  animation:fade-up 1s var(--ease) 1s forwards;
}
.hero__p em{ color:var(--ink) }

.hero__ctas{
  display:flex;gap:14px;flex-wrap:wrap;
  margin-bottom:50px;
  opacity:0;transform:translateY(10px);
  animation:fade-up 1s var(--ease) 1.15s forwards;
}

.hero__trust{
  display:flex;flex-wrap:wrap;gap:30px 50px;
  border-top:1px solid var(--line);
  padding-top:24px;
  opacity:0;transform:translateY(10px);
  animation:fade-up 1s var(--ease) 1.3s forwards;
}
.hero__trust li{ display:flex;flex-direction:column;gap:2px }
.hero__trust b{
  font-family:var(--serif);font-weight:400;font-style:italic;
  font-size:clamp(22px,2.4vw,30px);color:var(--ink);
  letter-spacing:-.005em;
}
.hero__trust span{ font-size:12px;letter-spacing:.08em;color:var(--mute) }

/* hero photo card */
.hero__photo{
  position:relative;display:block;
  border-radius:14px;overflow:hidden;
  aspect-ratio: 4/5;
  background:var(--paper-2);
  transition:transform .5s var(--ease);
  opacity:0;transform:translateY(20px) scale(.98);
  animation:hero-photo-in 1.2s var(--ease) .5s forwards;
  box-shadow:0 30px 60px -30px rgba(15,27,61,.35);
}
@keyframes hero-photo-in{ to{ opacity:1; transform:translateY(0) scale(1) } }
.hero__photo img{
  width:100%;height:100%;object-fit:cover;object-position:center 25%;
  transition:transform 1.2s var(--ease);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform:translateZ(0);
}
.hero__photo:hover img{ transform:scale(1.04) }
.hero__photo-tag{
  position:absolute;left:18px;bottom:18px;right:18px;
  display:flex;align-items:center;justify-content:space-between;
  font-family:var(--serif);font-weight:500;font-size:18px;
  color:var(--ink);
  background:var(--paper);
  padding:14px 18px;border-radius:10px;
  letter-spacing:-.005em;
}
.hero__photo-tag small{
  font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--terracotta);
}

@media (max-width:900px){
  .hero__split{ grid-template-columns:1fr;gap:40px;min-height:0 }
  .hero__photo{ order:-1;max-height:60vh;aspect-ratio:16/12 }
}

/* ============== TICKER ============== */
.ticker{
  background:var(--ink);
  padding:22px 0;
  overflow:hidden;
}
.ticker__row{
  display:flex;gap:50px;align-items:center;
  white-space:nowrap;
  font-family:var(--serif);font-weight:300;
  font-size:clamp(28px,4.2vw,60px);line-height:1;letter-spacing:-.01em;
  color:var(--paper);
  animation:tick 32s linear infinite;
  width:max-content;
}
.ticker:hover .ticker__row{ animation-play-state:paused }
.ticker__row em{ font-style:italic }
.ticker__row a{
  color:var(--paper);text-decoration:none;
  display:inline-flex;align-items:center;
  transition:color .3s var(--ease), transform .3s var(--ease);
  position:relative;
  padding:.05em 0;
}
.ticker__row a::after{
  content:"";position:absolute;left:0;right:0;bottom:.06em;
  height:2px;background:var(--mint-2);
  transform:scaleX(0);transform-origin:left;
  transition:transform .4s var(--ease);
}
.ticker__row a:hover{ color:var(--mint-2);transform:translateY(-2px) }
.ticker__row a:hover::after{ transform:scaleX(1) }
.ticker__row i{ color:var(--mint-2);font-style:normal;font-size:.55em }
@keyframes tick{ to{ transform:translateX(-50%) } }

/* ============== SOBRE ============== */
.sobre{
  display:grid;grid-template-columns: 1.05fr 1fr;
  gap: clamp(40px, 5vw, 70px);
  padding: var(--gut) var(--pad);
  align-items:center;
  max-width:1200px;margin:0 auto;
}
.sobre__media{
  position:relative;border-radius:14px;overflow:hidden;
  aspect-ratio: 4/5;
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
}
.sobre__media img{
  width:100%;height:100%;object-fit:cover;object-position:center 25%;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform:translateZ(0);
}
.sobre__text{ max-width:560px }
.sobre__list{
  margin: 30px 0;border-top:1px solid var(--line);
}
.sobre__list li{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:14px 0;border-bottom:1px solid var(--line);
}
.sobre__list span{ font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute) }
.sobre__list b{
  font-family:var(--serif);font-style:italic;font-weight:400;font-size:17px;color:var(--ink);
  text-align:right;
}
@media (max-width:880px){
  .sobre{ grid-template-columns:1fr;gap:40px }
  .sobre__media{ aspect-ratio:1 }
}

/* ============== MANIFEST ============== */
.manifest{
  position:relative;
  padding: var(--gut) var(--pad);
  background:var(--paper-2);
  border-top:1px solid var(--line);
}
.manifest .bg-num{ position:absolute;top:var(--pad);right:var(--pad);margin:0 }
.m-head{ max-width:760px;margin:0 0 50px }
.m-head--center{ margin: 0 auto 50px;text-align:center }
.m-head__sub{ margin-top:14px;font-size:16px;color:var(--ink-2);max-width:600px }
.m-head--center .m-head__sub{ margin-inline:auto }
.manifest .display{ max-width:14ch }

.promises{
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;
  margin-top:30px;max-width:1320px;
}
.promises article{
  padding:28px 0;
  border-top:1.5px solid var(--ink);
}
.p-no{
  display:block;
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:14px;color:var(--terracotta);margin-bottom:14px;
}
.promises h3{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(28px,3.4vw,42px);line-height:1;letter-spacing:-.01em;
  margin:0 0 14px;color:var(--ink);
}
.promises p{
  font-size:15.5px;line-height:1.6;color:var(--ink-2);margin:0;
}
@media (max-width:860px){ .promises{ grid-template-columns:1fr;gap:0 } }

/* ============== KIDS FEATURE BAND ============== */
.kids-feature{
  display:grid;
  grid-template-columns: 1fr 1.05fr;
  gap: clamp(40px, 5vw, 70px);
  align-items:center;
  padding: var(--gut) var(--pad);
  background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  max-width:1320px;
  margin: 0 auto;
}
.kids-feature__media{
  position:relative;display:block;
  aspect-ratio: 4/5;
  border-radius:18px;overflow:hidden;
  background:var(--paper-2);
  box-shadow:0 30px 60px -30px rgba(15,27,61,.25);
  transition:transform .5s var(--ease);
}
.kids-feature__media img{
  width:100%;height:100%;object-fit:cover;object-position:center 25%;
  transition:transform 1.2s var(--ease);
}
.kids-feature__media:hover{ transform:translateY(-3px) }
.kids-feature__media:hover img{ transform:scale(1.04) }
.kids-feature__chip{
  position:absolute;left:18px;bottom:18px;
  font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);background:var(--paper);
  padding:9px 14px;border-radius:999px;
}
.kids-feature__text .display{ font-size:clamp(34px, 5vw, 76px); line-height: 1.02 }
.kids-feature__text .display em{ color:var(--teal) }
.kids-feature__text p{
  font-size:clamp(16px,1.15vw,18px);line-height:1.65;color:var(--ink-2);margin:0 0 28px;
}
.kids-feature__text p b{ color:var(--ink); font-weight:600 }
.kids-feature__ctas{
  display:flex;align-items:center;gap:24px;flex-wrap:wrap;
}
.kids-feature__small{
  font-size:13px;letter-spacing:.04em;color:var(--mute);
}
@media (max-width:880px){
  .kids-feature{ grid-template-columns:1fr;gap:40px }
  .kids-feature__media{ aspect-ratio:4/3;max-height:50vh;order:-1 }
}

/* ============== TOURS GRID (light) ============== */
.tours-grid{
  position:relative;
  padding: var(--gut) var(--pad);
  background:var(--paper);
}
.tours-grid .bg-num{ position:absolute;top:var(--pad);right:var(--pad);margin:0 }

.tg{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  max-width:1320px;margin:0 auto;
}
.tg-card{
  display:flex;flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  text-decoration:none;color:inherit;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s;
  position:relative;
}
.tg-card::after{
  content:"";position:absolute;top:0;left:0;right:0;
  height:3px;background: linear-gradient(90deg, var(--terracotta) 0%, var(--sun) 100%);
  transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--ease);
}
.tg-card:hover{ transform:translateY(-6px); box-shadow:0 26px 50px -28px rgba(15,27,61,.3); border-color:var(--terracotta) }
.tg-card:hover::after{ transform:scaleX(1) }
.tg-card__img{
  aspect-ratio: 16/10;overflow:hidden;background:var(--paper-2);
}
.tg-card__img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1s var(--ease);
}
.tg-card:hover .tg-card__img img{ transform:scale(1.05) }
.tg-card__body{
  flex:1;
  padding:26px 26px 28px;
  display:flex;flex-direction:column;
}
.tg-card__no{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:14px;color:var(--terracotta);margin-bottom:10px;
}
.tg-card h3{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(22px,2.2vw,28px);line-height:1.1;letter-spacing:-.01em;
  margin:0 0 10px;color:var(--ink);
}
.tg-card h3 em{ font-style:italic }
.tg-card p{
  font-size:15px;line-height:1.55;color:var(--ink-2);margin:0 0 18px;
  flex:1;
}
.tg-card__meta{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--mute);
  padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  margin-bottom:16px;
}
.tg-card__meta i{ display:inline-block;width:3px;height:3px;background:var(--mute);border-radius:50% }
.tg-card__cta{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--ink);
  transition:gap .3s var(--ease), color .3s;
  margin-top:auto;
}
.tg-card__cta i{ font-style:normal }
.tg-card:hover .tg-card__cta{ gap:14px;color:var(--teal) }

.tg-card--special{
  background:var(--mint-2);border-color:transparent;
}
.tg-card--special .tg-card__no{ color:var(--teal-2) }
.tg-card--special:hover{ background:var(--mint) }

/* custom card (clickable) */
.tg-custom{
  display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;
  margin: 30px auto 0;max-width:1320px;
  padding:34px 36px;border-radius:14px;
  background:var(--ink);color:var(--paper);
  text-decoration:none;
  transition:background .35s var(--ease), transform .3s var(--ease);
}
.tg-custom:hover{ background:var(--teal); transform:translateY(-2px) }
.tg-custom__l{ display:flex;align-items:center;gap:24px;flex-wrap:wrap;flex:1 }
.tg-custom__plus{
  font-family:var(--serif);font-weight:300;font-size:64px;line-height:1;color:var(--mint-2);
}
.tg-custom h3{
  font-family:var(--serif);font-weight:400;font-style:normal;
  font-size:clamp(22px,2.4vw,30px);line-height:1.05;
  margin:0 0 6px;color:var(--paper);letter-spacing:-.01em;
}
.tg-custom h3 em{ font-style:italic;color:var(--mint-2) }
.tg-custom p{ font-size:15px;color:rgba(244,241,234,.85);margin:0;max-width:48ch }
.tg-custom__cta{
  display:inline-flex;align-items:center;gap:10px;
  font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--paper);
  border:1.5px solid rgba(244,241,234,.4);
  padding:14px 22px;border-radius:999px;
  transition:gap .3s var(--ease), background .3s, color .3s;
}
.tg-custom__cta i{ font-style:normal }
.tg-custom:hover .tg-custom__cta{ background:var(--paper);color:var(--ink);border-color:var(--paper) }

@media (max-width:1100px){ .tg{ grid-template-columns:1fr 1fr } }
@media (max-width:680px){ .tg{ grid-template-columns:1fr } }

/* ============== STORY (sticky) ============== */
.story{
  background:var(--paper-2);
  padding: var(--gut) var(--pad);
  border-top:1px solid var(--line);
}
.story__inner{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items:start;
  max-width:1320px;margin:0 auto;
}
.story__photo-col{
  position:sticky;top:100px;height:max-content;
}
.story__photo-wrap{
  position:relative;aspect-ratio: 4/5;
  border-radius:14px;overflow:hidden;
  background:var(--ink);
  box-shadow:0 30px 60px -30px rgba(15,27,61,.25);
}
.story__photo{
  position:absolute;inset:0;
  background-size:cover;background-position:center 25%;
  opacity:0;transform:scale(1.05) translateZ(0);
  transition:opacity 1s var(--ease), transform 1.4s var(--ease);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  will-change: opacity, transform;
}
.story__photo.is-active{ opacity:1;transform:scale(1) translateZ(0) }
.story__chip{
  position:absolute;left:18px;bottom:18px;
  font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);
  background:var(--paper);
  padding:8px 14px;border-radius:999px;
}
.story__steps-col header{ margin-bottom:50px }
.story__steps-col .display{ font-size:clamp(36px,4.8vw,64px) }
.step{
  padding: 32px 0;
  border-top:1px solid var(--line);
}
.step:first-of-type{ border-top:0 }
.step__no{
  display:block;
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:16px;color:var(--terracotta);margin-bottom:12px;
}
.step h4{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(24px,3vw,36px);line-height:1.05;letter-spacing:-.01em;
  margin:0 0 12px;color:var(--ink);
}
.step p{ font-size:16px;line-height:1.6;color:var(--ink-2);margin:0;max-width:46ch }

@media (max-width:900px){
  .story__inner{ grid-template-columns:1fr;gap:24px }
  .story__photo-col{ position:sticky;top:80px;order:-1;z-index:2 }
  .story__photo-wrap{ aspect-ratio: 16/10;max-height:34vh;border-radius:12px }
}

/* ============== STATS ============== */
.stats{
  position:relative;
  background:var(--ink);color:var(--paper);
  padding: var(--gut) var(--pad);
}
.stats .bg-num{ position:absolute;top:var(--pad);right:var(--pad);margin:0;color:rgba(244,241,234,.45) }
.stats__grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  max-width:1320px;margin:0 auto;
}
.stats__grid > div{
  padding:30px 0;
  border-top:1px solid var(--line-l);
}
.stats__grid b{
  display:block;
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:clamp(56px, 8.5vw, 130px);line-height:1;letter-spacing:-.03em;
  color:var(--paper);margin-bottom:12px;
}
.stats__grid span{
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(244,241,234,.7);
}
@media (max-width:900px){ .stats__grid{ grid-template-columns:1fr 1fr } }

/* ============== REVIEWS ============== */
.rev{
  position:relative;
  padding: var(--gut) 0;
  background:var(--paper);
}
.rev .bg-num{ position:absolute;top:var(--pad);right:var(--pad);margin:0 }
.rev .m-head{ padding: 0 var(--pad); margin-bottom:50px;max-width:1320px;margin-left:auto;margin-right:auto }
.rev__rail{
  overflow:hidden;position:relative;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.rev__track{
  display:flex;gap:24px;
  width:max-content;
  animation:tick 60s linear infinite;
  padding: 8px var(--pad);
}
.rev__rail:hover .rev__track{ animation-play-state:paused }
.rev__c{
  flex:0 0 380px;
  background:var(--paper-2);border:1px solid var(--line);
  border-radius:14px;padding:30px 28px;
  display:flex;flex-direction:column;
}
.rev__s{ color:var(--gold);letter-spacing:.15em;margin-bottom:18px;font-size:14px }
.rev__c p{
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:18px;line-height:1.45;color:var(--ink);margin:0 0 22px;
  flex:1;
}
.rev__c span{ font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute) }

/* review submit form (collapsible) */
.rev-form-toggle{
  max-width:900px;margin: 50px var(--pad) 0;
  border:1px solid var(--line);border-radius:14px;
  background:var(--paper-2);
  padding: 0;
  margin-inline:auto;
}
.rev-form-toggle summary{
  list-style:none;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 26px;
  font-family:var(--serif);font-weight:400;font-size:20px;color:var(--ink);
}
.rev-form-toggle summary::-webkit-details-marker{ display:none }
.rev-form-toggle summary i{
  font-style:normal;font-weight:300;font-size:24px;color:var(--teal);
  transition:transform .35s var(--ease);
}
.rev-form-toggle[open] summary i{ transform:rotate(45deg) }

.rev-form{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;
  padding:0 26px 26px;
}
.rev-form .full{ grid-column: 1 / -1 }
.rev-form label{ display:flex;flex-direction:column;gap:6px }
.rev-form span{ font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--mute) }
.rev-form input, .rev-form select, .rev-form textarea{
  font:inherit;color:var(--ink);
  background:var(--paper);
  border:1.5px solid transparent;
  border-radius:8px;padding:13px 15px;
  resize:vertical;
}
.rev-form input:focus, .rev-form select:focus, .rev-form textarea:focus{
  outline:none;border-color:var(--teal);
}
.rev-form button{ grid-column: 1 / -1;justify-self:flex-start }
@media (max-width:600px){
  .rev-form{ grid-template-columns:1fr }
}

/* ============== FAQ ============== */
.faq{
  padding: var(--gut) var(--pad);
  background:var(--paper-2);
  border-top:1px solid var(--line);
  max-width:1320px;margin:0 auto;
  position:relative;
}
.faq .bg-num{ position:absolute;top:var(--pad);right:var(--pad);margin:0 }
.faq__list{
  border-top:1px solid var(--line);
  max-width:980px;
}
.faq__i{ border-bottom:1px solid var(--line) }
.faq__i summary{
  list-style:none;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:30px;
  padding:22px 0;
  font-family:var(--serif);font-weight:400;
  font-size:clamp(20px,2.2vw,28px);line-height:1.2;color:var(--ink);
  transition:color .3s;
}
.faq__i summary::-webkit-details-marker{display:none}
.faq__i summary i{
  font-style:normal;font-weight:300;font-size:26px;color:var(--teal);
  transition:transform .35s var(--ease);
}
.faq__i[open] summary i{ transform:rotate(45deg) }
.faq__i:hover summary{ color:var(--teal) }
.faq__i p{
  margin:0 0 22px;max-width:720px;
  font-size:16px;line-height:1.65;color:var(--ink-2);
}
.faq__i p b{ color:var(--ink); font-weight:600 }

/* ============== GUIDE TEASER ============== */
.g-teaser{
  padding: var(--gut) var(--pad);
  background:var(--paper);
  border-top:1px solid var(--line);
}
.g-teaser__inner{
  display:grid;grid-template-columns: 1.1fr .9fr;
  gap: 80px;
  max-width:1320px;margin:0 auto;
  align-items:center;
}
.g-teaser__l{ max-width:560px }
.g-teaser__l p{ font-size:16px;color:var(--ink-2);margin:0 0 28px }
.g-teaser__list{
  display:grid;grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);
}
.g-teaser__list li{
  display:flex;align-items:center;gap:14px;
  padding:13px 4px;
  border-bottom:1px solid var(--line);
  font-size:15px;
  transition: padding .3s var(--ease), color .3s;
}
.g-teaser__list li:hover{ padding-left:14px;color:var(--terracotta) }
.g-teaser__list span{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:13px;color:var(--terracotta);min-width:22px;
}
.g-teaser__list b{ font-family:var(--serif);font-weight:400;font-size:17px;color:var(--ink) }
.g-teaser__list li:hover b{ color:var(--terracotta) }
@media (max-width:880px){
  .g-teaser__inner{ grid-template-columns:1fr;gap:50px }
  .g-teaser__list{ grid-template-columns:1fr }
}

/* ============== CONTACT ============== */
.contact{
  background:var(--ink);color:var(--paper);
  padding: var(--gut) var(--pad);
  position:relative;overflow:hidden;
}
.contact::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(44,133,128,.18) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 100%, rgba(216,155,104,.12) 0%, transparent 55%);
  pointer-events:none;
}
.contact__inner{ position:relative;max-width:980px;margin:0 auto }
.contact__h{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(56px, 9vw, 140px);line-height:.95;letter-spacing:-.025em;
  margin:0 0 22px;color:var(--paper);
}
.contact__h em{ font-style:italic;font-weight:400;color:var(--mint-2) }
.contact__p{ font-size:18px;color:rgba(244,241,234,.85);margin:0 auto 50px;max-width:560px }

.contact-form{
  display:grid;grid-template-columns:1fr 1fr;gap:18px;
  background:rgba(244,241,234,.04);
  border:1px solid var(--line-l);
  border-radius:14px;
  padding:32px;
}
.contact-form .full{ grid-column: 1 / -1 }
.contact-form label{ display:flex;flex-direction:column;gap:8px }
.contact-form label > span{
  font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(244,241,234,.7);
}
.contact-form input, .contact-form select, .contact-form textarea{
  font:inherit;color:var(--paper);
  background:rgba(244,241,234,.06);
  border:1.5px solid var(--line-l);
  border-radius:8px;padding:14px 16px;
  resize:vertical;
}
.contact-form input::placeholder, .contact-form textarea::placeholder{ color:rgba(244,241,234,.45) }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{
  outline:none;border-color:var(--mint-2);background:rgba(244,241,234,.1);
}
.contact-form select option{ color:var(--ink);background:var(--paper) }
.contact-form__bottom{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;
  margin-top:8px;
}
.contact-form__small{
  font-size:13px;color:rgba(244,241,234,.7);
}
.contact-form__small a{ color:var(--mint-2);border-bottom:1px solid var(--mint-2);padding-bottom:1px }
.contact-form .btn--solid{ background:var(--paper) !important; color:var(--ink) !important }
.contact-form .btn--solid span{ color:var(--ink) !important }
.contact-form .btn--solid i{ background:var(--ink) !important; color:var(--paper) !important }
.contact-form .btn--solid i::before{ color:var(--paper) !important }
.contact-form .btn--solid:hover{ background:var(--mint-2) !important }
.contact-form .btn--solid:hover span{ color:var(--ink) !important }

.contact__lines{
  margin-top:50px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  border-top:1px solid var(--line-l);padding-top:30px;
}
.contact__lines li{ display:flex;flex-direction:column;gap:6px }
.contact__lines span{ font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,241,234,.6) }
.contact__lines a{
  font-family:var(--serif);font-style:italic;font-weight:400;font-size:17px;color:var(--paper);
  transition:color .3s;
}
.contact__lines a:hover{ color:var(--mint-2) }
@media (max-width:780px){
  .contact-form{ grid-template-columns:1fr;padding:24px }
  .contact__lines{ grid-template-columns:1fr 1fr }
}
@media (max-width:520px){
  .contact__lines{ grid-template-columns:1fr }
}

/* ============== FOOTER ============== */
.foot{
  background:var(--paper-2);color:var(--ink);
  padding: 50px var(--pad) 26px;
  overflow:hidden;
  border-top:1px solid var(--line);
}
.foot__big{
  display:flex;gap:28px;align-items:center;
  white-space:nowrap;
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:clamp(36px,7vw,84px);line-height:.95;letter-spacing:-.02em;
  color:var(--ink);
  animation:tick 32s linear infinite;
  width:max-content;
  margin-bottom:30px;
  opacity:.7;
}
.foot__big em{ font-style:italic;color:var(--teal) }
.foot__bottom{
  max-width:1320px;margin:0 auto;
  display:flex;justify-content:space-between;
  font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--mute);
  flex-wrap:wrap;gap:10px;
  border-top:1px solid var(--line);padding-top:22px;
}

/* ============== REVEAL & MOTION ============== */
.reveal{ opacity:0;transform:translateY(40px); transition:opacity 1s var(--ease), transform 1s var(--ease) }
.reveal.is-in{ opacity:1;transform:translateY(0) }

.motion{
  opacity:0;
  transform: translateY(28px);
  transition: opacity .8s var(--ease), transform .9s var(--ease);
}
.motion.is-in{ opacity:1; transform:translateY(0) }

/* word reveal (for display headings) */
.display.is-word-anim .word{ display:inline-block;overflow:hidden;padding-block:.06em }
.display.is-word-anim .word > span{
  display:inline-block;transform:translateY(110%);
  transition: transform .9s var(--ease);
}
.display.is-word-anim.is-in .word > span{ transform:translateY(0) }

/* magnetic / lift on buttons */
.btn{ will-change: transform }

/* page scroll smooth + iOS */
html{ scroll-behavior:smooth; -webkit-overflow-scrolling:touch }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important }
  .reveal, .motion{ opacity:1;transform:none }
  .hero__video{ animation:none }
}

/* =====================================================
   CONVERSION LAYER — WhatsApp float, Sticky CTA, Legal
   ===================================================== */

/* ---------- WhatsApp floating button ---------- */
.wa-float{
  /* Solo visible en móvil — en desktop ya hay sticky CTA con WhatsApp + form contacto */
  display:none;
  position:fixed; right:18px; bottom:18px;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff;
  align-items:center; justify-content:center;
  box-shadow: 0 10px 28px rgba(37,211,102,.42), 0 4px 10px rgba(0,0,0,.18);
  z-index:9990;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), bottom .35s var(--ease);
  cursor:pointer;
}
@media (max-width: 768px){
  .wa-float{ display:flex }
}
.wa-float svg{ width:30px; height:30px; position:relative; z-index:2 }
.wa-float:hover{ transform:scale(1.06); box-shadow:0 14px 32px rgba(37,211,102,.55), 0 6px 14px rgba(0,0,0,.22) }
.wa-float__pulse{
  position:absolute; inset:-4px; border-radius:50%;
  background:#25D366; opacity:.45;
  animation: waPulse 2.4s ease-out infinite;
  z-index:1;
}
@keyframes waPulse{
  0%   { transform:scale(.85); opacity:.5 }
  70%  { transform:scale(1.55); opacity:0 }
  100% { transform:scale(1.55); opacity:0 }
}
@media (max-width:640px){
  .wa-float{ width:54px; height:54px; right:14px; bottom:14px }
  .wa-float svg{ width:26px; height:26px }
}
/* hide WA float when sticky CTA is visible on mobile (avoid stacking) */
@media (max-width:760px){
  body:has(.sticky-cta.is-visible) .wa-float{ transform:translateY(-78px) }
}

/* ---------- Sticky CTA bar ---------- */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0;
  background:var(--ink); color:var(--paper);
  border-top:1px solid rgba(244,241,234,.08);
  transform:translateY(110%);
  transition: transform .45s var(--ease);
  z-index:9980;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  box-shadow:0 -8px 24px rgba(0,0,0,.18);
}
.sticky-cta.is-visible{ transform:translateY(0) }
.sticky-cta__inner{
  max-width:1200px; margin:0 auto;
  display:flex; align-items:center; gap:18px; justify-content:space-between;
}
.sticky-cta__txt{ display:flex; flex-direction:column; line-height:1.2; min-width:0 }
.sticky-cta__txt b{
  font-family:var(--serif); font-weight:400; font-style:italic;
  font-size:clamp(15px,1.6vw,18px); letter-spacing:-.01em;
}
.sticky-cta__txt span{
  font-size:12px; letter-spacing:.04em; color:var(--mute-l);
  margin-top:2px;
}
.sticky-cta__btns{ display:flex; align-items:center; gap:10px; flex-shrink:0 }
.sticky-cta__wa{
  display:inline-flex; align-items:center; gap:8px;
  background:#25D366; color:#fff;
  padding:11px 16px; border-radius:999px;
  font-weight:600; font-size:13px; letter-spacing:.02em;
  transition:transform .2s var(--ease), background .2s var(--ease);
}
.sticky-cta__wa svg{ width:16px; height:16px }
.sticky-cta__wa:hover{ background:#20BA5A; transform:translateY(-1px) }
.sticky-cta__book{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--terracotta); color:#fff;
  padding:11px 18px; border-radius:999px;
  font-weight:600; font-size:13px; letter-spacing:.02em;
  transition:transform .2s var(--ease), background .2s var(--ease);
}
.sticky-cta__book i{
  width:14px; height:1.5px; background:#fff; position:relative;
  transition:width .2s var(--ease);
}
.sticky-cta__book i::after{
  content:""; position:absolute; right:0; top:-3px;
  width:7px; height:7px; border-top:1.5px solid #fff; border-right:1.5px solid #fff;
  transform:rotate(45deg);
}
.sticky-cta__book:hover{ background:var(--sienna); transform:translateY(-1px) }
.sticky-cta__book:hover i{ width:18px }

@media (max-width:760px){
  .sticky-cta__txt span{ display:none }
  .sticky-cta__txt b{ font-size:14px }
  .sticky-cta__wa span{ display:none }
  .sticky-cta__wa{ padding:10px 12px }
  .sticky-cta__book{ padding:10px 14px; font-size:12px }
  .sticky-cta__inner{ gap:10px }
}

/* ---------- Footer legal ---------- */
.foot__legal{
  border-top:1px solid var(--line-l);
  padding:18px var(--pad);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  text-align:center;
}
.foot__legal-nav{
  display:flex; gap:14px; align-items:center;
  font-size:13px; letter-spacing:.04em;
}
.foot__legal-nav a{
  color:var(--mute-l);
  border-bottom:1px solid transparent;
  padding-bottom:2px;
  transition:color .2s var(--ease), border-color .2s var(--ease);
}
.foot__legal-nav a:hover{ color:var(--paper); border-color:var(--sun-soft) }
.foot__legal-nav span{ color:var(--mute-l); opacity:.5 }
.foot__legal-meta{
  font-size:11.5px; letter-spacing:.04em;
  color:var(--mute-l); opacity:.75;
  margin:0; max-width:680px; line-height:1.5;
}
.foot__legal-meta a{ color:inherit; border-bottom:1px solid rgba(244,241,234,.18) }
.foot__legal-meta a:hover{ color:var(--paper) }

/* ---------- Trust badge ---------- */
.trust-badge{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(44,133,128,.1);
  border:1px solid rgba(44,133,128,.25);
  color:var(--teal-2);
  padding:6px 12px; border-radius:999px;
  font-size:12px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase;
  margin-top:18px;
}
.trust-badge svg{ width:14px; height:14px; flex-shrink:0 }

/* ---------- Legal & 404 pages ---------- */
.legal-page{
  max-width:780px;
  margin:0 auto;
  padding: clamp(80px, 12vw, 140px) var(--pad) clamp(60px, 8vw, 100px);
}
.legal-page h1{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(36px,5vw,64px);
  letter-spacing:-.02em; line-height:1.05;
  margin:0 0 8px;
}
.legal-page .legal-date{
  display:block; font-size:13px; letter-spacing:.06em;
  color:var(--mute); text-transform:uppercase;
  margin-bottom:36px;
}
.legal-page h2{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(22px,2.5vw,30px);
  margin:42px 0 14px;
  letter-spacing:-.01em;
}
.legal-page h3{
  font-size:16px; font-weight:600;
  margin:24px 0 8px;
  letter-spacing:.01em;
}
.legal-page p, .legal-page li{
  font-size:15.5px; line-height:1.75; color:var(--ink-2);
}
.legal-page ul{ padding-left:20px; list-style:disc; margin:0 0 18px }
.legal-page li{ margin-bottom:6px }
.legal-page a{ color:var(--terracotta); border-bottom:1px solid currentColor }
.legal-page a:hover{ color:var(--sienna) }
.legal-page .legal-back{
  display:inline-flex; align-items:center; gap:8px;
  font-size:14px; font-weight:600; color:var(--ink);
  margin-top:48px; padding-bottom:4px;
  border-bottom:1.5px solid var(--ink);
}

/* 404 page */
.notfound{
  min-height: calc(100vh - 200px);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:var(--pad);
}
.notfound__big{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(110px,22vw,260px);
  line-height:.9; letter-spacing:-.04em;
  background: linear-gradient(180deg, var(--sun) 0%, var(--terracotta) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  margin:0 0 8px;
}
.notfound__h{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(28px,4vw,46px);
  letter-spacing:-.02em; margin:0 0 14px;
}
.notfound__p{ max-width:520px; margin:0 0 28px; color:var(--ink-2) }
.notfound__ctas{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center }

/* =====================================================
   À LA CARTE — Luxury / private commissions
   ===================================================== */
.alacarte{
  position:relative;
  background: linear-gradient(180deg, #0B1330 0%, #0F1B3D 60%, #1A2B5A 100%);
  color:var(--paper);
  padding: var(--gut) var(--pad);
  overflow:hidden;
}
.alacarte::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(60% 50% at 80% 10%, rgba(216,155,104,.18), transparent 60%),
    radial-gradient(50% 40% at 10% 90%, rgba(232,165,71,.12), transparent 65%);
  pointer-events:none;
}
.alacarte::after{
  content:""; position:absolute; left:0; right:0; top:0;
  height:1px; background:linear-gradient(90deg, transparent, rgba(216,155,104,.4), transparent);
}
.alacarte__inner{
  position:relative; z-index:1;
  max-width:1320px; margin:0 auto;
  display:grid; grid-template-columns: 1.05fr .95fr;
  gap: clamp(40px, 6vw, 90px);
  align-items:center;
}
.eye--gold{ color: var(--gold) }
.alacarte__h{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(40px, 5.4vw, 84px);
  line-height:1.02; letter-spacing:-.025em;
  margin:0 0 28px; color:var(--paper);
}
.alacarte__h span{ display:block }
.alacarte__h em{
  font-style:italic; font-weight:400;
  background: linear-gradient(180deg, #F5D9A8 0%, #D89B68 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.alacarte__lead{
  font-size:clamp(16px, 1.2vw, 18.5px);
  line-height:1.7; color:rgba(244,241,234,.82);
  max-width:560px; margin:0 0 32px;
}
.alacarte__lead em{ font-style:italic; color:var(--gold) }
.alacarte__list{
  margin: 0 0 40px; padding:0; list-style:none;
  display:flex; flex-direction:column; gap:14px;
  border-top:1px solid rgba(216,155,104,.18);
  padding-top:28px;
}
.alacarte__list li{
  display:flex; gap:14px; align-items:flex-start;
  font-size:15px; line-height:1.6;
  color:rgba(244,241,234,.88);
  font-family:var(--serif); font-style:italic; font-weight:300;
  letter-spacing:.005em;
}
.alacarte__list li span{
  color:var(--gold); font-size:22px; line-height:1; margin-top:-2px;
  font-style:normal; flex-shrink:0;
}
.alacarte__cta{
  display:inline-flex; align-items:center; gap:14px;
  padding:18px 24px 18px 28px; border-radius:999px;
  background:transparent;
  color:var(--gold);
  border:1.5px solid var(--gold);
  font-weight:600; font-size:14.5px; letter-spacing:.06em;
  text-transform:uppercase;
  transition: background .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);
}
.alacarte__cta i{
  width:30px; height:30px; border-radius:50%;
  background:var(--gold); color:#0F1B3D;
  display:grid; place-items:center;
  transition: transform .35s var(--ease);
}
.alacarte__cta i::before{ content:"→"; font-size:14px; font-weight:700 }
.alacarte__cta:hover{ background:var(--gold); color:#0F1B3D; transform:translateY(-2px) }
.alacarte__cta:hover i{ background:#0F1B3D; color:var(--gold); transform:translateX(3px) }
.alacarte__cta:hover i::before{ color:var(--gold) }
.alacarte__note{
  margin:14px 0 0; font-size:12px; letter-spacing:.06em;
  color:rgba(244,241,234,.5);
  font-style:italic; font-family:var(--serif); font-weight:300;
}
.alacarte__media{
  position:relative;
  aspect-ratio: 4/5;
  border-radius:14px; overflow:hidden;
  box-shadow: 0 40px 80px -30px rgba(0,0,0,.6),
              0 0 0 1px rgba(216,155,104,.18);
}
.alacarte__media img{
  width:100%; height:100%; object-fit:cover; object-position:center 25%;
  filter: saturate(.92) contrast(1.05) brightness(.92);
  transition: transform 1.2s var(--ease);
}
.alacarte__media:hover img{ transform: scale(1.04) }
.alacarte__media::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 50%, rgba(11,19,48,.55) 100%);
  pointer-events:none;
}
.alacarte__chip{
  position:absolute; left:18px; top:18px;
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(11,19,48,.7);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  border:1px solid rgba(216,155,104,.35);
  color:var(--gold);
  padding:8px 14px; border-radius:999px;
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase;
  z-index:2;
}
.alacarte__chip::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 8px var(--gold);
}

@media (max-width: 900px){
  .alacarte__inner{ grid-template-columns:1fr; gap:36px }
  .alacarte__media{ order:-1; max-height:60vh; aspect-ratio:16/12 }
}

/* =====================================================
   EXIT-INTENT MODAL — capturar email con la guía
   ===================================================== */
.exit-modal{
  position:fixed; inset:0; z-index:9999;
  display:grid; place-items:center;
  padding:20px;
  opacity:0; pointer-events:none;
  transition: opacity .35s var(--ease);
}
.exit-modal.is-open{ opacity:1; pointer-events:auto }
.exit-modal__backdrop{
  position:absolute; inset:0;
  background: rgba(11,19,48,.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.exit-modal__card{
  position:relative; z-index:1;
  background: var(--paper);
  color: var(--ink);
  width:min(520px, 100%);
  padding: clamp(36px, 5vw, 56px) clamp(28px, 4vw, 48px);
  border-radius: 16px;
  box-shadow: 0 60px 100px -30px rgba(0,0,0,.4);
  text-align:center;
  transform: translateY(20px) scale(.97);
  opacity:0;
  transition: transform .5s var(--ease), opacity .4s var(--ease);
}
.exit-modal__card::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  border-radius:16px;
  background:
    radial-gradient(60% 50% at 20% 0%, rgba(216,155,104,.16), transparent 60%),
    radial-gradient(50% 40% at 100% 100%, rgba(199,221,210,.4), transparent 65%);
}
.exit-modal.is-open .exit-modal__card{ transform:translateY(0) scale(1); opacity:1 }
.exit-modal__close{
  position:absolute; top:14px; right:14px;
  width:36px; height:36px; border-radius:50%;
  background:transparent;
  color:var(--mute);
  font-size:24px; line-height:1;
  display:grid; place-items:center;
  transition: background .2s, color .2s;
  z-index:2;
}
.exit-modal__close:hover{ background:rgba(15,27,61,.08); color:var(--ink) }
.exit-modal__eye{
  display:block;
  font-size:12px; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--terracotta);
  margin-bottom:18px;
}
.exit-modal__h{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(28px, 4vw, 42px);
  line-height:1.05; letter-spacing:-.02em;
  margin:0 0 16px; color:var(--ink);
}
.exit-modal__h em{
  font-style:italic; font-weight:400;
  background: linear-gradient(180deg, var(--sun) 0%, var(--terracotta) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.exit-modal__p{
  font-size:15px; line-height:1.6; color:var(--ink-2);
  margin:0 auto 28px; max-width:420px;
}
.exit-modal__form{
  display:flex; gap:8px;
  max-width:420px; margin:0 auto;
  flex-wrap:wrap;
}
.exit-modal__form input[type="email"]{
  flex:1 1 220px;
  font:inherit; font-size:15px;
  background: rgba(15,27,61,.05);
  border: 1.5px solid rgba(15,27,61,.12);
  border-radius: 999px;
  padding: 14px 20px;
  color:var(--ink);
  transition: border-color .2s, background .2s;
}
.exit-modal__form input[type="email"]:focus{
  outline:none;
  border-color: var(--terracotta);
  background: var(--paper);
}
.exit-modal__form input::placeholder{ color: rgba(15,27,61,.4) }
.exit-modal__form button{
  display:inline-flex; align-items:center; gap:10px;
  background: var(--ink);
  color: var(--paper);
  padding: 14px 22px;
  border-radius: 999px;
  font-weight:600; font-size:14px; letter-spacing:.04em;
  transition: background .25s, transform .25s;
  white-space:nowrap;
}
.exit-modal__form button i{
  font-style:normal; font-size:14px;
  transition: transform .25s var(--ease);
}
.exit-modal__form button:hover{ background: var(--terracotta); transform: translateY(-2px) }
.exit-modal__form button:hover i{ transform: translateX(3px) }
.exit-modal__read{
  display:inline-block; margin-top:18px;
  font-size:13.5px; color: var(--mute);
  border-bottom: 1px solid var(--mute);
  padding-bottom: 1px;
  transition: color .2s, border-color .2s;
}
.exit-modal__read:hover{ color: var(--terracotta); border-color: var(--terracotta) }
.exit-modal__note{
  display:block; margin-top:20px;
  font-family: var(--serif); font-style:italic; font-weight:300;
  font-size:12.5px; color: var(--mute);
}

@media (max-width:520px){
  .exit-modal__form{ flex-direction:column }
  .exit-modal__form input[type="email"]{ flex:1 1 auto }
  .exit-modal__form button{ justify-content:center }
}

/* =====================================================
   NEWSLETTER en footer + DISPONIBILIDAD strip
   ===================================================== */
.foot__news{
  border-top: 1px solid var(--line-l);
  padding: 32px var(--pad);
  display:flex; align-items:center; justify-content:space-between;
  gap: 24px; flex-wrap: wrap;
  max-width: 1320px; margin: 0 auto;
}
.foot__news-txt{ max-width: 440px }
.foot__news-eye{
  display:block;
  font-size:11px; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase;
  color: var(--gold);
  margin-bottom:8px;
}
.foot__news-h{
  font-family: var(--serif); font-weight:300;
  font-style:italic;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height:1.1; letter-spacing:-.01em;
  margin: 0 0 6px;
  color: var(--paper);
}
.foot__news-p{
  margin:0; font-size: 13.5px; color: var(--mute-l);
}
.foot__news-form{
  display:flex; gap:8px; min-width:300px; flex:1 1 320px;
  max-width: 460px;
}
.foot__news-form input{
  flex:1; font:inherit; font-size:14px;
  background: rgba(244,241,234,.06);
  border: 1px solid rgba(244,241,234,.18);
  border-radius: 999px;
  padding: 12px 18px;
  color: var(--paper);
  transition: border-color .2s, background .2s;
}
.foot__news-form input:focus{
  outline:none;
  border-color: var(--gold);
  background: rgba(244,241,234,.1);
}
.foot__news-form input::placeholder{ color: rgba(244,241,234,.4) }
.foot__news-form button{
  background: var(--gold);
  color: var(--ink);
  padding: 12px 20px;
  border-radius: 999px;
  font-weight:600; font-size: 13px; letter-spacing:.04em;
  transition: background .25s, transform .25s;
  white-space:nowrap;
}
.foot__news-form button:hover{ background: var(--sun); transform: translateY(-1px) }

@media (max-width: 700px){
  .foot__news{ flex-direction: column; align-items:flex-start }
  .foot__news-form{ width:100% }
}

/* Disponibilidad strip (en contact section) */
.disponibilidad{
  max-width: 980px; margin: 0 auto 40px;
  padding: 18px 26px;
  background: rgba(244,241,234,.06);
  border: 1px solid rgba(244,241,234,.14);
  border-radius: 14px;
  display:flex; align-items:center; gap: 20px;
  flex-wrap: wrap;
}
.disponibilidad__label{
  font-size: 11px; font-weight:600; letter-spacing:.18em;
  text-transform: uppercase;
  color: var(--gold);
  flex-shrink: 0;
}
.disponibilidad__list{
  display:flex; gap: 14px; flex-wrap: wrap;
  list-style: none; padding:0; margin:0; flex:1;
}
.disponibilidad__list li{
  display:flex; align-items:center; gap:8px;
  font-family: var(--serif); font-style: italic; font-weight: 300;
  font-size: 15px;
  color: rgba(244,241,234,.9);
}
.disponibilidad__list li::before{
  content:""; width:8px; height:8px; border-radius:50%;
  background: var(--mint-2);
  box-shadow: 0 0 6px rgba(199,221,210,.5);
}
.disponibilidad__list li.is-low::before{ background: var(--sun); box-shadow: 0 0 6px rgba(232,165,71,.6) }
.disponibilidad__list li.is-full::before{ background: var(--terracotta); box-shadow: 0 0 6px rgba(199,93,52,.6) }
.disponibilidad__list li b{
  font-family: var(--sans); font-style: normal; font-weight: 600;
  color: var(--paper);
}

/* =====================================================
   MOBILE — Refinamientos finales para que todo quede
   perfecto en teléfono (la mayoría de tráfico)
   ===================================================== */

@media (max-width: 760px){
  /* Hero móvil: respiración y tipografía */
  .hero--light{ padding-top: calc(var(--pad) + 110px) }
  .hero__h{ font-size: clamp(40px, 12vw, 64px) }
  .hero__p{ font-size: 16px }
  .hero__trust{ gap: 18px; flex-wrap: wrap }
  .hero__trust li b{ font-size: 18px }
  .hero__photo{ aspect-ratio: 4/5; max-height: 70vh }

  /* Trust badge se pone debajo, con margen extra */
  .trust-badge{ margin-top: 14px; font-size: 11px; padding: 6px 10px }

  /* Sobre Aurora — ya en columna pero refinamos */
  .sobre{ padding-top: calc(var(--gut) * .55); padding-bottom: calc(var(--gut) * .55) }
  .sobre__media{ max-width: 100%; aspect-ratio: 4/5 }
  .sobre__list li{ padding: 12px 0; flex-direction: column; align-items: flex-start; gap: 4px }
  .sobre__list b{ text-align: left; font-size: 16px }

  /* Tours grid */
  .tg{ grid-template-columns: 1fr; gap: 16px }
  .tg-custom{ flex-direction: column; padding: 24px; text-align: left }

  /* Cómo funciona / story */
  .stats__grid{ grid-template-columns: 1fr 1fr; gap: 24px }
  .stats__grid b{ font-size: 36px }

  /* Reviews */
  .rev__c{ min-width: 75vw }

  /* FAQ — más respiración */
  .faq__i summary{ font-size: 16px }

  /* Guide teaser */
  .g-teaser__inner{ grid-template-columns: 1fr; gap: 24px }
  .g-teaser__list{ grid-template-columns: 1fr 1fr }

  /* Alla carta — móvil */
  .alacarte__inner{ grid-template-columns: 1fr; gap: 28px }
  .alacarte__h{ font-size: clamp(36px, 9vw, 52px) }
  .alacarte__lead{ font-size: 15.5px }
  .alacarte__list{ padding-top: 22px; gap: 10px }
  .alacarte__list li{ font-size: 14.5px }
  .alacarte__media{ order: -1; aspect-ratio: 4/5; max-height: 60vh }
  .alacarte__cta{ width: 100%; justify-content: center; padding: 16px 22px }

  /* Contact */
  .contact-form{ padding: 22px; grid-template-columns: 1fr; gap: 16px }
  .contact__h{ font-size: clamp(32px, 8vw, 48px) }
  .contact__lines{ grid-template-columns: 1fr 1fr }
  .contact__lines li{ word-break: break-word }

  /* Disponibilidad strip — stack en móvil */
  .disponibilidad{ padding: 14px 18px; gap: 12px }
  .disponibilidad__list{ gap: 10px }
  .disponibilidad__list li{ font-size: 14px }

  /* Footer newsletter — stack vertical */
  .foot__news{ padding: 24px var(--pad); gap: 18px }
  .foot__news-form{ width: 100%; min-width: 0 }
  .foot__news-h{ font-size: 22px }

  .foot__legal-meta{ font-size: 11px }
  .foot__legal-nav{ flex-wrap: wrap; justify-content: center; gap: 10px }

  /* Sticky CTA — pegado al fondo + safe area */
  .sticky-cta{ padding: 10px 12px calc(10px + env(safe-area-inset-bottom)) }
  .sticky-cta__txt b{ font-size: 13.5px }
  .sticky-cta__wa{ width: 42px; height: 42px; padding: 0; justify-content: center }
  .sticky-cta__wa svg{ width: 18px; height: 18px }
  .sticky-cta__book{ padding: 11px 14px; font-size: 12px }

  /* WhatsApp float — sube cuando sticky está visible (usando bottom, no transform) */
  body:has(.sticky-cta.is-visible) .wa-float{ bottom: 84px }
  .wa-float{ transition: bottom .35s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease) }

  /* Exit modal en móvil */
  .exit-modal{ padding: 14px }
  .exit-modal__card{ padding: 30px 22px }
  .exit-modal__h{ font-size: 28px }
  .exit-modal__p{ font-size: 14.5px }

  /* Related posts en blog */
  .related-posts{ padding: 22px 20px 18px; margin: 40px 0 8px }
  .article{ padding-top: 90px }
  .article h1{ font-size: clamp(30px, 7vw, 44px) }
  .article__lead{ font-size: 17px }
  .article__body{ font-size: 16px }
  .article__body h2{ font-size: clamp(22px, 5.5vw, 28px); margin: 36px 0 12px }
  .article__body .step-list li{ padding: 18px 18px 18px 64px }

  /* Posts grid */
  .posts-grid{ gap: 18px }
  .posts-grid > .post-card--feat{ padding: 18px }

  /* Página prensa */
  .prensa__bio{ padding: 28px 22px }
  .prensa__quote{ padding: 32px 22px }
  .prensa__quote p{ font-size: 19px }

  /* Página legal */
  .legal-page{ padding-top: 100px }
  .legal-page h1{ font-size: clamp(28px, 7vw, 40px) }
  .legal-page h2{ font-size: 20px; margin: 32px 0 10px }

  /* 404 */
  .notfound__big{ font-size: clamp(96px, 32vw, 180px) }
  .notfound__ctas{ flex-direction: column; width: 100%; max-width: 280px }
  .notfound__ctas .btn{ width: 100%; justify-content: center }
}

/* Pantallas muy pequeñas (iPhone SE) */
@media (max-width: 380px){
  .hero__trust{ gap: 12px }
  .hero__trust li b{ font-size: 16px }
  .sticky-cta__txt span{ display: none }
  .sticky-cta__wa{ width: 38px; height: 38px }
  .alacarte__chip{ font-size: 10px; padding: 6px 10px }
  .foot__legal-nav{ font-size: 12px }
}

/* Tablet (700-960) — refinamiento para iPad portrait */
@media (min-width: 700px) and (max-width: 960px){
  .tg{ grid-template-columns: 1fr 1fr; gap: 18px }
  .alacarte__h{ font-size: clamp(40px, 6vw, 58px) }
  .posts-grid{ grid-template-columns: 1fr 1fr }
  .posts-grid > .post-card--feat{ grid-template-columns: 1fr 1fr }
}

/* =====================================================
   COOKIE CONSENT BANNER (GDPR / Garante)
   ===================================================== */
.cookie-banner{
  position: fixed;
  left: 14px; right: 14px; bottom: 14px;
  z-index: 9985;
  background: var(--ink);
  color: var(--paper);
  border-radius: 16px;
  box-shadow: 0 20px 50px -15px rgba(0,0,0,.45);
  padding: 18px 22px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .4s var(--ease), transform .4s var(--ease);
  pointer-events: none;
}
.cookie-banner.is-visible{
  opacity: 1; transform: translateY(0);
  pointer-events: auto;
}
.cookie-banner__inner{
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; gap: 22px;
  flex-wrap: wrap;
}
.cookie-banner__txt{ flex: 1; min-width: 240px }
.cookie-banner__txt strong{
  display: block;
  font-family: var(--serif); font-style: italic; font-weight: 500;
  font-size: 16px; letter-spacing: -.005em;
  color: var(--sun-soft);
  margin-bottom: 4px;
}
.cookie-banner__txt p{
  margin: 0; font-size: 13px; line-height: 1.55;
  color: rgba(244,241,234,.85);
}
.cookie-banner__txt a{
  color: var(--sun-soft);
  border-bottom: 1px solid rgba(245,199,122,.5);
  padding-bottom: 1px;
}
.cookie-banner__txt a:hover{ color: var(--paper); border-color: var(--paper) }
.cookie-banner__btns{
  display: flex; gap: 10px; flex-shrink: 0;
}
.cookie-banner__btn{
  font: inherit; font-weight: 600;
  font-size: 13px; letter-spacing: .04em;
  padding: 11px 18px;
  border-radius: 999px;
  border: none; cursor: pointer;
  transition: background .25s, color .25s, transform .25s;
}
.cookie-banner__btn--accept{
  background: var(--sun);
  color: var(--ink);
}
.cookie-banner__btn--accept:hover{ background: var(--sun-soft); transform: translateY(-1px) }
.cookie-banner__btn--reject{
  background: transparent;
  color: var(--paper);
  border: 1.5px solid rgba(244,241,234,.35);
}
.cookie-banner__btn--reject:hover{ border-color: var(--paper) }

@media (max-width: 760px){
  .cookie-banner{ left: 10px; right: 10px; bottom: 10px; padding: 16px 18px }
  .cookie-banner__inner{ flex-direction: column; align-items: stretch; gap: 14px }
  .cookie-banner__btns{ width: 100%; gap: 8px }
  .cookie-banner__btn{ flex: 1; padding: 12px 14px; font-size: 12.5px }
  /* No solapar con sticky CTA */
  body:has(.sticky-cta.is-visible) .cookie-banner{ bottom: 80px }
}

/* Copyright en footer */
.foot__legal-copy{
  margin-top: 6px !important;
  font-size: 10.5px !important;
  opacity: .6;
  max-width: 720px;
}

/* =====================================================
   MORE OPTIONS — Próximos, Regalo, Asesoría (3 cards)
   ===================================================== */
.more-options{
  padding: var(--gut) var(--pad);
  background: var(--paper-2);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.more-options .m-head{ margin-bottom: clamp(40px, 6vw, 70px) }
.more-options .m-head__sub{
  max-width: 580px;
  margin: 16px auto 0;
  font-size: clamp(16px, 1.1vw, 18px);
  color: var(--ink-2);
}

.mo-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 1280px;
  margin: 0 auto;
}
.mo-card{
  display: flex; flex-direction: column;
  background: var(--paper);
  border: 1.5px solid var(--line);
  border-radius: 18px;
  padding: 32px 30px 28px;
  text-decoration: none; color: inherit;
  transition: border-color .35s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease);
  position: relative;
  min-height: 320px;
}
.mo-card:hover{
  border-color: var(--terracotta);
  transform: translateY(-4px);
  box-shadow: 0 30px 50px -28px rgba(15,27,61,.3);
}
.mo-card--featured{
  background: linear-gradient(135deg, #0F1B3D 0%, #1A2B5A 100%);
  color: var(--paper);
  border-color: rgba(216,155,104,.4);
}
.mo-card--featured:hover{ border-color: var(--gold) }
.mo-card__tag{
  display: inline-block; align-self: flex-start;
  font-size: 11px; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase;
  background: var(--terracotta); color: var(--paper);
  padding: 5px 11px; border-radius: 999px;
  margin-bottom: 18px;
}
.mo-card__tag--gold{
  background: var(--gold);
  color: var(--ink);
}
.mo-card h3{
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(26px, 2.8vw, 36px); line-height: 1.05;
  letter-spacing: -.015em;
  margin: 0 0 12px; color: var(--ink);
}
.mo-card--featured h3{ color: var(--paper) }
.mo-card__lead{
  font-size: 15px; line-height: 1.55;
  color: var(--ink-2);
  margin: 0 0 28px; flex: 1;
}
.mo-card--featured .mo-card__lead{ color: rgba(244,241,234,.82) }
.mo-card__bottom{
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.mo-card--featured .mo-card__bottom{
  border-top-color: rgba(244,241,234,.15);
}
.mo-card__price{
  font-size: 12px; letter-spacing: .04em;
  color: var(--mute); font-family: var(--serif); font-style: italic;
}
.mo-card--featured .mo-card__price{ color: rgba(244,241,234,.7) }
.mo-card__price b{
  font-family: var(--serif); font-style: normal; font-weight: 500;
  font-size: 20px; color: var(--ink);
  margin: 0 4px;
  letter-spacing: -.01em;
}
.mo-card--featured .mo-card__price b{ color: var(--sun) }
.mo-card__price i{
  font-style: italic; font-family: var(--serif); font-weight: 300;
  font-size: 12px; color: var(--mute); margin-left: 4px;
}
.mo-card--featured .mo-card__price i{ color: rgba(244,241,234,.6) }
.mo-card__cta{
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 600; letter-spacing: .04em;
  color: var(--ink);
  border-bottom: 1.5px solid var(--ink); padding-bottom: 2px;
  transition: gap .3s var(--ease), color .3s, border-color .3s;
}
.mo-card--featured .mo-card__cta{ color: var(--gold); border-color: var(--gold) }
.mo-card__cta i{ font-style: normal; transition: transform .3s var(--ease) }
.mo-card:hover .mo-card__cta{ gap: 14px }
.mo-card:hover .mo-card__cta{ color: var(--terracotta); border-color: var(--terracotta) }
.mo-card--featured:hover .mo-card__cta{ color: var(--sun); border-color: var(--sun) }

@media (max-width: 980px){
  .mo-grid{ grid-template-columns: 1fr 1fr; gap: 16px }
}
@media (max-width: 640px){
  .mo-grid{ grid-template-columns: 1fr }
  .mo-card{ min-height: 0; padding: 26px 22px 22px }
}

/* =====================================================
   FREE CALL BANNER (Llamada gratis 15 min)
   ===================================================== */
.free-call-banner{
  max-width: 1280px;
  margin: clamp(40px, 5vw, 60px) auto 0;
  background: linear-gradient(135deg, #FAEFD9 0%, #F8EBD3 100%);
  border: 1px solid rgba(216,155,104,.3);
  border-radius: 18px;
  padding: clamp(28px, 4vw, 44px);
  display: grid;
  grid-template-columns: 1.6fr auto;
  gap: 28px;
  align-items: center;
}
.free-call-banner__txt{ max-width: 640px }
.free-call-banner__txt .eye{ margin-bottom: 10px; color: var(--terracotta) }
.free-call-banner h3{
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(22px, 2.6vw, 30px);
  letter-spacing: -.01em; line-height: 1.15;
  margin: 0 0 10px; color: var(--ink);
}
.free-call-banner h3 em{
  font-style: italic;
  background: linear-gradient(180deg, var(--sun) 0%, var(--terracotta) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.free-call-banner p{
  font-size: 15px; line-height: 1.55;
  color: var(--ink-2); margin: 0;
}
.free-call-banner p a{
  color: var(--terracotta);
  border-bottom: 1px solid currentColor;
}
.free-call-banner__cta{
  display: inline-flex; align-items: center; gap: 12px;
  background: var(--ink); color: var(--paper);
  padding: 14px 22px 14px 26px;
  border-radius: 999px;
  font-weight: 600; font-size: 14px; letter-spacing: .04em;
  white-space: nowrap;
  text-decoration: none;
  transition: background .25s, transform .25s;
}
.free-call-banner__cta i{
  font-style: normal;
  transition: transform .25s var(--ease);
}
.free-call-banner__cta:hover{ background: var(--terracotta); transform: translateY(-2px) }
.free-call-banner__cta:hover i{ transform: translateX(4px) }

@media (max-width: 760px){
  .free-call-banner{ grid-template-columns: 1fr; gap: 18px }
  .free-call-banner__cta{ justify-content: center; padding: 16px 24px }
}

/* =====================================================
   TOURS TEASER en home — solo 1 bloque que lleva a /tours.html
   ===================================================== */
.tours-teaser{
  padding: var(--gut) var(--pad);
  max-width: 1320px;
  margin: 0 auto;
}
.tours-teaser__card{
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
  background: var(--paper-2);
  border-radius: 22px;
  padding: clamp(36px, 5vw, 60px);
  text-decoration: none; color: inherit;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.tours-teaser__card:hover{
  transform: translateY(-3px);
  box-shadow: 0 30px 60px -30px rgba(15,27,61,.3);
}
.tours-teaser__l p{
  font-size: clamp(15.5px, 1.1vw, 17.5px);
  color: var(--ink-2);
  margin: 0 0 26px;
  line-height: 1.65;
}
.tours-teaser__cta{
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 14px; font-weight: 600; letter-spacing: .04em;
  color: var(--ink);
  border-bottom: 1.5px solid var(--ink);
  padding-bottom: 4px;
  transition: gap .35s var(--ease), color .3s, border-color .3s;
}
.tours-teaser__cta i{ font-style: normal; transition: transform .3s var(--ease) }
.tours-teaser__card:hover .tours-teaser__cta{
  gap: 18px; color: var(--terracotta); border-color: var(--terracotta);
}
.tours-teaser__thumbs{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.tours-teaser__thumbs img{
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  border-radius: 12px;
  transition: transform .8s var(--ease);
}
.tours-teaser__thumbs img:nth-child(1){ transform: translateY(-12px) }
.tours-teaser__thumbs img:nth-child(4){ transform: translateY(12px) }
.tours-teaser__card:hover .tours-teaser__thumbs img:nth-child(1){ transform: translateY(-18px) scale(1.02) }
.tours-teaser__card:hover .tours-teaser__thumbs img:nth-child(4){ transform: translateY(18px) scale(1.02) }
@media (max-width:760px){
  .tours-teaser__card{ grid-template-columns: 1fr; padding: 30px 24px }
  .tours-teaser__thumbs img:nth-child(1),
  .tours-teaser__thumbs img:nth-child(4){ transform: none }
}

/* =====================================================
   SOBRE TEASER en home — invita a /sobre.html
   ===================================================== */
.sobre-teaser{
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(40px, 5vw, 70px);
  padding: var(--gut) var(--pad);
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}
.sobre-teaser__media{
  position: relative; border-radius: 14px; overflow: hidden;
  aspect-ratio: 4/5;
  max-width: 460px;
  margin: 0 auto;
  width: 100%;
}
.sobre-teaser__media img{
  width: 100%; height: 100%; object-fit: cover; object-position: center 25%;
  backface-visibility: hidden;
  transform: translateZ(0);
}
.sobre-teaser__text{ max-width: 540px }
.sobre-teaser__text p{
  font-size: clamp(16px, 1.15vw, 18px);
  color: var(--ink-2);
  line-height: 1.7;
  margin: 0 0 28px;
}
@media (max-width: 880px){
  .sobre-teaser{ grid-template-columns: 1fr; gap: 36px }
  .sobre-teaser__media{ max-width: 100% }
}

/* =====================================================
   NAV DROPDOWN "Otros servicios"
   ===================================================== */
.nav__group{
  position: relative;
  display: inline-flex; align-items: center;
}
.nav__group-trigger{
  position: relative;
  font: inherit; font-size: 14px; font-weight: 500;
  color: var(--ink);
  background: transparent; border: none; cursor: pointer;
  padding: 6px 2px;
  display: inline-flex; align-items: center; gap: 4px;
  transition: color .3s;
}
.nav__group-trigger i{
  font-style: normal; font-size: 11px;
  transition: transform .25s var(--ease);
  color: var(--terracotta);
}
.nav__group-trigger:hover{ color: var(--terracotta) }
.nav__group:hover .nav__group-trigger i,
.nav__group.is-open .nav__group-trigger i{ transform: rotate(-180deg) }
.nav__dropdown{
  position: absolute;
  top: calc(100% + 12px); left: 50%;
  transform: translateX(-50%) translateY(-6px);
  min-width: 240px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  display: flex; flex-direction: column; gap: 2px;
  box-shadow: 0 24px 48px -20px rgba(15,27,61,.28);
  opacity: 0; visibility: hidden;
  transition: opacity .22s var(--ease), visibility .22s, transform .25s var(--ease);
  z-index: 100;
}
.nav__dropdown::before{
  content: ""; position: absolute; top: -16px; left: 0; right: 0; height: 16px;
}
.nav__group:hover .nav__dropdown,
.nav__group.is-open .nav__dropdown{
  opacity: 1; visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.nav__dropdown a{
  display: flex; flex-direction: column; gap: 2px;
  padding: 11px 14px;
  border-radius: 10px;
  font-size: 14px; font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  transition: background .2s, color .2s;
}
.nav__dropdown a small{
  font-family: var(--serif); font-style: italic; font-weight: 300;
  font-size: 12.5px; color: var(--mute);
  letter-spacing: 0;
}
.nav__dropdown a:hover{ background: var(--paper-2); color: var(--terracotta) }
.nav__dropdown a:hover small{ color: var(--terracotta) }

/* Mobile: el dropdown se inline en el burger menu */
@media (max-width:1100px){
  .nav__group, .nav__dropdown{ display: none }
}

/* =====================================================
   ESCAPADAS GRID en /tours.html
   ===================================================== */
.escapadas-grid{
  padding: var(--gut) var(--pad);
  background: var(--paper-2);
  border-top: 1px solid var(--line);
}
.escapadas-grid .m-head{ margin-bottom: clamp(40px, 6vw, 60px) }
.escapadas-grid .m-head__sub{
  max-width: 580px; margin: 14px auto 0;
  font-size: clamp(15px, 1.1vw, 17px); color: var(--ink-2);
}
.esc-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  max-width: 1280px;
  margin: 0 auto;
}
.esc-card{
  background: var(--paper);
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--line);
  transition: transform .35s var(--ease), border-color .3s, box-shadow .3s;
  display: flex; flex-direction: column;
}
.esc-card:hover{
  transform: translateY(-3px);
  border-color: var(--terracotta);
  box-shadow: 0 20px 40px -22px rgba(15,27,61,.25);
}
.esc-card__img{
  aspect-ratio: 4/3;
  overflow: hidden;
}
.esc-card__img img{
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s var(--ease);
}
.esc-card:hover .esc-card__img img{ transform: scale(1.04) }
.esc-card__body{
  padding: 22px 24px 24px;
  display: flex; flex-direction: column; gap: 10px;
  flex: 1;
}
.esc-card__no{
  font-family: var(--serif); font-style: italic; font-weight: 400;
  font-size: 14px; color: var(--terracotta);
}
.esc-card h3{
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(20px, 2.2vw, 26px); line-height: 1.1;
  letter-spacing: -.01em;
  margin: 0; color: var(--ink);
}
.esc-card p{
  font-size: 14.5px; line-height: 1.55; color: var(--ink-2);
  margin: 0; flex: 1;
}
.esc-card__meta{
  display: flex; align-items: center; gap: 10px;
  font-size: 12.5px; letter-spacing: .04em;
  color: var(--mute);
  margin: 4px 0 12px;
}
.esc-card__meta i{
  display: inline-block; width: 4px; height: 4px;
  background: var(--terracotta); border-radius: 50%;
}
.esc-card__ctas{
  display: flex; flex-direction: column; gap: 10px;
  margin-top: auto;
}
.esc-card__cta{
  display: inline-flex; align-items: center; gap: 10px;
  font-weight: 600; font-size: 14px; letter-spacing: .04em;
  color: var(--ink);
  border-bottom: 1.5px solid var(--ink);
  padding-bottom: 3px;
  align-self: flex-start;
  transition: gap .3s var(--ease), color .3s, border-color .3s;
}
.esc-card__cta i{ font-style: normal; transition: transform .3s var(--ease) }
.esc-card:hover .esc-card__cta{ gap: 14px; color: var(--terracotta); border-color: var(--terracotta) }
.esc-card__more{
  font-size: 12.5px; letter-spacing: .04em;
  color: var(--mute);
  border-bottom: 1px solid var(--mute);
  padding-bottom: 2px;
  align-self: flex-start;
  transition: color .25s, border-color .25s;
}
.esc-card__more:hover{ color: var(--terracotta); border-color: var(--terracotta) }

@media (max-width: 900px){
  .esc-grid{ grid-template-columns: 1fr 1fr }
}
@media (max-width: 600px){
  .esc-grid{ grid-template-columns: 1fr }
}
