/* ═══════════════════════════════════════════════════════════════════════
   NAUTILUS ISLA FUERTE — Design tokens & components
   Sistema de diseño Help Support, reskineado con la marca Nautilus.
   Tipografías: Source Serif 4 (display) · IBM Plex Sans (UI) · IBM Plex Mono (labels)
   ═══════════════════════════════════════════════════════════════════════ */

:root {
  /* ── Brand color · Jireh (black / white / light blue) ────────── */
  /* PRIMARY ramp — near-black ink (wordmark, headings) */
  --nt-navy-50:#EDEEF0; --nt-navy-100:#D3D5D9; --nt-navy-200:#A9ACB3;
  --nt-navy-300:#7C808A; --nt-navy-400:#4E525C; --nt-navy-500:#2B2E36;
  --nt-navy-600:#16181D; /* PRIMARY — wordmark */ --nt-navy-700:#101216;
  --nt-navy-800:#0B0C0F; --nt-navy-900:#050608;

  /* ACCENT ramp — light blue / sky */
  --nt-teal-50:#EAF6FD; --nt-teal-100:#CBE8FB; --nt-teal-200:#9AD3F5;
  --nt-teal-300:#5FBBEC; --nt-teal-400:#2FA1E0; --nt-teal-500:#1478B5; /* accent-safe (white text AA) */
  --nt-teal-600:#0F5E90; --nt-teal-700:#0B486E;
  --nt-teal-bright:#4FB8EE; /* light-blue glow / highlight */

  /* ENERGY (pop) — kept in the blue family so palette stays black/white/blue */
  --nt-coral-400:#2FA1E0; --nt-coral-500:#1478B5; --nt-coral-600:#0F5E90;

  --nt-ink:#14161A; --nt-bone:#FAFBFC; --nt-paper:#EFF3F7; --nt-white:#FFFFFF;
  --nt-slate-900:#16202E; --nt-slate-700:#3A4658; --nt-slate-600:#55637A;
  --nt-slate-500:#6C7A90; --nt-slate-400:#94A0B2; --nt-slate-300:#C4CDD9;
  --nt-slate-200:#DEE4EC; --nt-slate-100:#EBEFF4;

  /* ── Semantic surfaces ───────────────────────────────────────── */
  --nt-primary:var(--nt-navy-600);
  --nt-accent:var(--nt-teal-500);
  --nt-energy:var(--nt-coral-500);
  --nt-bg:var(--nt-bone);
  --nt-bg-alt:var(--nt-white);
  --nt-fg:var(--nt-ink);
  --nt-fg-mute:var(--nt-slate-600);
  --nt-fg-faint:var(--nt-slate-400);
  --nt-line:var(--nt-slate-200);
  --nt-line-soft:var(--nt-slate-100);

  /* ── Typography ──────────────────────────────────────────────── */
  --nt-serif:"Source Serif 4","Source Serif Pro",Georgia,serif;
  --nt-sans:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --nt-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;

  --nt-tracking-eyebrow:0.22em;
  --nt-tracking-display:-0.02em;
  --nt-tracking-tight:-0.01em;

  /* ── Motion (Help Support easing) ────────────────────────────── */
  --nt-ease:cubic-bezier(.2,.7,.2,1);
  --nt-dur-1:120ms; --nt-dur-2:240ms; --nt-dur-3:420ms;

  /* ── Elevation (ocean-tinted, subtle) ────────────────────────── */
  --nt-shadow-1:0 1px 2px rgba(20,22,26,.06),0 1px 1px rgba(20,22,26,.05);
  --nt-shadow-2:0 4px 14px rgba(20,22,26,.10),0 2px 6px rgba(20,22,26,.06);
  --nt-shadow-3:0 18px 48px rgba(20,22,26,.16),0 6px 16px rgba(20,22,26,.08);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%;}
body{
  margin:0;font-family:var(--nt-sans);color:var(--nt-fg);background:var(--nt-bg);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-feature-settings:"ss01";overflow-x:hidden;
}

/* ── Typographic primitives ───────────────────────────────────── */
.serif{font-family:var(--nt-serif);}
.mono{font-family:var(--nt-mono);}
.eyebrow{
  font-family:var(--nt-mono);font-size:11px;font-weight:500;
  letter-spacing:var(--nt-tracking-eyebrow);text-transform:uppercase;
  color:var(--nt-teal-600);
}
.eyebrow.on-dark{color:var(--nt-teal-bright);}
.display{
  font-family:var(--nt-serif);font-weight:400;line-height:1.03;
  letter-spacing:var(--nt-tracking-display);
  font-size:clamp(44px,7vw,88px);color:var(--nt-navy-600);
}
.h1{font-family:var(--nt-serif);font-weight:400;line-height:1.06;color:var(--nt-navy-600);
  letter-spacing:var(--nt-tracking-display);font-size:clamp(34px,5vw,60px);}
