/* =========================================================
   Полярный улов — лендинг рыбалки на Баренцевом море
   ========================================================= */

:root{
  --bg:        #04101a;
  --bg-deep:   #061521;
  --bg-soft:   #071a26;
  --paper:     #edf4f6;
  --ink:       #07202c;
  --text:      #e9f3f6;
  --muted:     #a2bbc5;
  --dim:       #7d97a3;
  --accent:    #ff7a45;
  --mint:      #7fe3cf;
  --line:      rgba(160,200,215,.14);
  --line-soft: rgba(160,200,215,.08);

  --font: "Segoe UI", "Inter", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --serif: Georgia, "Times New Roman", "PT Serif", serif;

  --radius: 20px;
  --container: 1180px;
  --header-h: 84px;

  --ease: cubic-bezier(.22,.7,.24,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font);
  font-size:17px;
  line-height:1.65;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }
h1,h2,h3,h4,p,figure,blockquote,ul,ol{ margin:0; }
ul,ol{ padding:0; list-style:none; }

::selection{ background:var(--accent); color:#0a1620; }

:focus-visible{
  outline:2px solid var(--mint);
  outline-offset:3px;
  border-radius:4px;
}

.skip{
  position:fixed; top:-100px; left:16px; z-index:999;
  background:var(--mint); color:#04101a; padding:12px 20px;
  border-radius:8px; font-weight:600; transition:top .2s;
}
.skip:focus{ top:16px; }

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:clamp(20px,4vw,40px);
}

/* ---------- Buttons ---------- */
.btn{
  --btn-bg:transparent;
  appearance:none; -webkit-appearance:none;
  background:transparent;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:52px; padding:0 28px;
  border:1px solid transparent; border-radius:100px;
  font-size:15px; font-weight:600; letter-spacing:-.01em; line-height:1;
  cursor:pointer; white-space:nowrap;
  transition:background .25s var(--ease), color .25s, border-color .25s, transform .25s var(--ease), box-shadow .25s;
}
.btn svg{ width:18px; height:18px; flex:none; }
.btn:active{ transform:translateY(1px) scale(.995); }

.btn--primary{
  background:var(--accent); color:#180d07;
  box-shadow:0 10px 30px -12px rgba(255,122,69,.7);
}
.btn--primary:hover{
  background:#ff8f61;
  transform:translateY(-2px);
  box-shadow:0 18px 40px -14px rgba(255,122,69,.75);
}

.btn--ghost{
  border-color:rgba(233,243,246,.24);
  color:var(--text);
}
.btn--ghost:hover{
  background:rgba(233,243,246,.08);
  border-color:rgba(233,243,246,.4);
  transform:translateY(-2px);
}

.btn--outline{
  border-color:rgba(7,32,44,.24);
  color:var(--ink);
  background:transparent;
}
.btn--outline:hover{
  background:var(--ink); color:#fff; border-color:var(--ink);
  transform:translateY(-2px);
}

.btn--wide{ width:100%; }

/* =========================================================
   HEADER
   ========================================================= */
.header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:22px 0;
  transition:padding .3s var(--ease), background .3s, border-color .3s, backdrop-filter .3s;
  border-bottom:1px solid transparent;
}
.header.is-stuck{
  padding:12px 0;
  background:rgba(4,16,26,.82);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom-color:var(--line);
}

.header__inner{
  display:flex; align-items:center; gap:clamp(16px,2.4vw,36px);
}

.logo{
  display:inline-flex; align-items:center; gap:12px;
  font-size:14px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--text); flex:none;
  position:relative; z-index:125;
}
.logo__mark{ width:34px; height:34px; color:var(--mint); flex:none; }
.logo__text{ display:inline-flex; align-items:baseline; }
.logo__text b{ margin-left:.34em; font-weight:700; color:var(--mint); }

