/* ============================================================
   MACA TOURS & ADVENTURES — design tokens
   ============================================================ */
:root{
  --ink:        #0d1613;
  --ink-soft:   #142420;
  --sand:       #f4efdd;
  --sand-dim:   #e8e0c8;
  --teal:       #0fa9a6;
  --teal-deep:  #0a7b79;
  --lime:       #c6e62f;
  --coral:      #ff6a45;
  --white:      #ffffff;

  --display: "Bricolage Grotesque", "Inter", sans-serif;
  --body:    "Inter", -apple-system, sans-serif;

  --max: 1240px;
  --edge: clamp(20px, 5vw, 64px);
}

*{ box-sizing:border-box; }
body.modal-open{ overflow:hidden; }
html{ scroll-behavior:smooth; scroll-padding-top:88px; }
body{
  margin:0;
  background:var(--sand);
  color:var(--ink);
  font-family:var(--body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{
  font-family:var(--display);
  margin:0;
  font-weight:600;
  letter-spacing:-0.01em;
}
p{ margin:0; }

/* Refined brand typography: clear hierarchy, generous rhythm, and responsive sizing. */
body{ font-size:clamp(1rem, 0.96rem + 0.15vw, 1.08rem); }
h1{ font-size:clamp(2.8rem, 6vw, 5.8rem); line-height:.98; letter-spacing:-.035em; font-weight:700; }
h2{ font-size:clamp(2rem, 4vw, 3.65rem); line-height:1.04; letter-spacing:-.03em; font-weight:700; }
h3{ font-size:clamp(1.25rem, 2vw, 1.75rem); line-height:1.12; }
p{ line-height:1.65; }
.section-head p,.intro__body p,.feature p,.transfer-note li{ max-width:68ch; }
.container{ max-width:var(--max); margin:0 auto; padding:0 var(--edge); }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
}

:focus-visible{ outline:3px solid var(--lime); outline-offset:3px; }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--edge);
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
.nav.is-scrolled{
  background:rgba(13,22,19,0.92);
  backdrop-filter:blur(10px);
  padding:12px var(--edge);
  box-shadow:0 8px 30px rgba(0,0,0,.25);
}
.nav__brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.nav__brand img{ height:58px; width:58px; border-radius:12px; object-fit:cover; transition:height .35s ease,width .35s ease; }
.nav.is-scrolled .nav__brand img{ height:46px; width:46px; }
.nav__tools{display:flex;align-items:center;gap:12px;}
.language-picker{position:relative;z-index:50}.language-toggle{display:flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.45);background:rgba(13,22,19,.42);color:var(--white);border-radius:999px;padding:9px 12px;font:700 .78rem var(--body);cursor:pointer;min-width:52px;justify-content:center;transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.language-toggle:hover,.language-picker.is-open .language-toggle{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.8);transform:translateY(-1px);box-shadow:0 8px 25px rgba(0,0,0,.18)}
.language-flag{font-size:1.22rem;line-height:1}.language-chevron{font-size:.9rem;opacity:.8;line-height:1;transform:translateY(-1px)}
.language-menu{position:absolute;right:0;top:calc(100% + 10px);width:168px;padding:7px;border:1px solid rgba(255,255,255,.22);border-radius:18px;background:rgba(16,24,21,.9);box-shadow:0 18px 45px rgba(0,0,0,.28);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);opacity:0;visibility:hidden;transform:translateY(-7px) scale(.98);transform-origin:top right;transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
.language-picker.is-open .language-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.language-menu button{width:100%;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:var(--white);padding:10px 11px;border-radius:12px;font:600 .82rem var(--body);cursor:pointer;text-align:left;transition:background .18s ease,transform .18s ease}.language-menu button span{font-size:1.2rem}.language-menu button:hover,.language-menu button.is-active{background:rgba(255,255,255,.12);transform:translateX(2px)}
.nav__brand-text{ font-family:var(--display); font-weight:700; color:var(--white); font-size:1.05rem; line-height:1.1; }
.nav__brand-text span{ display:block; font-family:var(--body); font-weight:400; font-size:.68rem; color:var(--lime); letter-spacing:.04em; }

.nav__links{ display:flex; gap:28px; list-style:none; margin:0; padding:0; }
.nav__links a{
  text-decoration:none; color:var(--white); font-size:.92rem; font-weight:500;
  opacity:.85; transition:opacity .2s ease;
  padding-bottom:2px; border-bottom:1px solid transparent;
}
.nav__links a:hover{ opacity:1; border-color:var(--lime); }

.nav__cta{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--lime); color:var(--ink); font-weight:700; font-size:.88rem;
  padding:10px 18px; border-radius:999px; text-decoration:none;
  transition:transform .2s ease, background .2s ease;
  white-space:nowrap;
}
.nav__cta:hover{ background:var(--white); transform:translateY(-1px); }

.nav__burger{ display:none; cursor:pointer; }

@media (max-width: 860px){
  body.menu-open{overflow:hidden}
  .nav__links{
    position:fixed; inset:0 0 0 auto; width:min(88vw,390px); height:100vh;
    background:
      radial-gradient(circle at 18% 18%, rgba(198,230,47,.15), transparent 28%),
      radial-gradient(circle at 88% 72%, rgba(15,169,166,.20), transparent 34%),
      linear-gradient(145deg,rgba(9,17,14,.98),rgba(15,32,27,.97));
    flex-direction:column; justify-content:center; gap:12px; padding:96px 28px 42px;
    transform:translateX(110%); transition:transform .48s cubic-bezier(.22,1,.36,1);
    box-shadow:-24px 0 70px rgba(0,0,0,.38); overflow:hidden; isolation:isolate;
  }
  .nav__links::before{content:"MACA • TOURS & ADVENTURES";position:absolute;top:42px;left:28px;color:rgba(255,255,255,.48);font:700 .68rem var(--body);letter-spacing:.18em}
  .nav__links::after{content:"";position:absolute;width:180px;height:180px;right:-85px;top:-75px;border:1px solid rgba(198,230,47,.28);border-radius:50%;box-shadow:0 0 0 28px rgba(198,230,47,.04),0 0 0 56px rgba(198,230,47,.025);z-index:-1}
  .nav__links.is-open{ transform:translateX(0); }
  .nav__links li{width:100%;opacity:0;transform:translateX(24px);transition:opacity .35s ease,transform .45s cubic-bezier(.22,1,.36,1)}
  .nav__links.is-open li{opacity:1;transform:none}
  .nav__links.is-open li:nth-child(1){transition-delay:.04s}.nav__links.is-open li:nth-child(2){transition-delay:.08s}.nav__links.is-open li:nth-child(3){transition-delay:.12s}.nav__links.is-open li:nth-child(4){transition-delay:.16s}.nav__links.is-open li:nth-child(5){transition-delay:.20s}.nav__links.is-open li:nth-child(6){transition-delay:.24s}.nav__links.is-open li:nth-child(7){transition-delay:.28s}
  .nav__links a{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;padding:15px 16px;font-size:1.08rem;font-weight:700;letter-spacing:-.01em;border:1px solid rgba(255,255,255,.10);border-radius:17px;background:rgba(255,255,255,.045);box-shadow:inset 0 1px 0 rgba(255,255,255,.07);opacity:1;transition:transform .25s ease,background .25s ease,border-color .25s ease}
  .nav__links a::after{content:"↗";color:var(--lime);font-size:1.05rem;opacity:.8;transition:transform .25s ease}
  .nav__links a:hover{background:rgba(255,255,255,.10);border-color:rgba(198,230,47,.35);transform:translateX(4px)}
  .nav__links a:hover::after{transform:translate(3px,-3px)}
  .nav__burger{display:flex;position:relative;z-index:120;width:48px;height:48px;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:1px solid rgba(255,255,255,.24);border-radius:16px;background:rgba(255,255,255,.07);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:0}
  .nav__burger span{display:block;width:20px;height:2px;border-radius:4px;background:#fff;transition:transform .3s ease,opacity .2s ease}
  .nav__burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav__burger.is-open span:nth-child(2){opacity:0}
  .nav__burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav__cta{display:none}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; height:100svh; min-height:560px;
  display:flex; align-items:flex-end;
  overflow:hidden;
  background:var(--ink);
}
.hero__bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  animation:kenburns 22s ease-in-out infinite alternate;
}
@keyframes kenburns{
  0%{ transform:scale(1) translate(0,0); }
  100%{ transform:scale(1.12) translate(-1.5%,-1%); }
}
.hero__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(13,22,19,.15) 0%, rgba(13,22,19,.15) 40%, rgba(13,22,19,.88) 92%),
             linear-gradient(90deg, rgba(13,22,19,.55) 0%, rgba(13,22,19,0) 55%);
}
.hero__content{
  position:relative; z-index:2; color:var(--white);
  padding:0 var(--edge) 72px;
  max-width:720px;
}
.hero__eyebrow{
  display:flex; align-items:center; gap:10px;
  font-size:.85rem; color:var(--lime); font-weight:600; margin-bottom:18px;
}
.hero__eyebrow::before{ content:""; width:26px; height:2px; background:var(--lime); display:inline-block; }
.hero h1{
  font-size:clamp(2.6rem, 6.5vw, 5rem); color:var(--white); line-height:1.02;
}
.hero__lede{
  margin-top:20px; font-size:clamp(1.02rem,1.6vw,1.2rem); color:rgba(255,255,255,.86);
  max-width:46ch;
}
.hero__actions{ margin-top:34px; display:flex; gap:16px; flex-wrap:wrap; }

