/* ════════════════════════════════════════════════════════════
   EXPEDITION CRUISES — Северный Полюс
   main.css
   ════════════════════════════════════════════════════════════ */

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Geologica', system-ui, sans-serif; background: #fff; margin: 0; }

/* ── Mobile tap behaviour ──
   1) touch-action:manipulation — отключает iOS-задержку и double-tap-zoom
      на интерактивных элементах (промахи больше не зумят страницу),
      pinch-zoom двумя пальцами при этом сохраняется для доступности.
   2) -webkit-tap-highlight-color — убирает синюю вспышку при тапе. */
a, button, label, summary, select, [role="button"], [tabindex],
input[type="submit"], input[type="button"], input[type="reset"],
input[type="checkbox"], input[type="radio"]{
  touch-action: manipulation;
}
* { -webkit-tap-highlight-color: transparent; }

/* Запрещаем выделение текста и iOS callout-меню на чисто-кликабельных
   элементах (кнопки, табы, навигационные стрелки, соцсети, чекбокс-бокс).
   Поля ввода, ссылки внутри текста и сам текст контента — НЕ затрагиваются. */
button, [role="button"],
.nav__cta, .nav__drawer-cta, .np-btn, .m-cta,
.cabins__tab, .v-btn, .prog__nav-arrow, .faq__cat,
.form-counter__btn, .form-checkbox__box,
.msw__toggle, .msw__item, .msw__icon,
.form-card__btn, .cabin-cta, .cbpop__cta,
.slider-nav__btn, .footer__social,
.modal__close, .cbpop__close, .drawer-close,
.cabin-date-btn{
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

/* ══════════════════════════════════════════════════════════════
   DESIGN TOKENS v0.1
   Единая система переменных. Старые имена (--accent, --navy, --ice,
   --bg, --border, --text, --gold, --green, --red, --white, --w15/40/70)
   сохранены как алиасы новых токенов — ничего не ломается.
══════════════════════════════════════════════════════════════ */
:root {

  /* ─── Brand: Navy ─── */
  --c-navy-900: #0b1524;
  --c-navy-800: #0f1c2e;
  --c-navy-700: #1a2940;
  --c-navy-600: #2a3a55;

  /* ─── Brand: Blue (primary accent) ─── */
  --c-blue-700: #1f5495;
  --c-blue-600: #2865AD;
  --c-blue-500: #3476c4;
  --c-blue-400: #5a95d8;

  /* ─── Brand: Ice (secondary accent) ─── */
  --c-ice-500:  #5BC8F5;
  --c-ice-400:  #7fd3f7;
  --c-ice-300:  #b2e5fa;
  --c-ice-100:  #e4f6fd;
  --c-ice-50:   #f2fbfe;

  /* ─── Warm accent: Amber (NEW) ─── */
  --c-amber-600: #d98e1b;
  --c-amber-500: #F5B04C;
  --c-amber-400: #ffc672;
  --c-amber-100: #fef3e0;

  /* ─── Neutrals ─── */
  --c-gray-900: #0f1c2e;
  --c-gray-700: #36455c;
  --c-gray-600: #4a5568;
  --c-gray-500: #7a8699;
  --c-gray-400: #a4adbd;
  --c-gray-300: #d4d9e2;
  --c-gray-200: #e8ecf2;
  --c-gray-100: #f4f9fc;
  --c-gray-50:  #fafcfe;
  --c-white:    #ffffff;

  /* ─── Semantic ─── */
  --c-success: #1a9e5c;
  --c-warning: #f59e0b;
  --c-danger:  #E8293A;

  /* ─── Cashback / promo accent (flat brand red @ 90% alpha) ───
     Единственное применение красного как акцента в бренд-системе.
     Используется для: hero .np-badge, .cabin-cashback, .cabins__promo.
     Flat — без градиентов, теней, backdrop-filter. */
  --c-cashback:       #e8293ae6;
  --c-cashback-hover: #e8293a;

  /* ─── White overlays (на тёмных фонах) ─── */
  --w-90: rgba(255,255,255,.90);
  --w-75: rgba(255,255,255,.75);
  --w-65: rgba(255,255,255,.65);
  --w-55: rgba(255,255,255,.55);
  --w-45: rgba(255,255,255,.45);
  --w-35: rgba(255,255,255,.35);
  --w-92: rgba(255,255,255,.92);
  --w-25: rgba(255,255,255,.25);
  --w-18: rgba(255,255,255,.18);
  --w-12: rgba(255,255,255,.12);
  --w-08: rgba(255,255,255,.08);

  /* ─── Brand tints (подсветки/фоны на светлом) ─── */
  --tint-brand-04: rgba(40,101,173,.04);
  --tint-brand-08: rgba(40,101,173,.08);
  --tint-brand-10: rgba(40,101,173,.10);
  --tint-brand-12: rgba(40,101,173,.12);
  --tint-brand-15: rgba(40,101,173,.15);
  --tint-brand-20: rgba(40,101,173,.20);
  --tint-brand-25: rgba(40,101,173,.25);
  --tint-brand-30: rgba(40,101,173,.30);
  --tint-brand-35: rgba(40,101,173,.35);

  --tint-ice-15:   rgba(91,200,245,.15);
  --tint-ice-50:   rgba(91,200,245,.50);

  --tint-danger-08: rgba(232,41,58,.08);
  --tint-danger-12: rgba(232,41,58,.12);
  --tint-danger-22: rgba(232,41,58,.22);
  --tint-success-10: rgba(26,158,92,.10);
  --tint-success-12: rgba(26,158,92,.12);

  /* ─── Shadows ─── */
  --sh-xs:   0 1px 2px rgba(15,28,46,.06);
  --sh-sm:   0 2px 8px rgba(15,28,46,.06);
  --sh-md:   0 4px 16px rgba(15,28,46,.08);
  --sh-lg:   0 12px 40px rgba(15,28,46,.12);
  --sh-xl:   0 24px 64px rgba(15,28,46,.20);

  /* Brand-tinted shadows (для primary-кнопок и их hover) */
  --sh-brand-sm: 0 4px 20px rgba(40,101,173,.30);
  --sh-brand-md: 0 8px 32px rgba(40,101,173,.45);
  --sh-brand-lg: 0 12px 40px rgba(40,101,173,.12);

  /* Focus glow — для :focus-visible */
  --sh-glow: 0 0 0 4px rgba(40,101,173,.18);

  /* ─── Spacing (8px grid) ─── */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 96px;
  --s-10: 128px;

  /* ─── Radius ─── */
  --r-xs:   6px;
  --r-sm:   8px;
  --r-md:   12px;
  --r-lg:   20px;
  --r-xl:   28px;
  --r-pill: 999px;

  /* ─── Motion ─── */
  --e-out:    cubic-bezier(.22,.61,.36,1);
  --e-in-out: cubic-bezier(.4,0,.2,1);
  --d-fast:   150ms;
  --d-med:    250ms;
  --d-slow:   400ms;

  /* ─── Layout ─── */
  --container:   1280px;
  --container-l: 1440px;
  --nav-h:       68px;

  /* ══════════════════════════════════════════════════════════
     LEGACY ALIASES — старые имена указывают на новые токены.
     Не удаляем, пока вся кодовая база не переедет на новые.
  ══════════════════════════════════════════════════════════ */
  --accent:   var(--c-blue-600);
  --accent-h: var(--c-blue-500);
  --red:      var(--c-danger);
  --navy:     var(--c-navy-800);
  --ice:      var(--c-ice-500);
  --white:    var(--c-white);
  --bg:       var(--c-gray-100);
  --border:   var(--c-gray-200);
  --text:     var(--c-gray-600);
  --gold:     var(--c-warning);
  --green:    var(--c-success);
  --w70:      rgba(255,255,255,.72);
  --w40:      rgba(255,255,255,.40);
  --w15:      rgba(255,255,255,.15);
}




/* ─────────────────────────────────────────────────
   RESET & TOKENS
───────────────────────────────────────────────── */

.nav{
  position:absolute;
  top:0;left:0;right:0;
  height:var(--nav-h);
  z-index:1000;
}
/* Transparent over hero — scrolls with page */
.nav--top{
  background:transparent;
}
/* Sticky after scroll past hero — slides down from top */
.nav--scrolled{
  position:fixed;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 1px 0 rgba(0,0,0,.08);
  animation:navSlideDown .32s cubic-bezier(.4,0,.15,1) both;
}
@keyframes navSlideDown{
  from{transform:translateY(-100%)}
  to{transform:translateY(0)}
}

.nav__inner{
  max-width:1440px;
  margin:0 auto;
  height:100%;
  display:flex;
  align-items:center;
  padding:0 40px;
  gap:40px;
}

/* Logo */
.nav__logo{
  flex-shrink:0;
  display:flex;
  align-items:center;
  text-decoration:none;
}
.nav__logo img{
  height:52px;
  width:auto;
  /* Белая версия поверх тёмного героя, обычная — после скролла */
  filter:brightness(0) invert(1);
  transition:filter .3s;
}
.nav--scrolled .nav__logo img{
  filter:none;
}

/* Links */
.nav__links{
  display:flex;
  align-items:center;
  gap:4px;
  flex:1;
  justify-content:center;
  list-style:none;
}
.nav__links a{
  display:block;
  padding:6px 14px;
  font-size:15px;
  font-weight:400;
  color:rgba(255,255,255,.9);
  text-decoration:none;
  border-radius:6px;
  transition:color .2s,background .2s;
  white-space:nowrap;
}
.nav__links a:hover{
  color:#fff;
  background:rgba(255,255,255,.12);
}
.nav--scrolled .nav__links a{
  color:#1a2332;
}
.nav--scrolled .nav__links a:hover,
.nav--scrolled .nav__links a.nav-active{
  color:var(--accent);
  background:transparent;
}
/* Active link: full-width underline */
.nav__links a.nav-active{
  position:relative;
}
.nav--scrolled .nav__links a.nav-active::after{
  content:'';
  position:absolute;bottom:-12px;left:0;right:0;height:2px;
  background:var(--accent);border-radius:2px;
}

/* CTA button — hidden over hero, shown after scroll. Black outline like hero. */
.nav__cta{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:transparent;
  color:#1a2332;
  text-decoration:none;
  font-family:'Geologica',sans-serif;
  font-size:13px;
  font-weight:500;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:10px 22px;
  border-radius:var(--r-md);
  border:none;
  box-shadow:inset 0 0 0 1.5px rgba(26,35,50,.45);
  white-space:nowrap;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  transition:color 1s, box-shadow 1s, opacity .3s, visibility .3s;
  z-index:0;
}
.nav__cta:focus-visible{outline:none;box-shadow:var(--sh-glow)}
.nav__cta:hover{color:#fff;box-shadow:inset 0 0 0 1.5px var(--accent),0 6px 24px var(--tint-brand-35)}
.nav__cta:hover .goo-blobs span{transform:scale(1.4) translateY(0) translateZ(0)}
/* Над героем — светлый стиль (белый бордер, белый текст), bg прозрачный */
.nav--top .nav__cta{
  color:#fff;
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55);
}
.nav--top .nav__cta:hover{
  color:#fff;
  box-shadow:inset 0 0 0 1.5px var(--accent),0 6px 24px var(--tint-brand-35);
}
/* После скролла — тёмный outline (по умолчанию из .nav__cta) */
.nav--scrolled .nav__cta{opacity:1;visibility:visible;pointer-events:auto}

/* ── Burger ─────────────────────────────── */
.nav__burger{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:40px;height:40px;
  padding:8px;
  background:transparent;
  border:none;cursor:pointer;
  margin-left:auto;
  flex-shrink:0;
}
.nav__burger span{
  display:block;
  width:100%;height:2px;
  background:#fff;
  transition:transform .3s,opacity .2s;
  border-radius:2px;
  /* iOS: убрать subpixel-артефакты при rotate (1.5px тонкие линии "звенят") */
  transform-origin:center;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  will-change:transform;
}
.nav--scrolled .nav__burger span{background:#1a2332}
.nav__burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__burger.open span:nth-child(2){opacity:0}
.nav__burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── Mobile drawer ───────────────────────── */
.nav__drawer{
  position:fixed;
  top:var(--nav-h);left:0;right:0;bottom:0;
  background:rgba(10,20,35,.97);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  z-index:999;
  display:flex;
  flex-direction:column;
  padding:32px 28px 48px;
  gap:0;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.4,0,.15,1);
  overflow-y:auto;
}
.nav__drawer.open{transform:translateX(0)}

.nav__drawer-links{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.nav__drawer-links a{
  display:block;
  padding:11px 0;
  font-size:16px;
  font-weight:500;
  color:rgba(255,255,255,.88);
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:color .2s;
}
.nav__drawer-links a:hover{color:#fff}
.nav__drawer-links li:last-child a{border-bottom:none}

.nav__drawer-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:var(--accent);
  color:#fff;
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:14px 24px;
  border-radius:8px;
  margin-top:20px;
  transition:background .2s;
}
.nav__drawer-cta:hover{background:var(--accent-h)}

/* Подвал мобильного меню — телефоны и соц-сети в 2 колонки, как в footer */
.nav__drawer-foot{
  margin-top:auto;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.nav__drawer-phones{
  display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;
}
.nav__drawer-phone{
  font-size:16px;font-weight:500;
  color:#fff;text-decoration:none;letter-spacing:.01em;
  white-space:nowrap;
}
.nav__drawer-phone:hover{color:var(--accent)}
/* Иконки увеличены до 38×38, как в футере; SVG на полную высоту с белой
   подложкой (::before) под брендовыми цветами иконок. */
.nav__drawer-socials{
  display:flex;align-items:center;gap:10px;flex-shrink:0;
}
.nav__drawer-social{
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  position:relative;flex-shrink:0;
  text-decoration:none;transition:opacity .2s;
}
.nav__drawer-social::before{
  content:'';position:absolute;
  width:26px;height:26px;border-radius:50%;
  background:#fff;
  top:50%;left:50%;transform:translate(-50%,-50%);
  z-index:0;
}
.nav__drawer-social:hover{opacity:.82}
.nav__drawer-social svg{width:38px;height:38px;display:block;position:relative;z-index:1;flex-shrink:0}



.np-hero{
  position:relative;
  width:100%;
  height:100vh;   /* ← точно 100vh, не min-height */
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

/* Aurora fallback */
.np-hero__fallback{position:absolute;inset:0;z-index:0;
  background:
          radial-gradient(ellipse 80% 50% at 50% 0%,#0a2a4a 0%,transparent 70%),
          radial-gradient(ellipse 60% 40% at 80% 20%,#0d3860 0%,transparent 60%),
          linear-gradient(180deg,#020e1d 0%,#051525 40%,#030d18 100%)}
.np-a1{position:absolute;top:-15%;left:-5%;width:75%;height:60%;z-index:1;
  background:radial-gradient(ellipse at center,rgba(91,200,245,.14) 0%,rgba(40,101,173,.08) 40%,transparent 70%);
  filter:blur(40px);animation:aur1 12s ease-in-out infinite alternate}
.np-a2{position:absolute;top:5%;right:-10%;width:65%;height:50%;z-index:1;
  background:radial-gradient(ellipse at center,rgba(0,180,216,.10) 0%,rgba(91,200,245,.06) 40%,transparent 70%);
  filter:blur(55px);animation:aur2 16s ease-in-out infinite alternate}
.np-stars{position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:
          radial-gradient(1px 1px at 12% 7%,rgba(255,255,255,.65) 0%,transparent 100%),
          radial-gradient(1.5px 1.5px at 47% 5%,rgba(255,255,255,.75) 0%,transparent 100%),
          radial-gradient(1px 1px at 30% 14%,rgba(255,255,255,.40) 0%,transparent 100%),
          radial-gradient(1px 1px at 63% 11%,rgba(255,255,255,.50) 0%,transparent 100%),
          radial-gradient(1px 1px at 78% 8%,rgba(255,255,255,.40) 0%,transparent 100%),
          radial-gradient(1.5px 1.5px at 90% 17%,rgba(255,255,255,.60) 0%,transparent 100%),
          radial-gradient(1px 1px at 22% 24%,rgba(255,255,255,.30) 0%,transparent 100%),
          radial-gradient(2px 2px at 5% 38%,rgba(91,200,245,.40) 0%,transparent 100%),
          radial-gradient(1px 1px at 40% 30%,rgba(255,255,255,.35) 0%,transparent 100%),
          radial-gradient(1.5px 1.5px at 70% 25%,rgba(255,255,255,.45) 0%,transparent 100%)}
@keyframes aur1{0%{transform:translate(0,0) scale(1);opacity:.85}100%{transform:translate(4%,4%) scale(1.1);opacity:1}}
@keyframes aur2{0%{transform:translate(0,0) scale(1.1);opacity:.6}100%{transform:translate(-5%,-3%) scale(1);opacity:.9}}

/* Video */
.np-hero__vid-wrap{position:absolute;inset:0;z-index:2;overflow:hidden}
.np-hero__vid{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  opacity:0;transition:opacity 1.2s ease}
.np-hero__vid.loaded{opacity:1}

/* Overlays */
.np-hero__overlay{position:absolute;inset:0;z-index:3;
  background:linear-gradient(180deg,rgba(2,11,24,.55) 0%,rgba(2,11,24,.28) 45%,rgba(2,11,24,.60) 100%)}
.np-hero__fade{position:absolute;bottom:0;left:0;right:0;height:340px;z-index:4;pointer-events:none;
  background:linear-gradient(to top,rgba(255,255,255,.92) 0%,rgba(255,255,255,.55) 18%,rgba(255,255,255,.20) 40%,transparent 100%)}

/* Content */
.np-hero__cnt{
  position:relative;z-index:10;flex:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:calc(var(--nav-h) + 40px) 40px 60px;
  text-align:center}

/* Badge — flat brand red @ 90% (см. --c-cashback) */
.np-badge{
  display:inline-flex;align-items:center;gap:9px;
  background:var(--c-cashback);
  color:#fff;text-decoration:none;
  font-size:13px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;
  padding:8px 18px;border-radius:100px;margin-bottom:28px;
  animation:fd .6s ease both;cursor:pointer;
  transition:background .2s var(--e-out),transform .2s var(--e-out)}
.np-badge:hover{background:var(--c-cashback-hover)}
.np-badge svg{flex-shrink:0}

/* Eyebrow — абсолютно вверху внутри hero, чуть ниже nav */
.np-eye{
  position:absolute;
  top:calc(var(--nav-h) + 24px);
  left:0;right:0;
  text-align:center;
  font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ice);opacity:.85;
  animation:fd .7s ease .1s both;
  z-index:11;
  pointer-events:none;}

/* H1 */
.np-title{
  font-size:clamp(32px,4.4vw,64px);font-weight:800;line-height:1.06;
  color:var(--white);letter-spacing:-.02em;
  max-width:min(1100px,88vw);margin-bottom:24px;
  animation:fd .8s ease .2s both}
.np-title em{font-style:normal;color:var(--ice)}
@media(max-width:640px){
  .np-title{font-size:clamp(24px,6.4vw,32px);line-height:1.2}
}
.np-nowrap{white-space:nowrap}

/* Subtitle */
.np-sub{
  font-size:clamp(15px,1.55vw,19px);font-weight:300;line-height:1.72;
  color:var(--w70);max-width:min(840px,72vw);margin-bottom:36px;
  animation:fd .8s ease .3s both}

/* Tags */
.np-tags{
  display:flex;align-items:center;gap:10px;margin-bottom:40px;
  flex-wrap:wrap;justify-content:center;
  animation:fd .8s ease .35s both}
.np-tag{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--w-12);border:1px solid var(--w-25);
  color:var(--w-90);font-size:13px;font-weight:500;
  padding:8px 16px;border-radius:var(--r-pill);letter-spacing:.02em;backdrop-filter:blur(8px)}
.np-tag svg{flex-shrink:0;opacity:.85}

/* CTA */
.np-cta{
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:center;
  animation:fu .8s ease .4s both}

/* Shared gooey blob hover effect */
.goo-blobs{
  position:absolute;inset:0;
  height:100%;
  filter:url(#goo);z-index:-1;
  clip-path:inset(0 round var(--r-md))}
.goo-blobs span{
  display:block;position:absolute;
  background:var(--accent);
  width:34%;height:100%;border-radius:100%;
  transform:scale(1.4) translateY(200%) translateZ(0);
  transition:transform 1s ease}
.goo-blobs span:nth-child(1){left:-5%}
.goo-blobs span:nth-child(2){left:30%;transition-delay:80ms}
.goo-blobs span:nth-child(3){left:66%;transition-delay:30ms}

.np-btn{
  display:inline-flex;align-items:center;gap:10px;
  background:transparent;
  color:#fff;text-decoration:none;
  font-family:'Geologica',sans-serif;font-size:14px;font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;
  padding:13px 28px;border-radius:var(--r-md);
  border:none;
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55);
  cursor:pointer;position:relative;overflow:hidden;
  transition:box-shadow 1s;
  z-index:0}
.np-btn:hover{box-shadow:inset 0 0 0 1.5px var(--accent)}
.np-btn:hover .goo-blobs span{transform:scale(1.4) translateY(0) translateZ(0)}
.np-btn:focus-visible{outline:none;box-shadow:var(--sh-glow)}

.np-price{
  display:flex;flex-direction:column;gap:6px;
  border-left:1px solid rgba(255,255,255,.18);padding-left:20px}
.np-price-label{font-size:10px;font-weight:400;color:var(--w40);text-transform:uppercase;letter-spacing:.14em;line-height:1}
.np-price-val{font-size:22px;font-weight:700;color:var(--white);letter-spacing:-.01em;line-height:1}
.np-price-old{font-size:16px;font-weight:400;color:rgba(255,255,255,.55);text-decoration:line-through;text-decoration-color:rgba(255,255,255,.55);margin-left:8px}

/* Info strip */

/* Scroll indicator */
.np-scroll{
  position:absolute;bottom:100px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  z-index:10;opacity:.45;animation:fu 1s ease 1.2s both;pointer-events:none}
.np-scroll span{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--white);font-weight:500}
.np-scroll-line{width:1px;height:36px;background:linear-gradient(to bottom,var(--white),transparent);animation:sp 2s ease-in-out infinite}
@keyframes sp{0%,100%{transform:scaleY(1);opacity:1}50%{transform:scaleY(.5);opacity:.3}}

/* Hero animations */
@keyframes fd{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}
@keyframes fu{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}



.about{background:#fff;padding:100px 40px}
.about__inner{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;
  gap:80px;align-items:center;
}
.about__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.about__title{font-size:clamp(26px,3vw,42px);font-weight:800;line-height:1.12;color:var(--navy);letter-spacing:-.02em;margin-bottom:24px}
.about__title em{font-style:normal;color:var(--accent)}
.about__text{font-size:16px;font-weight:300;line-height:1.7;color:var(--text);margin-bottom:20px}
.about__text:last-of-type{margin-bottom:0}

/* Map container */

/* Bottom row: stats 4 columns */

.about__cta{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--accent);
  color:#fff;text-decoration:none;
  font-size:14px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;
  padding:14px 28px;border-radius:var(--r-md);
  transition:background var(--d-med) var(--e-out), transform var(--d-fast) var(--e-out), box-shadow var(--d-med) var(--e-out)}
.about__cta:hover{background:var(--accent-h)}
.about__cta:focus-visible{outline:none;box-shadow:var(--sh-glow)}
.about__cta svg{flex-shrink:0;transition:transform .25s}
.about__cta:hover svg{transform:translateX(3px)}

/* ═══ ABOUT RESPONSIVE ══════════════════════ */
@media(max-width:900px){
  .about{padding:64px 32px}
  .about__inner{grid-template-columns:1fr;gap:48px}
}
@media(max-width:640px){
  .about{padding:48px 20px}
  .about__inner{gap:36px}
  .about__title{font-size:clamp(24px,7vw,34px)}
  .about__text{font-size:14px}
  .about__stat-num span{font-size:16px}
}


/* ═══════════════════════════════════════════════
   SLIDER NAV — unified arrows & container
═══════════════════════════════════════════════ */
.slider-nav{display:flex;gap:10px}
.slider-nav__btn{
  width:44px;height:44px;border-radius:50%;
  border:1.5px solid rgba(40,101,173,.3);
  background:#fff;color:var(--accent);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s,border-color .2s,color .2s;flex-shrink:0;
}
.slider-nav__btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.slider-nav__btn:focus-visible{outline:none;box-shadow:var(--sh-glow)}
.slider-nav__btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
/* Dark variant (vids section) */
.slider-nav__btn--dark{
  border-color:rgba(255,255,255,.18);
  background:transparent;color:rgba(255,255,255,.7);
}
.slider-nav__btn--dark:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.4);color:#fff;transform:none}
@media(max-width:768px){
  .slider-nav__btn{width:40px;height:40px}
}


/* ═══════════════════════════════════════════════
   FEATURES SLIDER
═══════════════════════════════════════════════ */
.fs{background:var(--bg);padding:80px 40px;overflow:hidden}

.fs__header{
  margin-bottom:32px;
  display:flex;align-items:flex-end;justify-content:space-between;
  max-width:1100px;margin-left:auto;margin-right:auto}
.fs__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.fs__header h2{font-size:clamp(24px,3vw,38px);font-weight:800;line-height:1.1;color:var(--navy);letter-spacing:-.02em}

.fs__nav{display:flex;gap:10px;flex-shrink:0;padding-bottom:4px}
/* fs arrows → .slider-nav__btn */

.fs__track-wrap{position:relative;width:100vw;margin-inline:calc((100% - 100vw) / 2)}
.fs__track{
  display:flex;gap:20px;overflow-x:auto;
  scroll-snap-type:x mandatory;scroll-padding-left:40px;
  padding:0 40px 16px;scrollbar-width:none;cursor:default;
  overscroll-behavior-x:contain}
.fs__track:active{cursor:default}
.fs__track::-webkit-scrollbar{display:none}

.fs__card{
  flex:0 0 calc(46% - 10px);min-width:320px;max-width:640px;
  scroll-snap-align:start;border-radius:16px;overflow:hidden;
  background:#fff;border:1px solid var(--border);
  cursor:pointer;
  contain:layout paint;
  transform:translateZ(0)}
@media(hover:hover){
  .fs__card{transition:border-color .2s}
  .fs__card:hover{border-color:var(--c-ice-300)}
}
@media(hover:none){
  .fs__card{cursor:default}
  .fs__track{cursor:default}
}
.fs__card-img-wrap{overflow:hidden}
.fs__card-img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;transition:transform .45s}
.fs__card:hover .fs__card-img{transform:scale(1.05)}
.fs__card-title{font-size:18px;font-weight:700;color:var(--navy);letter-spacing:-.01em;margin-bottom:12px;line-height:1.25}
.fs__card-text{font-size:14px;font-weight:300;line-height:1.7;color:var(--text)}

.fs__dots{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px}
.fs__dot{width:6px;height:6px;border-radius:50%;background:#c8d8e8;transition:all .3s;cursor:pointer}
.fs__dot.active{width:22px;border-radius:3px;background:var(--accent)}

.fs__track-wrap::after{
  content:'';position:absolute;top:0;right:0;bottom:16px;width:80px;z-index:2;
  background:linear-gradient(to left,var(--bg) 0%,transparent 100%);pointer-events:none}



@media(max-width:1100px){
  .nav__links{gap:0}
  .nav__links a{padding:6px 10px;font-size:14px}
  /* На планшетах прячем низкоприоритетные пункты, чтобы шапка не ломалась */
  .nav__link--optional{display:none}
}

/* Tablet: hide desktop links, show burger */
@media(max-width:900px){
  .nav__links{display:none}
  .nav__burger{display:flex}
  /* На мобиле CTA из шапки убираем — её роль играет .fab-cta снизу,
     которая появляется после прокрутки за hero. Шапка чище: только лого + бургер. */
  .nav__cta{display:none}
  .nav__inner{padding:0 14px;gap:10px;justify-content:space-between}
  /* На мобиле шапка ВСЕГДА fixed — иначе при скролле героя она «уезжает»
     с контентом до того, как сработает .nav--scrolled (по доходу #about
     до верха), и юзер видит провал без шапки. */
  .nav{position:fixed}
  /* Slide-down анимация выключена на мобиле — нав уже всегда fixed,
     повторный «выезд сверху» при добавлении .nav--scrolled выглядит как мигание. */
  .nav--scrolled{animation:none}
  /* На мобиле всегда белый фон — прозрачный выглядит плохо */
  .nav--top{
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    box-shadow:0 1px 0 rgba(0,0,0,.08);
  }
  .nav--top .nav__logo img{filter:none}
  .nav--top .nav__links a{color:var(--navy)}
  .nav--top .nav__burger span{background:var(--navy)}

  /* Hero mobile */
  .np-eye{display:none}
  .np-hero__cnt{padding:calc(var(--nav-h) + 20px) 0 50px}
  .np-sub{display:none}

  /* CTA stack vertically on mobile */
  .np-cta{flex-direction:column;gap:16px;align-items:center}
  .np-price{
    border-left:none;padding-left:0;
    border-top:1px solid rgba(255,255,255,.18);padding-top:12px;
    align-items:center;text-align:center}

  /* Info strip */
  .np-strip{padding:0 16px}
  .np-strip__inner{grid-template-columns:repeat(2,1fr)}
  .np-si:nth-child(2n){border-right:none}
  .np-si:nth-child(n+3){border-top:1px solid var(--border)}

  /* About */
  .about{padding:48px 20px}
  .about__inner{grid-template-columns:1fr;gap:36px}
  .about__stats{grid-template-columns:repeat(2,1fr)}

  /* Slider */
  .fs__header{padding:0;margin-bottom:20px}
  .fs__track{padding:0 20px 16px;gap:14px;scroll-padding-left:20px}
  .fs__card{flex:0 0 80vw;min-width:240px}
  .fs__card-body{padding:18px 20px 20px}
  .fs__card-title{font-size:17px;margin-bottom:8px}
  .fs__card-text{font-size:13px;line-height:1.7}
  .fs__track-wrap::after{width:40px}
  .fs{padding:48px 20px}
}

@media(max-width:640px){
  .np-scroll{display:none}
}



/* ── ПРОГРАММА КРУИЗА ── */

/* About stats grid */
.about__stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--border);
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--border);
}
.about__stat{
  background:#fff;
  padding:20px 22px;
  display:flex;flex-direction:column;gap:6px;
}
.about__stat-label{
  font-size:11px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:#8896a7;
}
.about__stat-val{
  font-size:13px;font-weight:500;color:var(--navy);
  line-height:1.3;letter-spacing:-.01em;
}
.about__stat-val--sm{font-size:13px;font-weight:500;line-height:1.5}
.about__stat-val--green{color:#1a9e5c}




/* ══════════════════════════════════
   БЛОК ПРОГРАММА
══════════════════════════════════ */

.prog{background:#fff;padding:80px 40px;overflow:hidden}
.prog__inner{max-width:1100px;margin:0 auto}

/* Header */
.prog__header{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:32px;
}
.prog__header-left .prog__label{
  font-size:11px;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent);margin-bottom:12px;
}
.prog__header-left h2{
  font-size:clamp(22px,2.8vw,36px);font-weight:800;
  line-height:1.1;color:var(--navy);letter-spacing:-.02em;
}
/* Nav arrows in header */
/* prog arrows → .slider-nav + .slider-nav__btn */

/* ── MAP ───────────────────────────────── */
.prog__map-wrap{
  border-radius:16px;overflow:hidden;
  border:1px solid #d8e8f0;
  background:#F1F9FF;
  margin-bottom:24px;
  line-height:0;
  position:relative;
}
.prog__map-wrap svg{
  width:100%;height:auto;display:block;
}
/* webp map variant */
.prog__map-wrap--img{position:relative}
.prog__map-scene{position:relative;transition:transform .4s ease}
.prog__map-bg{width:100%;height:auto;display:block}
.prog__map-overlay{
  position:absolute;top:0;left:0;
  width:100%;height:100%;pointer-events:none;
}
#ship-img-marker{filter:drop-shadow(0 2px 8px rgba(0,0,0,.45))}
.ship-marker{filter:drop-shadow(0 2px 8px rgba(0,0,0,.45))}

/* ── VERSION SWITCH ── */
.variant{display:none}
.variant.active{display:block}
.prog__title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.prog__meta{
  display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin-left:auto;
}
.prog__guarantee{
  display:inline-flex;align-items:center;gap:9px;
  padding:var(--s-2) var(--s-4);border-radius:var(--r-pill);
  background:linear-gradient(135deg, var(--tint-brand-10), var(--tint-brand-04));
  border:1px solid var(--tint-brand-25);
  color:var(--accent);
  font-size:13px;font-weight:600;line-height:1.3;letter-spacing:-.005em;
  white-space:nowrap;
}
.prog__guarantee svg{flex-shrink:0;color:var(--accent)}
/* Overlay поверх карты — десктоп: правый верхний угол */
.prog__guarantee--overlay{
  position:absolute;top:14px;right:14px;z-index:5;
  margin-left:0;
  background:var(--w-92);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border-color:var(--tint-brand-30);
  box-shadow:var(--sh-md);
}
/* Перебиваем глобальное правило .prog__map-wrap svg{width:100%} для иконки плашки */
.prog__map-wrap .prog__guarantee--overlay svg{
  width:18px;height:18px;display:inline-block;
}
/* На десктопе показываем оверлей, в title-row копию прячем */
@media(min-width:901px){
  .prog__title-row .prog__guarantee:not(.prog__guarantee--overlay){display:none}
}
/* На мобиле — оверлей прячем, остаётся плашка в title-row */
@media(max-width:900px){
  .prog__guarantee--overlay{display:none}
  .prog__guarantee{margin-left:0;font-size:12px;padding:7px 13px;white-space:normal}

  /* Layout: row1 — label (full width), row2 — h2 + arrows, row3 — switch + guarantee.
     display:contents на двух обёртках поднимает их детей в grid .prog__header. */
  .prog__header{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-rows:auto auto auto;
    align-items:center;
    column-gap:12px;row-gap:12px;
    margin-bottom:20px;
  }
  .prog__header > .prog__header-left{display:contents}
  .prog__header-left > .prog__title-row{display:contents}

  .prog__header-left > .prog__label{
    grid-column:1 / -1;grid-row:1;
    margin-bottom:0;
  }
  .prog__title-row > h2{
    grid-column:1;grid-row:2;
    margin:0;
  }
  .prog__header > .slider-nav{
    grid-column:2;grid-row:2;
    align-self:center;
  }
  .prog__title-row > .prog__meta{
    grid-column:1 / -1;grid-row:3;
    margin-left:0;
    display:flex;justify-content:space-between;
    width:100%;
  }
}
.version-switch{
  display:inline-flex;background:#edf2f7;border-radius:8px;padding:2px;flex-shrink:0;
}
/* HTML-атрибут [hidden] перебивается display:inline-flex — фиксим явно */
.version-switch[hidden]{display:none}
.version-switch button{
  font-family:inherit;font-size:11px;font-weight:600;
  padding:5px 12px;border:none;border-radius:6px;
  background:transparent;color:var(--text);cursor:pointer;
  transition:all .2s;line-height:1.2;
}
.version-switch button.active{
  background:var(--accent);color:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.15);
}

/* ── V1 — map 55vh + nav inside + compact cards ── */
.v1 .prog__map-wrap{max-height:55vh;margin-bottom:16px}
.v1 .prog__map-wrap .prog__map-bg{object-fit:cover;object-position:35% 28%}
.v1 .prog__map-nav{
  position:absolute;bottom:16px;right:16px;z-index:3;
  display:flex;gap:8px;
}
.v1 .prog__map-nav button{
  width:40px;height:40px;border-radius:50%;border:none;
  background:rgba(255,255,255,.9);backdrop-filter:blur(8px);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.15);transition:background .2s;
}
.v1 .prog__map-nav button:hover{background:#fff}
.v1 .prog__map-nav svg{width:18px;height:18px;stroke:var(--navy);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.v1 .prog__header .slider-nav{display:none}
.v1 .prog__detail-item{flex:0 0 min(70vw,880px);grid-template-columns:320px 1fr}
.v1 .prog__detail-photo{aspect-ratio:3/2}
.v1 .prog__detail-body{padding:18px 24px}
.v1 .prog__detail-daytitle{font-size:16px;margin-bottom:6px}
.v1 .prog__detail-desc{font-size:13px;line-height:1.55}

/* ── V2 — side-by-side (map 2fr + cards 1fr) ── */
.v2 .prog__layout{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:start}
.v2 .prog__layout>*{min-width:0}
.v2 .prog__map-wrap{margin-bottom:0;min-width:0}
.v2 .prog__detail{width:100%;margin-inline:0}
.v2 .prog__detail::after{display:none}
.v2 .prog__detail-track{
  flex-direction:column;overflow-x:visible;overflow-y:auto;
  max-height:min(calc(100vh - 240px), 630px);scroll-snap-type:y mandatory;
  scroll-padding-left:0;padding:0 4px 340px 0;gap:12px;
  scrollbar-width:none;
}
.v2 .prog__detail-track::-webkit-scrollbar{display:none}
.v2 .prog__detail-item{
  flex:none;width:100%;scroll-snap-align:start;
  grid-template-columns:1fr;grid-template-rows:auto auto;
}
.v2 .prog__detail-photo{aspect-ratio:16/9}
.v2 .prog__detail-body{padding:14px 16px}
.v2 .prog__detail-daytitle{font-size:15px;margin-bottom:4px}
.v2 .prog__detail-desc{font-size:12px;line-height:1.5}
.v2 .prog__detail-badge{padding:4px 10px;font-size:11px;border-radius:6px}
.v2 .prog__dots{display:none}

/* ── DAYS TRACK ── */

/* Slider wrap — like "что вас ждёт" block */
.prog__slider-wrap{display:none}
.prog__track{display:none}
.prog__card{display:none}

/* ── DETAIL CAROUSEL — native scroll, center snap, full-bleed ─── */
.prog__detail{
  position:relative;
  width:100vw;
  margin-inline:calc((100% - 100vw) / 2);
}
.prog__detail::after{
  content:'';position:absolute;top:0;bottom:0;width:clamp(40px,6vw,100px);
  z-index:2;pointer-events:none;
  right:0;background:linear-gradient(to left,#fff 0%,transparent 100%);
}

/* Scroll track */
.prog__detail-track{
  display:flex;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-padding-left:40px;
  padding:4px 0 16px 40px;
  scrollbar-width:none;
  overscroll-behavior-x:contain;
}
.prog__detail-track::-webkit-scrollbar{display:none}

/* Each slide — centered snap, one wide card per view */
.prog__detail-item{
  flex:0 0 min(72vw,880px);
  scroll-snap-align:start;
  border-radius:16px;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--border);
  contain:layout paint;
  transform:translateZ(0);
}
@media(hover:hover){
  .prog__detail-item{transition:border-color .2s}
  .prog__detail-item:hover{border-color:var(--c-ice-300)}
}

/* Mobile nav — between map and detail, hidden on desktop */
.prog__mobile-nav{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-bottom:14px;
}
/* prog mobile arrows → .slider-nav__btn */


/* Dots — inside detail at bottom */
.prog__dots{
  display:flex;align-items:center;justify-content:center;
  gap:6px;padding:14px 0 0;
}
.prog__dot{
  width:6px;height:6px;border-radius:50%;
  background:#c8d8e8;transition:all .3s;cursor:pointer;
}
.prog__dot.active{width:22px;border-radius:3px;background:var(--accent)}

/* Two-column layout on desktop/tablet */
.prog__detail-item{
  display:grid;
  grid-template-columns:1fr 1fr;
}
/* Photo with badges */
.prog__detail-photo{
  position:relative;overflow:hidden;
  aspect-ratio:auto;min-height:0;
}
.prog__detail-body{
  display:flex;flex-direction:column;justify-content:center;
}
.prog__detail-photo img{
  width:100%;height:100%;
  object-fit:cover;display:block;transition:transform .45s;
}
.prog__detail-item:hover .prog__detail-photo img{transform:scale(1.05)}
.prog__detail-badge{
  position:absolute;z-index:2;
  padding:6px 14px;border-radius:20px;
  font-size:12px;font-weight:500;
  backdrop-filter:blur(8px);
}
.prog__detail-badge--day{
  top:14px;left:14px;
  background:rgba(40,101,173,.85);color:#fff;
  letter-spacing:.1em;text-transform:uppercase;font-size:11px;
}
.prog__detail-badge--loc{
  top:14px;right:14px;
  background:rgba(255,255,255,.85);color:var(--navy);
}
/* Body: title + description */
.prog__detail-body{padding:20px 24px}
.prog__detail-daytitle{
  font-size:16px;font-weight:700;color:var(--navy);
  letter-spacing:-.01em;margin:0 0 8px;
}
.prog__detail-desc{
  font-size:13px;font-weight:300;line-height:1.7;color:var(--text);
  margin:0;
}

/* ── RESPONSIVE ────────────────────────── */
@media(max-width:900px){
  .prog{padding:48px 20px 40px}
  .prog__header{margin-bottom:20px}
  .prog__mobile-nav{display:none}

  /* V2 structural reset: приводим V2 к layout V1 на мобилке.
     Сбрасываем desktop-грид, вертикальный скролл и V2-специфичные
     базовые правила, чтобы унаследовать базовые + общие стили V1. */
  .v2 .prog__layout{display:block;grid-template-columns:none;min-height:0;gap:0}
  .v2 .prog__detail{width:100vw;margin-inline:calc((100% - 100vw) / 2)}
  .v2 .prog__detail::after{
    display:block;content:'';position:absolute;top:0;bottom:0;
    width:clamp(40px,6vw,100px);z-index:2;pointer-events:none;
    right:0;background:linear-gradient(to left,#fff 0%,transparent 100%);
  }
  .v2 .prog__dots{display:flex}

  /* Общие стили карусели для V1 и V2 — identичный рендер */
  .v1 .prog__detail-track,
  .v2 .prog__detail-track{
    display:flex;flex-direction:row;gap:20px;
    overflow-x:auto;overflow-y:visible;
    max-height:none;scroll-snap-type:x mandatory;
    scroll-padding-left:20px;padding:4px 0 12px 20px;
  }
  .v1 .prog__detail-item,
  .v2 .prog__detail-item{
    flex:0 0 82vw;width:auto;
    display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;
    scroll-snap-align:start;
  }
  .v1 .prog__detail-photo,
  .v2 .prog__detail-photo{aspect-ratio:2/1}
  .v1 .prog__detail-body,
  .v2 .prog__detail-body{padding:16px 20px;justify-content:flex-start}
  .v1 .prog__detail-daytitle,
  .v2 .prog__detail-daytitle{font-size:15px;margin-bottom:6px}
  .v1 .prog__detail-desc,
  .v2 .prog__detail-desc{font-size:13px;line-height:1.55}
  .v1 .prog__detail-badge,
  .v2 .prog__detail-badge{padding:6px 14px;font-size:12px;border-radius:20px}
  .v1 .prog__detail-badge--day,
  .v2 .prog__detail-badge--day{font-size:11px}

  /* Карта + навигация — одинаково в обеих версиях */
  .v1 .prog__map-wrap,
  .v2 .prog__map-wrap{max-height:55vh;margin-bottom:16px}
  .v1 .prog__map-nav,
  .v2 .prog__map-nav{display:none}
  .v1 .prog__header .slider-nav,
  .v2 .prog__header .slider-nav{display:flex}

  .prog__card{flex:0 0 72vw;min-width:160px}
}
@media(max-width:640px){
  .prog{padding:48px 20px}
  .prog__map-scene{transform:scale(1.5);transform-origin:42% 25%}
  .v1 .prog__map-wrap .ship-marker use,
  .v2 .prog__map-wrap .ship-marker use{transform:scale(1.75);transform-origin:22px 22px}
}
@media(min-width:1440px){
  .prog__inner{max-width:1280px}
  .prog{padding-left:60px;padding-right:60px}
  .v1 .prog__detail-item{flex:0 0 min(70vw,960px);grid-template-columns:360px 1fr}
  .v1 .prog__detail-body{padding:22px 28px}
  .v1 .prog__detail-daytitle{font-size:17px;margin-bottom:8px}
  .v1 .prog__detail-desc{font-size:14px;line-height:1.6}
}
@media(min-width:1920px){
  .prog__inner{max-width:1440px}
  .prog{padding-left:80px;padding-right:80px}
  .v1 .prog__detail-item{flex:0 0 min(70vw,1060px);grid-template-columns:400px 1fr}
  .v1 .prog__detail-body{padding:24px 32px}
  .v1 .prog__detail-daytitle{font-size:18px;margin-bottom:10px}
  .v1 .prog__detail-desc{font-size:14.5px;line-height:1.65}
}


.st0{fill:#F1F9FF;stroke:#666666;stroke-width:0.5;}
.st1{fill:#F3F3F3;stroke:#666666;stroke-width:0.5;}
.st2{fill:#2865AD;}
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#2865AD;}
.st4{fill:#F53D45;}
.st5{fill:#363636;}
.st6{fill:#FFFFFF;}
.st7{fill:#417505;}
.st8{fill:#363547;}
.st9{fill:#0071BA;}
.st10{fill-rule:evenodd;clip-rule:evenodd;fill:none;}


.wp-ring{fill:none;stroke-width:2;opacity:0}
.wp-dot{transition:opacity .3s}
.wp-label-bg{opacity:0}
#ship-marker{filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.wp-label-txt{opacity:0}

/* Inactive dots visible */
.wp-group .wp-dot{opacity:1}
.wp-trail .wp-dot{opacity:1}

/* Active: hide dots, show ring */
.wp-group.wp-active .wp-dot{opacity:0}
.wp-group.wp-active .wp-ring{opacity:1;stroke:#2865AD;animation:wpPulse 2s ease-out infinite}
.wp-trail.wp-active .wp-dot{opacity:0}
/* Suppress overlapping waypoint */
.wp-suppress .wp-dot{opacity:0 !important}

/* Pole: red ring */
.wp-group.wp-pole.wp-active .wp-ring{stroke:#E8293A}

@keyframes wpPulse{
  0%{stroke-opacity:.8}70%{stroke-opacity:0;r:28}100%{stroke-opacity:0;r:28}
}





.form-block{background:linear-gradient(135deg,#0a1628 0%,#0f2040 40%,#0d1e36 100%);padding:80px 40px;position:relative;overflow:hidden}
.form-block::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 40% at 80% 50%,rgba(40,101,173,.18) 0%,transparent 60%),radial-gradient(ellipse 30% 50% at 10% 80%,rgba(91,200,245,.08) 0%,transparent 50%);pointer-events:none}
.form-block__inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;position:relative;z-index:1}
.form-block__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:rgba(91,200,245,.8);margin-bottom:12px}
.form-block__title{font-size:clamp(24px,2.8vw,38px);font-weight:800;color:#fff;line-height:1.1;letter-spacing:-.02em;margin-bottom:16px}
.form-block__title em{font-style:normal;color:#5BC8F5}
.form-block__desc{font-size:15px;font-weight:300;line-height:1.7;color:rgba(255,255,255,.62)}
.form-block__bullets{margin-top:22px;list-style:none;display:flex;flex-direction:column;gap:10px}
.form-block__bullets li{display:flex;align-items:center;gap:10px;font-size:14px;color:rgba(255,255,255,.75)}
.form-block__bullets li::before{content:"";flex-shrink:0;width:20px;height:20px;border-radius:50%;background:rgba(40,101,173,.35);border:1.5px solid rgba(91,200,245,.5);background-image:url("data:image/svg+xml,%3Csvg width='10' height='8' viewBox='0 0 10 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4L3.5 6.5L9 1' stroke='%235BC8F5' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}
.form-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:40px;backdrop-filter:blur(12px)}
.form-card__title{font-size:18px;font-weight:700;color:#fff;margin-bottom:6px}
.form-card__sub{font-size:13px;font-weight:300;color:rgba(255,255,255,.5);margin-bottom:28px}
.form-card__field{margin-bottom:14px}
.form-card__field label{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:7px}
.form-card__field input:not(.iti__tel-input){width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:13px 16px;font-size:16px;font-family:"Geologica",system-ui,sans-serif;color:#fff;outline:none;transition:border-color .2s}
.form-card__field input:not(.iti__tel-input)::placeholder{color:rgba(255,255,255,.28)}
.form-card__field input:not(.iti__tel-input):focus{border-color:rgba(91,200,245,.6)}
.form-card__btn{width:100%;margin-top:6px;padding:15px;background:var(--accent);border:none;border-radius:var(--r-md);font-size:14px;font-weight:500;font-family:"Geologica",system-ui,sans-serif;color:#fff;cursor:pointer;transition:background var(--d-med) var(--e-out),transform var(--d-fast) var(--e-out),box-shadow var(--d-med) var(--e-out);display:flex;align-items:center;justify-content:center;gap:8px}
.form-card__btn:hover{background:var(--accent-h)}
.form-card__btn:focus-visible{outline:none;box-shadow:var(--sh-glow)}
.form-card__consent{margin-top:12px;font-size:11px;font-weight:300;color:rgba(255,255,255,.35);line-height:1.5;text-align:center}
.form-card__consent a{color:rgba(255,255,255,.5);text-decoration:none}


.ship{padding:80px 40px 0;background:#fff}
.ship__inner{max-width:1100px;margin:0 auto}

/* Header row with arrows */
.ship__header{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:32px;
}
.ship__header-left{}
.ship__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.ship__title{font-size:clamp(26px,3vw,42px);font-weight:800;color:var(--navy);line-height:1.1;letter-spacing:-.025em}
.ship__title em{font-style:normal;background:linear-gradient(135deg,#2865AD,#5BC8F5);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
/* ship arrows → .slider-nav + .slider-nav__btn */

/* Gallery: desktop = hero + thumbstrip, mobile = carousel */
.ship__gallery{
  display:flex;flex-direction:column;gap:8px;
  border-radius:16px;overflow:hidden;
  margin-bottom:40px;
}

/* Desktop hero */
.ship__gallery-main{
  position:relative;aspect-ratio:16/9;overflow:hidden;
}
.ship__gallery-main img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s;
}

/* Overlaid prev/next arrows */

/* Counter */
.ship__gallery-counter{
  position:absolute;bottom:12px;right:12px;
  background:rgba(10,22,40,.65);backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.15);
  border-radius:20px;padding:4px 12px;
  font-size:12px;font-weight:500;color:#fff;
  pointer-events:none;
}

/* Thumbnail strip (5 thumbs) */
.ship__gallery-thumbstrip{
  display:flex;gap:8px;
}
.ship__gallery-thumb{
  flex:1;aspect-ratio:16/9;overflow:hidden;cursor:pointer;position:relative;
  opacity:.55;transition:opacity .2s;
  /* button reset */
  padding:0;border:none;background:none;font:inherit;color:inherit;
  border-radius:6px;
}
.ship__gallery-thumb:focus-visible{outline:none;box-shadow:var(--sh-glow)}
.ship__gallery-thumb img{
  width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s;
}
.ship__gallery-thumb:hover{opacity:.8}
.ship__gallery-thumb:hover img{transform:scale(1.05)}
.ship__gallery-thumb.active{opacity:1;box-shadow:inset 0 0 0 2.5px var(--accent)}

/* Mobile carousel (hidden on desktop) */
.ship__gallery-carousel{display:none}
.ship__gallery-track{
  display:flex;overflow-x:auto;
  scroll-snap-type:x mandatory;scrollbar-width:none;
  overscroll-behavior-x:contain;
}
.ship__gallery-track::-webkit-scrollbar{display:none}
.ship__gallery-slide{
  flex:0 0 100%;scroll-snap-align:start;
  aspect-ratio:3/2;overflow:hidden;
  border-radius:16px;background:#dde8f0;
  border:1px solid var(--border);
}
.ship__gallery-slide img{width:100%;height:100%;object-fit:cover;display:block}
.ship__gallery-dots{
  display:flex;gap:6px;justify-content:center;padding:14px 0 0;
}
.ship__gallery-dot{
  width:6px;height:6px;border-radius:50%;background:var(--border);
  border:none;cursor:pointer;padding:0;transition:all .3s;
}
.ship__gallery-dot.active{width:20px;border-radius:3px;background:var(--accent)}

/* Text below gallery — 2 columns */
.ship__text p{font-size:15px;font-weight:300;line-height:1.7;color:var(--text);margin-bottom:14px}
.ship__text p:last-child{margin-bottom:0}

/* Specs — elegant, not heavy */
.ship__specs-row{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:0;
}
.ship__spec{
  padding:24px 0;
  border-bottom:1px solid var(--border);
}
.ship__spec:nth-child(odd){padding-right:24px;border-right:1px solid var(--border)}
.ship__spec:nth-child(even){padding-left:24px}
.ship__spec:nth-last-child(-n+2){border-bottom:none}
.ship__spec-row{display:flex;align-items:baseline;gap:5px;margin-bottom:5px}
.ship__spec-num{
  font-size:32px;font-weight:700;
  color:var(--navy);letter-spacing:-.03em;line-height:1;
}
.ship__spec-unit{
  font-size:14px;font-weight:500;color:var(--accent);
}
.ship__spec-label{
  font-size:13px;font-weight:400;color:#8896a7;line-height:1.35;
}

/* Full-width specs strip (below body grid) */
.ship__specs-strip{
  margin-top:36px;
  margin-bottom:24px;
  border-top:1px solid var(--border);
  display:grid;grid-template-columns:repeat(4,1fr);
}
.ship__strip-item{
  padding:28px 24px;
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;gap:5px;
}
.ship__strip-item:last-child{border-right:none}
.ship__strip-num{
  font-size:clamp(24px,2.8vw,38px);font-weight:700;
  color:var(--navy);letter-spacing:-.025em;line-height:1;
  display:flex;align-items:baseline;gap:4px;
}
.ship__strip-num em{
  font-style:normal;font-size:.45em;font-weight:500;
  color:var(--accent);
}
.ship__strip-label{font-size:13px;font-weight:400;color:#8896a7;line-height:1.4}


.amenities{padding:64px 40px 80px;background:#fff;overflow:hidden}
.amenities__inner{max-width:1100px;margin:0 auto}
.amenities__header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:32px}
.amenities__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.amenities__title{font-size:clamp(22px,2.6vw,34px);font-weight:800;color:var(--navy);line-height:1.1;letter-spacing:-.02em}
/* amenities arrows → .slider-nav + .slider-nav__btn */

.amenities__wrap{
  position:relative;
  width:100vw;
  margin-inline:calc((100% - 100vw) / 2);
}
.amenities__track{
  display:flex;gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-padding-left:40px;
  padding:4px 0 16px 40px;
  scrollbar-width:none;
  overscroll-behavior-x:contain;
}
.amenities__track::-webkit-scrollbar{display:none}

.amenity-slide{flex:0 0 360px;min-width:280px;scroll-snap-align:start;display:flex}
.amenity-card{border-radius:16px;overflow:hidden;background:#fff;border:1px solid var(--border);transition:border-color .2s;display:flex;flex-direction:column;width:100%}
.amenity-card:hover{border-color:var(--c-ice-300)}
.amenity-card__img{width:100%;aspect-ratio:3/2;overflow:hidden;background:#dde8f0}
.amenity-card__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s}
.amenity-card:hover .amenity-card__img img{transform:scale(1.05)}
.amenity-card__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f1f8 0%,#d0e3f0 100%)}
.amenity-card__placeholder svg{width:48px;height:48px;color:#9bb8cf;opacity:.6}
.amenity-card__name{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:8px;line-height:1.2}
.amenity-card__desc{font-size:13px;font-weight:300;line-height:1.65;color:var(--text)}


@media(max-width:900px){
  .ship__specs-strip{grid-template-columns:repeat(2,1fr)}
  .ship__strip-item:nth-child(2){border-right:none}
  .ship__strip-item:nth-child(3){border-top:1px solid var(--border)}
  .ship__strip-item:nth-child(4){border-top:1px solid var(--border);border-right:none}
  .amenity-slide{flex:0 0 280px;min-width:240px}
}

/* ── Form block: stack into single column on narrow desktops/tablets ──
   Below 1100px (container max-width) the 2-column grid with gap:80px gives
   each column ≤ 460px — cramps the form inputs and contact buttons. Stack
   and center until there's genuine room for side-by-side layout. */
@media(max-width:1100px){
  .form-block{padding:64px 32px}
  .form-block__inner{
    grid-template-columns:1fr;
    gap:48px;
    max-width:560px;
  }
  /* Info strip: 8 cols → 4 cols on tablets */
  .np-strip__inner{grid-template-columns:repeat(4,1fr)}
  .np-si:nth-child(4n){border-right:none}
  .np-si:nth-child(n+5){border-top:1px solid var(--border)}
}
@media(max-width:640px){
  .form-block{padding:48px 20px}
  .form-block__inner{grid-template-columns:1fr;gap:40px}
  .ship{padding:48px 20px 0}
  /* Mobile gallery: hide desktop layout, show full-bleed carousel with peek */
  .ship__gallery{border-radius:0;overflow:visible;margin-bottom:16px;aspect-ratio:auto}
  .ship__gallery-main{display:none}
  .ship__gallery-thumbstrip{display:none}
  .ship__gallery-carousel{
    display:block;
    width:100vw;
    margin-inline:calc((100% - 100vw) / 2);
  }
  .ship__gallery-track{
    scroll-padding-left:20px;
    padding:4px 0 16px 20px;
    gap:20px;
  }
  /* Match amenities slide sizing on mobile */
  .ship__gallery-slide{flex:0 0 80vw;min-width:240px;border-radius:16px}
  /* Text columns → single, no gap */
  .ship__text p{font-size:14px;margin-bottom:16px}
  .ship__text p:last-child{margin-bottom:0}
  .ship__specs-strip{grid-template-columns:repeat(2,1fr)}
  .amenities{padding:48px 20px}
  .amenities__header{margin-bottom:20px}
  .amenities__track{scroll-padding-left:20px;padding-left:20px}
  .amenity-slide{flex:0 0 80vw;min-width:240px}
  .form-card{padding:28px 20px}
  .ship__header{margin-bottom:20px}
}





.cabins{padding:80px 40px 40px;background:#f4f9fc;overflow-x:hidden}
.cabins__inner{max-width:1100px;margin:0 auto}
/* Header */
.cabins__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.cabins__title{font-size:clamp(26px,3vw,42px);font-weight:800;color:var(--navy);line-height:1.1;letter-spacing:-.025em;margin-bottom:32px}
/* Tabs */
.cabins__tabs{
  display:flex;gap:8px;margin-bottom:24px;
  overflow-x:auto;scrollbar-width:none;
  padding-bottom:2px;
}
.cabins__tabs::-webkit-scrollbar{display:none}
.cabins__tab{
  flex-shrink:0;
  padding:10px 20px;
  border-radius:40px;
  border:1.5px solid var(--border);
  background:#fff;
  font-size:13px;font-weight:500;
  font-family:"Geologica",system-ui,sans-serif;
  color:var(--text);cursor:pointer;
  white-space:nowrap;
  transition:all .2s;
}
.cabins__tab:hover{border-color:#b8cce0;color:var(--navy)}
.cabins__tab.active{
  background:#244777;border-color:#244777;
  color:#fff;font-weight:500;
}
/* Card */
.cabins__card{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:0;border-radius:16px;overflow:hidden;
  border:1px solid var(--border);
  background:#fff;
}
.cabins__card-left{
  position:relative;overflow:hidden;
  background:#dde8f0;
  aspect-ratio:unset;min-height:460px;
}
.cabins__card-left img.cabin-photo{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s ease, opacity .3s;
}
/* Hide mobile-only elements on desktop */
.cabin-plan-icon{display:none}
/* Plan thumbnail in corner */
.cabin-plan-wrap{
  position:absolute;bottom:16px;right:16px;
  width:120px;border-radius:10px;overflow:hidden;
  border:2px solid rgba(255,255,255,.8);
  cursor:pointer;
  transition:transform .2s;
  background:#fff;
  /* button reset */
  padding:0;font-family:inherit;color:inherit;
  display:block;
}
.cabin-plan-wrap:hover{transform:scale(1.04)}
.cabin-plan-wrap img{width:100%;height:auto;display:block}
.cabin-plan-label{
  font-size:9px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:#8896a7;
  text-align:center;padding:5px 0 6px;
  background:#fff;
  cursor:pointer;
}
/* Availability badge */
.cabin-avail{
  position:absolute;top:16px;left:16px;
  padding:6px 14px;border-radius:20px;
  font-size:12px;font-weight:500;
  backdrop-filter:blur(8px);
}
.cabin-avail--has{background:rgba(40,101,173,.85);color:#fff}
.cabin-avail--none{background:rgba(15,28,46,.65);color:rgba(255,255,255,.7)}
/* Right side */
.cabins__card-right{
  padding:40px 44px;
  display:flex;flex-direction:column;
  justify-content:space-between;
  min-width:0;
}
.cabin-name{
  font-size:clamp(20px,2.2vw,28px);font-weight:800;
  color:var(--navy);letter-spacing:-.02em;line-height:1.1;
  margin-bottom:20px;
}
/* Specs chips */
.cabin-specs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.cabin-spec-chip{
  display:flex;align-items:center;gap:6px;
  padding:7px 14px;border-radius:8px;
  background:var(--bg);border:1px solid var(--border);
  font-size:13px;font-weight:500;color:var(--navy);
}
.cabin-spec-chip svg{width:14px;height:14px;stroke:var(--accent);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
/* Amenity tags */
.cabin-amenities{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.cabin-amenity{font-size:13px;font-weight:500;color:var(--navy);padding:8px 14px;border-radius:8px;background:var(--bg);border:1px solid var(--border);line-height:1}
.cabin-amenity--key{background:var(--tint-brand-08);border-color:var(--tint-brand-25);color:var(--accent)}
/* Price + CTA */
.cabin-footer{
  border-top:1px solid var(--border);
  padding-top:24px;
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap;
}
.cabin-price-block{}
.cabin-price-label{font-size:11px;font-weight:400;color:#8896a7;margin-bottom:4px}
.cabin-price{
  font-size:clamp(20px,2vw,26px);font-weight:800;
  color:var(--navy);letter-spacing:-.02em;
  display:flex;align-items:baseline;gap:10px;
}
.cabin-price-old{
  font-size:15px;font-weight:400;color:#a4adbd;
  text-decoration:line-through;
  text-decoration-thickness:1.5px;
}
.cabin-price-per{font-size:12px;font-weight:400;color:#8896a7}
.cabin-cta{
  padding:13px 28px;border-radius:var(--r-md);
  font-size:13px;font-weight:500;
  font-family:"Geologica",system-ui,sans-serif;
  border:none;cursor:pointer;
  transition:background var(--d-med) var(--e-out),transform var(--d-fast) var(--e-out),box-shadow var(--d-med) var(--e-out),border-color var(--d-med) var(--e-out);
  white-space:nowrap;
}
.cabin-cta--book{background:var(--accent);color:#fff}
.cabin-cta--book:hover{background:var(--accent-h)}
.cabin-cta--request{background:transparent;color:var(--accent);border:1.5px solid var(--tint-brand-35)}
.cabin-cta--request:hover{background:var(--bg);border-color:var(--accent)}
.cabin-cta:focus-visible{outline:none;box-shadow:var(--sh-glow)}
/* Cashback badge — on photo, below avail (flat brand red @ 90%) */
.cabin-cashback{
  position:absolute;top:54px;left:16px;
  display:inline-flex;align-items:center;gap:7px;
  font-size:12px;font-weight:500;color:#fff;
  background:var(--c-cashback);
  border:none;border-radius:20px;padding:6px 14px;
  font-family:inherit;
  white-space:nowrap;
  cursor:pointer;
  transition:background .2s var(--e-out);
}
.cabin-cashback:hover{background:var(--c-cashback-hover)}
.cabin-cashback .cash-amt{color:#fff;font-weight:500}
.cabin-cashback svg{width:14px;height:14px;stroke:#fff;fill:none;flex-shrink:0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* Date switcher */
.cabins__dates{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
@media(max-width:900px){
  .cabins__dates{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;margin-bottom:20px}
  .cabins__dates::-webkit-scrollbar{display:none}
  .cabin-date-btn{flex-shrink:0}
}
.cabin-date-btn{display:flex;align-items:center;gap:10px;padding:10px 18px;border-radius:30px;border:1.5px solid var(--border);background:#fff;cursor:pointer;transition:all .2s;font-family:"Geologica",system-ui,sans-serif}
.cabin-date-btn:hover{border-color:var(--tint-brand-35)}
.cabin-date-btn.active{border-color:var(--accent);background:var(--tint-brand-04)}
.cabin-date-btn__icon{width:32px;height:32px;border-radius:8px;background:var(--bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cabin-date-btn.active .cabin-date-btn__icon{background:rgba(40,101,173,.12);border-color:rgba(40,101,173,.3)}
.cabin-date-btn__icon svg{width:14px;height:14px;stroke:var(--accent);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.cabin-date-btn__range{font-size:13px;font-weight:500;color:var(--navy)}
.cabin-date-btn.active .cabin-date-btn__range{color:var(--accent)}
@media(max-width:640px){
  .cabins__dates{gap:6px}
  .cabin-date-btn{padding:8px 12px;gap:7px}
  .cabin-date-btn__icon{width:26px;height:26px;border-radius:6px}
  .cabin-date-btn__icon svg{width:12px;height:12px}
  .cabin-date-btn__range{font-size:12px}
}

/* Promo cashback block — flat brand red @ 90% */
/* Cashback promo — split: слева клон cbpop__hero, справа описание + CTA.
   Визуально совпадает с шапкой поп-апа, который открывается по «Подробнее». */
.cabins__promo{
  margin-top:0;margin-bottom:32px;
  display:grid;
  grid-template-columns:minmax(300px,420px) 1fr;
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
}
/* ── Левая часть: клон cbpop__hero ── */
.cabins__promo-hero{
  background:linear-gradient(135deg,#0a1628,#0f2040);
  padding:32px 32px 30px;
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:center;
}
.cabins__promo-hero::after{
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg width='400' height='200' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='350' cy='50' r='120' fill='rgba(40,101,173,.15)'/%3E%3Ccircle cx='50' cy='150' r='80' fill='rgba(232,41,58,.08)'/%3E%3C/svg%3E") no-repeat right top;
  pointer-events:none;
}
.cabins__promo-badge{
  position:relative;
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(232,41,58,.9);border-radius:20px;
  padding:5px 12px;
  font-size:11px;font-weight:500;color:#fff;
  letter-spacing:.04em;text-transform:uppercase;
  margin-bottom:14px;
  width:fit-content;
}
.cabins__promo-badge svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cabins__promo-amount{
  position:relative;
  font-size:clamp(28px,4vw,40px);font-weight:800;
  color:#fff;letter-spacing:-.03em;line-height:1;
  margin-bottom:8px;
  font-family:"Geologica",system-ui,sans-serif;
}
.cabins__promo-amount span{color:#5BC8F5;white-space:nowrap}
.cabins__promo-subtitle{
  position:relative;
  font-size:14px;font-weight:300;color:rgba(255,255,255,.65);
  line-height:1.45;
  font-family:"Geologica",system-ui,sans-serif;
}
/* ── Правая часть: описание + дедлайн + «Подробнее» ── */
.cabins__promo-body{
  padding:32px 36px;
  display:flex;flex-direction:column;justify-content:center;gap:14px;
}
.cabins__promo-desc{
  font-size:15px;font-weight:400;line-height:1.7;color:var(--text);
  margin:0;
  font-family:"Geologica",system-ui,sans-serif;
}
.cabins__promo-desc strong{color:var(--navy);font-weight:600;white-space:nowrap}
.cabins__promo-foot{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;margin-top:6px;flex-wrap:wrap;
}
.cabins__promo-deadline{
  font-size:13px;font-weight:400;color:#94a2b3;
  font-family:"Geologica",system-ui,sans-serif;
}
.cabins__promo-deadline strong{color:var(--navy);font-weight:700}
.cabins__promo-more{
  display:inline-flex;align-items:center;gap:8px;
  background:none;border:none;padding:0;cursor:pointer;
  font-family:"Geologica",system-ui,sans-serif;
  font-size:14px;font-weight:600;color:var(--c-cashback);
  transition:gap .2s;
}
.cabins__promo-more:hover{gap:12px}
.cabins__promo-more svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
/* Disclaimer note */
.cabins__note{
  display:flex;gap:14px;align-items:flex-start;
  margin-top:24px;
  padding:18px 22px;
  background:#fff;
  border-radius:12px;
  border:1px solid var(--border);
}
.cabins__note svg{
  width:18px;height:18px;flex-shrink:0;
  stroke:var(--accent);margin-top:2px;
}
.cabins__note p{
  font-size:13px;font-weight:300;line-height:1.65;color:#6b7a8d;
}
.cabins__note p+p{margin-top:8px}
@media(max-width:900px){
  .cabins{max-width:100vw}
  .incl{max-width:100vw}
  .cabins__card{grid-template-columns:minmax(0,1fr)}
  .cabins__card-left{min-height:0;aspect-ratio:auto;overflow:hidden;position:relative}
  .cabins__card-left img.cabin-photo{border-radius:0;position:relative;inset:auto;width:100%;height:auto;object-fit:contain;display:block}
  .cabins__card-left .cabin-photo{position:relative;inset:auto;width:100%;height:auto;object-fit:contain;display:block}
  .cabin-plan-wrap{
    width:auto;
    border-radius:16px;border:none;
    box-shadow:var(--sh-sm);
    padding:7px 14px 7px 10px;
    background:#2865AD;
    display:flex;align-items:center;gap:6px;
    position:absolute;
    z-index:10;
    bottom:12px;right:12px;left:auto;
  }
  .cabin-plan-wrap img{display:none}
  .cabin-plan-icon{display:block;flex-shrink:0}
  .cabin-plan-label{
    display:block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100px;
  }
  .cabin-plan-icon{
    width:16px;height:16px;
    stroke:#fff;fill:none;stroke-width:2;
    stroke-linecap:round;stroke-linejoin:round;
    flex-shrink:0;
  }
  .cabin-plan-label{
    font-size:12px;font-weight:600;
    padding:0;background:transparent;
    color:#fff;text-align:left;
    text-transform:none;letter-spacing:0;
  }
  .cabins__card-right{padding:24px;min-width:0;overflow:hidden}
  .cabin-name{margin-bottom:20px}
  .cabin-specs{margin-bottom:20px}
  .cabin-amenities{flex-wrap:wrap}
  .cabin-amenity{flex-shrink:1;white-space:normal}
  .cabin-footer{flex-direction:column;align-items:flex-start;gap:12px;padding-top:20px}
  .cabin-cta{width:100%;text-align:center}
  .cabins__promo{
    grid-template-columns:1fr;
    margin-left:-20px;margin-right:-20px;
    border-radius:0;border-left:none;border-right:none;
    margin-bottom:24px;
  }
  .cabins__promo-hero{padding:24px 20px 22px}
  .cabins__promo-body{padding:22px 20px;gap:12px}
  .cabins__promo-desc{font-size:14px}
}
@media(max-width:640px){
  /* Cabins section (merged block: base + promo) */
  .cabins{padding:48px 20px 24px}
  .cabins__title{margin-bottom:24px}
  .cabins__tabs{margin-bottom:20px}
  .cabins__tab{padding:8px 16px;font-size:12px}
  .cabins__card-right{padding:16px}
  .cabin-name{margin-bottom:16px}
  .cabin-specs{margin-bottom:16px}
  .cabin-footer{padding-top:20px}
  .cabin-price{flex-wrap:wrap;font-size:20px}
}
.incl{padding:0 40px 80px;background:#f4f9fc}
.incl__inner{max-width:1100px;margin:0 auto}
.incl__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.incl__title{font-size:clamp(22px,2.6vw,34px);font-weight:800;color:var(--navy);line-height:1.1;letter-spacing:-.02em;margin-bottom:36px}
/* Main card */
.incl__card{
  border-radius:16px;overflow:hidden;
  border:1px solid var(--border);
}
/* Section header */
.incl__section-head{
  display:flex;align-items:center;gap:12px;
  padding:22px 32px;
  border-bottom:1px solid var(--border);
  background:#fff;
}
.incl__section-icon{
  width:36px;height:36px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.incl__section-icon--yes{background:rgba(26,158,92,.12)}
.incl__section-icon--no {background:rgba(232,41,58,.08)}
.incl__section-icon svg{width:18px;height:18px}
.incl__section-title{font-size:15px;font-weight:700;color:var(--navy)}
/* Grid of items */
.incl__grid{
  display:grid;grid-template-columns:1fr 1fr;
  padding:8px 16px 20px;
  background:#fff;
}
.incl__item{
  display:flex;align-items:center;gap:16px;
  padding:12px 16px;
  border-radius:8px;
}
.incl__item:hover{background:var(--bg)}
.incl__item-icon{
  width:32px;height:32px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.incl__item-icon--yes{background:rgba(26,158,92,.1)}
.incl__item-icon--no {background:rgba(232,41,58,.07)}
.incl__item-icon svg{width:15px;height:15px}
.incl__item-text{
  font-size:13px;font-weight:400;line-height:1.55;color:var(--text);
}
/* Divider between sections */
.incl__divider{
  height:1px;background:var(--border);margin:0;
}
/* Not-included section bg */
.incl__section--no .incl__grid{background:#fffbfb}
.incl__section--no .incl__section-head{background:#fffbfb}
/* Responsive */
@media(max-width:900px){
  .incl{padding:24px 20px 48px}
  .incl__grid{grid-template-columns:1fr}
  .incl__section-head{padding:18px 20px;flex-wrap:nowrap;align-items:center}
  .incl__section-icon{flex-shrink:0}
  /* Икoнки заголовка и пунктов на одной вертикали (x=20):
     section-head padding-left:20 == grid padding-left:4 + item padding-left:16 */
  .incl__grid{padding:4px 4px 14px}
  .incl__item-icon{flex-shrink:0}
}
/* Mobile accordion for incl sections */
@media(max-width:640px){
  /* Unified rhythm with neighbouring light-bg .cabins section */
  .incl{padding:0 20px 48px}
  .incl__section-head{
    cursor:pointer;
    user-select:none;
  }
  .incl__section-head::after{
    content:'';
    margin-left:auto;
    width:28px;height:28px;
    border-radius:50%;
    border:1.5px solid var(--border);
    background:#fff url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%232865AD' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;
    flex-shrink:0;
    transition:transform .25s;
  }
  .incl__section.open .incl__section-head::after{
    transform:rotate(180deg);
  }
  .incl__grid{
    max-height:0;
    overflow:hidden;
    transition:max-height .35s cubic-bezier(.4,0,.2,1);
    padding:0 4px;
  }
  .incl__item{gap:16px}
  .incl__section.open .incl__grid{
    max-height:2000px;
    padding:8px 4px 20px;
  }
  .incl__section--yes .incl__grid{max-height:0;padding:0 4px}
  .incl__section--no .incl__grid{max-height:0;padding:0 4px}
  .incl__section--yes.open .incl__grid{max-height:2000px;padding:8px 4px 20px}
  .incl__section--no.open .incl__grid{max-height:2000px;padding:8px 4px 20px}
}





.faq{padding:80px 40px;background:#fff}
.faq__inner{max-width:1100px;margin:0 auto}
.faq__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.faq__title{font-size:clamp(26px,3vw,40px);font-weight:800;color:var(--navy);letter-spacing:-.025em;margin-bottom:32px;line-height:1.1}

/* Category tabs */
.faq__cats{
  display:flex;gap:8px;margin-bottom:30px;
  overflow-x:auto;scrollbar-width:none;
  padding-bottom:2px;-webkit-overflow-scrolling:touch;
}
.faq__cats::-webkit-scrollbar{display:none}
.faq__cat{
  flex-shrink:0;
  padding:9px 20px;border-radius:30px;
  border:1.5px solid var(--border);background:#fff;
  font-size:13px;font-weight:500;color:var(--text);
  cursor:pointer;transition:all .2s;
  font-family:"Geologica",system-ui,sans-serif;
  white-space:nowrap;
}
.faq__cat:hover{border-color:var(--tint-brand-35);color:var(--navy)}
.faq__cat.active{background:#244777;border-color:#244777;color:#fff;font-weight:500}

/* Two-column grid */
.faq__grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:0 40px;
  align-items:start;
}
.faq__panel{display:none}
.faq__panel.active{display:contents}

/* Accordion item */
.faq__item{
  border-bottom:1px solid var(--border);
  overflow:hidden;
}
.faq__question{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:18px 0;cursor:pointer;
  font-size:15px;font-weight:500;color:var(--navy);
  line-height:1.4;user-select:none;
  background:none;border:none;width:100%;text-align:left;
  font-family:"Geologica",system-ui,sans-serif;
}
.faq__question:hover{color:var(--accent)}
.faq__icon{
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  border:1.5px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  transition:all .25s;
}
.faq__item.open .faq__icon{background:var(--accent);border-color:var(--accent)}
.faq__icon svg{width:12px;height:12px;stroke:#8896a7;stroke-width:2.5;fill:none;transition:transform .25s;stroke-linecap:round}
.faq__item.open .faq__icon svg{stroke:#fff;transform:rotate(45deg)}
.faq__answer{
  max-height:0;overflow:hidden;
  transition:max-height .35s cubic-bezier(.4,0,.2,1),padding .3s;
  padding:0;
}
.faq__item.open .faq__answer{max-height:600px;padding-bottom:18px}
.faq__answer p{font-size:14px;font-weight:300;line-height:1.7;color:var(--text)}
.faq__answer p+p{margin-top:10px}


.vids{padding:80px 40px;background:linear-gradient(135deg,#0a1628 0%,#0f2040 40%,#0d1e36 100%);overflow:hidden}
.vids__inner{max-width:1100px;margin:0 auto}
.vids__header{margin-bottom:32px;display:flex;align-items:flex-end;justify-content:space-between}
.vids__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:rgba(91,200,245,.7);margin-bottom:12px}
.vids__title{font-size:clamp(22px,2.6vw,34px);font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.1}
/* vids arrows → .slider-nav + .slider-nav__btn--dark */

/* Carousel */
.vids__wrap{width:100vw;margin-inline:calc((100% - 100vw)/2);overflow:hidden}
.vids__track{
  display:flex;gap:14px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-padding-left:40px;padding:4px 0 16px 40px;
  overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;-ms-overflow-style:none;
}
.vids__track::-webkit-scrollbar{display:none}
.vids__slide{flex:0 0 300px;scroll-snap-align:start;contain:layout paint;transform:translateZ(0)}

/* Video card */
.vid-card{
  border-radius:14px;overflow:hidden;
  background:#1a2a3e;
  position:relative;
}
.vid-card__wrap{
  position:relative;width:100%;aspect-ratio:9/16;
  background:#0d1828;overflow:hidden;
}
.vid-card__video{
  width:100%;height:100%;object-fit:cover;display:block;
  cursor:pointer;
}
/* Play button overlay */
.vid-card__play{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(10,22,40,.35);
  transition:opacity .25s;cursor:pointer;
  pointer-events:none;
}
.vid-card__play-btn{
  width:52px;height:52px;border-radius:50%;
  background:rgba(255,255,255,.92);
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s;
}
.vid-card__play-btn svg{width:20px;height:20px;fill:var(--navy);margin-left:3px}
.vid-card.playing .vid-card__play{opacity:0}
.vid-card:not(.playing):hover .vid-card__play-btn{transform:scale(1.1)}
/* Bottom label */

/* Dots */
.vids__dots{display:flex;gap:6px;justify-content:center;margin-top:14px}
/* Subscribe strip */
.vids__subscribe{
  margin-top:48px;
  padding:32px 40px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-radius:16px;
  display:grid;grid-template-columns:1fr 1fr;
  gap:40px;align-items:center;
}
.vids__subscribe-left{}
.vids__subscribe-label{
  font-size:10px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(91,200,245,.7);
  margin-bottom:8px;
}
.vids__subscribe-title{
  font-size:17px;font-weight:700;color:#fff;
  line-height:1.3;margin-bottom:6px;
}
.vids__subscribe-desc{
  font-size:13px;font-weight:300;color:rgba(255,255,255,.5);
  line-height:1.7;margin-bottom:16px;
}
.vids__socials{display:flex;gap:10px;flex-wrap:wrap}
.vids__social{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:9px;
  font-size:13px;font-weight:400;color:#fff;
  text-decoration:none;
  font-family:"Geologica",system-ui,sans-serif;
  transition:opacity .2s,transform .15s;border:none;cursor:pointer;
}
.vids__social:hover{opacity:.85}
.vids__social--vk{background:#0077ff}
.vids__social--tg{background:#229ED9}
.vids__social svg{width:17px;height:17px;fill:#fff;flex-shrink:0}
/* Email form */
.vids__subscribe-right{}
.vids__email-title{
  font-size:17px;font-weight:700;color:#fff;
  line-height:1.3;margin-bottom:6px;
}
.vids__email-desc{
  font-size:13px;font-weight:300;color:rgba(255,255,255,.5);
  line-height:1.7;margin-bottom:16px;
}
.vids__email-form{display:flex;gap:8px}
.vids__email-input{
  flex:1;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);border-radius:9px;
  padding:11px 16px;font-size:14px;
  font-family:"Geologica",system-ui,sans-serif;
  color:#fff;outline:none;min-width:0;
  transition:border-color .2s;
}
.vids__email-input::placeholder{color:rgba(255,255,255,.3)}
.vids__email-input:focus{border-color:rgba(91,200,245,.5)}
.vids__email-btn{
  flex-shrink:0;padding:11px 20px;border-radius:9px;
  background:#244777;border:none;
  font-size:13px;font-weight:500;color:#fff;
  font-family:"Geologica",system-ui,sans-serif;
  cursor:pointer;white-space:nowrap;
  transition:background .2s,transform .15s;
}
.vids__email-btn:hover{background:#2d5a96}
.vids__email-note{
  margin-top:8px;font-size:11px;font-weight:300;
  color:rgba(255,255,255,.28);
}
.vids__dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.25);border:none;cursor:pointer;padding:0;transition:all .3s}
.vids__dot.active{width:20px;border-radius:3px;background:rgba(91,200,245,.8)}


@media(max-width:900px){
  .vids__subscribe{grid-template-columns:1fr;gap:28px;padding:24px 20px}
  .faq__grid{grid-template-columns:1fr}
  .vids__slide{flex:0 0 260px}
}
@media(max-width:640px){
  .faq{padding:48px 20px}
  /* .vids: horizontal padding lives on the section itself (see .vids base rule) */
  .vids{padding:48px 20px}
  .vids__header{margin-bottom:20px}
  .vids__track{scroll-padding-left:20px;padding:0 0 16px 20px}
  .vids__slide{flex:0 0 75vw;min-width:220px}
  .faq__cats{gap:6px}
  .faq__cat{padding:8px 14px;font-size:12px}
}




.footer{
  background:linear-gradient(160deg,#0c2044 0%,#0f2a52 50%,#0a1628 100%);
  padding:56px 40px 0;
}
.footer__inner{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1.2fr 1fr 1fr;
  gap:60px;padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.1);
}

/* Logo column */
.footer__logo-wrap{display:flex;flex-direction:column;gap:0}
.footer__logo{display:flex;align-items:center;gap:12px;text-decoration:none;margin-bottom:20px}
.footer__logo img{height:56px;width:auto}
.footer__tagline{
  font-size:13px;font-weight:300;line-height:1.65;
  color:rgba(255,255,255,.45);margin-bottom:24px;
  max-width:360px;
}
.footer__contacts{}
.footer__phone{
  display:block;
  font-size:15px;font-weight:600;color:#fff;
  text-decoration:none;letter-spacing:-.01em;margin-bottom:2px;
  transition:color .2s;
}
.footer__phone + .footer__phone{margin-bottom:8px}
.footer__phone:hover{color:#5BC8F5}
.footer__hours{
  font-size:14px;font-weight:400;line-height:1.65;
  color:rgba(255,255,255,.65);
}
.footer__hours-tz{
  display:inline-block;margin-top:4px;
  font-size:12px;color:rgba(255,255,255,.45);
}
.footer__socials{display:flex;gap:10px;margin-top:20px}
.footer__social{
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;transition:opacity .2s,transform .15s;
  flex-shrink:0;position:relative;
}
.footer__social::before{
  content:'';
  position:absolute;
  width:26px;height:26px;
  border-radius:50%;
  background:#fff;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  z-index:0;
}
.footer__social:hover{opacity:.82}
.footer__social svg{width:38px;height:38px;display:block;flex-shrink:0;position:relative;z-index:1}

/* Nav column */
.footer__nav-title{
  font-size:10px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(255,255,255,.35);
  margin-bottom:18px;
}
.footer__nav-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer__nav-list a{
  font-size:13px;font-weight:300;color:rgba(255,255,255,.55);
  text-decoration:none;transition:color .2s;
}
.footer__nav-list a:hover{color:rgba(255,255,255,.9)}

/* CTA column */
.footer__cta-label{
  font-size:10px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(255,255,255,.35);
  margin-bottom:16px;
}
.footer__cta-text{
  font-size:15px;font-weight:500;color:#fff;
  line-height:1.4;margin-bottom:20px;
}
.footer__cta-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 24px;border-radius:9px;
  background:#2865AD;
  font-size:14px;font-weight:500;color:#fff;
  text-decoration:none;
  font-family:"Geologica",system-ui,sans-serif;
  transition:background .2s,transform .15s;
}
.footer__cta-btn:hover{background:#3476c4}
.footer__cta-btn svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* Bottom bar */
.footer__bottom{
  max-width:1100px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 0;
  gap:16px;flex-wrap:wrap;
}
.footer__copy{font-size:12px;font-weight:300;color:rgba(255,255,255,.28)}
.footer__policy{
  font-size:12px;font-weight:300;color:rgba(255,255,255,.35);
  text-decoration:none;transition:color .2s;
}
.footer__policy:hover{color:rgba(255,255,255,.65)}

/* Responsive */
@media(max-width:900px){
  .footer__inner{grid-template-columns:1fr 1fr;gap:40px}
  .footer__logo-wrap{grid-column:1/-1}
}
@media(max-width:640px){
  .footer{padding:44px 20px 0}
  .footer__inner{grid-template-columns:1fr;gap:28px;padding-bottom:36px}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:8px}
}




.reviews{padding:80px 40px;background:#fff;overflow:hidden}
.reviews__inner{max-width:1100px;margin:0 auto}

/* Header row */
.reviews__header{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:32px;gap:16px;flex-wrap:wrap;
}
.reviews__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.reviews__title{font-size:clamp(24px,3vw,38px);font-weight:800;color:var(--navy);letter-spacing:-.025em;line-height:1.1}

/* Rating badge — actual declarations live with .reviews__badge-strip below */
.reviews__score{font-size:48px;font-weight:800;color:var(--navy);letter-spacing:-.04em;line-height:1}
.reviews__stars{display:flex;gap:3px}
.reviews__stars svg{width:15px;height:15px;fill:var(--gold)}
.reviews__badge-right{
  padding:0 0 0 28px;display:flex;flex-direction:column;justify-content:center;gap:4px;
}
.reviews__badge-label{font-size:15px;font-weight:500;color:var(--navy);line-height:1.3}
.reviews__badge-sub{font-size:12px;font-weight:300;color:#8896a7;line-height:1.5;margin-top:2px}
.reviews__badge-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.reviews__badge-chip{
  font-size:11px;font-weight:500;color:var(--accent);
  background:var(--tint-brand-08);border:1px solid rgba(40,101,173,.2);border-radius:20px;padding:3px 10px;white-space:nowrap;
}
/* Cards track */
.reviews__wrap{
  width:100vw;margin-inline:calc((100% - 100vw)/2);
  overflow:hidden;
}
.reviews__track{
  display:flex;gap:16px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-padding-left:40px;padding:4px 0 20px 40px;
  overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;-ms-overflow-style:none;
  align-items:stretch;
}
.reviews__track::-webkit-scrollbar{display:none}

/* Card */
.rev-card{
  flex:0 0 340px;
  scroll-snap-align:start;contain:layout paint;transform:translateZ(0);
  background:#fff;
  border:1px solid var(--border);border-radius:16px;
  padding:24px;
  display:flex;flex-direction:column;gap:16px;
  transition:border-color .2s;
}
.rev-card:hover{border-color:var(--c-ice-300)}

/* Card header */
.rev-card__head{display:flex;align-items:center;gap:12px}
.rev-card__avatar{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,#2865AD,#5BC8F5);
  display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:700;color:#fff;
  flex-shrink:0;
  font-family:"Geologica",system-ui,sans-serif;
}
.rev-card__name{font-size:14px;font-weight:600;color:var(--navy)}
.rev-card__date{font-size:12px;font-weight:300;color:#8896a7;margin-top:2px}
.rev-card__stars{display:flex;gap:2px;margin-left:auto;flex-shrink:0}
.rev-card__stars svg{width:14px;height:14px;fill:var(--gold)}

/* Quote mark */
.rev-card__quote{
  font-size:32px;line-height:1;color:rgba(40,101,173,.15);
  font-family:Georgia,serif;margin-bottom:-8px;
}

/* Text */
.rev-card__text{
  font-size:14px;font-weight:300;line-height:1.7;color:var(--text);
  flex:1;
}
.rev-card__text em{font-style:normal;font-weight:600;color:var(--navy)}

/* Nav + dots */
.reviews__footer{
  display:flex;align-items:center;justify-content:center;
  margin-top:14px;
}
.reviews__dots{display:flex;gap:6px}
.reviews__dot{width:6px;height:6px;border-radius:50%;background:var(--border);border:none;cursor:pointer;padding:0;transition:all .3s}
.reviews__dot.active{width:20px;border-radius:3px;background:var(--accent)}
/* reviews arrows → .slider-nav + .slider-nav__btn */


@media(max-width:900px){.rev-card{flex:0 0 280px}.reviews__header{margin-bottom:20px}}

/* Full-width badge strip — теперь над каруселью */
.reviews__badge-strip{
  margin-bottom:32px;
  padding:24px 32px;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:16px;
  display:flex;align-items:center;justify-content:center;
}
.reviews__badge{
  display:flex;align-items:stretch;gap:0;
  background:transparent;border-radius:0;overflow:visible;flex-shrink:0;
}
.reviews__badge-left{
  padding:0 28px 0 0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  border-right:1px solid var(--border);
}
@media(max-width:640px){
  /* Reviews section (merged block) */
  .reviews{padding:48px 20px}
  .reviews__track{scroll-padding-left:20px;padding:0 0 16px 20px}
  .reviews__header{margin-bottom:20px}
  .reviews__header > div:last-child{padding-bottom:0}
  .rev-card{flex:0 0 82vw}
  .reviews__badge-strip{padding:20px;border-radius:12px}
  .reviews__badge{flex-direction:column;align-items:center;gap:16px}
  .reviews__badge-left{border-right:none;border-bottom:1px solid var(--border);padding:0 0 16px;width:100%;align-items:center}
  .reviews__badge-right{padding:0;text-align:center}
  .reviews__badge-chips{justify-content:center}
}




.club{padding:80px 40px;background:#fff}
.club__inner{max-width:1100px;margin:0 auto}

/* Header row: title + Yandex badge */
.club__header{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px;margin-bottom:48px;flex-wrap:wrap;
}
.club__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.club__title{font-size:clamp(26px,3vw,40px);font-weight:800;color:var(--navy);letter-spacing:-.025em;line-height:1.1;margin-bottom:16px}
.club__desc{font-size:15px;font-weight:300;line-height:1.7;color:var(--text);max-width:560px}

/* Yandex rating badge */
.club__badge{
  display:flex;align-items:center;gap:16px;
  background:var(--bg);border:1px solid var(--border);
  border-radius:16px;padding:20px 28px;flex-shrink:0;
}
.club__badge-score{
  font-size:36px;font-weight:800;color:var(--navy);
  letter-spacing:-.03em;line-height:1;
}
.club__badge-stars{display:flex;gap:3px;margin-bottom:4px}
.club__badge-stars svg{width:16px;height:16px;fill:var(--gold)}
.club__badge-count{font-size:12px;font-weight:400;color:#8896a7}
.club__badge-sep{width:1px;background:var(--border);align-self:stretch;margin:0 4px}
.club__badge-platform{
  display:flex;flex-direction:column;gap:4px;
  padding-left:16px;border-left:1px solid var(--border);
}
.club__badge-platform-row{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--navy)}
.club__badge-platform a{
  font-size:11px;color:var(--accent);
  text-decoration:none;
}
.club__badge-platform a:hover{text-decoration:underline}
/* Registry strip */
.club__registry{
  display:flex;align-items:flex-start;gap:20px;
  padding:20px 24px;
  margin-top:20px;
  background:rgba(40,101,173,.05);
  border:1px solid rgba(40,101,173,.15);
  border-radius:12px;
}
.club__registry svg{flex-shrink:0;stroke:var(--accent);fill:none;stroke-linecap:round;stroke-linejoin:round}
.club__registry-text{font-size:13px;font-weight:400;color:var(--text);flex:1}
.club__registry-text strong{color:var(--navy);font-weight:600}

/* Grid */
.club__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-bottom:20px;
}

/* Card */
.club__card{
  border:1px solid var(--border);
  border-radius:16px;
  padding:24px;
  background:#fff;
  display:flex;flex-direction:column;gap:12px;
  transition:border-color .2s,transform .2s;
}
.club__card:hover{border-color:var(--c-ice-300)}
.club__card-icon{
  width:44px;height:44px;border-radius:12px;
  background:var(--bg);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.club__card-icon svg{width:22px;height:22px;stroke:var(--accent);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.club__card-icon svg *{fill:none;stroke:var(--accent)}
.club__card-title{font-size:15px;font-weight:700;color:var(--navy);line-height:1.25}
.club__card-text{font-size:13px;font-weight:300;line-height:1.65;color:var(--text);flex:1}

@media(max-width:900px){
  .club__grid{grid-template-columns:repeat(2,1fr)}
  .club__header{flex-direction:column;align-items:flex-start;margin-bottom:20px}
}
@media(max-width:640px){
  .club{padding:48px 20px}
  .club__grid{grid-template-columns:1fr;gap:12px}
  .club__card{padding:16px;gap:8px}
  .club__card-icon{width:36px;height:36px;border-radius:9px}
  .club__card-icon svg{width:18px;height:18px}
  .club__card-title{font-size:13px}
  .club__card-text{font-size:12px}
  /* Описание клуба на мобильных — на всю ширину контейнера */
  .club__desc{max-width:100%}
  /* Badge: keep single-row layout like desktop, scale down sizes */
  .club__badge{
    flex-wrap:nowrap;gap:12px;
    padding:16px 18px;
  }
  .club__badge-score{font-size:30px}
  .club__badge-stars svg{width:14px;height:14px}
  .club__badge-count{font-size:11px}
  .club__badge-sep{margin:0 2px}
  .club__badge-platform{
    border-left:none;
    border-top:none;
    padding-left:0;padding-top:0;
    width:auto;
    min-width:0;
  }
  .club__badge-platform-row{font-size:11px;gap:5px}
  .club__badge-platform a{font-size:10px}
  .club__registry{flex-direction:column;align-items:flex-start;gap:10px}
  .club__yandex-cta{flex-direction:column;align-items:flex-start;gap:8px}
}

/* Yandex reviews CTA */
.club__yandex-cta{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 24px;margin-top:16px;
  background:var(--bg);border:1px solid var(--border);border-radius:12px;
  flex-wrap:wrap;
}
.club__yandex-cta-text{font-size:13px;font-weight:400;color:var(--text)}
.club__yandex-cta-link{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13px;font-weight:600;
  color:var(--accent);text-decoration:none;
  white-space:nowrap;
  transition:opacity .2s;
}
.club__yandex-cta-link:hover{opacity:.75}
.club__yandex-cta-link svg{stroke:var(--accent)}

/* ══════════════════════════════════════════
   HERO «ДОСТИГАТОРЫ»
══════════════════════════════════════════ */
.achiev{
  position:relative;margin:16px 0 32px;
  border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--tint-brand-20);
  background:linear-gradient(135deg, var(--tint-brand-04), var(--tint-brand-10)), var(--c-white);
}
.achiev::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg width='800' height='400' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%232865AD' stroke-width='.7' opacity='.07'%3E%3Cpath d='M0 320 Q200 280 400 310 T800 290'/%3E%3Cpath d='M0 350 Q200 310 400 340 T800 320'/%3E%3Cpath d='M0 280 Q200 240 400 270 T800 250'/%3E%3C/g%3E%3C/svg%3E") no-repeat right bottom;
  background-size:cover;
}
.achiev__inner{position:relative;display:flex;align-items:center;gap:28px;padding:32px 36px}
.achiev__cover{
  width:120px;height:120px;border-radius:18px;
  flex-shrink:0;overflow:hidden;position:relative;
  box-shadow:var(--sh-lg);background:#1a1a1a;
}
.achiev__cover img{width:100%;height:100%;object-fit:cover;display:block}
.achiev__cover-mic{
  position:absolute;top:8px;left:8px;z-index:2;
  width:30px;height:30px;border-radius:50%;
  background:var(--w-92);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--sh-sm);
}
.achiev__cover-mic svg{width:16px;height:16px;color:var(--navy)}
.achiev__body{flex:1;min-width:0}
.achiev__badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.achiev__badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px;border-radius:20px;
  background:var(--tint-brand-12);color:var(--accent);
  font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
}
/* Иконка-микрофон в плашке «Подкаст» — заменяет дот по умолчанию */
.achiev__badge--podcast svg{
  width:14px;height:14px;flex-shrink:0;
}
/* «Проект клуба» — нейтральный outline-вариант, без дота */
.achiev__badge--club{
  background:transparent;
  color:var(--navy);
  box-shadow:inset 0 0 0 1px var(--tint-brand-25);
}
.achiev__title{
  font-size:22px;font-weight:800;color:var(--navy);
  letter-spacing:-.02em;line-height:1.2;margin-bottom:10px;
}
.achiev__title em{font-style:normal;color:var(--accent)}
.achiev__text{font-size:14px;font-weight:300;line-height:1.65;color:var(--text)}
.achiev__text strong{color:var(--navy);font-weight:600}
.achiev__links{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}
.achiev__link{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:var(--r-sm);
  background:#fff;border:1px solid var(--border);
  color:var(--navy);font-size:12px;font-weight:600;
  text-decoration:none;
  transition:border-color .2s,color .2s,background .2s;
}
.achiev__link:hover{border-color:var(--accent);color:var(--accent)}
.achiev__link::before{
  content:'';width:8px;height:8px;border-radius:50%;
  background:var(--brand,var(--accent));flex-shrink:0;
}
.achiev__link[data-brand="youtube"]{--brand:#ff0033}
.achiev__link[data-brand="yandex"]{--brand:#ffcc00}
.achiev__link[data-brand="vk"]{--brand:#0077ff}
.achiev__link[data-brand="rutube"]{--brand:#19c2c4}

/* ══════════════════════════════════════════
   ЛОГО-БАР: партнёры и операторы
══════════════════════════════════════════ */
.ops{
  margin-top:16px;padding:24px 28px;
  background:var(--bg);border-radius:14px;
  display:flex;align-items:center;gap:28px;flex-wrap:wrap;
}
.ops__label{
  font-size:11px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:#8896a7;flex-shrink:0;max-width:120px;
}
.ops__list{
  display:flex;align-items:center;gap:36px;flex-wrap:wrap;flex:1;
  justify-content:space-around;
}
.ops__logo{
  width:auto;max-width:160px;
  object-fit:contain;display:block;
  opacity:.7;filter:grayscale(.5);
}
/* Персональная высота: выравниваем по ВИДИМОМУ контенту, а не по габариту картинки.
   У logo_2.webp (Ponant) большие прозрачные поля — компенсируем увеличенной высотой. */
.ops__logo[data-logo="poseidon"]{height:42px;max-width:160px}
.ops__logo[data-logo="swan"]{height:36px;max-width:160px}
.ops__logo[data-logo="ponant"]{height:64px;max-width:180px}
.ops__logo[data-logo="oceanwide"]{height:44px;max-width:170px}

@media(max-width:900px){
  .achiev__inner{flex-direction:column;align-items:flex-start;text-align:left;gap:18px;padding:24px}
  .achiev__cover{width:88px;height:88px}
  .achiev__title{font-size:18px}
  /* Лого-бар: лейбл одной строкой по центру + логотипы сеткой 2×2 */
  .ops{flex-direction:column;align-items:center;gap:16px;padding:20px 16px}
  .ops__label{max-width:none;width:100%;text-align:center;white-space:nowrap}
  .ops__list{
    display:grid;grid-template-columns:1fr 1fr;
    gap:24px 16px;width:100%;
    justify-items:center;align-items:center;
  }
  .ops__logo{margin:0 auto}
  /* Сбалансированные оптические высоты для 2×2 */
  .ops__logo[data-logo="poseidon"]{height:38px}
  .ops__logo[data-logo="swan"]{height:34px}
  .ops__logo[data-logo="ponant"]{height:48px}
  .ops__logo[data-logo="oceanwide"]{height:40px}
}
@media(max-width:640px){
  .achiev{margin:16px 0 24px}
  .achiev__inner{padding:20px;gap:14px}
  .achiev__cover{width:80px;height:80px;border-radius:14px}
  .achiev__title{font-size:17px}
  .achiev__links{gap:6px}
  .achiev__link{padding:7px 12px;font-size:11px}
  .ops__list{gap:20px 14px}
  .ops__logo[data-logo="poseidon"]{height:34px}
  .ops__logo[data-logo="swan"]{height:30px}
  .ops__logo[data-logo="ponant"]{height:44px}
  .ops__logo[data-logo="oceanwide"]{height:36px}
}


.cbpop-overlay{
  position:fixed;inset:0;z-index:99999;
  background:rgba(10,22,40,.72);
  backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  opacity:0;pointer-events:none;
  transition:opacity .3s;
}
.cbpop-overlay.open{opacity:1;pointer-events:all}
.cbpop{
  background:#fff;border-radius:20px;
  width:100%;max-width:560px;
  max-height:90vh;overflow-y:auto;
  position:relative;
  transform:translateY(20px) scale(.97);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);
}
.cbpop-overlay.open .cbpop{transform:translateY(0) scale(1)}

/* Hero top */
.cbpop__hero{
  background:linear-gradient(135deg,#0a1628,#0f2040);
  border-radius:20px 20px 0 0;
  padding:32px 32px 28px;
  position:relative;overflow:hidden;
}
.cbpop__hero::after{
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg width='400' height='200' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='350' cy='50' r='120' fill='rgba(40,101,173,.15)'/%3E%3Ccircle cx='50' cy='150' r='80' fill='rgba(232,41,58,.08)'/%3E%3C/svg%3E") no-repeat right top;
  pointer-events:none;
}
.cbpop__close{
  position:absolute;top:16px;right:16px;
  width:32px;height:32px;border-radius:50%;
  background:rgba(255,255,255,.1);border:none;
  color:#fff;cursor:pointer;font-size:18px;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s;z-index:1;
  font-family:system-ui;
}
.cbpop__close:hover{background:rgba(255,255,255,.2)}
.cbpop__badge{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(232,41,58,.9);border-radius:20px;
  padding:5px 12px;
  font-size:11px;font-weight:500;color:#fff;
  letter-spacing:.04em;text-transform:uppercase;
  margin-bottom:14px;
}
.cbpop__badge svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cbpop__amount{
  font-size:clamp(28px,6vw,42px);font-weight:800;
  color:#fff;letter-spacing:-.03em;line-height:1;
  margin-bottom:6px;
  font-family:"Geologica",system-ui,sans-serif;
}
.cbpop__amount span{color:#5BC8F5}
.cbpop__subtitle{
  font-size:14px;font-weight:300;color:rgba(255,255,255,.65);
  font-family:"Geologica",system-ui,sans-serif;
}

/* Body */
.cbpop__intro{
  font-size:15px;font-weight:400;line-height:1.65;
  color:var(--text);margin-bottom:24px;
  font-family:"Geologica",system-ui,sans-serif;
}
.cbpop__intro strong{color:var(--navy);font-weight:600}

/* Steps */
.cbpop__steps-title{
  font-size:11px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:#2865AD;
  margin-bottom:14px;
}
.cbpop__steps{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}
.cbpop__step{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;border-radius:10px;
  background:#f4f9fc;
}
.cbpop__step-num{
  width:24px;height:24px;border-radius:50%;
  background:#2865AD;color:#fff;
  font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  font-family:"Geologica",system-ui,sans-serif;
}
.cbpop__step-text{
  font-size:13px;font-weight:400;line-height:1.55;color:var(--text);
  font-family:"Geologica",system-ui,sans-serif;
}

/* Conditions */
.cbpop__cond{
  background:rgba(232,41,58,.06);border:1px solid rgba(232,41,58,.18);
  border-radius:10px;padding:14px 16px;margin-bottom:24px;
  display:flex;align-items:flex-start;gap:10px;
}
.cbpop__cond svg{width:16px;height:16px;stroke:#E8293A;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-top:2px}
.cbpop__cond-text{font-size:12px;font-weight:400;line-height:1.6;color:#6b7a8d;font-family:"Geologica",system-ui,sans-serif}
.cbpop__cond-text strong{color:#E8293A;font-weight:600}

/* CTA */
.cbpop__cta{
  width:100%;padding:14px;border-radius:12px;
  background:#2865AD;border:none;
  font-size:14px;font-weight:500;color:#fff;
  font-family:"Geologica",system-ui,sans-serif;
  cursor:pointer;transition:background .2s,transform .15s;
  letter-spacing:.01em;
}
.cbpop__cta:hover{background:#3476c4}

@media(max-width:480px){
  .cbpop__hero{padding:24px 20px 22px}
  .cbpop{border-radius:16px}
  .cbpop__hero{border-radius:16px 16px 0 0}
}




/* ════════════════════════════════════════════════════════════════
   Mobile FAB CTA — «Рассчитать стоимость»
   Появляется после прокрутки за hero (body.is-page-scrolled).
   На десктопе скрыта — там работает .nav__cta в шапке.
   Снизу-слева; .msw остаётся снизу-справа, не пересекаются.
   ════════════════════════════════════════════════════════════════ */
.fab-cta{display:none}
@media (max-width:900px){
  .fab-cta{
    position:fixed;
    left:14px;
    bottom:20px;
    z-index:9998;
    display:inline-flex;
    align-items:center;
    gap:8px;
    height:44px;
    padding:0 16px;
    border-radius:22px;
    background:var(--c-blue-600);
    color:#fff;
    font-size:13px;
    font-weight:600;
    line-height:1;
    text-decoration:none;
    white-space:nowrap;
    box-shadow:0 8px 20px var(--tint-brand-35),0 2px 6px rgba(20,40,80,.12);
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    /* По умолчанию скрыта — появляется при body.is-page-scrolled */
    opacity:0;
    transform:translateY(16px);
    pointer-events:none;
    transition:opacity .25s ease,transform .25s ease;
    /* Стабильный fixed на iOS Safari */
    -webkit-transform:translateY(16px) translateZ(0);
    will-change:transform,opacity;
  }
  .fab-cta svg{flex-shrink:0}
  body.is-page-scrolled .fab-cta{
    opacity:1;
    transform:translateY(0);
    -webkit-transform:translateY(0) translateZ(0);
    pointer-events:auto;
  }
  /* Прячем при открытых оверлеях — как .msw */
  body.has-drawer-open .fab-cta,
  body.has-modal-open  .fab-cta,
  body.has-popup-open  .fab-cta{
    visibility:hidden;
    pointer-events:none;
  }
}

.msw{
  position:fixed;
  /* Без env() — на iOS Safari env(safe-area-inset-bottom) пересчитывается
     во время скролла (нижняя панель сжимается), и виджет «прыгает» вверх.
     Static-bottom стабилен; home-indicator у нас не закрывает виджет. */
  bottom:24px;
  right:24px;
  z-index:9999;
  display:flex;flex-direction:column;align-items:flex-end;gap:10px;
  /* iOS Safari: GPU-слой стабилизирует fixed-position при показе/скрытии адресной строки */
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
  will-change:transform;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
/* При открытом drawer/modal/popup .msw и .sc-a пропадают — иначе на iOS они
   "уезжают" в середину экрана из-за того что body становится position:fixed-like
   при scroll-lock. Также при открытом drawer виджеты перекрывают пункты меню. */
body.has-drawer-open .msw,
body.has-modal-open  .msw,
body.has-popup-open  .msw,
body.has-drawer-open .sc-a,
body.has-modal-open  .sc-a,
body.has-popup-open  .sc-a{
  visibility:hidden;
  pointer-events:none;
}

/* Buttons list (hidden by default) */
.msw__list{
  display:flex;flex-direction:column;gap:8px;align-items:flex-end;
  pointer-events:none;
  opacity:0;
  transform:translateY(12px) scale(.95);
  transition:opacity .25s,transform .25s;
}
.msw.open .msw__list{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:all;
}

/* Each messenger item */
.msw__item{
  display:flex;align-items:center;gap:10px;
  text-decoration:none;
  cursor:pointer;
}
.msw__label{
  background:rgba(15,28,46,.82);
  backdrop-filter:blur(8px);
  color:#fff;
  font-size:13px;font-weight:500;
  font-family:system-ui,sans-serif;
  padding:7px 14px;border-radius:20px;
  white-space:nowrap;
  opacity:0;transform:translateX(8px);
  transition:opacity .2s,transform .2s;
  text-decoration:none;
}
.msw.open .msw__label{opacity:1;transform:translateX(0)}
.msw.open .msw__item:nth-child(1) .msw__label{transition-delay:.05s}
.msw.open .msw__item:nth-child(2) .msw__label{transition-delay:.1s}
.msw.open .msw__item:nth-child(3) .msw__label{transition-delay:.15s}

.msw__icon{
  width:56px;height:56px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--sh-sm);
  transition:transform .2s,box-shadow .2s;
  flex-shrink:0;position:relative;
  margin-right:0;
}
.msw__icon::before{
  content:'';position:absolute;
  width:38px;height:38px;border-radius:50%;
  background:#fff;top:50%;left:50%;
  transform:translate(-50%,-50%);z-index:0;
}
.msw__icon svg{width:56px;height:56px;position:relative;z-index:1}
.msw__item:hover .msw__icon{transform:scale(1.08);box-shadow:var(--sh-sm)}

/* Main toggle button */
.msw__toggle{
  width:56px;height:56px;
  border-radius:50%;
  background:linear-gradient(135deg,#2865AD,#1a4f8a);
  border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--sh-brand-sm);
  transition:transform .25s,box-shadow .25s;
  position:relative;
  flex-shrink:0;
}
.msw__toggle:hover{transform:scale(1.06);box-shadow:var(--sh-brand-md)}
.msw__toggle-icon,.msw__toggle-close{
  position:absolute;
  transition:opacity .2s,transform .2s;
}
.msw__toggle-icon{opacity:1;transform:scale(1)}
.msw__toggle-close{opacity:0;transform:scale(.5) rotate(-45deg)}
.msw.open .msw__toggle-icon{opacity:0;transform:scale(.5) rotate(45deg)}
.msw.open .msw__toggle-close{opacity:1;transform:scale(1) rotate(0)}
.msw__toggle svg{width:26px;height:26px}

/* No ::before needed — reel covers the button entirely */

/* Pulse ring */
.msw__toggle::after{
  content:'';
  position:absolute;inset:-6px;
  border-radius:50%;
  border:2px solid rgba(40,101,173,.4);
  animation:msw-pulse 2.4s ease-out infinite;
}
.msw.open .msw__toggle::after{animation:none;opacity:0}
@keyframes msw-pulse{
  0%{transform:scale(1);opacity:.7}
  70%{transform:scale(1.3);opacity:0}
  100%{transform:scale(1.3);opacity:0}
}

/* Tooltip on closed state */
.msw__hint{
  position:absolute;right:66px;bottom:50%;transform:translateY(50%);
  background:rgba(15,28,46,.82);backdrop-filter:blur(8px);
  color:#fff;font-size:12px;font-weight:500;
  font-family:system-ui,sans-serif;
  padding:6px 12px;border-radius:16px;white-space:nowrap;
  opacity:0;transition:opacity .2s;pointer-events:none;
  -webkit-text-fill-color:#fff;
}
.msw__toggle:hover ~ * ,
.msw:not(.open) .msw__toggle:hover + .msw__hint{opacity:1}
.msw.open .msw__hint{display:none}

@media(max-width:480px){
  .msw{bottom:20px;right:16px}
  .msw__toggle{width:50px;height:50px}
  .msw__toggle svg{width:22px;height:22px}
  .msw__icon{width:42px;height:42px}
  .msw__icon svg{width:42px;height:42px}
  .msw__icon::before{width:26px;height:26px}
}

/* .m-cta больше не используется — кнопка «Рассчитать стоимость» переехала в шапку.
   Класс оставлен скрытым на случай если где-то ещё ссылка с этим классом. */
.m-cta{display:none !important}

/* Rotating icons in toggle */
.msw__reel{
  position:absolute;
  inset:-2px; /* 2px overscan kills edge artifacts */
  border-radius:50%;
  overflow:hidden;z-index:10;
  pointer-events:none;
}
.msw.open .msw__reel{opacity:0;transition:opacity .25s}
.msw__reel-item{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  opacity:0;
  transform:scale(.6) rotate(60deg);
  transition:opacity 1.65s cubic-bezier(.4,0,.2,1),
  transform 1.65s cubic-bezier(.34,1.56,.64,1);
}
.msw__reel-item::before{
  content:'';
  position:absolute;
  width:44px;height:44px;border-radius:50%;
  background:#fff;
  top:50%;left:50%;transform:translate(-50%,-50%);
  z-index:0;
}
.msw__reel-item--active{
  opacity:1;
  transform:scale(1) rotate(0deg);
}
/* exit animation */
.msw__reel-item--exit{
  opacity:0;
  transform:scale(.6) rotate(-60deg);
  transition:opacity 1.2s cubic-bezier(.4,0,.2,1),
  transform 1.2s cubic-bezier(.4,0,.2,1);
}
.msw__reel-item svg{
  width:60px;height:60px; /* slightly oversized so circle fills fully */
  display:block;position:relative;z-index:1;
}

/* ════ RESTORED: body-class rules removed by dedup script ════ */

/* Features slider */
.fs__card-body{padding:24px 26px 28px}

/* Ship amenities */
.amenity-card__body{padding:20px 22px 22px;flex:1}
.amenities__dots{display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 0 0}
.amenities__dot{width:6px;height:6px;border-radius:50%;background:#c8d8e8;transition:all .3s;cursor:pointer}
.amenities__dot.active{width:22px;border-radius:3px;background:var(--accent)}

/* Ship layout */
.ship__body{
  display:grid;grid-template-columns:1fr 1fr;
  gap:48px;align-items:start;
  margin-top:40px;
}
@media(max-width:900px){
  .ship__body{grid-template-columns:1fr}
}
@media(max-width:640px){
  .ship__body{grid-template-columns:1fr;gap:20px;margin-top:20px}
}

/* Cashback popup */
.cbpop__body{padding:28px 32px 32px}
@media(max-width:480px){
  .cbpop__body{padding:20px 20px 24px}
}

/* ═══════════════════════════════
   intl-tel-input overrides
═══════════════════════════════ */
.iti{width:100%}
.iti__tel-input{
  width:100%;
  background:rgba(255,255,255,.07) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:10px !important;
  padding-top:13px !important;
  padding-bottom:13px !important;
  padding-right:16px !important;
  font-size:16px !important;
  font-family:"Geologica",system-ui,sans-serif !important;
  color:#fff !important;
  outline:none !important;
  transition:border-color .2s !important;
}
.iti__tel-input::placeholder{color:rgba(255,255,255,.28) !important}
.iti__tel-input:focus{border-color:rgba(91,200,245,.6) !important}
.iti__flag-container{top:50%;transform:translateY(-50%)}
.iti__selected-dial-code{color:rgba(255,255,255,.7);font-size:13px}
.iti__arrow{border-top-color:rgba(255,255,255,.5)}
.iti__arrow--up{border-bottom-color:rgba(255,255,255,.5)}
.iti__country-list{
  background:#fff;
  border:1px solid #dce3eb;
  border-radius:10px;
  color:var(--navy);
  box-shadow:var(--sh-md);
}
.iti__country.iti__highlight{background:#f0f5fa}
.iti__country:hover{background:#f4f7fa}
.iti__dial-code{color:#8a9bb0}
.iti__country-name{color:var(--navy)}
.iti__divider{border-bottom-color:#e8eef4}
.iti__search-input{
  background:#f4f7fa;
  border:1px solid #dce3eb;
  border-radius:6px;
  color:var(--navy);
  font-family:"Geologica",system-ui,sans-serif;
}
.iti__search-input::placeholder{color:#a0adb8}
.form-card__field.is-error .iti__tel-input{border-color:#e8293a !important;background:rgba(232,41,58,.12) !important}

/* ═══════════════════════════════
   FORM — новые поля
═══════════════════════════════ */

/* Кнопки источника связи */
.form-contact-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.form-contact-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 16px;font-size:13px;font-weight:500;
  font-family:"Geologica",system-ui,sans-serif;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.5);
  border-radius:var(--r-pill);color:var(--navy);
  cursor:pointer;transition:all var(--d-fast) var(--e-out);white-space:nowrap;
}
/* Иконки в контакт-кнопках — переопределяем inline-атрибуты width/height */
.form-contact-btn svg{
  width:20px;height:20px;
  flex-shrink:0;
}
.form-contact-btn:hover{background:#fff;border-color:#fff}
.form-contact-btn:focus-visible{outline:none;box-shadow:var(--sh-glow)}
.form-contact-btn.is-active{
  background:var(--accent);border-color:var(--accent);color:#fff;
}

/* Кнопки выбора даты круиза — визуально аналогичны .form-contact-btn,
   но без иконок. Отдельный класс, чтобы не конфликтовать с JS контактов. */
.form-date-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.form-date-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:9px 16px;font-size:13px;font-weight:500;
  font-family:"Geologica",system-ui,sans-serif;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.5);
  border-radius:var(--r-pill);color:var(--navy);
  cursor:pointer;transition:all var(--d-fast) var(--e-out);white-space:nowrap;
}
.form-date-btn:hover{background:#fff;border-color:#fff}
.form-date-btn:focus-visible{outline:none;box-shadow:var(--sh-glow)}
.form-date-btn.is-active{
  background:var(--accent);border-color:var(--accent);color:#fff;
}
.form-date-btns.is-error{box-shadow:0 0 0 2px rgba(232,41,58,.3);border-radius:var(--r-pill)}

/* Счётчик путешественников: input слева, кнопки −/+ справа.
   Порядок задан через flex order — DOM-структура остаётся прежней. */
.form-counter{display:flex;align-items:center;gap:6px;margin-top:2px}
.form-counter__btn{
  order:2;
  /* 40×40 — комфортный размер тапа на мобильных, ближе к Apple HIG (44px) */
  width:40px;height:40px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  color:#fff;font-size:18px;line-height:1;
  cursor:pointer;transition:background .15s;
  font-family:"Geologica",system-ui,sans-serif;
}
.form-counter__minus{order:2}
.form-counter__plus{order:3}
.form-counter__btn:hover{background:rgba(255,255,255,.15)}
.form-counter__input{
  order:1;
  /* font-size:16px — критично: iOS Safari зумит при focus, если меньше 16px */
  width:64px;height:40px;text-align:center;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  color:#fff;font-size:16px;font-weight:500;
  font-family:"Geologica",system-ui,sans-serif;
  -moz-appearance:textfield;
}
.form-counter__input::-webkit-outer-spin-button,
.form-counter__input::-webkit-inner-spin-button{-webkit-appearance:none}

/* Чекбокс согласия */
.form-checkbox{
  display:flex;align-items:flex-start;gap:10px;
  margin-top:14px;cursor:pointer;
}
.form-checkbox input[type="checkbox"]{display:none}
.form-checkbox__box{
  flex-shrink:0;width:18px;height:18px;margin-top:1px;
  border:1.5px solid rgba(255,255,255,.3);
  border-radius:4px;background:rgba(255,255,255,.06);
  transition:all .15s;display:flex;align-items:center;justify-content:center;
}
.form-checkbox input:checked + .form-checkbox__box{
  background:var(--accent);border-color:var(--accent);
}
.form-checkbox input:checked + .form-checkbox__box::after{
  content:"";display:block;
  width:10px;height:6px;
  border-left:2px solid #fff;border-bottom:2px solid #fff;
  transform:rotate(-45deg) translateY(-1px);
}
.form-checkbox__text{font-size:12px;color:rgba(255,255,255,.45);line-height:1.5}
.form-checkbox__text a{color:rgba(255,255,255,.6);text-decoration:none}
.form-checkbox__text a:hover{color:#fff}
.form-checkbox.is-error .form-checkbox__box{border-color:#e8293a}
.form-checkbox-error{display:block;font-size:12px;color:#e8293a;margin-top:6px}

/* Telegram hint */
.uc-tg-hint{font-size:12px;margin-top:4px;min-height:18px;transition:color .2s;font-family:"Geologica",sans-serif}
.uc-tg-hint.error{color:#e53935}
.uc-tg-hint.ok{color:#43a047}
.uc-tg-hint.info{color:rgba(255,255,255,.4)}
.uc-tg-row{display:flex;align-items:center;gap:10px;margin-top:6px}
.uc-tg-open-btn{
  display:none;padding:5px 14px;font-size:12px;
  font-family:"Geologica",sans-serif;
  background:#0088cc;color:#fff;border:none;
  border-radius:4px;cursor:pointer;white-space:nowrap;
}
.uc-tg-open-btn:hover{background:#006fa3}

/* ═══════════════════════════════
   FORM MODAL
═══════════════════════════════ */
.form-modal{
  display:none;
  position:fixed;inset:0;z-index:2000;
  align-items:center;justify-content:center;
}
.form-modal.is-open{display:flex}
.form-modal__overlay{
  position:absolute;inset:0;
  background:rgba(10,20,35,.65);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.form-modal__box{
  position:relative;z-index:1;
  width:100%;max-width:460px;
  background:#fff;
  border-radius:20px;
  padding:40px 36px 36px;
  margin:16px;
  box-shadow:var(--sh-xl);
  animation:fmIn .25s ease;
}

/* ── Светлая тема модала ── */
.form-modal .form-card__title{color:var(--navy)}
.form-modal .form-card__sub{color:#6b7a8d}
.form-modal__context{
  margin:-18px 0 24px;
  padding:10px 14px;
  background:var(--c-ice-100,#e4f6fd);
  color:var(--c-blue-700,#1f5495);
  border-radius:10px;
  font-size:13px;
  font-weight:500;
  line-height:1.4;
}
.form-modal__context[hidden]{display:none}
.form-modal .form-card__field label{color:#5a6a7a}
.form-modal .form-card__field input:not(.iti__tel-input){
  background:#f4f7fa;
  border-color:#dce3eb;
  color:var(--navy);
}
.form-modal .form-card__field input:not(.iti__tel-input)::placeholder{color:#a0adb8}
.form-modal .form-card__field input:not(.iti__tel-input):focus{border-color:var(--accent)}
.form-modal .form-card__field.is-error input:not(.iti__tel-input){
  background:#fff0f0;
  border-color:#e8293a;
}
.form-modal .iti__tel-input{
  background:#f4f7fa !important;
  border-color:#dce3eb !important;
  color:var(--navy) !important;
}
.form-modal .iti__tel-input::placeholder{color:#a0adb8 !important}
.form-modal .iti__tel-input:focus{border-color:var(--accent) !important}
.form-modal .form-card__field.is-error .iti__tel-input{
  background:#fff0f0 !important;
  border-color:#e8293a !important;
}
.form-modal .iti__selected-dial-code{color:var(--navy)}
.form-modal .iti__arrow{border-top-color:#5a6a7a}
.form-modal .iti__arrow--up{border-bottom-color:#5a6a7a}
.form-modal .form-counter__btn{
  background:#f4f7fa;
  border-color:#dce3eb;
  color:var(--navy);
}
.form-modal .form-counter__btn:hover{background:#e8eef4}
/* Контактные/датные кнопки в модалке — тот же светлый стиль, что у инпутов */
.form-modal .form-contact-btn,
.form-modal .form-date-btn{
  background:#f4f7fa;
  border-color:#dce3eb;
  color:var(--navy);
}
.form-modal .form-contact-btn:hover,
.form-modal .form-date-btn:hover{
  background:#e8eef4;
  border-color:#c8d3df;
}
.form-modal .form-contact-btn.is-active,
.form-modal .form-date-btn.is-active{
  background:var(--accent);border-color:var(--accent);color:#fff;
}
.form-modal .form-counter__input{
  background:#f4f7fa;
  border-color:#dce3eb;
  color:var(--navy);
}
/* В модалке: компактный чекбокс (как в основной форме), выровнен по левому краю
   как остальные инпуты */
.form-modal .form-checkbox{
  /* по умолчанию у .form-checkbox: align-items:flex-start, gap:10px — оставляем */
  margin-top:14px;
}
.form-modal .form-checkbox__box{
  border-color:#c0cdd8;background:#f4f7fa;
}
.form-modal .form-checkbox__text{
  color:#6b7a8d;
}
.form-modal .form-checkbox__text a{color:var(--accent)}
.form-modal .form-checkbox-error{color:#e8293a}
.form-modal .uc-tg-hint.info{color:#8a9bb0}
.form-modal .field-error{color:#e8293a}
@keyframes fmIn{
  from{opacity:0;transform:scale(.94) translateY(12px)}
  to  {opacity:1;transform:scale(1)   translateY(0)}
}
.form-modal__close{
  position:absolute;top:14px;right:16px;
  background:none;border:none;cursor:pointer;
  font-size:26px;line-height:1;color:#a0adb8;
  padding:4px 8px;border-radius:8px;
  transition:color .15s,background .15s;
}
.form-modal__close:hover{color:var(--navy);background:#f0f4f8}

/* Validation error state */
.form-card__field.is-error input{
  border-color:#e8293a;
  background:rgba(232,41,58,.12);
}
.form-card__field .field-error{
  display:none;
  font-size:12px;color:#e8293a;margin-top:4px;
}
.form-card__field.is-error .field-error{display:block}

/* Honeypot: невидимо для людей, видимо для ботов.
   Не использовать display:none/hidden — современные боты их пропускают.
   Уносим за вьюпорт + блокируем фокус/события. */
.form-hp{
  position:absolute !important;
  left:-9999px !important;top:auto !important;
  width:1px;height:1px;overflow:hidden;
  pointer-events:none;opacity:0;
}

/* Button states */
.form-card__btn.is-busy{opacity:.7;pointer-events:none}
.form-card__btn .btn-spinner{
  display:inline-block;
  width:16px;height:16px;
  border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;
  border-radius:50%;
  animation:spin .6s linear infinite;
  vertical-align:middle;margin-right:6px;
}
@keyframes spin{to{transform:rotate(360deg)}}
.form-success{
  text-align:center;padding:16px 0 8px;
}
.form-success__icon{font-size:40px;line-height:1;margin-bottom:10px}
.form-success__title{font-size:18px;font-weight:700;color:#1a9e5c;margin-bottom:6px}
.form-success__sub{font-size:14px;color:#6b7a8d}
.form-error-msg{
  font-size:13px;color:#e8293a;text-align:center;
  margin-top:10px;
}

@media(max-width:480px){
  .form-modal__box{padding:28px 20px 24px}
}


/* ═══════════════════════════════════════════════════════════════
   A11Y — глобальные focus-visible стили (Stage 3)
   Добавляет consistent focus ring на все интерактивные элементы,
   которые не задают собственный :focus-visible выше в файле.
═══════════════════════════════════════════════════════════════ */
.ship__nav button:focus-visible,
.amenities__nav button:focus-visible,
.vids__nav button:focus-visible,
.reviews__nav button:focus-visible,
.fs__nav button:focus-visible,
.prog__nav button:focus-visible,
.cabins__tab:focus-visible,
.cabin-date-btn:focus-visible,
.faq__cat:focus-visible,
.faq__q:focus-visible,
.reviews__dot:focus-visible,
.vids__dot:focus-visible,
.fs__dot:focus-visible,
.prog__dot:focus-visible,
.ship__gallery-dot:focus-visible,
.amenities__dot:focus-visible,
.form-counter__btn:focus-visible,
.cabins__promo-more:focus-visible,
.nav__burger:focus-visible{
  outline:none;
  box-shadow:var(--sh-glow);
}


/* ═══════════════════════════════════════════════════════════════
   LARGE SCREENS  —  xl · min-width: 1440px
   Контейнеры: 1100 → 1280 px
   Боковые отступы секций: 40 → 60 px
   Hero H1: clamp max 64 → 80 px
═══════════════════════════════════════════════════════════════ */
@media(min-width:1440px){
  /* Все контент-контейнеры */
  .about__inner,
  .prog__inner,
  .form-block__inner,
  .ship__inner,
  .amenities__inner,
  .cabins__inner,
  .incl__inner,
  .faq__inner,
  .vids__inner,
  .reviews__inner,
  .club__inner,
  .footer__inner,
  .footer__bottom,
  .alt-bar__inner{ max-width:1280px }

  /* fs header */
  .fs__header{ max-width:1280px }

  /* Боковые отступы секций */
  .about,
  .prog,
  .fs,
  .ship,
  .amenities,
  .cabins,
  .incl,
  .faq,
  .vids,
  .reviews,
  .club,
  .footer,
  .alt-bar{ padding-left:60px; padding-right:60px }
}


/* ═══════════════════════════════════════════════════════════════
   EXTRA LARGE SCREENS  —  2xl · min-width: 1920px
   Контейнеры: 1280 → 1440 px
   Боковые отступы: 60 → 80 px
   Nav: 1440 → 1600 px (больше воздуха в шапке)
═══════════════════════════════════════════════════════════════ */
@media(min-width:1920px){
  /* Все контент-контейнеры */
  .about__inner,
  .prog__inner,
  .form-block__inner,
  .ship__inner,
  .amenities__inner,
  .cabins__inner,
  .incl__inner,
  .faq__inner,
  .vids__inner,
  .reviews__inner,
  .club__inner,
  .footer__inner,
  .footer__bottom,
  .alt-bar__inner{ max-width:1440px }

  /* fs header */
  .fs__header{ max-width:1440px }

  /* Nav расширяем под 2K */
  .nav__inner{ max-width:1600px }

  /* Боковые отступы */
  .about,
  .prog,
  .fs,
  .ship,
  .amenities,
  .cabins,
  .incl,
  .faq,
  .vids,
  .reviews,
  .club,
  .footer,
  .alt-bar{ padding-left:80px; padding-right:80px }
}

/* ══════════════════════════════════════════════════════════════
   A11Y: Skip link (visually hidden until focus)
══════════════════════════════════════════════════════════════ */
.skip-link{
  position:absolute;
  left:-10000px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
  z-index:10000;
}
.skip-link:focus{
  position:fixed;
  top:12px;
  left:12px;
  width:auto;
  height:auto;
  padding:12px 20px;
  background:var(--c-blue-600);
  color:#fff;
  font:600 14px/1 'Geologica',system-ui,sans-serif;
  text-decoration:none;
  border-radius:8px;
  box-shadow:var(--sh-md);
  outline:2px solid #fff;
  outline-offset:2px;
}

/* ══════════════════════════════════════════════════════════════
   DESIGN SYSTEM: .badge
══════════════════════════════════════════════════════════════ */
.badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:var(--r-pill);
  font-size:12px;font-weight:500;letter-spacing:.02em;
}
.badge--brand{background:var(--c-ice-100);color:var(--c-blue-700)}
.badge--dark{background:var(--c-navy-800);color:#fff}
.badge--outline{background:#fff;color:var(--c-navy-800);border:1px solid var(--border)}
.badge--success{background:rgba(26,158,92,.12);color:var(--c-success)}
.badge--danger{background:rgba(232,41,58,.1);color:var(--c-danger)}

/* ══════════════════════════════════════════════════════════════
   DESIGN SYSTEM: .btn
══════════════════════════════════════════════════════════════ */
.btn{
  display:inline-flex;align-items:center;gap:var(--s-2);
  padding:14px 22px;border-radius:var(--r-md);
  font-family:inherit;font-size:15px;font-weight:500;line-height:1;
  transition:transform var(--d-med) var(--e-out),
             box-shadow var(--d-med) var(--e-out),
             background var(--d-fast) var(--e-out);
  cursor:pointer;white-space:nowrap;text-decoration:none;border:none;
}
.btn:focus-visible{outline:none;box-shadow:var(--sh-glow)}
.btn--primary{background:var(--c-blue-600);color:#fff}
.btn--primary:hover{background:var(--c-blue-500)}
.btn--sm{padding:10px 16px;font-size:13px}
.btn--lg{padding:18px 28px;font-size:16px}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}

/* ══════════════════════════════════════════════════════════════
   ALT CRUISE BAR: Le Commandant-Charcot (static, before FAQ)
══════════════════════════════════════════════════════════════ */
.alt-bar{
  background:rgba(10,20,35,.96);
  border-top:1px solid rgba(91,200,245,.22);
  border-bottom:1px solid rgba(91,200,245,.22);
  padding:18px 40px;
}
.alt-bar__inner{
  max-width:1100px;margin:0 auto;
  display:flex;align-items:center;gap:24px;
}
.alt-bar__icon{
  width:48px;height:48px;flex-shrink:0;
  border-radius:10px;
  background:
    radial-gradient(ellipse at 30% 30%,rgba(91,200,245,.3) 0%,transparent 60%),
    linear-gradient(135deg,#2865AD 0%,#1a4580 100%);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--sh-brand-sm);
}
.alt-bar__text{flex:1;min-width:0}
.alt-bar__label{
  display:block;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:#5bc8f5;margin-bottom:3px;
}
.alt-bar__title{
  font-size:15px;font-weight:700;color:#fff;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.alt-bar__meta{display:flex;gap:28px;flex-shrink:0}
.alt-bar__meta-item{font-size:12px;display:flex;flex-direction:column;gap:2px}
.alt-bar__meta-label{color:rgba(255,255,255,.5);font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.alt-bar__meta-val{color:#fff;font-weight:700;font-size:13px}
.alt-bar__meta-val--price{color:#e8c96c}
.alt-bar__cta{flex-shrink:0;font-size:13px;padding:11px 20px}
@media(max-width:900px){
  .alt-bar{padding:24px 16px 26px}
  /* Явная grid-раскладка через template-areas.
     3 строки × 2 колонки:
       row 1: текст (label + title) на всю ширину
       row 2: [icon] .......... [meta]  (распределяем по ширине)
       row 3: кнопка CTA на всю ширину */
  .alt-bar__inner{
    display:grid;
    grid-template-columns:auto 1fr;
    grid-template-areas:
      "text text"
      "icon meta"
      "cta  cta";
    column-gap:14px;
    row-gap:20px;
    align-items:center;
  }
  .alt-bar__text{grid-area:text; min-width:0}
  .alt-bar__title{
    white-space:normal;
    font-size:14px;line-height:1.35;
    overflow:visible;text-overflow:clip;
  }
  .alt-bar__icon{
    grid-area:icon;
    width:40px;height:40px;
    border-radius:9px;
  }
  .alt-bar__icon svg{width:22px;height:22px}
  .alt-bar__meta{
    grid-area:meta;
    display:flex;flex-direction:row;flex-wrap:nowrap;
    justify-content:flex-start;
    column-gap:12px;
    min-width:0;
    align-items:center;
  }
  .alt-bar__meta-item{flex-shrink:0;padding-left:16px}
  .alt-bar__meta-label{font-size:9px}
  .alt-bar__meta-val{font-size:12px}
  .alt-bar__meta-val--price{font-size:13px}
  .alt-bar__cta{
    grid-area:cta;
    width:100%;justify-content:center;padding:13px 16px;
    font-size:14px;
  }
}

/* slider arrows mobile → handled by .slider-nav__btn @media in unified block */

/* Section labels: tighter margin on tablet/mobile */
@media(max-width:900px){
  .about__label,.fs__label,.prog__header-left .prog__label,.ship__label,
  .amenities__label,.cabins__label,.incl__label,.faq__label,
  .vids__label,.reviews__label,.club__label,.form-block__label{
    margin-bottom:10px;
  }
}

/* Header mb:12px now consolidated into @media(max-width:900px) blocks */

/* ══════════════════════════════════════════════════════════════
   SLIDER DOTS — compact mobile spacing
   Уменьшаем расстояние «слайд ↔ дотсы» на мобильных,
   делаем одинаковым во всех слайдерах.
══════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  /* Сокращаем нижний паддинг у scroll-track'ов, чтобы дотсы были ближе.
     И убираем верхний padding-top:4px (был у amenities/ship/prog) — он
     суммировался с header margin-bottom и давал визуальный разнобой. */
  .fs__track         {padding-top:0;padding-bottom:4px}
  .prog__detail-track{padding-top:0;padding-bottom:4px}
  .ship__gallery-track{padding-top:0;padding-bottom:4px}
  .amenities__track  {padding-top:0;padding-bottom:4px}
  .vids__track       {padding-top:0;padding-bottom:4px}

  /* Унифицируем верхний отступ у дотс-контейнеров (+4px к расстоянию слайд↔дотсы) */
  .fs__dots          {margin-top:16px}
  .prog__dots        {padding-top:16px}
  .ship__gallery-dots{padding-top:16px}
  .amenities__dots   {padding-top:16px}
  .vids__dots        {margin-top:16px}
  .reviews__footer   {margin-top:16px}
}

/* ══════════════════════════════════════════════════════════════
   SLIDER DRAG CURSORS — desktop drag-to-scroll
   JS-управляемые классы (см. enableDragScroll в main.js):
   - .cur-grab    → курсор «ладошка» над полностью видимым слайдом
   - .cur-arr-l   → круглая стрелка ← над частичным слайдом слева
   - .cur-arr-r   → круглая стрелка → над частичным слайдом справа
   - .is-dragging → пользователь активно тянет (grabbing + блок выделения)
   На тач-устройствах JS навешивает обработчики только на pointer-mouse,
   так что эти классы там никогда не появятся.
══════════════════════════════════════════════════════════════ */
.fs__track.cur-grab,
.prog__detail-track.cur-grab,
.amenities__track.cur-grab,
.vids__track.cur-grab,
.reviews__track.cur-grab{
  cursor:grab;
}
.fs__track.is-dragging,
.prog__detail-track.is-dragging,
.amenities__track.is-dragging,
.vids__track.is-dragging,
.reviews__track.is-dragging{
  cursor:grabbing;
  scroll-snap-type:none;       /* во время drag отключаем snap, чтобы не дёргало */
  scroll-behavior:auto;         /* мгновенный отклик */
}
.fs__track.is-dragging *,
.prog__detail-track.is-dragging *,
.amenities__track.is-dragging *,
.vids__track.is-dragging *,
.reviews__track.is-dragging *{
  user-select:none;
  -webkit-user-select:none;
}
/* Круглая «nav-style» стрелка влево (повторяет SVG из header-кнопок) */
.fs__track.cur-arr-l,
.prog__detail-track.cur-arr-l,
.amenities__track.cur-arr-l,
.vids__track.cur-arr-l,
.reviews__track.cur-arr-l{
  cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><circle cx='16' cy='16' r='14' fill='%23ffffff' stroke='rgba(40,101,173,.35)' stroke-width='1.5'/><path d='M21 16H11M16 11l-5 5 5 5' fill='none' stroke='%232865AD' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") 16 16, w-resize;
}
/* Круглая «nav-style» стрелка вправо */
.fs__track.cur-arr-r,
.prog__detail-track.cur-arr-r,
.amenities__track.cur-arr-r,
.vids__track.cur-arr-r,
.reviews__track.cur-arr-r{
  cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><circle cx='16' cy='16' r='14' fill='%23ffffff' stroke='rgba(40,101,173,.35)' stroke-width='1.5'/><path d='M11 16h10M16 11l5 5-5 5' fill='none' stroke='%232865AD' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") 16 16, e-resize;
}
/* Перекрываем cursor:pointer у дочерних элементов слайдов:
   когда трек находится в одном из drag-состояний, все потомки
   наследуют курсор от трека (иначе .fs__card{cursor:pointer} и
   .vid-card__wrap{cursor:pointer} перебивают .cur-grab/.cur-arr-*) */
.fs__track.cur-grab *, .fs__track.cur-arr-l *, .fs__track.cur-arr-r *, .fs__track.is-dragging *,
.prog__detail-track.cur-grab *, .prog__detail-track.cur-arr-l *, .prog__detail-track.cur-arr-r *, .prog__detail-track.is-dragging *,
.amenities__track.cur-grab *, .amenities__track.cur-arr-l *, .amenities__track.cur-arr-r *, .amenities__track.is-dragging *,
.vids__track.cur-grab *, .vids__track.cur-arr-l *, .vids__track.cur-arr-r *, .vids__track.is-dragging *,
.reviews__track.cur-grab *, .reviews__track.cur-arr-l *, .reviews__track.cur-arr-r *, .reviews__track.is-dragging *{
  cursor:inherit;
}

/* ══════════════════════════════════════════════════════════════
   STICKY CARD A: Le Commandant-Charcot cross-reference
══════════════════════════════════════════════════════════════ */
.sc-a{
  position:fixed;right:24px;bottom:96px;
  width:320px;z-index:10000;
  background:#fff;border-radius:16px;
  box-shadow:var(--sh-xl),var(--sh-sm);
  overflow:hidden;
  transform:translateY(calc(100% + 48px));
  opacity:0;pointer-events:none;
  transition:transform .5s cubic-bezier(.4,0,.15,1),opacity .35s ease;
}
.sc-a.visible{transform:translateY(0);opacity:1;pointer-events:auto}
.sc-a__close{
  position:absolute;top:10px;right:10px;z-index:4;
  width:30px;height:30px;border:none;border-radius:50%;
  background:rgba(255,255,255,.92);backdrop-filter:blur(6px);
  color:var(--text);font-size:18px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .2s;box-shadow:var(--sh-sm);
}
.sc-a__close:hover{background:#fff;color:var(--navy);transform:scale(1.06)}
.sc-a__img{
  position:relative;height:144px;
  background:
    radial-gradient(ellipse at 30% 30%,rgba(91,200,245,.25) 0%,transparent 60%),
    linear-gradient(135deg,#2865AD 0%,#1a4580 50%,#0d2a4f 100%);
  overflow:hidden;
}
.sc-a__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;z-index:0}
.sc-a__img::after{content:'';position:absolute;inset:0;z-index:1;background:rgba(10,20,35,.18)}
.sc-a__badge{position:absolute;bottom:14px;left:14px;z-index:3}
.sc-a__body{padding:16px 18px 18px}
.sc-a__title{font-size:16px;font-weight:800;color:var(--navy);letter-spacing:-.01em;line-height:1.2;margin-bottom:4px}
.sc-a__sub{font-size:12px;color:#8896a7;margin-bottom:14px}
.sc-a__meta{
  display:flex;justify-content:space-between;gap:12px;
  padding-bottom:14px;margin-bottom:14px;
  border-bottom:1px solid #e8ecf2;
}
.sc-a__meta-item{display:flex;flex-direction:column;gap:3px}
.sc-a__meta-label{font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#8896a7}
.sc-a__meta-val{font-size:13px;font-weight:700;color:var(--navy)}
.sc-a__price{color:#d4930a;font-size:15px}
.sc-a__cta{width:100%;justify-content:center;font-size:14px}
.sc-a__cta svg{transition:transform .2s}
.sc-a__cta:hover svg{transform:translateX(3px)}
@media(max-width:640px){
  .sc-a{right:12px;left:12px;bottom:12px;width:auto}
}

/* ══════════════════════════════════════════════════════════════
   A11Y: Reduced motion — уважаем системные настройки пользователя
══════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto }
  *, *::before, *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}