/* =========================================================
   SOMBER TRAVEL — "Ночной рейс" · light + dark theme
   ========================================================= */

:root,
[data-theme="dark"]{
  --bg:#06070c; --bg-2:#0a0c15;
  --text:#eef1f8; --muted:#99a2ba; --faint:#5f6884;
  --gold:#e7c58a; --teal:#7fe3d6; --violet:#9a8bf2;
  --grad:linear-gradient(100deg,#f6e4ba 0%,#e7c58a 46%,#c99f52 100%);

  --glass:rgba(255,255,255,.045); --glass-2:rgba(255,255,255,.07);
  --border:rgba(255,255,255,.10); --border-2:rgba(255,255,255,.18);
  --sheen1:rgba(255,255,255,.10); --sheen2:rgba(255,255,255,.04);
  --input-bg:rgba(255,255,255,.03);
  --nav-bg:rgba(8,10,16,.72);
  --chip:linear-gradient(140deg,rgba(231,197,138,.16),rgba(154,139,242,.10));
  --bubble:radial-gradient(circle at 30% 26%,rgba(255,255,255,.30),rgba(255,255,255,.12) 44%,rgba(255,255,255,.04) 78%);
  --bubble-bd:rgba(255,255,255,.20);
  --plane-c:#dfe6f5; --star-op:.55;
  --sky:radial-gradient(1200px 700px at 78% -8%,rgba(154,139,242,.12),transparent 60%),radial-gradient(900px 600px at 6% 12%,rgba(127,227,214,.08),transparent 60%),linear-gradient(180deg,#06070c,#0a0c15 42%,#06070c);

  --ic-a:#f6e4ba; --ic-b:#e7c58a; --ic-c:#cfa852;
}

[data-theme="light"]{
  --bg:#f4f1ea; --bg-2:#eae5da;
  --text:#1a1c24; --muted:#5b6274; --faint:#9096a6;
  --gold:#b07d22; --teal:#1f9d8c; --violet:#6a56c8;
  --grad:linear-gradient(100deg,#caa24f 0%,#b0791f 48%,#8a5e12 100%);

  --glass:rgba(255,255,255,.55); --glass-2:rgba(255,255,255,.72);
  --border:rgba(28,30,44,.10); --border-2:rgba(28,30,44,.16);
  --sheen1:rgba(255,255,255,.65); --sheen2:rgba(255,255,255,.2);
  --input-bg:rgba(255,255,255,.6);
  --nav-bg:rgba(244,241,234,.78);
  --chip:linear-gradient(140deg,rgba(176,125,34,.14),rgba(106,86,200,.12));
  --bubble:radial-gradient(circle at 30% 26%,rgba(255,255,255,.7),rgba(176,125,34,.10) 52%,rgba(28,30,44,.03) 82%);
  --bubble-bd:rgba(28,30,44,.12);
  --plane-c:#4a5a78; --star-op:0;
  --sky:radial-gradient(1200px 700px at 80% -10%,rgba(106,86,200,.14),transparent 60%),radial-gradient(900px 640px at 4% 8%,rgba(31,157,140,.14),transparent 60%),linear-gradient(180deg,#f8f5ef,#eef0f5 45%,#f4f1ea);

  --ic-a:#c99a3a; --ic-b:#a9760f; --ic-c:#8a5e12;
  --shadow:0 30px 70px -34px rgba(40,36,60,.35);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ margin:0; font-family:var(--font-sans,"Manrope",system-ui,sans-serif); color:var(--text); background:var(--bg); line-height:1.6; overflow-x:hidden; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; font-synthesis:none; transition:background .45s ease, color .45s ease; }
:root{
  --radius:20px; --radius-sm:14px; --shadow:0 30px 80px -30px rgba(0,0,0,.75); --maxw:1180px; --ease:cubic-bezier(.22,.61,.36,1);
  --font-serif:"Prata", "Playfair Display", Georgia, serif;
  --font-sans:"Manrope", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
b{ font-weight:700; }
.svg-defs{ position:absolute; }
#ig stop:nth-child(1){ stop-color:var(--ic-a); }
#ig stop:nth-child(2){ stop-color:var(--ic-b); }
#ig stop:nth-child(3){ stop-color:var(--ic-c); }
::selection{ background:rgba(231,197,138,.28); color:#111; }

.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(18px,4vw,40px); }
.container--narrow{ max-width:820px; }
.grad{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; padding-bottom:.14em; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.ico{ width:100%; height:100%; fill:none; stroke:url(#ig); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }

/* =========================================================
   Preloader
   ========================================================= */
.preloader{
  position:fixed; inset:0; z-index:9999; display:grid; place-items:center;
  background:radial-gradient(700px 500px at 50% 40%,#12141f,var(--bg));
  animation:plOut .7s var(--ease) 2.05s forwards;
}
[data-theme="light"] .preloader{ background:radial-gradient(700px 500px at 50% 40%,#fff,var(--bg)); }
.preloader.hide{ display:none !important; }
@keyframes plOut{ to{ opacity:0; visibility:hidden; transform:scale(1.04); } }
.pl__inner{ text-align:center; animation:plIn .8s var(--ease) both; }
@keyframes plIn{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:none; } }
.pl__orbit{ position:relative; width:170px; height:170px; margin:0 auto 26px; }
.pl__ring{ position:absolute; inset:22px; border-radius:50%; border:1px dashed var(--border-2); animation:spin 8s linear infinite; }
.pl__ring--2{ inset:2px; border-style:solid; border-color:transparent; border-top-color:var(--gold); animation:spin 1.5s linear infinite; }
.pl__mark{ position:absolute; inset:0; display:grid; place-items:center; color:var(--gold); filter:drop-shadow(0 6px 20px rgba(231,197,138,.5)); animation:pulse 1.8s ease-in-out infinite; }
.pl__ico{ position:absolute; top:50%; left:50%; width:40px; height:40px; margin:-20px 0 0 -20px; display:grid; place-items:center; border-radius:12px; color:var(--gold);
  background:var(--chip); border:1px solid var(--border); animation:orbit 4s linear infinite; animation-delay:var(--d,0s); }
@keyframes orbit{ from{ transform:rotate(0) translateX(84px) rotate(0);} to{ transform:rotate(360deg) translateX(84px) rotate(-360deg);} }
@keyframes spin{ to{ transform:rotate(360deg);} }
.pl__brand{ font-family:var(--font-serif); font-weight:700; font-size:32px; letter-spacing:1px; }
.pl__brand .pl__sep{ color:var(--gold); font-weight:300; margin:0 10px; opacity:.8; }
.pl__brand b{ font-weight:500; font-style:italic; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.pl__tag{ color:var(--muted); font-size:13px; letter-spacing:2px; text-transform:uppercase; margin-top:8px; }
.pl__bar{ width:180px; height:3px; border-radius:3px; background:var(--border); margin:22px auto 0; overflow:hidden; }
.pl__bar i{ display:block; height:100%; width:0; background:var(--grad); border-radius:3px; animation:load 2s var(--ease) forwards; }
@keyframes load{ to{ width:100%; } }

/* =========================================================
   Sky background
   ========================================================= */
.sky{ position:fixed; inset:0; z-index:-1; overflow:hidden; background:var(--sky); transition:background .45s ease; }
.glow{ position:absolute; border-radius:50%; filter:blur(90px); opacity:.5; animation:drift 24s var(--ease) infinite alternate; }
.glow--gold{ width:520px;height:520px; left:-8%; top:-6%; background:radial-gradient(circle,rgba(231,197,138,.34),transparent 70%); }
.glow--teal{ width:480px;height:480px; right:-6%; top:16%; background:radial-gradient(circle,rgba(127,227,214,.20),transparent 70%); animation-delay:-8s; }
.glow--violet{ width:620px;height:620px; left:28%; bottom:-20%; background:radial-gradient(circle,rgba(154,139,242,.20),transparent 70%); animation-delay:-15s; }
[data-theme="light"] .glow{ opacity:.7; filter:blur(80px); }
@keyframes drift{ from{ transform:translate3d(0,0,0) scale(1);} to{ transform:translate3d(40px,50px,0) scale(1.12);} }

.stars{ position:absolute; inset:0; opacity:var(--star-op); animation:twinkle 6s ease-in-out infinite alternate;
  background-repeat:no-repeat;
  background-image:radial-gradient(1.4px 1.4px at 12% 18%,#fff,transparent),radial-gradient(1.2px 1.2px at 26% 62%,#fff,transparent),radial-gradient(1px 1px at 38% 28%,#cfe6ff,transparent),radial-gradient(1.5px 1.5px at 52% 74%,#fff,transparent),radial-gradient(1px 1px at 63% 12%,#ffe9c2,transparent),radial-gradient(1.3px 1.3px at 71% 48%,#fff,transparent),radial-gradient(1px 1px at 83% 26%,#fff,transparent),radial-gradient(1.5px 1.5px at 90% 66%,#cfe6ff,transparent),radial-gradient(1px 1px at 45% 46%,#fff,transparent),radial-gradient(1.2px 1.2px at 8% 82%,#fff,transparent),radial-gradient(1px 1px at 30% 90%,#ffe9c2,transparent),radial-gradient(1.3px 1.3px at 96% 40%,#fff,transparent); }
@keyframes twinkle{ from{ opacity:calc(var(--star-op) * .6);} to{ opacity:var(--star-op);} }

.plane{ position:absolute; left:0; width:100%; }
.plane--1{ top:18%; transform:rotate(-13deg); }
.plane--2{ top:40%; transform:rotate(-8deg);  opacity:.6; }
.plane--3{ top:63%; transform:rotate(-17deg); opacity:.9; }
.plane--4{ top:30%; transform:rotate(-5deg);  opacity:.5; }
.plane--5{ top:78%; transform:rotate(-11deg); opacity:.7; }
.plane__mv{ position:absolute; left:0; display:inline-flex; align-items:center; animation:fly 16s linear infinite; }
.plane--2 .plane__mv{ animation-duration:21s; animation-delay:-7s; }
.plane--3 .plane__mv{ animation-duration:13s; animation-delay:-3s; }
.plane--4 .plane__mv{ animation-duration:25s; animation-delay:-15s; }
.plane--5 .plane__mv{ animation-duration:18s; animation-delay:-10s; }
/* след — за хвостом (слева от самолёта, направление полёта — вправо) */
.plane .trail{ display:block; width:min(32vw,340px); height:2px; border-radius:2px; background:linear-gradient(90deg,transparent,rgba(231,197,138,.06) 26%,var(--plane-c)); filter:blur(.3px); opacity:.5; }
/* нос самолёта — по направлению полёта */
.plane svg{ color:var(--plane-c); margin-left:-3px; transform:rotate(90deg); filter:drop-shadow(0 3px 8px rgba(0,0,0,.4)); flex:none; }
@keyframes fly{ from{ transform:translateX(-45vw);} to{ transform:translateX(150vw);} }

.bubbles{ position:absolute; inset:0; }
.bubble{ position:absolute; bottom:-8vh; border-radius:50%; pointer-events:none; background:var(--bubble); border:1px solid var(--bubble-bd); box-shadow:inset -4px -5px 12px rgba(255,255,255,.06), inset 3px 4px 10px rgba(255,255,255,.10), 0 0 16px rgba(231,197,138,.05); animation:rise linear infinite; }
.bubble::after{ content:""; position:absolute; top:15%; left:20%; width:26%; height:26%; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.75),transparent 72%); }
@keyframes rise{ 0%{ transform:translateY(0) translateX(0) scale(.5); opacity:0; } 12%{ opacity:.55; } 88%{ opacity:.5; } 100%{ transform:translateY(-118vh) translateX(var(--dx,24px)) scale(1); opacity:0; } }

.grain{ position:absolute; inset:-50%; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E"); opacity:.03; mix-blend-mode:overlay; pointer-events:none; }
[data-theme="light"] .grain{ opacity:.02; }

/* =========================================================
   Glass + buttons
   ========================================================= */
.glass{ position:relative; background:var(--glass); border:1px solid var(--border); border-radius:var(--radius); backdrop-filter:blur(18px) saturate(120%); -webkit-backdrop-filter:blur(18px) saturate(120%); box-shadow:var(--shadow), inset 0 1px 0 var(--sheen2); overflow:hidden; }
.glass::before{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:linear-gradient(135deg,var(--sheen1),transparent 32%,transparent 70%,var(--sheen2)); }

.btn{ --pad:12px 20px; display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:var(--pad); font-family:var(--font-sans); font-weight:600; font-size:15px; letter-spacing:.2px; border-radius:999px; border:1px solid transparent; cursor:pointer; white-space:nowrap; line-height:1; transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease), color .3s; }
.btn svg{ flex:none; }
.btn--lg{ --pad:16px 28px; font-size:16px; }
.btn--solid{ color:#1a130a; background:var(--grad); box-shadow:0 12px 30px -10px rgba(231,197,138,.55), inset 0 1px 0 rgba(255,255,255,.4); }
[data-theme="light"] .btn--solid{ color:#fff; box-shadow:0 12px 26px -10px rgba(176,125,34,.6); }
.btn--solid:hover{ transform:translateY(-2px); box-shadow:0 18px 40px -12px rgba(231,197,138,.7), inset 0 1px 0 rgba(255,255,255,.5); }
.btn--glass{ color:var(--text); background:var(--glass-2); border-color:var(--border-2); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.btn--glass:hover{ transform:translateY(-2px); border-color:rgba(176,125,34,.5); }
.btn--ghost{ color:var(--muted); background:transparent; border-color:var(--border); }
.btn--ghost:hover{ color:var(--text); border-color:var(--border-2); }
.btn--tg svg{ color:#4fb6e8; }
.btn--solid.btn--tg svg{ color:currentColor; }

/* =========================================================
   Nav
   ========================================================= */
.nav{ position:fixed; top:0; left:0; right:0; z-index:100; border-bottom:1px solid transparent; transition:background .35s var(--ease), border-color .35s; }
.nav.is-stuck{ background:var(--nav-bg); backdrop-filter:blur(16px) saturate(130%); -webkit-backdrop-filter:blur(16px) saturate(130%); border-bottom-color:var(--border); }
.nav__inner{ display:flex; align-items:center; gap:22px; height:74px; }
.brand{ display:inline-flex; align-items:center; gap:11px; }
.brand__mark{ color:var(--gold); display:inline-flex; filter:drop-shadow(0 4px 12px rgba(231,197,138,.35)); }
.brand__text{ font-size:16px; letter-spacing:2.5px; line-height:1; display:inline-flex; align-items:center; }
.brand__text b{ font-weight:800; }
.brand__text i{ font-style:normal; font-weight:300; color:var(--muted); }
.brand__sep{ color:var(--gold); font-weight:300; margin:0 7px; opacity:.85; transform:translateY(-1px); }
.nav__links{ display:flex; gap:24px; margin-left:auto; }
.nav__links a{ font-size:14.5px; color:var(--muted); font-weight:500; position:relative; padding:6px 0; transition:color .25s; }
.nav__links a::after{ content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:var(--grad); transition:width .3s var(--ease); }
.nav__links a:hover{ color:var(--text); }
.nav__links a:hover::after{ width:100%; }
.nav__actions{ display:flex; align-items:center; gap:10px; margin-left:18px; }
.theme-btn{ width:40px; height:40px; border-radius:12px; border:1px solid var(--border); background:var(--glass); color:var(--text); cursor:pointer; display:grid; place-items:center; transition:border-color .25s, transform .25s, background .25s; }
.theme-btn:hover{ border-color:var(--border-2); transform:translateY(-1px); }
.theme-btn .i-sun{ display:none; }
[data-theme="light"] .theme-btn .i-sun{ display:block; color:var(--gold); }
[data-theme="light"] .theme-btn .i-moon{ display:none; }
[data-theme="dark"] .theme-btn .i-moon{ display:block; color:var(--gold); }
.nav__burger{ display:none; position:relative; width:46px; height:46px; border:1px solid var(--border-2); border-radius:14px; background:var(--glass); cursor:pointer; padding:0; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); transition:border-color .25s, background .25s, box-shadow .25s; }
.nav__burger:hover,.nav__burger[aria-expanded="true"]{ border-color:rgba(231,197,138,.5); box-shadow:0 8px 24px -10px rgba(231,197,138,.5); }
.nav__burger span{ position:absolute; left:13px; right:13px; height:2px; border-radius:2px; background:var(--gold); transition:transform .32s var(--ease), opacity .2s, right .32s var(--ease); }
.nav__burger span:nth-child(1){ top:16px; }
.nav__burger span:nth-child(2){ top:22px; right:19px; }
.nav__burger span:nth-child(3){ top:28px; }
.nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; right:13px; }
.nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }
.nav__mobile-cta{ display:none; }

/* =========================================================
   Hero
   ========================================================= */
.hero{ padding:clamp(116px,16vh,176px) 0 90px; }
.hero__grid{ display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(30px,5vw,64px); }
.hero__badge{ display:inline-flex; align-items:center; gap:9px; padding:8px 16px; border-radius:999px; background:var(--glass); border:1px solid var(--border); font-size:13px; color:var(--muted); letter-spacing:.4px; margin-bottom:26px; backdrop-filter:blur(10px); }
.hero__badge .dot{ width:8px; height:8px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 4px rgba(127,227,214,.18); animation:pulse 2.4s infinite; }
@keyframes pulse{ 0%,100%{opacity:1} 50%{opacity:.4} }
.hero__title{ font-family:var(--font-serif); font-weight:700; font-size:clamp(44px,7vw,84px); line-height:1.02; letter-spacing:-.5px; margin:0 0 24px; }
.hero__title .grad{ font-style:italic; font-weight:600; }
.hero__sub{ font-size:clamp(16px,2.1vw,19px); color:var(--muted); max-width:540px; margin:0 0 34px; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:30px; }
.hero__tags{ display:flex; flex-direction:column; gap:9px; color:var(--faint); font-size:13.5px; }

.hero__pass{ padding:22px 24px; animation:cardFloat 7s var(--ease) infinite alternate; box-shadow:var(--shadow), inset 0 1px 0 var(--sheen1), 0 0 60px -20px rgba(231,197,138,.3); }
@keyframes cardFloat{ from{ transform:translateY(0) rotate(-1.4deg);} to{ transform:translateY(-14px) rotate(1.4deg);} }
.bp__top{ display:flex; justify-content:space-between; align-items:center; font-size:11px; letter-spacing:1.2px; color:var(--muted); }
.bp__top b{ color:var(--text); }
.bp__cls{ color:#1a130a; background:var(--grad); padding:3px 9px; border-radius:7px; font-weight:800; letter-spacing:.5px; }
[data-theme="light"] .bp__cls{ color:#fff; }
.bp__fly{ display:flex; align-items:center; justify-content:space-between; margin:18px 0 8px; }
.bp__pt b{ font-family:var(--font-serif); font-size:28px; font-weight:700; display:block; line-height:1; }
.bp__pt span{ font-size:11px; color:var(--faint); }
.bp__pt--r{ text-align:right; }
.bp__path{ flex:1; display:flex; align-items:center; gap:6px; padding:0 14px; color:var(--gold); }
.bp__path i{ flex:1; height:0; border-top:1.5px dashed rgba(231,197,138,.5); }
.bp__perf{ height:1px; margin:16px -24px; border-top:1.5px dashed var(--border-2); position:relative; }
.bp__perf::before,.bp__perf::after{ content:""; position:absolute; top:-9px; width:18px; height:18px; border-radius:50%; background:var(--bg); }
.bp__perf::before{ left:-9px; } .bp__perf::after{ right:-9px; }
.bp__bottom{ display:flex; align-items:flex-end; justify-content:space-between; }
.bp__label{ font-size:11px; color:var(--faint); display:block; }
.bp__name{ font-family:var(--font-serif); font-size:19px; font-weight:600; }
.bp__price{ text-align:right; }
.bp__price s{ display:block; color:var(--faint); font-size:12px; }
.bp__price b{ font-size:23px; }

/* =========================================================
   Sections
   ========================================================= */
.section{ padding:clamp(66px,10vh,116px) 0; }
.section--tight{ padding-block:clamp(48px,8vh,88px); }
.section__head{ max-width:720px; margin:0 auto clamp(40px,6vh,60px); text-align:center; }
.eyebrow{ display:inline-block; font-size:12.5px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:16px; font-weight:700; }
.section__title{ font-family:var(--font-serif); font-weight:700; font-size:clamp(32px,5vw,52px); line-height:1.18; letter-spacing:-.5px; margin:0; }
.section__title .grad{ font-style:italic; font-weight:600; }
.section__lead{ color:var(--muted); font-size:clamp(15px,2vw,18px); margin:18px auto 0; max-width:560px; }

/* =========================================================
   Route
   ========================================================= */
.route{ position:relative; }
.route__rail{ position:absolute; left:0; right:0; top:38px; height:2px; background:repeating-linear-gradient(90deg,rgba(231,197,138,.55) 0 9px,transparent 9px 20px); }
[data-theme="light"] .route__rail{ background:repeating-linear-gradient(90deg,rgba(176,125,34,.5) 0 9px,transparent 9px 20px); }
.route__plane{ position:absolute; top:50%; left:0; color:var(--gold); transform:translate(-50%,-50%); filter:drop-shadow(0 4px 10px rgba(0,0,0,.4)); animation:taxi 9s var(--ease) infinite; }
.route__plane svg{ display:block; transform:rotate(90deg); } /* нос — по направлению полёта */
.route__plane::after{ content:""; position:absolute; right:100%; top:50%; width:70px; height:2px; transform:translateY(-50%); background:linear-gradient(90deg,transparent,var(--gold)); opacity:.5; }
@keyframes taxi{ 0%{ left:2%; } 92%,100%{ left:98%; } }
.waypoints{ position:relative; list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; z-index:1; }
.wp{ text-align:center; padding:0 6px; }
.wp__pin{ width:78px; height:78px; margin:0 auto 20px; border-radius:22px; display:grid; place-items:center; padding:20px; background:var(--chip); border:1px solid var(--border-2); box-shadow:0 18px 40px -18px rgba(231,197,138,.4), inset 0 1px 0 var(--sheen1); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); position:relative; transition:transform .4s var(--ease); }
.wp:hover .wp__pin{ transform:translateY(-6px) scale(1.04); }
.wp__step{ display:block; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.wp h3{ font-size:19px; margin:0 0 8px; font-weight:700; }
.wp p{ color:var(--muted); font-size:14px; margin:0 auto; max-width:230px; }

/* =========================================================
   Why (premium guarantee panel)
   ========================================================= */
.promise{ position:relative; max-width:900px; margin:0 auto; text-align:center; padding:clamp(42px,6vw,76px) clamp(26px,5vw,64px); border:1px solid var(--border-2); border-radius:26px; background:var(--glass); backdrop-filter:blur(16px) saturate(120%); -webkit-backdrop-filter:blur(16px) saturate(120%); box-shadow:var(--shadow), inset 0 1px 0 var(--sheen1); }
.promise::before{ content:""; position:absolute; inset:13px; border:1px solid rgba(231,197,138,.3); border-radius:18px; pointer-events:none; }
.promise__seal{ display:inline-flex; align-items:center; gap:12px; font-size:12px; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:28px; }
.promise__seal::before,.promise__seal::after{ content:""; width:32px; height:1px; }
.promise__seal::before{ background:linear-gradient(90deg,transparent,var(--gold)); }
.promise__seal::after{ background:linear-gradient(90deg,var(--gold),transparent); }
.promise__claim{ font-family:var(--font-serif); font-weight:400; font-size:clamp(34px,5.2vw,60px); line-height:1.14; letter-spacing:-.4px; margin:0 0 38px; }
.promise__row{ display:flex; justify-content:center; max-width:720px; margin:0 auto 32px; }
.promise__item{ flex:1; padding:6px 24px; position:relative; }
.promise__item + .promise__item::before{ content:""; position:absolute; left:0; top:6px; bottom:6px; width:1px; background:var(--border-2); }
.promise__item .ico{ display:block; width:32px; height:32px; margin:0 auto 14px; }
.promise__item b{ display:block; font-family:var(--font-serif); font-weight:400; font-size:26px; color:var(--gold); margin-bottom:5px; }
.promise__item span{ font-size:13.5px; color:var(--muted); line-height:1.4; }
.promise__proof{ font-size:14.5px; color:var(--faint); margin:0 0 30px; }
.promise__proof b{ color:var(--text); font-weight:600; }
.promise__cta{ margin:0 auto; }

/* =========================================================
   Offers (boarding passes)
   ========================================================= */
.passes{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.pass{ display:grid; grid-template-columns:1fr 128px; transition:transform .4s var(--ease); }
.pass:hover{ transform:translateY(-6px); }
.pass__main{ padding:24px 26px; }
.pass__head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.pass__label{ font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--faint); }
.pass__stars{ color:var(--gold); font-size:12px; letter-spacing:1.5px; }
.pass__city{ font-family:var(--font-serif); font-size:30px; font-weight:700; line-height:1.05; }
.pass__city small{ display:block; font-family:var(--font-sans); font-size:12.5px; font-weight:500; color:var(--muted); letter-spacing:.3px; margin-top:2px; }
.pass__fly{ display:flex; align-items:center; gap:8px; margin:14px 0 12px; color:var(--gold); font-size:11px; text-transform:uppercase; letter-spacing:1px; }
.pass__fly span{ color:var(--faint); }
.pass__fly i{ flex:1; height:0; border-top:1.5px dashed rgba(231,197,138,.45); }
.pass__meta{ color:var(--muted); font-size:13.5px; margin:0; }
.pass__stub{ position:relative; border-left:2px dashed var(--border-2); padding:24px 18px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; text-align:center; background:var(--sheen2); }
.pass__stub::before,.pass__stub::after{ content:""; position:absolute; left:-10px; width:18px; height:18px; border-radius:50%; background:var(--bg); }
.pass__stub::before{ top:-9px; } .pass__stub::after{ bottom:-9px; }
.pass__tag{ font-size:12px; font-weight:800; color:#1a130a; background:var(--grad); padding:4px 10px; border-radius:8px; margin-bottom:6px; }
[data-theme="light"] .pass__tag{ color:#fff; }
.pass__stub s{ color:var(--faint); font-size:13px; }
.pass__stub b{ font-size:26px; font-weight:700; }
.pass__code{ margin-top:10px; width:70%; height:26px; background:repeating-linear-gradient(90deg,var(--text) 0 2px,transparent 2px 4px,var(--text) 4px 5px,transparent 5px 8px); opacity:.35; }
.offers__note{ text-align:center; color:var(--muted); margin-top:34px; font-size:15px; }

/* =========================================================
   Reviews (Telegram proof CTA)
   ========================================================= */
.tgproof{ max-width:700px; margin:0 auto; text-align:center; padding:clamp(40px,6vw,66px) clamp(26px,5vw,56px); position:relative; }
.tgproof::after{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:radial-gradient(360px 200px at 50% -10%,rgba(55,174,226,.16),transparent 70%); }
.tgproof__ic{ position:relative; z-index:1; width:74px; height:74px; border-radius:22px; display:grid; place-items:center; margin:0 auto 24px; color:#fff; background:linear-gradient(135deg,#37aee2,#1e96c8); box-shadow:0 16px 40px -12px rgba(55,174,226,.6); }
.tgproof__text{ position:relative; z-index:1; color:var(--muted); font-size:clamp(15px,2vw,17.5px); line-height:1.6; max-width:540px; margin:0 auto 30px; }
.tgproof__btn{ position:relative; z-index:1; margin:0 auto; }
.tgproof__ticks{ position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:10px 22px; justify-content:center; margin-top:26px; font-size:13.5px; color:var(--faint); }
.ava[data-c="2"]{ background:linear-gradient(135deg,#7fe3d6,#4fb6e8); }
.ava[data-c="3"]{ background:linear-gradient(135deg,#9a8bf2,#d9b6f0); }
.ava[data-c="4"]{ background:linear-gradient(135deg,#e0a15a,#e7c58a); }
.ava[data-c="5"]{ background:linear-gradient(135deg,#8fc07a,#7fe3d6); }
.ava[data-c="6"]{ background:linear-gradient(135deg,#e0728a,#e7c58a); }

/* =========================================================
   FAQ
   ========================================================= */
.faq{ display:flex; flex-direction:column; gap:12px; }
.faq__item{ padding:0; }
.faq__item summary{ list-style:none; cursor:pointer; padding:20px 24px; font-size:17px; font-weight:600; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{ content:"+"; font-weight:400; font-size:26px; color:var(--gold); transition:transform .3s var(--ease); line-height:1; }
.faq__item[open] summary::after{ transform:rotate(45deg); }
.faq__body{ padding:0 24px 22px; }
.faq__body p{ margin:0; color:var(--muted); font-size:15px; }

/* =========================================================
   Lead form
   ========================================================= */
.lead__card{ display:grid; grid-template-columns:1fr 1fr; overflow:hidden; }
.lead__info{ padding:clamp(32px,4vw,52px); border-right:1px solid var(--border); }
.lead__info .eyebrow{ margin-bottom:14px; }
.lead__title{ font-family:var(--font-serif); font-weight:700; font-size:clamp(28px,3.4vw,40px); line-height:1.12; margin:0 0 18px; }
.lead__title .grad{ font-style:italic; font-weight:600; }
.lead__text{ color:var(--muted); font-size:15.5px; margin:0 0 26px; }
.lead__ticks{ list-style:none; margin:0 0 28px; padding:0; display:flex; flex-direction:column; gap:12px; }
.lead__ticks li{ position:relative; padding-left:30px; color:var(--text); font-size:15px; }
.lead__ticks li::before{ content:"✓"; position:absolute; left:0; top:-1px; width:20px; height:20px; border-radius:50%; display:grid; place-items:center; font-size:11px; color:#12100b; background:var(--grad); }
[data-theme="light"] .lead__ticks li::before{ color:#fff; }
.lead__tg{ width:100%; }
.lead__form{ padding:clamp(32px,4vw,52px); display:flex; flex-direction:column; gap:16px; position:relative; }
.lead__perf{ position:absolute; left:0; top:20px; bottom:20px; width:0; border-left:1.5px dashed var(--border-2); }
.field{ display:flex; flex-direction:column; gap:7px; }
.field > span{ font-size:13px; color:var(--muted); letter-spacing:.2px; }
.field > span em{ color:var(--gold); font-style:normal; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.field input, .field textarea{ font-family:var(--font-sans); font-size:15px; color:var(--text); background:var(--input-bg); border:1px solid var(--border); border-radius:12px; padding:13px 15px; transition:border-color .25s, background .25s, box-shadow .25s; width:100%; resize:vertical; }
.field input::placeholder, .field textarea::placeholder{ color:var(--faint); }
.field input:focus, .field textarea:focus{ outline:none; border-color:rgba(176,125,34,.55); box-shadow:0 0 0 4px rgba(231,197,138,.12); }
.field.invalid input{ border-color:#e07a7a; box-shadow:0 0 0 4px rgba(224,122,122,.12); }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.lead__submit{ margin-top:6px; }
.spinner{ width:18px; height:18px; border:2px solid rgba(26,19,10,.35); border-top-color:#1a130a; border-radius:50%; display:none; animation:spin .7s linear infinite; }
.lead__form.is-sending .lead__submit-txt{ opacity:.6; }
.lead__form.is-sending .spinner{ display:inline-block; }
.lead__policy{ font-size:12px; color:var(--faint); text-align:center; margin:2px 0 0; }
.lead__status{ font-size:14.5px; text-align:center; margin-top:4px; display:none; padding:12px 16px; border-radius:12px; }
.lead__status.show{ display:block; }
.lead__status.ok{ color:#178a72; background:rgba(127,227,214,.12); border:1px solid rgba(127,227,214,.3); }
.lead__status.err{ color:#c0504a; background:rgba(224,122,122,.10); border:1px solid rgba(224,122,122,.3); }

/* =========================================================
   Footer + FAB
   ========================================================= */
.footer{ border-top:1px solid var(--border); padding-top:60px; margin-top:20px; background:var(--sheen2); }
.footer__inner{ display:grid; grid-template-columns:1.4fr 1fr auto; gap:40px; align-items:start; padding-bottom:40px; }
.footer__brand{ display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.footer__brand p{ color:var(--muted); font-size:14px; max-width:340px; margin:6px 0 0; }
.footer__nav{ display:flex; flex-direction:column; gap:12px; }
.footer__nav a{ color:var(--muted); font-size:14.5px; transition:color .2s; }
.footer__nav a:hover{ color:var(--gold); }
.footer__bottom{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; border-top:1px solid var(--border); padding-block:22px 30px; font-size:12.5px; color:var(--faint); }
.fab{ position:fixed; right:22px; bottom:22px; z-index:90; width:56px; height:56px; border-radius:50%; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,#37aee2,#1e96c8); box-shadow:0 14px 34px -8px rgba(55,174,226,.6); transition:transform .3s var(--ease); animation:fabIn .5s var(--ease) 2.6s both; }
.fab:hover{ transform:scale(1.08) translateY(-2px); }
@keyframes fabIn{ from{ transform:scale(0); opacity:0;} to{ transform:scale(1); opacity:1;} }

/* Reveal */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1080px){
  .hero__grid{ grid-template-columns:1fr; }
  .hero__pass{ display:none; }
  .waypoints{ grid-template-columns:repeat(2,1fr); gap:36px 24px; }
  .route__rail{ display:none; }
  .why2{ grid-template-columns:1fr; gap:34px; }
  .passes{ grid-template-columns:1fr; }
  .chats{ columns:2; }
}
@media (max-width:860px){
  .nav__links{ display:none; }
  .nav__cta{ display:none; }
  .nav .btn--ghost{ display:none; }
  .nav__burger{ display:block; }
  .nav__actions{ margin-left:auto; }
  .nav__links.open{ display:flex; flex-direction:column; gap:0; position:absolute; top:calc(100% + 10px); left:clamp(14px,4vw,22px); right:clamp(14px,4vw,22px); background:var(--nav-bg); backdrop-filter:blur(24px) saturate(140%); -webkit-backdrop-filter:blur(24px) saturate(140%); border:1px solid var(--border); border-radius:20px; padding:10px 22px 20px; box-shadow:var(--shadow); animation:menuDown .3s var(--ease); }
  .nav__links.open a{ padding:15px 2px; border-bottom:1px solid var(--border); font-size:16.5px; color:var(--text); }
  .nav__links.open a::after{ display:none; }
  .nav__mobile-cta{ display:flex; flex-direction:column; gap:10px; margin-top:16px; }
  .nav__mobile-cta .btn{ width:100%; --pad:14px 20px; }
}
@keyframes menuDown{ from{ opacity:0; transform:translateY(-10px);} to{ opacity:1; transform:none; } }
@media (max-width:760px){
  .waypoints{ grid-template-columns:1fr; gap:14px; text-align:left; }
  .wp{ display:grid; grid-template-columns:auto 1fr; gap:2px 18px; align-items:center; padding:0; }
  .wp__pin{ grid-row:span 3; margin:0; width:64px; height:64px; padding:16px; }
  .wp__step{ margin:0; }
  .wp p{ max-width:none; margin:0; }
  .promise__row{ flex-direction:column; gap:22px; }
  .promise__item{ padding:0; }
  .promise__item + .promise__item::before{ display:none; }
  .chats{ columns:1; }
  .pass{ grid-template-columns:1fr; }
  .pass__stub{ border-left:none; border-top:2px dashed var(--border-2); flex-direction:row; gap:14px; }
  .pass__stub::before{ top:-9px; left:auto; right:-9px; }
  .pass__stub::after{ bottom:auto; top:-9px; left:-9px; }
  .pass__code{ display:none; }
  .lead__card{ grid-template-columns:1fr; }
  .lead__info{ border-right:none; border-bottom:1px solid var(--border); }
  .lead__perf{ display:none; }
  .footer__inner{ grid-template-columns:1fr; gap:28px; }
  .footer__bottom{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:420px){
  .hero__cta{ flex-direction:column; align-items:stretch; }
  .hero__cta .btn{ width:100%; }
  .field-row{ grid-template-columns:1fr; }
}

/* =========================================================
   Mobile — сохраняем атмосферу, но дёшево для GPU:
   • backdrop-blur → «фейковое стекло» (подложка + блик): фон за
     панелями это гладкое небо, размытие почти не видно, а лаги уходят;
   • свечения живут, но движутся только сдвигом (без scale) —
     размытие не пересчитывается каждый кадр;
   • пузырей/самолётов меньше и без тяжёлых теней.
   ========================================================= */
@media (max-width:860px){
  :root,[data-theme="dark"]{ --glass:rgba(255,255,255,.08); --glass-2:rgba(255,255,255,.12); --nav-bg:rgba(9,11,18,.86); }
  [data-theme="light"]{ --glass:rgba(255,255,255,.72); --glass-2:rgba(255,255,255,.82); --nav-bg:rgba(246,243,236,.9); }

  /* убираем дорогое live-размытие, но держим вид стекла подложкой+бликом */
  .glass,.promise,.wp__pin,.hero__badge,.btn--glass,.nav__burger,.theme-btn,
  .nav.is-stuck,.nav__links.open{
    backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  }
  [data-theme="dark"] .glass,[data-theme="dark"] .promise{ background:linear-gradient(150deg,rgba(255,255,255,.085),rgba(255,255,255,.028)); }
  [data-theme="light"] .glass,[data-theme="light"] .promise{ background:linear-gradient(150deg,rgba(255,255,255,.8),rgba(255,255,255,.6)); }

  /* свечения остаются живыми, но двигаются только сдвигом (без scale) */
  .glow{ animation:driftLite 26s ease-in-out infinite alternate; filter:blur(72px); will-change:transform; }
  .glow--teal{ animation-delay:-9s; }
  .glow--violet{ animation-delay:-15s; }

  /* частицы оставляем, но легче: меньше пузырей и без тяжёлой тени */
  .bubble{ box-shadow:none; }
  .bubbles .bubble:nth-child(n+6){ display:none; }
  .plane--2,.plane--4{ display:none; }
  .grain{ display:none; }
}
@keyframes driftLite{ from{ transform:translate3d(0,0,0);} to{ transform:translate3d(26px,32px,0);} }
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; }
  .plane,.bubbles{ display:none; }
  .chat{ transition:none; }
}