.btn{
  display:inline-flex; align-items:center; gap:9px;
  padding:14px 26px; border-radius:999px; text-decoration:none;
  font-weight:700; font-size:.95rem; cursor:pointer; border:1px solid transparent;
  transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn--primary{ background:var(--coral); color:var(--white); }
.btn--primary:hover{ background:#ff7f60; }
.btn--ghost{ background:transparent; color:var(--white); border-color:rgba(255,255,255,.5); }
.btn--ghost:hover{ border-color:var(--white); background:rgba(255,255,255,.08); }
.btn--dark{ background:var(--ink); color:var(--white); }
.btn--dark:hover{ background:var(--ink-soft); }

.hero__scrollcue{
  position:absolute; right:var(--edge); bottom:34px; z-index:2;
  color:rgba(255,255,255,.75); font-size:.75rem; writing-mode:vertical-rl;
  display:flex; align-items:center; gap:10px; letter-spacing:.08em;
}
.hero__scrollcue::after{ content:""; width:1px; height:46px; background:rgba(255,255,255,.5); }

/* ============================================================
   INTRO STRIP
   ============================================================ */
.intro{ padding:96px var(--edge) 80px; }
.intro__grid{
  max-width:var(--max); margin:0 auto;
  display:grid; grid-template-columns:1fr 1.3fr; gap:60px; align-items:start;
}
.intro__tag{ color:var(--teal-deep); font-weight:700; font-size:.95rem; }
.intro h2{ font-size:clamp(1.7rem,3vw,2.4rem); margin-top:14px; }
.intro__body{ font-size:1.05rem; color:#3c453f; max-width:56ch; }
.intro__body p + p{ margin-top:14px; }
.intro__stats{ display:flex; gap:36px; margin-top:28px; flex-wrap:wrap; }
.intro__stat b{ display:block; font-family:var(--display); font-size:2rem; color:var(--teal-deep); }
.intro__stat span{ font-size:.85rem; color:#5b6259; }

@media (max-width:820px){
  .intro__grid{ grid-template-columns:1fr; gap:24px; }
}

/* ============================================================
   TRANSFER STRIP (highlighted coverage note)
   ============================================================ */
.transfer-note{
  background:var(--ink); color:var(--white);
  padding:56px var(--edge);
}
.transfer-note__inner{
  max-width:var(--max); margin:0 auto;
  display:flex; gap:40px; align-items:center; flex-wrap:wrap;
  justify-content:space-between;
}
.transfer-note h3{ font-size:1.5rem; max-width:30ch; color:var(--white); }
.transfer-note__routes{
  display:flex; gap:28px; flex-wrap:wrap; list-style:none; margin:0; padding:0;
}
.transfer-note__routes li{
  font-size:.92rem; color:var(--sand); max-width:190px;
  border-left:2px solid var(--lime); padding-left:14px;
}

/* ============================================================
   SECTION HEADS
   ============================================================ */
.section-head{ max-width:var(--max); margin:0 auto; padding:0 var(--edge); }
.section-head__tag{ color:var(--teal-deep); font-weight:700; font-size:.9rem; }
.section-head h2{ font-size:clamp(1.8rem,3.4vw,2.6rem); margin-top:12px; max-width:20ch; }
.section-head p{ margin-top:14px; color:#4a5148; max-width:58ch; font-size:1.02rem; }
.section-head--light h2, .section-head--light p{ color:var(--white); }
.section-head--light .section-head__tag{ color:var(--lime); }

/* ============================================================
   ACTIVITIES
   ============================================================ */
.activities{ padding:100px 0 110px; }
.activities__grid{
  max-width:var(--max); margin:44px auto 0; padding:0 var(--edge);
  display:grid; grid-template-columns:repeat(3,1fr); gap:26px;
}
@media (max-width:980px){ .activities__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .activities__grid{ grid-template-columns:1fr; } }

.card{
  position:relative; border-radius:18px; overflow:hidden; cursor:pointer;
  min-height:340px; aspect-ratio:4/5; background:var(--ink);
  transition:transform .35s ease;
}
.card:hover{ transform:translateY(-6px); }
.card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.card:hover img{ transform:scale(1.06); }
.card__scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(13,22,19,0) 40%, rgba(13,22,19,.92) 100%); }
.card__body{ position:absolute; left:0; right:0; bottom:0; padding:22px; color:var(--white); }
.card__cat{ font-size:.74rem; color:var(--lime); font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.card__title{ font-size:1.28rem; margin-top:6px; }
.card__more{ margin-top:12px; display:inline-flex; align-items:center; gap:6px; font-size:.85rem; color:var(--white); opacity:.85; }
.card__more svg{ width:14px; height:14px; }

/* ============================================================
   CINEMATIC BREAK (full bleed feature)
   ============================================================ */
.feature{
  position:relative; min-height:88vh; display:flex; align-items:center;
  overflow:hidden; background:var(--ink);
}
.feature img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:.9;
}
.feature__scrim{
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(13,22,19,.92) 0%, rgba(13,22,19,.55) 45%, rgba(13,22,19,.15) 75%);
}
.feature--right .feature__scrim{
  background:linear-gradient(270deg, rgba(13,22,19,.92) 0%, rgba(13,22,19,.55) 45%, rgba(13,22,19,.15) 75%);
}
.feature__content{ position:relative; z-index:2; padding:0 var(--edge); max-width:560px; color:var(--white); }
.feature--right .feature__content{ margin-left:auto; text-align:left; }
.feature__tag{ color:var(--lime); font-weight:700; font-size:.88rem; }
.feature h3{ font-size:clamp(2rem,4vw,3rem); margin-top:14px; color:var(--white); line-height:1.05; }
.feature p{ margin-top:18px; color:rgba(255,255,255,.85); font-size:1.05rem; max-width:44ch; }

/* ============================================================
   MOMENTOS MACA — gallery
   ============================================================ */
.momentos{ background:var(--ink); padding:100px 0 110px; }
.momentos__grid{
  max-width:var(--max); margin:44px auto 0; padding:0 var(--edge);
  columns:4 220px; column-gap:16px;
}
.momentos__grid img{
  width:100%; border-radius:12px; margin-bottom:16px; cursor:pointer;
  transition:transform .3s ease, filter .3s ease;
}
.momentos__grid img:hover{ transform:scale(1.02); filter:brightness(1.08); }
@media (max-width:700px){ .momentos__grid{ columns:2 160px; } }

.momentos__social{
  max-width:var(--max); margin:40px auto 0; padding:0 var(--edge);
  display:flex; gap:18px; align-items:center;
}
.momentos__social a{
  color:var(--sand); text-decoration:none; font-size:.92rem; font-weight:600;
  border:1px solid rgba(255,255,255,.25); padding:9px 16px; border-radius:999px;
  transition:border-color .2s ease, background .2s ease;
}
.momentos__social a:hover{ border-color:var(--lime); background:rgba(198,230,47,.08); }

/* ============================================================
   HOTELS
   ============================================================ */
.hotels{ padding:100px 0 110px; }
.hotels__grid{
  max-width:var(--max); margin:44px auto 0; padding:0 var(--edge);
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
@media (max-width:900px){ .hotels__grid{ grid-template-columns:1fr; } }
.hotel-card{
  background:var(--white); border:1px solid var(--sand-dim); border-radius:16px;
  padding:30px 26px; display:flex; flex-direction:column; gap:14px;
}
.hotel-card__badge{
  width:44px; height:44px; border-radius:12px; background:var(--teal);
  display:flex; align-items:center; justify-content:center; color:var(--white);
}
.hotel-card h3{ font-size:1.3rem; }
.hotel-card p{ color:#525b52; font-size:.95rem; }
.hotel-card__loc{ font-size:.82rem; color:var(--teal-deep); font-weight:600; }
.hotel-card a.btn{ align-self:flex-start; margin-top:6px; }
.hotels__note{
  max-width:var(--max); margin:28px auto 0; padding:0 var(--edge);
  font-size:.86rem; color:#4f574e; max-width:60ch;
}

/* ============================================================
   REVIEWS
   ============================================================ */
.reviews{ background:var(--sand-dim); padding:100px 0 110px; }
.reviews__wrap{
  max-width:var(--max); margin:44px auto 0; padding:0 var(--edge);
}
.reviews__widget{
  background:var(--white); border-radius:18px; padding:40px;
  min-height:220px; display:flex; align-items:center; justify-content:center;
  text-align:center; flex-direction:column; gap:14px; border:1px dashed #c7c0a4;
}
.reviews__widget img{ height:34px; }
.reviews__widget p{ color:#5b6259; max-width:48ch; font-size:.95rem; }

/* ============================================================
   POLICIES (accordion)
   ============================================================ */
.policies{ padding:100px 0 110px; }
.accordion{ max-width:var(--max); margin:44px auto 0; padding:0 var(--edge); }
.accordion__item{ border-bottom:1px solid var(--sand-dim); }
.accordion__item:first-child{ border-top:1px solid var(--sand-dim); }
.accordion__trigger{
  width:100%; text-align:left; background:none; border:0; cursor:pointer;
  padding:24px 0; display:flex; justify-content:space-between; align-items:center;
  font-family:var(--display); font-size:1.15rem; color:var(--ink); gap:20px;
}
.accordion__trigger .plus{
  width:26px; height:26px; flex:none; border-radius:50%; border:1px solid var(--ink);
  position:relative; transition:transform .3s ease, background .3s ease;
}
.accordion__trigger .plus::before, .accordion__trigger .plus::after{
  content:""; position:absolute; background:var(--ink); top:50%; left:50%; transform:translate(-50%,-50%);
}
.accordion__trigger .plus::before{ width:11px; height:1.5px; }
.accordion__trigger .plus::after{ width:1.5px; height:11px; transition:opacity .2s ease; }
.accordion__item.is-open .plus{ background:var(--lime); }
.accordion__item.is-open .plus::after{ opacity:0; }
.accordion__panel{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.accordion__panel-inner{ padding:0 0 26px; color:#454d44; font-size:.98rem; max-width:70ch; }
.accordion__panel-inner p + p{ margin-top:10px; }
.accordion__panel-inner ul{ margin:10px 0 0; padding-left:20px; }
.accordion__panel-inner li{ margin-bottom:6px; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ background:var(--ink); color:var(--sand); padding:70px var(--edge) 30px; }
.footer__top{
  max-width:var(--max); margin:0 auto; display:flex; justify-content:space-between;
  gap:40px; flex-wrap:wrap; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.12);
}
.footer__brand{ display:flex; gap:14px; align-items:center; max-width:320px; }
.footer__brand img{ width:52px; height:52px; border-radius:12px; }
.footer__brand-text b{ font-family:var(--display); font-size:1.2rem; color:var(--white); display:block; }
.footer__brand-text span{ font-size:.85rem; color:var(--sand-dim); }
.footer__cols{ display:flex; gap:60px; flex-wrap:wrap; }
.footer__col h3{ font-size:.85rem; color:var(--lime); margin-bottom:14px; text-transform:uppercase; letter-spacing:.05em; }
.footer__col a, .footer__col span{ display:block; color:var(--sand-dim); text-decoration:none; font-size:.92rem; margin-bottom:10px; }
.footer__col a:hover{ color:var(--white); }
.footer__bottom{
  max-width:var(--max); margin:0 auto; padding-top:24px;
  display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap;
  font-size:.82rem; color:#7d8478;
}

/* ============================================================
   WHATSAPP FLOAT
   ============================================================ */
.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:90;
  width:60px; height:60px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px rgba(0,0,0,.3); text-decoration:none;
  transition:transform .2s ease;
}
.wa-float:hover{ transform:scale(1.08); }
.wa-float svg{ width:30px; height:30px; fill:var(--white); }

/* ============================================================
   MODAL (vista extendida)
   ============================================================ */
.modal-overlay{
  position:fixed; inset:0; background:rgba(13,22,19,.86); z-index:200;
  display:flex; align-items:flex-start; justify-content:center;
  padding:5vh 20px; overflow-y:auto;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.modal-overlay.is-open{ opacity:1; pointer-events:auto; }
.modal{
  background:var(--sand); border-radius:22px; max-width:920px; width:100%;
  overflow:hidden; transform:translateY(24px); transition:transform .35s ease;
}
.modal-overlay.is-open .modal{ transform:translateY(0); }
.modal__gallery{
  display:grid; grid-template-columns:repeat(3,1fr); gap:3px; max-height:340px; overflow:hidden;
}
.modal__gallery img{ width:100%; height:170px; object-fit:cover; }
.modal__gallery img:first-child{ grid-column:1/3; grid-row:1/3; height:100%; }
.modal__body{ padding:34px 38px 40px; }
.modal__cat{ color:var(--teal-deep); font-weight:700; font-size:.85rem; }
.modal__body h3{ font-size:1.9rem; margin-top:8px; }
.modal__body p{ margin-top:16px; color:#454d44; font-size:1rem; }
.modal__list{ margin-top:18px; display:grid; grid-template-columns:1fr 1fr; gap:8px 24px; padding:0; list-style:none; }
.modal__list li{ font-size:.92rem; color:#3c453f; padding-left:20px; position:relative; }
.modal__list li::before{ content:"✓"; position:absolute; left:0; color:var(--teal-deep); font-weight:700; }
.modal__actions{ margin-top:26px; display:flex; gap:14px; flex-wrap:wrap; }
.modal__picker{ margin-top:20px; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
.modal__pick{ display:flex; align-items:center; gap:10px; font-size:.92rem; color:#2c332d; cursor:pointer; padding:8px 10px; border-radius:10px; border:1px solid #e1e6df; transition:border-color .2s ease, background .2s ease; }
.modal__pick:hover{ border-color:var(--teal-deep); }
.modal__pick input{ width:17px; height:17px; accent-color:var(--teal-deep); flex:none; }
.modal__pick:has(input:checked){ border-color:var(--teal-deep); background:#eef7f2; }
.modal__close{
  position:absolute; top:18px; right:18px; width:38px; height:38px; border-radius:50%;
  background:rgba(13,22,19,.55); color:var(--white); border:0; cursor:pointer;
  font-size:1.2rem; line-height:1; z-index:2;
}
@media (max-width:620px){
  .modal__gallery{ grid-template-columns:repeat(2,1fr); max-height:none; }
  .modal__gallery img{ height:130px; }
  .modal__gallery img:first-child{ grid-column:1/3; grid-row:auto; height:200px; }
  .modal__list{ grid-template-columns:1fr; }
  .modal__picker{ grid-template-columns:1fr; }
  .modal__body{ padding:26px 22px 30px; }
}

/* reveal-on-scroll — progressive enhancement:
   content is fully visible by default; JS opts elements into the
   hidden-then-fade state only once it has successfully run, so a
   JS failure never leaves content permanently invisible. */
.reveal-armed .reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal-armed .reveal.is-visible{ opacity:1; transform:translateY(0); }


/* ============================================================
   CINEMATIC INTERACTION LAYER — MACA
   Inspired by premium editorial/travel sites.
   ============================================================ */
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{overflow-x:hidden}

.hero{isolation:isolate;perspective:1000px}
.hero__slides{position:absolute;inset:-3%;overflow:hidden;z-index:0}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity 1.25s cubic-bezier(.22,.61,.36,1),transform 7s cubic-bezier(.16,1,.3,1);will-change:transform,opacity}
.hero__bg.is-active{opacity:1;transform:scale(1.01)}
.hero__scrim{z-index:1;background:linear-gradient(90deg,rgba(5,13,11,.72) 0%,rgba(5,13,11,.28) 52%,rgba(5,13,11,.2) 100%),linear-gradient(0deg,rgba(5,13,11,.5),transparent 45%)}
.hero__grain{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.065;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");mix-blend-mode:soft-light}
.hero__content{z-index:3;transform:translate3d(var(--hero-x,0),calc(var(--hero-y,0) + var(--hero-content-y,0)),0);transition:transform .18s ease-out}
.hero__eyebrow,.hero h1,.hero__lede,.hero__actions{opacity:0;transform:translateY(24px);animation:heroReveal .9s cubic-bezier(.16,1,.3,1) forwards}
.hero__eyebrow{animation-delay:.15s}.hero h1{animation-delay:.28s}.hero__lede{animation-delay:.4s}.hero__actions{animation-delay:.52s}
.hero h1{letter-spacing:-.035em;text-wrap:balance}
@keyframes heroReveal{to{opacity:1;transform:translateY(0)}}
.hero__scrollcue{z-index:3;gap:10px;display:flex;align-items:center}
.hero__scrollcue span{width:1px;height:42px;background:rgba(255,255,255,.6);display:block;animation:scrollLine 1.8s ease-in-out infinite}
@keyframes scrollLine{0%,100%{transform:scaleY(.45);transform-origin:top;opacity:.35}50%{transform:scaleY(1);transform-origin:top;opacity:1}}
.hero__progress{position:absolute;z-index:3;right:var(--edge);bottom:34px;width:min(220px,28vw);height:2px;background:rgba(255,255,255,.25);overflow:hidden;border-radius:99px}
.hero__progress span{display:block;height:100%;width:0;background:var(--lime);border-radius:inherit}

.btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,background .3s ease}
.btn::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.18);transform:translateX(-110%) skewX(-18deg);transition:transform .55s cubic-bezier(.16,1,.3,1);z-index:-1}
.btn:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(13,22,19,.16)}
.btn:hover::after{transform:translateX(110%) skewX(-18deg)}

/* Scroll reveals: blur + lift, with staggered children */
.reveal-armed .reveal{opacity:0;transform:translate3d(0,32px,0) scale(.985);filter:blur(7px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1),filter .8s ease}
.reveal-armed .reveal.is-visible{opacity:1;transform:none;filter:none}
.activities__grid .card:nth-child(2){transition-delay:.06s}.activities__grid .card:nth-child(3){transition-delay:.12s}.activities__grid .card:nth-child(4){transition-delay:.18s}.activities__grid .card:nth-child(5){transition-delay:.24s}.activities__grid .card:nth-child(6){transition-delay:.30s}

.card{transform-style:preserve-3d;will-change:transform;transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s ease}
.card:hover{transform:translateY(-9px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));box-shadow:0 22px 50px rgba(13,22,19,.2)}
.card img{transition:transform .9s cubic-bezier(.16,1,.3,1),filter .6s ease}
.card:hover img{transform:scale(1.1);filter:saturate(1.08) contrast(1.03)}
.card__body{transform:translateZ(24px)}
.card__more{transition:gap .3s ease,opacity .3s ease,transform .3s ease}.card:hover .card__more{gap:12px;opacity:1;transform:translateX(3px)}

.feature{overflow:hidden}
.feature img{transform:translate3d(0,var(--feature-scroll-y,0),0) scale(1.06);transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.feature.is-inview img{transform:translate3d(0,var(--feature-scroll-y,0),0) scale(1)}
.feature__content{transition:transform 1s cubic-bezier(.16,1,.3,1)}
.feature:not(.is-inview) .feature__content{transform:translateY(30px)}

.momentos__grid img{will-change:transform;transition:transform .8s cubic-bezier(.16,1,.3,1),filter .5s ease,box-shadow .5s ease}
.momentos__grid img:hover{transform:scale(1.045) translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.28);filter:brightness(1.08) saturate(1.08)}

.modal-overlay{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.modal{box-shadow:0 30px 100px rgba(0,0,0,.35)}
.modal-overlay.is-open .modal{animation:modalIn .55s cubic-bezier(.16,1,.3,1)}
@keyframes modalIn{from{opacity:0;transform:translateY(34px) scale(.97)}to{opacity:1;transform:none}}

.wa-float{animation:floatPulse 2.8s ease-in-out infinite}
.wa-float:hover{animation:none;transform:scale(1.1)}
@keyframes floatPulse{0%,100%{box-shadow:0 10px 30px rgba(0,0,0,.3),0 0 0 0 rgba(37,211,102,.25)}50%{box-shadow:0 12px 34px rgba(0,0,0,.32),0 0 0 12px rgba(37,211,102,0)}}

@media (max-width:700px){
  .hero__progress{right:18px;bottom:24px;width:120px}
  .hero__content{transform:none!important}
  .card:hover{transform:translateY(-5px)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero__bg,.hero__video,.hero__content,.btn,.card,.card img,.feature img,.feature__content,.momentos__grid img,.modal{transition:none!important;animation:none!important}
  .hero__bg,.hero__video{transform:none!important}.hero__bg.is-active{opacity:1}
  .hero__eyebrow,.hero h1,.hero__lede,.hero__actions{opacity:1;transform:none}
  .hero__scrollcue span,.wa-float{animation:none}
}

/* ============================================================
   CINEMATIC SCROLL STORY — video scrubbed by page scroll
   ============================================================ */
.hero__video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  z-index:1; opacity:var(--hero-scroll-opacity,1); transform:translate3d(0,var(--hero-scroll-y,0),0) scale(var(--hero-scroll-scale,1.015));
  pointer-events:none; background:var(--ink); will-change:transform,opacity;
}
.hero__slides .hero__bg{z-index:0}
.hero__slides.is-no-video .hero__video{display:none}

.cinematic-scroll{
  position:relative; height:220vh; background:#07100e;
}
.cinematic-scroll__sticky{
  position:sticky; top:0; height:100svh; min-height:600px; overflow:hidden;
  display:flex; align-items:flex-end; isolation:isolate;
}
.cinematic-scroll__media,
.cinematic-scroll__media video,
.cinematic-scroll__shade,
.cinematic-scroll__grain{
  position:absolute; inset:0; width:100%; height:100%;
}
.cinematic-scroll__media{z-index:0; background:#07100e; overflow:hidden}
.cinematic-scroll__media video{object-fit:cover; transform:scale(1.01); will-change:transform; transition:none;}
.cinematic-scroll__shade{
  background:
    linear-gradient(90deg,rgba(3,11,9,.78) 0%,rgba(3,11,9,.35) 48%,rgba(3,11,9,.12) 100%),
    linear-gradient(0deg,rgba(3,11,9,.72) 0%,rgba(3,11,9,.06) 62%,rgba(3,11,9,.22) 100%);
}
.cinematic-scroll__grain{
  pointer-events:none; opacity:.055; mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
}
.cinematic-scroll__copy{
  position:relative; z-index:3; width:min(650px,65vw); padding:0 var(--edge) 10vh;
  color:var(--white); will-change:transform,opacity;
}
.cinematic-scroll__eyebrow{
  display:flex; align-items:center; gap:10px; color:var(--lime); font-size:.82rem;
  font-weight:700; text-transform:uppercase; letter-spacing:.1em;
}
.cinematic-scroll__eyebrow::before{content:"";width:28px;height:2px;background:var(--lime)}
.cinematic-scroll__copy h2{
  margin-top:18px; font-size:clamp(2.5rem,6vw,5.3rem); line-height:.98;
  letter-spacing:-.045em; color:var(--white); text-wrap:balance;
}
.cinematic-scroll__copy p{
  margin-top:22px; max-width:48ch; color:rgba(255,255,255,.84); font-size:clamp(.98rem,1.4vw,1.12rem);
}
.cinematic-scroll__steps{
  display:flex; align-items:center; gap:10px; margin-top:32px;
}
.cinematic-scroll__steps span{
  width:30px; height:2px; border-radius:99px; background:rgba(255,255,255,.28);
  color:transparent; transition:width .4s ease,background .4s ease;
}
.cinematic-scroll__steps span.is-active{width:58px;background:var(--lime)}
.cinematic-scroll__progress{
  width:min(360px,45vw); height:2px; margin-top:16px; background:rgba(255,255,255,.22); overflow:hidden; border-radius:99px;
}
.cinematic-scroll__progress span{display:block;width:0;height:100%;background:var(--white);border-radius:inherit;transform-origin:left}
.cinematic-scroll__hint{
  position:absolute; right:var(--edge); bottom:7vh; z-index:3; color:rgba(255,255,255,.72);
  writing-mode:vertical-rl; letter-spacing:.1em; font-size:.72rem; display:flex; gap:10px; align-items:center;
}
.cinematic-scroll__hint span{display:block;width:1px;height:48px;background:rgba(255,255,255,.55);animation:scrollLine 1.8s ease-in-out infinite}
.cinematic-scroll.is-ended .cinematic-scroll__hint{opacity:0;transition:opacity .5s ease}

@media (max-width:700px){
  .cinematic-scroll{height:190vh}
  .cinematic-scroll__sticky{min-height:100svh}
  .cinematic-scroll__copy{width:100%;padding:0 20px 8vh}
  .cinematic-scroll__copy h2{font-size:clamp(2.4rem,12vw,4rem)}
  .cinematic-scroll__copy p{max-width:34ch;font-size:.96rem}
  .cinematic-scroll__progress{width:calc(100vw - 40px);max-width:none}
  .cinematic-scroll__hint{right:18px;bottom:10vh}
  .cinematic-scroll__media video{transform:scale(1.01)}
  .hero__video{object-position:center}
}

@media (prefers-reduced-motion:reduce){
  .hero__video{display:none!important}
  .cinematic-scroll{height:auto}
  .cinematic-scroll__sticky{position:relative;height:75svh}
  .cinematic-scroll__copy{opacity:1!important;transform:none!important}
  .cinematic-scroll__steps span,.cinematic-scroll__progress span{transition:none}
  .cinematic-scroll__hint{display:none}
}


/* ============================================================
   TOUCH CAROUSELS — unique imagery, swipe + drag
   ============================================================ */
.activities__grid[data-carousel], .momentos__grid[data-carousel]{
  display:flex;
  overflow-x:auto;
  overflow-y:hidden;
  gap:18px;
  padding:4px var(--edge) 22px;
  margin-inline:calc(var(--edge) * -1);
  scroll-snap-type:x proximity;
  scroll-padding-inline:var(--edge);
  scrollbar-width:none;
  cursor:grab;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}
.activities__grid[data-carousel]::-webkit-scrollbar, .momentos__grid[data-carousel]::-webkit-scrollbar{display:none}
.activities__grid[data-carousel].is-dragging, .momentos__grid[data-carousel].is-dragging{cursor:grabbing;scroll-snap-type:none}
.activities__grid[data-carousel] .card{
  flex:0 0 clamp(280px,30vw,390px);
  min-height:470px;
  scroll-snap-align:start;
}
.momentos__grid[data-carousel]{
  columns:auto;
  display:flex;
  gap:16px;
}
.momentos__grid[data-carousel] img{
  flex:0 0 clamp(250px,28vw,360px);
  width:clamp(250px,28vw,360px);
  height:440px;
  object-fit:cover;
  scroll-snap-align:start;
}
@media (max-width:700px){
  .activities__grid[data-carousel], .momentos__grid[data-carousel]{
    gap:12px;
    padding-inline:20px;
    margin-inline:-20px;
    scroll-padding-inline:20px;
  }
  .activities__grid[data-carousel] .card{flex-basis:82vw;min-height:420px}
  .momentos__grid[data-carousel] img{flex-basis:78vw;width:78vw;height:390px}
}


/* ============================================================
   BOOKING / REQUEST FORMS — Netlify static + WhatsApp
   ============================================================ */
.booking-form{margin-top:28px;background:var(--white);border:1px solid var(--sand-dim);border-radius:20px;padding:24px;box-shadow:0 18px 55px rgba(13,22,19,.08)}
.booking-form h4{font-size:1.05rem;margin-bottom:14px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.booking-form label{display:flex;flex-direction:column;gap:7px;font-size:.82rem;font-weight:700;color:#354039}
.booking-form input,.booking-form select,.booking-form textarea{width:100%;border:1px solid #cfd6ce;background:#fbfcfa;border-radius:11px;padding:12px 13px;font:500 .92rem var(--body);color:var(--ink);outline:none;transition:border-color .2s ease,box-shadow .2s ease}
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--teal-deep);box-shadow:0 0 0 3px rgba(15,169,166,.12)}
.form-full{grid-column:1/-1}
.form-note{display:block;margin-top:12px;color:#6b746c;font-size:.78rem}
.change-request{max-width:var(--max);margin:64px auto 0;padding:0 var(--edge)}
.change-request__intro{max-width:680px}
.change-request__intro h3{font-size:clamp(1.8rem,3vw,2.5rem);margin-top:10px}
.change-request__intro p{margin-top:10px;color:#4a5148}
.waiver-copy{max-width:82ch!important}

/* Exclusive diving section */
.diving-section{background:var(--ink);color:var(--white);padding:100px 0 110px;overflow:hidden}
.diving-section .section-head p{color:rgba(255,255,255,.78)}
.diving-section__grid{max-width:var(--max);margin:44px auto 0;padding:0 var(--edge);display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.diving-section__grid::-webkit-scrollbar{display:none}
.diving-section__grid img{flex:0 0 clamp(250px,28vw,360px);width:clamp(250px,28vw,360px);height:470px;object-fit:cover;object-position:center;border-radius:16px;scroll-snap-align:start}
.diving-section__cta{max-width:var(--max);margin:30px auto 0;padding:0 var(--edge)}

/* Consistent portrait activity imagery */
.activities__grid[data-carousel] .card img{object-fit:cover;object-position:center center;aspect-ratio:4/5}
.modal__gallery img{object-fit:cover;object-position:center center}

/* Better scroll feel: no JS scroll hijacking on touch */
.activities__grid[data-carousel],.momentos__grid[data-carousel],.diving-section__grid{scroll-behavior:smooth;touch-action:pan-x;overscroll-behavior-inline:contain}
@media (max-width:860px){
  .nav__brand-text{display:none}
  .nav__brand img{height:50px;width:50px}
  .nav.is-scrolled .nav__brand img{height:44px;width:44px}
  .nav__tools{gap:8px}
}
@media (max-width:620px){
  .form-grid{grid-template-columns:1fr}
  .form-full{grid-column:auto}
  .booking-form{padding:18px}
  .change-request{margin-top:46px}
  .diving-section__grid img{flex-basis:78vw;width:78vw;height:410px}
}

/* Cinematic video stability: keep the media on its own compositor layer. */
.cinematic-scroll__media video{display:block;width:100%;height:100%;object-fit:cover;backface-visibility:hidden;transform:translateZ(0);}
@media (max-width:768px){
  .cinematic-scroll{min-height:185vh!important;}
  .cinematic-scroll__sticky{height:100svh;}
  .cinematic-scroll__media{contain:paint;}
  .cinematic-scroll__media video{object-position:center center;}
}


/* MACA Moments: consistent, upright presentation */
.momentos__grid img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:none!important;}
.momentos__grid img{aspect-ratio:4/3;}

/* Natural cinematic playback: scroll controls when playback runs, not individual frames. */
.cinematic-scroll__media{opacity:var(--scene-opacity,1);transition:opacity .7s cubic-bezier(.22,.61,.36,1);}
.cinematic-scroll__copy{opacity:var(--scene-copy-opacity,1);transition:opacity .55s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);}
.cinematic-scroll__media video{transform:translateZ(0);}
@media (max-width:700px){
  .cinematic-scroll__media{transition:opacity .9s cubic-bezier(.22,.61,.36,1);}
  .cinematic-scroll__copy{transition:opacity .65s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);}
}

/* Diving background video: immersive but lightweight on the page flow. */
.diving-section{position:relative;isolation:isolate;min-height:760px;display:flex;align-items:center}
.diving-section__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:-3;display:block;pointer-events:none}
.diving-section__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,13,14,.28) 0%,rgba(4,13,14,.58) 55%,rgba(4,13,14,.82) 100%);z-index:-2;pointer-events:none}
.diving-section__content{position:relative;z-index:1;width:100%}
.diving-section__grid img{box-shadow:0 12px 32px rgba(0,0,0,.2);opacity:.72;transition:opacity .45s ease,transform .45s ease;will-change:opacity,transform}.diving-section__grid img:hover{opacity:.92;transform:translateY(-4px)}
@media (max-width:620px){
  .diving-section{min-height:700px;padding:82px 0 92px}
  .diving-section__video{object-position:center center}
  .diving-section__overlay{background:linear-gradient(180deg,rgba(4,13,14,.38) 0%,rgba(4,13,14,.68) 58%,rgba(4,13,14,.9) 100%)}
}
@media (prefers-reduced-motion: reduce){.diving-section__video{display:none}}

/* ---------- Social links: premium interactive cards ---------- */
.momentos__social{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:42px}
.social-pill{position:relative;display:flex;align-items:center;gap:13px;min-height:72px;padding:13px 15px;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.035));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#fff;text-decoration:none;overflow:hidden;transition:transform .28s ease,border-color .28s ease,background .28s ease,box-shadow .28s ease}
.social-pill::before{content:"";position:absolute;inset:-70% 35% auto -20%;height:150px;background:rgba(255,255,255,.10);filter:blur(30px);opacity:.6;pointer-events:none}
.social-pill:hover{transform:translateY(-5px);border-color:rgba(198,230,47,.55);background:linear-gradient(135deg,rgba(255,255,255,.15),rgba(198,230,47,.07));box-shadow:0 18px 36px rgba(0,0,0,.22)}
.social-pill__icon{position:relative;z-index:1;display:grid;place-items:center;width:43px;height:43px;flex:0 0 43px;border-radius:14px;background:rgba(255,255,255,.12);font-size:28px;font-weight:700;line-height:1}
.social-pill__icon--f{font-family:Arial,sans-serif;font-size:27px}
.social-pill>span:nth-child(2){position:relative;z-index:1;display:flex;flex-direction:column;min-width:0}
.social-pill small{font-size:.68rem;line-height:1.2;color:rgba(255,255,255,.62);letter-spacing:.03em}
.social-pill strong{font-size:1rem;line-height:1.25;color:#fff}
.social-pill>b{position:relative;z-index:1;margin-left:auto;font-size:1.15rem;color:var(--lime);transition:transform .25s ease}
.social-pill:hover>b{transform:translate(3px,-3px)}
@media(max-width:820px){.momentos__social{grid-template-columns:1fr}.social-pill{min-height:66px}}

/* ---------- Faster video loading on desktop ---------- */
.hero__video{will-change:opacity,transform;contain:layout paint}
.cinematic-scroll__media video{contain:layout paint;will-change:auto}
.diving-section__video{contain:layout paint}


/* ============================================================
   IMAGE LIGHTBOX — Activities + Diving
   Expands the image over the current page without opening a new window.
   ============================================================ */
.modal-overlay.is-image-lightbox{
  background:rgba(8,14,12,.56);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
  align-items:center;
  padding:24px;
  overflow:hidden;
}
.modal.image-lightbox{
  width:auto;
  max-width:min(92vw,1100px);
  max-height:88vh;
  background:transparent;
  border-radius:0;
  overflow:visible;
  transform:scale(.97);
  box-shadow:none;
}
.modal-overlay.is-open .modal.image-lightbox{transform:scale(1)}
.modal.image-lightbox .image-lightbox__frame{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  max-width:92vw;
  max-height:84vh;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 22px 70px rgba(0,0,0,.34);
}
.modal.image-lightbox .image-lightbox__frame img{
  display:block;
  width:auto;
  height:auto;
  max-width:92vw;
  max-height:84vh;
  object-fit:contain;
  border-radius:20px;
}
.modal.image-lightbox .image-lightbox__close{
  position:absolute;
  z-index:3;
  top:-18px;
  right:-18px;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.55);
  background:rgba(13,22,19,.72);
  color:#fff;
  font-size:30px;
  line-height:1;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
}
.activities__grid .card img,
.diving-section__grid img{cursor:zoom-in}
@media (max-width:640px){
  .modal-overlay.is-image-lightbox{padding:18px}
  .modal.image-lightbox{max-width:94vw}
  .modal.image-lightbox .image-lightbox__frame,
  .modal.image-lightbox .image-lightbox__frame img{max-width:94vw;max-height:78vh;border-radius:16px}
  .modal.image-lightbox .image-lightbox__close{top:-12px;right:-8px;width:42px;height:42px}
}

/* ---------- Smooth cinematic playback ---------- */
.cinematic-scroll__media video{image-rendering:auto;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0)}
@media (prefers-reduced-motion: reduce){.cinematic-scroll__media video{transform:none;-webkit-transform:none}}

/* Continuous Moments + Social video background */
.momentos--video{position:relative;isolation:isolate;overflow:hidden;}
.momentos--video .momentos__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;display:block;pointer-events:none;}
.momentos--video .momentos__video-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,12,10,.26),rgba(5,12,10,.42));z-index:1;pointer-events:none;}
.momentos--video .section-head,.momentos--video .momentos__grid,.momentos--video .momentos__social{position:relative;z-index:2;}
.momentos--video .momentos__grid img{background:rgba(0,0,0,.14);}
@media (max-width:700px){
  .momentos--video .momentos__video{object-position:center;}
}

/* ---------- Desktop alignment + reliable activity cards ---------- */
@media (min-width:861px){
  .nav{min-height:82px;align-items:center;padding-top:12px;padding-bottom:12px}
  .nav__brand{align-items:center;flex:0 0 auto}
  .nav__brand img{width:64px;height:64px;object-fit:cover;border-radius:14px}
  .nav__brand-text{line-height:1.05}
  .nav__links{align-items:center;gap:22px}
  .nav__tools{align-items:center}
  .language-toggle{min-width:68px;min-height:46px;padding:9px 14px}
  .language-flag{font-size:1.3rem}
  .nav__cta{min-height:46px;align-items:center}
}
.activities__grid .card{cursor:pointer;touch-action:manipulation}
.activities__grid .card:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
.activities__grid .card img{pointer-events:auto}