.h2{font-family:var(--nt-serif);font-weight:400;line-height:1.1;color:var(--nt-navy-600);
  letter-spacing:var(--nt-tracking-tight);font-size:clamp(28px,3.6vw,44px);}
.h3{font-family:var(--nt-serif);font-weight:500;line-height:1.2;font-size:clamp(21px,2.2vw,28px);color:var(--nt-navy-600);}
.lede{font-family:var(--nt-serif);font-size:clamp(18px,2vw,23px);line-height:1.55;color:var(--nt-fg-mute);font-weight:400;}
.body{font-size:17.5px;line-height:1.72;color:var(--nt-fg-mute);}
.small{font-size:14.5px;line-height:1.62;}

/* ── Layout ───────────────────────────────────────────────────── */
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(20px,5vw,56px);}
.section{padding:clamp(72px,11vw,140px) 0;}
.section-tight{padding:clamp(48px,7vw,88px) 0;}

/* ── Grids ────────────────────────────────────────────────────── */
.two-col{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,80px);align-items:center;}
.two-col-wide{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;}
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;}
@media (max-width:860px){
  .two-col,.two-col-wide,.cards-3,.foot-grid{grid-template-columns:1fr;}
}

/* ── Buttons ──────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--nt-sans);font-weight:600;font-size:15px;
  padding:14px 24px;border-radius:999px;border:1.5px solid transparent;
  cursor:pointer;text-decoration:none;transition:all var(--nt-dur-2) var(--nt-ease);
  will-change:transform;
}
.btn-primary{background:var(--nt-teal-500);color:#fff;}
.btn-primary:hover{background:var(--nt-teal-600);transform:translateY(-2px);box-shadow:0 10px 26px rgba(20,120,181,.35);}
.btn-coral{background:var(--nt-coral-500);color:#fff;}
.btn-coral:hover{background:var(--nt-coral-600);transform:translateY(-2px);box-shadow:0 10px 26px rgba(20,120,181,.30);}
.btn-ghost{background:transparent;color:var(--nt-navy-600);border-color:var(--nt-navy-200);}
.btn-ghost:hover{border-color:var(--nt-navy-600);background:var(--nt-navy-600);color:#fff;}
.btn-ghost.on-dark{color:#fff;border-color:rgba(255,255,255,.35);}
.btn-ghost.on-dark:hover{background:#fff;color:var(--nt-navy-600);border-color:#fff;}

/* ── Nav ──────────────────────────────────────────────────────── */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;transition:all var(--nt-dur-3) var(--nt-ease);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;
  padding:18px clamp(20px,5vw,56px);max-width:1360px;margin:0 auto;}
.nav .logo{height:54px;transition:opacity var(--nt-dur-2);}
.nav .logo-navy{display:none;}
.nav.scrolled{background:rgba(251,249,245,.86);backdrop-filter:blur(14px);box-shadow:var(--nt-shadow-1);}
.nav.scrolled .logo-white{display:none;}
.nav.scrolled .logo-navy{display:block;}
.nav-links{display:flex;align-items:center;gap:28px;}
.nav-links a{font-size:15.5px;font-weight:500;color:rgba(255,255,255,.9);text-decoration:none;transition:color var(--nt-dur-1);}
.nav-links a:hover{color:var(--nt-teal-bright);}
.nav.scrolled .nav-links a{color:var(--nt-navy-600);}
.nav.scrolled .nav-links a:hover{color:var(--nt-teal-600);}
.nav-links a.nav-admin{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.55;border:1px solid rgba(255,255,255,.25);padding:5px 11px;border-radius:999px;}
.nav-links a.nav-admin:hover{opacity:1;}
.nav.scrolled .nav-links a.nav-admin{border-color:var(--nt-line);}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:30px;height:22px;position:relative;}
.nav-toggle span{position:absolute;left:0;right:0;height:2.5px;background:#fff;border-radius:2px;transition:all var(--nt-dur-2) var(--nt-ease);}
.nav.scrolled .nav-toggle span{background:var(--nt-navy-600);}
.nav-toggle span:nth-child(1){top:2px;} .nav-toggle span:nth-child(2){top:10px;} .nav-toggle span:nth-child(3){top:18px;}

/* ── Hero ─────────────────────────────────────────────────────── */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media img,.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-media video{z-index:1;}
.hero-media .hero-fallback{z-index:0;}
.hero-media::after{content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(6,20,42,.62) 0%,rgba(6,20,42,.28) 38%,rgba(6,20,42,.55) 72%,rgba(6,20,42,.94) 100%);}
.hero-content{position:relative;z-index:2;padding-top:clamp(120px,13vw,170px);padding-bottom:clamp(56px,9vw,110px);color:#fff;}
/* PADI Dive Resort badge: destacado, no un eyebrow discreto */
.padi-badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--nt-mono);font-size:clamp(11px,1.1vw,13px);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(20,120,181,.92);border:1px solid rgba(255,255,255,.35);padding:9px 16px;border-radius:999px;backdrop-filter:blur(4px);}
/* Titular del hero: 3 líneas en desktop, sin chocar con el menú */
.hero-title{max-width:640px;font-size:clamp(38px,5.2vw,66px);}
@media (max-width:900px){ .hero-title{max-width:78vw;} }
.hero h1{color:#fff;max-width:640px;}
.hero .lede{color:rgba(255,255,255,.82);max-width:44ch;}
.scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;
  width:26px;height:42px;border:2px solid rgba(255,255,255,.5);border-radius:14px;display:flex;justify-content:center;padding-top:8px;}