.nav{ display:flex; align-items:center; gap:clamp(14px,2vw,30px); margin-left:auto; }
.nav__link{
  position:relative; font-size:14px; color:rgba(233,243,246,.72);
  transition:color .2s; padding:6px 0;
}
.nav__link::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--mint); transform:scaleX(0); transform-origin:right;
  transition:transform .3s var(--ease);
}
.nav__link:hover{ color:#fff; }
.nav__link:hover::after{ transform:scaleX(1); transform-origin:left; }

.nav__link--cta{
  border:1px solid rgba(255,122,69,.55);
  color:#ffd2bf; padding:10px 20px; border-radius:100px;
  font-weight:600; letter-spacing:.01em;
  transition:background .25s, color .25s, border-color .25s;
}
.nav__link--cta::after{ display:none; }
.nav__link--cta:hover{ background:var(--accent); border-color:var(--accent); color:#180d07; }

.nav__foot{ display:none; }

.header__phone{
  font-size:14px; font-weight:600; color:var(--text);
  letter-spacing:.01em; flex:none;
  transition:color .2s;
}
.header__phone:hover{ color:var(--mint); }

.burger{
  display:none; width:44px; height:44px; margin-left:auto; flex:none;
  background:none; border:0; cursor:pointer; position:relative; z-index:120;
}
.burger span{
  position:absolute; left:11px; right:11px; height:1.8px; background:var(--text);
  border-radius:2px; transition:transform .3s var(--ease), opacity .2s;
}
.burger span:nth-child(1){ top:15px; }
.burger span:nth-child(2){ top:21px; }
.burger span:nth-child(3){ top:27px; }
.burger.is-open span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center;
  padding:calc(var(--header-h) + 70px) 0 110px;
  overflow:hidden;
  isolation:isolate;
}

.hero__media{
  position:absolute; inset:0; z-index:-1;
  overflow:hidden;
  background:
    radial-gradient(46% 32% at 78% 60%, rgba(255,150,90,.18), transparent 72%),
    radial-gradient(70% 46% at 54% 60%, rgba(48,208,180,.22), transparent 72%),
    linear-gradient(180deg, #030b13 0%, #061725 34%, #0a2836 64%, #124049 100%);
}

/* полярное сияние — canvas над фоном неба и под сопками */
.hero__aurora{
  position:absolute; inset:0; z-index:1;
  width:100%; height:100%;
  pointer-events:none;
}

.hero__scene{
  position:absolute; inset:0; z-index:2;
  width:100%; height:100%; object-fit:cover;
}

.hero__veil{
  position:absolute; inset:0; z-index:3;
  background:
    linear-gradient(90deg, rgba(4,16,26,.95) 0%, rgba(4,16,26,.82) 30%, rgba(4,16,26,.38) 58%, rgba(4,16,26,.46) 100%),
    linear-gradient(180deg, rgba(4,16,26,.75) 0%, rgba(4,16,26,0) 32%, rgba(4,16,26,.35) 70%, rgba(4,16,26,.94) 100%);
}

.grain{
  position:absolute; inset:0; z-index:4; pointer-events:none; opacity:.055;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}

.hero__inner{ position:relative; z-index:2; }

.eyebrow{
  display:flex; align-items:center; gap:12px;
  font-size:11.5px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(233,243,246,.62); font-weight:500;
  margin-bottom:30px;
}
.eyebrow__dot{
  width:7px; height:7px; border-radius:50%; background:var(--mint); flex:none;
  box-shadow:0 0 0 4px rgba(127,227,207,.14);
  animation:pulse 3s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{ box-shadow:0 0 0 4px rgba(127,227,207,.14); }
  50%{ box-shadow:0 0 0 8px rgba(127,227,207,.04); }
}

.hero__title{
  max-width:860px;
  font-size:clamp(34px,6.1vw,78px);
  line-height:1.04;
  letter-spacing:-.035em;
  font-weight:600;
}
.hero__title em{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  letter-spacing:-.02em;
  color:var(--mint);
  white-space:nowrap;
}

.hero__lead{
  max-width:540px;
  margin-top:28px;
  color:rgba(233,243,246,.72);
  font-size:clamp(15.5px,1.3vw,17.5px);
  line-height:1.7;
}

.hero__actions{
  display:flex; flex-wrap:wrap; gap:14px;
  margin-top:40px;
}

.hero__stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  margin-top:clamp(48px,7vw,84px);
  padding-top:28px;
  border-top:1px solid rgba(233,243,246,.16);
  max-width:760px;
}
.hero__stats li{ display:flex; flex-direction:column; gap:6px; }
.hero__stats strong{
  font-size:clamp(24px,2.6vw,34px);
  font-weight:600; letter-spacing:-.03em; line-height:1;
  color:#fff;
}
.hero__stats span{
  font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(233,243,246,.5); line-height:1.4;
}

.hero__scroll{
  position:absolute; right:clamp(20px,4vw,44px); bottom:34px; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-size:10.5px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(233,243,246,.45);
  writing-mode:vertical-rl;
}
.hero__scroll svg{ width:16px; height:16px; animation:bounce 2.4s var(--ease) infinite; }
.hero__scroll:hover{ color:var(--mint); }
@keyframes bounce{
  0%,100%{ transform:translateY(0); opacity:.6; }
  50%{ transform:translateY(6px); opacity:1; }
}

/* scene animation */
.stars{ animation:twinkle 9s ease-in-out infinite alternate; }
@keyframes twinkle{ from{ opacity:.55; } to{ opacity:1; } }
.waves{ animation:swell 26s ease-in-out infinite alternate; }
@keyframes swell{ from{ transform:translateX(-14px); } to{ transform:translateX(14px); } }
.boat{ animation:bob 6s ease-in-out infinite; }
@keyframes bob{ 0%,100%{ translate:0 0; } 50%{ translate:0 3px; } }

/* =========================================================
   SECTIONS / TYPOGRAPHY
   ========================================================= */
.section{
  position:relative;
  padding:clamp(84px,9.5vw,140px) 0;
  scroll-margin-top:100px;
}
.section--dark{ background:var(--bg); }
.section--deep{
  background:
    radial-gradient(120% 90% at 85% 0%, rgba(30,110,120,.16), transparent 60%),
    #061521;
}
.section--light{ background:var(--paper); color:var(--ink); }

.section__head{ max-width:780px; margin-bottom:clamp(44px,5vw,64px); }
.section__head--sticky{ position:sticky; top:120px; align-self:start; margin-bottom:0; }

.section__label{
  display:flex; align-items:center; gap:12px;
  font-size:11px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--dim); font-weight:600;
  margin-bottom:24px;
}
.section__label span{
  display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; flex:none;
  border:1px solid var(--line); border-radius:50%;
  font-size:10.5px; letter-spacing:0; color:var(--mint);
  font-variant-numeric:tabular-nums;
}