/* Keep the native video at its full supplied resolution; the browser scales it to the viewport. */
.hero__video,.cinematic-scroll__media video,.diving-section__video,.momentos--video .momentos__video{image-rendering:auto}


/* Desktop brand placement: remove the tiny corner logo and place a larger brand mark below the WhatsApp CTA. */
.nav__brand--hidden{display:none!important;width:0;min-width:0}
.desktop-nav-logo{display:flex;position:absolute;right:var(--edge);top:78px;width:82px;height:82px;align-items:center;justify-content:center;text-decoration:none;z-index:110}
.desktop-nav-logo img{width:82px;height:82px;object-fit:contain;border-radius:16px;filter:drop-shadow(0 10px 24px rgba(0,0,0,.28));}
@media(max-width:860px){.desktop-nav-logo{display:none!important}.nav__brand--hidden{display:none!important}}

/* MACA Moments: let the moving background show softly through the gallery photos. */
.momentos--video .momentos__grid img{opacity:.72;transition:opacity .35s ease,transform .45s ease,filter .35s ease;}
.momentos--video .momentos__grid img:hover{opacity:.9;filter:saturate(1.05);transform:translateY(-4px);}

/* Return-to-top control */
.back-to-top{position:fixed;right:24px;bottom:24px;z-index:95;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(13,22,19,.78);color:#fff;display:grid;place-items:center;font:700 1.35rem var(--body);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,visibility .25s ease,transform .25s ease,background .25s ease;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 30px rgba(0,0,0,.22)}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}
.back-to-top:hover{background:rgba(198,230,47,.18);border-color:rgba(198,230,47,.7);transform:translateY(-2px)}
@media(max-width:620px){.back-to-top{right:18px;bottom:18px;width:48px;height:48px}}

/* Desktop cards remain explicitly interactive. */
.activities__grid .card{cursor:pointer}

/* ============================================================
   MACA NAV LOGO + BRAND MENU BUTTON
   ============================================================ */
.desktop-nav-logo{display:flex;position:absolute;right:var(--edge);top:76px;width:112px;height:112px;align-items:center;justify-content:center;text-decoration:none;z-index:110;pointer-events:auto}
.desktop-nav-logo img{width:112px;height:112px;object-fit:contain;border-radius:0;filter:drop-shadow(0 10px 24px rgba(0,0,0,.30));}
.nav__burger{position:relative!important;overflow:visible!important}
.nav__burger > img{display:none}
.nav__burger-badge{display:none}
@media(max-width:860px){
  .desktop-nav-logo{display:none!important}
  .nav__burger{display:flex;position:relative;z-index:120;width:62px;height:62px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.32);border-radius:18px;background:rgba(13,22,19,.72);box-shadow:0 10px 30px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.14);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:5px;cursor:pointer}
  .nav__burger > img{display:block;width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 5px 12px rgba(0,0,0,.28));transition:transform .28s ease,filter .28s ease}
  .nav__burger:hover > img,.nav__burger:focus-visible > img{transform:scale(1.05)}
  .nav__burger-badge{display:flex;position:absolute;right:-5px;bottom:-5px;width:24px;height:24px;border-radius:9px;align-items:center;justify-content:center;gap:2px;background:var(--lime);border:2px solid var(--ink);box-shadow:0 5px 14px rgba(0,0,0,.28)}
  .nav__burger-badge i{display:block;width:3px;height:10px;border-radius:2px;background:var(--ink);transform:rotate(90deg)}
  .nav__burger.is-open > img{transform:scale(.96) rotate(-2deg)}
}
@media(min-width:861px){
  .nav__burger{display:none!important}
}

/* ============================================================
   FINAL BRAND / MENU POLISH
   ============================================================ */
.hero{isolation:isolate;}
.hero__content{position:relative;z-index:4;}
.nav__menu-watermark{position:absolute;left:50%;top:50%;width:min(460px,70%);height:auto;transform:translate(-50%,-50%);opacity:.075;pointer-events:none;z-index:-1;filter:saturate(.9) brightness(1.15);}
.nav__links{isolation:isolate;}
.desktop-nav-logo{display:none!important;}
.nav__burger{overflow:visible!important;}
.nav__burger-badge{display:none!important;}
.nav__burger-lines{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;position:absolute;right:-7px;bottom:-7px;width:24px;height:24px;border-radius:50%;background:var(--lime);border:2px solid var(--ink);box-shadow:0 5px 14px rgba(0,0,0,.28);}
.nav__burger-lines i{display:block;width:10px;height:2px;border-radius:2px;background:var(--ink);}
@keyframes menuInvite{0%,100%{transform:translateY(0) rotate(0deg)}20%{transform:translateY(-4px) rotate(-1deg)}40%{transform:translateY(0) rotate(1deg)}60%{transform:translateY(-2px) rotate(0deg)}80%{transform:translateY(0)}}
@media(max-width:860px){
  .nav__burger{animation:menuInvite 2.7s ease-in-out infinite;transform-origin:center bottom;}
  .nav__burger:active{animation:none;transform:scale(.94);}
  .nav__burger-lines{display:flex;}
  .nav__menu-watermark{width:min(420px,82%);opacity:.065;}
}
@media(prefers-reduced-motion:reduce){.nav__burger{animation:none!important}}
.wa-float{bottom:22px;}
.back-to-top{bottom:94px;}
@media(max-width:620px){.back-to-top{right:18px;bottom:94px;width:48px;height:48px;}}

/* Menu CTA: unmistakable hamburger, gentle invitation motion, no decorative lines underneath. */
.nav__burger-lines,.nav__burger > img,.nav__burger-badge{display:none!important;}
@media(max-width:860px){
  .nav__burger{width:62px;height:62px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;padding:0;border-radius:20px;background:rgba(13,22,19,.76);border:1px solid rgba(255,255,255,.28);box-shadow:0 10px 28px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.14);}
  .nav__burger > span{display:block!important;width:28px;height:3px;border-radius:99px;background:#fff;transition:transform .25s ease,opacity .2s ease;}
  .nav__burger.is-open > span:nth-child(1){transform:translateY(10px) rotate(45deg)}
  .nav__burger.is-open > span:nth-child(2){opacity:0}
  .nav__burger.is-open > span:nth-child(3){transform:translateY(-10px) rotate(-45deg)}
}


/* The MACA mark itself is the menu control. No hamburger lines or extra badge. */
@media(max-width:860px){
  .nav__burger{
    display:flex!important;
    width:78px!important;
    height:78px!important;
    padding:4px!important;
    border:0!important;
    border-radius:50%!important;
    background:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    animation:menuInvite 2.6s ease-in-out infinite;
    transform-origin:center center;
  }
  .nav__burger > span{display:none!important;}
  .nav__burger > img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    filter:drop-shadow(0 8px 16px rgba(0,0,0,.30));
    transition:transform .25s ease,filter .25s ease;
  }
  .nav__burger:hover > img,
  .nav__burger:focus-visible > img{transform:scale(1.07)!important;filter:drop-shadow(0 10px 20px rgba(0,0,0,.38));}
  .nav__burger:active{animation:none!important;transform:scale(.93)!important;}
  .hero__content{
    padding-bottom:54px;
    max-width:100%;
  }
  .hero h1{max-width:12ch;}
}

@media(prefers-reduced-motion:reduce){
  .nav__burger{animation:none!important;}
}

/* ============================================================
   FINAL NAVIGATION — priority links + MACA menu button
   ============================================================ */
.nav{padding-right:var(--edge);}
.nav__links--primary{display:flex;align-items:center;gap:24px;flex:1;justify-content:center;}
.nav__links--primary li{list-style:none;}
.nav__links--primary a{font-size:.9rem;font-weight:600;}

.nav__burger{
  display:flex!important;
  position:relative!important;
  z-index:130!important;
  width:72px!important;
  height:72px!important;
  flex:0 0 72px;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  cursor:pointer;
  animation:menuInvite 2.8s ease-in-out infinite;
}
.nav__burger > img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.32));
  transition:transform .25s ease,filter .25s ease;
}
.nav__burger:hover > img,.nav__burger:focus-visible > img{transform:scale(1.06);filter:drop-shadow(0 11px 22px rgba(0,0,0,.4));}
.nav__burger:active{animation:none!important;transform:scale(.94)!important;}
.nav__burger.is-open > img{transform:scale(.96) rotate(-2deg);}

/* Full menu panel. The small logo is a watermark here only. */
.nav__menu-panel{
  position:fixed;
  inset:0;
  z-index:105;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:110px 32px 42px;
  background:
    radial-gradient(circle at 72% 18%,rgba(198,230,47,.12),transparent 24%),
    radial-gradient(circle at 24% 78%,rgba(15,169,166,.16),transparent 30%),
    linear-gradient(145deg,rgba(7,15,12,.985),rgba(14,31,25,.98));
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-12px) scale(.985);
  transition:opacity .3s ease,visibility .3s ease,transform .38s cubic-bezier(.22,1,.36,1);
  overflow:hidden;
  isolation:isolate;
}
.nav__menu-panel.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none;}
.nav__menu-watermark-wrap{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  pointer-events:none;
  z-index:-1;
}
.nav__menu-watermark{
  position:static!important;
  width:min(620px,70vw)!important;
  height:auto!important;
  transform:none!important;
  opacity:.055!important;
  filter:saturate(.9) brightness(1.2)!important;
}
.nav__menu-panel-head{position:relative;z-index:2;text-align:center;margin-bottom:22px;}
.nav__menu-kicker{display:block;color:var(--lime);font-size:.7rem;font-weight:800;letter-spacing:.18em;margin-bottom:8px;}
.nav__menu-label{display:block;color:#fff;font-family:var(--display);font-size:clamp(2rem,4vw,3rem);font-weight:700;letter-spacing:-.04em;}
.nav__menu-list{
  position:relative;z-index:2;
  list-style:none;
  width:min(560px,92vw);
  margin:0;padding:0;
  display:grid;
  gap:10px;
}
.nav__menu-list li{list-style:none;}
.nav__menu-list a{
  display:flex;align-items:center;justify-content:space-between;
  min-height:56px;
  padding:13px 18px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  color:#fff;text-decoration:none;
  background:rgba(255,255,255,.055);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
  font-weight:700;
  transition:transform .24s ease,background .24s ease,border-color .24s ease;
}
.nav__menu-list a::after{content:'↗';color:var(--lime);font-size:1.1rem;}
.nav__menu-list a:hover{transform:translateX(5px);background:rgba(255,255,255,.10);border-color:rgba(198,230,47,.42);}

@media (min-width:861px){
  .nav__links--primary{order:1;}
  .nav__tools{order:2;}
  .nav__menu-panel{padding-left:12vw;padding-right:12vw;}
  .nav__burger{width:78px!important;height:78px!important;flex-basis:78px;}
  .nav__burger > img{width:78px!important;height:78px!important;}
  .nav__menu-list{grid-template-columns:repeat(2,minmax(0,1fr));width:min(760px,84vw);}
  .nav__menu-list li:last-child{grid-column:1/-1;}
}
@media (max-width:860px){
  .nav__links--primary{display:none!important;}
  .nav{padding-left:20px;padding-right:20px;}
  .nav__tools{margin-left:auto;}
  .nav__cta{display:none!important;}
  .nav__burger{width:76px!important;height:76px!important;flex-basis:76px;}
  .nav__menu-panel{padding:108px 20px 30px;justify-content:center;}
  .nav__menu-watermark{width:min(500px,92vw)!important;opacity:.06!important;}
}
@media (prefers-reduced-motion:reduce){.nav__burger{animation:none!important;}}


/* Keep the two floating controls visually separated on small screens. */
.wa-float{right:20px;bottom:22px;}
.back-to-top{right:20px;bottom:90px;}
@media(max-width:620px){.wa-float{right:18px;bottom:18px}.back-to-top{right:18px;bottom:88px;}}

/* Remove the old watermark behavior from the page itself. It only exists inside .nav__menu-panel. */
.nav__links--primary .nav__menu-watermark{display:none!important;}

/* Prevent the page from moving behind the full-screen menu on every device. */
body.menu-open{overflow:hidden;}

/* ===== FINAL MENU BUTTON + SMOOTH VIDEO PASS ===== */
/* The attached MACA MENU artwork is the button itself on every screen size. */
.nav__burger{
  display:flex !important;
  position:relative;
  flex:0 0 auto;
  width:104px;
  height:78px;
  padding:0;
  margin:0;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:22px;
  background:transparent;
  box-shadow:none;
  cursor:pointer;
  overflow:visible;
  animation:menuInvite 2.8s ease-in-out infinite;
  transform-origin:center center;
}
.nav__burger > img{
  display:block !important;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 7px 15px rgba(0,0,0,.28));
  transition:transform .24s ease,filter .24s ease;
}
.nav__burger:hover > img,.nav__burger:focus-visible > img{transform:scale(1.045);filter:drop-shadow(0 10px 20px rgba(0,0,0,.34));}
.nav__burger:active{animation:none;transform:scale(.94);}
.nav__burger.is-open > img{transform:scale(.96) rotate(-1deg);}
.nav__burger-lines,.nav__burger-badge{display:none !important;}
@media(max-width:1100px){
  .nav__links--primary{gap:16px}
  .nav__burger{width:92px;height:70px}
  .nav__tools{gap:8px}
}
@media(max-width:860px){
  .nav__tools{gap:7px}
  .nav__burger{width:86px;height:72px;}
  .nav__burger > img{width:100%;height:100%;}
}
@media(max-width:620px){
  .nav__burger{width:78px;height:66px;}
}

/* Keep the simple mark only inside the open menu as a subtle watermark. */
.nav__menu-watermark{opacity:.065 !important;}

/* HERO LOGO — single source of truth (replaces the stacked .hero__logo overrides).
   The hero is a two-row grid: row 1 = logo, pinned just below the fixed nav;
   row 2 = the text. The logo only shrinks when row 1 is short (short laptops,
   long translations); if even its floor does not fit, the hero grows instead of
   letting the logo hit the nav or the headline. */
.hero{
  --hero-nav-clear:106px;
  --hero-logo-max:min(426px,37.6vw);
  --hero-logo-min:200px;
  display:grid;
  grid-template-rows:minmax(calc(var(--hero-nav-clear) + var(--hero-logo-min) + 20px),1fr) auto;
  height:auto;
  min-height:max(560px,100svh);
}
.hero__logo{
  display:block;
  position:absolute;
  grid-area:1/1/2/2;
  left:50%;
  top:var(--hero-nav-clear);
  transform:translateX(-50%);
  height:min(var(--hero-logo-max),calc(100% - var(--hero-nav-clear) - 20px));
  width:auto;
  margin:0;
  z-index:3;
  opacity:.58;
  pointer-events:none;
  filter:drop-shadow(0 12px 26px rgba(0,0,0,.16));
}
.hero__content{grid-row:2;grid-column:1;align-self:end;justify-self:start;}
@media(max-width:860px){
  .hero{--hero-logo-max:min(243px,57.5vw);--hero-logo-min:150px;}
  .hero__logo{opacity:.56;}
}