.scroll-cue::before{content:"";width:4px;height:8px;background:#fff;border-radius:2px;animation:scrolldot 1.6s infinite;}
@keyframes scrolldot{0%{opacity:0;transform:translateY(-4px);}40%{opacity:1;}80%{opacity:0;transform:translateY(10px);}}

/* ── Stat strip ───────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--nt-line);border-radius:16px;overflow:hidden;box-shadow:var(--nt-shadow-2);}
.stat{background:var(--nt-bg-alt);padding:30px 24px;text-align:center;}
.stat .n{font-family:var(--nt-serif);font-size:clamp(30px,4vw,46px);line-height:1;color:var(--nt-navy-600);}
.stat .n b{color:var(--nt-teal-600);font-weight:400;}
.stat .l{font-family:var(--nt-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--nt-fg-faint);margin-top:10px;}

/* ── Cards ────────────────────────────────────────────────────── */
.card{background:var(--nt-bg-alt);border:1px solid var(--nt-line);border-radius:16px;overflow:hidden;transition:transform var(--nt-dur-3) var(--nt-ease),box-shadow var(--nt-dur-3) var(--nt-ease);}
.card:hover{transform:translateY(-6px);box-shadow:var(--nt-shadow-3);}
.card-media{aspect-ratio:4/5;overflow:hidden;}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--nt-ease);}
.card:hover .card-media img{transform:scale(1.06);}
.card-body{padding:22px;}
.price{font-family:var(--nt-serif);font-size:24px;color:var(--nt-navy-600);}
.price small{font-family:var(--nt-mono);font-size:11px;color:var(--nt-fg-faint);letter-spacing:.05em;}

.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--nt-mono);font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:999px;
  background:var(--nt-teal-50);color:var(--nt-teal-700);border:1px solid var(--nt-teal-100);}
.chip.coral{background:#FCEBEA;color:var(--nt-coral-600);border-color:#F7CFCC;}
button.chip{cursor:pointer;}
.chip.is-on{background:var(--nt-navy-600);color:#fff;border-color:var(--nt-navy-600);}
/* short hero for blog/guide pages */
.page-hero--sm{min-height:auto;padding-top:clamp(120px,18vh,180px);padding-bottom:clamp(48px,7vw,80px);}
.page-hero--sm .ph-bg{object-position:center;}
/* guide cards */
.guide-card{display:block;background:var(--nt-white);border:1px solid var(--nt-line-soft);overflow:hidden;transition:transform var(--nt-dur-1),box-shadow var(--nt-dur-1);}
.guide-card:hover{transform:translateY(-4px);box-shadow:var(--nt-shadow-2);}
.guide-card .card-media{overflow:hidden}
.guide-card .card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--nt-ease);}
.guide-card:hover .card-media img{transform:scale(1.05);}

