/* ═══════════ ReleaseLab v2 · cinematic dive ═══════════ */
:root{
  --abyss:#02070e;
  --deep:#04121f;
  --teal:#6fd8cf;
  --teal-soft:rgba(111,216,207,.35);
  --brass:#c9a86a;
  --brass-hi:#e8cf9a;
  --ink:#eaf6f5;
  --ink-dim:#9db8bd;
  --glass-bg:rgba(6,26,40,.42);
  --glass-line:rgba(140,220,214,.16);
  --disp:"Comfortaa",system-ui,sans-serif;
  --body:"Nunito",-apple-system,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%;text-size-adjust:100%;
  overflow-x:clip;
}
html.lenis{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{
  font-family:var(--body);
  background:var(--abyss);
  color:var(--ink);
  overflow-x:clip;
  touch-action:pan-y pinch-zoom;
  line-height:1.65;
  font-weight:400;
}
img,video{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
h1,h2,h3{font-family:var(--disp);font-weight:600;line-height:1.15;letter-spacing:.01em}
h2{font-size:clamp(1.9rem,4.2vw,3rem)}
.kicker{
  font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--teal);margin-bottom:.9rem;font-weight:800;
}
.lead{font-size:1.08rem;color:var(--ink);max-width:58ch}
.body{color:var(--ink-dim)}
.hint{margin-top:.8rem;font-size:.85rem;color:var(--teal);font-style:italic}
section{position:relative;z-index:2}

/* ─── fixed underwater stage ─── */
.bg-stage{position:fixed;inset:0;z-index:0;overflow:hidden;background:var(--abyss)}
.bg-stage video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;will-change:opacity;transform:scale(1.02);
}
.bg-stage video[data-bg="surface"]{object-position:50% 30%}
.bg-tint{
  position:absolute;inset:0;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(2,7,14,0) 0%, rgba(2,7,14,.55) 78%),
    linear-gradient(180deg, rgba(2,7,14,.25), rgba(2,7,14,.62));
}
#plankton{position:absolute;inset:0;width:100%;height:100%}
.light-cursor{
  position:absolute;width:60vmax;height:60vmax;border-radius:50%;
  background:radial-gradient(circle, rgba(140,230,220,.10) 0%, transparent 60%);
  transform:translate(-50%,-50%);left:50%;top:30%;
  mix-blend-mode:screen;pointer-events:none;
}

/* ─── glass / floating ─── */
.glass{
  background:var(--glass-bg);
  border:1px solid var(--glass-line);
  border-radius:26px;
  backdrop-filter:blur(14px) saturate(1.15);
  -webkit-backdrop-filter:blur(14px) saturate(1.15);
  box-shadow:0 24px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06);
}
.floaty{will-change:transform}

/* ─── chrome ─── */
.lang-switch{
  position:fixed;top:1.1rem;right:1.2rem;z-index:90;display:flex;gap:.15rem;
  border-radius:99px;padding:.28rem;
}
.lang-switch button{
  padding:.32rem .72rem;border-radius:99px;font-size:.72rem;font-weight:800;
  letter-spacing:.08em;color:var(--ink-dim);transition:.25s;
}
.lang-switch button.active{background:var(--teal);color:#03222b}
.lang-switch button:not(.active):hover{color:var(--ink)}

.depth-gauge{
  position:fixed;left:1.4rem;top:50%;transform:translateY(-50%);z-index:80;
  display:flex;flex-direction:column;align-items:center;gap:.7rem;pointer-events:none;
}
.depth-line{width:2px;height:36vh;background:rgba(157,184,189,.2);border-radius:2px;position:relative}
.depth-diver{
  position:absolute;left:50%;top:0;transform:translate(-50%,-50%);
  color:var(--teal);font-size:.85rem;text-shadow:0 0 14px var(--teal-soft);
}
.depth-label{
  font-size:.66rem;letter-spacing:.2em;color:var(--ink-dim);
  writing-mode:vertical-rl;font-variant-numeric:tabular-nums;
}

.toast{
  position:fixed;bottom:2rem;left:50%;transform:translate(-50%,180%);
  color:var(--ink);padding:.85rem 1.5rem;z-index:99;border-radius:18px;
  font-size:.92rem;transition:transform .45s cubic-bezier(.2,.9,.3,1.15);
  max-width:88vw;text-align:center;
}
.toast.show{transform:translate(-50%,0)}

/* ─── buttons ─── */
.cta{
  font-family:var(--disp);font-weight:700;letter-spacing:.06em;font-size:.95rem;
  color:#052028;background:linear-gradient(160deg,#a9ece6,var(--teal) 55%,#3aa39a);
  padding:1rem 2.4rem;border-radius:99px;
  box-shadow:0 12px 36px rgba(111,216,207,.35), inset 0 1px 0 rgba(255,255,255,.5);
  transition:transform .3s,box-shadow .3s;
}
.cta:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 18px 48px rgba(111,216,207,.5)}
.ghost{
  font-weight:700;font-size:.9rem;color:var(--ink-dim);
  padding:1rem 1.6rem;border-radius:99px;border:1px solid var(--glass-line);
  transition:.3s;
}
.ghost:hover{color:var(--ink);border-color:var(--teal)}