/* Faster, cleaner compositing for the 4K cinematic video. */
.cinematic-scroll__media video{
  transform:translate3d(0,0,0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  contain:paint;
}

/* ===== MACA video journey: autoplay backgrounds across full sections ===== */
.boat-journey,
.reviews-waiver-journey{position:relative;isolation:isolate;overflow:clip;background:transparent!important}
.boat-journey__video-layer{position:sticky;top:0;height:100svh;min-height:600px;margin-bottom:-100svh;z-index:0;pointer-events:none;overflow:hidden}
.boat-journey__video{width:100%;height:100%;display:block;object-fit:cover;object-position:center;transform:translateZ(0)}
.boat-journey__shade{position:absolute;inset:0;background:rgba(0,0,0,.30);pointer-events:none}
.boat-journey > section,
.boat-journey > .transfer-note,
.boat-journey > .activities,
.reviews-waiver-journey > section{position:relative;z-index:1}
.boat-journey .cinematic-scroll--autoplay{height:100svh!important;min-height:600px;background:transparent!important;display:flex;align-items:center}
.boat-journey .cinematic-scroll--autoplay .cinematic-scroll__copy{position:relative;max-width:760px;padding:40px 24px;margin:0 auto;text-align:center;color:#fff}
.boat-journey .cinematic-scroll--autoplay .cinematic-scroll__steps,
.boat-journey .cinematic-scroll--autoplay .cinematic-scroll__progress,
.boat-journey .cinematic-scroll--autoplay .cinematic-scroll__hint{display:none!important}
.boat-journey .transfer-note{min-height:100svh;display:flex;align-items:center;background:rgba(0,0,0,.18)!important;color:#fff}
.boat-journey .activities{background:rgba(255,255,255,.78)!important;backdrop-filter:blur(2px)}
.reviews-waiver-journey .reviews,
.reviews-waiver-journey .policies{background:transparent!important}
.reviews-waiver-journey .section-head,
.reviews-waiver-journey .reviews__wrap,
.reviews-waiver-journey .accordion,
.reviews-waiver-journey .change-request{position:relative}
.reviews-waiver-journey .reviews__widget,
.reviews-waiver-journey .accordion__item,
.reviews-waiver-journey .change-request{background:rgba(255,255,255,.78);backdrop-filter:blur(3px)}
.reviews-waiver-journey .section-head{background:rgba(255,255,255,.72);backdrop-filter:blur(3px);padding:28px;border-radius:22px}
@media(max-width:700px){
  .boat-journey .cinematic-scroll--autoplay{height:100svh!important;min-height:100svh}
  .boat-journey .transfer-note{min-height:100svh;background:rgba(0,0,0,.30)!important}
  .boat-journey .activities{background:rgba(255,255,255,.84)!important}
  .reviews-waiver-journey .section-head{padding:20px;border-radius:16px}
  .reviews-waiver-journey .reviews__widget,.reviews-waiver-journey .accordion__item,.reviews-waiver-journey .change-request{background:rgba(255,255,255,.86)}
}


/* ===== FINAL GLOBAL MENU FIX =====
   The full-screen menu is intentionally outside <nav> so it is never clipped
   or trapped by a section/stacking context. The nav stays above it so the
   MACA MENU button remains clickable and can always close the menu. */
.nav{z-index:10000 !important;}
.nav__menu-panel{
  position:fixed !important;
  inset:0 !important;
  z-index:9990 !important;
  background:
    radial-gradient(circle at 72% 18%, rgba(198,230,47,.10), transparent 24%),
    radial-gradient(circle at 24% 78%, rgba(15,169,166,.12), transparent 30%),
    linear-gradient(145deg, rgba(7,15,12,.64), rgba(14,31,25,.68)) !important;
  -webkit-backdrop-filter:blur(14px) saturate(115%) !important;
  backdrop-filter:blur(14px) saturate(115%) !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform:translateY(-10px) !important;
  transition:opacity .28s ease, visibility .28s ease, transform .34s cubic-bezier(.22,1,.36,1) !important;
}
.nav__menu-panel.is-open{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:none !important;
}
.nav__menu-watermark{opacity:.055 !important;}
body.menu-open{overflow:hidden !important;}
@media(max-width:860px){
  .nav{z-index:10000 !important;}
  .nav__menu-panel{z-index:9990 !important; padding:108px 20px 30px !important;}
}

/* ============ HOTELS / TRANSLUCENT MODALS ============ */
.hotels{background:var(--sand-dim);padding:100px 0 105px}.hotels__grid{max-width:var(--max);margin:44px auto 0;padding:0 var(--edge)}
.hotel-card{background:var(--white);border:1px solid rgba(30,45,38,.08);border-radius:22px;overflow:hidden;box-shadow:0 18px 55px rgba(13,22,19,.08);cursor:pointer}.hotel-card__media{position:relative;min-height:500px;overflow:hidden;background:var(--ink)}.hotel-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.hotel-card:hover .hotel-card__media img{transform:scale(1.045)}.hotel-card__media-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,22,19,.08),rgba(13,22,19,.88))}.hotel-card__eyebrow{position:absolute;top:24px;left:26px;color:#fff;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:8px 12px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(13,22,19,.28);backdrop-filter:blur(8px)}.hotel-card__overlay-title{position:absolute;left:28px;right:28px;bottom:28px;color:#fff}.hotel-card__overlay-title h3{font-size:clamp(2rem,4vw,3.2rem);line-height:1.03}.hotel-card__overlay-title span{display:inline-block;margin-top:12px;color:var(--lime);font-weight:700}.hotel-card__content{padding:25px 28px 30px}.hotel-card__loc{color:var(--teal-deep);font-weight:800;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}.hotel-card__content p{margin-top:9px;line-height:1.65;color:#4d564d}.hotel-card__facts{display:flex;flex-wrap:wrap;gap:9px;margin-top:17px}.hotel-card__facts span{font-size:.76rem;color:#354039;background:#f1f4ee;border:1px solid #dfe6dc;padding:8px 10px;border-radius:999px}.hotel-card__button{margin-top:19px}.hotels__note{max-width:var(--max);margin:22px auto 0;padding:0 var(--edge);font-size:.8rem;color:#4f574e;line-height:1.55}
.modal-overlay{background:rgba(13,22,19,.38)!important;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.modal{background:rgba(246,242,225,.88)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 30px 100px rgba(0,0,0,.35)}
.hotel-modal__intro{display:grid;grid-template-columns:1.1fr .9fr;gap:25px}.hotel-modal__gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:500px;overflow:auto;border-radius:15px}.hotel-modal__gallery-item{border:0;padding:0;background:#ddd;overflow:hidden;border-radius:7px;cursor:zoom-in}.hotel-modal__gallery-item img{display:block;width:100%;height:140px;object-fit:cover;transition:transform .4s}.hotel-modal__gallery-item:hover img{transform:scale(1.05)}.hotel-modal__gallery-item:first-child{grid-column:1/-1}.hotel-modal__gallery-item:first-child img{height:245px}.hotel-modal__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.hotel-modal__chip{font-size:.75rem;font-weight:700;padding:7px 9px;border-radius:999px;background:#eef3ec;border:1px solid #dce5da}.hotel-rates{margin-top:28px}.hotel-rate-group{margin-top:12px;border:1px solid #dfe5de;border-radius:14px;overflow:hidden;background:rgba(255,255,255,.6)}.hotel-rate-group__head{padding:13px 15px;background:#edf3ec}.hotel-rate-group__head strong{display:block}.hotel-rate-group__head span{font-size:.78rem;color:#687067}.hotel-rate-table{width:100%;border-collapse:collapse}.hotel-rate-table th,.hotel-rate-table td{padding:10px 12px;border-top:1px solid #e5e9e3;text-align:left;font-size:.8rem}.hotel-rate-table th{font-size:.68rem;text-transform:uppercase;color:#69736a}.hotel-rate-table td:last-child,.hotel-rate-table th:last-child{text-align:right}.hotel-rate-table td strong{font-size:.92rem}.hotel-child-note{font-size:.8rem;color:#687067;margin-top:12px}.hotel-booking-form{margin-top:25px}.hotel-booking-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hotel-booking-form textarea{min-height:95px;resize:vertical}.hotel-estimate{margin-top:18px;padding:16px;border-radius:15px;background:var(--ink);color:#fff;display:grid;grid-template-columns:1fr auto;gap:7px 15px}.hotel-estimate__label{font-size:.72rem;color:var(--sand);text-transform:uppercase}.hotel-estimate__value{font-size:1.45rem;font-weight:800;color:var(--lime);text-align:right}.hotel-estimate__note{grid-column:1/-1;font-size:.73rem;color:rgba(255,255,255,.7);line-height:1.45}
/* ============ HOTEL PHOTO VIEWER (shared by the five hotel modals) ============
   Glass round buttons (same family as back-to-top / language toggle), centred on the photo:
   just outside its edges on desktop, inside 12 px from the edges on phones. */
.hotel-photo-viewer{position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;padding:76px 92px 24px;background:rgba(6,13,11,.8);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility .22s ease}
.hotel-photo-viewer.is-open{opacity:1;visibility:visible;pointer-events:auto}
.hotel-photo-viewer__stage{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:100%;max-height:100%}
.hotel-photo-viewer__frame{position:relative;display:flex;justify-content:center;max-width:100%}
.hotel-photo-viewer__photo{display:flex;justify-content:center;align-items:center;touch-action:pan-y;min-width:min(720px,calc(100vw - 184px));min-height:min(420px,calc(100vh - 156px))}
.hotel-photo-viewer__photo img{background:rgba(255,255,255,.06)}
.hotel-photo-viewer__photo img{display:block;width:auto;height:auto;max-width:min(1280px,calc(100vw - 184px));max-height:calc(100vh - 156px);max-height:calc(100dvh - 156px);object-fit:contain;border-radius:14px;box-shadow:0 25px 75px rgba(0,0,0,.45);user-select:none;-webkit-user-drag:none}
.hotel-photo-viewer__btn{position:absolute;z-index:2;width:48px;height:48px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(13,22,19,.62);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 30px rgba(0,0,0,.25);transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;-webkit-tap-highlight-color:transparent}
.hotel-photo-viewer__btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.hotel-photo-viewer__prev,.hotel-photo-viewer__next{top:50%;transform:translateY(-50%)}
.hotel-photo-viewer__prev{right:calc(100% + 18px)}
.hotel-photo-viewer__next{left:calc(100% + 18px)}
.hotel-photo-viewer__close{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right))}
.hotel-photo-viewer__close svg{width:20px;height:20px}
@media(hover:hover){.hotel-photo-viewer__btn:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}}
.hotel-photo-viewer__btn:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.hotel-photo-viewer__prev:active,.hotel-photo-viewer__next:active{transform:translateY(-50%) scale(.94)}
.hotel-photo-viewer__close:active{transform:scale(.94)}
.hotel-photo-viewer__count{color:#fff;background:rgba(13,22,19,.7);border:1px solid rgba(255,255,255,.18);padding:7px 13px;border-radius:999px;font:600 .78rem/1 var(--body);letter-spacing:.05em;font-variant-numeric:tabular-nums}
@media(max-width:760px){
  .hotel-photo-viewer{padding:72px 12px 20px}
  .hotel-photo-viewer__photo{min-width:calc(100vw - 24px);min-height:min(320px,calc(100vh - 150px))}
  .hotel-photo-viewer__photo img{max-width:calc(100vw - 24px);max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);border-radius:12px}
  .hotel-photo-viewer__btn{width:44px;height:44px}
  .hotel-photo-viewer__prev{right:auto;left:12px}
  .hotel-photo-viewer__next{left:auto;right:12px}
}
@media(max-width:760px){.hotel-card__media{min-height:420px}.hotel-modal__intro{grid-template-columns:1fr}.hotel-modal__gallery{grid-template-columns:repeat(2,1fr);max-height:430px}.hotel-modal__gallery-item img{height:135px}.hotel-modal__gallery-item:first-child img{height:200px}.hotel-booking-form .form-grid{grid-template-columns:1fr}.hotel-rate-table{display:block}.hotel-rate-table thead{display:none}.hotel-rate-table tbody,.hotel-rate-table tr{display:block}.hotel-rate-table tr{padding:8px 12px;border-top:1px solid #e5e9e3}.hotel-rate-table td{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border:0;text-align:right!important;font-size:.78rem}.hotel-rate-table td::before{content:attr(data-label);font-size:.63rem;text-transform:uppercase;color:#69736a;font-weight:700;text-align:left}.hotel-rate-table td:first-child{display:block;text-align:left!important;font-weight:800;font-size:.86rem;padding-bottom:3px}.hotel-rate-table td:first-child::before{display:none}.hotel-rate-table td strong{font-size:.86rem}.hotel-estimate{grid-template-columns:1fr auto}}

/* ============ HOTEL BRAND WATERMARK + HENRY MORGAN ============ */
.hotels__grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.hotel-card{position:relative}
.hotel-card::after{content:"";position:absolute;right:-70px;bottom:-95px;width:390px;height:390px;background:url('../images/maca-watermark.png') center/contain no-repeat;opacity:.055;pointer-events:none;z-index:0;transform:rotate(-7deg)}
.hotel-card>*{position:relative;z-index:1}
.hotel-card__watermark{position:absolute!important;inset:0!important;z-index:0!important;pointer-events:none}
.hotel-card--henry::after{opacity:.06}
.hm-notes{margin-top:18px;padding:16px 18px;border-radius:14px;background:rgba(255,255,255,.58);border:1px solid #dfe5de;color:#586158;font-size:.8rem;line-height:1.5}
.hm-notes ul{margin:8px 0 0 18px}
.hm-rate-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.hotel-rate-table th small{display:block;margin-top:3px;font-size:.62rem;text-transform:none;font-weight:500;letter-spacing:0}
@media(max-width:900px){.hotels__grid{grid-template-columns:1fr}}
@media(max-width:760px){.hotel-card::after{width:280px;height:280px;right:-55px;bottom:-65px;opacity:.045}.hm-notes{font-size:.76rem}.hm-rate-scroll{overflow:visible}.hotel-rate-table th small{display:none}}

/* ============ HENRY MORGAN INTERACTIVE BUILDER ============ */
.hotel-card--henry{background:rgba(246,242,225,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.hotel-card--henry .hotel-card__content{background:rgba(246,242,225,.46);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.hm-why{margin-top:22px;padding:16px 18px;border:1px solid rgba(255,255,255,.55);border-radius:16px;background:rgba(255,255,255,.42);box-shadow:inset 0 1px 0 rgba(255,255,255,.45)}
.hm-why strong{display:block;font-size:.88rem}.hm-why p{margin:7px 0 0;color:#596259;font-size:.78rem;line-height:1.55}
.hm-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 12px}.hm-tab{border:1px solid rgba(39,58,47,.16);background:rgba(255,255,255,.42);color:#344139;padding:10px 13px;border-radius:999px;font:inherit;font-size:.75rem;font-weight:800;cursor:pointer;transition:.2s}.hm-tab:hover,.hm-tab.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.hm-packages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hm-package{position:relative;text-align:left;border:1px solid rgba(39,58,47,.13);border-radius:16px;padding:16px;background:rgba(255,255,255,.52);cursor:pointer;display:flex;flex-direction:column;gap:5px;min-height:170px;transition:.2s;box-shadow:0 8px 25px rgba(13,22,19,.04)}.hm-package:hover{transform:translateY(-2px);box-shadow:0 13px 30px rgba(13,22,19,.08)}.hm-package.is-selected{border:2px solid var(--teal);background:rgba(255,255,255,.72);box-shadow:0 12px 32px rgba(15,169,166,.11)}.hm-package__date{font-size:1rem;font-weight:850;color:var(--ink)}.hm-package>strong{font-size:.8rem;color:var(--teal-deep)}.hm-package>span{font-size:.73rem;color:#5e675f}.hm-package>small{font-size:.69rem;color:#737b74;line-height:1.4}.hm-package>b{margin-top:auto;font-size:1.02rem;color:var(--ink)}.hm-package>b em{font-style:normal;font-size:.65rem;color:#69736a;font-weight:600}.hm-package>i{position:absolute;right:12px;top:12px;font-style:normal;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--teal-deep)}
.hm-builder{margin-top:16px;border:1px solid rgba(39,58,47,.12);border-radius:18px;background:rgba(255,255,255,.5);overflow:hidden}.hm-builder__head{display:flex;justify-content:space-between;gap:20px;padding:17px 18px;background:rgba(237,243,236,.62);border-bottom:1px solid rgba(39,58,47,.1)}.hm-builder__head small{display:block;text-transform:uppercase;letter-spacing:.06em;font-size:.62rem;color:#687168;font-weight:800}.hm-builder__head strong{display:block;margin-top:3px;font-size:1.02rem}.hm-builder__head span{display:block;margin-top:5px;font-size:.73rem;color:#687168}.hm-builder__from{font-size:1rem;font-weight:850;white-space:nowrap;color:var(--teal-deep)}
.hm-builder__controls,.hm-date-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px 18px 0}.hm-date-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:12px}.hm-builder label{font-size:.7rem;font-weight:800;color:#5f695f}.hm-builder select,.hm-builder input,.hm-builder textarea{width:100%;margin-top:6px;border:1px solid rgba(39,58,47,.14);border-radius:11px;background:rgba(255,255,255,.78);padding:10px 11px;font:inherit;color:var(--ink)}.hm-stepper{display:grid;grid-template-columns:36px 1fr 36px;gap:5px;margin-top:6px}.hm-stepper button{border:1px solid rgba(39,58,47,.14);background:rgba(255,255,255,.72);border-radius:10px;font-size:1.1rem;cursor:pointer}.hm-stepper input{margin-top:0;text-align:center}.hm-children-note{padding:9px 18px 0;font-size:.68rem;color:#737b74}.hm-live-summary{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px;margin:16px 18px;padding:13px;border-radius:14px;background:var(--ink);color:#fff}.hm-live-summary div{padding-right:10px;border-right:1px solid rgba(255,255,255,.12)}.hm-live-summary div:last-child{border:0}.hm-live-summary small{display:block;font-size:.58rem;text-transform:uppercase;color:rgba(255,255,255,.65);letter-spacing:.04em}.hm-live-summary strong{display:block;margin-top:4px;color:var(--lime);font-size:.95rem}.hm-builder .hotel-booking-form{margin:0;padding:0 18px 18px}.hm-stay-card{padding:15px;border-radius:15px;background:rgba(255,255,255,.5);border:1px solid rgba(39,58,47,.1)}.hm-stay-card>strong{display:block}.hm-stay-card>span{display:block;margin-top:4px;font-size:.72rem;color:#687168}.hm-stay-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.hm-stay-grid div{padding:12px;border-radius:12px;background:rgba(237,243,236,.62)}.hm-stay-grid b,.hm-stay-grid small{display:block}.hm-stay-grid b{font-size:.75rem}.hm-stay-grid small{margin-top:4px;font-size:.68rem;color:#667067}
@media(max-width:760px){.hm-packages{grid-template-columns:1fr}.hm-builder__head{flex-direction:column}.hm-builder__from{white-space:normal}.hm-builder__controls{grid-template-columns:1fr}.hm-date-grid{grid-template-columns:1fr}.hm-live-summary{grid-template-columns:1fr 1fr}.hm-live-summary div:last-child{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:9px}.hm-stay-grid{grid-template-columns:1fr}.hotel-card--henry{background:rgba(246,242,225,.72)}}

/* ============ HOTEL UI · MAR + TRANSPARENCIA ============ */
#hm-modal.modal-overlay{
  background:rgba(7,43,53,.28)!important;
  backdrop-filter:blur(7px) saturate(115%);
  -webkit-backdrop-filter:blur(7px) saturate(115%);
}
#hm-modal .modal{
  background:linear-gradient(145deg,rgba(225,246,247,.82),rgba(201,232,235,.72))!important;
  border:1px solid rgba(255,255,255,.5);
  box-shadow:0 30px 100px rgba(4,39,48,.28);
  backdrop-filter:blur(20px) saturate(125%);
  -webkit-backdrop-filter:blur(20px) saturate(125%);
}
#hm-modal .modal__body,
#hm-modal .hotel-modal__details,
#hm-modal .hotel-rates,
#hm-modal .hm-builder,
#hm-modal .hm-stay-card,
#hm-modal .hm-package,
#hm-modal .hotel-rate-group{
  background:rgba(255,255,255,.34);
  border-color:rgba(24,103,113,.13);
}
#hm-modal .hotel-modal__details{border-radius:18px;padding:20px;}
#hm-modal .hotel-modal__chip{background:rgba(218,243,245,.58);border-color:rgba(30,118,128,.16);color:#24535b;}
#hm-modal .hm-tabs .hm-tab{background:rgba(255,255,255,.38);border-color:rgba(30,118,128,.18);color:#24535b;}
#hm-modal .hm-tabs .hm-tab:hover,
#hm-modal .hm-tabs .hm-tab.is-active{background:#176c78;color:#fff;border-color:#176c78;}
#hm-modal .hm-package{background:rgba(255,255,255,.38);}
#hm-modal .hm-package:hover{background:rgba(255,255,255,.55);}
#hm-modal .hm-package.is-selected{background:rgba(214,243,245,.65);border-color:#17818b;}
#hm-modal .hm-package__date{color:#123f48;}
#hm-modal .hm-package>strong,
#hm-modal .hm-package>i,
#hm-modal .hm-builder__from{color:#176c78;}
#hm-modal .hm-builder{background:rgba(238,249,250,.38);}
#hm-modal .hm-builder__head{background:rgba(210,239,242,.48);border-color:rgba(24,103,113,.12);}
#hm-modal .hm-builder select,
#hm-modal .hm-builder input,
#hm-modal .hm-builder textarea{
  background:rgba(255,255,255,.72);
  border-color:rgba(24,103,113,.18);
}
#hm-modal .hm-builder select:focus,
#hm-modal .hm-builder input:focus,
#hm-modal .hm-builder textarea:focus{outline:2px solid rgba(23,129,139,.2);border-color:#17818b;}
#hm-modal .hm-people-status{
  margin:12px 18px 0;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(205,239,242,.48);
  border:1px solid rgba(23,129,139,.13);
  color:#24535b;
  font-size:.72rem;
  font-weight:700;
}
#hm-modal .hm-people-status:empty{display:none;}
#hm-modal .hm-stay-grid div{background:rgba(211,239,242,.45);}
#hm-modal .hotel-estimate{background:rgba(8,58,70,.88);}
#hm-modal .hotel-estimate__label{color:#b9e7eb;}
#hm-modal .hotel-estimate__value{color:#d8f4f5;}
#hm-modal .btn.btn--primary{background:#176c78;border-color:#176c78;}
#hm-modal .btn.btn--primary:hover{background:#0e5964;border-color:#0e5964;}
#hm-modal .modal__close{background:rgba(255,255,255,.62);color:#155563;border-color:rgba(21,85,99,.15);}
#hm-modal .modal__close:hover{background:rgba(255,255,255,.9);}
#hm-modal .hotel-rate-group__head{background:rgba(210,239,242,.46);}
#hm-modal .hotel-rate-table th,#hm-modal .hotel-rate-table td{border-color:rgba(24,103,113,.1);}
#hm-modal .hm-builder__controls label{color:#315c63;}
#hm-modal .hm-children-note{color:#567178;}
#hm-modal .hm-live-summary{background:rgba(8,58,70,.9);}
#hm-modal .hm-live-summary strong{color:#d8f4f5;}
#hm-modal .hm-live-summary small{color:rgba(232,249,250,.7);}
#hm-modal .hm-notes{color:#315c63;}
#hm-modal .hm-notes li::marker{color:#17818b;}
#hm-modal .hm-builder select:disabled{opacity:.72;cursor:not-allowed;background:rgba(235,242,243,.55);}
#hm-modal .hm-package small{color:#587178;}

@media(max-width:760px){
  #hm-modal .hotel-modal__details{padding:15px;}
  #hm-modal .hm-builder__controls{grid-template-columns:1fr 1fr;}
  #hm-modal .hm-builder__controls label:last-child{grid-column:1/-1;}
}
/* Hotel card: translucent sea-glass treatment */
.hotel-card--henry{
  background:linear-gradient(145deg,rgba(221,243,245,.68),rgba(190,225,229,.52))!important;
  border-color:rgba(25,111,122,.14)!important;
  backdrop-filter:blur(12px) saturate(115%);
  -webkit-backdrop-filter:blur(12px) saturate(115%);
}
.hotel-card--henry .hotel-card__content{
  background:rgba(218,241,243,.38)!important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.hotel-card--henry .hotel-card__facts span{
  background:rgba(239,250,251,.45);
  border-color:rgba(30,118,128,.14);
  color:#285860;
}


/* ============ UNIFIED HOTEL SEA-GLASS UI ============ */
#hotel-modal-custom .modal,#hm-modal .modal,#pb-modal .modal{background:linear-gradient(145deg,rgba(224,246,248,.78),rgba(191,229,233,.66))!important;border:1px solid rgba(255,255,255,.52);backdrop-filter:blur(20px) saturate(125%);-webkit-backdrop-filter:blur(20px) saturate(125%);box-shadow:0 30px 100px rgba(4,39,48,.28)}
#hotel-modal-custom .modal-overlay,#hm-modal .modal-overlay,#pb-modal .modal-overlay{background:rgba(7,43,53,.25)!important}
.hotel-unified-modal-body{background:rgba(255,255,255,.26)!important;border-color:rgba(24,103,113,.12)!important}
.hotel-unified-builder{background:rgba(235,249,250,.34);border:1px solid rgba(24,103,113,.13);border-radius:20px;padding:0 0 18px;overflow:hidden}
.hotel-unified-head{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 20px;background:rgba(205,239,242,.44);border-bottom:1px solid rgba(24,103,113,.12)}
.hotel-unified-head small{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.65rem;color:#47727a;font-weight:800}
.hotel-unified-head strong{display:block;color:#123f48;font-size:1.02rem;margin:4px 0}
.hotel-unified-head span{display:block;color:#46636a;font-size:.74rem}
.hotel-unified-from{font-weight:900;color:#176c78;white-space:nowrap}
.hotel-unified-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 18px 0}
.hotel-unified-controls label{font-size:.7rem;font-weight:800;color:#285860}
.hotel-unified-controls select{display:block;width:100%;margin-top:6px;padding:11px 12px;border-radius:12px;border:1px solid rgba(24,103,113,.18);background:rgba(255,255,255,.74);color:#183e45}
.hotel-people-status{margin:12px 18px 0;padding:10px 12px;border-radius:12px;background:rgba(205,239,242,.48);border:1px solid rgba(23,129,139,.13);color:#24535b;font-size:.72rem;font-weight:700}
.hotel-live-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 18px}
.hotel-live-summary>div{padding:12px;border-radius:14px;background:rgba(255,255,255,.42);border:1px solid rgba(24,103,113,.10)}
.hotel-live-summary small{display:block;font-size:.64rem;text-transform:uppercase;color:#5b7378;font-weight:800}
.hotel-live-summary strong{display:block;margin-top:4px;color:#176c78;font-size:.94rem}
#hotel-modal-custom .hotel-estimate,#pb-modal .hotel-estimate{background:rgba(8,58,70,.82);border-color:rgba(255,255,255,.15)}
#hotel-modal-custom .btn.btn--primary,#pb-modal .btn.btn--primary{background:#177c88;border-color:#177c88}
.hotel-card--paradise{background:linear-gradient(145deg,rgba(221,243,245,.68),rgba(190,225,229,.52))!important;border-color:rgba(25,111,122,.14)!important;backdrop-filter:blur(12px) saturate(115%);-webkit-backdrop-filter:blur(12px) saturate(115%)}
.hotel-card--paradise .hotel-card__content{background:rgba(218,241,243,.38)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hotel-card--paradise .hotel-card__facts span{background:rgba(239,250,251,.45);border-color:rgba(30,118,128,.14);color:#285860}
#pb-modal .hotel-modal__details,#pb-modal .hotel-rates,#pb-modal .hotel-rate-group{background:rgba(255,255,255,.34);border-color:rgba(24,103,113,.13)}
.pb-category-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:14px 18px 0}
.pb-tab{border:1px solid rgba(30,118,128,.18);background:rgba(255,255,255,.38);color:#24535b;border-radius:11px;padding:10px 8px;font-size:.66rem;font-weight:800;cursor:pointer}
.pb-tab.is-active,.pb-tab:hover{background:#176c78;color:#fff;border-color:#176c78}
.pb-rate-note{margin:0 18px 14px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.4);border:1px solid rgba(24,103,113,.10);color:#536b70;font-size:.7rem;line-height:1.45}
@media(max-width:760px){.hotel-unified-head{display:block}.hotel-unified-from{margin-top:10px}.hotel-unified-controls{grid-template-columns:1fr}.hotel-live-summary{grid-template-columns:1fr}.pb-category-tabs{grid-template-columns:1fr 1fr}}

@media(min-width:1100px){.hotels__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ============ MAYAN PRINCESS · SEA GLASS ============ */
.hotel-card--mayan{background:linear-gradient(145deg,rgba(221,243,245,.68),rgba(190,225,229,.52))!important;border-color:rgba(25,111,122,.14)!important;backdrop-filter:blur(12px) saturate(115%);-webkit-backdrop-filter:blur(12px) saturate(115%)}
.hotel-card--mayan .hotel-card__content{background:rgba(218,241,243,.38)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hotel-card--mayan .hotel-card__facts span{background:rgba(239,250,251,.45);border-color:rgba(30,118,128,.14);color:#285860}
.hotel-card--mayan::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.12),transparent 45%,rgba(23,129,139,.06));z-index:0}
#mayan-modal.modal-overlay,
#sirenas-modal.modal-overlay{background:rgba(7,43,53,.25)!important;backdrop-filter:blur(7px) saturate(115%);-webkit-backdrop-filter:blur(7px) saturate(115%)}
#mayan-modal .modal,
#sirenas-modal .modal{background:linear-gradient(145deg,rgba(224,246,248,.78),rgba(191,229,233,.66))!important;border:1px solid rgba(255,255,255,.52);backdrop-filter:blur(20px) saturate(125%);-webkit-backdrop-filter:blur(20px) saturate(125%);box-shadow:0 30px 100px rgba(4,39,48,.28)}
#mayan-modal .hotel-modal__details,
#sirenas-modal .hotel-modal__details,#mayan-modal .hotel-unified-modal-body,#sirenas-modal .hotel-unified-modal-body,#mayan-modal .hotel-unified-builder,#sirenas-modal .hotel-unified-builder{background:rgba(255,255,255,.28);border-color:rgba(24,103,113,.13)}
#mayan-modal .hotel-modal__chip,
#sirenas-modal .hotel-modal__chip{background:rgba(218,243,245,.58);border-color:rgba(30,118,128,.16);color:#24535b}
.mp-why{margin-top:20px;padding:15px 16px;border:1px solid rgba(255,255,255,.55);border-radius:15px;background:rgba(255,255,255,.34)}
.mp-why strong{display:block;color:#123f48;font-size:.86rem}.mp-why p{margin:7px 0 0;color:#48636a;font-size:.75rem;line-height:1.55}
.mp-plan-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:14px 18px 0}
.mp-plan-tab{border:1px solid rgba(30,118,128,.18);background:rgba(255,255,255,.38);color:#24535b;border-radius:11px;padding:10px 8px;font-size:.64rem;font-weight:800;cursor:pointer;transition:.2s}
.mp-plan-tab.is-active,.mp-plan-tab:hover{background:#176c78;color:#fff;border-color:#176c78}
.mp-builder{background:rgba(235,249,250,.34)!important;border:1px solid rgba(24,103,113,.13);border-radius:20px;overflow:hidden}
.mp-controls{grid-template-columns:repeat(4,minmax(0,1fr))}
.mp-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 18px 0}.mp-date-grid label{font-size:.7rem;font-weight:800;color:#285860}.mp-date-grid input{display:block;width:100%;margin-top:6px;padding:11px 12px;border-radius:12px;border:1px solid rgba(24,103,113,.18);background:rgba(255,255,255,.72);color:#183e45}
.mp-rate-note{margin:0 18px 14px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.4);border:1px solid rgba(24,103,113,.1);color:#536b70;font-size:.7rem;line-height:1.45}
#mayan-modal .hotel-estimate,
#sirenas-modal .hotel-estimate{background:rgba(8,58,70,.84)}
#mayan-modal .hotel-estimate__label,
#sirenas-modal .hotel-estimate__label{color:#b9e7eb}.mayan-modal .hotel-estimate__value{color:#d8f4f5}
#mayan-modal .btn.btn--primary,
#sirenas-modal .btn.btn--primary{background:#177c88;border-color:#177c88}
#mayan-modal .modal__close,
#sirenas-modal .modal__close{background:rgba(255,255,255,.62);color:#155563;border-color:rgba(21,85,99,.15)}
@media(max-width:1100px){.mp-plan-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.mp-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.mp-plan-tabs{grid-template-columns:1fr 1fr}.mp-controls{grid-template-columns:1fr}.mp-date-grid{grid-template-columns:1fr}.hotel-card--mayan{background:rgba(221,243,245,.62)!important}}


/* ===== FINAL MEDIA POLISH: MACA Moments / Diving / TripAdvisor ===== */

/* Keep supplied video proportions: fill the section without stretching. */
.momentos--video .momentos__video,
.diving-section__video{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
  backface-visibility:hidden;
  transform:translateZ(0);
}

/* MACA Moments now uses the supplied video at its native 910×512 ratio. */
.momentos--video{
  min-height:clamp(680px, 78vh, 900px);
}

/* Ensure the diving video remains visible even when motion/autoplay is unavailable. */
.diving-section__video{
  z-index:-3;
  pointer-events:none;
}

/* ===== USER-SUPPLIED BACKGROUND — WAIVER / CANCELLATIONS / CHANGES ===== */
.policies{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:transparent!important;
}
.policies::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  background-image:url('../img/waiver-roatan-mar.jpg');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  transform:translateZ(0);
}
.policies::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:linear-gradient(180deg,rgba(5,27,33,.18),rgba(5,27,33,.30));
  pointer-events:none;
}
/* Keep the supplied square photo crisp; never stretch it as an element. */
.policies .section-head,
.policies .accordion,
.policies .change-request{position:relative;z-index:1}
.policies .section-head{background:rgba(255,255,255,.66)!important;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.policies .accordion__item,
.policies .change-request{background:rgba(255,255,255,.62)!important;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
@media(max-width:700px){
  .policies::before{background-position:center center}
  .policies .section-head,.policies .accordion__item,.policies .change-request{background:rgba(255,255,255,.70)!important}
}

/* FINAL FIX: keep the Moments MACA video above the section background so it is visibly rendered. */
.momentos--video{background:var(--ink)!important;}
.momentos--video .momentos__video{z-index:0!important;visibility:visible!important;opacity:1!important;}
.momentos--video .momentos__video-overlay{z-index:1!important;background:linear-gradient(180deg,rgba(5,12,10,.20),rgba(5,12,10,.36))!important;}
.momentos--video .section-head,.momentos--video .momentos__grid,.momentos--video .momentos__social{z-index:2!important;}


/* ===== FINAL USER REQUEST: HOTEL MODAL CLOSE / WAIVER PHOTO ===== */
/* Keep every hotel modal above the fixed navigation, especially on mobile. */
#hotel-modal-custom.modal-overlay,
#hm-modal.modal-overlay,
#pb-modal.modal-overlay,
#mayan-modal.modal-overlay,
#sirenas-modal.modal-overlay{z-index:11000!important;padding:92px 18px 28px!important;}
#hotel-modal-custom .modal,
#hm-modal .modal,
#pb-modal .modal,
#mayan-modal .modal,
#sirenas-modal .modal{position:relative!important;}
#hotel-modal-custom .modal__close,
#hm-modal .modal__close,
#pb-modal .modal__close,
#mayan-modal .modal__close,
#sirenas-modal .modal__close{top:14px!important;right:14px!important;z-index:40!important;width:44px!important;height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:0 8px 25px rgba(0,0,0,.16);}
/* The supplied photo is the only visual background of the policies/waiver area. */
.reviews-waiver-journey{background:transparent!important;}
.policies::before{background-image:url('../img/waiver-roatan-mar.jpg')!important;background-size:cover!important;background-position:center 42%!important;}
@media(max-width:700px){
  #hotel-modal-custom.modal-overlay,
  #hm-modal.modal-overlay,
  #pb-modal.modal-overlay,
  #mayan-modal.modal-overlay,
  #sirenas-modal.modal-overlay{padding:98px 12px 22px!important;}
  #hotel-modal-custom .modal__close,
  #hm-modal .modal__close,
  #pb-modal .modal__close,
  #mayan-modal .modal__close,
  #sirenas-modal .modal__close{top:12px!important;right:12px!important;width:42px!important;height:42px!important;}
  .policies::before{background-position:center center!important;}
}
/* The new Moments background video remains proportional and fully visible. */
.momentos--video .momentos__video{object-fit:cover!important;object-position:center!important;}


/* Final: remove Moments MACA background video; use a static image instead. */
.momentos--static{position:relative;isolation:isolate;overflow:hidden;background:var(--ink)!important;}
.momentos--static .momentos__static-bg{display:none!important;}
.momentos--static > *{position:relative;z-index:1;}

/* ===== FINAL POLISH: transparent policies + glass forms + sea video ===== */
.reviews-waiver-journey{position:relative;isolation:isolate;overflow:clip;background:transparent!important;}
.reviews-waiver-journey__video-layer{position:absolute;inset:0;z-index:-3;overflow:hidden;pointer-events:none;background:#12282d;}
.reviews-waiver-journey__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block;backface-visibility:hidden;transform:translateZ(0);}
.reviews-waiver-journey__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,25,29,.18),rgba(8,25,29,.34));pointer-events:none;}
.reviews-waiver-journey > section{position:relative;z-index:1;}

/* Policy triggers: glass buttons rather than white cards. */
.policies .accordion{display:grid;gap:10px;}
.policies .accordion__item{background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;overflow:visible;}
.policies .accordion__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;border:1px solid rgba(255,255,255,.42)!important;border-radius:16px;background:rgba(7,34,40,.24)!important;color:#fff!important;box-shadow:0 10px 28px rgba(3,20,24,.10),inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(9px) saturate(120%);-webkit-backdrop-filter:blur(9px) saturate(120%);transition:background .25s ease,border-color .25s ease,transform .25s ease;}
.policies .accordion__trigger:hover,.policies .accordion__item.is-open .accordion__trigger{background:rgba(7,34,40,.38)!important;border-color:rgba(255,255,255,.62)!important;transform:translateY(-1px);}
.policies .accordion__trigger .plus{flex:0 0 34px;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.62);background:rgba(255,255,255,.10);position:relative;}
.policies .accordion__trigger .plus::before,.policies .accordion__trigger .plus::after{background:#fff!important;}
.policies .accordion__panel{background:transparent!important;}
.policies .accordion__panel-inner{margin-top:8px;padding:22px;border:1px solid rgba(255,255,255,.28);border-radius:16px;background:rgba(7,34,40,.26)!important;color:#f4fbfb;box-shadow:0 18px 45px rgba(3,20,24,.12),inset 0 1px 0 rgba(255,255,255,.10);backdrop-filter:blur(13px) saturate(115%);-webkit-backdrop-filter:blur(13px) saturate(115%);}
.policies .accordion__panel-inner p{color:rgba(247,252,252,.92);}

/* Policies heading: transparent glass, letting the supplied video breathe through. */
.policies .section-head{background:rgba(7,34,40,.20)!important;border:1px solid rgba(255,255,255,.30);box-shadow:0 18px 50px rgba(3,20,24,.10),inset 0 1px 0 rgba(255,255,255,.10);backdrop-filter:blur(10px) saturate(115%);-webkit-backdrop-filter:blur(10px) saturate(115%);color:#fff;}
.policies .section-head p{color:rgba(247,252,252,.88);}
.policies .section-head__tag{color:#c6e62f;}

/* Change-request form: modern translucent glass. */
.policies .change-request{background:rgba(7,34,40,.18)!important;border:1px solid rgba(255,255,255,.28)!important;border-radius:24px;padding:28px;box-shadow:0 22px 65px rgba(3,20,24,.14),inset 0 1px 0 rgba(255,255,255,.10);backdrop-filter:blur(10px) saturate(115%);-webkit-backdrop-filter:blur(10px) saturate(115%);}
.policies .change-request__intro h3,.policies .change-request__intro p{color:#fff;}
.policies .booking-form{background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.26)!important;box-shadow:none!important;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);}
.policies .booking-form label{color:#fff;}
.policies .booking-form input,.policies .booking-form select,.policies .booking-form textarea{background:rgba(255,255,255,.14)!important;border:1px solid rgba(255,255,255,.34)!important;color:#fff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);}
.policies .booking-form input::placeholder,.policies .booking-form textarea::placeholder{color:rgba(255,255,255,.68);}
.policies .booking-form select option{color:#17383d;background:#eef8f8;}
.policies .form-note{color:rgba(255,255,255,.76);}

/* Footer / final information uses the same sea-and-sailboats photo. */
.footer{position:relative;isolation:isolate;background:transparent!important;overflow:hidden;}
.footer::before{content:"";position:absolute;inset:0;z-index:-3;background:url('../img/waiver-roatan-mar.jpg') center 42%/cover no-repeat;transform:translateZ(0);}
.footer::after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(5,22,27,.72),rgba(5,22,27,.80));pointer-events:none;}
.footer__top,.footer__bottom{position:relative;z-index:1;background:transparent!important;}

/* Hotel and policy overlays stay below the navigation but above all page content. */
#hotel-modal-custom.modal-overlay,#hm-modal.modal-overlay,#pb-modal.modal-overlay,#mayan-modal.modal-overlay,#sirenas-modal.modal-overlay{z-index:11000!important;}

@media(max-width:700px){
  .reviews-waiver-journey__video{object-position:center center;}
  .policies .accordion__trigger{padding:16px 17px;border-radius:14px;font-size:.96rem;}
  .policies .accordion__panel-inner{padding:18px;border-radius:14px;}
  .policies .change-request{padding:18px;border-radius:20px;}
  .policies .booking-form{padding:16px;}
}

/* ===== SOBRE MACA / BOAT STORY: one continuous cinematic background ===== */
.boat-journey{position:relative;isolation:isolate;overflow:clip;background:transparent!important;}
.boat-journey__video-layer{position:sticky;top:0;height:100svh;min-height:600px;margin-bottom:-100svh;z-index:0;pointer-events:none;overflow:hidden;background:#12343b;}
.boat-journey__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block;}
.boat-journey__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,20,24,.42),rgba(4,20,24,.24) 45%,rgba(4,20,24,.42));}
.boat-journey > .intro,
.boat-journey > .cinematic-scroll,
.boat-journey > .transfer-note{position:relative;z-index:1;}
.boat-journey > .intro{background:transparent!important;color:#fff;padding-top:clamp(72px,10vw,120px);padding-bottom:clamp(70px,9vw,110px);}
.boat-journey > .intro .intro__tag{color:#c6e62f;}
.boat-journey > .intro h2{color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.20);}
.boat-journey > .intro .intro__body{color:rgba(255,255,255,.92);}
.boat-journey > .intro .intro__stat b{color:#d8f3f4;text-shadow:0 2px 14px rgba(0,0,0,.18);}
.boat-journey > .intro .intro__stat span{color:rgba(255,255,255,.82);}
.boat-journey .cinematic-scroll--autoplay{background:transparent!important;}
.boat-journey .transfer-note{background:rgba(4,20,24,.20)!important;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);}
@media(max-width:700px){
  .boat-journey__video{object-position:center center;}
  .boat-journey > .intro{padding-top:70px;padding-bottom:70px;}
}

/* ===== FINAL: USER-SUPPLIED BACKGROUND FOR WAIVER / CHANGES / CANCELLATIONS ===== */
.policies{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:transparent!important;
}
.policies::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1!important;
  background-image:url('../img/waiver-cambios-cancelacion-bg.jpg')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  transform:translateZ(0);
}
.policies::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0!important;
  background:linear-gradient(180deg,rgba(5,27,33,.16),rgba(5,27,33,.30))!important;
  pointer-events:none;
}
.policies > *{position:relative;z-index:1;}

@media(max-width:700px){
  .policies::before{background-position:center center!important;}
}

/* ===== FINAL: SHARED WAIVER / REVIEWS BACKGROUND ===== */
.reviews-waiver-journey{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background-image:url('../img/waiver-cambios-cancelacion-bg.jpg')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}
/* The supplied boat photo is the single background for both TripAdvisor reviews and policies. */
.reviews-waiver-journey__video-layer{
  display:none!important;
}
.reviews-waiver-journey::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:rgba(5,27,33,.16);
  pointer-events:none;
}
.reviews-waiver-journey > section,
.reviews-waiver-journey .reviews,
.reviews-waiver-journey .policies{
  position:relative;
  z-index:1;
  background:transparent!important;
}
.reviews-waiver-journey .reviews__widget,
.reviews-waiver-journey .accordion__item,
.reviews-waiver-journey .change-request,
.reviews-waiver-journey .section-head{
  background:rgba(255,255,255,.78)!important;
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
@media(max-width:700px){
  .reviews-waiver-journey{
    background-position:center center!important;
  }
  .reviews-waiver-journey .reviews__widget,
  .reviews-waiver-journey .accordion__item,
  .reviews-waiver-journey .change-request,
  .reviews-waiver-journey .section-head{
    background:rgba(255,255,255,.84)!important;
  }
}

/* ===== FINAL USER REQUEST: BOAT PHOTO MOVED TO MACA MOMENTS + SOCIALS ===== */
/* Remove the supplied boat photo from TripAdvisor reviews and waiver/cancellations. */
.reviews-waiver-journey{
  background:transparent!important;
  background-image:none!important;
}
.reviews-waiver-journey::before{
  display:none!important;
  background:none!important;
}
.reviews-waiver-journey .reviews,
.reviews-waiver-journey .policies,
.reviews-waiver-journey .reviews__widget,
.reviews-waiver-journey .accordion__item,
.reviews-waiver-journey .change-request,
.reviews-waiver-journey .section-head{
  background-image:none!important;
}
.policies::before,
.policies::after{
  display:none!important;
  background:none!important;
}

/* Use the supplied boat photo for the complete Momentos MACA + social area. */
.momentos#momentos{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background-image:url('../img/maca-moments-social-bg.jpg')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}
.momentos#momentos::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,rgba(5,27,33,.18),rgba(5,27,33,.30))!important;
  pointer-events:none;
}
.momentos#momentos > *{position:relative;z-index:1;}
@media(max-width:700px){
  .momentos#momentos{background-position:center center!important;}
}


/* ===== FINAL USER REQUEST: GLASS MOMENTS + BEFORE-RESERVING VIDEO ===== */
/* Momentos MACA: let the boat/ocean background breathe through the photos. */
.momentos#momentos .momentos__grid img{
  opacity:.68!important;
  background:rgba(255,255,255,.06)!important;
  border:1px solid rgba(255,255,255,.24)!important;
  box-shadow:0 14px 34px rgba(0,0,0,.18)!important;
  transition:opacity .35s ease,transform .45s ease,filter .35s ease,box-shadow .35s ease!important;
}
.momentos#momentos .momentos__grid img:hover{
  opacity:.84!important;
  filter:saturate(1.04) brightness(1.04)!important;
}

/* The new portrait DJI video is the background for TripAdvisor + Antes de reservar. */
.reviews-waiver-journey{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:transparent!important;
}
.reviews-waiver-journey__video-layer{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:-3!important;
  overflow:hidden!important;
  pointer-events:none!important;
  background:#0b252a!important;
}
.reviews-waiver-journey__video{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  display:block!important;
}
/* Dark enough to keep white typography readable even over bright water. */
.reviews-waiver-journey__shade{
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(180deg,rgba(4,18,22,.50),rgba(4,18,22,.42) 42%,rgba(4,18,22,.58))!important;
  pointer-events:none!important;
}
.reviews-waiver-journey::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:-2!important;
  background:rgba(3,19,23,.12)!important;
  pointer-events:none!important;
}
.reviews-waiver-journey > section,
.reviews-waiver-journey .reviews,
.reviews-waiver-journey .policies{
  position:relative!important;
  z-index:1!important;
  background:transparent!important;
}

/* Glass surfaces: no solid white cards over the video. */
.reviews-waiver-journey .section-head,
.reviews-waiver-journey .reviews__widget,
.reviews-waiver-journey .accordion__item,
.reviews-waiver-journey .change-request,
.reviews-waiver-journey .booking-form{
  background:rgba(5,31,36,.28)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:0 18px 55px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.12)!important;
  backdrop-filter:blur(12px) saturate(120%)!important;
  -webkit-backdrop-filter:blur(12px) saturate(120%)!important;
}
.reviews-waiver-journey .section-head{
  padding:28px!important;
  border-radius:22px!important;
}
.reviews-waiver-journey .section-head h2,
.reviews-waiver-journey .section-head p,
.reviews-waiver-journey .section-head__tag,
.reviews-waiver-journey .reviews__widget p,
.reviews-waiver-journey .change-request__intro h3,
.reviews-waiver-journey .change-request__intro p{
  color:#fff!important;
  text-shadow:0 2px 12px rgba(0,0,0,.55)!important;
}
.reviews-waiver-journey .reviews__widget{color:#fff!important;}

/* All action buttons in this area are transparent crystal/glass. */
.reviews-waiver-journey .btn,
.reviews-waiver-journey .btn--dark,
.reviews-waiver-journey .btn--primary{
  background:rgba(255,255,255,.10)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.42)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.16)!important;
  backdrop-filter:blur(10px) saturate(120%)!important;
  -webkit-backdrop-filter:blur(10px) saturate(120%)!important;
  text-shadow:0 2px 8px rgba(0,0,0,.5)!important;
}
.reviews-waiver-journey .btn:hover,
.reviews-waiver-journey .btn--dark:hover,
.reviews-waiver-journey .btn--primary:hover{
  background:rgba(255,255,255,.18)!important;
  border-color:rgba(255,255,255,.70)!important;
  color:#fff!important;
}

/* Accordion stays glass and readable. */
.reviews-waiver-journey .policies .accordion__trigger{
  background:rgba(5,31,36,.26)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.34)!important;
  backdrop-filter:blur(10px) saturate(120%)!important;
  -webkit-backdrop-filter:blur(10px) saturate(120%)!important;
  text-shadow:0 2px 9px rgba(0,0,0,.55)!important;
}
.reviews-waiver-journey .policies .accordion__panel-inner{
  background:rgba(5,31,36,.30)!important;
  color:#f7fbfb!important;
  border-color:rgba(255,255,255,.24)!important;
}
.reviews-waiver-journey .policies .accordion__panel-inner p,
.reviews-waiver-journey .policies .accordion__panel-inner li,
.reviews-waiver-journey .policies .accordion__panel-inner strong{
  color:#f7fbfb!important;
  text-shadow:0 1px 7px rgba(0,0,0,.45)!important;
}

/* Glass form controls instead of opaque white fields. */
.reviews-waiver-journey .booking-form label{color:#fff!important;text-shadow:0 1px 7px rgba(0,0,0,.45)!important;}
.reviews-waiver-journey .booking-form input,
.reviews-waiver-journey .booking-form select,
.reviews-waiver-journey .booking-form textarea{
  background:rgba(255,255,255,.11)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.34)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;
}
.reviews-waiver-journey .booking-form input::placeholder,
.reviews-waiver-journey .booking-form textarea::placeholder{color:rgba(255,255,255,.72)!important;}
.reviews-waiver-journey .booking-form select option{color:#17383d;background:#eef8f8;}
.reviews-waiver-journey .form-note{color:rgba(255,255,255,.76)!important;}

@media(max-width:700px){
  .reviews-waiver-journey .section-head{padding:20px!important;border-radius:16px!important;}
  .reviews-waiver-journey__video{object-position:center center!important;}
  .reviews-waiver-journey__shade{background:linear-gradient(180deg,rgba(4,18,22,.56),rgba(4,18,22,.46) 45%,rgba(4,18,22,.62))!important;}
  .momentos#momentos .momentos__grid img{opacity:.97!important;filter:brightness(.94) saturate(1.04) contrast(1.02)!important;}
}

/* ===== 2026-09-05: continuous cinematic journey + readability pass ===== */
.cinematic-journey{
  position:relative;
  isolation:isolate;
  overflow:clip;
  background:#0b252a;
}
.cinematic-journey__video-layer{
  position:sticky;
  top:0;
  height:100svh;
  min-height:600px;
  margin-bottom:-100svh;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  background:#0b252a;
}
.cinematic-journey__video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
  transform:translate3d(0,0,0) scale(1.01);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  contain:paint;
}
.cinematic-journey__shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(3,18,22,.62) 0%,rgba(3,18,22,.34) 28%,rgba(3,18,22,.48) 66%,rgba(3,18,22,.68) 100%),
    linear-gradient(90deg,rgba(3,18,22,.42),rgba(3,18,22,.16) 50%,rgba(3,18,22,.38));
  pointer-events:none;
}
.cinematic-journey > .boat-journey,
.cinematic-journey > .activities{
  position:relative;
  z-index:1;
}
.cinematic-journey .boat-journey,
.cinematic-journey .activities{
  background:transparent!important;
}
.cinematic-journey .boat-journey__video-layer{display:none!important;}
.cinematic-journey .boat-journey > .intro{
  background:transparent!important;
  color:#fff;
}
.cinematic-journey .boat-journey > .intro h2,
.cinematic-journey .boat-journey > .intro .intro__body,
.cinematic-journey .boat-journey > .intro .intro__stat span{
  text-shadow:0 3px 22px rgba(0,0,0,.62);
}
.cinematic-journey .boat-journey > .intro .intro__body{color:rgba(255,255,255,.96);}
.cinematic-journey .boat-journey > .intro .intro__stat b{color:#e6f8f7;}
.cinematic-journey .boat-journey .cinematic-scroll--autoplay{background:transparent!important;}
.cinematic-journey .boat-journey .cinematic-scroll--autoplay .cinematic-scroll__copy{text-shadow:0 3px 24px rgba(0,0,0,.62);}
.cinematic-journey .boat-journey .transfer-note{
  background:rgba(4,20,24,.26)!important;
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  color:#fff;
  text-shadow:0 2px 18px rgba(0,0,0,.55);
}
.cinematic-journey .activities{
  color:#fff;
  padding-top:clamp(82px,9vw,110px);
  padding-bottom:clamp(90px,10vw,120px);
}
.cinematic-journey .activities .section-head{
  color:#fff;
  text-shadow:0 3px 24px rgba(0,0,0,.68);
}
.cinematic-journey .activities .section-head p{color:rgba(255,255,255,.93);}
.cinematic-journey .activities__grid .card{
  box-shadow:0 18px 45px rgba(0,0,0,.28);
}

/* Moments: show the photos first; let only a little of the cinematic background through. */
.momentos--video .momentos__grid img,
.momentos--static .momentos__grid img{
  opacity:.88!important;
  filter:brightness(.92) saturate(.98);
  box-shadow:0 16px 38px rgba(0,0,0,.30);
}
.momentos--video .momentos__grid img:hover,
.momentos--static .momentos__grid img:hover{
  opacity:.96!important;
  filter:brightness(.98) saturate(1.04);
}
.momentos--video .momentos__video-overlay{
  background:linear-gradient(180deg,rgba(5,12,10,.40),rgba(5,12,10,.58))!important;
}

/* Sobre MACA readability: stronger contrast without hiding the video. */
.boat-journey > .intro .intro__tag{ text-shadow:0 2px 14px rgba(0,0,0,.55); }
.boat-journey > .intro h2{ text-shadow:0 4px 26px rgba(0,0,0,.72)!important; }
.boat-journey > .intro .intro__body p{ text-shadow:0 3px 18px rgba(0,0,0,.68); }
.boat-journey > .intro .intro__stat b{ text-shadow:0 3px 18px rgba(0,0,0,.62)!important; }

/* Keep every cinematic video sharp and stable while filling its own viewport. */
.hero__video,
.cinematic-journey__video,
.boat-journey__video,
.cinematic-scroll__media video,
.diving-section__video,
.momentos--video .momentos__video,
.reviews-waiver-journey__video{
  image-rendering:auto;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

@media(max-width:700px){
  .cinematic-journey__video-layer{min-height:100svh;}
  .cinematic-journey__video{object-position:center center;}
  .cinematic-journey__shade{
    background:
      linear-gradient(180deg,rgba(3,18,22,.66),rgba(3,18,22,.42) 35%,rgba(3,18,22,.62) 100%);
  }
  .cinematic-journey .activities .section-head{padding-left:20px;padding-right:20px;}
}

/* ============================================================
   FINAL — ROATÁN BEACH VISUAL FOR INFORMATION / RESERVATIONS
   Inspired by the approved MACA visual: cinematic beach photo + glass cards.
   ============================================================ */
.reviews-waiver-journey{
  position:relative!important;
  isolation:isolate!important;
  overflow:clip!important;
  background:transparent!important;
}
.reviews-waiver-journey__video-layer{display:none!important;}
.reviews-waiver-journey::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  background-image:url('../img/maca-roatan-beach-6k-vertical.jpg');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  transform:translateZ(0);
}
.reviews-waiver-journey::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(180deg,rgba(4,25,29,.28) 0%,rgba(4,25,29,.16) 35%,rgba(4,25,29,.42) 100%),
    linear-gradient(90deg,rgba(4,25,29,.16),rgba(4,25,29,.04) 50%,rgba(4,25,29,.18));
  pointer-events:none;
}
.reviews-waiver-journey > section,
.reviews-waiver-journey .reviews,
.reviews-waiver-journey .policies{
  position:relative!important;
  z-index:1!important;
  background:transparent!important;
}
.reviews-waiver-journey .section-head,
.reviews-waiver-journey .reviews__widget,
.reviews-waiver-journey .accordion__item,
.reviews-waiver-journey .change-request,
.reviews-waiver-journey .policies__reservation-note{
  background:rgba(9,45,51,.28)!important;
  border:1px solid rgba(255,255,255,.34)!important;
  box-shadow:0 18px 55px rgba(2,18,21,.18),inset 0 1px 0 rgba(255,255,255,.13)!important;
  backdrop-filter:blur(12px) saturate(118%)!important;
  -webkit-backdrop-filter:blur(12px) saturate(118%)!important;
}
.reviews-waiver-journey .section-head{border-radius:24px;padding:30px 32px;}
.reviews-waiver-journey .section-head h2,
.reviews-waiver-journey .section-head p,
.reviews-waiver-journey .section-head__tag{color:#fff!important;text-shadow:0 2px 16px rgba(0,0,0,.24);}
.reviews-waiver-journey .section-head__tag{color:#d8f3f4!important;letter-spacing:.11em;text-transform:uppercase;font-size:.78rem;}
.reviews-waiver-journey .section-head p{color:rgba(255,255,255,.88)!important;}

.policies__quick-grid{
  max-width:var(--max);
  margin:36px auto 0;
  padding:0 var(--edge);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.policies__quick-card{
  min-height:300px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  justify-content:flex-start;
  padding:28px 22px 22px;
  border:1px solid rgba(255,255,255,.42);
  border-radius:20px;
  color:#fff!important;
  text-decoration:none!important;
  background:rgba(255,255,255,.11);
  box-shadow:0 18px 48px rgba(2,18,21,.18),inset 0 1px 0 rgba(255,255,255,.16);
  backdrop-filter:blur(10px) saturate(125%);
  -webkit-backdrop-filter:blur(10px) saturate(125%);
  transition:transform .3s ease,border-color .3s ease,background .3s ease,box-shadow .3s ease;
}
.policies__quick-card:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.16);box-shadow:0 24px 60px rgba(2,18,21,.24),inset 0 1px 0 rgba(255,255,255,.2)}
.policies__quick-icon{
  display:grid;place-items:center;width:58px;height:58px;margin-bottom:18px;border-radius:50%;
  border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.16);color:#fff;
  font-size:25px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 22px rgba(0,0,0,.12);
}
.policies__quick-card strong{font-size:1.18rem;line-height:1.15;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.24)}
.policies__quick-card > span:not(.policies__quick-icon){margin-top:13px;color:rgba(255,255,255,.88);font-size:.92rem;line-height:1.45;max-width:27ch}
.policies__quick-card b{margin-top:auto;padding:10px 17px;border:1px solid rgba(255,255,255,.48);border-radius:999px;background:rgba(255,255,255,.10);font-size:.8rem;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.policies__reservation-note{max-width:var(--max);margin:24px auto 0;padding:18px 22px;border-radius:18px;color:#fff;display:flex;gap:12px;align-items:center}
.policies__reservation-note strong{white-space:nowrap}.policies__reservation-note span{color:rgba(255,255,255,.84);font-size:.9rem}
.policies .accordion{margin-top:34px}
.policies .accordion__item{border-radius:16px!important;overflow:hidden!important}
.policies .accordion__trigger{background:rgba(7,34,40,.20)!important;border-color:rgba(255,255,255,.42)!important;color:#fff!important}
.policies .accordion__panel-inner{background:rgba(7,34,40,.24)!important;color:#fff!important;border-color:rgba(255,255,255,.28)!important}
.policies .accordion__panel-inner p{color:rgba(255,255,255,.91)!important}
.policies .change-request{border-radius:24px!important}
.policies .booking-form{background:rgba(255,255,255,.09)!important;border-color:rgba(255,255,255,.3)!important}
.policies .booking-form input,.policies .booking-form select,.policies .booking-form textarea{background:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.34)!important;color:#fff!important}
.policies .booking-form label,.policies .form-note{color:rgba(255,255,255,.88)!important}

@media(max-width:980px){
  .policies__quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .reviews-waiver-journey::before{background-position:center center}
  .reviews-waiver-journey .section-head{padding:22px 18px;border-radius:18px}
  .policies__quick-grid{grid-template-columns:1fr;padding-inline:20px;gap:12px}
  .policies__quick-card{min-height:245px;padding:23px 18px}
  .policies__reservation-note{margin-inline:20px;display:block;padding:18px}
  .policies__reservation-note strong,.policies__reservation-note span{display:block}
  .policies__reservation-note span{margin-top:7px}
}

/* ===== FINAL CORRECTION: ROATÁN BEACH PHOTO BEHIND INFORMATION CARDS ===== */
/* The high-resolution portrait Roatán beach image belongs specifically to the
   Reservations / Waiver / Changes & Cancellation / Manage Reservation area. */
.reviews-waiver-journey .policies#politicas{
  position:relative!important;
  z-index:2!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background-color:#12373b!important;
  background-image:url('../img/maca-roatan-beach-6k-vertical.jpg')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  background-attachment:scroll!important;
}
/* Keep the photo visible; do not let the old pseudo-background or the video
   layer cover it. */
.reviews-waiver-journey .policies#politicas::before{
  display:block!important;
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:-1!important;
  background:linear-gradient(180deg,rgba(4,24,29,.16),rgba(4,24,29,.26))!important;
  pointer-events:none!important;
}
.reviews-waiver-journey .policies#politicas::after{display:none!important;}
.reviews-waiver-journey .policies#politicas > *{position:relative!important;z-index:1!important;}

/* Glass cards, while allowing the beach to remain clearly visible behind them. */
.reviews-waiver-journey .policies#politicas .section-head,
.reviews-waiver-journey .policies#politicas .policies__reservation-note,
.reviews-waiver-journey .policies#politicas .accordion__trigger,
.reviews-waiver-journey .policies#politicas .accordion__panel-inner,
.reviews-waiver-journey .policies#politicas .change-request{
  background:rgba(7,34,40,.24)!important;
  border-color:rgba(255,255,255,.34)!important;
  box-shadow:0 18px 55px rgba(3,20,24,.18),inset 0 1px 0 rgba(255,255,255,.13)!important;
  backdrop-filter:blur(11px) saturate(120%)!important;
  -webkit-backdrop-filter:blur(11px) saturate(120%)!important;
}
.reviews-waiver-journey .policies#politicas .policies__quick-card{
  background:rgba(7,34,40,.22)!important;
  border:1px solid rgba(255,255,255,.34)!important;
  box-shadow:0 18px 48px rgba(3,20,24,.18),inset 0 1px 0 rgba(255,255,255,.13)!important;
  backdrop-filter:blur(10px) saturate(120%)!important;
  -webkit-backdrop-filter:blur(10px) saturate(120%)!important;
}
.reviews-waiver-journey .policies#politicas .policies__quick-card:hover{
  background:rgba(7,34,40,.32)!important;
  border-color:rgba(255,255,255,.58)!important;
}