/* dark section */
.on-navy{background:var(--nt-navy-600);color:#fff;}
.on-navy .h2,.on-navy .display,.on-navy .h3{color:#fff;}
.on-navy .body,.on-navy .lede{color:rgba(255,255,255,.72);}
.on-navy .stat{background:var(--nt-navy-700);}
.on-navy .stat .n{color:#fff;} .on-navy .stat .n b{color:var(--nt-teal-bright);}

/* raya águila spot texture */
.spots{background-image:radial-gradient(circle at 20% 30%,rgba(34,224,198,.06) 0 8px,transparent 9px),radial-gradient(circle at 70% 60%,rgba(34,224,198,.05) 0 10px,transparent 11px),radial-gradient(circle at 45% 85%,rgba(34,224,198,.05) 0 6px,transparent 7px);background-size:180px 180px;}

.eyeline{width:44px;height:2px;background:var(--nt-teal-500);border-radius:2px;}

/* ── Reveal animation ─────────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(28px);}
.reveal.in{opacity:1;transform:none;transition:opacity .9s var(--nt-ease),transform .9s var(--nt-ease);}
.reveal-stagger>*{opacity:0;transform:translateY(24px);}
.reveal-stagger.in>*{opacity:1;transform:none;transition:opacity .8s var(--nt-ease),transform .8s var(--nt-ease);}

/* ── Footer ───────────────────────────────────────────────────── */
.footer{background:var(--nt-navy-800);color:rgba(255,255,255,.7);}
.footer a{color:rgba(255,255,255,.7);text-decoration:none;transition:color var(--nt-dur-1);}
.footer a:hover{color:var(--nt-teal-bright);}

/* ── WhatsApp FAB ─────────────────────────────────────────────── */
.fab{position:fixed;right:22px;bottom:22px;z-index:70;width:60px;height:60px;border-radius:50%;
  background:var(--nt-teal-500);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.25);
  transition:transform var(--nt-dur-2) var(--nt-ease);}
.fab:hover{transform:scale(1.08);}
.fab svg{width:32px;height:32px;fill:#fff;}

/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width:900px){
  .stats{grid-template-columns:repeat(2,1fr);}
  .nav-links{position:fixed;inset:0 0 0 auto;width:min(80vw,320px);background:var(--nt-navy-600);
    flex-direction:column;align-items:flex-start;justify-content:center;gap:22px;padding:0 40px;
    transform:translateX(100%);transition:transform var(--nt-dur-3) var(--nt-ease);}
  .nav-links.open{transform:none;}
  .nav-links a{color:#fff!important;font-size:20px;}
  .nav-toggle{display:block;}
}
/* prevent grid/flex children from overflowing (min-width:auto default) */
.stat,.card,.cards-3>*,.two-col>*,.two-col-wide>*,.foot-grid>*{min-width:0;}
.stat .l{overflow-wrap:anywhere;}
@media (max-width:640px){
  .stats{grid-template-columns:1fr 1fr;}
  .stat{padding:20px 10px;}
  .stat .n{font-size:30px;}
  .stat .l{font-size:9px;letter-spacing:.04em;}
  .hero .row{flex-direction:column;align-items:stretch;width:100%;}
  .hero .row .btn{justify-content:center;width:100%;}
}
@media (max-width:380px){ .stats{grid-template-columns:1fr;} }
/* never let ch-based widths exceed a small screen */
@media (max-width:640px){
  .lede,.display,.h1,.h2,.hero h1,.hero .lede,.body{max-width:100%!important;}
  .card-body .price small{display:block;margin-top:4px;}
  .card-media{aspect-ratio:16/11;}
  img{max-width:100%;height:auto;}
}

/* ══════ Language toggle ══════ */
.lang-toggle{font-family:var(--nt-mono);font-size:12.5px;font-weight:500;letter-spacing:.1em;color:#fff;background:transparent;border:1.5px solid rgba(255,255,255,.4);border-radius:999px;padding:6px 13px;cursor:pointer;transition:all var(--nt-dur-2) var(--nt-ease);}
.lang-toggle:hover{border-color:var(--nt-teal-bright);color:var(--nt-teal-bright);}
.nav.scrolled .lang-toggle{color:var(--nt-navy-600);border-color:var(--nt-navy-200);}
.nav.scrolled .lang-toggle:hover{border-color:var(--nt-teal-600);color:var(--nt-teal-600);}

/* ══════ Preloader ══════ */
.preloader{position:fixed;inset:0;z-index:200;background:var(--nt-navy-600);display:flex;align-items:center;justify-content:center;transition:opacity .8s var(--nt-ease),visibility .8s;}
.preloader.done{opacity:0;visibility:hidden;}
.preloader-in{text-align:center;}
.preloader-logo{height:52px;opacity:0;animation:fadeUp .8s var(--nt-ease) forwards;}
.preloader-bar{width:150px;height:2px;background:rgba(255,255,255,.15);border-radius:2px;margin:24px auto 0;overflow:hidden;}
.preloader-bar span{display:block;height:100%;width:40%;background:var(--nt-teal-bright);border-radius:2px;animation:loadbar 1.15s var(--nt-ease) infinite;}
.preloader-cue{margin-top:14px;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.55);opacity:0;animation:fadeUp .8s .2s var(--nt-ease) forwards;}
@keyframes loadbar{0%{transform:translateX(-130%)}100%{transform:translateX(340%)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ══════ Bubbles overlay ══════ */
#bubbles{position:fixed;inset:0;z-index:40;pointer-events:none;}

/* ══════ Flip service cards ══════ */
.cards-3{align-items:stretch;}
.flip{perspective:1600px;height:clamp(470px,54vw,545px);cursor:pointer;outline:none;}
.flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .75s var(--nt-ease);}
.flip.is-flipped .flip-inner{transform:rotateY(180deg);}
.flip:focus-visible .flip-inner{box-shadow:0 0 0 3px var(--nt-teal-300);border-radius:18px;}
.flip-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;overflow:hidden;border:1px solid var(--nt-line);background:var(--nt-bg-alt);display:flex;flex-direction:column;}
.flip-front{box-shadow:var(--nt-shadow-1);transition:box-shadow .4s var(--nt-ease);}
.flip:hover .flip-front{box-shadow:var(--nt-shadow-3);}
.flip-front .card-media{aspect-ratio:auto;flex:1;min-height:0;}
.flip-front .card-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--nt-ease);}
.flip:hover .flip-front .card-media img{transform:scale(1.05);}
.flip-body{padding:20px 22px 22px;}
.flip-hint{display:block;margin-top:12px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--nt-teal-600);}
.flip-hint::before{content:"\21BB  ";}
.flip-back{transform:rotateY(180deg);background:var(--nt-navy-600);color:#fff;padding:28px 26px;}
.flip-back .h3{color:#fff;}
.flip-desc{color:rgba(255,255,255,.78);font-size:15px;line-height:1.55;margin:10px 0 16px;}
.flip-list{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-direction:column;gap:9px;}
.flip-list li{position:relative;padding-left:22px;font-size:14.5px;line-height:1.4;color:rgba(255,255,255,.9);}
.flip-list li::before{content:"";position:absolute;left:0;top:6px;width:8px;height:8px;border-radius:50%;background:var(--nt-teal-bright);}
.flip-cta{margin-top:auto;align-self:flex-start;}

/* isla dive-site cards (light) */
.site-card{border:1px solid var(--nt-line);border-radius:16px;padding:22px;background:var(--nt-bone);}
.site-tag{color:var(--nt-teal-600);font-size:12px;}
.team-role{font-size:11.5px;color:var(--nt-teal-600);letter-spacing:.1em;text-transform:uppercase;margin:6px 0 12px;}
.foot-h{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--nt-teal-bright);margin-bottom:16px;}

/* ══════ Current nav link ══════ */
.nav-links a.is-current{color:var(--nt-teal-bright);}
.nav.scrolled .nav-links a.is-current{color:var(--nt-teal-600);}

/* ══════ Interior page header ══════ */
.page-hero{position:relative;min-height:clamp(420px,56vh,560px);display:flex;align-items:flex-end;overflow:hidden;background:var(--nt-navy-600);}
.page-hero .ph-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.page-hero video.ph-bg{z-index:1;}
.page-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(6,20,42,.5),rgba(6,20,42,.32) 42%,rgba(6,20,42,.9));}
.page-hero .wrap{position:relative;z-index:2;color:#fff;padding-bottom:clamp(40px,6vw,72px);padding-top:clamp(120px,15vw,160px);}
.page-hero h1{color:#fff;max-width:18ch;}
.page-hero .lede{color:rgba(255,255,255,.86);max-width:54ch;margin-top:18px;}
.page-hero .eyebrow{color:var(--nt-teal-bright);}

/* ══════ Accordions ══════ */
.acc{border-bottom:1px solid var(--nt-line);}
.acc-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;cursor:pointer;}
.acc-head .h3{margin:0;transition:color var(--nt-dur-2);}
.acc:hover .acc-head .h3{color:var(--nt-teal-600);}
.acc-ico{flex:none;width:22px;height:22px;position:relative;}
.acc-ico::before,.acc-ico::after{content:"";position:absolute;background:var(--nt-teal-600);border-radius:2px;}
.acc-ico::before{top:10px;left:1px;right:1px;height:2px;}
.acc-ico::after{left:10px;top:1px;bottom:1px;width:2px;transition:opacity .3s var(--nt-ease);}
.acc.open .acc-ico::after{opacity:0;}
.acc-body{max-height:0;overflow:hidden;transition:max-height .45s var(--nt-ease);}
.acc.open .acc-body{max-height:700px;}
.acc-body-in{padding:0 0 24px;max-width:70ch;}

/* ══════ Rate table ══════ */
.rate-wrap{overflow-x:auto;border:1px solid var(--nt-line);border-radius:14px;background:var(--nt-bg-alt);}
.rate-table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:560px;}
.rate-table th{text-align:left;font-family:var(--nt-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--nt-fg-faint);padding:14px 16px;border-bottom:2px solid var(--nt-navy-600);white-space:nowrap;}
.rate-table td{padding:13px 16px;border-bottom:1px solid var(--nt-line-soft);color:var(--nt-fg);}
.rate-table td.rt-name{font-weight:600;}
.rate-table td.rt-price{font-family:var(--nt-serif);color:var(--nt-navy-600);white-space:nowrap;}
.rate-table tr:last-child td{border-bottom:0;}
.rate-table tbody tr:hover td{background:var(--nt-bone);}