/* ─── 1 · hero / porthole veil ─── */
.hero{height:280vh;position:relative;z-index:5}
.hero-veil{
  position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;
}
/* viewport-sized wall; the hole radius (--holeR) is scrubbed by scroll only —
   no idle tween fighting the scrub (that tug-of-war was the visible jitter) */
.hero-wall{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,#1e150c 0%,#120d07 48%,#0a0603 100%);
  -webkit-mask:radial-gradient(circle var(--holeR,21vmin) at 50% 47%, transparent 0 calc(100% - 2px), #000 100%);
          mask:radial-gradient(circle var(--holeR,21vmin) at 50% 47%, transparent 0 calc(100% - 2px), #000 100%);
  contain:strict;
}
.hero-wall::after{
  content:"";position:absolute;inset:0;opacity:.14;
  background:repeating-linear-gradient(90deg,transparent 0 118px,#000 118px 122px);
}
/* viewport-sized mood lighting that never scales — fades out during the dive */
.hero-vignette{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 110%, rgba(26,18,8,.85) 0%, transparent 55%),
    radial-gradient(75% 62% at 50% 47%, transparent 0 38%, rgba(4,3,10,.55) 78%, rgba(4,3,10,.8) 100%);
}
.porthole-ring{
  position:absolute;left:50%;top:47%;z-index:2;
  width:50vmin;aspect-ratio:1;
  border-radius:50%;pointer-events:none;
  background:
    radial-gradient(circle at 32% 26%, #f2dca4 0%, #b98f4a 22%, #6e5121 48%, #a3803e 72%, #4c3714 100%);
  -webkit-mask:radial-gradient(circle closest-side, transparent 0 84%, #000 85.5% 100%);
          mask:radial-gradient(circle closest-side, transparent 0 84%, #000 85.5% 100%);
  filter:drop-shadow(0 18px 44px rgba(0,0,0,.6));
  will-change:transform;
}
.hero-copy{
  position:absolute;inset:0;z-index:3;text-align:center;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:3rem 6vw;
}
.hero-copy .kicker{text-shadow:0 2px 16px #000}
.hero-copy h1{
  font-size:clamp(2.8rem,7.5vw,5rem);color:var(--ink);font-weight:700;
  text-shadow:0 6px 40px rgba(0,0,0,.85);
}
.hero-copy h1 span{color:var(--brass-hi)}
.hero-spacer{height:min(46vmin,44vh)}
.hero-sub{font-size:clamp(1.05rem,2.2vw,1.35rem);text-shadow:0 2px 14px #000;font-weight:600}
.hero-by{color:var(--ink-dim);font-size:.95rem;text-shadow:0 2px 14px #000;margin-top:.15rem}
.hero-copy .cta{pointer-events:auto;margin-top:1.4rem}

/* ─── shared section rhythm ─── */
.section-head{
  max-width:820px;margin:0 auto;padding:2.4rem 2.6rem;
  text-align:center;
}
.section-head .lead{margin:0 auto}
section{padding:16vh 6vw}

/* ─── 2 · vortex / about ─── */
.about-grid{
  max-width:1180px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1.05fr;gap:4rem;align-items:center;
}
.vortex{position:relative;aspect-ratio:1;max-width:480px;width:100%;margin:0 auto}
.vortex-ring{
  position:absolute;border-radius:50%;pointer-events:none;
  inset:0;
  background:conic-gradient(from 0deg, transparent 0deg, var(--teal-soft) 40deg, transparent 120deg, rgba(140,220,214,.12) 200deg, transparent 300deg);
  -webkit-mask:radial-gradient(circle closest-side, transparent 0 92%, #000 93% 100%);
          mask:radial-gradient(circle closest-side, transparent 0 92%, #000 93% 100%);
  animation:spin 26s linear infinite;
  filter:blur(.6px);
}
.vr2{inset:7%;animation-duration:19s;animation-direction:reverse;opacity:.8}
.vr3{inset:15%;animation-duration:33s;opacity:.6}
@keyframes spin{to{transform:rotate(360deg)}}
.vortex-photos{
  position:absolute;inset:21%;border-radius:50%;overflow:hidden;
  box-shadow:0 0 0 3px rgba(140,220,214,.28), 0 0 90px rgba(111,216,207,.25), 0 30px 70px rgba(0,0,0,.55);
}
.vortex-photos img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.08) rotate(2deg);
  transition:opacity 2.2s ease, transform 6s ease;
}
.vortex-photos img.on{opacity:1;transform:scale(1) rotate(0)}
.about-copy{padding:2.6rem 2.8rem}
.about-copy .lead{margin-top:1rem}
.about-copy .body{margin-top:.9rem}
.stats{list-style:none;display:flex;gap:2.2rem;margin-top:2rem;flex-wrap:wrap}
.stats strong{font-family:var(--disp);font-size:1.9rem;color:var(--brass-hi);display:block}
.stats span{font-size:.76rem;letter-spacing:.08em;color:var(--ink-dim);text-transform:uppercase}

/* ─── 3 · services / cards ─── */
.cards{
  max-width:1240px;margin:3.4rem auto 0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.7rem;
}
.card{
  position:relative;border-radius:24px;overflow:hidden;text-align:left;
  background:var(--glass-bg);
  border:1px solid var(--glass-line);
  backdrop-filter:blur(10px);
  box-shadow:0 24px 60px rgba(0,0,0,.5);
  transition:transform .5s cubic-bezier(.2,.85,.25,1),box-shadow .5s,border-color .5s;
  display:flex;flex-direction:column;padding:0;
  will-change:transform;
}
.card:hover{transform:translateY(-12px) scale(1.015);border-color:rgba(111,216,207,.55);box-shadow:0 38px 80px rgba(0,0,0,.6), 0 0 44px rgba(111,216,207,.12)}
.card .vid{position:relative;aspect-ratio:16/10;overflow:hidden}
.card video{width:100%;height:100%;object-fit:cover;transition:transform 7s ease}
.card:hover video{transform:scale(1.08)}
.card .vid::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(2,7,14,.05) 40%,rgba(4,18,31,.92) 100%);
}
.card-body{padding:1.15rem 1.4rem 1.4rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.card h3{font-size:1.22rem;color:var(--ink)}
.card .tagline{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);font-weight:800}
.card p{font-size:.92rem;color:var(--ink-dim);flex:1}
.card .pick{
  position:absolute;top:.9rem;right:.9rem;z-index:3;
  width:2.3rem;height:2.3rem;border-radius:50%;
  display:grid;place-items:center;font-size:1.05rem;font-weight:800;
  background:rgba(4,18,31,.6);border:1px solid var(--glass-line);color:var(--ink-dim);
  backdrop-filter:blur(8px);
  transition:.35s cubic-bezier(.2,.9,.3,1.4);
}
.card .pick:hover{transform:scale(1.12);color:var(--ink);border-color:var(--teal)}
.card.selected{border-color:var(--brass);box-shadow:0 0 0 1.5px var(--brass), 0 30px 70px rgba(0,0,0,.55)}
.card.selected .pick{background:var(--brass);color:#231803;border-color:var(--brass);transform:rotate(0)}
.card .dive-hint{
  font-size:.74rem;color:var(--teal);font-style:italic;opacity:0;transition:.4s;margin-top:.4rem;
}
.card:hover .dive-hint{opacity:1}

/* ─── 4 · drops of time ─── */
.duration{text-align:center}
.drops{
  max-width:1000px;margin:3rem auto 0;
  display:flex;align-items:flex-end;justify-content:center;gap:clamp(1rem,4vw,3rem);
  min-height:300px;flex-wrap:wrap;
}
.drop{
  position:relative;display:grid;place-items:center;
  border-radius:46% 54% 55% 45% / 58% 48% 52% 42%;
  background:
    radial-gradient(circle at 32% 22%, rgba(255,255,255,.5) 0%, rgba(255,255,255,.08) 22%, transparent 34%),
    radial-gradient(circle at 68% 82%, rgba(180,245,240,.28) 0%, transparent 40%),
    radial-gradient(circle at 50% 58%, rgba(111,216,207,.30) 0%, rgba(26,100,116,.30) 55%, rgba(8,44,66,.46) 100%);
  border:1.5px solid rgba(180,240,235,.42);
  backdrop-filter:blur(7px) saturate(1.2);
  box-shadow:
    0 22px 50px rgba(0,0,0,.42),
    0 4px 14px rgba(111,216,207,.14),
    inset 0 -10px 26px rgba(111,216,207,.18),
    inset 0 3px 8px rgba(255,255,255,.22);
  animation:blob 9s ease-in-out infinite;
  transition:box-shadow .4s;
  will-change:transform,border-radius;
  user-select:none;
  overflow:visible;
}
.drop::before{ /* crescent glass shine */
  content:"";position:absolute;left:14%;top:8%;width:34%;height:26%;
  border-radius:50%;
  background:linear-gradient(150deg, rgba(255,255,255,.65), rgba(255,255,255,0) 70%);
  filter:blur(2px);transform:rotate(-18deg);
  pointer-events:none;
}
.drop::after{ /* slow caustic swirl inside */
  content:"";position:absolute;inset:6%;border-radius:inherit;
  background:conic-gradient(from 0deg,
    transparent 0deg, rgba(200,255,250,.13) 50deg, transparent 120deg,
    rgba(160,240,232,.09) 200deg, transparent 290deg);
  animation:spin 14s linear infinite;
  mix-blend-mode:screen;pointer-events:none;
}
.drop:nth-child(2){animation-delay:-2.2s;animation-duration:11s}
.drop:nth-child(3){animation-delay:-4.8s;animation-duration:8s}
.drop:nth-child(4){animation-delay:-6.4s;animation-duration:12s}
@keyframes blob{
  0%,100%{border-radius:46% 54% 55% 45% / 58% 48% 52% 42%}
  25%{border-radius:56% 44% 46% 54% / 46% 58% 42% 54%}
  50%{border-radius:44% 56% 58% 42% / 54% 44% 56% 46%}
  75%{border-radius:52% 48% 44% 56% / 44% 54% 46% 56%}
}
.drop .t{font-family:var(--disp);font-weight:700;font-size:1.25em;color:#fff;text-shadow:0 2px 12px rgba(0,40,50,.6)}
.drop .t small{display:block;font-size:.52em;font-weight:600;color:rgba(234,246,245,.85);letter-spacing:.06em}
.drop .p{font-family:var(--disp);font-size:.95em;color:var(--brass-hi);text-shadow:0 2px 10px rgba(0,0,0,.5)}
.drop .inner{display:flex;flex-direction:column;align-items:center;gap:.05em;pointer-events:none}
.drop.selected{
  border-color:var(--brass-hi);
  box-shadow:0 24px 60px rgba(0,0,0,.5), 0 0 60px rgba(232,207,154,.35), inset 0 -8px 24px rgba(232,207,154,.2);
}
.drop-desc{
  width:100%;margin-top:2.2rem;min-height:1.6em;
  color:var(--teal);font-size:1rem;font-style:italic;
  transition:opacity .5s;
}
.combine-note{
  margin:2.6rem auto 0;padding:1.1rem 1.8rem;max-width:560px;
  color:var(--ink-dim);font-size:.92rem;border-radius:18px;
}

/* ─── 5 · whirlpool of reviews ─── */
.reviews{overflow:visible}
.whirl-stage{
  position:relative;max-width:1100px;margin:1rem auto 0;
  height:72vh;min-height:480px;
  perspective:900px;
}
.whirl-core{
  position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);
  width:min(46vmin,340px);aspect-ratio:1;border-radius:50%;
  display:grid;place-items:center;cursor:pointer;z-index:5;
  background:radial-gradient(circle at 50% 42%, rgba(10,60,80,.35) 0%, rgba(4,20,36,.75) 55%, rgba(2,7,14,.95) 100%);
  box-shadow:0 0 90px rgba(111,216,207,.16), inset 0 0 60px rgba(2,7,14,.9);
  border:1px solid rgba(140,220,214,.22);
  transition:box-shadow .5s;
}
.whirl-core:hover{box-shadow:0 0 130px rgba(111,216,207,.3), inset 0 0 70px rgba(2,7,14,.95)}
.whirl-ring{
  position:absolute;border-radius:50%;pointer-events:none;
  border:1.5px solid transparent;
  background:conic-gradient(from 0deg, transparent 0deg, rgba(140,230,222,.55) 60deg, transparent 160deg, rgba(140,230,222,.2) 240deg, transparent 330deg) border-box;
  -webkit-mask:radial-gradient(circle closest-side, transparent 0 90%, #000 91% 100%);
          mask:radial-gradient(circle closest-side, transparent 0 90%, #000 91% 100%);
  animation:spin linear infinite;
}
.wr1{inset:-4%;animation-duration:11s}
.wr2{inset:9%;animation-duration:8s;animation-direction:reverse;opacity:.85}
.wr3{inset:22%;animation-duration:5.5s;opacity:.7}
.wr4{inset:35%;animation-duration:3.6s;animation-direction:reverse;opacity:.55}
.whirl-eye{display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center;padding:0 18%}
.whirl-eye strong{font-family:var(--disp);font-size:1.7rem;color:var(--brass-hi);text-shadow:0 0 24px rgba(232,207,154,.4)}
.whirl-eye em{font-size:.8rem;color:var(--teal);font-style:italic;opacity:.45}
.orbit-bubbles{position:absolute;inset:0;pointer-events:none}
.obubble{
  position:absolute;left:50%;top:52%;pointer-events:auto;
  max-width:172px;padding:.7rem .95rem;border-radius:20px;
  font-size:.76rem;line-height:1.4;color:var(--ink);text-align:center;
  font-family:var(--disp);font-weight:400;
  background:
    radial-gradient(circle at 28% 18%, rgba(255,255,255,.22) 0%, transparent 30%),
    rgba(8,36,54,.55);
  border:1px solid rgba(170,235,230,.28);
  backdrop-filter:blur(8px);
  box-shadow:0 12px 34px rgba(0,0,0,.4), inset 0 -5px 16px rgba(111,216,207,.1);
  cursor:pointer;will-change:transform,opacity;
  transition:border-color .3s;
}
.obubble:hover{border-color:var(--teal)}
.obubble .by{display:block;margin-top:.3rem;font-family:var(--body);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}

.reviews-modal{
  position:fixed;inset:0;z-index:120;
  background:
    radial-gradient(120% 100% at 50% 0%, rgba(8,40,60,.5) 0%, transparent 55%),
    rgba(2,7,14,.88);
  backdrop-filter:blur(16px);
  overflow-y:auto;overscroll-behavior:contain;
}
.reviews-modal[hidden],.dive[hidden]{display:none}
.reviews-inner{
  max-width:1080px;margin:0 auto;padding:9vh 6vw 12vh;
  will-change:transform,opacity;
}
.reviews-head{text-align:center;margin-bottom:2.6rem}
.reviews-head h2{color:var(--ink)}
.reviews-cta{
  margin:1.1rem auto 0;max-width:52ch;
  color:var(--brass-hi);font-size:.98rem;
  border:1px dashed rgba(201,168,106,.45);border-radius:99px;
  padding:.7rem 1.6rem;display:inline-block;background:rgba(201,168,106,.07);
}
.reviews-grid{columns:3 280px;column-gap:1.2rem}
.review-card{
  break-inside:avoid;margin-bottom:1.2rem;
  background:var(--glass-bg);border:1px solid var(--glass-line);
  border-radius:20px;padding:1.2rem 1.35rem;backdrop-filter:blur(8px);
}
.review-card .stars{color:var(--brass-hi);font-size:.75rem;letter-spacing:.22em}
.review-card q{
  display:block;margin:.55rem 0 .6rem;quotes:"“" "”";
  font-family:var(--disp);font-size:.95rem;line-height:1.55;color:var(--ink);
}
.review-card .who{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}

/* ─── 6 · booking ─── */
.booking-grid{
  max-width:1100px;margin:3rem auto 0;
  display:grid;grid-template-columns:1.12fr .88fr;gap:2.4rem;align-items:start;
}
.booking-form{padding:2.2rem 2.4rem}
.field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}
.field>span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);font-weight:800}
.field input{
  background:rgba(4,20,34,.5);border:1px solid var(--glass-line);
  border-radius:16px;padding:.95rem 1.15rem;color:var(--ink);font:inherit;
  color-scheme:dark;transition:border-color .3s;
}
.field input:focus{outline:none;border-color:var(--teal)}
.chips{display:flex;gap:.6rem;flex-wrap:wrap}
.chips button{
  border:1px solid var(--glass-line);border-radius:99px;padding:.6rem 1.25rem;
  font-size:.88rem;font-weight:600;color:var(--ink-dim);transition:.3s;background:rgba(4,20,34,.4);
}
.chips button:hover{color:var(--ink);border-color:var(--teal)}
.chips button.active{background:var(--teal);border-color:var(--teal);color:#03222b;font-weight:800}
.loc-cards{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.loc{
  display:flex;flex-direction:column;gap:.15rem;text-align:left;
  border:1px solid var(--glass-line);border-radius:18px;padding:1.05rem 1.15rem;
  background:rgba(4,20,34,.4);transition:.3s;
}
.loc em{font-style:normal;font-size:1.25rem}
.loc strong{font-size:.94rem;color:var(--ink)}
.loc small{color:var(--ink-dim);font-size:.78rem}
.loc:hover{border-color:var(--teal)}
.loc.active{border-color:var(--brass);background:rgba(201,168,106,.12);box-shadow:0 0 0 1px var(--brass)}
.booking-summary{padding:1.9rem 1.9rem 1.7rem}
.booking-summary h3{font-size:1.5rem;color:var(--ink);margin-bottom:1.1rem}
.booking-summary dl div{
  display:flex;justify-content:space-between;gap:1rem;
  padding:.55rem 0;border-bottom:1px dashed rgba(157,184,189,.16);
}
.booking-summary dt{color:var(--ink-dim);font-size:.85rem}
.booking-summary dd{text-align:right;font-size:.92rem;max-width:60%}
.booking-summary .total dt{color:var(--ink)}
.booking-summary .total dd{font-family:var(--disp);font-size:1.4rem;color:var(--brass-hi)}
.summary-hint{font-size:.8rem;color:var(--ink-dim);margin-top:.9rem}
.send-row{display:flex;flex-direction:column;gap:.7rem;margin-top:1.2rem}
.send{
  display:flex;align-items:center;justify-content:center;gap:.6rem;
  border-radius:16px;padding:.95rem;font-weight:800;letter-spacing:.03em;
  transition:transform .25s,filter .25s;color:#fff;
}
.send:hover{transform:translateY(-2px);filter:brightness(1.14)}
.send.whatsapp{background:#128c5e}
.send.telegram{background:#1f7fb5}
.send.email{background:rgba(201,168,106,.16);border:1px solid var(--brass);color:var(--brass-hi)}

/* contraindications */
.contra{
  max-width:1100px;margin:2.2rem auto 0;padding:1.5rem 1.9rem;
  border-radius:20px;border-color:rgba(201,168,106,.28);
}
.contra strong{
  display:block;font-family:var(--disp);font-size:1.02rem;color:var(--brass-hi);
  margin-bottom:.45rem;letter-spacing:.02em;
}
.contra p{font-size:.86rem;color:var(--ink-dim);line-height:1.7}

/* ─── footer ─── */
footer{position:relative;z-index:2;padding:4rem 6vw 2.5rem}
.foot-grid{
  max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;
  gap:2rem;flex-wrap:wrap;align-items:flex-start;
}
.foot-logo{font-family:var(--disp);font-size:1.8rem;color:var(--ink);font-weight:700}
.foot-logo span{color:var(--brass-hi)}
.foot-grid p{color:var(--ink-dim);font-size:.9rem}
.foot-contacts{display:flex;flex-direction:column;gap:.5rem;text-align:right}
.foot-contacts a{color:var(--ink);text-decoration:none;font-size:.95rem;transition:color .3s}
.foot-contacts a:hover{color:var(--teal)}
.foot-note{
  max-width:1100px;margin:3rem auto 0;padding-top:1.4rem;
  border-top:1px solid rgba(157,184,189,.14);
  color:var(--ink-dim);font-size:.8rem;text-align:center;
}

/* ─── dive modal ─── */
.dive{position:fixed;inset:0;z-index:110}
.dive-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dive-poster{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:blur(0px);transform:scale(1.02);
  transition:filter 1.4s ease;
  will-change:filter;
}
.dive-poster.loading{filter:blur(30px)}
.dive-stills{position:absolute;inset:0}
.dive-stills img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.06);
  transition:opacity 2.4s ease, transform 8s linear;
}
.dive-stills img.on{opacity:1;transform:scale(1)}
.dive-shade{
  position:absolute;inset:0;
  background:linear-gradient(75deg, rgba(2,7,14,.82) 0%, rgba(2,7,14,.45) 45%, rgba(2,7,14,.12) 100%);
}
.dive-panel{
  position:absolute;left:clamp(1rem,6vw,6rem);bottom:clamp(1rem,8vh,5rem);
  max-width:560px;padding:2.2rem 2.4rem;
}
.dive-panel h2{margin:.2rem 0 .8rem}
.dive-long{color:var(--ink);font-size:1.02rem}
.dive-actions{display:flex;gap:.9rem;margin-top:1.6rem;flex-wrap:wrap}
.dive-x{
  position:fixed;top:1.4rem;right:1.6rem;z-index:5;
  width:3rem;height:3rem;border-radius:50%;font-size:1.1rem;
  background:rgba(4,18,31,.55);border:1px solid var(--glass-line);color:var(--ink);
  backdrop-filter:blur(8px);transition:.3s;
}
.dive-x:hover{border-color:var(--teal);transform:rotate(90deg)}
.dive-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:3.4rem;height:3.4rem;border-radius:50%;
  font-size:1.8rem;line-height:1;display:grid;place-items:center;padding-bottom:.2rem;
  background:rgba(4,18,31,.5);border:1px solid var(--glass-line);color:var(--ink);
  backdrop-filter:blur(8px);transition:.3s;
}
.dive-nav.prev{left:1.2rem}
.dive-nav.next{right:1.2rem}
.dive-nav:hover{border-color:var(--teal);background:rgba(8,40,60,.7);transform:translateY(-50%) scale(1.08)}
.dive-count{
  position:absolute;top:1.9rem;left:50%;transform:translateX(-50%);z-index:5;
  font-family:var(--disp);font-size:.85rem;letter-spacing:.2em;color:var(--ink-dim);
}
@media (max-width:720px){
  .dive-nav{width:2.8rem;height:2.8rem;font-size:1.4rem}
  .dive-nav.prev{left:.6rem}
  .dive-nav.next{right:.6rem}
}

/* ─── responsive ─── */
@media (max-width:1020px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .about-grid{grid-template-columns:1fr;gap:3rem}
  .booking-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  .depth-gauge{display:none}
  /* backdrop-filter is the #1 mobile GPU killer — swap glass for solid tint */
  .glass,.card,.dive-panel,.reviews-inner{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:rgba(5,21,34,.86);
  }
  .light-cursor{display:none}
  .obubble{max-width:150px;font-size:.68rem;padding:.55rem .75rem;backdrop-filter:none}
  .obubble:nth-child(n+7){display:none}
  .whirl-stage{height:56vh;min-height:360px}
  .reviews-grid{columns:1}
  section{padding:10vh 5vw}
  .section-head{padding:1.7rem 1.4rem}
  .section-head .lead{font-size:.98rem}
  .about-copy{padding:1.8rem 1.5rem}
  .loc-cards{grid-template-columns:1fr}
  .hero-spacer{height:min(52vmin,36svh)}
  .drops{min-height:200px;gap:.9rem}
  .drop{backdrop-filter:none}
  .dive-panel{left:.8rem;right:.8rem;bottom:.8rem;max-width:none;padding:1.4rem 1.3rem}
  .dive-long{font-size:.94rem}
  .foot-contacts{text-align:left}

  /* services: one card per screen, swipe like stories */
  .cards{
    display:flex;grid-template-columns:none;
    overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    gap:.9rem;padding:0 7vw 1.2rem;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .cards::-webkit-scrollbar{display:none}
  .card{
    flex:0 0 84vw;scroll-snap-align:center;scroll-snap-stop:always;
    transform:none!important; /* keep snap geometry stable */
  }
  .card:hover{transform:none!important}
  .swipe-dots{
    display:flex;justify-content:center;gap:.45rem;margin-top:.9rem;
  }
  .swipe-dots i{
    width:6px;height:6px;border-radius:50%;background:rgba(157,184,189,.35);
    transition:.3s;
  }
  .swipe-dots i.on{background:var(--teal);transform:scale(1.35)}
}
@media (min-width:721px){
  .swipe-dots{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
}

/* ─── stripe pay + gooey tip button ─── */
.send.stripe{background:#635bff}
.tips-row{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  margin-top:1.4rem;padding-top:1.2rem;
  border-top:1px dashed rgba(157,184,189,.16);
}
.tips-hint{font-size:.85rem;color:var(--ink-dim)}
.tip-blob{
  position:relative;flex:none;
  padding:.85rem 1.5rem;
  font-family:var(--disp);font-weight:700;font-size:.9rem;color:#052028;
  filter:url(#goo) drop-shadow(0 8px 26px rgba(111,216,207,.45));
  transition:transform .3s;
}
.tip-core{
  position:relative;z-index:2;display:block;
  background:linear-gradient(150deg,#b9f0ea,var(--teal) 60%,#3aa39a);
  padding:.85rem 1.5rem;margin:-.85rem -1.5rem;
  border-radius:46% 54% 55% 45% / 58% 48% 52% 42%;
  animation:blob 7s ease-in-out infinite;
}
.tip-sat{
  position:absolute;border-radius:50%;z-index:1;
  background:linear-gradient(150deg,#b9f0ea,var(--teal));
  width:16px;height:16px;
}
.tip-sat.s1{left:-6px;top:38%;animation:satDrift1 5.2s ease-in-out infinite}
.tip-sat.s2{right:-8px;top:12%;width:12px;height:12px;animation:satDrift2 6.6s ease-in-out infinite}
.tip-sat.s3{right:14%;bottom:-8px;width:10px;height:10px;animation:satDrift3 4.4s ease-in-out infinite}
@keyframes satDrift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-9px,-6px) scale(1.25)}}
@keyframes satDrift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(10px,8px) scale(.8)}}
@keyframes satDrift3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6px,10px) scale(1.3)}}
.tip-blob:hover{transform:scale(1.06)}

/* ─── review form ─── */
.review-open{margin-top:1.1rem;font-size:.85rem;padding:.85rem 1.9rem}
.review-form{
  max-width:520px;margin:1.6rem auto 0;padding:1.6rem 1.7rem;
  display:flex;flex-direction:column;gap:.9rem;text-align:center;
}
.review-how{font-family:var(--disp);color:var(--ink);font-size:1.05rem}
.stars-pick{display:flex;justify-content:center;gap:.4rem}
.stars-pick button{
  font-size:2rem;line-height:1;color:rgba(157,184,189,.4);
  transition:color .25s, transform .25s;
}
.stars-pick button:hover{transform:scale(1.2)}
.stars-pick button.on{color:var(--brass-hi);text-shadow:0 0 18px rgba(232,207,154,.5)}
.review-form textarea,.review-form input{
  background:rgba(4,20,34,.5);border:1px solid var(--glass-line);
  border-radius:14px;padding:.85rem 1rem;color:var(--ink);font:inherit;resize:vertical;
}
.review-form textarea:focus,.review-form input:focus{outline:none;border-color:var(--teal)}
.review-send-row{display:flex;gap:.7rem}
.review-send-row .send{flex:1;padding:.8rem}

/* ─── reviews modal comfort ─── */
.reviews-modal .dive-x{position:fixed;top:1.2rem;right:1.4rem}
.reviews-top{
  position:fixed;right:1.5rem;bottom:1.6rem;z-index:6;
  width:3rem;height:3rem;border-radius:50%;font-size:1.25rem;color:var(--ink);
  background:rgba(6,26,40,.35);border:1px solid rgba(140,220,214,.3);
  backdrop-filter:blur(8px);
  opacity:0;pointer-events:none;transform:translateY(14px);
  transition:opacity .35s, transform .35s;
}
.reviews-top.show{opacity:.75;pointer-events:auto;transform:translateY(0)}
.reviews-top:hover{opacity:1;border-color:var(--teal)}

/* ─── the captain's cabin (easter egg) ─── */
.lifebuoy{
  display:inline-block;vertical-align:middle;margin-left:.7rem;
  opacity:.45;transition:.4s;transform-origin:center;
}
.lifebuoy:hover{opacity:1;transform:rotate(20deg) scale(1.15)}
.cabin-modal{
  position:fixed;inset:0;z-index:130;display:grid;place-items:center;
  background:rgba(2,7,14,.66);backdrop-filter:blur(10px);
}
.cabin-modal[hidden]{display:none}
.cabin{
  position:relative;width:min(92vw,520px);padding:3.2rem 2.6rem 2.6rem;
  border-radius:22px;text-align:center;overflow:hidden;
  background:
    radial-gradient(120% 100% at 50% 0%, rgba(255,196,110,.14) 0%, transparent 45%),
    repeating-linear-gradient(90deg, rgba(0,0,0,.22) 0 3px, transparent 3px 84px),
    linear-gradient(180deg,#3a2a17 0%,#241809 60%,#170e05 100%);
  border:2px solid #7c5f2c;
  box-shadow:0 40px 120px rgba(0,0,0,.7), inset 0 0 0 5px rgba(232,207,154,.12), inset 0 2px 0 rgba(255,220,150,.18);
}
.cabin h2{color:#f2e4c4;margin:.5rem 0 .9rem;font-size:1.6rem}
.cabin-body{color:#d8c6a2;font-size:.98rem}
.cabin-note{font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:#a3803e}
.cabin-porthole{
  width:86px;height:86px;margin:0 auto .9rem;border-radius:50%;
  background:
    radial-gradient(circle at 35% 30%, #9fd8d2 0%, #2b7a8c 45%, #0a3550 100%);
  border:7px solid;
  border-image:linear-gradient(140deg,#e7c98b,#8a6a30) 1;
  border-radius:50%;
  box-shadow:inset 0 0 22px rgba(0,20,30,.7), 0 0 34px rgba(111,216,207,.25);
}
.cabin-discount{
  font-family:var(--disp);font-weight:700;font-size:2.6rem;color:var(--brass-hi);
  margin-top:1.1rem;text-shadow:0 0 30px rgba(232,207,154,.4);
}
.cabin-x{position:absolute;top:.9rem;right:.9rem}