@media(max-width:700px){
  .reviews-waiver-journey .policies#politicas{
    background-position:center center!important;
    background-size:cover!important;
  }
}

/* ============================================================
   2026-09-05 — FINAL VISUAL PASS (preserve existing page order/logo)
   ============================================================ */

/* TripAdvisor + Información importante share ONE continuous Roatán beach background. */
.reviews-waiver-journey{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:#12373b url('../img/maca-roatan-beach-6k-vertical.jpg') center center / cover no-repeat!important;
}
.reviews-waiver-journey::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  background:linear-gradient(180deg,rgba(5,27,33,.22) 0%,rgba(5,27,33,.16) 38%,rgba(5,27,33,.34) 100%);
  pointer-events:none;
}
.reviews-waiver-journey__video-layer{display:none!important;}
.reviews-waiver-journey .reviews,
.reviews-waiver-journey .policies{
  background:transparent!important;
}
/* Remove the older independent policy background so the same image continues naturally. */
.reviews-waiver-journey .policies#politicas{
  background:transparent!important;
  background-image:none!important;
}
.reviews-waiver-journey .policies#politicas::before,
.reviews-waiver-journey .policies#politicas::after{display:none!important;}

/* Reviews remain glassy but readable over the shared beach image. */
.reviews-waiver-journey .reviews__widget{
  background:rgba(7,34,40,.30)!important;
  border:1px solid rgba(255,255,255,.34)!important;
  color:#fff!important;
  box-shadow:0 18px 55px rgba(2,18,21,.20),inset 0 1px 0 rgba(255,255,255,.13)!important;
  backdrop-filter:blur(12px) saturate(120%)!important;
  -webkit-backdrop-filter:blur(12px) saturate(120%)!important;
}
.reviews-waiver-journey .reviews__widget p{color:rgba(255,255,255,.90)!important;text-shadow:0 2px 10px rgba(0,0,0,.35);}
.reviews-waiver-journey .reviews .section-head h2,
.reviews-waiver-journey .reviews .section-head p,
.reviews-waiver-journey .reviews .section-head__tag{color:#fff!important;text-shadow:0 2px 14px rgba(0,0,0,.42);}

/* Hotels: exactly 3 cards on the first row + the 4th centered below on tablet/desktop. */
.hotels__grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
.hotels__grid .hotel-card:nth-child(4){grid-column:2;}
@media (min-width:701px) and (max-width:1099px){
  .hotels__grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .hotels__grid .hotel-card:nth-child(4){grid-column:2;}
}
@media (max-width:700px){
  .hotels__grid{grid-template-columns:1fr!important;}
  .hotels__grid .hotel-card:nth-child(4){grid-column:auto;}
}

/* Momentos MACA: photos are the focus; the beach background is only subtly visible through them. */
.momentos#momentos .momentos__grid img{
  opacity:.97!important;
  filter:brightness(.94) saturate(1.04) contrast(1.02)!important;
  border:1px solid rgba(255,255,255,.28)!important;
  box-shadow:0 16px 38px rgba(0,0,0,.30)!important;
}
.momentos#momentos .momentos__grid img:hover{
  opacity:.98!important;
  filter:brightness(.98) saturate(1.05)!important;
}
@media(max-width:700px){
  .momentos#momentos .momentos__grid img{opacity:.93!important;}
}