/* ══════ Service rows ══════ */
.svc-row{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:20px 0;border-bottom:1px solid var(--nt-line);}
.svc-row .svc-l h3{margin:0 0 4px;}
.svc-row .svc-p{font-family:var(--nt-serif);color:var(--nt-navy-600);font-size:20px;white-space:nowrap;text-align:right;}
.svc-row .svc-p small{display:block;font-family:var(--nt-mono);font-size:10.5px;color:var(--nt-fg-faint);letter-spacing:.04em;}

/* ══════ Feature list / blog cards ══════ */
.tile{background:var(--nt-bg-alt);border:1px solid var(--nt-line);border-radius:16px;overflow:hidden;transition:transform var(--nt-dur-3) var(--nt-ease),box-shadow var(--nt-dur-3) var(--nt-ease);text-decoration:none;color:inherit;display:block;}
.tile:hover{transform:translateY(-5px);box-shadow:var(--nt-shadow-3);}
.tile .tile-media{aspect-ratio:16/10;overflow:hidden;}
.tile .tile-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--nt-ease);}
.tile:hover .tile-media img{transform:scale(1.05);}
.tile .tile-body{padding:22px;}

/* ══════ Dive-site map ══════ */
.divemap{display:grid;grid-template-columns:340px 1fr;gap:0;border:1px solid var(--nt-line);border-radius:20px;overflow:hidden;background:var(--nt-bg-alt);box-shadow:var(--nt-shadow-2);}
.dm-side{display:flex;flex-direction:column;max-height:620px;border-right:1px solid var(--nt-line);min-width:0;}
.dm-search{padding:16px;border-bottom:1px solid var(--nt-line);}
.dm-search input{width:100%;font-family:var(--nt-sans);font-size:14.5px;padding:11px 14px;border:1px solid var(--nt-line);border-radius:10px;background:var(--nt-bone);color:var(--nt-fg);}
.dm-search input:focus{outline:none;border-color:var(--nt-teal-500);}
.dm-filters{padding:14px 16px 4px;border-bottom:1px solid var(--nt-line);}
.dm-flabel{font-family:var(--nt-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--nt-fg-faint);margin:0 0 8px;}
.dm-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.dm-chip{font-size:12.5px;padding:6px 12px;border-radius:999px;border:1px solid var(--nt-line);background:#fff;color:var(--nt-fg-mute);cursor:pointer;transition:all .15s;font-family:var(--nt-sans);}
.dm-chip:hover{border-color:var(--nt-navy-300);}
.dm-chip.active{background:var(--nt-navy-600);color:#fff;border-color:var(--nt-navy-600);}
.dm-list{overflow-y:auto;flex:1;}
.dm-count{padding:10px 16px;font-family:var(--nt-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--nt-fg-faint);border-bottom:1px solid var(--nt-line-soft);}
.dm-item{padding:13px 16px;border-bottom:1px solid var(--nt-line-soft);cursor:pointer;transition:background .15s;}
.dm-item:hover,.dm-item.active{background:var(--nt-bone);}
.dm-item h4{font-family:var(--nt-serif);font-size:16.5px;color:var(--nt-navy-600);margin:0 0 3px;}
.dm-item .meta{font-size:12.5px;color:var(--nt-fg-mute);}
.dm-lv{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle;}
.dm-map{min-height:620px;position:relative;}
#diveMap{position:absolute;inset:0;width:100%;height:100%;background:#dfeaf0;}
.leaflet-popup-content-wrapper{border-radius:14px;box-shadow:var(--nt-shadow-3);padding:0;overflow:hidden;}
.leaflet-popup-content{margin:0;width:280px!important;font-family:var(--nt-sans);}
.dm-pop{padding:18px;}
.dm-pop h3{font-family:var(--nt-serif);color:var(--nt-navy-600);font-size:20px;margin:0 0 10px;}
.dm-pop .prow{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.dm-pop .tag{font-family:var(--nt-mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;padding:5px 9px;border-radius:8px;background:var(--nt-teal-50);color:var(--nt-teal-700);}
.dm-pop .lbl{font-family:var(--nt-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--nt-fg-faint);margin:0 0 4px;}
.dm-pop p{font-size:12.5px;line-height:1.5;color:var(--nt-fg-mute);margin:0 0 14px;}
.dm-pop .btn{font-size:13px;padding:10px 16px;}
/* Leaflet forces anchor text blue; keep the popup button legible (white on navy) */
.leaflet-popup-content a.btn-primary,.dm-pop a.btn-primary{color:#fff!important;text-decoration:none!important;}
.leaflet-popup-content a.btn-primary:hover,.dm-pop a.btn-primary:hover{color:#fff!important;}

/* light-section "what's included" checklist (dark text, teal check) */
.inc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;}
.inc-list li{position:relative;padding-left:32px;font-size:15.5px;line-height:1.45;color:var(--nt-fg);}
.inc-list li::before{content:"";position:absolute;left:0;top:1px;width:21px;height:21px;border-radius:50%;background:var(--nt-teal-50);}
.inc-list li::after{content:"";position:absolute;left:6px;top:6px;width:9px;height:5px;border-left:2px solid var(--nt-teal-600);border-bottom:2px solid var(--nt-teal-600);transform:rotate(-45deg);}

/* nicer related/other-service link buttons */
.loc-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:11px;}
.loc-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border:1px solid var(--nt-line);border-radius:13px;background:var(--nt-white);color:var(--nt-navy-600);font-weight:500;font-size:15px;line-height:1.3;text-decoration:none;transition:transform var(--nt-dur-1),background var(--nt-dur-1),color var(--nt-dur-1),border-color var(--nt-dur-1),box-shadow var(--nt-dur-1);}
.loc-link:hover{background:var(--nt-navy-600);color:#fff;border-color:var(--nt-navy-600);transform:translateY(-2px);box-shadow:var(--nt-shadow-2);}
.loc-link .ar{flex:none;font-family:var(--nt-mono);opacity:.5;transition:transform var(--nt-dur-1),opacity var(--nt-dur-1);}
.loc-link:hover .ar{opacity:1;transform:translateX(3px);}
.leaflet-container{font-family:var(--nt-sans);}

/* ══════ How-to timeline ══════ */
.tl-route{margin-bottom:40px;}
.tl-route:last-child{margin-bottom:0;}
.tl-route h3{font-family:var(--nt-serif);font-size:22px;color:var(--nt-navy-600);margin:0 0 6px;}
.tl-route .rule{width:44px;height:2px;background:var(--nt-teal-500);border-radius:2px;margin:0 0 22px;}
.tl-steps{position:relative;padding-left:54px;}
.tl-steps::before{content:"";position:absolute;left:16px;top:8px;bottom:14px;width:2px;background:var(--nt-line);}
.tl-step{position:relative;padding-bottom:22px;}
.tl-step:last-child{padding-bottom:0;}
.tl-step .ico{position:absolute;left:-54px;top:-2px;width:34px;height:34px;border-radius:9px;background:var(--nt-navy-600);display:flex;align-items:center;justify-content:center;}
.tl-step .ico svg{width:17px;height:17px;fill:var(--nt-teal-bright);}
.tl-step h4{font-family:var(--nt-serif);font-size:17px;color:var(--nt-navy-600);margin:0 0 3px;}
.tl-step p{font-size:15px;color:var(--nt-fg-mute);margin:0;line-height:1.6;}
@media (max-width:820px){
  .divemap{grid-template-columns:1fr;}
  .dm-side{max-height:none;border-right:0;border-bottom:1px solid var(--nt-line);}
  .dm-list{max-height:260px;}
  .dm-map,#diveMap{min-height:440px;}
}

/* ══════ Blog article prose ══════ */
.prose{max-width:720px;margin:0 auto;}
.prose>div>*:first-child{margin-top:0;}
.prose p{font-size:18px;line-height:1.75;color:#25303c;margin:0 0 20px;}
.prose .lead{font-size:21px;line-height:1.62;color:var(--nt-navy-600);font-family:var(--nt-serif);margin-bottom:24px;}
.prose h2,.prose .h3{font-family:var(--nt-serif);color:var(--nt-navy-600);font-size:24px;line-height:1.2;margin:34px 0 12px;font-weight:500;}
.prose a{color:var(--nt-teal-700);text-decoration:underline;text-underline-offset:2px;}
.prose .mono{font-family:var(--nt-mono);font-size:15px;color:var(--nt-fg-mute);}
.prose ul,.prose ol{margin:0 0 20px;padding-left:22px;}
.prose li{font-size:18px;line-height:1.7;color:#25303c;margin:0 0 8px;}
.date-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;list-style:none;}
.date-chips li{font-family:var(--nt-mono);font-size:12px;letter-spacing:.02em;padding:6px 11px;border:1px solid var(--nt-line);border-radius:999px;color:var(--nt-navy-600);background:var(--nt-bg-alt);white-space:nowrap;}
.art-fig{margin:30px 0;}
.art-fig img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:16px;display:block;}
.art-fig figcaption{font-family:var(--nt-mono);font-size:12.5px;letter-spacing:.02em;color:var(--nt-fg-mute);margin-top:10px;text-align:center;}
.art-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:38px;padding-top:28px;border-top:1px solid var(--nt-line);}
.blog-controls{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.blog-controls input{flex:1;min-width:220px;font-family:var(--nt-sans);font-size:15px;padding:13px 16px;border:1px solid var(--nt-line);border-radius:12px;background:var(--nt-bg-alt);color:var(--nt-fg);}
.blog-controls input:focus{outline:none;border-color:var(--nt-teal-500);}
.blog-card .chip{font-size:10.5px;}
@media (max-width:640px){ .prose p{font-size:17px;} .prose .lead{font-size:19px;} }

/* ══════ Horizontal scroll strip (dive sites) ══════ */
.hscroll{display:flex;gap:14px;overflow-x:auto;padding:6px 2px 18px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.hscroll::-webkit-scrollbar{height:8px;}
.hscroll::-webkit-scrollbar-thumb{background:var(--nt-line);border-radius:8px;}
.hscroll::-webkit-scrollbar-track{background:transparent;}
.site-chip{flex:0 0 auto;scroll-snap-align:start;width:238px;background:var(--nt-bg-alt);border:1px solid var(--nt-line);border-radius:14px;padding:18px 20px;text-decoration:none;color:inherit;transition:transform .3s var(--nt-ease),box-shadow .3s var(--nt-ease),border-color .3s;}
.site-chip:hover{transform:translateY(-4px);box-shadow:var(--nt-shadow-2);border-color:var(--nt-navy-200);}
.site-chip .tag{font-family:var(--nt-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--nt-fg-faint);}
.site-chip h4{font-family:var(--nt-serif);font-size:19px;color:var(--nt-navy-600);margin:6px 0 8px;line-height:1.12;}
.site-chip .meta{font-size:13px;color:var(--nt-fg-mute);display:flex;align-items:center;}

/* ══════ Image gallery slider + lightbox ══════ */
.gallery{position:relative;}
.gallery-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.gallery-track::-webkit-scrollbar{display:none;}
.gallery-track img{flex:0 0 auto;width:min(80vw,540px);aspect-ratio:3/2;object-fit:cover;border-radius:18px;scroll-snap-align:center;cursor:zoom-in;background:var(--nt-navy-50);}
.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid var(--nt-line);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--nt-shadow-2);z-index:3;transition:transform var(--nt-dur-2);}
.gallery-nav:hover{transform:translateY(-50%) scale(1.08);}
.gallery-nav.prev{left:-8px;} .gallery-nav.next{right:-8px;}
.gallery-nav svg{width:20px;height:20px;fill:var(--nt-navy-600);}
@media (max-width:720px){.gallery-nav{display:none;}}
.lightbox{position:fixed;inset:0;z-index:120;background:rgba(6,20,42,.93);display:none;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;}
.lightbox.open{display:flex;}
.lightbox img{max-width:94vw;max-height:90vh;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox-close{position:absolute;top:16px;right:24px;color:#fff;font-size:38px;line-height:1;cursor:pointer;}

/* ══════ Course quiz ══════ */
.quiz{background:var(--nt-navy-600);color:#fff;border-radius:22px;padding:clamp(30px,5vw,52px);position:relative;overflow:hidden;}
.quiz .spots-x{position:absolute;inset:0;opacity:.5;pointer-events:none;}
.quiz>*{position:relative;z-index:2;}
.quiz-progress{font-family:var(--nt-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--nt-teal-bright);margin-bottom:16px;}
.quiz-q{font-family:var(--nt-serif);font-size:clamp(22px,3vw,30px);line-height:1.18;margin:0 0 24px;color:#fff;max-width:22ch;}
.quiz-opts{display:flex;flex-direction:column;gap:12px;max-width:560px;}
.quiz-opt{text-align:left;font-family:var(--nt-sans);font-size:16px;font-weight:500;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:16px 20px;cursor:pointer;transition:all var(--nt-dur-2) var(--nt-ease);}
.quiz-opt:hover{background:var(--nt-teal-500);color:#fff;border-color:var(--nt-teal-500);transform:translateX(4px);}
.quiz-result{display:none;}
.quiz-result.show{display:block;}
.quiz-result .rec{font-family:var(--nt-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--nt-teal-bright);}
.quiz-result h3{font-family:var(--nt-serif);font-size:clamp(26px,4vw,40px);color:#fff;margin:8px 0 12px;}
.quiz-result p{color:rgba(255,255,255,.82);font-size:17px;line-height:1.6;max-width:58ch;margin:0 0 24px;}
.quiz-restart{background:none;border:0;color:var(--nt-teal-bright);font-family:var(--nt-sans);font-size:14px;cursor:pointer;text-decoration:underline;margin-top:18px;padding:0;}

@media (prefers-reduced-motion: reduce){
  .flip-inner{transition:none;}
  #bubbles{display:none;}
  .preloader-bar span{animation:none;width:100%;}
}

/* ── Before / After slider ─────────────────────────────────────── */
.ba{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:18px;box-shadow:var(--nt-shadow-2);user-select:none;background:var(--nt-slate-100);}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;}
.ba .ba-before{clip-path:inset(0 calc(100% - var(--p,50%)) 0 0);}
.ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:ew-resize;z-index:4;}
.ba-line{position:absolute;top:0;bottom:0;left:var(--p,50%);width:3px;background:#fff;transform:translateX(-50%);z-index:2;pointer-events:none;box-shadow:0 0 0 1px rgba(0,0,0,.12);}
.ba-knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:#fff;box-shadow:var(--nt-shadow-2);display:flex;align-items:center;justify-content:center;}
.ba-knob svg{width:24px;height:24px;fill:var(--nt-navy-600);}
.ba-tag{position:absolute;top:14px;z-index:3;font-family:var(--nt-mono);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(20,22,26,.62);padding:6px 12px;border-radius:999px;pointer-events:none;backdrop-filter:blur(3px);}
.ba-tag.tl{left:14px;} .ba-tag.tr{right:14px;}
.ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
@media (max-width:820px){ .ba-grid{grid-template-columns:1fr;} }