.section__title{
  font-size:clamp(30px,4.4vw,56px);
  line-height:1.05;
  letter-spacing:-.035em;
  font-weight:600;
}
.section__title em{
  font-family:var(--serif);
  font-style:italic; font-weight:400;
  color:var(--mint);
  letter-spacing:-.02em;
}

.section__lead{
  margin-top:24px;
  max-width:600px;
  color:var(--muted);
  font-size:clamp(15.5px,1.25vw,17px);
  line-height:1.7;
}

/* light theme overrides */
.section--light .section__label{ color:#718d99; }
.section--light .section__label span{ border-color:rgba(7,32,44,.16); color:#0f8071; }
.section--light .section__title{ color:var(--ink); }
.section--light .section__title em{ color:#0f8071; }
.section--light .section__lead{ color:#4b6977; }

/* =========================================================
   FEATURES
   ========================================================= */
.features{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.feature{
  padding:30px 26px 32px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(165deg, rgba(255,255,255,.045), rgba(255,255,255,.008));
  transition:transform .35s var(--ease), border-color .3s, background .3s;
}
.feature:hover{
  transform:translateY(-5px);
  border-color:rgba(127,227,207,.38);
  background:linear-gradient(165deg, rgba(127,227,207,.09), rgba(255,255,255,.01));
}
.feature__icon{
  width:48px; height:48px; border-radius:14px;
  display:grid; place-items:center;
  border:1px solid rgba(127,227,207,.24);
  color:var(--mint);
  margin-bottom:24px;
  background:rgba(127,227,207,.05);
}
.feature__icon svg{ width:26px; height:26px; }
.feature h3{
  font-size:18.5px; font-weight:600; letter-spacing:-.01em;
  margin-bottom:12px; line-height:1.3;
}
.feature p{ font-size:14.5px; line-height:1.65; color:var(--muted); }

/* =========================================================
   MARQUEE
   ========================================================= */
.marquee{
  overflow:hidden;
  background:#030c14;
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  padding:20px 0;
}
.marquee__track{
  display:flex; align-items:center; gap:36px;
  width:max-content;
  animation:marquee 42s linear infinite;
  font-size:12.5px; letter-spacing:.3em; text-transform:uppercase;
  color:rgba(233,243,246,.34);
  font-weight:500;
}
.marquee__track i{ color:var(--accent); font-style:normal; opacity:.7; }
@keyframes marquee{
  from{ transform:translateX(0); }
  to  { transform:translateX(-50%); }
}

/* =========================================================
   TOURS
   ========================================================= */
.tours{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  align-items:stretch;
}
.tour{
  position:relative;
  display:flex; flex-direction:column;
  padding:32px 30px;
  background:#fff;
  border:1px solid rgba(7,32,44,.1);
  border-radius:22px;
  box-shadow:0 24px 60px -42px rgba(7,32,44,.5);
  transition:transform .35s var(--ease), box-shadow .35s, border-color .3s;
}
.tour:hover{
  transform:translateY(-6px);
  box-shadow:0 40px 80px -44px rgba(7,32,44,.55);
  border-color:rgba(7,32,44,.2);
}
.tour__meta{
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:#718d99; font-weight:600;
}
.tour__name{
  font-size:26px; font-weight:600; letter-spacing:-.025em;
  margin-top:12px; line-height:1.15;
}
.tour__desc{
  margin-top:12px; font-size:14.5px; line-height:1.6; color:#4b6977;
}
.tour__price{
  margin:26px 0 24px;
  display:flex; align-items:baseline; gap:8px;
  padding-bottom:24px;
  border-bottom:1px solid rgba(7,32,44,.1);
}
.tour__price strong{
  font-size:33px; font-weight:600; letter-spacing:-.03em; line-height:1;
}
.tour__price span{ font-size:13px; color:#718d99; }

.tour__list{ display:flex; flex-direction:column; gap:0; margin-bottom:28px; }
.tour__list li{
  position:relative;
  padding:9px 0 9px 26px;
  font-size:14px; line-height:1.5; color:#33525f;
  border-bottom:1px dashed rgba(7,32,44,.09);
}
.tour__list li:last-child{ border-bottom:0; }
.tour__list li::before{
  content:""; position:absolute; left:0; top:14px;
  width:12px; height:12px;
  background:currentColor;
  color:#0f8071;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M2 8.5 6 12.5 14 3.5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M2 8.5 6 12.5 14 3.5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;
}
.tour .btn{ margin-top:auto; }

.tour--featured{
  background:linear-gradient(170deg,#0a2837,#051520 78%);
  border-color:rgba(127,227,207,.22);
  color:var(--text);
  box-shadow:0 36px 80px -40px rgba(0,0,0,.85);
}
.tour--featured .tour__meta{ color:rgba(233,243,246,.55); }
.tour--featured .tour__desc{ color:rgba(233,243,246,.68); }
.tour--featured .tour__price{ border-bottom-color:rgba(233,243,246,.14); }
.tour--featured .tour__price span{ color:rgba(233,243,246,.5); }
.tour--featured .tour__list li{
  color:rgba(233,243,246,.78);
  border-bottom-color:rgba(233,243,246,.08);
}
.tour--featured .tour__list li::before{ color:var(--mint); }

.tour__badge{
  position:absolute; top:-13px; right:26px;
  background:var(--accent); color:#180d07;
  font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  padding:7px 14px; border-radius:100px;
  box-shadow:0 10px 24px -10px rgba(255,122,69,.8);
}

.tours__note{
  margin-top:32px;
  font-size:13.5px; line-height:1.6; color:#5c7b88;
  max-width:760px;
}

/* =========================================================
   PROGRAM / TIMELINE
   ========================================================= */
.program{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(40px,6vw,90px);
  align-items:start;
}
.program .btn{ margin-top:32px; }

.program__facts{
  margin-top:40px;
  max-width:330px;
  border-top:1px solid var(--line);
}
.program__facts li{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:13px 0;
  border-bottom:1px solid var(--line-soft);
}
.program__facts span{
  font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--dim);
}
.program__facts strong{
  font-size:14px; font-weight:500; color:rgba(233,243,246,.82);
}

.timeline{ margin-top:6px; }
.timeline__item{
  display:grid;
  grid-template-columns:74px minmax(0,1fr);
  gap:20px;
  padding:24px 0;
  border-top:1px solid var(--line-soft);
}
.timeline__item:first-child{ border-top:0; padding-top:0; }
.timeline__time{
  font-size:13.5px; font-weight:600; letter-spacing:.06em;
  color:var(--mint); padding-top:4px;
  font-variant-numeric:tabular-nums;
}
.timeline__body h3{
  font-size:19px; font-weight:600; letter-spacing:-.01em; line-height:1.3;
}
.timeline__body p{
  margin-top:8px; font-size:14.5px; line-height:1.65; color:var(--muted);
}

/* =========================================================
   CATCH
   ========================================================= */
.catch{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.catch__card{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.008));
  transition:border-color .3s, transform .35s var(--ease), box-shadow .35s;
}
.catch__card:hover{
  border-color:rgba(127,227,207,.35);
  transform:translateY(-4px);
  box-shadow:0 30px 60px -40px rgba(0,0,0,.9);
}
.catch__media{
  position:relative;
  aspect-ratio:3/2;
  overflow:hidden;
  background:#08161f;
}
.catch__media::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:38%;
  background:linear-gradient(180deg, transparent, rgba(4,16,26,.42));
  pointer-events:none;
}
.catch__media img{
  width:100%; height:100%;
  object-fit:cover;
  filter:brightness(1.05) saturate(1.06);
  transform:scale(1.01);
  transition:transform .7s var(--ease);
}
.catch__card:hover .catch__media img{ transform:scale(1.06); }
.catch__index{
  position:absolute; top:12px; left:12px;
  display:inline-flex; align-items:center; justify-content:center;
  min-width:30px; height:24px; padding:0 9px;
  border-radius:100px;
  background:rgba(4,16,26,.55);
  border:1px solid rgba(233,243,246,.18);
  backdrop-filter:blur(6px);
  font-size:10.5px; letter-spacing:.12em; color:rgba(233,243,246,.88);
  font-variant-numeric:tabular-nums;
}
.catch__body{
  display:flex; flex-direction:column; gap:10px;
  padding:20px 22px 24px;
  flex:1;
}
.catch__head{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
}
.catch__card h3{
  font-size:20px; font-weight:600; letter-spacing:-.02em;
}
.catch__weight{
  font-size:12px; font-weight:600; letter-spacing:.04em; color:var(--mint);
  white-space:nowrap;
}
.catch__text{
  margin:0;
  font-size:13.5px; line-height:1.6; color:var(--muted);
}
.catch__note{
  margin-top:30px; font-size:13px; color:var(--dim); line-height:1.6;
}
.catch__credits{
  margin-top:10px;
  font-size:11.5px; line-height:1.7;
  color:rgba(125,151,163,.9);
  max-width:860px;
}
.catch__credits a{
  color:rgba(233,243,246,.6);
  border-bottom:1px solid rgba(233,243,246,.18);
  transition:color .2s, border-color .2s;
}
.catch__credits a:hover{ color:var(--mint); border-color:var(--mint); }

/* =========================================================
   CAPTAIN
   ========================================================= */
.captain__inner{
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(40px,6vw,86px);
  align-items:center;
}
.captain__photo{
  position:relative;
  margin:0;
  border-radius:24px;
  overflow:hidden;
  border:1px solid rgba(127,227,207,.18);
  aspect-ratio:4/5;
  max-height:560px;
  background:#061722;
  box-shadow:0 40px 90px -60px rgba(0,0,0,.9);
}
.captain__photo img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:50% 22%;
  filter:saturate(.94) contrast(1.03);
}
.captain__photo::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:38%;
  background:linear-gradient(180deg, transparent, rgba(4,16,26,.72));
  pointer-events:none;
}
.captain__tag{
  position:absolute; left:16px; bottom:16px;
  font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(233,243,246,.8);
  background:rgba(4,16,26,.66);
  border:1px solid rgba(233,243,246,.16);
  padding:9px 14px; border-radius:100px;
  backdrop-filter:blur(8px);
}
.captain__quote{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(22px,2.6vw,32px);
  line-height:1.35;
  letter-spacing:-.015em;
  color:#fff;
  margin:0 0 26px;
  position:relative;
  padding-left:26px;
}
.captain__quote::before{
  content:""; position:absolute; left:0; top:.18em; bottom:.18em;
  width:2px; background:linear-gradient(180deg,var(--mint),transparent);
  border-radius:2px;
}
.captain__text p{
  color:var(--muted); font-size:15px; line-height:1.75;
  margin-bottom:14px; max-width:560px;
}
.captain__facts{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:30px; padding-top:26px;
  border-top:1px solid var(--line);
  max-width:520px;
}
.captain__facts li{ display:flex; flex-direction:column; gap:4px; }
.captain__credit{
  margin-top:16px;
  font-size:11px; line-height:1.5;
  color:rgba(125,151,163,.75);
}
.captain__facts strong{ font-size:21px; font-weight:600; letter-spacing:-.02em; }
.captain__facts span{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); }

/* =========================================================
   REVIEWS
   ========================================================= */
.reviews{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.review{
  display:flex; flex-direction:column;
  background:#fff;
  border:1px solid rgba(7,32,44,.09);
  border-radius:22px;
  padding:30px 28px;
  box-shadow:0 22px 50px -40px rgba(7,32,44,.6);
  transition:transform .35s var(--ease), box-shadow .35s;
}
.review:hover{ transform:translateY(-5px); box-shadow:0 34px 70px -40px rgba(7,32,44,.5); }
.review__stars{
  color:#f08a4b; letter-spacing:4px; font-size:15px;
  margin-bottom:18px;
}
.review blockquote{
  font-size:15.5px; line-height:1.7; color:#274653;
  flex:1;
}
.review figcaption{
  margin-top:24px; padding-top:20px;
  border-top:1px solid rgba(7,32,44,.1);
  display:flex; flex-direction:column; gap:3px;
}
.review figcaption strong{ font-size:14.5px; font-weight:600; }
.review figcaption span{ font-size:12.5px; color:#718d99; }

/* =========================================================
   FAQ
   ========================================================= */
.faq{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(40px,6vw,90px);
  align-items:start;
}
.faq__contact{
  display:flex; align-items:center; flex-wrap:wrap; gap:20px;
  margin-top:34px;
}
.faq__phone{
  font-size:15px; font-weight:600; color:var(--text);
  border-bottom:1px solid rgba(233,243,246,.3);
  padding-bottom:2px;
  transition:color .2s, border-color .2s;
}
.faq__phone:hover{ color:var(--mint); border-color:var(--mint); }

.accordion{ border-top:1px solid var(--line); }
.acc{ border-bottom:1px solid var(--line); }
.acc__head{
  width:100%;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:24px 0;
  background:none; border:0; cursor:pointer;
  font-size:18px; font-weight:500; letter-spacing:-.01em;
  text-align:left; color:var(--text);
  transition:color .2s;
}
.acc__head:hover{ color:var(--mint); }
.acc__icon{
  position:relative; width:22px; height:22px; flex:none;
  border:1px solid rgba(233,243,246,.22); border-radius:50%;
  transition:border-color .3s, background .3s;
}
.acc__icon::before,.acc__icon::after{
  content:""; position:absolute; left:50%; top:50%;
  width:9px; height:1.5px; background:currentColor;
  transform:translate(-50%,-50%);
  transition:transform .3s var(--ease), opacity .3s;
}
.acc__icon::after{ transform:translate(-50%,-50%) rotate(90deg); }
.acc.is-open .acc__icon{ background:var(--mint); border-color:var(--mint); color:#04101a; }
.acc.is-open .acc__icon::after{ transform:translate(-50%,-50%) rotate(0deg); opacity:0; }

.acc__panel{
  overflow:hidden;
  max-height:0;
  transition:max-height .42s var(--ease);
}
.acc__inner{
  padding:0 60px 26px 0;
  color:var(--muted); font-size:15px; line-height:1.7;
}
.acc.is-open .acc__panel{ max-height:420px; }

/* =========================================================
   BOOKING
   ========================================================= */
.section--booking{
  background:
    radial-gradient(90% 70% at 10% 0%, rgba(38,140,140,.18), transparent 60%),
    radial-gradient(70% 60% at 90% 100%, rgba(255,122,69,.08), transparent 60%),
    #04121c;
}
.booking{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(40px,6vw,86px);
  align-items:start;
}

.contacts{ margin-top:40px; }
.contacts li{ padding:18px 0; border-top:1px solid var(--line); }
.contacts li:last-child{ border-bottom:1px solid var(--line); }
.contacts__label{
  display:block;
  font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--dim); margin-bottom:7px;
}
.contacts p{ font-size:15px; line-height:1.6; color:var(--muted); }
.contacts a{ color:var(--text); transition:color .2s; }
.contacts a:hover{ color:var(--mint); }

.booking__card{
  background:rgba(255,255,255,.035);
  border:1px solid var(--line);
  border-radius:26px;
  padding:clamp(24px,3vw,38px);
  backdrop-filter:blur(10px);
}

.form__row{
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
  margin-bottom:16px;
}
.field{ display:flex; flex-direction:column; gap:8px; }
.field__label{
  font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--dim); font-weight:600;
}
.field input,.field select{
  height:52px; width:100%;
  padding:0 16px;
  background:rgba(4,16,26,.55);
  border:1px solid var(--line);
  border-radius:12px;
  color:var(--text);
  font-family:inherit; font-size:15px;
  transition:border-color .25s, box-shadow .25s, background .25s;
}
.field input::placeholder{ color:rgba(233,243,246,.32); }
.field input:hover,.field select:hover{ border-color:rgba(160,200,215,.28); }
.field input:focus,.field select:focus{
  outline:none;
  border-color:var(--mint);
  box-shadow:0 0 0 3px rgba(127,227,207,.14);
  background:rgba(4,16,26,.8);
}
.field select{
  appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%237fe3cf' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;
  background-position:right 16px center;
  background-size:12px;
  padding-right:40px;
  cursor:pointer;
}
.field select option{ background:#061521; color:var(--text); }
.field.is-invalid input,.field.is-invalid select{
  border-color:#ff6b6b;
  box-shadow:0 0 0 3px rgba(255,107,107,.12);
}
input[type="date"]{ color-scheme:dark; }

.check{
  display:flex; align-items:flex-start; gap:10px;
  margin:22px 0 22px;
  font-size:12.5px; line-height:1.5; color:var(--muted);
  cursor:pointer;
}
.check input{
  appearance:none; width:18px; height:18px; flex:none; margin-top:1px;
  border:1px solid rgba(160,200,215,.35); border-radius:5px;
  background:rgba(4,16,26,.55);
  cursor:pointer; position:relative;
  transition:background .2s, border-color .2s;
}
.check input:checked{ background:var(--mint); border-color:var(--mint); }
.check input:checked::after{
  content:""; position:absolute; left:5px; top:2px;
  width:6px; height:10px;
  border:solid #04101a; border-width:0 2px 2px 0;
  transform:rotate(42deg);
}
.check.is-invalid input{ border-color:#ff6b6b; }

.form__hint{
  margin-top:14px; text-align:center;
  font-size:12px; color:var(--dim); line-height:1.5;
}

.form-success{
  text-align:center;
  padding:40px 12px;
  animation:fadeUp .5s var(--ease);
}
.form-success svg{ width:64px; height:64px; margin:0 auto 22px; color:var(--mint); }
.form-success h3{ font-size:24px; font-weight:600; letter-spacing:-.02em; }
.form-success p{ margin:14px auto 26px; max-width:360px; font-size:14.5px; color:var(--muted); line-height:1.7; }
.form-success a{ color:var(--mint); }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{
  background:#030b12;
  border-top:1px solid var(--line-soft);
  padding:64px 0 30px;
}
.footer__inner{
  display:grid;
  grid-template-columns:1.4fr .8fr 1fr;
  gap:40px;
}
.footer__brand p{
  margin-top:18px; font-size:13.5px; line-height:1.65; color:var(--dim);
}
.footer__nav{ display:flex; flex-direction:column; gap:10px; }
.footer__nav a{ font-size:14px; color:var(--muted); transition:color .2s; width:fit-content; }
.footer__nav a:hover{ color:var(--mint); }
.footer__contacts{ display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.footer__contacts a{ font-size:14px; color:var(--muted); transition:color .2s; }
.footer__contacts a:hover{ color:var(--mint); }
.footer__bottom{
  grid-column:1/-1;
  margin-top:40px; padding-top:24px;
  border-top:1px solid var(--line-soft);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-size:12.5px; color:#5b7481;
}

/* =========================================================
   TOAST
   ========================================================= */
.toast{
  position:fixed; left:50%; bottom:28px; z-index:300;
  transform:translate(-50%,20px);
  background:var(--mint); color:#04101a;
  padding:14px 26px; border-radius:100px;
  font-size:14px; font-weight:600;
  box-shadow:0 20px 50px -18px rgba(0,0,0,.7);
  opacity:0; pointer-events:none;
  transition:opacity .35s, transform .35s var(--ease);
  max-width:calc(100vw - 40px); text-align:center;
}
.toast.is-visible{ opacity:1; transform:translate(-50%,0); }

/* =========================================================
   REVEAL
   ========================================================= */
.js [data-reveal]{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
  transition-delay:var(--delay,0s);
}
.js [data-reveal].is-in{
  opacity:1;
  transform:none;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1180px){
  .nav{ gap:18px; }
  .header__phone{ display:none; }
}

@media (max-width:1100px){
  .burger{ display:block; }

  .nav{
    position:fixed; inset:0; z-index:110;
    flex-direction:column; justify-content:center; align-items:flex-start;
    gap:6px;
    padding:110px clamp(24px,8vw,60px) 60px;
    background:rgba(4,16,26,.97);
    backdrop-filter:blur(20px);
    clip-path:inset(0 0 100% 0);
    transition:clip-path .45s var(--ease);
    overflow-y:auto;
  }
  .nav.is-open{ clip-path:inset(0 0 0 0); }
  .nav__link{
    font-size:clamp(24px,5vw,32px);
    font-weight:500; letter-spacing:-.02em;
    padding:10px 0; width:100%;
    border-bottom:1px solid var(--line-soft);
    color:var(--text);
  }
  .nav__link::after{ display:none; }
  .nav__link--cta{
    border:0; border-radius:0; background:none; padding:14px 0 10px;
    color:var(--accent); font-weight:600;
  }
  .nav__link--cta:hover{ background:none; color:#ff9f78; }

  .nav__foot{
    display:flex; flex-direction:column; gap:7px;
    margin-top:36px; padding-top:24px;
    border-top:1px solid var(--line-soft);
    width:100%;
  }
  .nav__foot a{ font-size:16px; font-weight:600; color:var(--text); width:fit-content; }
  .nav__foot a:hover{ color:var(--mint); }
  .nav__foot p{ font-size:12.5px; line-height:1.5; color:var(--dim); max-width:280px; }

  .program,.faq,.booking,.captain__inner{
    grid-template-columns:1fr;
    gap:48px;
  }
  .section__head--sticky{ position:static; }
  .captain__photo{ max-width:420px; }
  .features{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tours{ grid-template-columns:1fr; max-width:560px; margin-inline:auto; }
  .catch{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reviews{ grid-template-columns:1fr; max-width:620px; margin-inline:auto; }
  .tours__note{ max-width:560px; margin-inline:auto; }
  .tour--featured{ transform:none; margin-top:16px; }
  .boat{ display:none; }
}

@media (max-width:820px){
  .hero{ padding-top:120px; padding-bottom:90px; }
  .hero__veil{
    background:
      linear-gradient(180deg, rgba(4,16,26,.74) 0%, rgba(4,16,26,.48) 35%, rgba(4,16,26,.82) 100%),
      linear-gradient(90deg, rgba(4,16,26,.7), rgba(4,16,26,.16));
  }
  .hero__scroll{ display:none; }
}

@media (max-width:640px){
  body{ font-size:16px; }
  .header{ padding:14px 0; }
  .logo{ font-size:12.5px; letter-spacing:.12em; }
  .logo__mark{ width:30px; height:30px; }

  .hero{ min-height:auto; padding:120px 0 72px; }
  .hero__title{ max-width:none; }
  .hero__title em{ white-space:normal; }
  .hero__lead{ margin-top:22px; }
  .hero__actions{ margin-top:30px; }
  .hero__actions .btn{ flex:1 1 100%; }
  .hero__stats{
    grid-template-columns:1fr 1fr;
    gap:22px 16px;
    margin-top:44px;
  }

  .section{ padding:72px 0; }
  .features{ grid-template-columns:1fr; }
  .catch{ grid-template-columns:1fr; }

  .tour{ padding:26px 22px; }
  .booking__card{ padding:22px 18px; border-radius:20px; }
  .form__row{ grid-template-columns:1fr; gap:14px; }
  .contacts li{ padding:15px 0; }

  .footer__inner{ grid-template-columns:1fr; gap:32px; }
  .footer__bottom{ flex-direction:column; gap:6px; }

  .captain__facts{ gap:12px; }
  .captain__facts strong{ font-size:18px; }

  .acc__head{ font-size:16px; padding:20px 0; gap:16px; }
  .acc__inner{ padding-right:24px; font-size:14.5px; }

  .marquee__track{ font-size:11px; letter-spacing:.24em; gap:26px; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .js [data-reveal]{ opacity:1; transform:none; }
}