/* ===== WAIVER — concise consent + email delivery ===== */
.waiver-summary{max-width:78ch}
.waiver-summary p{margin:0 0 10px!important}
.waiver-form-card{margin-top:24px;padding:24px;border-radius:22px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.30);box-shadow:0 18px 55px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(12px) saturate(120%);-webkit-backdrop-filter:blur(12px) saturate(120%)}
.waiver-form-card__head h3{margin:.35rem 0 .35rem;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.45)}
.waiver-form-card__head p{margin:0 0 18px!important;color:rgba(255,255,255,.82)!important}
.waiver-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.waiver-form label{display:flex;flex-direction:column;gap:7px;color:#fff;font-size:.82rem;font-weight:700;text-shadow:0 1px 7px rgba(0,0,0,.4)}
.waiver-form input,.waiver-form textarea{width:100%;border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.11);color:#fff;border-radius:11px;padding:12px 13px;font:500 .92rem var(--body);outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.waiver-form input::placeholder,.waiver-form textarea::placeholder{color:rgba(255,255,255,.68)}
.waiver-form input:focus,.waiver-form textarea:focus{border-color:rgba(255,255,255,.72);box-shadow:0 0 0 3px rgba(255,255,255,.10)}
.waiver-form__full{grid-column:1/-1}
.waiver-consent{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px;margin:17px 0!important;font-size:.82rem!important;font-weight:500!important;text-shadow:none!important}
.waiver-consent input{width:18px;height:18px;min-width:18px;margin-top:2px;accent-color:#0fa9a6}
.waiver-consent span{line-height:1.45}
.waiver-form__note{margin:11px 0 0!important;color:rgba(255,255,255,.66)!important;font-size:.72rem!important}
.waiver-form__success{margin-top:12px;padding:11px 13px;border:1px solid rgba(255,255,255,.28);border-radius:11px;background:rgba(255,255,255,.10);color:#fff;font-size:.82rem}
.waiver-submit-frame{position:absolute;width:1px;height:1px;border:0;opacity:0;pointer-events:none}
@media(max-width:700px){.waiver-form-card{padding:18px}.waiver-form__grid{grid-template-columns:1fr}.waiver-form__full{grid-column:auto}}

/* ===== Booking waiver requirement / inline policy cards ===== */
.booking-waiver{
  margin:14px 0 16px;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.30);
  border-radius:16px;
  background:rgba(255,255,255,.075);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.booking-waiver details{margin:0 0 10px}
.booking-waiver summary{cursor:pointer;font-weight:700;color:inherit;list-style:none}
.booking-waiver summary::-webkit-details-marker{display:none}
.booking-waiver summary::before{content:'＋';display:inline-grid;place-items:center;width:22px;height:22px;margin-right:7px;border:1px solid currentColor;border-radius:50%;font-size:.8rem}
.booking-waiver details[open] summary::before{content:'−'}
.booking-waiver__terms{margin:11px 0 0;padding:12px;border-radius:12px;background:rgba(0,0,0,.10);font-size:.88rem;line-height:1.55}
.booking-waiver__terms p{margin:0 0 9px}
.booking-waiver__terms p:last-child{margin-bottom:0}
.booking-waiver__terms a{color:inherit;text-decoration:underline;font-weight:700}
.booking-waiver__check{display:flex!important;gap:10px;align-items:flex-start;margin:0!important;font-size:.92rem;line-height:1.45}
.booking-waiver__check input{width:18px!important;height:18px!important;min-width:18px;margin-top:2px!important;accent-color:#18a9b4}
.booking-waiver>small{display:block;margin-top:8px;opacity:.78;line-height:1.4}

.policies__inline-detail{max-width:var(--max);margin:20px auto 0;padding:0 var(--edge)}
.policies__inline-detail[hidden]{display:none}
.policies__inline-detail-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px 10px}
.policies__inline-detail-head h3{margin:4px 0 0;color:#fff}
.policy-inline-close{border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:9px 14px;cursor:pointer}
.policies__inline-copy,.policy-inline-manage{padding:18px 22px 22px;border-radius:20px;background:rgba(7,34,40,.25);border:1px solid rgba(255,255,255,.32);box-shadow:0 18px 50px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px);color:#fff}
.policies__inline-copy p{color:rgba(255,255,255,.92);line-height:1.6}
.policies__inline-copy a{color:#fff}
.policies__quick-card b{display:none!important}
.policies .accordion{display:none!important}
.policies>.change-request{display:none!important}
.policies__quick-card{cursor:pointer}
.policies__quick-card[aria-expanded="true"]{background:rgba(7,34,40,.38)!important;border-color:rgba(255,255,255,.68)!important;transform:translateY(-3px)}

@media(max-width:700px){
  .policies__inline-detail{padding-inline:20px}
  .policies__inline-detail-head{padding-inline:4px;align-items:flex-start}
  .policies__inline-detail-head h3{font-size:1.2rem}
  .policies__inline-copy,.policy-inline-manage{padding:15px}
}

/* ===== FINAL UX PASS: hotel cards + policy expansion ===== */
/* Four hotels in one elegant row on tablet/desktop; one column on phones. */
.hotels__grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important;align-items:stretch!important}
.hotels__grid .hotel-card:nth-child(4){grid-column:auto!important}
.hotels__grid .hotel-card{min-width:0;border-radius:26px!important;box-shadow:0 22px 65px rgba(3,28,34,.16)!important;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease!important}
.hotels__grid .hotel-card:hover{transform:translateY(-8px)!important;box-shadow:0 30px 75px rgba(3,28,34,.25)!important}
.hotels__grid .hotel-card__media{min-height:330px!important}
.hotels__grid .hotel-card__overlay-title{left:22px!important;right:22px!important;bottom:22px!important}
.hotels__grid .hotel-card__overlay-title h3{font-size:clamp(1.25rem,1.55vw,1.85rem)!important;line-height:1.05!important}
.hotels__grid .hotel-card__content{padding:20px!important}
.hotels__grid .hotel-card__content p{font-size:.86rem!important;line-height:1.5!important}
.hotels__grid .hotel-card__facts{gap:6px!important}
.hotels__grid .hotel-card__facts span{font-size:.68rem!important;padding:7px 8px!important}
.hotels__grid .hotel-card__button{width:100%!important;justify-content:center!important}
@media(max-width:700px){.hotels__grid{grid-template-columns:1fr!important;gap:18px!important}.hotels__grid .hotel-card__media{min-height:390px!important}}

/* Animated policy detail: unfolds from the selected glass card instead of jumping away. */
.policies__inline-detail{overflow:hidden!important;max-height:0!important;opacity:0!important;transform:translateY(-14px) scale(.985)!important;margin-top:0!important;transition:max-height .55s cubic-bezier(.22,1,.36,1),opacity .3s ease,transform .45s cubic-bezier(.22,1,.36,1),margin-top .45s ease!important}
.policies__inline-detail:not([hidden]){max-height:1800px!important;opacity:1!important;transform:none!important;margin-top:20px!important}
.policies__inline-copy,.policy-inline-manage{animation:policyReveal .55s cubic-bezier(.22,1,.36,1) both}
@keyframes policyReveal{from{opacity:0;transform:translateY(-12px) scale(.985);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
.policies__inline-detail-head{position:sticky;top:0;z-index:2;background:rgba(7,34,40,.35);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:18px 18px 0 0}
.policies__quick-card{transition:transform .3s cubic-bezier(.22,1,.36,1),background .3s ease,border-color .3s ease,box-shadow .3s ease!important}
.policies__quick-card[aria-expanded="true"] .policies__quick-icon{transform:scale(1.08) rotate(-4deg)}
.policies__quick-icon{transition:transform .35s cubic-bezier(.22,1,.36,1)}

/* ===== FINAL HOTEL CARD REFINEMENT ===== */
@media (min-width:701px){
  .hotels__grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .hotels__grid .hotel-card:nth-child(4){grid-column:auto!important}
}
.hotels__grid .hotel-card{cursor:pointer!important;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.hotels__grid .hotel-card__button{position:relative;z-index:5;pointer-events:auto!important}


/* ===== POLICY CARDS: WAVE TRANSITION / MOBILE INLINE REVEAL ===== */
.policies__quick-card{position:relative;overflow:hidden;isolation:isolate;}
.policies__quick-card::before{content:"";position:absolute;inset:-35%;z-index:3;pointer-events:none;background:radial-gradient(70% 55% at 15% 50%,rgba(255,255,255,.72) 0%,rgba(255,255,255,.28) 34%,rgba(39,190,205,.18) 54%,transparent 70%);transform:translateX(-135%) rotate(-8deg);opacity:0;}
.policies__quick-card::after{content:"";position:absolute;inset:-10% -35%;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.08) 25%,rgba(94,220,230,.34) 48%,rgba(255,255,255,.20) 62%,transparent 82%);clip-path:polygon(0 15%,18% 23%,35% 12%,52% 28%,68% 17%,83% 29%,100% 18%,100% 88%,82% 78%,65% 91%,49% 76%,31% 88%,15% 75%,0 84%);transform:translateX(-120%);opacity:0;}
.policies__quick-card.is-swept{pointer-events:none;transform:scale(.94) translateY(8px);opacity:0;filter:blur(2px);}
.policies__quick-card.is-swept::before{opacity:1;animation:policyWaveWash .62s cubic-bezier(.22,1,.36,1) forwards;}
.policies__quick-card.is-swept::after{opacity:1;animation:policyWaveSweep .66s cubic-bezier(.22,1,.36,1) forwards;}
.policies__quick-card.is-returning{animation:policyWaveReturn .62s cubic-bezier(.22,1,.36,1) both;}
@keyframes policyWaveSweep{0%{transform:translateX(-120%);opacity:0}25%{opacity:1}100%{transform:translateX(120%);opacity:0}}
@keyframes policyWaveWash{0%{transform:translateX(-135%) rotate(-8deg);opacity:0}30%{opacity:1}100%{transform:translateX(135%) rotate(-8deg);opacity:0}}
@keyframes policyWaveReturn{0%{opacity:0;transform:scale(.94) translateY(8px);filter:blur(2px)}55%{opacity:1;transform:scale(1.015) translateY(-2px);filter:blur(0)}100%{opacity:1;transform:none;filter:none}}
.policies__inline-detail{scroll-margin-top:18px;}
.policies__inline-detail.is-open{animation:policyPanelIn .55s cubic-bezier(.22,1,.36,1) both;}
.policies__inline-detail.is-closing{animation:policyPanelOut .45s cubic-bezier(.55,.08,.68,.53) both;}
@keyframes policyPanelIn{0%{opacity:0;transform:translateY(-22px) scale(.985);filter:blur(4px);max-height:0;margin-top:0}45%{opacity:1}100%{opacity:1;transform:none;filter:none;max-height:1800px;margin-top:20px}}
@keyframes policyPanelOut{0%{opacity:1;transform:none;max-height:1800px;margin-top:20px}100%{opacity:0;transform:translateY(-12px) scale(.985);filter:blur(3px);max-height:0;margin-top:0}}
@media(max-width:700px){
  .policies__quick-grid{position:relative;}
  .policies__quick-card.is-swept{min-height:245px;}
  .policies__inline-detail{width:100%;}
  .policies__inline-detail-head{position:relative;}
}
@media(prefers-reduced-motion:reduce){
  .policies__quick-card,.policies__quick-card::before,.policies__quick-card::after,.policies__inline-detail{animation:none!important;transition:none!important;}
}

/* ===== POLICY CARDS: DETAIL DIRECTLY UNDER THE SELECTED CARD ===== */
.policies__quick-grid{align-items:start!important}
.policy-card-wrap{min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:0}
.policy-card-wrap .policies__quick-card{width:100%;margin:0}
.policy-card-wrap .policies__inline-detail{width:100%;max-width:none;margin:0!important;padding:0!important;grid-column:auto}
.policy-card-wrap .policies__inline-detail:not([hidden]){margin-top:12px!important}
@media(max-width:700px){
  .policy-card-wrap{width:100%}
  .policy-card-wrap .policies__inline-detail{padding:0!important}
  .policy-card-wrap .policies__inline-copy,.policy-card-wrap .policy-inline-manage{border-radius:18px;padding:16px!important}
}
@media(min-width:701px){
  .policies__quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important}
  .policy-card-wrap{min-width:0}
}

/* ============================================================
   VISUAL DEFECT PASS 2026-10-16 — fixes only, no design changes
   ============================================================ */
/* Carousels: the -edge margin shifted the track left (first card flush to the
   screen edge, track cut off 64px before the right edge on wide screens).
   Full-bleed track whose first card lines up with the section heading. */
.activities__grid[data-carousel],.momentos__grid[data-carousel]{
  max-width:none;
  margin-inline:0;
  padding-inline:max(var(--edge),calc((100% - var(--max)) / 2 + var(--edge)));
  scroll-padding-inline:max(var(--edge),calc((100% - var(--max)) / 2 + var(--edge)));
}
/* Text over the bright turquoise Momentos background was unreadable. */
.momentos--video .section-head{text-shadow:0 3px 24px rgba(0,0,0,.68);}
/* "Todas las actividades" tag used the light-background teal on the dark video;
   use the tag colour of the other dark sections. */
.cinematic-journey .activities .section-head__tag{color:var(--lime);}
/* Henry Morgan package tabs rendered as unstyled browser buttons; give them the
   same tab style the Paradise / Mayan modals already use. */
.hm-package-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px;margin-bottom:14px}
.hm-package-tab{border:1px solid rgba(30,118,128,.18);background:rgba(255,255,255,.38);color:#24535b;border-radius:11px;padding:10px 8px;font:800 .66rem var(--body);cursor:pointer}
.hm-package-tab.is-active,.hm-package-tab:hover{background:#176c78;color:#fff;border-color:#176c78}
/* Paradise / Mayan info panel had a background but no padding (text touching the edge). */
#pb-modal .hotel-modal__details,#mayan-modal .hotel-modal__details,#sirenas-modal .hotel-modal__details{border-radius:18px;padding:20px;}
@media(max-width:760px){#pb-modal .hotel-modal__details,#mayan-modal .hotel-modal__details,#sirenas-modal .hotel-modal__details{padding:15px;}}
/* Activity modal (#modal-overlay) stayed below the fixed nav (z 10000): its top
   photos and close button were hidden behind the bar. Same layer as hotel modals. */
#modal-overlay.modal-overlay{z-index:11000!important;}

/* ============================================================
   UX POLISH PASS 2026-10-16 (b) — tester defects, same look
   ============================================================ */
/* 1 · Floating WhatsApp / back-to-top never cover an open modal or lightbox
   (body.has-overlay is set by main.js whenever an overlay is open). */
body.has-overlay .wa-float,body.has-overlay .back-to-top{opacity:0!important;visibility:hidden!important;pointer-events:none!important;animation:none!important}
@media(max-width:700px){
  #modal-overlay.modal-overlay,#hotel-modal-custom.modal-overlay,#hm-modal.modal-overlay,#pb-modal.modal-overlay,#mayan-modal.modal-overlay,#sirenas-modal.modal-overlay{padding-bottom:calc(40px + env(safe-area-inset-bottom))!important}
  .modal .booking-form button[type="submit"]{width:100%;justify-content:center}
}

/* 3 + 6 · One shared look for the four hotel modals */
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-modal__details{background:rgba(255,255,255,.34);border:1px solid rgba(24,103,113,.13);border-radius:18px;padding:20px}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-modal__chip{background:rgba(218,243,245,.58);border-color:rgba(30,118,128,.16);color:#24535b}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .modal__close{background:rgba(255,255,255,.62);color:#155563;border:1px solid rgba(21,85,99,.15)}
/* tabs: the Paradise tab style everywhere */
:is(#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-tab{border:1px solid rgba(30,118,128,.18);background:rgba(255,255,255,.38);color:#24535b;border-radius:11px;padding:10px 8px;font:800 .66rem/1.3 var(--body);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
:is(#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-tab.is-active,:is(#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-tab:hover{background:#176c78;color:#fff;border-color:#176c78}
/* builder card + header */
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-builder{margin-top:0;background:rgba(235,249,250,.34);border:1px solid rgba(24,103,113,.13);border-radius:20px;padding:0 0 18px;overflow:hidden}
#hm-modal .hm-packages + .hotel-unified-builder,#hm-modal .hotel-tabs + .hotel-unified-builder{margin-top:16px}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-head{display:flex;flex-direction:row;justify-content:space-between;gap:18px;align-items:center;padding:18px 20px;background:rgba(205,239,242,.44);border-bottom:1px solid rgba(24,103,113,.12)}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-head small{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.65rem;color:#47727a;font-weight:800}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-head strong{display:block;color:#123f48;font-size:1.02rem;margin:4px 0}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-head span{display:block;margin:0;color:#46636a;font-size:.74rem}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-from{font-weight:900;font-size:1rem;color:#176c78;white-space:nowrap}
/* controls, selects and date fields: label above, full-width field, room for the arrow */
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-controls{display:grid;gap:12px;padding:18px 18px 0}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 18px 0}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) :is(.hotel-unified-controls,.hotel-date-grid) label{display:block;font-size:.7rem;font-weight:800;color:#285860}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) :is(.hotel-unified-controls select,.hotel-date-grid input){display:block;width:100%;min-height:44px;margin-top:6px;padding:11px 12px;border-radius:12px;border:1px solid rgba(24,103,113,.18);background-color:rgba(255,255,255,.74);color:#183e45;font:600 .86rem var(--body)}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-controls select{-webkit-appearance:none;appearance:none;padding-right:40px;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23176c78' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-controls select:disabled{opacity:.72;cursor:not-allowed}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) :is(.hotel-unified-controls select,.hotel-date-grid input):focus{outline:2px solid rgba(23,129,139,.2);border-color:#17818b}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-date-grid input[readonly]{background-color:rgba(235,242,243,.55);color:#46636a}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-people-status{margin:12px 18px 0;padding:10px 12px;border-radius:12px;background:rgba(205,239,242,.48);border:1px solid rgba(23,129,139,.13);color:#24535b;font-size:.72rem;font-weight:700}
/* 2 · inline date message (Henry Morgan) */
.hotel-date-msg{margin:10px 18px 0;padding:10px 12px;border-radius:12px;background:rgba(190,52,36,.08);border:1px solid rgba(190,52,36,.32);color:#8f2b1d;font-size:.78rem;font-weight:700;line-height:1.45}
.hotel-date-msg.is-info{background:rgba(205,239,242,.62);border-color:rgba(23,129,139,.28);color:#1d5560}
.hotel-date-msg[hidden]{display:none}
#hm-modal .hm-children-note{margin:8px 18px 0;font-size:.72rem}
/* summary box: tu selección / tarifa adulto / tarifa niño / total estimado */
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-live-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:14px 18px;background:transparent;border-radius:0;color:inherit}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-live-summary>div{grid-column:auto;padding:12px;border:1px solid rgba(24,103,113,.10);border-radius:14px;background:rgba(255,255,255,.42)}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-live-summary small{display:block;font-size:.64rem;letter-spacing:.04em;text-transform:uppercase;color:#5b7378;font-weight:800}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-live-summary strong{display:block;margin-top:4px;color:#176c78;font-size:.94rem}
/* notes box */
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-notes{margin:0 18px 14px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.4);border:1px solid rgba(24,103,113,.10);color:#536b70;font-size:.72rem;line-height:1.5}
#hm-modal .hm-notes.hotel-notes{margin:18px 0 0}
#hm-modal .hm-notes span{display:block}
#hm-modal .hm-notes span+span{margin-top:4px}
/* booking form, estimate, submit */
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-booking-form{margin:4px 18px 0;padding:22px;border-radius:18px;background:rgba(255,255,255,.86);border:1px solid rgba(24,103,113,.12);box-shadow:0 12px 34px rgba(4,39,48,.06)}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-booking-form h4{margin:0 0 14px;font-size:1.05rem;color:#123f48}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-booking-form .form-grid label{display:flex;flex-direction:column;gap:7px;font-size:.82rem;font-weight:700;color:#354039}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-booking-form :is(input:not([type="checkbox"]),textarea){width:100%;margin:0;padding:12px 13px;border:1px solid #cfd6ce;border-radius:11px;background:#fbfcfa;font:500 .92rem var(--body);color:var(--ink)}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-booking-form :is(input,textarea):focus{outline:none;border-color:#17818b;box-shadow:0 0 0 3px rgba(23,129,139,.12)}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-estimate{margin-top:16px;background:rgba(8,58,70,.86);border-color:rgba(255,255,255,.15)}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-estimate__label{color:#b9e7eb}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-estimate__value{color:#d8f4f5}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-booking-form button[type="submit"]{margin-top:16px;background:#177c88;border-color:#177c88}
:is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-booking-form button[type="submit"]:hover{background:#0e5964;border-color:#0e5964}
@media(max-width:760px){
  :is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-modal__details{padding:15px}
  :is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-head{display:block}
  :is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-from{margin-top:10px;white-space:normal}
  :is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-controls{grid-template-columns:1fr}
  :is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-unified-controls label:last-child{grid-column:auto}
  :is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-date-grid{grid-template-columns:1fr}
  :is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-live-summary{grid-template-columns:1fr 1fr}
  :is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-live-summary>div:last-child{grid-column:1/-1}
  :is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-booking-form{margin:4px 12px 0;padding:16px}
}

/* 7 · Terms box inside booking forms */
.booking-form .booking-waiver{margin:16px 0;padding:14px 16px;border:1px solid rgba(24,103,113,.16);border-radius:14px;background:rgba(24,103,113,.04);box-shadow:none}
.booking-form .booking-waiver details{margin:0 0 12px}
.booking-form .booking-waiver summary{display:inline-flex;align-items:center;gap:8px;font:700 .86rem/1.3 var(--body);color:#24535b}
.booking-form .booking-waiver summary::before{width:20px;height:20px;margin:0;font-size:.72rem;flex:none}
.booking-form .booking-waiver__terms{margin:10px 0 0;padding:12px 13px;border-radius:11px;background:rgba(24,103,113,.06);font-size:.84rem;line-height:1.55;color:#3f4b45}
.booking-form .booking-waiver__terms a{font-weight:600;font-size:.8rem;color:#176c78;text-decoration:underline;text-underline-offset:2px;opacity:.9}
.booking-form label.booking-waiver__check{flex-direction:row!important;align-items:center!important;gap:10px!important;font-size:.86rem!important;font-weight:600!important;line-height:1.4;cursor:pointer}
.booking-form .booking-waiver__check input{margin:0!important;flex:none}
.booking-form .booking-waiver>small{margin-top:8px;font-size:.74rem;opacity:.72}

/* 4 · Policy cards: one full-width detail row below the four cards */
.policies__quick-grid>.policies__inline-detail{grid-column:1/-1;width:100%;max-width:none;margin:6px 0 0!important;padding:0!important;max-height:none!important;overflow:visible!important;opacity:1!important;transform:none!important;transition:none!important;animation:none!important;border:1px solid rgba(255,255,255,.32);border-radius:22px;background:rgba(7,34,40,.30);box-shadow:0 18px 50px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(12px) saturate(115%);-webkit-backdrop-filter:blur(12px) saturate(115%);color:#fff}
.policies__quick-grid>.policies__inline-detail[hidden]{display:none!important}
.policies__quick-grid>.policies__inline-detail .policies__inline-detail-head{position:static;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px 4px;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0}
.policies__quick-grid>.policies__inline-detail .policies__inline-detail-head h3{margin:0;color:#fff;font-size:1.35rem}
.policies__quick-grid>.policies__inline-detail .policy-inline-close{flex:none;white-space:nowrap;font:600 .82rem var(--body)}
.policies__quick-grid>.policies__inline-detail .policy-inline-close:hover{background:rgba(255,255,255,.16)}
.policies__quick-grid>.policies__inline-detail .policies__inline-copy{padding:8px 26px 26px;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;animation:policyCopyIn .3s ease both}
.policies__quick-grid>.policies__inline-detail .policies__inline-copy :is(p,h4){max-width:70ch}
.policies__quick-grid>.policies__inline-detail .policies__inline-copy p{margin:0 0 12px;color:rgba(255,255,255,.92);font-size:.95rem;line-height:1.65}
.policies__quick-grid>.policies__inline-detail .policies__inline-copy h4{margin:18px 0 8px;color:#d8f3f4;font-size:1rem}
.policies__quick-grid>.policies__inline-detail .policies__inline-copy h4:first-child{margin-top:6px}
.policies__quick-grid>.policies__inline-detail .policy-inline-manage .change-request__intro p{margin-bottom:4px}
.policies__quick-grid>.policies__inline-detail .policy-inline-manage .booking-form{margin-top:14px}
@keyframes policyCopyIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:700px){
  .policies__quick-grid>.policies__inline-detail .policies__inline-detail-head{padding:18px 18px 4px}
  .policies__quick-grid>.policies__inline-detail .policies__inline-copy{padding:8px 18px 20px}
}
@media(prefers-reduced-motion:reduce){.policies__quick-grid>.policies__inline-detail .policies__inline-copy{animation:none}}
.policies__quick-grid>.policies__inline-detail{scroll-margin-top:110px}

/* ============================================================
   DESIGN ROUND 2 · 2026-10-16 — partner review at 1920 px
   Same language (teal/lime, glass, video); layout changes only.
   ============================================================ */
/* 17 · Nav reads as a dark glass bar everywhere (same height: the hairline is an inset
   shadow, not a border). Slightly lighter at the very top of the hero. */
.nav{
  background:rgba(7,34,40,.55)!important;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.14);
}
.nav.is-scrolled{
  background:rgba(7,34,40,.86)!important;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.12),0 8px 30px rgba(0,0,0,.25);
}
/* The hero logo is pinned just below the bar (nav = 102 px desktop, 112 px ≤860 px). */
.hero{--hero-nav-clear:116px;}
@media(max-width:860px){.hero{--hero-nav-clear:126px;}}

/* 16 · Sobre MACA → "Así es la casa": same fonts, less empty video between blocks. */
.cinematic-journey .boat-journey > .intro{
  padding-top:clamp(56px,6vw,84px);
  padding-bottom:clamp(16px,2vw,28px);
}
.cinematic-journey .boat-journey .cinematic-scroll--autoplay{
  height:auto!important;
  min-height:clamp(340px,56svh,600px)!important;
}
.cinematic-journey .boat-journey .cinematic-scroll--autoplay .cinematic-scroll__copy{padding:28px 24px;}

/* 15 · Pick-up points: eyebrow + title + four glass cards (Políticas card style). */
.cinematic-journey .boat-journey .transfer-note{
  min-height:0!important;
  display:block!important;
  background:transparent!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  text-shadow:none;
  padding:clamp(12px,2vw,28px) var(--edge) clamp(56px,6vw,88px)!important;
}
.transfer-note__inner{max-width:calc(var(--max) - 2 * var(--edge));margin:0 auto;display:block!important;}
.transfer-note__head{margin-bottom:22px;}
.transfer-note .transfer-note__tag{color:var(--lime);text-shadow:0 2px 14px rgba(0,0,0,.55);}
.transfer-note .transfer-note__head h3{margin-top:10px;max-width:none;font-size:clamp(1.5rem,2vw,1.9rem);color:#fff;text-shadow:0 3px 22px rgba(0,0,0,.62);}
.transfer-note .transfer-note__routes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;margin:0;padding:0;}
.transfer-note__routes li.transfer-note__card{
  max-width:none;margin:0;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:14px;
  padding:24px 18px;text-align:center;
  border:1px solid rgba(255,255,255,.34);border-radius:20px;
  background:rgba(7,34,40,.22);
  box-shadow:0 18px 48px rgba(3,20,24,.18),inset 0 1px 0 rgba(255,255,255,.13);
  -webkit-backdrop-filter:blur(10px) saturate(120%);backdrop-filter:blur(10px) saturate(120%);
  color:#fff;font-size:.95rem;line-height:1.4;
}
.transfer-note__icon{
  display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:50%;
  border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.16);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 22px rgba(0,0,0,.12);
}
.transfer-note__icon svg{width:24px;height:24px;display:block;}
.transfer-note__text{font-weight:600;color:rgba(255,255,255,.95);text-shadow:0 2px 12px rgba(0,0,0,.3);}
@media(max-width:760px){
  .transfer-note .transfer-note__routes{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .transfer-note__routes li.transfer-note__card{padding:18px 12px;gap:12px;font-size:.88rem;}
  .transfer-note__icon{width:46px;height:46px;}
}

/* 12 + 14 · Desktop (≥900 px): Actividades and Momentos are grids that fill the content
   width (aligned with their heading). Below 900 px they stay swipe carousels. */
@media(min-width:900px){
  .activities__grid[data-carousel],.momentos__grid[data-carousel]{
    display:grid;
    max-width:var(--max);
    margin:44px auto 0;
    padding:0 var(--edge);
    overflow:visible;
    columns:auto;
    cursor:auto;
    scroll-snap-type:none;
    touch-action:auto;
  }
  .activities__grid[data-carousel]{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
  .activities__grid[data-carousel] .card{flex:none;min-height:0;aspect-ratio:5/6;}
  .momentos__grid[data-carousel]{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
  .momentos__grid[data-carousel] img{flex:none;width:100%;height:auto;aspect-ratio:4/5;margin:0;}
}

/* 13 · Buceo: heading above the strip (the side-by-side layout squeezed both on phones);
   the strip stays a full-bleed carousel whose first photo lines up with the heading. */
.diving-section{flex-direction:column;align-items:stretch;justify-content:center;}
.diving-section__grid{
  max-width:none;
  margin:36px 0 0;
  padding-inline:max(var(--edge),calc((100% - var(--max)) / 2 + var(--edge)));
  scroll-padding-inline:max(var(--edge),calc((100% - var(--max)) / 2 + var(--edge)));
  scroll-snap-type:x mandatory;
}
.diving-section__grid img{scroll-snap-align:start;}
@media(max-width:700px){
  .diving-section__grid{padding-inline:20px;scroll-padding-inline:20px;margin-top:28px;gap:12px;}
}

/* 11 · Hotel cards: wider cards (4 across ≥1500 px, 2 per row below), equal image block,
   two-line description, one row of chips, buttons aligned at the bottom, no watermark. */
.hotels{--hotels-max:var(--max);}
@media(min-width:1200px){.hotels{--hotels-max:1500px;}}
@media(min-width:1900px){.hotels{--hotels-max:1900px;}}
.hotels .section-head,.hotels .hotels__note{max-width:var(--hotels-max);}
.hotels__grid{max-width:var(--hotels-max);grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important;}
@media(max-width:639px){.hotels__grid{grid-template-columns:1fr!important;}}
.hotels__grid .hotel-card{padding:0;gap:0;display:flex;flex-direction:column;}
.hotels__grid .hotel-card::after,.hotels__grid .hotel-card__watermark{display:none!important;}
.hotels__grid .hotel-card__media{flex:none;min-height:0!important;height:300px;}
.hotels__grid .hotel-card__content{flex:1 1 auto;display:flex;flex-direction:column;padding:20px 22px 22px!important;}
.hotels__grid .hotel-card__content p{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;
}
.hotels__grid .hotel-card__facts{flex-wrap:nowrap;overflow:hidden;margin-bottom:18px;}
.hotels__grid .hotel-card__facts span{flex:0 0 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hotels__grid .hotel-card__facts span:nth-child(n+2){flex:0 1 auto;}
/* Narrow cards (4-across, tablets, phones) keep two whole chips instead of a squeezed third. */
.hotels__grid .hotel-card__content{container-type:inline-size;}
@container (max-width:430px){.hotels__grid .hotel-card__facts span:nth-child(3){display:none;}}
.hotels__grid .hotel-card__facts span:nth-child(n+4){display:none;}
.hotels__grid .hotel-card__button{margin-top:auto!important;}

/* 12 · Five hotel cards: 1 per row below 640 px; 2 per row with the 5th centered (640-1199 px);
   3 + 2 with the second row centered (1200-1899 px, cards >= 300 px); 5 across only from 1900 px (cards >= 330 px). */
@media(min-width:640px) and (max-width:1199px){
  .hotels__grid .hotel-card:nth-child(5):last-child{grid-column:1/-1!important;justify-self:center;width:calc((100% - 22px) / 2);}
}
@media(min-width:1200px) and (max-width:1899px){
  .hotels__grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;}
  .hotels__grid .hotel-card{grid-column:span 2!important;}
  .hotels__grid .hotel-card:nth-child(4){grid-column:2 / span 2!important;}
  .hotels__grid .hotel-card:nth-child(5){grid-column:4 / span 2!important;}
}
@media(min-width:1900px){
  .hotels__grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:20px!important;}
  .hotels__grid .hotel-card__content{padding:20px 20px 22px!important;}
}
/* The photo viewer opened behind the hotel modals (z-index 500 vs 11000): keep it on top. */
.hotel-photo-viewer{z-index:12000;}

/* ---------- Reviews (data/reviews.json) ---------- */
.ta-circles{display:inline-flex;gap:3px;vertical-align:middle}
.ta-circles i{display:block;width:14px;height:14px;border-radius:50%;background:var(--lime);border:1.5px solid #5d7a00;box-sizing:border-box}
.reviews__summary{display:flex;align-items:center;justify-content:space-between;gap:20px 32px;flex-wrap:wrap;padding:26px 32px;border-radius:20px;background:rgba(255,255,255,.78);backdrop-filter:blur(3px);border:1px solid rgba(13,22,19,.08)}
.reviews__stats{display:flex;align-items:center;gap:20px 28px;flex-wrap:wrap;min-width:0}
.reviews__stats[hidden],.reviews__more [hidden],.reviews__foot[hidden]{display:none}
.reviews__score{display:flex;align-items:center;gap:12px}
.reviews__score-num{font-family:var(--display);font-weight:800;font-size:3.4rem;line-height:1;color:var(--ink)}
.reviews__score .ta-circles i{width:18px;height:18px}
.reviews__meta p{margin:0}
.reviews__count{font-weight:700;color:var(--ink)}
.reviews__rank{font-size:.88rem;color:#5b6259;margin-top:2px!important}
.reviews__summary .reviews__all{margin-left:auto}
.reviews__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}
.review-card{display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:18px;background:rgba(255,255,255,.78);backdrop-filter:blur(3px);border:1px solid rgba(13,22,19,.08)}
.review-card blockquote{margin:0;font-size:.95rem;line-height:1.55;color:#2b332f;flex:1}
.review-card blockquote::before{content:"\201C"}.review-card blockquote::after{content:"\201D"}
.review-card__by{display:flex;flex-direction:column;gap:2px;font-size:.85rem}
.review-card__by strong{color:var(--ink)}.review-card__by span{color:#5b6259}
.review-card__src{align-self:flex-start;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#3f5a00;text-decoration:none;border-bottom:1px solid currentColor}
.reviews__more{display:flex;justify-content:center;margin-top:24px}
.reviews__foot{text-align:center;font-size:.76rem;line-height:1.45}
@media(max-width:1000px){.reviews__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.reviews__grid{grid-template-columns:1fr}.reviews__summary{padding:20px;flex-direction:column;align-items:flex-start}.reviews__summary .reviews__all{margin-left:0}.reviews__score-num{font-size:2.8rem}}

/* Tax line under every estimated hotel total (shared by the five hotel modals). */
.hotel-tax-note{display:block;font-size:.66rem;font-weight:500;line-height:1.35;margin-top:4px;text-transform:none;color:#5b7378}
.hotel-estimate .hotel-tax-note{grid-column:1/-1;margin-top:-2px;text-align:right;color:rgba(255,255,255,.72)}
.reviews-waiver-journey .reviews__summary .reviews__all{background:var(--ink)!important;border-color:var(--ink)!important;text-shadow:none!important;backdrop-filter:none!important}
.reviews__foot{width:fit-content;max-width:100%;margin:20px auto 0;padding:8px 16px;border-radius:999px;background:rgba(13,22,19,.62);backdrop-filter:blur(6px);color:rgba(255,255,255,.9)}

/* ============================================================
   WHATSAPP QUICK MENU (floating button -> panel above it)
   ============================================================ */
button.wa-float{border:0;padding:0;cursor:pointer;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
.wa-float:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.wa-float__tip{position:absolute;right:calc(100% + 12px);top:50%;transform:translate(6px,-50%);white-space:nowrap;padding:8px 12px;border-radius:999px;background:rgba(16,24,21,.9);border:1px solid rgba(255,255,255,.18);color:var(--white);font:600 .82rem/1 var(--body);box-shadow:0 12px 30px rgba(0,0,0,.25);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
@media (hover:hover){.wa-float:hover .wa-float__tip,.wa-float:focus-visible .wa-float__tip{opacity:1;visibility:visible;transform:translate(0,-50%)}}
.wa-menu.is-open .wa-float__tip{opacity:0!important;visibility:hidden!important}
.wa-menu.is-open .wa-float{animation:none;transform:none}
.wa-menu__panel{position:fixed;right:20px;bottom:96px;z-index:96;width:min(340px,calc(100vw - 32px));padding:10px;border-radius:22px;background:rgba(16,24,21,.92);border:1px solid rgba(255,255,255,.18);box-shadow:0 24px 60px rgba(0,0,0,.38);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:var(--white);transform-origin:bottom right;animation:waMenuIn .22s cubic-bezier(.16,1,.3,1)}
.wa-menu__panel[hidden]{display:none}
@keyframes waMenuIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
.wa-menu__head{display:flex;flex-direction:column;gap:2px;padding:8px 10px 10px}
.wa-menu__head strong{font:600 1.05rem/1.2 var(--display);letter-spacing:-.01em}
.wa-menu__head span{font-size:.78rem;color:rgba(255,255,255,.62)}
.wa-menu__item{display:flex;align-items:center;gap:12px;width:100%;padding:10px;border:1px solid transparent;border-radius:16px;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit;transition:background .18s ease,border-color .18s ease}
.wa-menu__item:hover,.wa-menu__item:focus-visible{background:rgba(198,230,47,.12);border-color:rgba(198,230,47,.45);outline:none}
.wa-menu__icon{flex:0 0 40px;height:40px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.08);font-size:1.25rem;line-height:1}
.wa-menu__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.wa-menu__text strong{font:600 .95rem/1.25 var(--body)}
.wa-menu__text small{font-size:.78rem;line-height:1.3;color:rgba(255,255,255,.6)}
.wa-menu__item:first-of-type .wa-menu__icon{background:rgba(198,230,47,.18)}
body.wa-menu-open .back-to-top{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
body.has-overlay .wa-menu__panel{display:none!important}
@media(max-width:620px){
  .wa-menu__panel{left:16px;right:16px;width:auto;bottom:88px}
}
@media(prefers-reduced-motion:reduce){.wa-menu__panel{animation:none}}

/* Floating WhatsApp menu: items may be anchors (Safari-safe) or buttons. */
a.wa-menu__item{text-decoration:none;box-sizing:border-box}

/* Booking / change-request forms: real vertical rhythm, textarea never touches the submit button. */
.booking-form .form-grid{gap:14px 16px}
.booking-form textarea{resize:vertical;min-height:96px;display:block}
.booking-form .form-grid + button[type="submit"],
.booking-form .form-grid + .btn{margin-top:18px}
.booking-form .form-grid + button[type="submit"] + .form-note{display:block;margin-top:12px}
.booking-form > button[type="submit"]{margin-top:18px}
.booking-form textarea + *{margin-top:0}
@media(max-width:700px){.booking-form .form-grid{gap:14px}}

/* MACA Moments: vertical video row */
.momentos__videos{max-width:var(--max);margin:56px auto 0;padding:0 var(--edge)}
.momentos__videos .momentos__videos-eyebrow{margin:0 auto 16px;max-width:900px;color:var(--lime);text-shadow:0 1px 8px rgba(0,0,0,.6);letter-spacing:.04em}
.momentos__vrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:900px;margin-inline:auto}
.momentos__vtile{position:relative;display:block;padding:0;border:0;background:#0d1613;border-radius:12px;overflow:hidden;aspect-ratio:9/16;cursor:pointer;transition:filter .3s ease,box-shadow .5s ease}
.momentos__vtile:hover{filter:brightness(1.08);box-shadow:0 18px 40px rgba(0,0,0,.28)}
.momentos__vtile:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.momentos__vtile video{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
/* Six clips: one row on wide screens, 3 + 3 on tablets/laptops, swipe row on phones. */
@media (min-width:1100px){.momentos__vrow{grid-template-columns:repeat(6,minmax(0,1fr));max-width:1240px}.momentos__videos .momentos__videos-eyebrow{max-width:1240px}}
@media (max-width:700px){
  .momentos__vrow{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;max-width:none;margin-inline:-20px;padding-inline:20px;scroll-padding-inline:20px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .momentos__vrow::-webkit-scrollbar{display:none}
  .momentos__vtile{flex:0 0 62vw;scroll-snap-align:start}
}
.modal__gallery video{width:100%;height:170px;object-fit:cover;display:block}
.modal__gallery video:first-child{grid-column:1/3;grid-row:1/3;height:100%}
@media(max-width:700px){.modal__gallery video{height:130px}.modal__gallery video:first-child{grid-column:1/3;grid-row:auto;height:200px}}
.modal.image-lightbox .image-lightbox__frame video{display:block;max-width:92vw;max-height:84vh;width:auto;height:auto;border-radius:20px;background:#000}
@media(prefers-reduced-motion:reduce){.momentos__vtile{transition:none}}

/* ============================================================
   CROSS-PLATFORM PASS (20261017e)
   Emoji-free UI chrome + phone alignment fixes (390 / 414 px).
   ============================================================ */
/* Language picker: 2-letter code chip instead of flag emoji (Windows draws flags as letters). */
.language-code{display:inline-grid;place-items:center;min-width:28px;height:22px;padding:0 6px;border-radius:7px;border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.1);font:700 .7rem/1 var(--body);letter-spacing:.06em;color:var(--white)}
.language-flag.language-code{font-size:.72rem}
.language-menu button span.language-code{font-size:.68rem}
.language-menu button.is-active .language-code{background:var(--lime);border-color:var(--lime);color:#10180f}
/* Quick-menu icons are inline SVG now. */
.wa-menu__icon svg{width:22px;height:22px;display:block}
.wa-menu__item{min-height:48px}
/* Hotel modal gallery: rows were squeezed to ~49px by the scroll box's max-height (overflow:hidden items
   have no min-content floor), so every photo showed as a thin strip. Rows keep their content height. */
.hotel-modal__gallery{grid-auto-rows:max-content}
@media(max-width:620px){
  /* "Sobre MACA": the three stats stay on one row instead of wrapping 2 + 1. */
  .intro__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .intro__stat b{font-size:1.75rem}
  /* Reseñas / Políticas heading panels lined up with the 20 px card edge instead of bleeding to the screen edge. */
  #resenas > .section-head,#politicas > .section-head{margin-left:20px!important;margin-right:20px!important}
}
@media(max-width:480px){
  /* Modals: three nested paddings left fields ~270 px wide on a 390 px phone. */
  #modal-overlay.modal-overlay,#hotel-modal-custom.modal-overlay,#hm-modal.modal-overlay,#pb-modal.modal-overlay,#mayan-modal.modal-overlay,#sirenas-modal.modal-overlay{padding-left:10px!important;padding-right:10px!important}
  .modal .modal__body{padding-left:16px;padding-right:16px}
  .modal .booking-form{padding:16px 14px}
  :is(#hotel-modal-custom,#hm-modal,#pb-modal,#mayan-modal,#sirenas-modal) .hotel-booking-form{margin:4px 0 0;padding:16px 14px}
}
/* Only the first quick-menu item is highlighted (":first-of-type" also matched the first <a> item). */
.wa-menu__item:first-of-type .wa-menu__icon{background:rgba(255,255,255,.08)}
.wa-menu__head + .wa-menu__item .wa-menu__icon{background:rgba(198,230,47,.18)}

/* ============================================================
   MOBILE AUDIT (2026-10-18) — phones and tablets (<= 860 px)
   ============================================================ */
.nav__cta-short{display:none}
.nav__menu-extras{display:none}
@media(max-width:860px){
  /* Compact bar: 54 px controls + 6 px above/below, no empty band. Left = "Reservar" pill. */
  .nav,.nav.is-scrolled{min-height:0!important;padding:6px 16px!important}
  .nav.is-scrolled{background:rgba(7,34,40,.95)!important}
  .nav__tools{flex:1 1 auto;margin-left:0!important;gap:8px!important}
  .nav__tools > .nav__cta{display:inline-flex!important;order:-1;justify-content:center;margin-right:auto;min-height:44px;padding:0 18px;font-size:.88rem}
  .nav__tools > .nav__cta .nav__cta-long{display:none}
  .nav__tools > .nav__cta .nav__cta-short{display:inline}
  .language-toggle{min-height:44px;padding:0 12px}
  .language-menu button{min-height:46px}
  .nav__burger{width:64px!important;height:54px!important;flex:0 0 64px!important}
  .nav__burger > img{width:100%!important;height:100%!important}
  html{scroll-padding-top:74px}
  .hero{--hero-nav-clear:78px}
  /* Menu panel: fits under the compact bar and scrolls when the screen is short (landscape). */
  .nav__menu-panel{padding:78px 20px 24px!important;justify-content:flex-start!important;overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .nav__menu-panel-head{margin-top:auto;margin-bottom:16px}
  .nav__menu-list{gap:8px}
  .nav__menu-list a{min-height:50px;padding:11px 18px}
  .nav__menu-extras{display:grid;gap:12px;width:min(560px,92vw);margin:16px 0 auto;position:relative;z-index:2}
  .nav__menu-langs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
  .nav__menu-langs button{min-height:44px;border:1px solid rgba(255,255,255,.22);border-radius:14px;background:rgba(255,255,255,.055);color:#fff;font:700 .8rem/1 var(--body);letter-spacing:.06em;cursor:pointer}
  .nav__menu-langs button.is-active{background:var(--lime);border-color:var(--lime);color:#10180f}
  .nav__menu-extras .nav__cta--menu{display:flex!important;justify-content:center;min-height:50px;font-size:.95rem}
  .nav__cta--menu .nav__cta-short{display:none}
  /* Hotel package / plan tabs: a lone single-line tab was 35 px tall. */
  .hotel-tab{min-height:44px}
  /* The open menu was ~65 % transparent: the hero headline and buttons read through the links. */
  .nav__menu-panel{background:
    radial-gradient(circle at 72% 18%, rgba(198,230,47,.10), transparent 24%),
    radial-gradient(circle at 24% 78%, rgba(15,169,166,.12), transparent 30%),
    linear-gradient(145deg, rgba(7,15,12,.93), rgba(14,31,25,.94)) !important}
}
/* "Así es la casa" → "Traslados": the boat clip is lazy (preload=none) and only starts after the
   first scroll; until a frame arrives the sticky layer showed a flat dark band. The poster now
   paints the layer itself, so the space between the blocks always shows the sea. */
.cinematic-journey__video-layer{background:#0b252a url('../video/maca-boat-poster.jpg') center/cover no-repeat}
@media(max-width:700px){
  /* ...and on phones the block no longer reserves 56 % of the screen around three lines of text. */
  .cinematic-journey .boat-journey .cinematic-scroll--autoplay{min-height:0!important}
  .cinematic-journey .boat-journey .cinematic-scroll--autoplay .cinematic-scroll__copy{padding:40px 20px 40px}
  /* Two stacked floating buttons covered the right column of cards; phones keep only WhatsApp
     (iOS scrolls to the top with a tap on the status bar). */
  .back-to-top{display:none!important}
  /* The last footer line scrolls clear of the WhatsApp button. */
  .footer{padding-bottom:96px!important}
}
/* Floating buttons step aside while the full-screen menu is open. */
body.menu-open .wa-menu,body.menu-open .back-to-top{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

/* ============ CRUCEROS: "¿Vienes en crucero?" (glass cards over the boat video, same family as the pick-up cards) ============ */
.cruise{position:relative;z-index:1;padding:clamp(24px,3vw,40px) var(--edge) clamp(64px,7vw,104px);color:#fff;scroll-margin-top:12px}
.cruise__inner{max-width:calc(var(--max) - 2 * var(--edge));margin:0 auto}
.cruise__head{margin-bottom:24px}
.cruise .cruise__tag{color:var(--lime);text-shadow:0 2px 14px rgba(0,0,0,.55)}
.cruise__head h2{margin-top:10px;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.08;color:#fff;text-shadow:0 3px 22px rgba(0,0,0,.62)}
.cruise__head p{margin-top:12px;max-width:62ch;font-size:1.02rem;line-height:1.55;color:rgba(255,255,255,.95);text-shadow:0 2px 14px rgba(0,0,0,.55)}
.cruise__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;list-style:none;margin:0;padding:0}
.cruise__card{display:flex;align-items:flex-start;gap:16px;min-width:0;padding:22px 20px;border:1px solid rgba(255,255,255,.34);border-radius:20px;background:rgba(7,34,40,.42);box-shadow:0 18px 48px rgba(3,20,24,.18),inset 0 1px 0 rgba(255,255,255,.13);-webkit-backdrop-filter:blur(12px) saturate(120%);backdrop-filter:blur(12px) saturate(120%)}
.cruise .cruise__icon{width:48px;height:48px}
.cruise__card-body{min-width:0}
.cruise__card h3{font-size:1.08rem;line-height:1.2;color:#fff}
.cruise__card p{margin-top:7px;font-size:.9rem;line-height:1.5;color:rgba(255,255,255,.92);overflow-wrap:anywhere}
.cruise__note{display:flex;align-items:flex-start;gap:12px;margin-top:16px;padding:14px 18px;border:1px solid rgba(255,255,255,.24);border-radius:16px;background:rgba(7,34,40,.36);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:.88rem;line-height:1.5;color:rgba(255,255,255,.92)}
.cruise__note-icon{flex:none;color:var(--lime);margin-top:1px}
.cruise__note-icon svg{width:22px;height:22px;display:block}
.cruise__cta{margin-top:24px;display:flex;justify-content:center}
@media(max-width:1023px){.cruise__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:639px){
  .cruise__grid{grid-template-columns:1fr;gap:12px}
  .cruise__card{padding:18px 16px;gap:14px}
  .cruise .cruise__icon{width:44px;height:44px}
  .cruise__cta .btn{width:100%;text-align:center;justify-content:center}
}

/* Narrow phones: keep the hero buttons clear of the WhatsApp bubble. */
@media (max-width:360px){ .hero__content{ padding-bottom:104px; } }


/* ============================================================
   NAV GRID (2026-10-19) — brand | links centred on the page | tools.
   Before, the links were flex:1 + centred in the leftover space, so with an
   empty left side they sat visibly off-centre. The brand mark is always visible (Mauricio's call, 2026-10-19).
   ============================================================ */
@media (min-width:861px){
  .nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:24px;}
  .nav__brand{display:flex!important;grid-column:1;justify-self:start;align-items:center;gap:11px;}
  .nav__brand img{width:44px;height:44px;border-radius:0;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35));}
  .nav__brand-text{font-size:1rem;letter-spacing:-.01em;}
  .nav__brand-text span{font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;margin-top:2px;}
  .nav__links--primary{grid-column:2;flex:0 0 auto;justify-self:center;gap:32px;order:0;}
  .nav__links--primary a{font-size:.95rem;font-weight:600;padding:8px 2px;border-bottom-width:2px;}
  .nav__tools{grid-column:3;justify-self:end;gap:14px;order:0;}
}
@media (max-width:860px){ .nav__brand{display:none!important;} }
@media (min-width:861px){ .nav__brand-text{white-space:nowrap;} }
@media (min-width:861px) and (max-width:1200px){ .nav__brand-text span{display:none;} .nav__links--primary{gap:22px;} }

/* Link from the activity / hotel modals to the landing page of the same activity or hotel (tools/build-pages.mjs). */
.modal__page-link{display:inline-block;margin-top:14px;font-weight:700;font-size:.92rem;color:var(--teal-deep);text-decoration:underline;text-underline-offset:3px}
.modal__page-link:hover{color:var(--ink)}
.hotel-modal__details .modal__page-link{margin-top:12px}
.footer__col h3 a{display:inline;color:inherit;font-size:inherit;margin:0;text-decoration:none}
.footer__col h3 a:hover{color:var(--white)}

/* AIRPORT LINE (2026-10-19) — price line under the transfer routes, links to /traslado-aeropuerto-roatan/ (Mauricio: US$20 hasta 2 personas). */
.transfer-note__airport{margin:22px 0 0;font-weight:600;color:rgba(255,255,255,.95);text-shadow:0 2px 12px rgba(0,0,0,.3);line-height:1.6;max-width:70ch}
.transfer-note__airport a{color:var(--lime);font-weight:700;text-decoration:none;white-space:nowrap}
.transfer-note__airport a:hover,.transfer-note__airport a:focus-visible{text-decoration:underline;text-underline-offset:4px}
@media (max-width:860px){.transfer-note__airport{margin-top:16px}.transfer-note__airport a{display:block;margin-top:4px}}

/* PHOTO PACKAGES LINE (2026-10-20) — under the activities grid, links to /paquetes-de-fotos/ (Mauricio's 3 packs: US$80/60/30). */
.activities__photos{max-width:var(--max);margin:34px auto 0;padding:0 var(--edge);font-weight:600;line-height:1.6;color:rgba(255,255,255,.95);text-shadow:0 2px 12px rgba(0,0,0,.35)}
.activities__photos a{color:var(--lime);font-weight:700;text-decoration:none;white-space:nowrap}
.activities__photos a:hover,.activities__photos a:focus-visible{text-decoration:underline;text-underline-offset:4px}
@media (max-width:860px){.activities__photos{padding:0 16px;margin-top:26px}.activities__photos a{display:block;margin-top:4px}}

/* PRICES (2026-10-20) — Mauricio's price list: one line on each activity card, a price block in the activity
   modal and on the landing pages (same markup, built by PRICING.block in main.js), a short note under the grid. */
.card__price{display:block;margin-top:6px;font-size:.88rem;font-weight:600;color:var(--sand);line-height:1.35}
.activities__prices{max-width:var(--max);margin:30px auto 0;padding:0 var(--edge);font-size:.9rem;line-height:1.6;color:rgba(255,255,255,.85);text-shadow:0 2px 12px rgba(0,0,0,.35)}
@media (max-width:860px){.activities__prices{padding:0 16px;margin-top:24px}}
.price-block{margin:20px 0 4px;padding:18px 20px;background:var(--white);border-radius:18px;box-shadow:0 6px 20px rgba(13,22,19,.06)}
.price-block .price-block__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0}
.price-block__label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--teal-deep)}
.price-block__head strong{font-family:var(--display);font-size:1.3rem;line-height:1.2;color:var(--ink)}
.price-block__opts{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:0}
.price-block__opts li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:9px 0;border-top:1px solid #e8ebe4;font-size:.94rem;color:#2c332d}
.price-block__opt{min-width:0;overflow-wrap:anywhere}
.price-block__opt small{display:block;margin-top:2px;font-size:.84rem;color:#5a6158;line-height:1.45}
.price-block__opts b{flex:none;font-family:var(--display);font-size:1.08rem;color:var(--teal-deep);white-space:nowrap}
.price-block .price-block__note{margin:10px 0 0;font-size:.84rem;line-height:1.5;color:#5a6158}
.price-block .price-block__note--strong{font-weight:600;color:#2c332d}
.footer__col .footer__hours{font-size:.84rem;line-height:1.5;max-width:30ch;opacity:.9}
/* Footer legal links (Privacidad · Términos · Aviso legal), written by tools/build-pages.mjs */
.footer__legal{display:flex;flex-wrap:wrap;align-items:center;gap:0 2px}
.footer__legal a{color:var(--sand-dim);text-decoration:none;display:inline-flex;align-items:center;min-height:32px}
.footer__legal a:hover,.footer__legal a:focus-visible{color:var(--white);text-decoration:underline;text-underline-offset:3px}
.policy-terms-link a{font-weight:700;color:var(--teal-deep);text-underline-offset:3px}
