/* =====================================================================
   Парк киноприключений Мастера Панина — вариант 2 (светлая тема)
   ===================================================================== */

:root {
  /* ---- Neutral field: cool steel-white, NOT warm beige/cream ---- */
  --bg:            oklch(96.5% 0.005 250);
  --bg-deep:       oklch(93%   0.008 250);
  --surface:       oklch(99%   0.002 90);
  --surface-2:     oklch(97%   0.006 250);
  --edge:          oklch(88%   0.012 250);
  --edge-strong:   oklch(80%   0.015 250);

  /* ---- Ink ---- */
  --text:          oklch(20%   0.02  260);
  --text-muted:    oklch(38%   0.018 260);
  --text-faint:    oklch(46%   0.016 260);

  /* ---- Single locked accent: cinematic ember orange (WCAG AA vs white text: 4.9:1) ---- */
  --accent:        oklch(56%   0.19  40);
  --accent-dim:    oklch(48%   0.17  40);
  --accent-ink:    oklch(99%   0.01  90);
  --accent-soft:   oklch(93%   0.05  45);
  --accent-line:   oklch(70%   0.14  45 / 0.35);

  /* ---- Ширина контентной колонки и боковые поля ---- */
  --shell:  1600px;
  --gutter: clamp(1.25rem, 4vw, 3rem);

  --shadow-tint:   250deg;
  --radius-card:   20px;
  --radius-media:  16px;
  --radius-chip:   999px;

  --font-display: 'Unbounded', 'Golos Text', system-ui, sans-serif;
  --font-body: 'Golos Text', 'Segoe UI', system-ui, sans-serif;

  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body.is-locked { overflow: hidden; height: 100%; }

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

.icon { width: 1.1em; height: 1.1em; flex: none; }

/* ===================== Buttons ===================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  padding: .95rem 1.7rem;
  border-radius: var(--radius-chip);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .95rem;
  white-space: nowrap;
  border: 1.5px solid transparent;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
  cursor: pointer;
}
.btn:active { transform: translateY(1px) scale(.98); }

.btn--primary {
  background: linear-gradient(135deg, oklch(57% 0.19 42), var(--accent) 60%, var(--accent-dim));
  color: var(--accent-ink);
  box-shadow: 0 14px 28px -12px oklch(56% 0.19 40 / 0.55);
}
.btn--primary:hover {
  box-shadow: 0 20px 38px -12px oklch(56% 0.19 40 / 0.68);
  transform: translateY(-2px);
}

.btn--outline {
  background: var(--surface);
  color: var(--text);
  border-color: var(--edge-strong);
}
.btn--outline:hover { border-color: var(--accent); color: var(--accent-dim); }

.btn--pill-small {
  padding: .52rem 1.15rem;
  font-size: .82rem;
  background: oklch(99% 0.005 90);
  color: oklch(32% 0.12 36);
  box-shadow: 0 6px 16px -8px oklch(30% 0.08 40 / .5);
}
.btn--pill-small:hover { background: #fff; color: var(--accent-dim); transform: translateY(-1px); }

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

/* ---- CTA "Купить билет": яркая заливка + бегущий блик в состоянии покоя ---- */
.btn--cta {
  background: linear-gradient(135deg, oklch(57% 0.19 42), var(--accent) 65%, var(--accent-dim));
  color: var(--accent-ink);
  box-shadow: 0 16px 30px -14px oklch(56% 0.19 40 / 0.6);
  border-color: transparent;
}
.btn--cta:hover {
  box-shadow: 0 22px 40px -14px oklch(56% 0.19 40 / 0.72);
  transform: translateY(-2px);
}

.btn--primary,
.btn--cta {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.btn--primary::after,
.btn--cta::after {
  content: "";
  position: absolute;
  top: 0; left: -60%;
  width: 32%; height: 100%;
  background: linear-gradient(115deg, transparent 0%, oklch(100% 0 0 / .65) 50%, transparent 100%);
  transform: skewX(-18deg);
  animation: btnShine 3.2s ease-in-out infinite;
  pointer-events: none;
}
@keyframes btnShine {
  0%   { left: -60%; }
  22%  { left: 130%; }
  100% { left: 130%; }
}
@media (prefers-reduced-motion: reduce) {
  .btn--primary::after, .btn--cta::after { animation: none; display: none; }
}

/* ===================== Preloader ===================== */
.preloader {
  position: fixed; inset: 0; z-index: 999;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2.2rem;
  background: var(--bg);
  transition: opacity .7s ease, visibility .7s ease;
}
.preloader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }

.preloader__frame {
  display: flex; align-items: center; gap: 0;
  border: 1.5px solid var(--edge-strong);
  border-radius: 14px;
  background: var(--surface);
  padding: 0;
  box-shadow: 0 30px 60px -30px oklch(23% 0.02 260 / 0.18);
}
.filmstrip {
  width: 22px; align-self: stretch;
  background-image: repeating-linear-gradient(var(--surface-2) 0 10px, transparent 10px 20px);
  background-color: var(--surface-2);
  position: relative;
}
.filmstrip::before, .filmstrip::after { content: none; }
.filmstrip {
  background-image:
    repeating-linear-gradient(to bottom, var(--edge-strong) 0 6px, transparent 6px 18px);
}

.preloader__reel {
  padding: 2.4rem 2.6rem;
  text-align: center;
  min-width: min(64vw, 480px);
}
.preloader__line {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: .04em;
  font-size: clamp(1.1rem, 3vw, 1.6rem);
  color: var(--text);
  min-height: 1.3em;
}
.preloader__line--accent { color: var(--accent); margin-top: .3rem; }
.caret {
  display: inline-block;
  width: .1em; margin-left: .08em;
  border-right: 2px solid var(--accent);
  animation: blink 1s step-end infinite;
}
.caret.is-off { animation: none; border-color: transparent; }
@keyframes blink { 50% { border-color: transparent; } }

.preloader__bar {
  width: min(64vw, 480px);
  height: 3px;
  border-radius: 3px;
  background: var(--edge);
  overflow: hidden;
}
.preloader__bar-fill {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--accent), var(--accent-dim));
  transition: width 5.6s cubic-bezier(.2,.7,.2,1);
}

@media (prefers-reduced-motion: reduce) {
  .preloader, .preloader__bar-fill, .caret { transition: none; animation: none; }
}

/* ===================== Background decor (mouse-reactive) ===================== */
.bg-decor {
  position: fixed; inset: 0; z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.bg-decor__pattern {
  position: absolute; inset: -10%;
  background-image:
    radial-gradient(circle at 1px 1px, var(--edge-strong) 1px, transparent 0);
  background-size: 30px 30px;
  opacity: .34;
  mask-image: radial-gradient(ellipse 80% 70% at 50% 0%, black 45%, transparent 90%);
}

/* цветная заливка-подложка, чтобы фон не был серым */
.bg-decor__wash {
  position: absolute; inset: 0;
  background:
    /* тёплые и холодные «омуты» прижаты к краям — там фон заметно глубже */
    radial-gradient(30% 40% at -2% 4%,  oklch(86% 0.09 42 / .6),   transparent 74%),
    radial-gradient(28% 36% at 102% 18%, oklch(87% 0.075 250 / .55), transparent 76%),
    radial-gradient(26% 34% at -2% 58%, oklch(85% 0.09 28 / .55),  transparent 74%),
    radial-gradient(26% 32% at 102% 80%, oklch(87% 0.07 300 / .5), transparent 76%),
    radial-gradient(60% 34% at 50% 116%, oklch(91% 0.055 45 / .4), transparent 74%),
    /* а середина, где живёт текст, наоборот подсвечена */
    radial-gradient(62% 46% at 48% 26%, oklch(98.5% 0.012 80 / .6), transparent 76%),
    radial-gradient(52% 38% at 54% 70%, oklch(98.5% 0.01 250 / .5), transparent 74%);
}
.bg-decor::after {
  content: "";
  position: absolute; inset: 0;
  background-image: repeating-linear-gradient(115deg, transparent 0 46px, var(--edge) 46px 47px);
  opacity: .2;
  mask-image: linear-gradient(to bottom, black, transparent 70%);
}

.blob {
  position: absolute;
  border-radius: 42% 58% 63% 37% / 41% 44% 56% 59%;
  filter: blur(84px);
  opacity: .5;
  will-change: transform;
  transition: transform .1s linear;
}
/* глубокие — только у самых краёв экрана, они дают объём */
.blob--a { top: -12%; left: -17%; width: 26vw; height: 26vw; background: oklch(78% 0.13 42); }
.blob--c { top: 42%;  left: -19%; width: 26vw; height: 26vw; background: oklch(76% 0.13 30); }
.blob--b { top: 2%;   right: -18%; width: 26vw; height: 26vw; background: oklch(79% 0.10 250); }
.blob--g { top: 88%;  right: -18%; width: 26vw; height: 26vw; background: oklch(77% 0.11 300 / .8); }
/* светлые — там, где идёт текст: они поднимают подложку, а не затемняют её */
.blob--d { top: 58%;  right: 10%; width: 22vw; height: 22vw; background: oklch(96% 0.035 265 / .9); }
.blob--e { top: 22%;  left: 33%;  width: 26vw; height: 26vw; background: oklch(97% 0.025 70 / .95); }
.blob--f { top: 76%;  left: 20%;  width: 26vw; height: 26vw; background: oklch(95% 0.045 45 / .85); }

/* Мягкая вуаль поверх фона и картинок: подсвечивает центральные зоны,
   где идут текстовые колонки, и не трогает края с техникой. */
.bg-decor__veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(82% 56% at 46% 20%, oklch(99% 0.003 90 / .56), transparent 78%),
    radial-gradient(74% 50% at 42% 58%, oklch(99% 0.003 90 / .5), transparent 76%),
    radial-gradient(70% 46% at 58% 90%, oklch(99% 0.003 90 / .46), transparent 78%);
}

/* ---- Тематические картинки фона ----------------------------------------
   Слой перекрывает весь экран: техника может заходить на пустые зоны макета.
   В центральной полосе маска приглушает его примерно вдвое, поэтому текст
   колонок остаётся читаемым, а у краёв картинки видны в полную силу.        */
.bg-decor__art {
  position: absolute;
  inset: 0;
  -webkit-mask-image: linear-gradient(to right,
    #000 0, #000 3vw,
    rgba(0, 0, 0, .46) 20vw, rgba(0, 0, 0, .42) 50%, rgba(0, 0, 0, .46) 80vw,
    #000 97vw, #000 100%);
  mask-image: linear-gradient(to right,
    #000 0, #000 3vw,
    rgba(0, 0, 0, .46) 20vw, rgba(0, 0, 0, .42) 50%, rgba(0, 0, 0, .46) 80vw,
    #000 97vw, #000 100%);
}

.art {
  position: absolute;
  width: var(--w);
  aspect-ratio: var(--ar, 3 / 2);
  will-change: transform;
  transition: transform .1s linear;
  pointer-events: none;
}
/* картинка живёт на псевдоэлементе: внешний div занят параллаксом мыши,
   а тут спокойно работает собственная анимация покачивания */
.art::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--art-src) center / contain no-repeat;
  opacity: var(--art-op, .3);
  filter: blur(var(--art-blur, 0px));
  transform: rotate(var(--art-rot, 0deg)) scaleX(var(--art-flip, 1));
  animation: artFloat var(--art-dur, 12s) ease-in-out var(--art-delay, 0s) infinite alternate;
}

@keyframes artFloat {
  from { translate: 0 0; }
  to   { translate: 0 calc(var(--art-float, 16px) * -1); }
}

/* три плана глубины: чем дальше — тем мягче и бледнее */
.art--far  { --art-op: .13; --art-blur: 7px; --art-float: 10px; }
.art--mid  { --art-op: .22; --art-blur: 2px; --art-float: 15px; }
.art--near { --art-op: .30; --art-blur: 0px; --art-float: 21px; }

/* ---- дальний план ---- */
.art--truck-usa {
  --art-src: url('../assets/decor/truck-usa.webp'); --ar: 649 / 512;
  --w: 27vw; --art-dur: 17s;
  top: 2%; right: -3vw;
}
.art--moto-trick {
  --art-src: url('../assets/decor/moto-trick.webp'); --ar: 820 / 436;
  --w: 26vw; --art-flip: -1; --art-dur: 19s; --art-delay: -5s;
  top: 63%; left: -3vw;
}
.art--stars-dust {
  --art-src: url('../assets/decor/stars-dust.webp'); --ar: 820 / 470;
  --w: 46vw; --art-op: .22; --art-blur: 3px; --art-dur: 22s; --art-delay: -8s;
  top: 30%; left: 27%;
}
.art--truck-teeth {
  --art-src: url('../assets/decor/truck-teeth.webp'); --ar: 820 / 539;
  --w: 22vw; --art-dur: 21s; --art-delay: -11s;
  top: 76%; right: 24%;
}

/* ---- средний план ---- */
.art--truck-masterfoot {
  --art-src: url('../assets/decor/truck-masterfoot.webp'); --ar: 820 / 428;
  --w: 26vw; --art-dur: 15s; --art-delay: -3s;
  top: 55%; right: -2vw;
}
.art--moto-blue {
  --art-src: url('../assets/decor/moto-blue.webp'); --ar: 311 / 271;
  --w: 15vw; --art-dur: 13s;
  top: 10%; left: -1vw;
}
.art--bolt-red {
  --art-src: url('../assets/decor/bolt-red.webp'); --ar: 439 / 820;
  --w: 6vw; --art-op: .3; --art-rot: 10deg; --art-dur: 8s; --art-float: 24px;
  top: 24%; right: 12vw;
}
.art--truck-blue {
  --art-src: url('../assets/decor/truck-blue.webp'); --ar: 600 / 379;
  --w: 19vw; --art-flip: -1; --art-dur: 18s; --art-delay: -6s;
  top: 84%; left: 30%;
}
.art--stars {
  --art-src: url('../assets/decor/stars.webp'); --ar: 635 / 820;
  --w: 11vw; --art-op: .3; --art-dur: 14s; --art-delay: -2s;
  top: 4%; left: 27%;
}

/* ---- ближний план ---- */
.art--truck-ink {
  --art-src: url('../assets/decor/truck-ink.webp'); --ar: 820 / 521;
  --w: 18vw; --art-op: .13; --art-dur: 16s; --art-delay: -4s;
  top: 74%; left: -2vw;
}
.art--moto-orange {
  --art-src: url('../assets/decor/moto-orange.webp'); --ar: 661 / 485;
  --w: 19vw; --art-dur: 12s; --art-delay: -7s;
  top: 37%; right: 19%;
}
.art--bolt-gold {
  --art-src: url('../assets/decor/bolt-gold.webp'); --ar: 133 / 269;
  --w: 4vw; --art-op: .42; --art-rot: -12deg; --art-dur: 6s; --art-float: 26px;
  top: 58%; left: 33%;
}
.art--truck-dragon {
  --art-src: url('../assets/decor/truck-dragon.webp'); --ar: 820 / 600;
  --w: 20vw; --art-op: .26; --art-dur: 14s; --art-delay: -9s;
  top: 85%; right: 2vw;
}
.art--moto-jump {
  --art-src: url('../assets/decor/moto-jump.webp'); --ar: 751 / 600;
  --w: 16vw; --art-op: .26; --art-dur: 11s; --art-delay: -1s;
  top: 14%; left: 18%;
}
.art--truck-flame {
  --art-src: url('../assets/decor/truck-flame.webp'); --ar: 688 / 617;
  --w: 15vw; --art-op: .26; --art-dur: 17s; --art-delay: -13s;
  top: 1%; right: 28%;
}

/* На узких экранах оставляем только то, что не мешает контенту */
@media (max-width: 1400px) {
  .art--truck-usa    { --w: 22vw; }
  .art--truck-masterfoot { --w: 23vw; }
  .art--moto-orange  { --w: 16vw; top: 40%; right: 12%; }
  .art--truck-teeth, .art--truck-blue { display: none; }
}
@media (max-width: 1100px) {
  .bg-decor__art {
    -webkit-mask-image: linear-gradient(to right,
      #000 0, #000 5vw, rgba(0, 0, 0, .4) 16vw, rgba(0, 0, 0, .34) 50%,
      rgba(0, 0, 0, .4) 84vw, #000 95vw, #000 100%);
    mask-image: linear-gradient(to right,
      #000 0, #000 5vw, rgba(0, 0, 0, .4) 16vw, rgba(0, 0, 0, .34) 50%,
      rgba(0, 0, 0, .4) 84vw, #000 95vw, #000 100%);
  }
  .art--moto-jump, .art--moto-trick, .art--truck-ink { display: none; }
  /* на телефоне монстр-траки читаются слабее мотоциклов — поднимаем их
     и добавляем четвёртый, чтобы техника не терялась */
  .art--truck-usa    { --w: 36vw; --art-op: .22; --art-blur: 3px; top: 3%; right: -9vw; }
  .art--truck-masterfoot { --w: 40vw; --art-op: .28; top: 57%; right: -9vw; }
  .art--truck-dragon { --w: 34vw; --art-op: .26; top: 84%; left: -7vw; right: auto; }
  .art--truck-flame  { display: block; --w: 30vw; --art-op: .26; --art-blur: 1px;
                       top: 29%; left: -9vw; right: auto; }
  .art--moto-blue    { --w: 24vw; --art-op: .2; top: 15%; left: -5vw; }
  .art--moto-orange  { --w: 24vw; --art-op: .24; top: 43%; right: -6vw; }
  .art--bolt-red     { --w: 9vw; right: 3vw; }
  .art--bolt-gold    { --w: 7vw; left: 5vw; }
  .art--stars        { --w: 18vw; left: 5vw; top: 2%; }
  .art--stars-dust   { --w: 80vw; left: 10%; }
}
@media (max-width: 640px) {
  .bg-decor__art { opacity: .92; }
  .art--stars { display: none; }
  .art--truck-usa    { --w: 44vw; }
  .art--truck-masterfoot { --w: 48vw; }
  .art--truck-dragon { --w: 42vw; }
  .art--truck-flame  { --w: 36vw; top: 31%; }
  .art--moto-blue    { --w: 28vw; }
  .art--moto-orange  { --w: 28vw; }
}

@media (prefers-reduced-motion: reduce) {
  .blob, .art { transition: none; }
  .art::before { animation: none; }
}

/* ===================== Layout shell ===================== */
.site { position: relative; z-index: 1; }

.eyebrow {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .85rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--accent-dim);
  margin: 0 0 .9rem;
}

/* ===================== Topbar ===================== */
.topbar {
  position: relative; z-index: 41;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem;
  padding: .78rem clamp(1.25rem, 4vw, 3rem);
  font-size: .89rem;
  color: oklch(99% 0.01 90);
  background: linear-gradient(100deg, oklch(52% 0.19 38), var(--accent) 55%, oklch(55% 0.19 44));
}
.topbar__group { display: flex; align-items: center; gap: 1.1rem; }
.topbar__item { display: inline-flex; align-items: center; gap: .5em; white-space: nowrap; }
.topbar__item:is(a):hover { color: oklch(100% 0 0); text-decoration: underline; text-underline-offset: 3px; }
.topbar__divider { width: 1px; height: 16px; background: oklch(100% 0 0 / .38); }

@media (max-width: 1040px) { .topbar__divider { display: none; } }

.topbar__group--right { gap: .8rem; }

/* ---------- Телефон: главный контакт в плашке ---------- */
.topbar__phone {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .3rem .95rem .3rem .35rem;
  border-radius: var(--radius-chip);
  background: oklch(100% 0 0 / .14);
  border: 1px solid oklch(100% 0 0 / .28);
  white-space: nowrap;
  transition: background .22s ease, border-color .22s ease, transform .22s ease;
}
.topbar__phone:hover {
  background: oklch(100% 0 0 / .24);
  border-color: oklch(100% 0 0 / .55);
  transform: translateY(-1px);
}
.topbar__phone-ring {
  position: relative;
  display: grid; place-items: center;
  width: 30px; height: 30px; flex: none;
  border-radius: 50%;
  background: oklch(99% 0.005 90);
  color: oklch(46% 0.17 40);
}
.topbar__phone-ring svg {
  width: 15px; height: 15px;
  transform-origin: 50% 85%;
  animation: tbRing 3.4s ease-in-out infinite;
}
/* трубка покачивается, а вокруг расходится «сигнал» */
@keyframes tbRing {
  0%, 62%, 100% { transform: rotate(0deg); }
  66% { transform: rotate(-13deg); }
  70% { transform: rotate(11deg); }
  74% { transform: rotate(-9deg); }
  78% { transform: rotate(7deg); }
  82% { transform: rotate(-4deg); }
  86% { transform: rotate(0deg); }
}
.topbar__phone-ring::before,
.topbar__phone-ring::after {
  content: ""; position: absolute; inset: 0;
  border-radius: 50%;
  border: 2px solid oklch(100% 0 0 / .85);
  opacity: 0;
  animation: tbPulse 3.4s ease-out infinite;
}
.topbar__phone-ring::after { animation-delay: .45s; }
@keyframes tbPulse {
  0%, 60% { transform: scale(1); opacity: 0; }
  68% { opacity: .75; }
  90%, 100% { transform: scale(1.85); opacity: 0; }
}
.topbar__phone-num {
  font-family: var(--font-display); font-weight: 700;
  font-size: 1.02rem; letter-spacing: .01em;
  color: oklch(100% 0 0);
}
.topbar__item--hours { opacity: .92; }

/* Мобильный топбар: телефон и кнопка сверху, адрес и часы — второй строкой */
@media (max-width: 860px) {
  .topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "phone ask"
      "addr  hours";
    align-items: center;
    row-gap: .5rem; column-gap: .9rem;
    padding: .6rem clamp(1rem, 4vw, 1.5rem);
    font-size: .82rem;
  }
  .topbar__group { display: contents; }
  .topbar__phone         { grid-area: phone; justify-self: start; }
  .topbar__ask           { grid-area: ask; justify-self: end; }
  .topbar__item--address { grid-area: addr; min-width: 0; }
  .topbar__item--hours   { grid-area: hours; justify-self: end; }
  .topbar__item--address span { overflow: hidden; text-overflow: ellipsis; }
  .btn--pill-small { font-size: .78rem; padding: .48rem .95rem; }
}
.topbar__ask-short { display: none; }
@media (max-width: 460px) {
  .topbar { font-size: .74rem; column-gap: .5rem; }
  .topbar__label { display: none; }
  .topbar .icon { width: 1.05em; height: 1.05em; }
  .topbar__phone { padding: .25rem .7rem .25rem .3rem; gap: .45rem; }
  .topbar__phone-ring { width: 26px; height: 26px; }
  .topbar__phone-ring svg { width: 13px; height: 13px; }
  .topbar__phone-num { font-size: .88rem; }
  .btn--pill-small { font-size: .72rem; padding: .42rem .75rem; }
}
/* на самых узких экранах номер важнее длинной подписи кнопки */
@media (max-width: 420px) {
  .topbar__ask-full { display: none; }
  .topbar__ask-short { display: inline; }
  .topbar__phone-num { font-size: .84rem; }
}
@media (prefers-reduced-motion: reduce) {
  .topbar__phone-ring svg,
  .topbar__phone-ring::before,
  .topbar__phone-ring::after { animation: none; }
}

/* ===================== Nav ===================== */
.nav {
  /* шапка и её выпадающие панели всегда над первым экраном */
  position: relative; z-index: 40;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  padding: 1.1rem clamp(1.25rem, 4vw, 3rem);
  background: var(--surface);
  border-bottom: 1px solid var(--edge);
  box-shadow: 0 8px 24px -20px oklch(23% 0.02 260 / .5);
}
.nav__side { display: flex; align-items: center; gap: clamp(.9rem, 1.5vw, 1.5rem); }
.nav__side--left { justify-content: flex-end; padding-right: clamp(1rem, 2vw, 1.8rem); }
.nav__side--right { justify-content: flex-start; padding-left: clamp(1rem, 2vw, 1.8rem); }
.navlink {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: .95rem;
  color: var(--text-muted);
  position: relative;
  padding-bottom: 2px;
}
.navlink::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: 0;
  height: 2px; background: var(--accent);
  transition: right .25s ease;
}
.navlink:hover { color: var(--text); }
.navlink:hover::after { right: 0; }

.nav__logo { display: flex; align-items: center; }
.nav__logo img { height: 72px; width: auto; }

.nav__burger { display: none; }

/* ---- "О Парке" dropdown (desktop) ---- */
.navdrop {
  position: relative;
  align-self: stretch;
  display: flex; align-items: center;
}
.navdrop__trigger {
  display: inline-flex; align-items: center; gap: .35em;
  background: none; border: none; cursor: pointer;
  font-family: var(--font-display); font-weight: 500; font-size: .95rem;
  color: var(--text-muted); padding: .3rem 0;
}
.navdrop__trigger:hover { color: var(--text); }
.navdrop__chevron { width: .85em; height: .85em; transition: transform .2s ease; }
.navdrop:hover .navdrop__chevron, .navdrop__trigger[aria-expanded="true"] .navdrop__chevron { transform: rotate(180deg); }

.navdrop__panel {
  position: absolute; top: calc(100% + 1.1rem + 1px); right: 0;
  min-width: 280px;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: 16px;
  box-shadow: 0 30px 60px -24px oklch(23% 0.02 260 / 0.28);
  padding: .5rem;
  display: flex; flex-direction: column;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index: 20;
}
.navdrop:hover .navdrop__panel,
.navdrop__trigger[aria-expanded="true"] + .navdrop__panel {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.navdrop__panel a {
  padding: .7rem .9rem;
  border-radius: 10px;
  font-size: .88rem;
  color: var(--text-muted);
  white-space: nowrap;
}
.navdrop__panel a:hover { background: var(--surface-2); color: var(--accent-dim); }

@media (max-width: 1150px) {
  /* Шапка в одну колонку: логотип строго по центру, под ним — широкая кнопка меню */
  .nav {
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    row-gap: .85rem;
    padding: .9rem clamp(1rem, 4vw, 1.5rem) 1rem;
  }
  .nav__side { display: none; }
  .nav__logo { grid-column: 1; justify-self: center; order: 1; }
  .nav__logo img { height: 54px; }

  .nav__burger {
    order: 2;
    grid-column: 1;
    display: flex; align-items: center; justify-content: center; gap: .7rem;
    width: 100%;
    padding: .85rem 1rem;
    border: 1px solid var(--edge-strong);
    border-radius: var(--radius-chip);
    background: var(--surface-2);
    color: var(--text);
    font-family: var(--font-display);
    font-weight: 600; font-size: .95rem;
    letter-spacing: .04em; text-transform: uppercase;
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease;
  }
  .nav__burger:hover, .nav__burger[aria-expanded="true"] {
    background: var(--surface); border-color: var(--accent);
  }
  .nav__burger-icon {
    display: flex; flex-direction: column; justify-content: center; gap: 4px;
    width: 20px; height: 16px; flex: none;
  }
  .nav__burger-icon span {
    display: block; width: 100%; height: 2px;
    background: var(--accent); border-radius: 2px;
    transition: transform .25s ease, opacity .25s ease;
  }
  .nav__burger[aria-expanded="true"] .nav__burger-icon span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav__burger[aria-expanded="true"] .nav__burger-icon span:nth-child(2) { opacity: 0; }
  .nav__burger[aria-expanded="true"] .nav__burger-icon span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
}
@media (max-width: 1150px) and (prefers-reduced-motion: reduce) {
  .nav__burger, .nav__burger-icon span { transition: none; }
}

.mobile-menu {
  position: relative; z-index: 3;
  display: flex; flex-direction: column;
  max-height: 0; overflow: hidden;
  transition: max-height .35s ease;
  background: var(--surface);
  border-bottom: 1px solid var(--edge);
}
.mobile-menu.is-open { max-height: 1400px; }
.mobile-menu a {
  padding: .95rem clamp(1.25rem, 4vw, 3rem);
  border-top: 1px solid var(--edge);
  font-family: var(--font-display); font-weight: 500;
}
.mobile-menu__accordion {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%;
  padding: .95rem clamp(1.25rem, 4vw, 3rem);
  border-top: 1px solid var(--edge);
  background: none; border-left: none; border-right: none; border-bottom: none;
  font-family: var(--font-display); font-weight: 500; font-size: 1rem;
  color: var(--text); cursor: pointer;
}
.mobile-menu__accordion .icon { transition: transform .2s ease; }
.mobile-menu__accordion[aria-expanded="true"] .icon { transform: rotate(180deg); }
.mobile-menu__submenu {
  display: flex; flex-direction: column;
  max-height: 0; overflow: hidden;
  background: var(--surface-2);
  transition: max-height .3s ease;
}
.mobile-menu__submenu.is-open { max-height: 400px; }
.mobile-menu__submenu a {
  padding: .8rem clamp(1.25rem, 4vw, 3rem) .8rem calc(clamp(1.25rem, 4vw, 3rem) + 1rem);
  font-size: .88rem; font-weight: 400; color: var(--text-muted);
  border-top: 1px solid var(--edge);
}

/* ===================== Hero (full-bleed video background) ===================== */
.hero {
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.25rem, 4vw, 3rem) clamp(4rem, 8vw, 6rem);
  min-height: min(100dvh, 880px);
  isolation: isolate;
}

.hero__poster {
  position: absolute; inset: 0; z-index: 0;
  background: url('../assets/hero-poster.jpg') center / cover no-repeat;
}

.hero__video-wrap {
  position: absolute; inset: 0; z-index: 1;
  overflow: hidden;
}
.hero__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  border: 0;
  pointer-events: none;
}
/* если видео не загрузилось — остаётся постер под ним */
.hero__video.is-failed { display: none; }

.hero__scrim {
  position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(100deg, oklch(14% 0.02 260 / .84) 0%, oklch(14% 0.02 260 / .66) 42%, oklch(14% 0.02 260 / .34) 68%, oklch(14% 0.02 260 / .58) 100%),
    linear-gradient(to top, oklch(10% 0.02 260 / .7) 0%, transparent 32%);
}

@media (prefers-reduced-motion: reduce) {
  .hero__video-wrap { display: none; }
}

.hero__content {
  position: relative; z-index: 3;
  max-width: 640px;
}

.hero .eyebrow { color: oklch(92% 0.07 58); text-shadow: 0 1px 14px oklch(14% 0.02 260 / .65); }

.hero__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2.1rem, 4.4vw, 3.5rem);
  line-height: 1.06;
  letter-spacing: -.01em;
  margin: 0 0 1.1rem;
  max-width: 15ch;
  color: var(--hero-ink, oklch(98% 0.004 90));
}
.hero__subtitle {
  font-size: clamp(1rem, 1.6vw, 1.15rem);
  line-height: 1.6;
  color: oklch(93% 0.01 90 / .95);
  max-width: 46ch;
  margin: 0 0 1.9rem;
}
.hero__actions { display: flex; gap: .9rem; flex-wrap: wrap; margin-bottom: 2.6rem; }

.hero__stats { display: flex; gap: clamp(1.4rem, 3vw, 2.6rem); flex-wrap: wrap; }
.stat { display: flex; flex-direction: column; }
.stat__num {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.3rem, 2.4vw, 1.8rem);
  color: oklch(98% 0.004 90);
}
.stat__label { font-size: .92rem; color: oklch(89% 0.012 90 / .95); }

.hero__scrolldown {
  position: absolute; left: clamp(1.25rem, 4vw, 3rem); bottom: 1.6rem; z-index: 3;
  display: inline-flex; align-items: center; gap: .5em;
  font-size: .82rem; color: oklch(88% 0.01 90 / .8);
  font-family: var(--font-display); font-weight: 500;
}
.hero__scrolldown .icon { animation: bob 1.8s ease-in-out infinite; }
@keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(5px); } }

@media (max-width: 980px) {
  .hero { padding-top: 2rem; }
  .hero__content { max-width: none; }
  .hero__title, .hero__subtitle { max-width: none; }
}
@media (prefers-reduced-motion: reduce) { .hero__scrolldown .icon { animation: none; } }

/* ===================== Events (full afisha, 12 cards) ===================== */
.events {
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem) clamp(4rem, 7vw, 6rem);
  position: relative;
}
.events__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 1.5rem; flex-wrap: wrap;
  margin-bottom: 2.2rem;
}
.events__title {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  margin: 0;
}
.events__nav { display: flex; gap: .6rem; }
.events__arrow {
  width: 46px; height: 46px; border-radius: 50%;
  border: 1.5px solid var(--edge-strong);
  background: var(--surface);
  color: var(--text);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.events__arrow:hover { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.events__arrow:active { transform: scale(.94); }
.events__arrow[disabled] { opacity: .35; pointer-events: none; }

.events__viewport { overflow: hidden; touch-action: pan-y; }
.events__track {
  display: flex;
  gap: clamp(1rem, 2vw, 1.6rem);
  transition: transform .5s cubic-bezier(.22,.8,.28,1);
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) { .events__track { transition: none; } }

.ecard {
  flex: 0 0 var(--card-w, calc((100% - 2 * 1.6rem) / 3));
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow: 0 20px 40px -28px oklch(23% 0.02 260 / 0.22);
  transition: transform .25s ease, box-shadow .25s ease;
}
.ecard:hover { transform: translateY(-6px); box-shadow: 0 30px 54px -24px oklch(23% 0.02 260 / 0.3); }

.ecard__media { position: relative; aspect-ratio: 16/11; margin: 8px 8px 0; border-radius: var(--radius-media); overflow: hidden; }
.ecard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ecard:hover .ecard__media img { transform: scale(1.06); }
.ecard__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(200deg, transparent 55%, oklch(15% 0.03 40 / .5) 100%);
}
.ecard__badge {
  position: absolute; top: .7rem; left: .7rem; z-index: 1;
  background: var(--surface); color: var(--text);
  font-family: var(--font-display); font-weight: 700; font-size: .72rem;
  padding: .38rem .7rem; border-radius: var(--radius-chip);
}
.ecard__icon {
  position: absolute; bottom: .7rem; right: .7rem; z-index: 1;
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--accent); color: var(--accent-ink);
  display: flex; align-items: center; justify-content: center;
}
.ecard__icon .icon { width: 1.05em; height: 1.05em; }

.ecard__body { padding: 1.1rem 1.2rem 1.3rem; display: flex; flex-direction: column; gap: .55rem; flex: 1; }
.ecard__title { font-family: var(--font-display); font-weight: 700; font-size: 1.08rem; margin: 0; line-height: 1.3; }
.ecard__sub { margin: 0; font-size: .96rem; line-height: 1.55; color: var(--text-muted); }
.ecard__meta {
  display: flex; align-items: center; gap: .5em;
  font-size: .93rem; color: var(--text-muted);
  margin-top: auto; padding-top: .3rem;
}
.ecard .btn { margin-top: .4rem; }

.events__dots { display: flex; justify-content: center; gap: .5rem; margin-top: 2rem; }
.events__dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--edge-strong); border: none; cursor: pointer;
  transition: background-color .2s ease, width .2s ease;
}
.events__dot.is-active { background: var(--accent); width: 22px; border-radius: var(--radius-chip); }

@media (max-width: 1180px) {
  .ecard { flex-basis: var(--card-w, calc((100% - 1.6rem) / 2)); }
}
@media (max-width: 680px) {
  .ecard { flex-basis: var(--card-w, 100%); }
  .events__head { align-items: center; }
}

/* ===================== Utility ===================== */
.site > * { max-width: var(--shell); margin-inline: auto; }

/* Полосы с собственным фоном — верхняя плашка, шапка, первый экран,
   липкая лента и футер — идут от края до края экрана. Их содержимое
   при этом остаётся в той же колонке, что и у остальных секций. */
.site > .topbar,
.site > .nav,
.site > .mobile-menu,
.site > .footer,
.site > .kbar,
.site > .hero,
.site > .thero,
.site > .phero { max-width: none; }

.site > .topbar,
.site > .nav,
.site > .mobile-menu,
.site > .footer,
.site > .hero,
.site > .thero,
.site > .phero {
  padding-inline: max(var(--gutter), calc((100% - var(--shell)) / 2));
}

/* ===================== Общий заголовок секции ===================== */
.section-title {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  line-height: 1.15;
  margin: 0;
}

/* ===================== Преимущества ===================== */
.benefits {
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem);
}
.benefits__head { margin-bottom: 2.4rem; max-width: 46rem; }

.benefits__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: clamp(1rem, 1.6vw, 1.4rem);
}
.benefit {
  position: relative;
  grid-column: span 2;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  padding: 1.7rem 1.6rem;
  display: flex; flex-direction: column; gap: .7rem;
  overflow: hidden;
  box-shadow: 0 18px 36px -28px oklch(23% 0.02 260 / 0.35);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
/* цветной блик в углу каждой карточки */
.benefit::before {
  content: "";
  position: absolute; top: -55px; right: -55px;
  width: 170px; height: 170px; border-radius: 50%;
  background: radial-gradient(circle, oklch(80% 0.15 45 / .55), transparent 68%);
  transition: transform .35s ease, opacity .35s ease;
}
.benefit:hover {
  transform: translateY(-5px);
  border-color: oklch(75% 0.13 45 / .55);
  box-shadow: 0 30px 52px -26px oklch(56% 0.19 40 / 0.35);
}
.benefit:hover::before { transform: scale(1.25); }

.benefit--wide { grid-column: span 3; }

/* акцентная карточка — «герой» блока */
.benefit--hero {
  background: linear-gradient(140deg, oklch(38% 0.13 35), oklch(28% 0.09 30) 55%, oklch(24% 0.05 265));
  border-color: transparent;
  color: oklch(97% 0.006 90);
  box-shadow: 0 28px 52px -26px oklch(40% 0.14 35 / .6);
}
.benefit--hero::before {
  background: radial-gradient(circle, oklch(72% 0.2 45 / .75), transparent 66%);
  top: -70px; right: -70px; width: 220px; height: 220px;
}
.benefit--hero .benefit__title { color: oklch(98% 0.006 90); font-size: 1.25rem; }
.benefit--hero .benefit__text { color: oklch(88% 0.012 80 / .9); }
.benefit--hero .benefit__icon {
  background: oklch(100% 0 0 / .16);
  border: 1px solid oklch(100% 0 0 / .22);
  color: oklch(98% 0.01 80);
}

.benefit__icon {
  position: relative;
  width: 52px; height: 52px; border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(140deg, oklch(62% 0.2 42), oklch(52% 0.18 32));
  color: var(--accent-ink);
  box-shadow: 0 12px 24px -12px oklch(56% 0.19 40 / .65);
  margin-bottom: .35rem;
}
.benefit__icon .icon { width: 1.55em; height: 1.55em; }
.benefit__title { position: relative; font-family: var(--font-display); font-weight: 700; font-size: 1.08rem; margin: 0; }
.benefit__text { position: relative; margin: 0; font-size: 1.03rem; line-height: 1.72; color: var(--text-muted); }

@media (max-width: 1100px) {
  .benefits__grid { grid-template-columns: repeat(4, 1fr); }
  .benefit, .benefit--wide { grid-column: span 2; }
}
@media (max-width: 640px) {
  .benefits__grid { grid-template-columns: 1fr; }
  .benefit, .benefit--wide { grid-column: span 1; }
}

/* ===================== Галерея ===================== */
.gallery { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); }
.gallery__head { margin-bottom: 1.6rem; max-width: 46rem; }
.gallery__lead { max-width: 58ch; margin: .8rem 0 0; color: var(--text-muted); font-size: 1.02rem; line-height: 1.6; }

.gallery__tabs {
  display: flex; gap: .5rem; flex-wrap: wrap;
  margin-bottom: 1.8rem;
}
.gallery__tab {
  font-size: .9rem;
  border: 1.5px solid var(--edge-strong);
  background: var(--surface);
  color: var(--text-muted);
  border-radius: var(--radius-chip);
  padding: .55rem 1.1rem;
  font-family: var(--font-display); font-weight: 500; font-size: .85rem;
  cursor: pointer; white-space: nowrap;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.gallery__tab:hover { border-color: var(--accent); color: var(--accent-dim); }
.gallery__tab.is-active {
  background: var(--text); border-color: var(--text); color: var(--surface);
}

.gallery__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: clamp(.6rem, 1.2vw, 1rem);
  min-height: 200px;
}
.gallery__grid.is-loading { opacity: .45; }

.shot {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--edge);
  border-radius: 14px;
  overflow: hidden;
  cursor: zoom-in;
  background:
    repeating-linear-gradient(45deg, oklch(90% 0.006 250) 0 10px, oklch(93% 0.005 250) 10px 20px);
  display: flex; align-items: center; justify-content: center;
  transition: transform .2s ease, border-color .2s ease;
}
.shot:hover { transform: scale(1.02); border-color: var(--accent-line); }
.shot__label {
  font-family: var(--font-display); font-weight: 600;
  font-size: .86rem; color: var(--text-muted);
  background: var(--surface);
  border-radius: var(--radius-chip);
  padding: .3rem .75rem;
  pointer-events: none;
}
.shot__num {
  position: absolute; top: .5rem; left: .6rem;
  font-size: .7rem; color: var(--text-faint);
  font-family: var(--font-display);
}

/* ===================== Обращение основателя ===================== */
.founder {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
  gap: clamp(1.5rem, 3.5vw, 3.2rem);
  align-items: stretch;
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem);
}
.founder__head {
  grid-column: 1 / -1;
  max-width: 54rem;
  margin-bottom: clamp(.5rem, 1.5vw, 1.2rem);
}
.founder__col { display: flex; flex-direction: column; gap: 1.5rem; }
.founder__aside { display: flex; }
.founder__aside > .regalia { width: 100%; }

.founder__media {
  position: relative;
  flex: 1 1 auto;
  min-height: 460px;
}
.founder__media img {
  width: 100%; height: 100%;
  border-radius: 24px;
  border: 1px solid var(--edge);
  box-shadow: 0 36px 70px -34px oklch(23% 0.02 260 / 0.45);
  object-fit: cover;
  object-position: center 12%;
}
.founder__badge {
  position: absolute; left: 1rem; bottom: 1rem;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: var(--radius-chip);
  padding: .45rem 1rem;
  font-family: var(--font-display); font-weight: 600; font-size: .82rem;
  box-shadow: 0 12px 26px -14px oklch(23% 0.02 260 / 0.35);
}
.founder__quote {
  margin: 0;
  padding-left: 1.2rem;
  border-left: 3px solid var(--accent);
}
.founder__quote p {
  margin: 0 0 .9rem;
  font-size: clamp(1.08rem, 1.4vw, 1.16rem);
  line-height: 1.8;
  color: var(--text-muted);
  max-width: 62ch;
}
.founder__quote p:last-child { margin-bottom: 0; }
.founder__quote p { max-width: none; }
.founder__sign strong { display: block; font-family: var(--font-display); font-size: 1rem; }
.founder__sign span { font-size: .92rem; color: var(--text-muted); }

@media (max-width: 900px) {
  .founder { grid-template-columns: 1fr; }
  .founder__head { max-width: none; }
  .founder__media { max-width: 460px; min-height: 0; aspect-ratio: 4 / 3.4; }
}

/* ===================== Карта парка ===================== */
.parkmap { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); }
.parkmap__head { margin-bottom: 1.8rem; max-width: 46rem; }
.parkmap__lead { max-width: 58ch; margin: .8rem 0 0; color: var(--text-muted); font-size: 1.02rem; line-height: 1.6; }
.parkmap__frame {
  display: block; width: 100%; padding: 0;
  position: relative;
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: var(--surface);
  cursor: zoom-in;
  box-shadow: 0 26px 50px -32px oklch(23% 0.02 260 / 0.4);
}
.parkmap__frame img { width: 100%; display: block; }
.parkmap__zoom {
  position: absolute; right: 1rem; bottom: 1rem;
  display: inline-flex; align-items: center; gap: .45em;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: var(--radius-chip);
  padding: .5rem 1rem;
  font-family: var(--font-display); font-weight: 600; font-size: .82rem;
  color: var(--text);
}

/* ===================== Партнёры ===================== */
.partners { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem) clamp(4rem, 7vw, 6rem); }
.partners__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 1.5rem; flex-wrap: wrap; margin-bottom: 2rem;
}
.partners__nav { display: flex; gap: .6rem; }
.partners__viewport { overflow: hidden; touch-action: pan-y; }
.partners__track {
  display: flex;
  gap: clamp(.8rem, 1.6vw, 1.2rem);
  transition: transform .5s cubic-bezier(.22,.8,.28,1);
}
@media (prefers-reduced-motion: reduce) { .partners__track { transition: none; } }

.partner {
  flex: 0 0 var(--partner-w, calc((100% - 4 * 1.2rem) / 5));
  aspect-ratio: 3 / 2;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  display: flex; align-items: center; justify-content: center;
  padding: 1.1rem;
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.partner img {
  max-width: 100%; max-height: 100%;
  object-fit: contain;
  opacity: .45;
  filter: grayscale(1);
  transition: opacity .3s ease, filter .3s ease;
  mix-blend-mode: multiply;
}
.partner:hover {
  border-color: var(--accent-line);
  transform: translateY(-3px);
  box-shadow: 0 20px 38px -26px oklch(23% 0.02 260 / 0.35);
}
.partner:hover img { opacity: 1; filter: grayscale(0); }

/* ===================== Лайтбокс ===================== */
.lightbox {
  position: fixed; inset: 0; z-index: 900;
  display: none;
  align-items: center; justify-content: center;
  background: oklch(18% 0.02 260 / .9);
  backdrop-filter: blur(6px);
  padding: clamp(1rem, 4vw, 3rem);
}
.lightbox.is-open { display: flex; }
.lightbox__stage {
  width: min(92vw, 1240px);
  max-height: 80vh;
  display: flex; align-items: center; justify-content: center;
}
/* фото раскрывается на всю доступную площадь, а не показывается маркой в углу */
.lightbox__stage img {
  width: 100%; height: auto;
  max-height: 80vh; object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 30px 70px -30px oklch(10% 0.02 260 / .9);
}
.lightbox__ph {
  width: min(80vw, 900px);
  aspect-ratio: 3 / 2;
  border-radius: 12px;
  background: repeating-linear-gradient(45deg, oklch(72% 0.01 250) 0 18px, oklch(78% 0.008 250) 18px 36px);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 700;
  color: oklch(30% 0.02 260);
  font-size: clamp(1rem, 2.4vw, 1.6rem);
}
.lightbox__caption {
  position: absolute; bottom: clamp(1rem, 3vw, 2rem); left: 0; right: 0;
  text-align: center;
  color: oklch(92% 0.006 90);
  font-size: .9rem; margin: 0;
}
.lightbox__close, .lightbox__nav {
  position: absolute;
  width: 48px; height: 48px; border-radius: 50%;
  border: 1px solid oklch(100% 0 0 / .25);
  background: oklch(100% 0 0 / .12);
  color: oklch(98% 0 0);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background-color .2s ease;
}
.lightbox__close:hover, .lightbox__nav:hover { background: oklch(100% 0 0 / .24); }
.lightbox__close { top: clamp(1rem, 3vw, 2rem); right: clamp(1rem, 3vw, 2rem); }
.lightbox__nav--prev { left: clamp(.5rem, 2vw, 1.6rem); }
.lightbox__nav--next { right: clamp(.5rem, 2vw, 1.6rem); }

/* ===================== О парке: «Это НУЖНО увидеть» ===================== */
.about { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); }
.about__head { margin-bottom: clamp(2rem, 4vw, 3rem); max-width: 52rem; }
.about__title {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.5rem, 2.9vw, 2.2rem);
  line-height: 1.2;
  margin: 0;
}
.about__accent { color: var(--accent); }

.about__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.4rem, 2.6vw, 2.4rem);
}
.feature { display: flex; flex-direction: column; gap: 1rem; }
.feature__pic {
  width: clamp(88px, 8vw, 116px);
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  position: relative;
  box-shadow: 0 0 0 3px var(--surface), 0 0 0 5px var(--accent),
              0 18px 34px -18px oklch(56% 0.19 40 / .55);
  transition: transform .3s ease;
}
.feature:hover .feature__pic { transform: translateY(-4px) scale(1.03); }
.feature__pic img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center top;
  transition: transform .5s ease;
}
.feature:hover .feature__pic img { transform: scale(1.08); }
.feature__title {
  font-family: var(--font-display); font-weight: 700;
  font-size: 1.15rem; margin: 0 0 .5rem;
}
.feature__text { margin: 0; font-size: 1.04rem; line-height: 1.75; color: var(--text-muted); }

@media (max-width: 980px) { .about__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) {
  .about__grid { grid-template-columns: 1fr; gap: 2rem; }
  .feature { flex-direction: column; align-items: flex-start; gap: .9rem; }
  .feature__pic { flex: none; width: 88px; }
  .feature__text { font-size: 1rem; line-height: 1.7; }
}

/* ===================== Регалии Панина ===================== */
.regalia {
  margin-top: 0;
  padding: 1.5rem 1.6rem 1.7rem;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  box-shadow: 0 22px 44px -32px oklch(23% 0.02 260 / 0.35);
}
.regalia__head {
  display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap;
  padding-bottom: 1rem; margin-bottom: 1.1rem;
  border-bottom: 1px solid var(--edge);
}
.regalia__title {
  font-family: var(--font-display); font-weight: 800;
  font-size: 1.15rem; margin: 0;
}
.regalia__sub {
  margin: 0; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--accent-dim); font-family: var(--font-display); font-weight: 600;
}

.regalia__grid {
  margin: 0; padding: 0; list-style: none;
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: .7rem;
}
.reg {
  display: flex; align-items: flex-start; gap: .85rem;
  padding: .85rem .9rem;
  border: 1px solid var(--edge);
  border-radius: 14px;
  background: var(--surface-2);
  transition: border-color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.reg:hover {
  border-color: oklch(75% 0.13 45 / .6);
  transform: translateY(-2px);
  box-shadow: 0 16px 30px -22px oklch(56% 0.19 40 / .5);
}
.reg__icon {
  flex: none;
  width: 40px; height: 40px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(140deg, oklch(62% 0.2 42), oklch(52% 0.18 32));
  color: var(--accent-ink);
  box-shadow: 0 10px 20px -12px oklch(56% 0.19 40 / .7);
}
.reg__icon--gold {
  background: linear-gradient(140deg, oklch(72% 0.15 85), oklch(58% 0.14 70));
  box-shadow: 0 10px 20px -12px oklch(62% 0.14 78 / .7);
}
.reg__icon svg { width: 21px; height: 21px; }
.reg__body { display: flex; flex-direction: column; gap: .18rem; }
.reg__title {
  font-family: var(--font-display); font-weight: 700;
  font-size: .99rem; line-height: 1.35; color: var(--text);
}
.reg__text { font-size: .93rem; line-height: 1.6; color: var(--text-muted); }

.regalia__grid { grid-template-columns: 1fr; }
@media (min-width: 1800px) { .regalia__grid { grid-template-columns: repeat(2, 1fr); } }

/* ===================== Футер ===================== */
.footer {
  background: var(--text);
  color: oklch(88% 0.008 90);
  padding: clamp(2.6rem, 5vw, 4rem) clamp(1.25rem, 4vw, 3rem) 1.6rem;
  border-radius: 32px 32px 0 0;
  margin-top: clamp(1rem, 3vw, 2rem);
}
.footer__grid {
  display: grid;
  grid-template-columns: 1.3fr 1.1fr .8fr 1fr;
  gap: clamp(1.6rem, 3vw, 3rem);
  padding-bottom: 2.2rem;
}
.footer__logo { height: 74px; width: auto; margin-bottom: 1.2rem; }
.footer__social-label { margin: 0 0 .7rem; font-size: .9rem; color: oklch(72% 0.01 90); }
.footer__social { display: flex; gap: .6rem; margin-bottom: 1rem; }
.footer__social a {
  width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: oklch(100% 0 0 / .08);
  border: 1px solid oklch(100% 0 0 / .14);
  color: oklch(94% 0.005 90);
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.footer__social a:hover { background: var(--accent); border-color: var(--accent); transform: translateY(-2px); }
.footer__social svg { width: 20px; height: 20px; }
.footer__tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
.footer__tags span {
  font-size: .84rem; color: oklch(82% 0.01 90);
  background: oklch(100% 0 0 / .07);
  border-radius: var(--radius-chip);
  padding: .3rem .7rem;
}

.footer__title {
  font-family: var(--font-display); font-weight: 700;
  font-size: .8rem; letter-spacing: .12em; text-transform: uppercase;
  color: oklch(70% 0.012 90);
  margin: 0 0 1.1rem;
}
.footer__contacts { list-style: none; margin: 0 0 1.2rem; padding: 0; display: grid; gap: .8rem; }
.footer__contacts li { display: flex; align-items: flex-start; gap: .6em; font-size: .96rem; line-height: 1.55; }
.footer__contacts .icon { margin-top: .15em; color: var(--accent); }
.footer__contacts a:hover { color: var(--accent); }
.footer__ask {
  background: transparent;
  color: oklch(96% 0.005 90);
  border-color: oklch(100% 0 0 / .25);
  padding: .7rem 1.4rem; font-size: .88rem;
}
.footer__ask:hover { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }

.footer__menu { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.footer__menu a {
  font-size: .96rem; color: oklch(90% 0.008 90);
  transition: color .2s ease, padding-left .2s ease;
}
.footer__menu a:hover { color: var(--accent); padding-left: 4px; }

.footer__bottom {
  border-top: 1px solid oklch(100% 0 0 / .12);
  padding-top: 1.4rem;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
}
.footer__policy { font-size: .9rem; color: oklch(80% 0.01 90); text-decoration: underline; text-underline-offset: 3px; }
.footer__policy:hover { color: var(--accent); }
.footer__copy { margin: 0; font-size: .86rem; color: oklch(72% 0.01 90); }

@media (max-width: 1100px) { .footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) {
  .footer__grid { grid-template-columns: 1fr; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }
}


/* ===================== Отзывы ===================== */
.reviews { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); }
.reviews__head { margin-bottom: 2.2rem; max-width: 50rem; }
.reviews__lead { max-width: 58ch; margin: .8rem 0 0; color: var(--text-muted); font-size: 1.02rem; line-height: 1.6; }

/* ---- Галерея видеоотзывов ---- */
.vreviews {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 1.6vw, 1.5rem);
}
@media (max-width: 1100px) { .vreviews { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px)  { .vreviews { grid-template-columns: 1fr; } }

.vreview {
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: 0 18px 40px -34px oklch(23% 0.02 260 / .55);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.vreview:hover {
  transform: translateY(-4px);
  border-color: var(--accent-line, var(--edge-strong));
  box-shadow: 0 26px 52px -30px oklch(23% 0.02 260 / .6);
}

/* кликабельная обложка */
.vreview__play {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  border: 0;
  padding: 0;
  cursor: pointer;
  background: oklch(28% 0.02 260);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.vreview__play::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, oklch(18% 0.02 260 / .72), oklch(18% 0.02 260 / .12) 55%, transparent);
  transition: opacity .25s ease;
}
.vreview:hover .vreview__play::after { opacity: .75; }

.vreview__icon {
  position: absolute; z-index: 2;
  left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 62px; height: 62px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--accent);
  color: oklch(100% 0 0);
  box-shadow: 0 10px 30px -10px oklch(45% 0.18 40 / .8);
  transition: transform .25s ease, background .25s ease;
}
.vreview__icon svg { width: 26px; height: 26px; margin-left: 3px; }
.vreview:hover .vreview__icon { transform: translate(-50%, -50%) scale(1.09); background: var(--accent-dim); }

.vreview__badge {
  position: absolute; z-index: 2;
  left: .85rem; top: .85rem;
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .32rem .6rem;
  border-radius: var(--radius-chip);
  background: oklch(100% 0 0 / .92);
  color: oklch(28% 0.02 260);
  font-size: .78rem; font-weight: 600; letter-spacing: .02em;
}
.vreview__badge svg { width: 15px; height: 15px; color: #0077ff; }

.vreview__dur {
  position: absolute; z-index: 2;
  right: .85rem; bottom: .85rem;
  padding: .2rem .5rem;
  border-radius: 6px;
  background: oklch(18% 0.02 260 / .78);
  color: oklch(100% 0 0);
  font-size: .78rem; font-variant-numeric: tabular-nums;
}

.vreview__body {
  display: flex; flex-direction: column; gap: .7rem;
  padding: 1.15rem 1.25rem 1.35rem;
  flex: 1 1 auto;
}
.vreview__text {
  margin: 0;
  font-size: 1rem; line-height: 1.6; color: var(--text);
}
.vreview__meta {
  margin: 0; margin-top: auto;
  display: flex; align-items: center; gap: .55rem;
  font-size: .92rem; color: var(--text-faint);
}
.vreview__name { font-weight: 600; color: var(--text-muted); }
.vreview__dot { width: 4px; height: 4px; border-radius: 50%; background: var(--edge-strong); }

/* кнопка «Смотреть все отзывы» */
.reviews__more {
  display: flex;
  justify-content: center;
  margin-top: clamp(1.8rem, 3vw, 2.6rem);
}
.reviews__all {
  gap: .6rem;
  padding: .95rem 1.8rem;
  font-size: 1rem;
}
.reviews__all .icon { width: 1.15em; height: 1.15em; transition: transform .25s ease; }
.reviews__all:hover .icon { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) { .reviews__all .icon { transition: none; } }

/* пустой слот — виден только владельцу сайта, пока не вставлен код */
.vreview--empty {
  border-style: dashed;
  background: oklch(99% 0.002 90 / .6);
  box-shadow: none;
}
.vreview--empty:hover { transform: none; box-shadow: none; border-color: var(--edge); }
.vreview__slot {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .6rem; text-align: center;
  min-height: 260px;
  padding: 1.6rem 1.4rem;
}
.vreview__slot svg { width: 38px; height: 38px; color: var(--accent); opacity: .75; }
.vreview__slot-title { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1rem; }
.vreview__slot-note { margin: 0; font-size: .9rem; line-height: 1.55; color: var(--text-muted); max-width: 30ch; }

@media (prefers-reduced-motion: reduce) {
  .vreview, .vreview__icon, .vreview__play::after { transition: none; }
}


/* ---- Ссылка на полный ролик парка ---- */
.hero__playlink {
  position: relative; z-index: 3;
  display: inline-flex; align-items: center; gap: .7em;
  margin: -1.4rem 0 2.2rem;
  padding: 0; border: none; background: none; cursor: pointer;
  font-family: var(--font-display); font-weight: 500; font-size: .95rem;
  color: oklch(93% 0.01 90 / .95);
  transition: color .2s ease;
}
.hero__playlink:hover { color: #fff; }
.hero__playlink-icon {
  width: 38px; height: 38px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  border: 1.5px solid oklch(100% 0 0 / .45);
  background: oklch(100% 0 0 / .12);
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.hero__playlink-icon svg { width: 16px; height: 16px; margin-left: 2px; }
.hero__playlink:hover .hero__playlink-icon {
  background: var(--accent); border-color: var(--accent); transform: scale(1.06);
}

/* Rutube в лайтбоксе: там запуск происходит по клику пользователя */
.lightbox__video {
  width: min(90vw, 1100px);
  aspect-ratio: 16 / 9;
  border: 0; border-radius: 12px;
  background: #000;
}

/* ===================== Мобильная гармонизация ===================== */
@media (max-width: 760px) {
  /* Герой: кнопки одной ширины, статистика в один ровный ряд */
  .hero__actions { gap: .7rem; margin-bottom: 2rem; }
  .hero__actions .btn { flex: 1 1 100%; justify-content: center; text-align: center; }
  .hero__playlink { margin-bottom: 1.6rem; }
  .hero__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
    align-items: start;
  }
  .stat__num { font-size: 1.25rem; }
  .stat__label { font-size: .8rem; line-height: 1.35; }
  .hero__title { font-size: clamp(2rem, 9vw, 2.9rem); }
  .hero .eyebrow { font-size: .72rem; letter-spacing: .1em; }

  /* Карусельные стрелки — к правому краю, на одну линию с заголовком */
  .events__nav, .partners__nav { margin-left: auto; }

  /* Галерея: две колонки вместо одной огромной */
  .gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .shot { border-radius: 10px; }
  .shot__label { font-size: .72rem; padding: .22rem .55rem; }
  .shot__num { font-size: .62rem; }

  /* Видеоотзывы: компактнее слоты */
  .vreview__slot { min-height: 180px; padding: 1.3rem 1.1rem; }
  .vreview__slot svg { width: 32px; height: 32px; }
  .vreview__body { padding: 1rem 1.05rem 1.15rem; }

  /* Ровные вертикальные отступы у всех секций */
  .events, .about, .benefits, .gallery, .founder, .parkmap, .reviews, .partners {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

@media (max-width: 420px) {
  .gallery__grid { grid-template-columns: 1fr 1fr; }
  .hero__stats { gap: .6rem; }
  .stat__num { font-size: 1.15rem; }
  .stat__label { font-size: .75rem; }
}

/* Контакты в мобильном меню — телефон и адрес всегда под рукой */
.mobile-menu__contacts {
  margin: .4rem 0 0;
  padding: 1.25rem clamp(1.25rem, 4vw, 3rem) 1.5rem;
  border-top: 1px solid var(--edge);
  background: var(--surface-2);
  display: flex;
  flex-direction: column;
  gap: .9rem;
}
.mobile-menu .mobile-menu__contact {
  display: flex; align-items: flex-start; gap: .65rem;
  padding: 0;
  border-top: 0;
  font-family: var(--font-body);
  font-size: 1rem; line-height: 1.45;
  color: var(--text-muted);
}
.mobile-menu .mobile-menu__contact--phone {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--text);
}
.mobile-menu__contact .icon { flex: none; width: 1.15em; height: 1.15em; margin-top: .15em; color: var(--accent); }
.mobile-menu .mobile-menu__contacts .btn {
  margin-top: .5rem;
  padding: .85rem 1.2rem;
  border-top: 0;
  justify-content: center;
}

/* ===================== Окно «Подробнее» о мероприятии ===================== */
.emodal {
  position: fixed; inset: 0; z-index: 60;
  display: flex; align-items: center; justify-content: center;
  padding: clamp(.75rem, 3vw, 2.5rem);
  background: oklch(18% 0.02 260 / .62);
  backdrop-filter: blur(6px);
  opacity: 0; visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.emodal.is-open { opacity: 1; visibility: visible; }

.emodal__dialog {
  position: relative;
  width: min(880px, 100%);
  max-height: min(92vh, 900px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: clamp(16px, 2vw, 24px);
  box-shadow: 0 50px 90px -40px oklch(18% 0.02 260 / .6);
  transform: translateY(18px) scale(.985);
  transition: transform .28s cubic-bezier(.2, .8, .3, 1);
}
.emodal.is-open .emodal__dialog { transform: none; }

.emodal__close {
  position: absolute; top: .85rem; right: .85rem; z-index: 3;
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border: 0; border-radius: 50%;
  background: oklch(100% 0 0 / .92);
  color: oklch(25% 0.02 260);
  box-shadow: 0 8px 20px -8px oklch(18% 0.02 260 / .55);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.emodal__close:hover { background: #fff; transform: scale(1.06); }
.emodal__close .icon { width: 20px; height: 20px; }

/* шапка окна с кадром мероприятия */
.emodal__hero { position: relative; }
.emodal__hero img {
  width: 100%; height: clamp(190px, 26vw, 300px);
  object-fit: cover; display: block;
}
.emodal__hero-veil {
  position: absolute; inset: 0;
  background: linear-gradient(to top, oklch(16% 0.02 260 / .92) 0%, oklch(16% 0.02 260 / .55) 45%, oklch(16% 0.02 260 / .15) 100%);
}
.emodal__hero-text {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: clamp(1.1rem, 2.5vw, 1.8rem) clamp(1.25rem, 3vw, 2.2rem);
}
.emodal__date {
  margin: 0 0 .45rem;
  font-family: var(--font-display); font-weight: 600;
  font-size: .82rem; letter-spacing: .1em; text-transform: uppercase;
  color: oklch(88% 0.09 55);
}
.emodal__title {
  margin: 0;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.45rem, 3vw, 2.1rem); line-height: 1.15;
  color: oklch(99% 0 0);
}
.emodal__sub {
  margin: .45rem 0 0;
  font-size: 1rem; color: oklch(90% 0.01 90 / .92);
}

.emodal__body { padding: clamp(1.3rem, 3vw, 2.2rem) clamp(1.25rem, 3vw, 2.2rem) 0; }
.emodal__text p {
  margin: 0 0 1rem;
  font-size: 1.04rem; line-height: 1.7; color: var(--text-muted);
  max-width: 62ch;
}
.emodal__text p:last-child { margin-bottom: 0; }

.emodal__list {
  list-style: none;
  margin: 1.4rem 0 0; padding: 0;
  display: grid; gap: .7rem;
}
.emodal__list li {
  position: relative;
  padding-left: 1.9rem;
  font-size: 1rem; line-height: 1.55; color: var(--text);
}
.emodal__list li::before {
  content: "";
  position: absolute; left: 0; top: .4em;
  width: 1.05rem; height: 1.05rem;
  border-radius: 50%;
  background: var(--accent);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6L9 17l-5-5' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6L9 17l-5-5' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat;
}

.emodal__gallery-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
  margin: 1.9rem 0 .9rem;
}
.emodal__gallery-title {
  margin: 0;
  font-family: var(--font-display); font-weight: 700; font-size: 1.1rem;
}
.emodal__gallery-note { margin: 0; font-size: .86rem; color: var(--text-faint); }

.emodal__gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.5rem, 1vw, .8rem);
}
.eshot {
  position: relative; margin: 0;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--edge);
  border-radius: 12px;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.eshot--stub {
  background: repeating-linear-gradient(45deg, oklch(90% 0.006 250) 0 10px, oklch(93% 0.005 250) 10px 20px);
}
.eshot--photo { cursor: zoom-in; transition: transform .2s ease, border-color .2s ease; }
.eshot--photo:hover, .eshot--photo:focus-visible { transform: scale(1.02); border-color: var(--accent); }
.eshot--photo img { width: 100%; height: 100%; object-fit: cover; }
.eshot__label {
  font-family: var(--font-display); font-weight: 600;
  font-size: .8rem; color: var(--text-muted);
  background: var(--surface);
  border-radius: var(--radius-chip);
  padding: .26rem .7rem;
}
.eshot__num {
  position: absolute; top: .45rem; left: .55rem;
  font-size: .68rem; color: var(--text-faint);
  font-family: var(--font-display);
}

.emodal__foot {
  position: sticky; bottom: 0;
  margin-top: clamp(1.4rem, 3vw, 2rem);
  padding: clamp(1rem, 2.5vw, 1.4rem) clamp(1.25rem, 3vw, 2.2rem) clamp(1.25rem, 3vw, 1.8rem);
  background: linear-gradient(to top, var(--surface) 62%, transparent);
}

@media (max-width: 720px) {
  .emodal { padding: 0; align-items: stretch; }
  .emodal__dialog {
    width: 100%; max-height: 100%;
    border-radius: 0; border: 0;
  }
  .emodal__gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .emodal__text p { font-size: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .emodal, .emodal__dialog, .emodal__close, .eshot--photo { transition: none; }
}

/* кнопка «Подробнее» в карточке афиши */
.ecard__more { margin-bottom: .6rem; }

/* =========================================================================
   СТРАНИЦЫ ШОУ
   ========================================================================= */
/* =========================================================================
   Страница «Монстр-траки против танков».
   Опирается на токены и компоненты из styles.css — здесь только то,
   что есть на этой странице.
   ========================================================================= */

/* ---------- Главный экран ---------- */
.thero {
  position: relative;
  overflow: hidden;
  padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.25rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem);
  min-height: min(100dvh, 900px);
  display: flex;
  align-items: center;
}
.thero__poster {
  position: absolute; inset: 0; z-index: 0;
  background: url('../assets/tanki/hero-poster.jpg') center / cover no-repeat;
}
.thero__video-wrap { position: absolute; inset: 0; z-index: 1; overflow: hidden; }
.thero__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  border: 0;
  pointer-events: none;
}
.thero__video.is-failed { display: none; }
.thero__scrim {
  position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(100deg, oklch(14% 0.02 260 / .88) 0%, oklch(14% 0.02 260 / .7) 40%, oklch(14% 0.02 260 / .45) 62%, oklch(14% 0.02 260 / .72) 100%),
    linear-gradient(to top, oklch(10% 0.02 260 / .75) 0%, transparent 38%);
}

.thero__inner {
  position: relative; z-index: 3;
  width: 100%;
  max-width: 1600px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.thero__content { max-width: 40rem; }
.thero .eyebrow { color: oklch(92% 0.07 58); text-shadow: 0 1px 14px oklch(14% 0.02 260 / .65); }
.thero__title {
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(1.9rem, 5.2vw, 4.4rem);
  line-height: 1.02;
  letter-spacing: -.015em;
  margin: 0 0 1.1rem;
  color: oklch(99% 0 0);
}
/* каждая половина названия — своя строка, переносов внутри нет */
.thero__title span { display: block; white-space: nowrap; }
@media (max-width: 420px) { .thero__title { font-size: clamp(1.62rem, 8.4vw, 2rem); } }
/* «Мужественные люди» — строка длиннее, чем на других шоу: держим кегль так,
   чтобы обе строки укладывались в свою колонку и не заходили под плитку промокода */
@media (min-width: 1021px) {
  .page-forsazh .thero__title { font-size: clamp(2.1rem, 3.7vw, 3.2rem); }
}
@media (max-width: 460px) {
  .page-forsazh .thero__title { font-size: clamp(1.28rem, 7.05vw, 1.8rem); }
}
/* «Парк экстремальных аттракционов» — самая длинная строка из всех страниц:
   держим кегль так, чтобы обе строки укладывались в свою колонку */
@media (min-width: 1021px) {
  .page-park .thero__title { font-size: clamp(2rem, 3.3vw, 3rem); }
}
@media (max-width: 1020px) and (min-width: 521px) {
  .page-park .thero__title { font-size: clamp(1.8rem, 4.6vw, 3rem); }
}
@media (max-width: 520px) {
  .page-park .thero__title { font-size: clamp(1.32rem, 7.2vw, 1.9rem); }
}
.thero__subtitle {
  margin: 0 0 1.4rem;
  font-size: clamp(1rem, 1.3vw, 1.12rem);
  line-height: 1.6;
  color: oklch(93% 0.01 90 / .95);
  max-width: 46ch;
}
.thero__price {
  display: inline-flex; align-items: baseline; gap: .55rem;
  margin: 0 0 1.8rem;
  padding: .55rem 1.1rem;
  border-radius: var(--radius-chip);
  background: oklch(100% 0 0 / .1);
  border: 1px solid oklch(100% 0 0 / .22);
  color: oklch(92% 0.01 90);
  font-size: .95rem;
}
.thero__price-num {
  flex: none; white-space: nowrap;
  font-family: var(--font-display); font-weight: 800;
  font-size: 1.25rem;
  color: oklch(88% 0.11 58);
}

.thero__actions { display: flex; gap: .9rem; flex-wrap: wrap; margin-bottom: 1.6rem; }
.thero__actions .btn--outline {
  background: oklch(100% 0 0 / .1);
  color: oklch(98% 0 0);
  border-color: oklch(100% 0 0 / .45);
  backdrop-filter: blur(6px);
}
.thero__actions .btn--outline:hover { background: oklch(100% 0 0 / .2); border-color: oklch(100% 0 0 / .75); color: oklch(100% 0 0); }

.thero__playlink {
  display: inline-flex; align-items: center; gap: .7rem;
  background: none; border: 0; padding: 0; cursor: pointer;
  font-family: var(--font-display); font-weight: 500; font-size: .95rem;
  color: oklch(90% 0.01 90 / .9);
}
.thero__playlink:hover { color: oklch(100% 0 0); }
.thero__playlink-icon {
  width: 38px; height: 38px; flex: none;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid oklch(100% 0 0 / .4);
  background: oklch(100% 0 0 / .12);
  transition: background .2s ease, transform .2s ease;
}
.thero__playlink-icon svg { width: 16px; height: 16px; margin-left: 2px; }
.thero__playlink:hover .thero__playlink-icon { background: var(--accent); border-color: var(--accent); transform: scale(1.06); }

/* ---------- Плитки ближайших дат ---------- */
.thero__dates {
  background: oklch(100% 0 0 / .1);
  border: 1px solid oklch(100% 0 0 / .2);
  border-radius: clamp(16px, 2vw, 22px);
  padding: clamp(1.1rem, 2vw, 1.6rem);
  backdrop-filter: blur(10px);
}
.thero__dates-title {
  margin: 0 0 1rem;
  font-family: var(--font-display); font-weight: 600;
  font-size: .82rem; letter-spacing: .12em; text-transform: uppercase;
  color: oklch(88% 0.09 58);
}
.thero__dates-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}
.tdate {
  display: flex; flex-direction: column; align-items: flex-start; gap: .25rem;
  padding: .95rem 1rem 1rem;
  border-radius: 14px;
  border: 1px solid oklch(100% 0 0 / .22);
  background: oklch(100% 0 0 / .08);
  color: oklch(97% 0 0);
  text-align: left;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.tdate:hover { background: oklch(100% 0 0 / .18); border-color: var(--accent); transform: translateY(-2px); }
.tdate__day { font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; }
.tdate__time { font-size: .86rem; color: oklch(88% 0.01 90 / .82); }
.tdate__cta {
  margin-top: .45rem;
  font-size: .8rem; font-weight: 600;
  color: oklch(86% 0.11 58);
}
/* Две даты вместо четырёх — раскладываем их строками во всю ширину */
.thero__dates-grid--wide { grid-template-columns: minmax(0, 1fr); }
.thero__dates-grid--wide .tdate {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  align-items: center; gap: .15rem 1rem;
  padding: 1rem 1.15rem;
}
.thero__dates-grid--wide .tdate__day  { grid-column: 1; grid-row: 1; font-size: 1.12rem; }
.thero__dates-grid--wide .tdate__time { grid-column: 1; grid-row: 2; }
.thero__dates-grid--wide .tdate__cta {
  grid-column: 2; grid-row: 1 / span 2; margin: 0;
  padding: .55rem 1.05rem; border-radius: var(--radius-chip);
  background: oklch(100% 0 0 / .12); border: 1px solid oklch(100% 0 0 / .24);
  transition: background .2s ease, border-color .2s ease;
}
.thero__dates-grid--wide .tdate:hover .tdate__cta { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
@media (max-width: 420px) {
  .thero__dates-grid--wide .tdate { grid-template-columns: minmax(0, 1fr); }
  .thero__dates-grid--wide .tdate__cta { grid-column: 1; grid-row: 3; justify-self: start; margin-top: .5rem; }
}

.thero__dates-place {
  display: flex; align-items: flex-start; gap: .55rem;
  margin: 1.1rem 0 0;
  font-size: .88rem; line-height: 1.5;
  color: oklch(89% 0.01 90 / .85);
}
.thero__dates-place .icon { flex: none; width: 1.1em; height: 1.1em; margin-top: .15em; color: oklch(86% 0.11 58); }

@media (max-width: 1020px) {
  .thero__inner { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .thero__content { max-width: none; }
  .thero__dates { max-width: 34rem; }
}
@media (max-width: 560px) {
  .thero__dates-grid { grid-template-columns: 1fr; }
  .thero__actions .btn { flex: 1 1 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .thero__video-wrap { display: none; }
  .tdate, .thero__playlink-icon { transition: none; }
}

/* ---------- Общий CTA внутри блока ---------- */
.tsec-cta { display: flex; justify-content: center; margin-top: clamp(1.8rem, 3vw, 2.6rem); }
.tsec-cta .btn { padding: .95rem 2.2rem; }

/* ---------- Программа ---------- */
.tprog {
  position: relative;
  /* подсветка под заголовком выходит за края секции — обрезаем,
     иначе на планшете появляется горизонтальная прокрутка */
  overflow: hidden;
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem);
  max-width: 1600px; margin-inline: auto;
}
/* Слой с парящими коллажами. Кладётся первым ребёнком в любую секцию,
   секции для этого достаточно быть position: relative. */
.sec-art { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.tben-sec, .tgal { position: relative; }
.tben-sec__head, .tben-sec__grid, .tgal__head, .tgal__grid, .tsec-cta { position: relative; z-index: 1; }
.tart {
  position: absolute;
  width: var(--w);
  aspect-ratio: var(--ar);
  background: var(--src) center / contain no-repeat;
  opacity: var(--op, .5);
  will-change: transform;
  /* курсор их не двигает — только собственное парение */
  animation: tFloat var(--dur, 13s) ease-in-out var(--delay, 0s) infinite alternate;
}
@keyframes tFloat {
  from { transform: translate3d(0, 0, 0) rotate(calc(var(--tilt, 1.4deg) * -1)); }
  to   { transform: translate3d(var(--driftX, 10px), calc(var(--float, 20px) * -1), 0) rotate(var(--tilt, 1.4deg)); }
}
/* «Программа» — танк со взрывом в пустоте между колонками */
.tart--tank {
  --src: url('../assets/tanki/program-3.webp'); --ar: 820/459;
  --w: 23vw; --op: .55; --dur: 16s; --delay: -5s;
  --float: 26px; --driftX: -14px; --tilt: 1.2deg;
  top: 4%; left: 45%;
}
/* «Преимущества» — коллаж с огнём справа от заголовка */
.tart--fire {
  --src: url('../assets/tanki/program-1.webp'); --ar: 820/817;
  --w: 16vw; --op: .52; --dur: 15s;
  --float: 22px; --driftX: 12px; --tilt: 1.6deg;
  top: 32px; right: 9%;
}
/* «Фотоотчёты» — бигфут справа от заголовка */
.tart--bigfoot {
  --src: url('../assets/tanki/program-2.webp'); --ar: 820/958;
  --w: 15vw; --op: .52; --dur: 19s; --delay: -9s;
  --float: 24px; --driftX: 10px; --tilt: -1.5deg;
  top: 34px; left: 46%;
}

/* текстовые колонки подсвечены, чтобы картинки не мешали читать */
.tprog__head::before {
  content: "";
  position: absolute;
  inset: -12% -6% -18% -8%;
  z-index: -1;
  background: radial-gradient(70% 70% at 30% 50%, oklch(99% 0.003 90 / .88), transparent 72%);
  pointer-events: none;
}

.tprog__head { position: relative; z-index: 1; isolation: isolate; max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.tprog__lead { margin: .9rem 0 0; font-size: 1.06rem; line-height: 1.7; color: var(--text-muted); max-width: 58ch; }

.tprog__body {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(1.4rem, 3vw, 2.6rem);
  align-items: start;
}
.tprog__col { display: flex; flex-direction: column; gap: 1.4rem; }
.tprog__subtitle {
  margin: 0 0 1.1rem;
  font-family: var(--font-display); font-weight: 700;
  font-size: 1.2rem;
}
.tprog__machines { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.tmach {
  padding: 1.1rem 1.3rem 1.2rem;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-left: 3px solid var(--accent);
  border-radius: 16px;
  box-shadow: 0 18px 40px -36px oklch(23% 0.02 260 / .6);
}
.tmach__name { margin: 0 0 .35rem; font-family: var(--font-display); font-weight: 700; font-size: 1.04rem; }
.tmach__text { margin: 0; font-size: .98rem; line-height: 1.6; color: var(--text-muted); }

.tprog__note {
  padding: clamp(1.3rem, 2.5vw, 1.8rem);
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  box-shadow: 0 22px 50px -38px oklch(23% 0.02 260 / .6);
}
.tprog__note p { margin: 0 0 .9rem; font-size: 1rem; line-height: 1.7; color: var(--text-muted); }
.tprog__note p:last-child { margin-bottom: 0; }
.tprog__note-accent {
  margin-top: 1.1rem !important;
  padding-top: 1rem;
  border-top: 1px solid var(--edge);
  color: var(--accent-dim) !important;
  font-weight: 600;
}

@media (max-width: 900px) {
  .tprog__body { grid-template-columns: minmax(0, 1fr); }
  /* на узких экранах сдвиг анимации направляем внутрь блока, иначе край срежет */
  .tart--tank    { --w: 40vw; --op: .35; --driftX: -12px; top: 32px; left: auto; right: 22px; }
  .tart--fire    { --w: 30vw; --op: .34; --driftX: -12px; top: 28px; right: 22px; }
  .tart--bigfoot { --w: 27vw; --op: .34; --driftX: -12px; top: 28px; left: auto; right: 22px; }
}

/* ---------- Преимущества ---------- */
.tben-sec {
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem);
  max-width: 1600px; margin-inline: auto;
}
.tben-sec__head { max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 2.8rem); }
.tben-sec__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(.9rem, 1.6vw, 1.4rem);
}
/* 7 карточек: сверху 4, снизу 3 — и нижние растянуты на всю ширину,
   поэтому обе строки заканчиваются ровно по краю контейнера */
@media (min-width: 1200px) {
  .tben-sec__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .tben-sec__grid > .tben:nth-child(-n + 4) { grid-column: span 3; }
  .tben-sec__grid > .tben:nth-child(n + 5)  { grid-column: span 4; }
}
.tben {
  display: flex; flex-direction: column; gap: .8rem;
  padding: clamp(1.3rem, 2.2vw, 1.8rem);
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  box-shadow: 0 20px 44px -38px oklch(23% 0.02 260 / .6);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.tben:hover {
  transform: translateY(-4px);
  border-color: var(--accent-line, var(--edge-strong));
  box-shadow: 0 28px 56px -34px oklch(23% 0.02 260 / .62);
}
.tben__icon {
  width: 54px; height: 54px; flex: none;
  background: linear-gradient(135deg, oklch(57% 0.19 42), var(--accent) 65%, var(--accent-dim));
  -webkit-mask: var(--icon) center / 100% no-repeat;
  mask: var(--icon) center / 100% no-repeat;
}
.tben--stunt .tben__icon { --icon: url('../assets/tanki/icons/stunt.svg'); }
.tben--kids .tben__icon { --icon: url('../assets/tanki/icons/kids.svg'); }
.tben--center .tben__icon { --icon: url('../assets/tanki/icons/center.svg'); }
.tben--bus .tben__icon { --icon: url('../assets/tanki/icons/bus.svg'); }
.tben--champions .tben__icon { --icon: url('../assets/tanki/icons/champions.svg'); }
.tben--photo .tben__icon { --icon: url('../assets/tanki/icons/photo.svg'); }
.tben--open-air .tben__icon { --icon: url('../assets/tanki/icons/open-air.svg'); }
.tben__title { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1.06rem; line-height: 1.35; }
.tben__text { margin: 0; font-size: .98rem; line-height: 1.6; color: var(--text-muted); }

/* ---------- Фотоотчёты ---------- */
.tgal {
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem);
  max-width: 1600px; margin-inline: auto;
}
.tgal__head { max-width: 46rem; margin-bottom: clamp(1.6rem, 3vw, 2.2rem); }
.tgal__lead { margin: .8rem 0 0; color: var(--text-muted); font-size: 1.02rem; line-height: 1.6; max-width: 58ch; }
.tgal__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(.5rem, 1vw, .9rem);
}
.tshot {
  position: relative; margin: 0;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--edge);
  border-radius: 14px;
  overflow: hidden;
  cursor: zoom-in;
  display: flex; align-items: center; justify-content: center;
  background: repeating-linear-gradient(45deg, oklch(90% 0.006 250) 0 10px, oklch(93% 0.005 250) 10px 20px);
  transition: transform .2s ease, border-color .2s ease;
}
.tshot:hover, .tshot:focus-visible { transform: scale(1.03); border-color: var(--accent); }
.tshot img { width: 100%; height: 100%; object-fit: cover; }
.tshot__label {
  font-family: var(--font-display); font-weight: 600;
  font-size: .82rem; color: var(--text-muted);
  background: var(--surface);
  border-radius: var(--radius-chip);
  padding: .28rem .72rem;
  pointer-events: none;
}
.tshot__num {
  position: absolute; top: .45rem; left: .6rem;
  font-size: .68rem; color: var(--text-faint);
  font-family: var(--font-display);
  pointer-events: none;
}
@media (max-width: 1100px) { .tgal__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 860px)  { .tgal__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px)  { .tgal__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; } }

/* ---------- Окно покупки билета ---------- */
.tbuy {
  position: fixed; inset: 0; z-index: 70;
  display: flex; align-items: center; justify-content: center;
  padding: clamp(.75rem, 3vw, 2.5rem);
  background: oklch(18% 0.02 260 / .62);
  backdrop-filter: blur(6px);
  opacity: 0; visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.tbuy.is-open { opacity: 1; visibility: visible; }
.tbuy__dialog {
  position: relative;
  width: min(720px, 100%);
  max-height: min(92vh, 860px);
  overflow-y: auto;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: clamp(16px, 2vw, 24px);
  box-shadow: 0 50px 90px -40px oklch(18% 0.02 260 / .6);
  padding: clamp(1.4rem, 3vw, 2.2rem);
  transform: translateY(18px) scale(.985);
  transition: transform .28s cubic-bezier(.2, .8, .3, 1);
}
.tbuy.is-open .tbuy__dialog { transform: none; }
.tbuy__close {
  position: absolute; top: .85rem; right: .85rem;
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border: 1px solid var(--edge); border-radius: 50%;
  background: var(--surface-2); color: var(--text);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.tbuy__close:hover { background: var(--surface); transform: scale(1.06); }
.tbuy__close .icon { width: 20px; height: 20px; }
.tbuy__head { margin-bottom: 1.4rem; padding-right: 3rem; }
.tbuy__title { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
.tbuy__sub { margin: .5rem 0 0; color: var(--text-muted); font-size: .96rem; line-height: 1.55; }
.tbuy__slot {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .7rem; text-align: center;
  min-height: 320px;
  padding: 1.8rem 1.4rem;
  border: 1px dashed var(--edge-strong);
  border-radius: var(--radius-card);
  background: oklch(99% 0.002 90 / .6);
}
.tbuy__slot svg { width: 42px; height: 42px; color: var(--accent); opacity: .8; }
.tbuy__slot-title { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1.04rem; }
.tbuy__slot-note { margin: 0; font-size: .92rem; line-height: 1.6; color: var(--text-muted); max-width: 38ch; }
.tbuy__slot code { font-size: .88em; background: var(--surface-2); padding: .1em .35em; border-radius: 5px; }

@media (max-width: 620px) {
  .tbuy { padding: 0; align-items: stretch; }
  .tbuy__dialog { width: 100%; max-height: 100%; border-radius: 0; border: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .tbuy, .tbuy__dialog, .tbuy__close, .tben, .tshot { transition: none; }
  .tart { animation: none; }
}


/* =========================================================================
   Фон страницы шоу: только машины, бигфуты, монстр-траки и танки.
   Мотоциклы скрыты, техника разложена заново; блобы, молнии и звёзды —
   как на остальном сайте.
   ========================================================================= */
.page-show .art--moto-blue,
.page-show .art--moto-orange,
.page-show .art--moto-jump,
.page-show .art--moto-trick { display: none; }

.page-show .art--tank {
  --art-src: url('../assets/decor/tank.webp'); --ar: 471 / 267;
  --w: 23vw; --art-op: .24; --art-blur: 2px; --art-dur: 16s; --art-float: 15px;
  top: 10%; left: -4vw;
}
.page-show .art--truck-flame   { display: block; --w: 19vw; --art-op: .14; --art-blur: 6px; top: 40%; left: -6vw; right: auto; }
.page-show .art--truck-ink     { display: block; --w: 18vw; --art-op: .13; top: 71%; left: -3vw; }
.page-show .art--truck-usa     { --w: 26vw; top: 2%;  right: -4vw; }
.page-show .art--truck-masterfoot { --w: 26vw; top: 52%; right: -3vw; }
.page-show .art--truck-dragon  { --w: 20vw; top: 83%; right: 1vw; left: auto; }
.page-show .art--truck-blue    { display: block; --w: 17vw; --art-op: .12; --art-blur: 7px; top: 12%; left: 29%; }
.page-show .art--truck-teeth   { display: block; --w: 19vw; --art-op: .12; --art-blur: 7px; top: 77%; right: 29%; }

@media (max-width: 1100px) {
  .page-show .art--truck-blue,
  .page-show .art--truck-teeth,
  .page-show .art--truck-flame,
  .page-show .art--truck-ink { display: none; }
  .page-show .art--tank          { --w: 38vw; --art-op: .26; top: 12%; left: -8vw; }
  .page-show .art--truck-usa     { --w: 38vw; top: 2%;  right: -10vw; }
  .page-show .art--truck-masterfoot { --w: 40vw; top: 52%; right: -9vw; }
  .page-show .art--truck-dragon  { --w: 36vw; top: 82%; left: -8vw; right: auto; }
}
@media (max-width: 640px) {
  .page-show .art--tank          { --w: 46vw; }
  .page-show .art--truck-usa     { --w: 46vw; }
  .page-show .art--truck-masterfoot { --w: 46vw; }
  .page-show .art--truck-dragon  { --w: 44vw; }
}

/* Заглушка кадра в просмотрщике — пока в галерее нет настоящих фото */
.lightbox__stub {
  width: min(78vw, 980px);
  aspect-ratio: 4 / 3;
  max-height: 78vh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .8rem;
  border-radius: 16px;
  background: repeating-linear-gradient(45deg, oklch(88% 0.006 250) 0 14px, oklch(92% 0.005 250) 14px 28px);
}
.lightbox__stub-size {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(1.1rem, 2.4vw, 1.7rem);
  color: oklch(35% 0.02 260);
  background: var(--surface);
  border-radius: var(--radius-chip);
  padding: .5rem 1.2rem;
}
.lightbox__stub-note { font-size: .95rem; color: oklch(40% 0.02 260); }

/* ===================== Аттракционы (общий блок над футером) ===================== */
.attr {
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem);
  max-width: 1600px; margin-inline: auto;
}
.attr__head { max-width: 50rem; margin-bottom: clamp(1.6rem, 3vw, 2.2rem); }
.attr__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 62ch; }
.attr__note {
  display: inline-flex; align-items: flex-start; gap: .6rem;
  margin: 1.2rem 0 0;
  padding: .7rem 1.1rem;
  border-radius: var(--radius-chip);
  background: var(--surface);
  border: 1px solid var(--edge);
  font-size: .95rem; line-height: 1.5; color: var(--text);
}
.attr__note .icon { flex: none; width: 1.15em; height: 1.15em; margin-top: .15em; color: var(--accent); }

.attr__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.8rem, 1.5vw, 1.3rem);
}
.attr-card {
  display: flex; flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: 0 20px 44px -38px oklch(23% 0.02 260 / .6);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.attr-card:hover {
  transform: translateY(-4px);
  border-color: var(--accent-line, var(--edge-strong));
  box-shadow: 0 28px 56px -32px oklch(23% 0.02 260 / .62);
}
.attr-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.attr-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.attr-card:hover .attr-card__media img { transform: scale(1.06); }
.attr-card__body { display: flex; flex-direction: column; gap: .45rem; padding: 1.05rem 1.15rem 1.25rem; flex: 1 1 auto; }
.attr-card__name { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1.04rem; line-height: 1.3; }
.attr-card__text { margin: 0; font-size: .95rem; line-height: 1.55; color: var(--text-muted); }

@media (max-width: 1100px) { .attr__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px)  { .attr__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px)  { .attr__grid { gap: .6rem; } .attr-card__body { padding: .85rem .9rem 1rem; } }
@media (prefers-reduced-motion: reduce) {
  .attr-card, .attr-card__media img { transition: none; }
}

/* =========================================================================
   СТРАНИЦА «РУССКИЙ ФОРСАЖ. МУЖЕСТВЕННЫЕ ЛЮДИ»
   ========================================================================= */

/* ---------- Факты в первом экране ---------- */
.thero__facts {
  list-style: none; margin: 0 0 1.6rem; padding: 0;
  display: grid; gap: .8rem;
}
.thero__facts li {
  display: flex; align-items: flex-start; gap: .7rem;
  font-size: .96rem; line-height: 1.45;
  color: oklch(90% 0.01 90 / .9);
}
.thero__facts b { color: oklch(99% 0 0); font-weight: 600; }
.thero__facts .icon { flex: none; width: 1.2em; height: 1.2em; margin-top: .15em; color: oklch(86% 0.11 58); }

/* ---------- Плитка с промокодом ---------- */
.promo {
  position: relative;
  overflow: hidden;
  padding: clamp(1.4rem, 2.6vw, 2rem);
  border-radius: clamp(18px, 2.2vw, 26px);
  background:
    linear-gradient(150deg, oklch(30% 0.10 40 / .92), oklch(20% 0.05 30 / .92) 55%, oklch(24% 0.08 20 / .92));
  border: 1px solid oklch(100% 0 0 / .22);
  box-shadow: 0 40px 80px -46px oklch(10% 0.02 260 / .9);
  backdrop-filter: blur(10px);
  text-align: center;
  color: oklch(97% 0 0);
}
.promo__glow {
  position: absolute; inset: -40% -20% auto -20%; height: 80%;
  background: radial-gradient(60% 60% at 50% 0%, oklch(70% 0.2 45 / .55), transparent 70%);
  pointer-events: none;
}
.promo > * { position: relative; }

.promo__anniv {
  display: inline-flex; align-items: center; gap: .5rem;
  margin: 0 0 1.1rem;
  padding: .4rem .9rem .4rem .5rem;
  border-radius: var(--radius-chip);
  background: oklch(100% 0 0 / .12);
  border: 1px solid oklch(100% 0 0 / .26);
  font-family: var(--font-display); font-weight: 600;
  font-size: .82rem; letter-spacing: .06em; text-transform: uppercase;
  color: oklch(92% 0.02 80);
}
.promo__anniv-num {
  padding: .18rem .55rem;
  border-radius: var(--radius-chip);
  background: linear-gradient(135deg, oklch(70% 0.17 55), var(--accent));
  color: oklch(15% 0.02 40);
  font-weight: 800;
}

.promo__label {
  margin: 0;
  font-size: .95rem; line-height: 1.4;
  color: oklch(88% 0.01 90 / .88);
}
.promo__off {
  margin: .2rem 0 0;
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(3.4rem, 7vw, 5rem);
  line-height: .95;
  letter-spacing: -.03em;
  background: linear-gradient(135deg, oklch(88% 0.14 70), oklch(72% 0.2 45) 60%, oklch(64% 0.19 30));
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.promo__off span { font-size: .5em; vertical-align: .35em; margin-left: .04em; }
.promo__hint {
  margin: .1rem 0 .9rem;
  font-size: .86rem; letter-spacing: .08em; text-transform: uppercase;
  color: oklch(85% 0.01 90 / .72);
}

.promo__code {
  width: 100%;
  display: flex; align-items: center; justify-content: center; gap: .7rem;
  padding: .85rem 1rem;
  border: 1px dashed oklch(100% 0 0 / .45);
  border-radius: 14px;
  background: oklch(100% 0 0 / .08);
  color: oklch(99% 0 0);
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1rem, 1.6vw, 1.22rem);
  letter-spacing: .04em;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.promo__code:hover { background: oklch(100% 0 0 / .16); border-color: var(--accent); transform: translateY(-2px); }
.promo__code-icon { display: grid; place-items: center; width: 22px; height: 22px; flex: none; opacity: .8; }
.promo__code-icon svg { width: 100%; height: 100%; }
.promo__code.is-copied { border-style: solid; border-color: oklch(75% 0.16 145); }
.promo__code.is-copied .promo__code-text::after {
  content: " — скопирован";
  font-size: .6em; font-weight: 600; letter-spacing: .02em;
  color: oklch(82% 0.14 145);
}

.promo__date {
  margin: .9rem 0 1.1rem;
  font-size: .92rem;
  color: oklch(88% 0.01 90 / .82);
}

@media (max-width: 1020px) { .promo { max-width: 26rem; } }

/* ---------- Программа ---------- */
.fprog {
  position: relative;
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem);
  max-width: 1600px; margin-inline: auto;
}
.fprog__head, .fprog__part, .fpromise { position: relative; z-index: 1; }
.fprog__head { max-width: 52rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.fprog__lead { margin: .9rem 0 0; font-size: 1.06rem; line-height: 1.7; color: var(--text-muted); max-width: 62ch; }

.fprog__part { margin-bottom: clamp(2rem, 4vw, 3rem); }
.fprog__part-head { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.2rem; }
.fprog__num {
  flex: none;
  display: grid; place-items: center;
  width: 46px; height: 46px;
  border-radius: 14px;
  background: linear-gradient(135deg, oklch(57% 0.19 42), var(--accent) 65%, var(--accent-dim));
  color: var(--accent-ink);
  font-family: var(--font-display); font-weight: 800; font-size: 1rem;
  box-shadow: 0 14px 26px -16px oklch(56% 0.19 40 / .7);
}
.fprog__subtitle { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1.22rem; }
.fprog__note { margin: .25rem 0 0; font-size: .95rem; color: var(--text-faint); }

.fprog__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.8rem, 1.4vw, 1.2rem);
}
/* ---- Карточка пункта программы ----
   Светлые карточки — дневная часть (экспозиции), тёмные «арена» — вечернее шоу.
   Тег сверху задаёт быстрый скан: категория → название → подробность. */
.pcard {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex; flex-direction: column;
  gap: .45rem;
  padding: 1.35rem 1.4rem 1.5rem;
  border-radius: 18px;
  background: linear-gradient(168deg, var(--surface), var(--surface-2));
  border: 1px solid var(--edge);
  transition: transform .28s cubic-bezier(.2, .7, .3, 1), box-shadow .28s ease, border-color .28s ease;
}
/* тонкая штриховка по диагонали — фактура вместо плоской заливки */
.pcard::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: repeating-linear-gradient(135deg,
    oklch(56% 0.19 40 / .05) 0 1px, transparent 1px 9px);
  opacity: .8;
  -webkit-mask-image: linear-gradient(200deg, #000 0%, transparent 62%);
          mask-image: linear-gradient(200deg, #000 0%, transparent 62%);
  pointer-events: none;
}
/* акцентная черта внизу: короткая в покое, во всю ширину при наведении */
.pcard::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: linear-gradient(90deg, var(--accent), oklch(72% 0.16 62));
  transform: scaleX(.16); transform-origin: left center;
  transition: transform .4s cubic-bezier(.2, .7, .3, 1);
}
.pcard:hover {
  transform: translateY(-4px);
  border-color: var(--accent-line);
  box-shadow: 0 26px 52px -34px oklch(56% 0.19 40 / .45);
}
.pcard:hover::after { transform: scaleX(1); }

.pcard__tag {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: .42rem;
  padding: .3rem .68rem;
  border-radius: var(--radius-chip);
  background: var(--accent-soft);
  color: oklch(42% 0.16 40);
  font-size: .7rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
}
.pcard__tag::before {
  content: ''; width: 5px; height: 5px; border-radius: 50%;
  background: var(--accent);
}
.pcard__name {
  margin: .15rem 0 0;
  font-family: var(--font-display); font-weight: 700;
  font-size: 1.06rem; line-height: 1.28;
  letter-spacing: -.01em;
}
.pcard__text { margin: 0; font-size: .96rem; line-height: 1.6; color: var(--text-muted); }

/* ---- «Арена»: вечерняя часть программы ---- */
.pcard--arena {
  background: linear-gradient(165deg, oklch(26% 0.025 262), oklch(17% 0.02 262));
  border-color: oklch(100% 0 0 / .1);
}
.pcard--arena::before {
  /* луч прожектора сверху */
  background:
    radial-gradient(115% 85% at 24% -12%, oklch(74% 0.17 58 / .42) 0%, oklch(60% 0.15 45 / .14) 40%, transparent 72%),
    radial-gradient(70% 50% at 92% 108%, oklch(52% 0.12 250 / .28) 0%, transparent 70%);
  -webkit-mask-image: none; mask-image: none;
  opacity: .75;
  transition: opacity .35s ease;
}
.pcard--arena:hover {
  border-color: oklch(70% 0.14 45 / .5);
  box-shadow: 0 30px 60px -32px oklch(12% 0.02 262 / .8);
}
.pcard--arena:hover::before { opacity: 1; }
.pcard--arena .pcard__tag {
  background: oklch(70% 0.14 45 / .16);
  color: oklch(88% 0.11 62);
}
.pcard--arena .pcard__tag::before { background: oklch(78% 0.16 58); box-shadow: 0 0 10px oklch(78% 0.16 58); }
.pcard--arena .pcard__name { color: oklch(98% 0.005 90); }
.pcard--arena .pcard__text { color: oklch(88% 0.012 90 / .8); }

/* финальный трюк — карточка на две колонки */
.pcard--finale { grid-column: span 2; }
.pcard--finale .pcard__name { font-size: 1.28rem; }
.pcard--finale::after { transform: scaleX(.1); }

/* ---- Обещание в конце программы ---- */
.fpromise {
  position: relative;
  overflow: hidden;
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
  padding: clamp(2rem, 4.5vw, 3.4rem) clamp(1.25rem, 4vw, 3rem);
  border-radius: var(--radius-card);
  background: linear-gradient(160deg, oklch(24% 0.025 262), oklch(15% 0.02 262) 72%);
  color: oklch(98% 0.005 90);
  box-shadow: 0 34px 70px -44px oklch(15% 0.03 262 / .85);
}
.fpromise__glow {
  position: absolute; inset: -40% -10% auto -10%; height: 130%;
  background:
    radial-gradient(52% 60% at 50% 0%, oklch(68% 0.17 48 / .42) 0%, transparent 68%),
    radial-gradient(38% 46% at 82% 18%, oklch(55% 0.13 250 / .3) 0%, transparent 70%);
  pointer-events: none;
}
.fpromise > *:not(.fpromise__glow) { position: relative; z-index: 1; }
.fpromise__lead {
  margin: 0;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.35rem, 2.6vw, 2.05rem);
  line-height: 1.22; letter-spacing: -.015em;
  text-wrap: balance;
}
.fpromise__sub {
  margin: .85rem 0 0;
  font-size: 1.02rem; line-height: 1.6;
  color: oklch(90% 0.012 90 / .8);
  max-width: 46ch;
  text-wrap: balance;
}
.fpromise__facts {
  list-style: none; margin: clamp(1.4rem, 3vw, 2rem) 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .7rem;
  width: 100%; max-width: 46rem;
}
.fpromise__fact {
  display: flex; flex-direction: column; align-items: center; gap: .3rem;
  padding: .95rem .8rem 1.05rem;
  border-radius: 16px;
  background: oklch(100% 0 0 / .06);
  border: 1px solid oklch(100% 0 0 / .1);
}
.fpromise__fact-num {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.05rem, 1.5vw, 1.24rem); line-height: 1.15;
  color: oklch(84% 0.14 60);
}
.fpromise__fact-text { font-size: .86rem; line-height: 1.4; color: oklch(90% 0.012 90 / .78); }
.fpromise .btn { margin-top: clamp(1.4rem, 3vw, 2rem); padding: 1rem 2.4rem; }

@media (max-width: 1000px) {
  .fprog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .fprog__grid { grid-template-columns: minmax(0, 1fr); }
  .pcard--finale { grid-column: auto; }
  .fpromise__facts { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .pcard, .pcard::after, .promo__code { transition: none; } }

/* ---------- Фон страницы: фотографии с шоу ---------- */
/* Слоты, которые заняли новые фотографии шоу, освобождаем — иначе картинки
   накладываются друг на друга по краям и текст теряет контраст. */
.page-forsazh .art--truck-teeth,
.page-forsazh .art--truck-blue,
.page-forsazh .art--moto-trick,
.page-forsazh .art--truck-ink,
.page-forsazh .art--truck-dragon,
.page-forsazh .art--tank,
.page-forsazh .art--truck-flame { display: none; }

/* Раскладка фона: по три крупных объекта вдоль левого и правого края,
   каждый в своей горизонтальной полосе, без наложений друг на друга.
   Мелкие акценты (звёзды, молнии) живут в центре и приглушены маской. */

/* --- правый край --- */
.page-forsazh .art--truck-usa {
  --w: 22vw; --art-op: .16; --art-blur: 3px;
  top: 2%; right: -8vw; left: auto;
}
.page-forsazh .art--fz-warmoto {
  --art-src: url('../assets/decor/fz-warmoto.webp'); --ar: 780 / 524;
  --w: 22vw; --art-op: .19; --art-blur: 3px; --art-dur: 17s; --art-delay: -8s;
  top: 44%; right: -7vw; left: auto;
}
.page-forsazh .art--fz-driftflip {
  --art-src: url('../assets/decor/fz-driftflip.webp'); --ar: 780 / 592;
  --w: 21vw; --art-op: .22; --art-blur: 1px; --art-dur: 14s; --art-delay: -2s;
  top: 80%; right: -6vw; left: auto;
}

/* --- левый край --- */
.page-forsazh .art--fz-stunt2wheels {
  --art-src: url('../assets/decor/fz-stunt2wheels.webp'); --ar: 550 / 379;
  --w: 23vw; --art-op: .16; --art-blur: 5px; --art-dur: 18s; --art-float: 12px;
  top: 3%; left: -7vw; right: auto;
}
.page-forsazh .art--truck-masterfoot {
  --w: 22vw; --art-op: .18; --art-blur: 2px;
  top: 38%; left: -8vw; right: auto;
}
.page-forsazh .art--fz-car2wheels {
  --art-src: url('../assets/decor/fz-car2wheels.webp'); --ar: 679 / 780;
  --w: 17vw; --art-op: .19; --art-blur: 3px; --art-dur: 15s; --art-delay: -4s;
  top: 64%; left: -6vw; right: auto;
}

/* --- акценты в пустых местах центра --- */
.page-forsazh .art--fz-firering {
  --art-src: url('../assets/decor/fz-firering.webp'); --ar: 436 / 780;
  --w: 10vw; --art-op: .17; --art-blur: 4px; --art-dur: 13s; --art-delay: -6s;
  top: 64%; left: 18%; right: auto;
}
.page-forsazh .art--bolt-red { --w: 5vw; top: 8%; left: 46%; right: auto; }

@media (max-width: 1400px) {
  .page-forsazh .art--fz-stunt2wheels  { --w: 26vw; }
  .page-forsazh .art--fz-warmoto       { --w: 25vw; }
  .page-forsazh .art--truck-masterfoot { --w: 24vw; }
}
@media (max-width: 1100px) {
  /* колонка текста занимает почти всю ширину — оставляем только края */
  .page-forsazh .art--fz-stunt2wheels,
  .page-forsazh .art--fz-firering,
  .page-forsazh .art--bolt-red { display: none; }
  .page-forsazh .art--truck-usa        { --w: 34vw; top: 2%;  right: -10vw; left: auto; }
  .page-forsazh .art--truck-masterfoot { --w: 34vw; top: 34%; left: -10vw; right: auto; }
  .page-forsazh .art--fz-warmoto       { --w: 32vw; top: 58%; right: -9vw; left: auto; }
  .page-forsazh .art--fz-car2wheels    { display: none; }
  .page-forsazh .art--fz-driftflip     { --w: 34vw; top: 80%; left: -8vw; right: auto; }
}
@media (max-width: 640px) {
  .page-forsazh .art--truck-usa        { --w: 44vw; }
  .page-forsazh .art--truck-masterfoot { --w: 44vw; }
  .page-forsazh .art--fz-warmoto       { --w: 42vw; }
  .page-forsazh .art--fz-driftflip     { --w: 44vw; }
}

/* ---------- Парящие коллажи внутри блоков страницы ---------- */
.fprog { position: relative; }
.tart--fz-tank {
  --src: url('../assets/decor/tank.webp'); --ar: 471 / 267;
  --w: 20vw; --op: .42; --dur: 16s; --delay: -5s;
  --float: 24px; --driftX: -12px; --tilt: 1.2deg;
  top: 30px; right: 4%;
}
.tart--fz-ben {
  --src: url('../assets/decor/fz-driftflip.webp'); --ar: 780 / 592;
  --w: 17vw; --op: .5; --dur: 15s;
  --float: 22px; --driftX: -12px; --tilt: 1.5deg;
  top: 32px; right: 8%;
}
.tart--fz-gal {
  --src: url('../assets/decor/fz-firering.webp'); --ar: 436 / 780;
  --w: 11vw; --op: .5; --dur: 18s; --delay: -7s;
  --float: 24px; --driftX: -10px; --tilt: -1.5deg;
  top: 34px; left: 57%;
}
@media (max-width: 900px) {
  .tart--fz-tank { --w: 40vw; --op: .32; --driftX: -12px; top: 30px; right: 22px; }
  .tart--fz-ben  { --w: 32vw; --op: .34; --driftX: -12px; top: 28px; right: 22px; }
  .tart--fz-gal  { --w: 22vw; --op: .34; --driftX: -12px; top: 28px; left: auto; right: 22px; }
}

/* =====================================================================
   ВСЕЛЕНСКИЙ КАРНАВАЛ ОГНЯ
   ===================================================================== */

/* постер первого экрана у каждой страницы шоу свой */
.page-forsazh .thero__poster { background-image: url('../assets/forsazh/hero-poster.jpg'); }
.page-ogon    .thero__poster { background-image: url('../assets/ogon/hero-poster.jpg'); }

/* ---------- Фон страницы: фотографии с фестиваля ----------
   Три крупных объекта вдоль левого края и три вдоль правого,
   каждый в своей горизонтальной полосе, без наложений. */
.page-ogon .art--truck-teeth,
.page-ogon .art--truck-blue,
.page-ogon .art--truck-ink,
.page-ogon .art--truck-flame { display: none; }

/* --- левый край --- */
.page-ogon .art--og-fans {
  --art-src: url('../assets/decor/fire-fans.webp'); --ar: 697 / 820;
  --w: 16vw; --art-op: .15; --art-blur: 5px; --art-dur: 19s; --art-float: 12px;
  top: 4%; left: -6vw; right: auto;
}
.page-ogon .art--truck-masterfoot {
  --w: 22vw; --art-op: .17; --art-blur: 2px;
  top: 44%; left: -8vw; right: auto;
}
.page-ogon .art--og-frame {
  --art-src: url('../assets/decor/fire-frame.webp'); --ar: 555 / 661;
  --w: 15vw; --art-op: .24; --art-dur: 15s; --art-delay: -5s;
  top: 70%; left: -5vw; right: auto;
}

/* --- правый край --- */
.page-ogon .art--truck-usa {
  --w: 21vw; --art-op: .15; --art-blur: 3px;
  top: 2%; right: -8vw; left: auto;
}
.page-ogon .art--og-letters {
  --art-src: url('../assets/decor/fire-letters.webp'); --ar: 466 / 307;
  --w: 18vw; --art-op: .22; --art-blur: 2px; --art-dur: 17s; --art-delay: -8s;
  top: 42%; right: -3vw; left: auto;
}
.page-ogon .art--truck-dragon {
  --w: 19vw; --art-op: .2; top: 78%; right: -6vw; left: auto;
}

/* --- акцент в пустом месте центра --- */
.page-ogon .art--bolt-red { --w: 5vw; top: 8%; left: 46%; right: auto; }

@media (max-width: 1400px) {
  .page-ogon .art--og-fans          { --w: 19vw; }
  .page-ogon .art--og-letters       { --w: 21vw; }
  .page-ogon .art--truck-masterfoot { --w: 24vw; }
}
@media (max-width: 1100px) {
  .page-ogon .art--og-letters,
  .page-ogon .art--bolt-red { display: none; }
  .page-ogon .art--truck-usa        { --w: 34vw; top: 2%;  right: -10vw; left: auto; }
  .page-ogon .art--og-fans          { --w: 30vw; top: 30%; left: -9vw;  right: auto; }
  .page-ogon .art--truck-masterfoot { display: none; }
  .page-ogon .art--truck-dragon     { --w: 34vw; top: 58%; right: -9vw; left: auto; }
  .page-ogon .art--og-frame         { --w: 32vw; top: 82%; left: -8vw;  right: auto; }
}
@media (max-width: 640px) {
  .page-ogon .art--truck-usa    { --w: 44vw; }
  .page-ogon .art--og-fans      { --w: 40vw; }
  .page-ogon .art--truck-dragon { --w: 44vw; }
  .page-ogon .art--og-frame     { --w: 42vw; }
}

/* ---------- Парящие коллажи внутри блоков ---------- */
.tart--og-prog {
  --src: url('../assets/decor/fire-letters.webp'); --ar: 466 / 307;
  --w: 19vw; --op: .5; --dur: 16s; --delay: -5s;
  --float: 24px; --driftX: -12px; --tilt: 1.2deg;
  top: 30px; right: 4%;
}
.tart--og-ben {
  --src: url('../assets/decor/fire-fans.webp'); --ar: 697 / 820;
  --w: 13vw; --op: .45; --dur: 15s;
  --float: 22px; --driftX: -12px; --tilt: 1.5deg;
  top: 32px; right: 7%;
}
.tart--og-gal {
  --src: url('../assets/decor/fire-frame.webp'); --ar: 555 / 661;
  --w: 12vw; --op: .45; --dur: 18s; --delay: -7s;
  --float: 24px; --driftX: -10px; --tilt: -1.5deg;
  top: 34px; left: 57%;
}
@media (max-width: 900px) {
  .tart--og-prog { --w: 38vw; --op: .3; --driftX: -12px; top: 30px; right: 22px; }
  .tart--og-ben  { --w: 26vw; --op: .32; --driftX: -12px; top: 28px; right: 22px; }
  .tart--og-gal  { --w: 24vw; --op: .32; --driftX: -12px; top: 28px; left: auto; right: 22px; }
}

/* ---------- Программа как хронология вечера ----------
   Никаких карточек: вертикальная линия времени, ряды с тонкими разделителями.
   Светлая часть → тёмная панель «карнавал» → короткий хвост после шоу. */
.fest {
  position: relative;
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem);
  max-width: 1600px; margin-inline: auto;
}
.fest__head, .fest__phase, .fest__night, .fest__cta { position: relative; z-index: 1; }
.fest__head { max-width: 52rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.fest__lead { margin: .9rem 0 0; font-size: 1.06rem; line-height: 1.7; color: var(--text-muted); max-width: 62ch; }

.fest__phase { margin-bottom: clamp(2.2rem, 4vw, 3.2rem); }
.fest__phase--last { margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }

.fest__phase-head {
  display: flex; align-items: baseline; gap: clamp(1rem, 2.4vw, 2rem);
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--edge);
  margin-bottom: .4rem;
}
.fest__clock {
  flex: none;
  min-width: 5.4rem;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.5rem, 2.6vw, 2.1rem); line-height: 1;
  letter-spacing: -.02em;
  color: var(--text);
}
.fest__clock--hot {
  color: oklch(84% 0.14 60);
  text-shadow: 0 0 26px oklch(70% 0.16 52 / .45);
}
.fest__phase-title h3 {
  margin: 0;
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(1.1rem, 1.7vw, 1.35rem); line-height: 1.25;
}
.fest__phase-title p { margin: .35rem 0 0; font-size: .97rem; line-height: 1.6; color: var(--text-muted); max-width: 56ch; }

/* --- сама лента --- */
.fline {
  list-style: none; margin: 0; padding: 0;
  position: relative;
}
.fline::before {
  content: ''; position: absolute; left: 7px; top: 1.9rem; bottom: 1.9rem;
  width: 2px; border-radius: 2px;
  background: linear-gradient(to bottom, var(--accent-line), oklch(80% 0.02 250 / .5));
}
.fline__item {
  position: relative;
  display: grid;
  grid-template-columns: 2.4rem 3.2rem minmax(0, 1fr);
  align-items: start;
  gap: 0 clamp(.8rem, 1.6vw, 1.6rem);
  padding: 1.25rem 0 1.35rem;
  border-bottom: 1px solid var(--edge);
  transition: transform .28s cubic-bezier(.2, .7, .3, 1);
}
.fline__item:last-child { border-bottom: 0; }
.fline__item:hover { transform: translateX(5px); }
.fline__marker {
  grid-column: 1; margin-top: .45rem;
  width: 16px; height: 16px; border-radius: 50%;
  border: 2px solid var(--accent);
  background: var(--bg);
  box-shadow: 0 0 0 4px oklch(96.5% 0.005 250);
  transition: background .28s ease, box-shadow .28s ease;
}
.fline__item:hover .fline__marker { background: var(--accent); box-shadow: 0 0 0 4px oklch(96.5% 0.005 250), 0 0 18px oklch(60% 0.18 45 / .55); }
.fline__no {
  grid-column: 2; align-self: start;
  font-family: var(--font-display); font-weight: 800;
  font-size: 1.65rem; line-height: 1;
  color: oklch(78% 0.015 250);
  transition: color .28s ease;
}
.fline__item:hover .fline__no { color: var(--accent); }
.fline__body { grid-column: 3; display: flex; flex-direction: column; gap: .3rem; }
.fline__tag {
  align-self: flex-start;
  font-size: .7rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: oklch(46% 0.15 42);
}
.fline__name {
  margin: 0;
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(1.02rem, 1.4vw, 1.2rem); line-height: 1.3;
  letter-spacing: -.01em;
}
.fline__text { margin: 0; font-size: .98rem; line-height: 1.62; color: var(--text-muted); max-width: 68ch; }

/* --- тёмная панель: карнавал --- */
.fest__night {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-card);
  background: linear-gradient(168deg, oklch(25% 0.025 262), oklch(14% 0.02 262) 78%);
  color: oklch(98% 0.005 90);
  box-shadow: 0 36px 76px -46px oklch(15% 0.03 262 / .85);
  margin-bottom: clamp(2.2rem, 4vw, 3.2rem);
}
.fest__night-glow {
  position: absolute; inset: -30% -10% auto -10%; height: 120%;
  background:
    radial-gradient(48% 55% at 26% 0%, oklch(70% 0.17 50 / .4) 0%, transparent 68%),
    radial-gradient(40% 48% at 86% 24%, oklch(55% 0.13 250 / .3) 0%, transparent 72%);
  pointer-events: none;
}
.fest__night-inner { position: relative; z-index: 1; padding: clamp(1.6rem, 3.4vw, 2.8rem); }
.fest__phase-head--night { border-bottom-color: oklch(100% 0 0 / .14); }
.fest__phase-head--night .fest__phase-title h3 { color: oklch(98% 0.005 90); }
.fest__phase-head--night .fest__phase-title p { color: oklch(90% 0.012 90 / .78); }

.fline--night::before { background: linear-gradient(to bottom, oklch(72% 0.16 55 / .7), oklch(72% 0.16 55 / .12)); }
.fline--night .fline__item { border-bottom-color: oklch(100% 0 0 / .1); }
.fline--night .fline__marker {
  border-color: oklch(76% 0.16 56);
  background: oklch(19% 0.02 262);
  box-shadow: 0 0 0 4px oklch(19% 0.02 262);
}
.fline--night .fline__item:hover .fline__marker {
  background: oklch(76% 0.16 56);
  box-shadow: 0 0 0 4px oklch(19% 0.02 262), 0 0 20px oklch(76% 0.16 56 / .7);
}
.fline--night .fline__no { color: oklch(100% 0 0 / .42); }
.fline--night .fline__item:hover .fline__no { color: oklch(84% 0.14 60); }
.fline--night .fline__tag { color: oklch(88% 0.11 62); }
.fline--night .fline__name { color: oklch(98% 0.005 90); }
.fline--night .fline__text { color: oklch(88% 0.012 90 / .8); }

/* --- призыв в конце блока --- */
.fest__cta {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1rem clamp(1.2rem, 3vw, 2.4rem);
  padding: clamp(1.3rem, 2.6vw, 1.9rem) clamp(1.3rem, 3vw, 2.2rem);
  border-radius: var(--radius-card);
  background: var(--surface);
  border: 1px solid var(--edge);
  border-left: 4px solid var(--accent);
  box-shadow: 0 24px 54px -42px oklch(23% 0.02 260 / .6);
}
.fest__cta-text { margin: 0; font-size: 1.02rem; line-height: 1.6; color: var(--text); max-width: 48ch; }
.fest__cta .btn { flex: none; padding: .95rem 2.2rem; }

@media (max-width: 760px) {
  .fest__phase-head { flex-direction: column; gap: .5rem; }
  .fline__item { grid-template-columns: 2.1rem minmax(0, 1fr); gap: 0 .9rem; }
  .fline__no { grid-column: 2; grid-row: 1; font-size: 1.1rem; margin-bottom: .1rem; color: var(--accent); }
  .fline__body { grid-column: 2; grid-row: 2; }
  .fline--night .fline__no { color: oklch(84% 0.14 60); }
}
@media (prefers-reduced-motion: reduce) {
  .fline__item, .fline__marker, .fline__no { transition: none; }
}

/* ---------- Цитата эксперта фестиваля ---------- */
.fpromise--quote { padding-top: clamp(2.2rem, 5vw, 3.6rem); }
.fquote {
  margin: clamp(1.8rem, 3.4vw, 2.6rem) auto 0; max-width: 52rem;
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
}
.fquote__mark {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(2.6rem, 5vw, 4rem); line-height: .8;
  color: oklch(78% 0.16 58); opacity: .55;
  margin-bottom: .2rem;
}
.fquote__text {
  margin: 0;
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1.1rem, 1.9vw, 1.5rem);
  line-height: 1.42; letter-spacing: -.01em;
  text-wrap: balance;
}
.fquote__author {
  margin-top: 1.1rem;
  display: flex; flex-direction: column; gap: .12rem;
}
.fquote__name { font-weight: 700; font-size: 1rem; color: oklch(88% 0.11 62); }
.fquote__role { font-size: .88rem; color: oklch(90% 0.012 90 / .7); }

/* =====================================================================
   ГОНКИ НА ВЫЖИВАНИЕ
   ===================================================================== */

.page-gonki .thero__poster { background-image: url('../assets/gonki/hero-poster.jpg'); }
.thero__slogan {
  margin: -.4rem 0 1rem;
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(1rem, 1.5vw, 1.22rem);
  letter-spacing: .02em;
  color: oklch(88% 0.12 58);
  text-shadow: 0 2px 18px oklch(14% 0.02 260 / .7);
}
@media (min-width: 1021px) {
  .page-gonki .thero__title { font-size: clamp(2.2rem, 4.2vw, 3.6rem); }
}

/* ---------- Фон: боевые машины по краям ---------- */
.page-gonki .art--truck-teeth,
.page-gonki .art--truck-blue,
.page-gonki .art--truck-ink,
.page-gonki .art--truck-flame,
.page-gonki .art--truck-dragon,
.page-gonki .art--truck-usa,
.page-gonki .art--truck-masterfoot,
.page-gonki .art--tank { display: none; }

.page-gonki .art--gn-paz {
  --art-src: url('../assets/decor/gn-paz.webp'); --ar: 528 / 538;
  --w: 15vw; --art-op: .12; --art-blur: 6px; --art-dur: 19s; --art-float: 12px;
  top: 3%; left: -7vw; right: auto;
}
.page-gonki .art--gn-kraz {
  --art-src: url('../assets/decor/gn-kraz.webp'); --ar: 456 / 369;
  --w: 17vw; --art-op: .16; --art-blur: 3px; --art-dur: 16s; --art-delay: -4s;
  top: 40%; left: -8vw; right: auto;
}
.page-gonki .art--gn-volga {
  --art-src: url('../assets/decor/gn-volga.webp'); --ar: 452 / 183;
  --w: 19vw; --art-op: .19; --art-blur: 1px; --art-dur: 14s; --art-delay: -9s;
  top: 73%; left: -8vw; right: auto;
}
.page-gonki .art--gn-destroyer {
  --art-src: url('../assets/decor/gn-destroyer.webp'); --ar: 570 / 277;
  --w: 20vw; --art-op: .15; --art-blur: 4px; --art-dur: 18s; --art-delay: -2s;
  top: 4%; right: -8vw; left: auto;
}
.page-gonki .art--gn-subaru {
  --art-src: url('../assets/decor/gn-subaru.webp'); --ar: 547 / 273;
  --w: 19vw; --art-op: .19; --art-blur: 1px; --art-dur: 15s; --art-delay: -7s;
  top: 40%; right: -8vw; left: auto;
}
.page-gonki .art--gn-k700 {
  --art-src: url('../assets/decor/gn-k700.webp'); --ar: 511 / 608;
  --w: 14vw; --art-op: .21; --art-dur: 17s; --art-delay: -11s;
  top: 72%; right: -6vw; left: auto;
}
.page-gonki .art--bolt-red { --w: 5vw; top: 10%; left: 45%; right: auto; }

@media (max-width: 1400px) {
  .page-gonki .art--gn-paz       { --w: 18vw; }
  .page-gonki .art--gn-destroyer { --w: 23vw; }
}
@media (max-width: 1100px) {
  .page-gonki .art--gn-paz,
  .page-gonki .art--gn-subaru,
  .page-gonki .art--bolt-red { display: none; }
  .page-gonki .art--gn-destroyer { --w: 34vw; top: 3%;  right: -10vw; }
  .page-gonki .art--gn-kraz      { --w: 32vw; top: 30%; left: -9vw; }
  .page-gonki .art--gn-k700      { --w: 26vw; top: 56%; right: -7vw; }
  .page-gonki .art--gn-volga     { --w: 36vw; top: 82%; left: -8vw; }
}
@media (max-width: 640px) {
  .page-gonki .art--gn-destroyer { --w: 46vw; }
  .page-gonki .art--gn-kraz      { --w: 42vw; }
  .page-gonki .art--gn-k700      { --w: 34vw; }
  .page-gonki .art--gn-volga     { --w: 48vw; }
}

/* парящие коллажи внутри блоков */
.tart--gn-prog {
  --src: url('../assets/decor/gn-subaru.webp'); --ar: 547 / 273;
  --w: 20vw; --op: .42; --dur: 16s; --delay: -5s;
  --float: 24px; --driftX: -12px; --tilt: 1.2deg;
  top: 30px; right: 4%;
}
.tart--gn-pil {
  --src: url('../assets/decor/gn-volga.webp'); --ar: 452 / 183;
  --w: 22vw; --op: .4; --dur: 15s;
  --float: 22px; --driftX: -12px; --tilt: -1.4deg;
  top: 32px; right: 6%;
}
.tart--gn-gal {
  --src: url('../assets/decor/gn-kraz.webp'); --ar: 456 / 369;
  --w: 14vw; --op: .42; --dur: 18s; --delay: -7s;
  --float: 24px; --driftX: -10px; --tilt: 1.5deg;
  top: 34px; left: 58%;
}
@media (max-width: 900px) {
  .tart--gn-prog { --w: 36vw; --op: .3; --driftX: -12px; top: 30px; right: 22px; }
  .tart--gn-pil  { --w: 34vw; --op: .3; --driftX: -12px; top: 28px; right: 22px; }
  .tart--gn-gal  { --w: 26vw; --op: .3; --driftX: -12px; top: 28px; left: auto; right: 22px; }
}

/* ---------- Общая обёртка секций страницы ---------- */
.gfmt, .gprog, .gabout, .gcars, .gpil, .gjud, .gtech, .gnews {
  position: relative;
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem);
  max-width: 1600px; margin-inline: auto;
}
.gfmt__head, .gprog__head, .gcars__head, .gpil__head, .gjud__head, .gnews__head {
  position: relative; z-index: 1;
  max-width: 52rem; margin-bottom: clamp(1.8rem, 3.5vw, 2.6rem);
}
.gfmt__lead, .gprog__lead, .gcars__lead, .gpil__lead, .gjud__lead {
  margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 62ch;
}
.tsec-cta--left { justify-content: flex-start; }

/* ---------- Три формата ---------- */
.gfmt__grid {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.9rem, 1.6vw, 1.4rem);
  align-items: stretch;
}
.gfmt-card {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; flex-direction: column;
  padding: clamp(1.4rem, 2.4vw, 1.9rem);
  border-radius: 20px;
  background: var(--surface);
  border: 1px solid var(--edge);
  transition: transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .28s ease, border-color .28s ease;
}
.gfmt-card:hover { transform: translateY(-4px); box-shadow: 0 28px 56px -38px oklch(23% 0.02 260 / .55); }
.gfmt-card__no {
  position: absolute; top: .7rem; right: 1.1rem;
  font-family: var(--font-display); font-weight: 800; font-size: 2.6rem; line-height: 1;
  color: oklch(88% 0.012 250);
}
.gfmt-card__badge {
  align-self: flex-start; margin-bottom: .7rem;
  padding: .3rem .7rem; border-radius: var(--radius-chip);
  background: var(--accent); color: var(--accent-ink);
  font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.gfmt-card__title {
  margin: 0 0 .6rem; padding-right: 3rem;
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(1.08rem, 1.5vw, 1.26rem); line-height: 1.26;
}
.gfmt-card__text { margin: 0 0 1rem; font-size: .98rem; line-height: 1.62; color: var(--text-muted); }
.gfmt-card__list { list-style: none; margin: 0 0 1.3rem; padding: 0; display: grid; gap: .45rem; }
.gfmt-card__list li {
  position: relative; padding-left: 1.4rem;
  font-size: .93rem; line-height: 1.5; color: var(--text-muted);
}
.gfmt-card__list li::before {
  content: ''; position: absolute; left: 0; top: .52em;
  width: 7px; height: 7px; border-radius: 2px;
  background: var(--accent-line);
}
.gfmt-card .btn { margin-top: auto; }
.gfmt-card.is-current {
  background: linear-gradient(168deg, oklch(26% 0.025 262), oklch(15% 0.02 262) 78%);
  border-color: oklch(70% 0.14 45 / .4);
  color: oklch(98% 0.005 90);
  box-shadow: 0 32px 64px -40px oklch(15% 0.03 262 / .8);
}
.gfmt-card.is-current::before {
  content: ''; position: absolute; inset: -40% -20% auto -20%; height: 110%; z-index: -1;
  background: radial-gradient(48% 55% at 28% 0%, oklch(70% 0.17 50 / .38) 0%, transparent 70%);
  pointer-events: none;
}

.gfmt-card.is-current .gfmt-card__no { color: oklch(100% 0 0 / .18); }
.gfmt-card.is-current .gfmt-card__title { color: oklch(98% 0.005 90); }
.gfmt-card.is-current .gfmt-card__text,
.gfmt-card.is-current .gfmt-card__list li { color: oklch(89% 0.012 90 / .8); }
.gfmt-card.is-current .gfmt-card__list li::before { background: oklch(78% 0.16 58); }

/* ---------- Программа ---------- */
.gprog__grid {
  position: relative; z-index: 1;
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.8rem, 1.4vw, 1.2rem);
}
.gprog-card {
  position: relative; isolation: isolate; overflow: hidden;
  padding: 1.4rem 1.3rem 1.5rem;
  border-radius: 18px;
  background: linear-gradient(168deg, var(--surface), var(--surface-2));
  border: 1px solid var(--edge);
  transition: transform .28s cubic-bezier(.2,.7,.3,1), border-color .28s ease, box-shadow .28s ease;
}
.gprog-card:hover {
  transform: translateY(-4px);
  border-color: var(--accent-line);
  box-shadow: 0 26px 52px -36px oklch(56% 0.19 40 / .45);
}
.gprog-card__no {
  position: absolute; top: .9rem; right: 1.1rem;
  font-family: var(--font-display); font-weight: 800; font-size: 1.5rem; line-height: 1;
  color: oklch(88% 0.012 250);
  transition: color .28s ease;
}
.gprog-card:hover .gprog-card__no { color: var(--accent); }
.gprog-card__icon {
  display: grid; place-items: center;
  width: 46px; height: 46px; margin-bottom: .9rem;
  border-radius: 13px;
  background: linear-gradient(140deg, oklch(94% 0.05 48), oklch(97% 0.02 60));
  border: 1px solid oklch(70% 0.14 45 / .28);
  color: oklch(46% 0.17 42);
}
.gprog-card__icon svg { width: 24px; height: 24px; }
.gprog-card__title {
  margin: 0 0 .35rem; padding-right: 2rem;
  font-family: var(--font-display); font-weight: 700;
  font-size: 1.02rem; line-height: 1.3;
}
.gprog-card__text { margin: 0; font-size: .93rem; line-height: 1.58; color: var(--text-muted); }

/* ---------- О гонках ---------- */
.gabout__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: clamp(1.6rem, 4vw, 3.4rem); align-items: center;
}
.gabout__lead { margin: .9rem 0 1.5rem; font-size: 1.06rem; line-height: 1.7; color: var(--text-muted); max-width: 56ch; }
.gabout__kinds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
.gkind {
  padding: 1.1rem 1.2rem 1.2rem;
  border-radius: 16px; background: var(--surface);
  border: 1px solid var(--edge); border-left: 3px solid var(--accent);
}
.gkind__name { margin: 0 0 .35rem; font-family: var(--font-display); font-weight: 700; font-size: 1rem; }
.gkind__text { margin: 0; font-size: .92rem; line-height: 1.55; color: var(--text-muted); }
.gabout__history {
  display: flex; align-items: flex-start; gap: 1.1rem;
  margin-top: 1.4rem; padding-top: 1.3rem; border-top: 1px solid var(--edge);
}
.gabout__year {
  flex: none;
  font-family: var(--font-display); font-weight: 800; font-size: 1.9rem; line-height: 1;
  color: var(--accent); letter-spacing: -.02em;
}
.gabout__history p { margin: 0; font-size: .97rem; line-height: 1.65; color: var(--text-muted); }

.gabout__media { position: relative; display: grid; gap: .8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gabout__shot { margin: 0; overflow: hidden; border-radius: var(--radius-media); box-shadow: 0 26px 54px -38px oklch(23% 0.02 260 / .6); }
.gabout__shot img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gabout__shot--a { grid-column: 1 / span 2; aspect-ratio: 16 / 9; }
.gabout__shot--b, .gabout__shot--c { aspect-ratio: 4 / 3; }

/* ---------- Переключатель классов / списков ---------- */
.gtabs {
  position: relative; z-index: 1;
  display: inline-flex; gap: .3rem; margin-bottom: 1.4rem;
  padding: .3rem; border-radius: var(--radius-chip);
  background: var(--surface); border: 1px solid var(--edge);
}
.gtab {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .6rem 1.1rem; border: 0; border-radius: var(--radius-chip);
  background: transparent; color: var(--text-muted);
  font: inherit; font-weight: 600; font-size: .95rem; cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.gtab:hover { color: var(--text); }
.gtab.is-active { background: var(--accent); color: var(--accent-ink); }
.gtab__n {
  padding: .1rem .45rem; border-radius: var(--radius-chip);
  background: oklch(50% 0.02 260 / .12); font-size: .78rem; font-weight: 700;
}
.gtab.is-active .gtab__n { background: oklch(100% 0 0 / .24); }

/* ---------- Боевые машины ---------- */
.gcars__grid {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(.7rem, 1.2vw, 1rem);
}
.gcar {
  position: relative; margin: 0; overflow: hidden;
  border-radius: 16px; background: var(--surface);
  border: 1px solid var(--edge); cursor: zoom-in;
  transition: transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .28s ease, border-color .28s ease;
}
.gcar:hover, .gcar:focus-visible {
  transform: translateY(-4px); border-color: var(--accent-line);
  box-shadow: 0 26px 52px -36px oklch(30% 0.04 40 / .5);
}
.gcar__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--bg-deep); }
.gcar__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.3,1); }
.gcar:hover .gcar__media img { transform: scale(1.06); }
.gcar__name {
  display: block; padding: .7rem .8rem .8rem;
  font-family: var(--font-display); font-weight: 700; font-size: .92rem; line-height: 1.25;
}
.gcar__zoom {
  position: absolute; top: .6rem; right: .6rem;
  display: grid; place-items: center; width: 30px; height: 30px;
  border-radius: 50%; background: oklch(14% 0.02 260 / .55); color: #fff;
  opacity: 0; transform: scale(.8); transition: opacity .25s ease, transform .25s ease;
}
.gcar__zoom svg { width: 15px; height: 15px; }
.gcar:hover .gcar__zoom, .gcar:focus-visible .gcar__zoom { opacity: 1; transform: scale(1); }

/* ---------- Пилоты ---------- */
.gpil__grid {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.8rem, 1.3vw, 1.1rem);
}
.gpilot {
  display: flex; flex-direction: column;
  border-radius: 18px; overflow: hidden;
  background: var(--surface); border: 1px solid var(--edge);
  transition: transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .28s ease, border-color .28s ease;
}
.gpilot:hover { transform: translateY(-4px); border-color: var(--accent-line); box-shadow: 0 26px 52px -36px oklch(30% 0.04 40 / .5); }
.gpilot__face { position: relative; aspect-ratio: 1 / 1; background: var(--bg-deep); overflow: hidden; }
.gpilot__face img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gpilot__noface { display: grid; place-items: center; width: 100%; height: 100%; color: var(--edge-strong); }
.gpilot__noface svg { width: 46%; height: 46%; }
.gpilot__no {
  position: absolute; left: .55rem; bottom: .55rem;
  min-width: 34px; padding: .2rem .5rem;
  border-radius: 10px; text-align: center;
  background: var(--accent); color: var(--accent-ink);
  font-family: var(--font-display); font-weight: 800; font-size: 1rem; line-height: 1.3;
  box-shadow: 0 10px 22px -12px oklch(56% 0.19 40 / .8);
}
.gpilot__nick {
  margin: .8rem .9rem 0;
  font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: oklch(46% 0.15 42);
  overflow-wrap: anywhere; hyphens: auto;
}
@media (max-width: 520px) {
  .gpilot__nick { font-size: .7rem; letter-spacing: .04em; }
}
.gpilot__name {
  margin: .15rem .9rem .8rem;
  font-family: var(--font-display); font-weight: 700; font-size: .98rem; line-height: 1.28;
}
.gpilot__car {
  margin-top: auto; display: flex; align-items: center; gap: .6rem;
  padding: .6rem .9rem .75rem; border-top: 1px solid var(--edge);
  background: var(--surface-2);
}
.gpilot__car-img { flex: none; width: 46px; height: 34px; border-radius: 8px; overflow: hidden; background: var(--bg-deep); }
.gpilot__car-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gpilot__car-text { display: flex; flex-direction: column; min-width: 0; }
.gpilot__car-label { font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--text-faint); }
.gpilot__car-name { font-size: .87rem; font-weight: 600; line-height: 1.25; color: var(--text); }

/* ---------- Судьи ---------- */
.gjud__row {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(.7rem, 1.2vw, 1.1rem);
}
.gjudge {
  display: flex; flex-direction: column;
  padding: 1rem 1rem 1.2rem;
  border-radius: 18px; background: var(--surface); border: 1px solid var(--edge);
}
.gjudge__photo {
  aspect-ratio: 1 / 1; margin-bottom: .85rem;
  border-radius: 14px; overflow: hidden; background: var(--bg-deep);
}
.gjudge__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.gjudge__role {
  margin: 0 0 .2rem;
  font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: oklch(46% 0.15 42);
}
.gjudge__name { margin: 0 0 .45rem; font-family: var(--font-display); font-weight: 700; font-size: .98rem; line-height: 1.25; }
.gjudge__text { margin: 0; font-size: .86rem; line-height: 1.55; color: var(--text-muted); }

/* ---------- Технические требования ---------- */
.gtech__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(1.4rem, 4vw, 3rem); align-items: center;
  padding: clamp(1.4rem, 3vw, 2.4rem);
  border-radius: var(--radius-card);
  background: linear-gradient(160deg, oklch(24% 0.025 262), oklch(14% 0.02 262) 76%);
  color: oklch(98% 0.005 90);
  box-shadow: 0 34px 70px -44px oklch(15% 0.03 262 / .85);
}
.gtech__media { position: relative; border-radius: var(--radius-media); overflow: hidden; }
.gtech__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.gtech__stamp {
  position: absolute; left: .8rem; bottom: .8rem;
  padding: .35rem .8rem; border-radius: var(--radius-chip);
  background: var(--accent); color: var(--accent-ink);
  font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.gtech__text .eyebrow { color: oklch(88% 0.11 58); }
.gtech__text .section-title { color: oklch(98% 0.005 90); }
.gtech__lead { margin: .9rem 0 1.5rem; font-size: 1rem; line-height: 1.7; color: oklch(89% 0.012 90 / .82); max-width: 58ch; }
.gtech__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.2rem; }
.gtech__dl { display: inline-flex; align-items: center; gap: .6rem; padding: .95rem 1.9rem; }
.gtech__dl .icon { width: 1.1em; height: 1.1em; }
.gtech__note { font-size: .88rem; color: oklch(89% 0.012 90 / .65); }

/* ---------- Пресс-центр ---------- */
.gnews__grid {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.9rem, 1.6vw, 1.4rem);
}
.gnews-card { display: flex; }
.gnews-card__link {
  display: flex; flex-direction: column; width: 100%;
  border-radius: 18px; overflow: hidden;
  background: var(--surface); border: 1px solid var(--edge);
  color: inherit; text-decoration: none;
  transition: transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .28s ease, border-color .28s ease;
}
.gnews-card__link:hover { transform: translateY(-4px); border-color: var(--accent-line); box-shadow: 0 26px 52px -36px oklch(30% 0.04 40 / .5); }
.gnews-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg-deep); }
.gnews-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.3,1); }
.gnews-card__link:hover .gnews-card__media img { transform: scale(1.05); }
.gnews-card__date { padding: .9rem 1.1rem 0; font-size: .82rem; color: var(--text-faint); }
.gnews-card__title {
  padding: .3rem 1.1rem 0;
  font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; line-height: 1.3;
}
.gnews-card__text { padding: .5rem 1.1rem 0; font-size: .93rem; line-height: 1.58; color: var(--text-muted); }
.gnews-card__more {
  display: inline-flex; align-items: center; gap: .4rem;
  margin-top: auto; padding: 1rem 1.1rem 1.2rem;
  font-size: .9rem; font-weight: 600; color: var(--accent);
}
.gnews-card__more .icon { width: 1em; height: 1em; transition: transform .25s ease; }
.gnews-card__link:hover .gnews-card__more .icon { transform: translateX(3px); }
.gnews__more { position: relative; z-index: 1; display: flex; justify-content: center; margin-top: clamp(1.4rem, 3vw, 2rem); }
.gnews__more .btn { display: inline-flex; align-items: center; gap: .5rem; }

/* ---------- Адаптив страницы гонок ---------- */
@media (max-width: 1200px) {
  .gprog__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gcars__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .gjud__row   { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
  .gfmt__grid  { grid-template-columns: minmax(0, 1fr); }
  .gabout__inner { grid-template-columns: minmax(0, 1fr); }
  .gtech__inner  { grid-template-columns: minmax(0, 1fr); }
  .gpil__grid  { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gnews__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .gprog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gcars__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gpil__grid  { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gjud__row   { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gabout__kinds { grid-template-columns: minmax(0, 1fr); }
  .gtabs { width: 100%; }
  .gtab { flex: 1; justify-content: center; padding: .6rem .7rem; }
}
@media (max-width: 480px) {
  .gprog__grid { grid-template-columns: minmax(0, 1fr); }
  .gjud__row   { grid-template-columns: minmax(0, 1fr); }
  .gabout__shot--a { grid-column: 1 / span 2; }
}
@media (prefers-reduced-motion: reduce) {
  .gfmt-card, .gprog-card, .gcar, .gcar__media img, .gpilot, .gnews-card__link, .gnews-card__media img { transition: none; }
}

/* ---------- Фирменная «клетка» финишного флага ----------
   Единственный узнаваемый знак гонок: тонкая клетчатая лента под первым
   экраном и уголок на карточке текущего формата. Только CSS, без картинок. */
.page-gonki .thero { padding-bottom: calc(clamp(3rem, 6vw, 5rem) + 14px); }
.page-gonki .thero::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 14px; z-index: 4;
  background-image: repeating-conic-gradient(oklch(98% 0 0) 0% 25%, oklch(16% 0.02 260) 0% 50%);
  background-size: 14px 14px;
  box-shadow: 0 -10px 24px -14px oklch(10% 0.02 260 / .8);
}
.gfmt-card.is-current::after {
  content: ''; position: absolute; right: 0; top: 0; width: 84px; height: 84px; z-index: 0;
  background-image: repeating-conic-gradient(oklch(98% 0 0 / .16) 0% 25%, transparent 0% 50%);
  background-size: 12px 12px;
  -webkit-mask-image: linear-gradient(225deg, #000 10%, transparent 72%);
          mask-image: linear-gradient(225deg, #000 10%, transparent 72%);
  pointer-events: none;
}
.gfmt-card.is-current::after { z-index: -1; }
/* клетка на активной вкладке переключателя */
.page-gonki .gtab.is-active { position: relative; overflow: hidden; }
.page-gonki .gtab.is-active::after {
  content: ''; position: absolute; inset: 0;
  background-image: repeating-conic-gradient(oklch(100% 0 0 / .14) 0% 25%, transparent 0% 50%);
  background-size: 8px 8px;
  -webkit-mask-image: linear-gradient(90deg, transparent 55%, #000 100%);
          mask-image: linear-gradient(90deg, transparent 55%, #000 100%);
  pointer-events: none;
}
/* след протектора на карточках программы */
.gprog-card::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background-image:
    repeating-linear-gradient(115deg, oklch(56% 0.19 40 / .07) 0 2px, transparent 2px 7px),
    repeating-linear-gradient(115deg, transparent 0 13px, oklch(56% 0.19 40 / .05) 13px 15px);
  -webkit-mask-image: radial-gradient(120% 90% at 100% 0%, #000 0%, transparent 62%);
          mask-image: radial-gradient(120% 90% at 100% 0%, #000 0%, transparent 62%);
  pointer-events: none;
}

/* ---------- Кнопка «Стать участником»: машущий финишный флаг ---------- */
.gjoin-tab {
  position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 90;
  display: flex; flex-direction: column; align-items: center; gap: .7rem;
  padding: 1rem .7rem 1.1rem;
  border: 1px solid oklch(100% 0 0 / .16); border-right: 0;
  border-radius: 16px 0 0 16px;
  background: linear-gradient(165deg, oklch(26% 0.025 262), oklch(15% 0.02 262));
  color: oklch(98% 0.005 90);
  cursor: pointer; font: inherit;
  box-shadow: -16px 18px 44px -26px oklch(12% 0.02 262 / .9);
  transition: transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease, background .3s ease;
}
.gjoin-tab::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  background: radial-gradient(85% 60% at 50% 0%, oklch(70% 0.17 50 / .45) 0%, transparent 72%);
  opacity: .9; pointer-events: none;
}
.gjoin-tab:hover, .gjoin-tab:focus-visible {
  transform: translateY(-50%) translateX(-4px);
  box-shadow: -20px 22px 52px -24px oklch(12% 0.02 262 / .95);
}
.gjoin-tab__text {
  position: relative;
  writing-mode: vertical-rl; text-orientation: mixed;
  font-family: var(--font-display); font-weight: 700; font-size: .84rem;
  letter-spacing: .06em; text-transform: uppercase;
}

/* полотно флага: 6 колонок по 4 клетки, каждая колонка колышется со сдвигом */
.gflag { position: relative; display: block; width: 46px; height: 34px; }
.gflag__pole {
  position: absolute; left: 0; top: -4px; bottom: -6px; width: 3px;
  border-radius: 2px;
  background: linear-gradient(to bottom, oklch(78% 0.02 90), oklch(52% 0.02 90));
}
.gflag__cloth {
  position: absolute; left: 4px; top: 0; right: 0; bottom: 0;
  display: flex; align-items: stretch; gap: 0;
  filter: drop-shadow(0 3px 5px oklch(10% 0.02 260 / .5));
}
.gflag__col { flex: 1; display: flex; flex-direction: column; animation: gwave 1.5s ease-in-out infinite; }
.gflag__col i { flex: 1; display: block; background: oklch(97% 0 0); }
.gflag__col i:nth-child(even) { background: oklch(17% 0.02 260); }
.gflag__col:nth-child(even) i { background: oklch(17% 0.02 260); }
.gflag__col:nth-child(even) i:nth-child(even) { background: oklch(97% 0 0); }
.gflag__col:nth-child(1) { animation-delay: 0s; }
.gflag__col:nth-child(2) { animation-delay: .1s; }
.gflag__col:nth-child(3) { animation-delay: .2s; }
.gflag__col:nth-child(4) { animation-delay: .3s; }
.gflag__col:nth-child(5) { animation-delay: .4s; }
.gflag__col:nth-child(6) { animation-delay: .5s; }
@keyframes gwave {
  0%, 100% { transform: translateY(0) scaleY(1); }
  25%      { transform: translateY(-2.5px) scaleY(.9); }
  50%      { transform: translateY(0) scaleY(1); }
  75%      { transform: translateY(2.5px) scaleY(.9); }
}
@media (prefers-reduced-motion: reduce) {
  .gflag__col { animation: none; }
  .gjoin-tab { transition: none; }
}
@media (max-width: 900px) {
  .gjoin-tab {
    top: auto; bottom: 18px; right: 14px; transform: none;
    flex-direction: row; gap: .55rem;
    padding: .7rem 1rem .7rem .8rem;
    border-radius: var(--radius-chip); border-right: 1px solid oklch(100% 0 0 / .16);
  }
  .gjoin-tab:hover, .gjoin-tab:focus-visible { transform: translateY(-3px); }
  .gjoin-tab__text { writing-mode: horizontal-tb; font-size: .78rem; }
  .gflag { width: 30px; height: 22px; }
}
@media (max-width: 420px) {
  .gjoin-tab__text { display: none; }
  .gjoin-tab { padding: .7rem .8rem; }
}

/* ---------- Модалка заявки ---------- */
.gjoin {
  position: fixed; inset: 0; z-index: 120;
  display: grid; place-items: center;
  padding: clamp(.8rem, 3vw, 2rem);
  background: oklch(14% 0.02 260 / .72);
  backdrop-filter: blur(6px);
  opacity: 0; visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.gjoin.is-open { opacity: 1; visibility: visible; }
.gjoin__dialog {
  position: relative;
  width: min(100%, 780px); max-height: 94dvh;
  overflow: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: var(--edge-strong) transparent;
  border-radius: var(--radius-card);
  background: var(--surface);
  box-shadow: 0 40px 90px -40px oklch(14% 0.02 260 / .8);
  transform: translateY(14px) scale(.985);
  transition: transform .3s cubic-bezier(.2,.7,.3,1);
}
.gjoin.is-open .gjoin__dialog { transform: none; }
.gjoin__dialog::-webkit-scrollbar { width: 8px; }
.gjoin__dialog::-webkit-scrollbar-thumb { background: var(--edge-strong); border-radius: 8px; }
.gjoin__dialog::-webkit-scrollbar-track { background: transparent; }
.gjoin__close {
  position: absolute; top: .9rem; right: .9rem; z-index: 2;
  display: grid; place-items: center; width: 38px; height: 38px;
  border: 0; border-radius: 50%; cursor: pointer;
  background: oklch(100% 0 0 / .14); color: oklch(98% 0.005 90);
  transition: background .2s ease;
}
.gjoin__close:hover { background: oklch(100% 0 0 / .26); }
.gjoin__close .icon { width: 18px; height: 18px; }

.gjoin__head {
  position: relative; overflow: hidden;
  padding: clamp(1rem, 2vw, 1.3rem) clamp(1.1rem, 2.6vw, 1.8rem) clamp(.9rem, 1.7vw, 1.1rem);
  background: linear-gradient(160deg, oklch(25% 0.025 262), oklch(14% 0.02 262) 78%);
  color: oklch(98% 0.005 90);
}
.gjoin__checker {
  position: absolute; right: 0; top: 0; width: 160px; height: 100%;
  background-image: repeating-conic-gradient(oklch(98% 0 0 / .15) 0% 25%, transparent 0% 50%);
  background-size: 14px 14px;
  -webkit-mask-image: linear-gradient(255deg, #000 6%, transparent 72%);
          mask-image: linear-gradient(255deg, #000 6%, transparent 72%);
  pointer-events: none;
}
.gjoin__head .eyebrow { position: relative; color: oklch(88% 0.11 58); }
.gjoin__title {
  position: relative; margin: .5rem 0 0;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.2rem, 2.1vw, 1.5rem); line-height: 1.16; letter-spacing: -.015em;
}
.gjoin__sub {
  position: relative; margin: .45rem 0 0; max-width: 52ch;
  font-size: .9rem; line-height: 1.5; color: oklch(89% 0.012 90 / .8);
}

/* [hidden] обязан перебивать display из класса, иначе экран «отправлено»
   остаётся видимым внутри формы */
.gjoin__form[hidden], .gjoin__done[hidden] { display: none !important; }
.gjoin.is-done .gjoin__sub { display: none; }
.gjoin__form {
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .72rem clamp(.6rem, 1.4vw, .9rem);
  padding: clamp(1rem, 2.2vw, 1.4rem) clamp(1.1rem, 2.6vw, 1.8rem) clamp(1.1rem, 2.4vw, 1.5rem);
}
.gfield { display: flex; flex-direction: column; gap: .28rem; min-width: 0; }
.gfield--third { grid-column: span 2; }
.gfield--half  { grid-column: span 3; }
.gfield--full  { grid-column: 1 / -1; }
.gfield label, .gfield__label {
  font-size: .84rem; font-weight: 600; color: var(--text);
}
.gfield label span, .gfield__label span { color: var(--accent); }
.gfield input[type="text"], .gfield input[type="tel"], .gfield input[type="url"], .gfield textarea {
  width: 100%; padding: .62rem .8rem;
  border: 1px solid var(--edge); border-radius: 11px;
  background: var(--surface-2); color: var(--text);
  font: inherit; font-size: .96rem;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.gfield textarea { resize: vertical; min-height: 66px; line-height: 1.5; }
.gfield input:focus, .gfield textarea:focus {
  outline: none; background: var(--surface);
  border-color: var(--accent);
  box-shadow: 0 0 0 3px oklch(70% 0.14 45 / .22);
}
.gfield__hint { font-size: .76rem; line-height: 1.35; color: var(--text-faint); }
.gfield__err { font-size: .76rem; line-height: 1.35; color: oklch(52% 0.2 27); }
.gfield__err:empty { display: none; }
.gfield.is-bad input, .gfield.is-bad textarea { border-color: oklch(58% 0.2 27); background: oklch(97% 0.02 27); }

.gfile {
  display: flex; align-items: center; gap: .6rem;
  padding: .6rem .8rem;
  border: 1px dashed var(--edge-strong); border-radius: 11px;
  background: var(--surface-2); cursor: pointer;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.gfile:hover { border-color: var(--accent); background: oklch(97% 0.02 45); }
.gfile .icon { flex: none; width: 18px; height: 18px; color: var(--accent); }
.gfile__text {
  font-size: .9rem; color: var(--text-muted);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.gfile.has-file { border-style: solid; border-color: var(--accent-line); }
.gfile.has-file .gfile__text { color: var(--text); font-weight: 600; }

.gcheck { position: relative; display: flex; align-items: flex-start; gap: .7rem; cursor: pointer; }
/* сам чекбокс прозрачный, но лежит ровно на нарисованном квадрате —
   так он остаётся кликабельным и доступным с клавиатуры */
.gcheck input { position: absolute; left: 0; top: .05rem; width: 22px; height: 22px; margin: 0; opacity: 0; cursor: pointer; }
.gcheck__box {
  flex: none; display: grid; place-items: center;
  width: 22px; height: 22px; margin-top: .05rem;
  border: 1px solid var(--edge-strong); border-radius: 7px;
  background: var(--surface-2);
  transition: background .2s ease, border-color .2s ease;
}
.gcheck__box svg { width: 13px; height: 13px; color: var(--accent-ink); opacity: 0; transform: scale(.6); transition: opacity .18s ease, transform .18s ease; }
.gcheck input:checked + .gcheck__box { background: var(--accent); border-color: var(--accent); }
.gcheck input:checked + .gcheck__box svg { opacity: 1; transform: none; }
.gcheck input:focus-visible + .gcheck__box { box-shadow: 0 0 0 3px oklch(70% 0.14 45 / .25); }
.gcheck__text { font-size: .84rem; line-height: 1.45; color: var(--text-muted); }
.gcheck__text a { color: var(--accent); }
.gcheck.is-bad .gcheck__box { border-color: oklch(58% 0.2 27); }

.gjoin__actions {
  display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1.2rem;
  padding-top: .15rem;
}
.gjoin__actions .btn { padding: .82rem 1.9rem; }
.gjoin__note { margin: 0; font-size: .88rem; color: var(--text-muted); }
.gjoin__note a { color: var(--accent); font-weight: 600; }

.gjoin__done {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: .5rem; padding: clamp(1.8rem, 4vw, 2.8rem) clamp(1.3rem, 3vw, 2.2rem);
}
.gjoin__done-flag {
  width: 64px; height: 46px; margin-bottom: .6rem; border-radius: 6px;
  background-image: repeating-conic-gradient(oklch(97% 0 0) 0% 25%, oklch(17% 0.02 260) 0% 50%);
  background-size: 16px 16px;
  box-shadow: 0 16px 34px -20px oklch(14% 0.02 260 / .8);
}
.gjoin__done h3 { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 1.4rem; }
.gjoin__done p { margin: 0 0 .8rem; font-size: .98rem; line-height: 1.6; color: var(--text-muted); max-width: 44ch; }

@media (max-height: 780px) and (min-width: 721px) {
  .gjoin__form { gap: .55rem .8rem; padding-top: .9rem; padding-bottom: 1rem; }
  .gjoin__sub { display: none; }
  .gfield input[type="text"], .gfield input[type="tel"], .gfield input[type="url"] { padding: .52rem .75rem; }
  .gfield textarea { min-height: 58px; }
  .gjoin__actions .btn { padding: .72rem 1.7rem; }
}
/* на телефоне окно ведёт себя как шторка снизу — прокрутка тут естественна */
@media (max-width: 720px) {
  .gjoin { padding: 0; place-items: end stretch; }
  .gjoin__dialog { width: 100%; max-height: 92dvh; border-radius: 22px 22px 0 0; }
  .gjoin__form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gfield--third, .gfield--half { grid-column: 1 / -1; }
  .gjoin__form .gfield--third:nth-of-type(1),
  .gjoin__form .gfield--third:nth-of-type(2) { grid-column: span 1; }
}
@media (prefers-reduced-motion: reduce) {
  .gjoin, .gjoin__dialog, .gfield input, .gfield textarea, .gfile, .gcheck__box { transition: none; }
}

.tart--gn-ben {
  --src: url('../assets/decor/gn-destroyer.webp'); --ar: 570 / 277;
  --w: 21vw; --op: .4; --dur: 17s; --delay: -3s;
  --float: 22px; --driftX: -12px; --tilt: 1.4deg;
  top: 30px; right: 5%;
}
@media (max-width: 900px) {
  .tart--gn-ben { --w: 34vw; --op: .3; --driftX: -12px; top: 28px; right: 22px; }
}

/* ---------- Окно заказа шоу ---------- */
.gorder {
  position: fixed; inset: 0; z-index: 120;
  display: grid; place-items: center;
  padding: clamp(.8rem, 3vw, 2rem);
  background: oklch(14% 0.02 260 / .72);
  backdrop-filter: blur(6px);
  opacity: 0; visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.gorder.is-open { opacity: 1; visibility: visible; }
.gorder__dialog {
  position: relative;
  display: grid; grid-template-columns: 148px minmax(0, 1fr);
  width: min(100%, 620px);
  border-radius: var(--radius-card); overflow: hidden;
  background: var(--surface);
  box-shadow: 0 40px 90px -40px oklch(14% 0.02 260 / .8);
  transform: translateY(14px) scale(.985);
  transition: transform .3s cubic-bezier(.2,.7,.3,1);
}
.gorder.is-open .gorder__dialog { transform: none; }
.gorder__close {
  position: absolute; top: .8rem; right: .8rem; z-index: 2;
  display: grid; place-items: center; width: 36px; height: 36px;
  border: 0; border-radius: 50%; cursor: pointer;
  background: oklch(50% 0.02 260 / .12); color: var(--text);
  transition: background .2s ease;
}
.gorder__close:hover { background: oklch(50% 0.02 260 / .22); }
.gorder__close .icon { width: 17px; height: 17px; }

/* левая полоса с клеткой и флажком */
.gorder__side {
  position: relative; overflow: hidden;
  display: grid; place-items: center;
  background: linear-gradient(170deg, oklch(26% 0.025 262), oklch(14% 0.02 262) 78%);
}
.gorder__checker {
  position: absolute; inset: 0;
  background-image: repeating-conic-gradient(oklch(98% 0 0 / .14) 0% 25%, transparent 0% 50%);
  background-size: 16px 16px;
  -webkit-mask-image: linear-gradient(200deg, #000 4%, transparent 62%);
          mask-image: linear-gradient(200deg, #000 4%, transparent 62%);
}
.gorder__flag {
  position: relative; width: 66px; height: 48px; border-radius: 5px;
  background-image: repeating-conic-gradient(oklch(97% 0 0) 0% 25%, oklch(17% 0.02 260) 0% 50%);
  background-size: 16px 16px;
  box-shadow: 0 18px 34px -18px oklch(10% 0.02 260 / .9);
  animation: gtilt 4.5s ease-in-out infinite;
}
@keyframes gtilt {
  0%, 100% { transform: rotate(-4deg) translateY(0); }
  50%      { transform: rotate(4deg) translateY(-5px); }
}
@media (prefers-reduced-motion: reduce) { .gorder__flag { animation: none; } }

.gorder__body { padding: clamp(1.4rem, 3vw, 2rem) clamp(1.3rem, 3vw, 1.9rem) clamp(1.4rem, 3vw, 1.8rem); }
.gorder__title {
  margin: .45rem 0 0;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.18rem, 2vw, 1.42rem); line-height: 1.2; letter-spacing: -.015em;
}
.gorder__sub { margin: .55rem 0 1.2rem; font-size: .94rem; line-height: 1.55; color: var(--text-muted); }
.gorder__form { display: grid; gap: .85rem; }
.gorder__form .btn { margin-top: .2rem; }
.gorder__note { margin: 0; font-size: .86rem; line-height: 1.5; color: var(--text-muted); }
.gorder__note a { color: var(--accent); font-weight: 600; }
.gorder__form[hidden], .gorder__done[hidden] { display: none !important; }

.gorder__done { display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; padding: .6rem 0 .4rem; }
.gorder__done-icon {
  display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: .5rem;
  border-radius: 50%; background: var(--accent); color: var(--accent-ink);
  box-shadow: 0 16px 30px -16px oklch(56% 0.19 40 / .9);
}
.gorder__done-icon svg { width: 22px; height: 22px; }
.gorder__done h4 { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 1.18rem; }
.gorder__done p { margin: 0; font-size: .94rem; line-height: 1.55; color: var(--text-muted); }

@media (max-width: 560px) {
  .gorder__dialog { grid-template-columns: minmax(0, 1fr); }
  .gorder__side { height: 84px; }
  .gorder__flag { width: 54px; height: 38px; }
}
@media (prefers-reduced-motion: reduce) { .gorder, .gorder__dialog { transition: none; } }

/* =====================================================================
   ПАРК ЭКСТРЕМАЛЬНЫХ АТТРАКЦИОНОВ — park-attrakcionov.html (.page-park)
   ===================================================================== */

/* ---------- Фоновая техника парка ---------- */
.page-park .art--pk-btr {
  --art-src: url('../assets/decor/pk-btr.webp'); --ar: 820 / 592;
  --w: 20vw; --art-op: .15; --art-blur: 3px; --art-dur: 17s; --art-delay: -3s;
  top: 6%; left: -7vw; right: auto;
}
.page-park .art--pk-monstr {
  --art-src: url('../assets/decor/pk-monstr.webp'); --ar: 432 / 339;
  --w: 17vw; --art-op: .18; --art-blur: 2px; --art-dur: 15s; --art-delay: -8s;
  top: 36%; right: -6vw; left: auto;
}
.page-park .art--pk-moto {
  --art-src: url('../assets/decor/pk-moto.webp'); --ar: 317 / 290;
  --w: 13vw; --art-op: .2; --art-dur: 13s; --art-delay: -5s;
  top: 64%; left: -5vw; right: auto;
}
.page-park .art--pk-drift {
  --art-src: url('../assets/decor/pk-drift.webp'); --ar: 321 / 131;
  --w: 18vw; --art-op: .17; --art-blur: 1px; --art-dur: 19s; --art-delay: -12s;
  top: 88%; right: -6vw; left: auto;
}
@media (max-width: 1100px) {
  .page-park .art--pk-moto { display: none; }
  .page-park .art--pk-btr    { --w: 34vw; top: 5%;  left: -10vw; }
  .page-park .art--pk-monstr { --w: 30vw; top: 44%; right: -9vw; }
  .page-park .art--pk-drift  { --w: 34vw; top: 86%; right: -8vw; }
}
@media (max-width: 640px) {
  .page-park .art--pk-btr    { --w: 46vw; }
  .page-park .art--pk-monstr { --w: 42vw; }
  .page-park .art--pk-drift  { --w: 48vw; }
}

.thero__poster--park { background-image: url('../assets/park/hero-poster.jpg'); }

/* ---------- Плитка билетов в первом экране ---------- */
.pkhero-card {
  background: oklch(100% 0 0 / .1);
  border: 1px solid oklch(100% 0 0 / .2);
  border-radius: clamp(16px, 2vw, 22px);
  padding: clamp(1.1rem, 2vw, 1.6rem);
  backdrop-filter: blur(10px);
}
.pkhero-card__title {
  margin: 0 0 1rem;
  font-family: var(--font-display); font-weight: 600;
  font-size: .82rem; letter-spacing: .12em; text-transform: uppercase;
  color: oklch(88% 0.09 58);
}
.pkhero-card__rows { display: grid; gap: .7rem; }

/* билет-«корешок»: слева акцентная полоса, справа перфорация */
.pkprice {
  position: relative; isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: .2rem 1rem;
  width: 100%;
  padding: 1rem 2.1rem 1.05rem 1.35rem;
  border-radius: 14px;
  border: 1px solid oklch(100% 0 0 / .22);
  background: oklch(100% 0 0 / .08);
  color: oklch(97% 0 0);
  text-align: left;
  cursor: pointer;
  font: inherit;
  transition: background .22s ease, border-color .22s ease, transform .22s ease;
}
.pkprice::before {
  content: ""; position: absolute; z-index: -1;
  left: 0; top: 0; bottom: 0; width: 5px;
  border-radius: 14px 0 0 14px;
  background: linear-gradient(to bottom, oklch(78% 0.15 58), var(--accent));
  opacity: .75;
  transition: opacity .22s ease;
}
/* перфорация корешка */
.pkprice::after {
  content: ""; position: absolute; z-index: -1;
  right: 1.05rem; top: .7rem; bottom: .7rem; width: 2px;
  background: repeating-linear-gradient(to bottom,
    oklch(100% 0 0 / .42) 0 3px, transparent 3px 7px);
}
.pkprice:hover { background: oklch(100% 0 0 / .18); border-color: var(--accent); transform: translateY(-2px); }
.pkprice:hover::before { opacity: 1; }
.pkprice__name {
  grid-column: 1; grid-row: 1;
  font-family: var(--font-display); font-weight: 700; font-size: 1.06rem;
}
.pkprice__sum {
  grid-column: 2; grid-row: 1;
  font-family: var(--font-display); font-weight: 800; font-size: 1.5rem;
  color: oklch(88% 0.11 58); white-space: nowrap;
}
.pkprice__sum span { font-size: .72em; font-weight: 600; margin-left: .1em; }
.pkprice__note {
  grid-column: 1 / -1; grid-row: 2;
  font-size: .84rem; line-height: 1.45;
  color: oklch(89% 0.01 90 / .82);
}
.pkprice__badge {
  position: absolute; top: -.62rem; left: 1.2rem;
  padding: .18rem .6rem;
  border-radius: var(--radius-chip);
  background: var(--accent); color: var(--accent-ink);
  font-family: var(--font-display); font-weight: 700;
  font-size: .68rem; letter-spacing: .06em; text-transform: uppercase;
}
.pkprice--hot { border-color: oklch(100% 0 0 / .42); background: oklch(100% 0 0 / .14); }
.pkhero-card__kids {
  margin: .95rem 0 0;
  font-size: .86rem;
  color: oklch(89% 0.01 90 / .8);
}
.pkhero-card .thero__dates-place { margin-top: .8rem; }
@media (max-width: 1020px) { .pkhero-card { max-width: 34rem; } }

/* ---------- Билеты ---------- */
.pkt { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); max-width: 1600px; margin-inline: auto; }
.pkt__head { max-width: 52rem; margin-bottom: clamp(1.8rem, 3vw, 2.6rem); }
.pkt__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 64ch; }
.pkt__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
  gap: clamp(1rem, 2vw, 1.6rem);
  align-items: start;
}
.pkt-card {
  position: relative; isolation: isolate;
  display: flex; flex-direction: column;
  padding: clamp(1.4rem, 2.4vw, 2rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--edge);
  background: var(--surface);
  box-shadow: 0 24px 50px -40px oklch(23% 0.02 260 / .7);
}
.pkt-card__name {
  margin: 0;
  font-family: var(--font-display); font-weight: 700;
  font-size: .86rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--text-faint);
}
.pkt-card__sum {
  margin: .35rem 0 .2rem;
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(2.2rem, 4vw, 3rem); line-height: 1;
  letter-spacing: -.02em;
}
.pkt-card__sum span { font-size: .45em; font-weight: 700; color: var(--text-muted); margin-left: .12em; }
.pkt-card__sub { margin: 0 0 1.2rem; font-size: .95rem; color: var(--text-muted); }
.pkt__list { list-style: none; margin: 0 0 1.3rem; padding: 0; display: grid; gap: .6rem; }
.pkt__list li {
  position: relative; padding-left: 1.6rem;
  font-size: .95rem; line-height: 1.55; color: var(--text);
}
.pkt__list li::before {
  content: ""; position: absolute; left: 0; top: .42em;
  width: 9px; height: 9px; border-radius: 50%;
  border: 2px solid var(--accent-line);
  background: var(--accent-soft);
}
.pkt__list li b { font-weight: 700; }
.pkt-card__extra {
  margin: 0 0 1.2rem;
  padding: .7rem .9rem;
  border-radius: 12px;
  background: var(--surface-2);
  border: 1px dashed var(--edge-strong);
  font-size: .88rem; line-height: 1.5; color: var(--text-muted);
}
.pkt-card .btn { margin-top: auto; }

.pkt-card--hot {
  border-color: var(--accent-line);
  background: linear-gradient(170deg, var(--accent-soft) 0%, var(--surface) 46%);
  box-shadow: 0 30px 60px -40px oklch(56% 0.19 40 / .7);
}
.pkt-card--hot::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  border-radius: var(--radius-card);
  padding: 1px;
  background: linear-gradient(160deg, var(--accent) 0%, transparent 55%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.pkt-card--hot .pkt-card__sum { color: var(--accent-dim); }
.pkt-card--hot .pkt__list li::before { border-color: var(--accent); background: oklch(100% 0 0); }
.pkt-card__badge {
  position: absolute; top: -.7rem; left: clamp(1.4rem, 2.4vw, 2rem);
  padding: .3rem .8rem;
  border-radius: var(--radius-chip);
  background: var(--accent); color: var(--accent-ink);
  font-family: var(--font-display); font-weight: 700;
  font-size: .72rem; letter-spacing: .07em; text-transform: uppercase;
  box-shadow: 0 8px 20px -10px oklch(56% 0.19 40 / .9);
}
.pkt-card--note {
  background: linear-gradient(168deg, oklch(24% 0.025 262), oklch(15% 0.02 262) 82%);
  border-color: oklch(36% 0.03 262);
  color: oklch(96% 0.005 90);
}
.pkt-card--note .pkt-card__name { color: oklch(86% 0.1 58); }
.pkt-card--note .pkt__list li { color: oklch(93% 0.005 90); }
.pkt-card--note .pkt__list li::before { border-color: oklch(72% 0.14 55 / .6); background: oklch(100% 0 0 / .12); }
.pkt-card--note .btn--outline { background: oklch(100% 0 0 / .1); border-color: oklch(100% 0 0 / .4); color: oklch(98% 0 0); backdrop-filter: blur(4px); }
.pkt-card--note .btn--outline:hover { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.pkt-card__icon {
  display: grid; place-items: center;
  width: 46px; height: 46px; margin-bottom: 1rem;
  border-radius: 14px;
  background: oklch(100% 0 0 / .1);
  border: 1px solid oklch(100% 0 0 / .22);
  color: oklch(86% 0.11 58);
}
.pkt-card__icon svg { width: 22px; height: 22px; }

/* ---------- Конструктор катаний ---------- */
.pkb { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); }
.pkb__inner {
  max-width: 1600px; margin-inline: auto;
  padding: clamp(1.6rem, 3.2vw, 2.8rem);
  border-radius: clamp(20px, 2.4vw, 28px);
  background:
    radial-gradient(90% 120% at 12% 0%, oklch(32% 0.05 44 / .55), transparent 62%),
    linear-gradient(168deg, oklch(25% 0.025 262), oklch(15% 0.02 262) 78%);
  border: 1px solid oklch(36% 0.03 262);
  color: oklch(96% 0.005 90);
}
.pkb__head { max-width: 50rem; margin-bottom: clamp(1.5rem, 2.6vw, 2.2rem); }
.pkb__inner .eyebrow { color: oklch(86% 0.1 58); }
.pkb__lead { margin: .9rem 0 0; font-size: 1.02rem; line-height: 1.7; color: oklch(88% 0.008 90 / .86); max-width: 62ch; }
.pkb__panel {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, .9fr);
  gap: clamp(1.2rem, 2.4vw, 2rem);
  align-items: start;
}
.pkb__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.pkride {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: .9rem;
  padding: .6rem .8rem .6rem .6rem;
  border-radius: 14px;
  border: 1px solid oklch(100% 0 0 / .14);
  background: oklch(100% 0 0 / .05);
  transition: border-color .2s ease, background .2s ease;
}
.pkride.is-picked { border-color: var(--accent); background: oklch(56% 0.19 40 / .14); }
.pkride__img {
  width: 54px; height: 54px; border-radius: 10px;
  object-fit: cover; background: oklch(100% 0 0 / .08);
}
.pkride__name { font-family: var(--font-display); font-weight: 600; font-size: .98rem; margin: 0; }
.pkride__age { display: block; margin-top: .15rem; font-size: .8rem; color: oklch(86% 0.008 90 / .7); }
.pkride__ctrl { display: flex; align-items: center; gap: .55rem; }
.pkride__btn {
  width: 32px; height: 32px; flex: none;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid oklch(100% 0 0 / .3);
  background: oklch(100% 0 0 / .08);
  color: oklch(98% 0 0);
  font: 700 1.15rem/1 var(--font-display);
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.pkride__btn:hover:not(:disabled) { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); transform: scale(1.08); }
.pkride__btn:disabled { opacity: .3; cursor: not-allowed; }
.pkride__n {
  min-width: 1.4ch; text-align: center;
  font-family: var(--font-display); font-weight: 800; font-size: 1.1rem;
  color: oklch(88% 0.11 58);
}
.pkride__n.is-zero { color: oklch(86% 0.008 90 / .42); }

.pkb__total {
  position: sticky; top: 90px;
  padding: clamp(1.2rem, 2.2vw, 1.7rem);
  border-radius: 18px;
  background: oklch(100% 0 0 / .07);
  border: 1px solid oklch(100% 0 0 / .18);
  backdrop-filter: blur(6px);
}
/* шкала из семи «пробитых» делений */
.pkb__meter {
  position: relative; isolation: isolate;
  height: 14px; border-radius: 999px; overflow: hidden;
  background: oklch(100% 0 0 / .12);
  margin-bottom: .9rem;
}
.pkb__meter > span {
  display: block; height: 100%; width: 0%;
  border-radius: 999px;
  background: linear-gradient(90deg, oklch(72% 0.16 55), var(--accent));
  transition: width .32s cubic-bezier(.22, 1, .36, 1);
}
/* перегородки между делениями рисуем поверх заливки */
.pkb__meter::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: repeating-linear-gradient(90deg,
    transparent 0 calc(100% / 7 - 3px),
    oklch(18% 0.02 262) calc(100% / 7 - 3px) calc(100% / 7));
  pointer-events: none;
}
.pkb__count { margin: 0 0 .35rem; font-size: 1rem; }
.pkb__count b { font-family: var(--font-display); font-weight: 900; font-size: 1.9rem; color: oklch(88% 0.11 58); }
.pkb__hint { margin: 0 0 1.2rem; font-size: .88rem; line-height: 1.5; color: oklch(88% 0.008 90 / .75); min-height: 2.6em; }
.pkb__hint.is-full { color: oklch(88% 0.11 58); }
.pkb__actions { display: grid; gap: .6rem; }
.btn--ghost {
  background: none;
  border: 1px solid oklch(100% 0 0 / .28);
  color: oklch(94% 0 0);
}
.btn--ghost:hover { background: oklch(100% 0 0 / .14); border-color: oklch(100% 0 0 / .5); }
@media (max-width: 900px) {
  .pkb__panel { grid-template-columns: minmax(0, 1fr); }
  .pkb__total { position: static; }
}
@media (max-width: 460px) {
  .pkride { grid-template-columns: 44px minmax(0, 1fr); gap: .7rem; }
  .pkride__img { width: 44px; height: 44px; }
  .pkride__ctrl { grid-column: 1 / -1; justify-content: flex-end; }
}

/* ---------- Каталог аттракционов ---------- */
.pka {
  position: relative;
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem);
  max-width: 1600px; margin-inline: auto;
}
.pka__head, .pka__filters, .pka__grid, .pka__empty, .pka .tsec-cta { position: relative; z-index: 1; }
.pka__head { max-width: 52rem; margin-bottom: clamp(1.4rem, 2.6vw, 2rem); }
.pka__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 64ch; }
.tart--pk-a {
  --src: url('../assets/decor/pk-monstr.webp'); --ar: 432 / 339;
  --w: 15vw; --op: .4; --dur: 17s; --delay: -6s;
  --float: 22px; --driftX: 12px; --tilt: -1.4deg;
  top: 26px; right: 6%;
}
@media (max-width: 1100px) { .tart--pk-a { display: none; } }

.pka__filters {
  display: grid; gap: 1rem;
  margin-bottom: clamp(1.4rem, 2.6vw, 2rem);
  padding: clamp(1rem, 2vw, 1.4rem);
  border-radius: 18px;
  background: var(--surface);
  border: 1px solid var(--edge);
}
.pkfilter { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem 1rem; }
.pkfilter__label {
  flex: none;
  font-family: var(--font-display); font-weight: 600;
  font-size: .78rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-faint);
  min-width: 10.5rem;
}
.pkchips { display: flex; flex-wrap: wrap; gap: .5rem; }
.pkchip {
  padding: .5rem 1rem;
  border-radius: var(--radius-chip);
  border: 1px solid var(--edge-strong);
  background: var(--bg);
  color: var(--text-muted);
  font: 600 .9rem/1.2 var(--font-body);
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.pkchip:hover { border-color: var(--accent); color: var(--accent-dim); transform: translateY(-1px); }
.pkchip.is-active {
  background: var(--accent); border-color: var(--accent); color: var(--accent-ink);
  box-shadow: 0 8px 20px -12px oklch(56% 0.19 40 / .9);
}

.pka__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.8rem, 1.5vw, 1.3rem);
}
@media (max-width: 1180px) { .pka__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px)  { .pka__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px)  { .pka__grid { grid-template-columns: minmax(0, 1fr); } }

.pkcard {
  position: relative;
  display: flex; flex-direction: column;
  text-align: left;
  padding: 0;
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  background: var(--surface);
  overflow: hidden;
  cursor: pointer;
  font: inherit; color: inherit;
  box-shadow: 0 20px 44px -38px oklch(23% 0.02 260 / .6);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.pkcard:hover {
  transform: translateY(-4px);
  border-color: var(--accent-line);
  box-shadow: 0 28px 54px -34px oklch(23% 0.02 260 / .8);
}
.pkcard__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--surface-2); }
.pkcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.22, 1, .36, 1); }
.pkcard:hover .pkcard__media img { transform: scale(1.06); }
.pkcard__age {
  position: absolute; top: .65rem; left: .65rem;
  padding: .26rem .6rem;
  border-radius: var(--radius-chip);
  background: oklch(16% 0.02 260 / .78);
  color: oklch(99% 0 0);
  font-family: var(--font-display); font-weight: 700; font-size: .74rem;
  backdrop-filter: blur(4px);
}
.pkcard__kind {
  position: absolute; bottom: .65rem; left: .65rem;
  padding: .26rem .6rem;
  border-radius: var(--radius-chip);
  background: var(--accent); color: var(--accent-ink);
  font-family: var(--font-display); font-weight: 700; font-size: .72rem;
}
.pkcard__kind--free { background: oklch(52% 0.11 160); }
.pkcard__kind--extra { background: oklch(40% 0.02 260); }
.pkcard__body { padding: .95rem 1rem 1.1rem; display: flex; flex-direction: column; flex: 1; }
.pkcard__title { margin: 0 0 .35rem; font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; line-height: 1.25; }
.pkcard__text {
  margin: 0 0 .8rem; font-size: .9rem; line-height: 1.5; color: var(--text-muted);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.pkcard__more {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: .4rem;
  font-family: var(--font-display); font-weight: 600; font-size: .86rem;
  color: var(--accent-dim);
}
.pkcard__more svg { width: 1em; height: 1em; transition: transform .2s ease; }
.pkcard:hover .pkcard__more svg { transform: translateX(3px); }
.pka__empty {
  margin: 1.5rem 0 0; padding: 1.4rem;
  border-radius: 16px; border: 1px dashed var(--edge-strong);
  background: var(--surface-2);
  text-align: center; color: var(--text-muted);
}
.pka__empty[hidden] { display: none !important; }

/* ---------- Карта парка ---------- */
.pkmap { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); max-width: 1400px; margin-inline: auto; }
.pkmap__head { max-width: 48rem; margin-bottom: clamp(1.4rem, 2.6vw, 2rem); }
.pkmap__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 60ch; }
.pkmap__frame {
  position: relative;
  border-radius: var(--radius-card);
  border: 1px solid var(--edge);
  background: var(--surface);
  overflow: hidden;
  box-shadow: 0 30px 60px -44px oklch(23% 0.02 260 / .7);
}
.pkmap__frame img { width: 100%; height: auto; }
.pkmap__actions { display: flex; justify-content: center; margin-top: 1.6rem; }

/* ---------- Режим работы ---------- */
.pksch { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); }
.pksch__inner {
  max-width: 1600px; margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(1.4rem, 3vw, 2.6rem);
  align-items: center;
  padding: clamp(1.6rem, 3vw, 2.6rem);
  border-radius: clamp(20px, 2.4vw, 28px);
  border: 1px solid var(--edge);
  background: var(--surface);
  box-shadow: 0 30px 60px -48px oklch(23% 0.02 260 / .7);
}
.pksch__lead { margin: .9rem 0 0; font-size: 1.02rem; line-height: 1.7; color: var(--text-muted); max-width: 52ch; }
.pksch__note {
  margin: 1rem 0 1.4rem;
  padding: .8rem 1rem;
  border-radius: 12px;
  border: 1px dashed var(--edge-strong);
  background: var(--surface-2);
  font-size: .92rem; line-height: 1.55; color: var(--text-muted);
}
.pksch__week {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .5rem;
}
.pkday {
  display: grid; gap: .3rem;
  padding: .85rem .4rem;
  border-radius: 14px;
  border: 1px solid var(--edge);
  background: var(--bg);
  text-align: center;
}
.pkday__d {
  font-family: var(--font-display); font-weight: 700; font-size: .84rem;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--text);
}
.pkday__time { font-size: .84rem; color: var(--text-muted); }
.pkday--we { border-color: var(--accent-line); background: var(--accent-soft); }
.pkday--we .pkday__d { color: var(--accent-dim); }
.pkday.is-unknown .pkday__time { color: var(--text-faint); letter-spacing: .1em; }
.pksch__phone {
  grid-column: 1 / -1;
  margin: .9rem 0 0;
  font-size: .92rem; color: var(--text-muted);
}
.pksch__phone a { font-weight: 600; color: var(--accent-dim); }
.pksch__phone a:hover { text-decoration: underline; }
@media (max-width: 900px) {
  .pksch__inner { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .pksch__week { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- Безопасность ---------- */
.pksafe { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); max-width: 1600px; margin-inline: auto; }
.pksafe__head { max-width: 48rem; margin-bottom: clamp(1.6rem, 3vw, 2.2rem); }
.pksafe__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: clamp(.9rem, 1.8vw, 1.4rem);
}
.pksafe-card {
  padding: clamp(1.2rem, 2.2vw, 1.7rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--edge);
  background: var(--surface);
  transition: border-color .25s ease, transform .25s ease;
}
.pksafe-card:hover { border-color: var(--accent-line); transform: translateY(-3px); }
.pksafe-card__icon {
  display: grid; place-items: center;
  width: 44px; height: 44px; margin-bottom: .9rem;
  border-radius: 13px;
  background: var(--accent-soft);
  color: var(--accent-dim);
}
.pksafe-card__icon svg { width: 22px; height: 22px; }
.pksafe-card__title { margin: 0 0 .45rem; font-family: var(--font-display); font-weight: 700; font-size: 1rem; line-height: 1.3; }
.pksafe-card__text { margin: 0; font-size: .93rem; line-height: 1.6; color: var(--text-muted); }
.pksafe__cta {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 1rem;
  margin-top: clamp(1.4rem, 2.6vw, 2rem);
  padding: clamp(1.1rem, 2.2vw, 1.6rem) clamp(1.2rem, 2.4vw, 2rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--accent-line);
  background: var(--accent-soft);
}
.pksafe__cta-text { margin: 0; font-size: 1rem; line-height: 1.55; max-width: 48ch; }

/* ---------- Праздники ---------- */
.pkhol { padding: 0 clamp(1.25rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem); }
.pkhol__inner {
  position: relative; isolation: isolate; overflow: hidden;
  max-width: 1600px; margin-inline: auto;
  padding: clamp(2rem, 4vw, 3.4rem);
  border-radius: clamp(20px, 2.4vw, 28px);
  background: linear-gradient(150deg, oklch(26% 0.03 262), oklch(15% 0.02 262) 76%);
  border: 1px solid oklch(36% 0.03 262);
  color: oklch(96% 0.005 90);
}
.pkhol__glow {
  position: absolute; z-index: -1;
  width: 46rem; height: 46rem;
  right: -14rem; top: -18rem;
  border-radius: 50%;
  background: radial-gradient(circle, oklch(56% 0.19 40 / .5), transparent 62%);
  filter: blur(10px);
  animation: pkGlow 14s ease-in-out infinite alternate;
}
@keyframes pkGlow {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(-3rem, 2rem, 0) scale(1.12); }
}
.pkhol__text { max-width: 52rem; }
.pkhol__inner .eyebrow { color: oklch(86% 0.1 58); }
.pkhol__lead { margin: .9rem 0 1.5rem; font-size: 1.04rem; line-height: 1.7; color: oklch(89% 0.008 90 / .88); max-width: 60ch; }
.pkhol__facts { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.6rem; }
.pkhol__fact {
  display: inline-flex; align-items: baseline; gap: .5rem;
  padding: .6rem 1.1rem;
  border-radius: var(--radius-chip);
  background: oklch(100% 0 0 / .08);
  border: 1px solid oklch(100% 0 0 / .2);
  font-size: .92rem; color: oklch(92% 0.006 90);
}
.pkhol__fact b {
  font-family: var(--font-display); font-weight: 900; font-size: 1.2rem;
  color: oklch(88% 0.11 58);
}

@media (prefers-reduced-motion: reduce) {
  .pkhol__glow { animation: none; }
  .pkb__meter > span { transition: none; }
}

/* ---------- Заявка на странице парка: вместо финишного флага — техника ---------- */
.gorder--park .gorder__checker {
  background-image: none;
  background: url('../assets/decor/pk-monstr.webp') center 62% / 150% no-repeat;
  opacity: .5;
  -webkit-mask-image: linear-gradient(190deg, #000 18%, transparent 88%);
          mask-image: linear-gradient(190deg, #000 18%, transparent 88%);
}
.gorder--park .gorder__flag {
  width: 58px; height: 58px; border-radius: 50%;
  background-image: none;
  background: oklch(100% 0 0 / .1);
  border: 1px solid oklch(100% 0 0 / .3);
  animation: none;
}
.gorder--park .gorder__flag::before {
  content: ""; position: absolute; inset: 12px;
  background: url('../assets/decor/pk-moto.webp') center / contain no-repeat;
}

/* ---------- Карточка аттракциона ---------- */
.pkmod {
  position: fixed; inset: 0; z-index: 90;
  display: grid; place-items: center;
  padding: clamp(.8rem, 3vw, 2rem);
  background: oklch(12% 0.02 260 / .72);
  backdrop-filter: blur(5px);
  opacity: 0; visibility: hidden;
  transition: opacity .28s ease, visibility .28s ease;
}
.pkmod.is-open { opacity: 1; visibility: visible; }
.pkmod__dialog {
  position: relative;
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  width: min(100%, 980px);
  max-height: min(88vh, 720px);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: var(--surface);
  box-shadow: 0 40px 90px -40px oklch(14% 0.02 260 / .85);
  transform: translateY(14px) scale(.985);
  transition: transform .3s cubic-bezier(.2, .7, .3, 1);
}
.pkmod.is-open .pkmod__dialog { transform: none; }
.pkmod__close {
  position: absolute; top: .8rem; right: .8rem; z-index: 3;
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid var(--edge);
  background: var(--surface);
  color: var(--text);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.pkmod__close:hover { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); transform: rotate(90deg); }

.pkmod__media { position: relative; display: flex; flex-direction: column; background: oklch(16% 0.02 260); }
.pkmod__media > img {
  width: 100%; flex: 1; min-height: 0;
  object-fit: cover;
  cursor: zoom-in;
}
.pkmod__thumbs {
  display: flex; gap: .4rem; padding: .5rem;
  background: oklch(13% 0.02 260);
  overflow-x: auto;
}
.pkmod__thumbs:empty { display: none; }
.pkmod__thumbs button {
  flex: none; width: 62px; height: 46px; padding: 0;
  border-radius: 8px; overflow: hidden;
  border: 2px solid transparent;
  background: none; cursor: pointer;
  opacity: .6;
  transition: opacity .2s ease, border-color .2s ease;
}
.pkmod__thumbs button img { width: 100%; height: 100%; object-fit: cover; }
.pkmod__thumbs button:hover { opacity: 1; }
.pkmod__thumbs button.is-active { opacity: 1; border-color: var(--accent); }

.pkmod__body { padding: clamp(1.3rem, 2.6vw, 2rem); overflow-y: auto; }
.pkmod__title { margin: 0 0 .8rem; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.3rem, 2.4vw, 1.75rem); line-height: 1.2; }
.pkmod__badges { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.pkbadge {
  padding: .35rem .8rem;
  border-radius: var(--radius-chip);
  border: 1px solid var(--edge-strong);
  background: var(--surface-2);
  font-size: .82rem; font-weight: 600; color: var(--text-muted);
}
.pkbadge--accent { background: var(--accent-soft); border-color: var(--accent-line); color: var(--accent-dim); }
.pkmod__text { margin: 0 0 1.2rem; font-size: 1rem; line-height: 1.7; color: var(--text-muted); }
.pkmod__safe {
  display: flex; align-items: flex-start; gap: .65rem;
  margin-bottom: 1.4rem;
  padding: .85rem 1rem;
  border-radius: 14px;
  background: var(--accent-soft);
  border: 1px solid var(--accent-line);
  font-size: .92rem; line-height: 1.55;
}
.pkmod__safe[hidden] { display: none !important; }
.pkmod__safe .icon { flex: none; width: 1.3em; height: 1.3em; margin-top: .1em; color: var(--accent-dim); }
.pkmod__actions .btn { width: 100%; }

@media (max-width: 760px) {
  .pkmod__dialog { grid-template-columns: minmax(0, 1fr); max-height: 92vh; overflow-y: auto; }
  .pkmod__media > img { aspect-ratio: 16 / 10; height: auto; flex: none; }
  .pkmod__body { overflow: visible; }
}
@media (prefers-reduced-motion: reduce) {
  .pkmod, .pkmod__dialog, .pkmod__close { transition: none; }
}
.pkcard__kind--kids { background: oklch(48% 0.13 285); }

/* карточка аттракциона без фотографии */
.pkcard__media--glyph {
  display: grid; place-items: center;
  background:
    radial-gradient(120% 120% at 30% 0%, var(--accent-soft), transparent 62%),
    repeating-linear-gradient(135deg, var(--surface-2) 0 10px, var(--bg) 10px 20px);
  color: var(--accent-dim);
}
.pkcard__media--glyph svg { width: 42%; height: auto; opacity: .55; }
.pkcard:hover .pkcard__media--glyph svg { transform: none; }
.pkmod__dialog--noimg { grid-template-columns: minmax(0, 1fr); }
.pkmod__dialog--noimg .pkmod__media { display: none; }

/* Парк: длинная строка «15 аттракционов и приключений» на узких экранах */
.page-park .thero__price { flex-wrap: wrap; }
@media (max-width: 560px) {
  .page-park .thero__price { display: block; padding: .7rem 1.1rem; line-height: 1.45; }
  .page-park .thero__price-num { display: block; margin-bottom: .05rem; }
}

/* ===================== «При поддержке Правительства Москвы» ===================== */
.govlogo {
  position: absolute; z-index: 5;
  top: clamp(1rem, 2.2vw, 1.9rem);
  /* выравниваем по правому краю той же колонки, что и остальной контент */
  right: max(var(--gutter), calc((100% - var(--shell)) / 2));
  display: block;
  line-height: 0;
  opacity: .92;
  transition: opacity .25s ease, transform .25s ease;
}
.govlogo:hover { opacity: 1; transform: translateY(-1px); }
.govlogo img {
  width: clamp(168px, 15vw, 248px);
  height: auto;
  filter: drop-shadow(0 2px 10px oklch(14% 0.02 260 / .6));
}
@media (max-width: 760px) {
  .govlogo {
    top: auto; right: auto;
    bottom: clamp(1.6rem, 5vw, 2.4rem);
    left: var(--gutter);
  }
  .govlogo img { width: 166px; }
}

/* ===================== Отзывы гостей: скриншоты ===================== */
.ureviews {
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem) 0;
  max-width: 1600px; margin-inline: auto;
}
.ureviews__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 1.5rem; flex-wrap: wrap;
  margin-bottom: clamp(1.4rem, 2.6vw, 2rem);
}
.ureviews__head > div:first-child { max-width: 46rem; }
.ureviews__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 58ch; }
.ureviews__nav { display: flex; gap: .6rem; flex: none; }
.ureviews__viewport { overflow: hidden; touch-action: pan-y; }
.ureviews__track {
  --ur-visible: 3;
  --ur-gap: clamp(.8rem, 1.6vw, 1.3rem);
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (var(--ur-visible) - 1) * var(--ur-gap)) / var(--ur-visible));
  gap: var(--ur-gap);
  transition: transform .45s cubic-bezier(.22, 1, .36, 1);
}
.ureview {
  position: relative;
  display: block; width: 100%;
  height: clamp(300px, 34vw, 430px);
  padding: .8rem;
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  background:
    linear-gradient(180deg, var(--surface) 0%, var(--surface-2) 100%);
  cursor: zoom-in;
  overflow: hidden;
  box-shadow: 0 20px 44px -38px oklch(23% 0.02 260 / .6);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.ureview:hover {
  transform: translateY(-4px);
  border-color: var(--accent-line);
  box-shadow: 0 28px 54px -34px oklch(23% 0.02 260 / .8);
}
.ureview img {
  width: 100%; height: 100%;
  object-fit: contain;
  border-radius: 10px;
}
.ureview__zoom {
  position: absolute; right: .9rem; bottom: .9rem;
  width: 34px; height: 34px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: oklch(16% 0.02 260 / .78);
  color: oklch(99% 0 0);
  backdrop-filter: blur(4px);
  opacity: 0; transform: translateY(5px);
  transition: opacity .25s ease, transform .25s ease;
}
.ureview__zoom svg { width: 16px; height: 16px; }
.ureview:hover .ureview__zoom { opacity: 1; transform: none; }

.ureviews__dots { display: flex; justify-content: center; gap: .45rem; margin-top: 1.4rem; }
.udot {
  width: 8px; height: 8px; padding: 0;
  border: 0; border-radius: 50%;
  background: var(--edge-strong);
  cursor: pointer;
  transition: background .2s ease, width .2s ease;
}
.udot:hover { background: var(--accent-dim); }
.udot.is-active { width: 22px; border-radius: 999px; background: var(--accent); }

@media (max-width: 640px) {
  .ureviews__head { align-items: flex-start; }
  .ureview__zoom { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ureviews__track, .ureview, .ureview__zoom { transition: none; }
}

/* =====================================================================
   ВНУТРЕННИЕ СТРАНИЦЫ: услуги, контакты, о парке, отзывы
   ===================================================================== */

/* ---------- Компактный первый экран ---------- */
.phero {
  position: relative;
  overflow: hidden;
  display: flex; align-items: center;
  min-height: min(62vh, 560px);
  padding: clamp(3rem, 7vw, 5.5rem) clamp(1.25rem, 4vw, 3rem) clamp(3.5rem, 8vw, 6rem);
}
.phero__poster {
  position: absolute; inset: 0; z-index: 0;
  background: var(--phero-img, url('../assets/tanki/hero-poster.jpg')) center / cover no-repeat;
  transform: scale(1.04);
}
.phero__scrim {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(98deg, oklch(14% 0.02 260 / .92) 0%, oklch(14% 0.02 260 / .74) 46%, oklch(14% 0.02 260 / .5) 72%, oklch(14% 0.02 260 / .8) 100%),
    linear-gradient(to top, oklch(10% 0.02 260 / .8) 0%, transparent 42%);
}
.phero__inner {
  position: relative; z-index: 3;
  width: 100%; max-width: 1600px; margin-inline: auto;
}
.phero .eyebrow { color: oklch(92% 0.07 58); text-shadow: 0 1px 14px oklch(14% 0.02 260 / .65); }
.phero__title {
  margin: 0 0 1rem;
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(2.2rem, 6vw, 4.4rem);
  line-height: 1.02; letter-spacing: -.02em;
  color: oklch(99% 0 0);
}
.phero__lead {
  margin: 0 0 1.7rem;
  max-width: 52ch;
  font-size: clamp(1rem, 1.3vw, 1.14rem); line-height: 1.65;
  color: oklch(93% 0.01 90 / .95);
}
.phero__actions { display: flex; flex-wrap: wrap; gap: .9rem; }
.phero__actions .btn--outline {
  background: oklch(100% 0 0 / .1);
  color: oklch(98% 0 0);
  border-color: oklch(100% 0 0 / .45);
  backdrop-filter: blur(6px);
}
.phero__actions .btn--outline:hover { background: oklch(100% 0 0 / .2); border-color: oklch(100% 0 0 / .75); color: oklch(100% 0 0); }

.page-uslugi  .phero__poster { --phero-img: url('../assets/uslugi/svc-gorya.webp'); }
.page-kontakty .phero__poster { --phero-img: url('../assets/o-parke/park-1.webp'); }
.page-oparke  .phero__poster { --phero-img: url('../assets/o-parke/park-9.webp'); }
.page-otzyvy  .phero__poster { --phero-img: url('../assets/o-parke/park-6.webp'); }

@media (max-width: 560px) {
  .phero { min-height: min(72vh, 520px); }
  .phero__actions .btn { flex: 1 1 100%; justify-content: center; }
}

/* =====================================================================
   УСЛУГИ
   ===================================================================== */
.usl { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); max-width: 1600px; margin-inline: auto; }
.usl__head { max-width: 54rem; margin-bottom: clamp(1.8rem, 3vw, 2.6rem); }
.usl__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 64ch; }

.usl__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
}
.ucard { grid-column: span 2; }
.ucard--wide { grid-column: span 3; }

.ucard {
  position: relative; isolation: isolate;
  display: flex; flex-direction: column; justify-content: flex-end;
  min-height: clamp(360px, 40vw, 460px);
  padding: clamp(1.3rem, 2.4vw, 2rem);
  border-radius: var(--radius-card);
  overflow: hidden;
  border: 1px solid var(--edge);
  background: var(--ubg, var(--surface-2)) center / cover no-repeat;
  box-shadow: 0 26px 54px -40px oklch(23% 0.02 260 / .8);
  transition: transform .3s cubic-bezier(.22, 1, .36, 1), box-shadow .3s ease;
}
.ucard:hover { transform: translateY(-5px); box-shadow: 0 34px 64px -34px oklch(23% 0.02 260 / .9); }
.ucard__shade {
  position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(to top, oklch(11% 0.02 260 / .95) 0%, oklch(12% 0.02 260 / .78) 38%, oklch(14% 0.02 260 / .35) 68%, oklch(16% 0.02 260 / .2) 100%);
  transition: opacity .3s ease;
}
.ucard:hover .ucard__shade { opacity: .88; }
.ucard--hot { border-color: var(--accent-line); }
.ucard--hot::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(70% 55% at 50% 100%, oklch(56% 0.19 40 / .55), transparent 70%);
}
.ucard__body { position: relative; color: oklch(98% 0 0); }
.ucard__title {
  margin: 0 0 .3rem;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.25rem, 2.1vw, 1.7rem); line-height: 1.15;
}
.ucard__price {
  margin: 0 0 .8rem;
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  color: oklch(88% 0.11 58);
}
.ucard__short { margin: 0 0 .9rem; font-size: .98rem; line-height: 1.55; color: oklch(93% 0.01 90 / .92); max-width: 44ch; }
.ucard__meta { list-style: none; margin: 0 0 1.3rem; padding: 0; display: grid; gap: .35rem; }
.ucard__meta li {
  position: relative; padding-left: 1.1rem;
  font-size: .88rem; line-height: 1.45; color: oklch(90% 0.01 90 / .78);
}
.ucard__meta li::before {
  content: ""; position: absolute; left: 0; top: .55em;
  width: 5px; height: 5px; border-radius: 50%; background: oklch(86% 0.11 58);
}
.ucard__more { align-self: flex-start; }

@media (max-width: 1100px) {
  .usl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ucard, .ucard--wide { grid-column: span 1; }
}
@media (max-width: 620px) {
  .usl__grid { grid-template-columns: minmax(0, 1fr); }
  .ucard { min-height: 320px; }
  .ucard__more { align-self: stretch; }
}

.usl__cta {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 1.4rem;
  margin-top: clamp(1.6rem, 3vw, 2.4rem);
  padding: clamp(1.4rem, 2.6vw, 2.2rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--accent-line);
  background: var(--accent-soft);
}
.usl__cta-title { margin: 0 0 .5rem; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.2rem, 2vw, 1.6rem); }
.usl__cta-text { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--text-muted); max-width: 52ch; }
.usl__cta-actions { display: flex; flex-wrap: wrap; gap: .7rem; }

/* ---------- Окно услуги ---------- */
.umod {
  position: fixed; inset: 0; z-index: 90;
  display: grid; place-items: center;
  padding: clamp(.8rem, 3vw, 2rem);
  background: oklch(12% 0.02 260 / .74);
  backdrop-filter: blur(5px);
  opacity: 0; visibility: hidden;
  transition: opacity .28s ease, visibility .28s ease;
}
.umod.is-open { opacity: 1; visibility: visible; }
.umod__dialog {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  /* строка не должна вырастать выше окна — иначе лента миниатюр уезжает за край */
  grid-template-rows: minmax(0, 1fr);
  width: min(100%, 1040px);
  max-height: min(90vh, 740px);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: var(--surface);
  box-shadow: 0 40px 90px -40px oklch(14% 0.02 260 / .85);
  transform: translateY(14px) scale(.985);
  transition: transform .3s cubic-bezier(.2, .7, .3, 1);
}
.umod.is-open .umod__dialog { transform: none; }
.umod__close {
  position: absolute; top: .8rem; right: .8rem; z-index: 3;
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid var(--edge);
  background: var(--surface);
  color: var(--text); cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.umod__close:hover { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); transform: rotate(90deg); }
.umod__media { position: relative; display: flex; flex-direction: column; min-height: 0; overflow: hidden; background: oklch(16% 0.02 260); }
.umod__media > img { width: 100%; flex: 1; min-height: 0; object-fit: cover; cursor: zoom-in; }
.umod__thumbs { display: flex; gap: .4rem; padding: .5rem; background: oklch(13% 0.02 260); overflow-x: auto; }
.umod__thumbs:empty { display: none; }
.umod__thumbs button {
  flex: none; width: 62px; height: 46px; padding: 0;
  border-radius: 8px; overflow: hidden;
  border: 2px solid transparent; background: none; cursor: pointer;
  opacity: .6; transition: opacity .2s ease, border-color .2s ease;
}
.umod__thumbs button img { width: 100%; height: 100%; object-fit: cover; }
.umod__thumbs button:hover { opacity: 1; }
.umod__thumbs button.is-active { opacity: 1; border-color: var(--accent); }

.umod__body { padding: clamp(1.3rem, 2.6vw, 2rem); overflow-y: auto; }
.umod__title { margin: 0 0 .4rem; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.3rem, 2.4vw, 1.8rem); line-height: 1.2; }
.umod__price {
  display: inline-flex; align-items: baseline; gap: .45rem; flex-wrap: wrap;
  margin: 0 0 1.1rem;
  padding: .45rem .95rem;
  border-radius: var(--radius-chip);
  background: var(--accent-soft);
  border: 1px solid var(--accent-line);
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  color: var(--accent-dim);
}
.umod__text { margin: 0 0 1.2rem; font-size: 1rem; line-height: 1.7; color: var(--text-muted); }
.umod__text p { margin: 0 0 .7rem; }
.umod__text p:last-child { margin-bottom: 0; }
.umod__text b { color: var(--text); }
.umod__spec { display: grid; gap: .7rem; margin-bottom: 1.2rem; }
.uspec {
  display: grid; grid-template-columns: 34px minmax(0, 1fr);
  align-items: start; gap: .8rem;
  padding: .8rem .95rem;
  border-radius: 14px;
  background: var(--surface-2);
  border: 1px solid var(--edge);
}
.uspec__icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--accent-soft); color: var(--accent-dim); }
.uspec__icon svg { width: 18px; height: 18px; }
.uspec__label { display: block; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text-faint); margin-bottom: .15rem; font-family: var(--font-display); font-weight: 600; }
.uspec__value { font-size: .95rem; line-height: 1.55; }
.umod__video {
  display: inline-flex; align-items: center; gap: .7rem;
  margin-bottom: 1.3rem;
  font-family: var(--font-display); font-weight: 600; font-size: .95rem;
  color: var(--accent-dim);
}
.umod__video[hidden] { display: none !important; }
.umod__video:hover { color: var(--accent); }
.umod__video-icon {
  width: 34px; height: 34px; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  border: 1px solid var(--accent-line); background: var(--accent-soft);
  transition: background .2s ease, transform .2s ease;
}
.umod__video-icon svg { width: 15px; height: 15px; margin-left: 2px; }
.umod__video:hover .umod__video-icon { background: var(--accent); color: var(--accent-ink); transform: scale(1.06); }

@media (max-width: 800px) {
  .umod__dialog { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; max-height: 92vh; overflow-y: auto; }
  .umod__media > img { aspect-ratio: 16 / 10; height: auto; flex: none; }
  .umod__body { overflow: visible; }
}
@media (prefers-reduced-motion: reduce) {
  .umod, .umod__dialog, .umod__close, .ucard { transition: none; }
}

/* =====================================================================
   КОНТАКТЫ
   ===================================================================== */
.kcards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  max-width: 1600px; margin-inline: auto;
  padding: clamp(2.4rem, 5vw, 4rem) clamp(1.25rem, 4vw, 3rem) 0;
}
.kcard {
  position: relative; isolation: isolate;
  display: grid; gap: .3rem;
  padding: clamp(1.3rem, 2.4vw, 1.8rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--edge);
  background: var(--surface);
  box-shadow: 0 22px 46px -40px oklch(23% 0.02 260 / .7);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.kcard:hover { transform: translateY(-4px); border-color: var(--accent-line); box-shadow: 0 30px 56px -34px oklch(23% 0.02 260 / .85); }
.kcard__icon {
  display: grid; place-items: center;
  width: 46px; height: 46px; margin-bottom: .7rem;
  border-radius: 14px;
  background: var(--accent-soft); color: var(--accent-dim);
}
.kcard__icon svg { width: 22px; height: 22px; }
.kcard__label { font-family: var(--font-display); font-weight: 600; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--text-faint); }
.kcard__value { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.15rem, 1.9vw, 1.45rem); line-height: 1.2; }
.kcard__note { font-size: .9rem; line-height: 1.5; color: var(--text-muted); margin-top: .25rem; }
.kcard--accent {
  border-color: var(--accent-line);
  background: linear-gradient(168deg, var(--accent-soft), var(--surface) 62%);
}
.kcard--accent .kcard__icon { background: var(--accent); color: var(--accent-ink); }
.kcard--accent .kcard__value { color: var(--accent-dim); }

.kroute { padding: clamp(2.6rem, 5vw, 4.2rem) clamp(1.25rem, 4vw, 3rem); max-width: 1600px; margin-inline: auto; }
.kroute__head { max-width: 46rem; margin-bottom: clamp(1.4rem, 2.6vw, 2rem); }
.kroute__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  gap: clamp(.9rem, 1.8vw, 1.4rem);
}
.kway {
  padding: clamp(1.2rem, 2.2vw, 1.7rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--edge);
  background: var(--surface);
}
.kway__badge {
  display: inline-block; margin-bottom: 1rem;
  padding: .4rem .9rem;
  border-radius: var(--radius-chip);
  background: var(--bg-deep);
  border: 1px solid var(--edge-strong);
  font-family: var(--font-display); font-weight: 600; font-size: .84rem;
}
.kway__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.kway__list li { position: relative; padding-left: 1.4rem; font-size: .96rem; line-height: 1.55; color: var(--text-muted); }
.kway__list li::before {
  content: ""; position: absolute; left: 0; top: .5em;
  width: 8px; height: 8px; border-radius: 50%;
  border: 2px solid var(--accent-line); background: var(--accent-soft);
}
.kway__list b { font-family: var(--font-display); font-weight: 700; color: var(--text); }
.kway--car { background: linear-gradient(168deg, oklch(24% 0.025 262), oklch(15% 0.02 262) 82%); border-color: oklch(36% 0.03 262); color: oklch(96% 0.005 90); }
.kway--car .kway__badge { background: oklch(100% 0 0 / .1); border-color: oklch(100% 0 0 / .24); color: oklch(97% 0 0); }
.kway--car .kway__list li { color: oklch(92% 0.006 90); }
.kway--car .kway__list li::before { border-color: oklch(72% 0.14 55 / .6); background: oklch(100% 0 0 / .12); }
.kway__warn {
  display: flex; align-items: flex-start; gap: .6rem;
  margin: 1.1rem 0 0; padding: .75rem .9rem;
  border-radius: 12px;
  background: oklch(56% 0.19 40 / .18);
  border: 1px solid oklch(72% 0.14 55 / .4);
  font-size: .9rem; line-height: 1.5;
}
.kway__warn .icon { flex: none; width: 1.2em; height: 1.2em; margin-top: .1em; color: oklch(86% 0.11 58); }

.kroute__map { margin-top: clamp(1.2rem, 2.4vw, 1.8rem); }
.kmap {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center; gap: 1.2rem;
  padding: clamp(1.1rem, 2.2vw, 1.6rem) clamp(1.2rem, 2.4vw, 1.9rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--accent-line);
  background:
    radial-gradient(120% 140% at 0% 50%, var(--accent-soft), transparent 62%),
    var(--surface);
  transition: transform .25s ease, box-shadow .25s ease;
}
.kmap:hover { transform: translateY(-3px); box-shadow: 0 26px 50px -34px oklch(56% 0.19 40 / .7); }
.kmap__pin {
  display: grid; place-items: center;
  width: 54px; height: 54px; flex: none;
  border-radius: 50%;
  background: var(--accent); color: var(--accent-ink);
  box-shadow: 0 10px 24px -12px oklch(56% 0.19 40 / .9);
}
.kmap__pin svg { width: 26px; height: 26px; }
.kmap__text { display: grid; gap: .2rem; font-size: .96rem; color: var(--text-muted); }
.kmap__text b { font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; color: var(--text); }
.kmap__go {
  display: inline-flex; align-items: center; gap: .45rem; flex: none;
  font-family: var(--font-display); font-weight: 600; font-size: .92rem;
  color: var(--accent-dim);
}
.kmap__go .icon { transition: transform .2s ease; }
.kmap:hover .kmap__go .icon { transform: translateX(3px); }
@media (max-width: 640px) {
  .kmap { grid-template-columns: auto minmax(0, 1fr); }
  .kmap__go { grid-column: 1 / -1; }
}

/* ---------- Соцсети ---------- */
.ksoc { padding: 0 clamp(1.25rem, 4vw, 3rem) clamp(2.6rem, 5vw, 4.2rem); max-width: 1600px; margin-inline: auto; }
.ksoc__head { max-width: 46rem; margin-bottom: clamp(1.4rem, 2.6vw, 2rem); }
.ksoc__lead { margin: .9rem 0 0; font-size: 1.02rem; line-height: 1.7; color: var(--text-muted); max-width: 56ch; }
.ksoc__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
  gap: clamp(.9rem, 1.8vw, 1.4rem);
}
.soclink {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center; gap: 1rem;
  padding: clamp(1.1rem, 2.2vw, 1.5rem);
  border-radius: var(--radius-card);
  border: 1px solid oklch(36% 0.03 262);
  background: linear-gradient(160deg, oklch(24% 0.025 262), oklch(14% 0.02 262) 84%);
  color: oklch(97% 0.005 90);
  transition: transform .28s cubic-bezier(.22, 1, .36, 1), border-color .28s ease;
}
.soclink:hover { transform: translateY(-4px); border-color: var(--soc, oklch(60% 0.16 260)); }
.soclink__glow {
  position: absolute; z-index: -1;
  width: 18rem; height: 18rem; right: -7rem; top: -7rem;
  border-radius: 50%;
  background: radial-gradient(circle, var(--soc, oklch(60% 0.16 260)) 0%, transparent 66%);
  opacity: .32;
  transition: opacity .3s ease, transform .5s cubic-bezier(.22, 1, .36, 1);
}
.soclink:hover .soclink__glow { opacity: .55; transform: scale(1.18) translate(-1rem, 1rem); }
.soclink__icon {
  display: grid; place-items: center;
  width: 52px; height: 52px; flex: none;
  border-radius: 16px;
  background: var(--soc, oklch(60% 0.16 260));
  color: oklch(99% 0 0);
  box-shadow: 0 12px 26px -14px var(--soc, oklch(60% 0.16 260));
}
.soclink__icon svg { width: 26px; height: 26px; }
.soclink__body { display: grid; gap: .2rem; }
.soclink__body b { font-family: var(--font-display); font-weight: 700; font-size: 1.06rem; }
.soclink__body span { font-size: .9rem; line-height: 1.45; color: oklch(88% 0.008 90 / .78); }
.soclink__go {
  display: grid; place-items: center; flex: none;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid oklch(100% 0 0 / .24);
  background: oklch(100% 0 0 / .08);
  transition: background .25s ease, transform .25s ease;
}
.soclink__go svg { width: 17px; height: 17px; }
.soclink:hover .soclink__go { background: var(--soc, oklch(60% 0.16 260)); transform: translateX(3px); }
.soclink--vk { --soc: oklch(58% 0.15 255); }
.soclink--ig { --soc: oklch(58% 0.22 5); }
.soclink--yt { --soc: oklch(55% 0.22 28); }
.soclink--ig .soclink__icon { background: linear-gradient(135deg, oklch(70% 0.17 70), oklch(58% 0.24 5) 48%, oklch(50% 0.2 300)); }

.ksoc__tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.4rem 0 0; }
.ksoc__tags span {
  padding: .4rem .9rem;
  border-radius: var(--radius-chip);
  background: var(--surface-2);
  border: 1px solid var(--edge);
  font-size: .88rem; color: var(--text-muted);
}

/* ---------- Блок «Задать вопрос» ---------- */
.kask { padding: 0 clamp(1.25rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem); }
.kask__inner {
  position: relative; isolation: isolate; overflow: hidden;
  max-width: 1600px; margin-inline: auto;
  padding: clamp(2rem, 4vw, 3.2rem);
  border-radius: clamp(20px, 2.4vw, 28px);
  background: linear-gradient(150deg, oklch(26% 0.03 262), oklch(15% 0.02 262) 76%);
  border: 1px solid oklch(36% 0.03 262);
  color: oklch(96% 0.005 90);
}
.kask__glow {
  position: absolute; z-index: -1;
  width: 42rem; height: 42rem; right: -13rem; top: -16rem;
  border-radius: 50%;
  background: radial-gradient(circle, oklch(56% 0.19 40 / .5), transparent 62%);
  filter: blur(10px);
  animation: pkGlow 14s ease-in-out infinite alternate;
}
.kask__text { max-width: 50rem; }
.kask__inner .eyebrow { color: oklch(86% 0.1 58); }
.kask__lead { margin: .9rem 0 1.5rem; font-size: 1.04rem; line-height: 1.7; color: oklch(89% 0.008 90 / .88); max-width: 56ch; }
@media (prefers-reduced-motion: reduce) { .kask__glow { animation: none; } }

/* =====================================================================
   О ПАРКЕ
   ===================================================================== */
.oarena { padding: clamp(2.6rem, 5vw, 4.2rem) clamp(1.25rem, 4vw, 3rem) 0; }
.oarena__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: clamp(1.6rem, 3vw, 3rem);
  align-items: center;
  max-width: 1600px; margin-inline: auto;
  padding: clamp(1.6rem, 3vw, 2.6rem);
  border-radius: clamp(20px, 2.4vw, 28px);
  border: 1px solid var(--edge);
  background: var(--surface);
  box-shadow: 0 30px 60px -48px oklch(23% 0.02 260 / .7);
}
.oarena__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 52ch; }
.oarena__figs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.ofig {
  display: grid; gap: .2rem;
  padding: clamp(1rem, 2vw, 1.4rem);
  border-radius: 16px;
  background: var(--bg);
  border: 1px solid var(--edge);
  text-align: center;
}
.ofig b {
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(1.5rem, 2.8vw, 2.1rem); line-height: 1;
  color: var(--accent-dim);
}
.ofig span { font-size: .86rem; line-height: 1.35; color: var(--text-muted); }
@media (max-width: 900px) { .oarena__inner { grid-template-columns: minmax(0, 1fr); } }

.owork-sec { padding: clamp(2.6rem, 5vw, 4.2rem) clamp(1.25rem, 4vw, 3rem); max-width: 1600px; margin-inline: auto; }
.owork-sec__head { max-width: 52rem; margin-bottom: clamp(1.4rem, 2.6vw, 2rem); }
.owork-sec__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 62ch; }
/* Список и галерея идут друг под другом: так нет пустот
   от разной высоты колонок. Список — в две колонки, галерея — кладкой. */
.owork-sec__grid { display: grid; gap: clamp(1.4rem, 2.8vw, 2.2rem); }
.owork__list {
  list-style: none; margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
}
.owork {
  display: grid; grid-template-columns: 38px minmax(0, 1fr);
  align-items: center; gap: .85rem;
  padding: .7rem .9rem;
  border-radius: 14px;
  border: 1px solid var(--edge);
  background: var(--surface);
  font-size: .96rem; line-height: 1.45;
  transition: border-color .2s ease, transform .2s ease;
}
.owork:hover { border-color: var(--accent-line); transform: translateX(3px); }
.owork__icon {
  display: grid; place-items: center;
  width: 38px; height: 38px; border-radius: 11px;
  background: var(--accent-soft); color: var(--accent-dim);
}
.owork__icon svg { width: 20px; height: 20px; }

/* кладка по колонкам: снимки ложатся без дыр при любой пропорции */
.ogal { columns: 4 15rem; column-gap: .6rem; }
.ogal__cell {
  position: relative;
  display: block; width: 100%;
  break-inside: avoid;
  margin: 0 0 .6rem;
  padding: 0;
  border: 0; border-radius: 12px;
  overflow: hidden; cursor: zoom-in;
  background: var(--surface-2);
}
.ogal__cell img { width: 100%; height: auto; display: block; transition: transform .5s cubic-bezier(.22, 1, .36, 1); }
.ogal__cell:hover img { transform: scale(1.05); }
@media (max-width: 620px) {
  .owork__list { grid-template-columns: minmax(0, 1fr); }
  .ogal { columns: 2 8rem; }
}

/* ---------- История по годам ---------- */
.ohist { padding: clamp(2.6rem, 5vw, 4.2rem) clamp(1.25rem, 4vw, 3rem); max-width: 1400px; margin-inline: auto; }
.ohist__head { max-width: 50rem; margin-bottom: clamp(1.8rem, 3vw, 2.6rem); }
.ohist__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 60ch; }

.otl {
  position: relative;
  display: grid; gap: clamp(.9rem, 1.8vw, 1.4rem);
  padding-left: 46px;
}
/* сплошная линия слева от карточек — по ней читается порядок лет */
.otl::before {
  content: ""; position: absolute;
  left: 19px; top: .8rem; bottom: .8rem;
  width: 2px;
  background: linear-gradient(to bottom, var(--accent), oklch(80% 0.02 250 / .45));
}
.otl__item {
  position: relative;
  display: grid;
  grid-template-columns: clamp(200px, 17vw, 250px) minmax(0, 1fr);
  align-items: center;
  gap: 0 clamp(1rem, 2vw, 1.6rem);
  padding: clamp(.9rem, 1.8vw, 1.3rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--edge);
  background: var(--surface);
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.otl__item:hover { border-color: var(--accent-line); transform: translateX(4px); box-shadow: 0 22px 44px -38px oklch(23% 0.02 260 / .8); }
.otl__dot {
  position: absolute; left: -34px; top: 50%;
  transform: translateY(-50%);
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--accent);
  border: 3px solid var(--bg);
  box-shadow: 0 0 0 2px var(--accent-line);
}
.otl__photo {
  grid-column: 1;
  width: 100%; aspect-ratio: 3 / 2;
  padding: 0; border: 0; border-radius: 14px;
  overflow: hidden; cursor: zoom-in;
  background: var(--surface-2);
}
.otl__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.22, 1, .36, 1); }
.otl__item:hover .otl__photo img { transform: scale(1.06); }
.otl__body { grid-column: 2; padding-right: .3rem; }
.otl__year {
  margin: 0 0 .25rem;
  font-family: var(--font-display); font-weight: 900;
  font-size: 1.25rem; letter-spacing: -.01em;
  color: var(--accent-dim);
}
.otl__title { margin: 0 0 .45rem; font-family: var(--font-display); font-weight: 700; font-size: 1.08rem; line-height: 1.25; }
.otl__text { margin: 0; font-size: .96rem; line-height: 1.65; color: var(--text-muted); max-width: 72ch; }

@media (max-width: 860px) {
  .otl { padding-left: 34px; }
  .otl::before { left: 13px; }
  .otl__item { grid-template-columns: minmax(0, 1fr); padding: 1rem; }
  .otl__dot { left: -25px; top: 2.4rem; transform: none; width: 12px; height: 12px; }
  .otl__photo { grid-column: 1; grid-row: 1; width: 100%; height: 190px; margin-bottom: .9rem; }
  .otl__body { grid-column: 1; grid-row: 2; }
  .otl__item:hover { transform: none; }
}

/* ---------- Рекорды ---------- */
.orec { padding: 0 clamp(1.25rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem); }
.orec__inner {
  position: relative; isolation: isolate; overflow: hidden;
  max-width: 1400px; margin-inline: auto;
  padding: clamp(1.8rem, 3.6vw, 3rem);
  border-radius: clamp(20px, 2.4vw, 28px);
  background: linear-gradient(150deg, oklch(26% 0.03 262), oklch(15% 0.02 262) 76%);
  border: 1px solid oklch(36% 0.03 262);
  color: oklch(96% 0.005 90);
}
.orec__glow {
  position: absolute; z-index: -1;
  width: 40rem; height: 40rem; left: -12rem; bottom: -18rem;
  border-radius: 50%;
  background: radial-gradient(circle, oklch(56% 0.19 40 / .45), transparent 64%);
  filter: blur(10px);
}
.orec__head { max-width: 46rem; margin-bottom: clamp(1.2rem, 2.4vw, 1.8rem); }
.orec__inner .eyebrow { color: oklch(86% 0.1 58); }
.orec__list {
  list-style: none; counter-reset: rec;
  margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  gap: .7rem;
}
.orec__list li {
  counter-increment: rec;
  position: relative;
  padding: .9rem 1rem .9rem 3.2rem;
  border-radius: 14px;
  background: oklch(100% 0 0 / .06);
  border: 1px solid oklch(100% 0 0 / .14);
  font-size: .95rem; line-height: 1.55;
}
.orec__list li::before {
  content: counter(rec);
  position: absolute; left: .85rem; top: .85rem;
  width: 26px; height: 26px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--accent); color: var(--accent-ink);
  font-family: var(--font-display); font-weight: 800; font-size: .78rem;
}
.orec__note { margin: 1.3rem 0 0; font-size: .95rem; line-height: 1.6; color: oklch(88% 0.008 90 / .78); max-width: 66ch; }

/* =====================================================================
   ОТЗЫВЫ
   ===================================================================== */
.oscreens { padding: clamp(2.6rem, 5vw, 4.2rem) clamp(1.25rem, 4vw, 3rem); max-width: 1600px; margin-inline: auto; }
.oscreens__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 1.5rem; flex-wrap: wrap;
  margin-bottom: clamp(1.4rem, 2.6vw, 2rem);
}
.oscreens__head > div:first-child { max-width: 48rem; }
.oscreens__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 60ch; }
.oscreens__count {
  flex: none;
  display: grid; place-items: center; gap: .1rem;
  padding: 1rem 1.5rem;
  border-radius: var(--radius-card);
  border: 1px solid var(--accent-line);
  background: var(--accent-soft);
}
.oscreens__count b { font-family: var(--font-display); font-weight: 900; font-size: 2rem; line-height: 1; color: var(--accent-dim); }
.oscreens__count span { font-size: .84rem; color: var(--text-muted); }

.oscreens__grid {
  columns: 4 16rem;
  column-gap: clamp(.7rem, 1.4vw, 1.1rem);
}
.oscreen {
  display: block; width: 100%;
  break-inside: avoid;
  margin: 0 0 clamp(.7rem, 1.4vw, 1.1rem);
  padding: .6rem;
  border: 1px solid var(--edge);
  border-radius: 16px;
  background: linear-gradient(180deg, var(--surface), var(--surface-2));
  cursor: zoom-in;
  overflow: hidden;
  position: relative;
  box-shadow: 0 18px 40px -38px oklch(23% 0.02 260 / .6);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.oscreen:hover { transform: translateY(-3px); border-color: var(--accent-line); box-shadow: 0 26px 50px -34px oklch(23% 0.02 260 / .8); }
.oscreen img { width: 100%; height: auto; border-radius: 10px; display: block; }
.oscreen__zoom {
  position: absolute; right: 1rem; bottom: 1rem;
  width: 32px; height: 32px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: oklch(16% 0.02 260 / .78); color: oklch(99% 0 0);
  backdrop-filter: blur(4px);
  opacity: 0; transform: translateY(5px);
  transition: opacity .25s ease, transform .25s ease;
}
.oscreen__zoom svg { width: 15px; height: 15px; }
.oscreen:hover .oscreen__zoom { opacity: 1; transform: none; }
.oscreens__more { display: flex; justify-content: center; margin-top: 1.6rem; }
.oscreens__more[hidden] { display: none !important; }

.oleave { padding: 0 clamp(1.25rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem); }
.oleave__inner {
  position: relative; isolation: isolate; overflow: hidden;
  max-width: 1600px; margin-inline: auto;
  padding: clamp(2rem, 4vw, 3.2rem);
  border-radius: clamp(20px, 2.4vw, 28px);
  background: linear-gradient(150deg, oklch(26% 0.03 262), oklch(15% 0.02 262) 76%);
  border: 1px solid oklch(36% 0.03 262);
  color: oklch(96% 0.005 90);
}
.oleave__glow {
  position: absolute; z-index: -1;
  width: 42rem; height: 42rem; right: -13rem; top: -16rem;
  border-radius: 50%;
  background: radial-gradient(circle, oklch(56% 0.19 40 / .5), transparent 62%);
  filter: blur(10px);
  animation: pkGlow 14s ease-in-out infinite alternate;
}
.oleave__text { max-width: 50rem; }
.oleave__inner .eyebrow { color: oklch(86% 0.1 58); }
.oleave__lead { margin: .9rem 0 1.5rem; font-size: 1.04rem; line-height: 1.7; color: oklch(89% 0.008 90 / .88); max-width: 56ch; }
.oleave__actions { display: flex; flex-wrap: wrap; gap: .7rem; }

@media (max-width: 640px) {
  .oscreen__zoom { opacity: 1; transform: none; }
  .oscreens__head { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .oleave__glow { animation: none; }
  .otl__item, .oscreen, .owork, .soclink, .kcard, .kmap { transition: none; }
}

/* фоны карточек услуг: путь считается от css/, поэтому ../assets */
.ucard--svc-shar    { --ubg: url('../assets/uslugi/svc-shar.webp'); }
.ucard--svc-gorya   { --ubg: url('../assets/uslugi/svc-gorya.webp'); }
.ucard--svc-petlya  { --ubg: url('../assets/uslugi/svc-petlya.webp'); }
.ucard--svc-tank    { --ubg: url('../assets/uslugi/svc-tank.webp'); }
.ucard--svc-bigfoot { --ubg: url('../assets/uslugi/svc-bigfoot.webp'); }
.umod__price span { font-weight: 600; font-size: .78em; color: var(--text-muted); }

/* Длинные подписи кнопок не должны распирать узкий экран */
@media (max-width: 480px) {
  .btn { max-width: 100%; white-space: normal; text-align: center; }
}

/* =====================================================================
   ОБРАТНЫЙ ЗВОНОК
   ===================================================================== */
.cbk {
  position: fixed; inset: 0; z-index: 95;
  display: grid; place-items: center;
  padding: clamp(.9rem, 3vw, 2rem);
  background: oklch(12% 0.02 260 / .74);
  backdrop-filter: blur(5px);
  opacity: 0; visibility: hidden;
  transition: opacity .28s ease, visibility .28s ease;
}
.cbk.is-open { opacity: 1; visibility: visible; }
.cbk__dialog {
  position: relative; isolation: isolate; overflow: hidden;
  width: min(100%, 440px);
  padding: clamp(1.6rem, 3.2vw, 2.2rem);
  border-radius: var(--radius-card);
  background:
    radial-gradient(120% 90% at 100% 0%, var(--accent-soft), transparent 58%),
    var(--surface);
  border: 1px solid var(--edge);
  box-shadow: 0 40px 90px -40px oklch(14% 0.02 260 / .85);
  transform: translateY(14px) scale(.985);
  transition: transform .3s cubic-bezier(.2, .7, .3, 1);
}
.cbk.is-open .cbk__dialog { transform: none; }
.cbk__close {
  position: absolute; top: .8rem; right: .8rem; z-index: 3;
  width: 36px; height: 36px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid var(--edge);
  background: var(--surface);
  color: var(--text); cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.cbk__close:hover { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); transform: rotate(90deg); }

.cbk__ring {
  position: relative;
  display: grid; place-items: center;
  width: 54px; height: 54px; margin-bottom: 1.1rem;
  border-radius: 50%;
  background: var(--accent); color: var(--accent-ink);
  box-shadow: 0 14px 30px -14px oklch(56% 0.19 40 / .9);
}
.cbk__ring svg { width: 26px; height: 26px; transform-origin: 50% 85%; animation: tbRing 3.4s ease-in-out infinite; }
.cbk__ring::before, .cbk__ring::after {
  content: ""; position: absolute; inset: 0;
  border-radius: 50%;
  border: 2px solid var(--accent);
  opacity: 0;
  animation: tbPulse 3.4s ease-out infinite;
}
.cbk__ring::after { animation-delay: .45s; }

.cbk__title { margin: 0 0 .5rem; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.25rem, 2.2vw, 1.55rem); line-height: 1.2; }
.cbk__sub { margin: 0 0 1.4rem; font-size: .95rem; line-height: 1.6; color: var(--text-muted); }
.cbk__form { display: grid; gap: .9rem; }
.cbk__form[hidden] { display: none !important; }
.cbk__note { margin: 0; font-size: .88rem; color: var(--text-muted); text-align: center; }
.cbk__note a { font-weight: 600; color: var(--accent-dim); }
.cbk__note a:hover { text-decoration: underline; }

.cbk__done { display: grid; justify-items: center; text-align: center; gap: .5rem; padding: 1rem 0 .5rem; }
.cbk__done[hidden] { display: none !important; }
.cbk__done-icon {
  display: grid; place-items: center;
  width: 58px; height: 58px; margin-bottom: .4rem;
  border-radius: 50%;
  background: var(--accent-soft);
  border: 1px solid var(--accent-line);
  color: var(--accent-dim);
}
.cbk__done-icon svg { width: 28px; height: 28px; }
.cbk__done h4 { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 1.2rem; }
.cbk__done p { margin: 0; font-size: .95rem; line-height: 1.55; color: var(--text-muted); max-width: 30ch; }

@media (prefers-reduced-motion: reduce) {
  .cbk, .cbk__dialog, .cbk__close { transition: none; }
  .cbk__ring svg, .cbk__ring::before, .cbk__ring::after { animation: none; }
}

/* ---------- Яндекс Карта ---------- */
.kymap { padding: 0 clamp(1.25rem, 4vw, 3rem) clamp(2.6rem, 5vw, 4.2rem); max-width: 1600px; margin-inline: auto; }
.kymap__head { max-width: 46rem; margin-bottom: clamp(1.2rem, 2.4vw, 1.8rem); }
.kymap__lead { margin: .9rem 0 0; font-size: 1.02rem; line-height: 1.7; color: var(--text-muted); max-width: 56ch; }
.kymap__frame {
  position: relative;
  height: clamp(320px, 46vw, 520px);
  border-radius: var(--radius-card);
  overflow: hidden;
  border: 1px solid var(--edge);
  background: var(--surface-2);
  box-shadow: 0 30px 60px -44px oklch(23% 0.02 260 / .7);
}
/* пока виджет грузится (или если его блокирует расширение) — видна подсказка */
.kymap__frame::before {
  content: "Загружаем карту…";
  position: absolute; inset: 0; z-index: 0;
  display: grid; place-items: center;
  font-size: .95rem; color: var(--text-faint);
}
.kymap__frame iframe { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; border: 0; }
.kymap__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; margin-top: 1.4rem; }

/* =====================================================================
   КОРПОРАТИВЫ — шесть сценариев
   ===================================================================== */
.page-korp .phero__poster { --phero-img: url('../assets/korporativy/cov-knight.webp'); }

/* у каждой сцены своя температура поверх общего оранжевого */
.kv--gold   { --sc: oklch(72% 0.13 85);  --sc-deep: oklch(52% 0.11 80); }
.kv--frost  { --sc: oklch(70% 0.12 235); --sc-deep: oklch(48% 0.12 245); }
.kv--ember  { --sc: oklch(66% 0.17 45);  --sc-deep: oklch(48% 0.17 40); }
.kv--steel  { --sc: oklch(62% 0.09 255); --sc-deep: oklch(45% 0.12 20); }
.kv--fire   { --sc: oklch(77% 0.16 72);  --sc-deep: oklch(55% 0.15 62); }
.kv--wine   { --sc: oklch(58% 0.15 350); --sc-deep: oklch(42% 0.14 355); }

.kfacts { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.6rem; }
.kfact {
  display: inline-flex; align-items: baseline; gap: .4rem;
  padding: .5rem 1rem;
  border-radius: var(--radius-chip);
  background: oklch(100% 0 0 / .12);
  border: 1px solid oklch(100% 0 0 / .26);
  font-size: .9rem; color: oklch(93% 0.01 90);
  backdrop-filter: blur(6px);
}
.kfact b { font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; color: oklch(88% 0.11 58); }

/* ---------- Подборщик ---------- */
.kpick { padding: clamp(2.6rem, 5vw, 4.2rem) clamp(1.25rem, 4vw, 3rem) 0; }
.kpick__inner {
  max-width: 1600px; margin-inline: auto;
  padding: clamp(1.6rem, 3vw, 2.4rem);
  border-radius: clamp(20px, 2.4vw, 28px);
  border: 1px solid var(--edge);
  background: var(--surface);
  box-shadow: 0 30px 60px -48px oklch(23% 0.02 260 / .7);
}
.kpick__head { max-width: 50rem; margin-bottom: clamp(1.2rem, 2.4vw, 1.8rem); }
.kpick__lead { margin: .9rem 0 0; font-size: 1rem; line-height: 1.65; color: var(--text-muted); max-width: 60ch; }
.kpick__rows { display: grid; gap: .9rem; }
.kpick__row { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem 1rem; }
.kpick__label {
  flex: none; min-width: 9.5rem;
  font-family: var(--font-display); font-weight: 600;
  font-size: .78rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-faint);
}
.kpick__chips { display: flex; flex-wrap: wrap; gap: .5rem; }

.kpick__result { margin-top: 1.4rem; }
.kpick__result:empty { display: none; }
.kres {
  display: flex; align-items: center; flex-wrap: wrap; gap: 1rem;
  padding: 1rem 1.2rem;
  border-radius: 16px;
  border: 1px solid var(--accent-line);
  background: var(--accent-soft);
}
.kres__text { flex: 1 1 18rem; font-size: .98rem; line-height: 1.55; }
.kres__text b { font-family: var(--font-display); font-weight: 700; }
.kres__links { display: flex; flex-wrap: wrap; gap: .5rem; }
.kres__link {
  padding: .5rem 1rem;
  border-radius: var(--radius-chip);
  background: var(--accent); color: var(--accent-ink);
  font-family: var(--font-display); font-weight: 600; font-size: .9rem;
  cursor: pointer; border: 0;
  transition: transform .18s ease, box-shadow .18s ease;
}
.kres__link:hover { transform: translateY(-1px); box-shadow: 0 10px 22px -10px oklch(56% 0.19 40 / .9); }
.kres--none { border-color: var(--edge-strong); background: var(--surface-2); }

/* ---------- Липкая лента выбора ---------- */
.kbar {
  position: sticky; top: 0; z-index: 30;
  margin-top: clamp(2.2rem, 4vw, 3.4rem);
  background: oklch(96.5% 0.005 250 / .88);
  backdrop-filter: blur(10px);
  border-block: 1px solid var(--edge);
}
.kbar__inner {
  max-width: 1600px; margin-inline: auto;
  display: flex; gap: .45rem;
  padding: .7rem clamp(1.25rem, 4vw, 3rem);
  overflow-x: auto;
  scrollbar-width: none;
}
.kbar__inner::-webkit-scrollbar { display: none; }
.kchip {
  flex: none;
  display: inline-flex; align-items: baseline; gap: .45rem;
  padding: .5rem 1rem;
  border-radius: var(--radius-chip);
  border: 1px solid var(--edge-strong);
  background: var(--surface);
  color: var(--text-muted);
  font: 600 .88rem/1.2 var(--font-body);
  white-space: nowrap; cursor: pointer;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.kchip b { font-family: var(--font-display); font-weight: 800; font-size: .78rem; color: var(--text-faint); }
.kchip:hover { border-color: var(--accent); color: var(--accent-dim); }
.kchip.is-active { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.kchip.is-active b { color: oklch(100% 0 0 / .72); }

/* ---------- Сцены зигзагом ---------- */
.kscenes { padding: clamp(2.4rem, 5vw, 4rem) clamp(1.25rem, 4vw, 3rem); max-width: 1600px; margin-inline: auto; }
.kscenes__head { max-width: 52rem; margin-bottom: clamp(1.8rem, 3.4vw, 2.8rem); }
.kscenes__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 62ch; }

.kv {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
  align-items: center;
  gap: clamp(1.4rem, 3.4vw, 3.4rem);
  padding: clamp(1.6rem, 3vw, 2.6rem) 0;
  scroll-margin-top: 92px;
}
.kv + .kv { border-top: 1px solid var(--edge); }
.kv--right .kv__media { order: 2; }

.kv__media {
  position: relative; isolation: isolate;
  border-radius: clamp(18px, 2.2vw, 26px);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--surface-2);
  box-shadow: 0 34px 64px -44px oklch(23% 0.02 260 / .85);
}
.kv__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s cubic-bezier(.22, 1, .36, 1);
}
.kv:hover .kv__media img { transform: scale(1.04); }
.kv__glow {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to top, oklch(12% 0.02 260 / .55) 0%, transparent 46%),
              linear-gradient(120deg, var(--sc) 0%, transparent 48%);
  opacity: .5;
  mix-blend-mode: multiply;
  pointer-events: none;
}
.kv__num {
  position: absolute; z-index: 2;
  left: clamp(.8rem, 2vw, 1.4rem); top: clamp(.5rem, 1.6vw, 1rem);
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(3.4rem, 7vw, 5.6rem); line-height: 1;
  letter-spacing: -.04em;
  color: oklch(100% 0 0 / .92);
  text-shadow: 0 6px 26px oklch(14% 0.02 260 / .7);
}

.kv__kicker {
  display: inline-block;
  margin: 0 0 .8rem;
  padding: .32rem .85rem;
  border-radius: var(--radius-chip);
  background: color-mix(in oklch, var(--sc) 16%, transparent);
  border: 1px solid color-mix(in oklch, var(--sc) 42%, transparent);
  color: var(--sc-deep);
  font-family: var(--font-display); font-weight: 600;
  font-size: .78rem; letter-spacing: .1em; text-transform: uppercase;
}
.kv__title {
  margin: 0 0 .7rem;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.45rem, 2.9vw, 2.25rem);
  line-height: 1.15; letter-spacing: -.015em;
}
.kv__lead { margin: 0 0 1.2rem; font-size: 1.02rem; line-height: 1.7; color: var(--text-muted); max-width: 52ch; }
.kv__teaser { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .5rem; }
.kv__teaser li {
  position: relative; padding-left: 1.6rem;
  font-size: .96rem; line-height: 1.5;
}
.kv__teaser li::before {
  content: ""; position: absolute; left: 0; top: .42em;
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--sc);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--sc) 20%, transparent);
}
.kv__actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.kv__actions .btn--cta {
  background: linear-gradient(135deg, var(--sc), var(--sc-deep));
  color: oklch(99% 0 0);
  box-shadow: 0 14px 28px -14px var(--sc-deep);
}
.kv__actions .btn--cta:hover { box-shadow: 0 20px 36px -14px var(--sc-deep); }

@media (max-width: 900px) {
  .kv { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
  .kv--right .kv__media { order: 0; }
  .kv__media { aspect-ratio: 16 / 10; }
}
@media (max-width: 520px) {
  .kv__actions .btn { flex: 1 1 100%; justify-content: center; }
}

/* ---------- Что входит всегда ---------- */
.kcommon { padding: 0 clamp(1.25rem, 4vw, 3rem) clamp(2.6rem, 5vw, 4.2rem); max-width: 1600px; margin-inline: auto; }
.kcommon__head { max-width: 46rem; margin-bottom: clamp(1.4rem, 2.6vw, 2rem); }
.kcommon__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: clamp(.9rem, 1.8vw, 1.4rem);
}
.kcom {
  padding: clamp(1.2rem, 2.2vw, 1.7rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--edge);
  background: var(--surface);
  transition: border-color .25s ease, transform .25s ease;
}
.kcom:hover { border-color: var(--accent-line); transform: translateY(-3px); }
.kcom__icon {
  display: grid; place-items: center;
  width: 44px; height: 44px; margin-bottom: .9rem;
  border-radius: 13px;
  background: var(--accent-soft); color: var(--accent-dim);
}
.kcom__icon svg { width: 22px; height: 22px; }
.kcom__title { margin: 0 0 .45rem; font-family: var(--font-display); font-weight: 700; font-size: 1rem; line-height: 1.3; }
.kcom__text { margin: 0; font-size: .93rem; line-height: 1.6; color: var(--text-muted); }

/* ---------- Заявка на корпоратив ---------- */
.kbrief { padding: 0 clamp(1.25rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem); }
.kbrief__inner {
  position: relative; isolation: isolate; overflow: hidden;
  max-width: 1600px; margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(1.6rem, 3.4vw, 3rem);
  align-items: center;
  padding: clamp(1.8rem, 3.6vw, 3rem);
  border-radius: clamp(20px, 2.4vw, 28px);
  background: linear-gradient(150deg, oklch(26% 0.03 262), oklch(15% 0.02 262) 76%);
  border: 1px solid oklch(36% 0.03 262);
  color: oklch(96% 0.005 90);
}
.kbrief__glow {
  position: absolute; z-index: -1;
  width: 44rem; height: 44rem; left: -14rem; bottom: -20rem;
  border-radius: 50%;
  background: radial-gradient(circle, oklch(56% 0.19 40 / .5), transparent 62%);
  filter: blur(10px);
  animation: pkGlow 14s ease-in-out infinite alternate;
}
.kbrief__inner .eyebrow { color: oklch(86% 0.1 58); }
.kbrief__lead { margin: .9rem 0 1.5rem; font-size: 1.04rem; line-height: 1.7; color: oklch(89% 0.008 90 / .88); max-width: 50ch; }
.kbrief__phone {
  display: inline-flex; align-items: center; gap: .9rem;
  padding: .7rem 1.3rem .7rem .7rem;
  border-radius: var(--radius-chip);
  background: oklch(100% 0 0 / .1);
  border: 1px solid oklch(100% 0 0 / .24);
  transition: background .22s ease, border-color .22s ease, transform .22s ease;
}
.kbrief__phone:hover { background: oklch(100% 0 0 / .18); border-color: oklch(100% 0 0 / .5); transform: translateY(-2px); }
.kbrief__phone-ring {
  position: relative;
  display: grid; place-items: center;
  width: 42px; height: 42px; flex: none;
  border-radius: 50%;
  background: var(--accent); color: var(--accent-ink);
}
.kbrief__phone-ring svg { width: 20px; height: 20px; transform-origin: 50% 85%; animation: tbRing 3.4s ease-in-out infinite; }
.kbrief__phone span { display: grid; gap: .1rem; font-size: .86rem; color: oklch(88% 0.008 90 / .78); }
.kbrief__phone b { font-family: var(--font-display); font-weight: 800; font-size: 1.16rem; color: oklch(100% 0 0); }

.kbrief__form {
  display: grid; gap: .85rem;
  padding: clamp(1.3rem, 2.6vw, 1.9rem);
  border-radius: var(--radius-card);
  background: oklch(100% 0 0 / .07);
  border: 1px solid oklch(100% 0 0 / .18);
  backdrop-filter: blur(6px);
}
.kbrief__form[hidden] { display: none !important; }
.kbrief__form label { color: oklch(92% 0.006 90); }
.kbrief__form input, .kbrief__form select {
  background: oklch(100% 0 0 / .1);
  border: 1px solid oklch(100% 0 0 / .26);
  color: oklch(98% 0 0);
  border-radius: 12px;
  padding: .72rem .9rem;
  font: inherit; font-size: .95rem;
  width: 100%;
}
.kbrief__form input:focus, .kbrief__form select:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.kbrief__form input::placeholder { color: oklch(88% 0.006 90 / .45); }
.kbrief__form select option { color: var(--text); background: var(--surface); }
.kbrief__form .gfield.is-bad input { border-color: oklch(72% 0.17 27); background: oklch(56% 0.19 27 / .18); }
.kbrief__form .gfield__err { color: oklch(82% 0.14 27); }
.kbrief__pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.kbrief__note { margin: 0; font-size: .86rem; text-align: center; color: oklch(88% 0.008 90 / .7); }

.kbrief__done {
  display: grid; justify-items: center; text-align: center; gap: .5rem;
  padding: clamp(1.6rem, 3vw, 2.4rem);
  border-radius: var(--radius-card);
  background: oklch(100% 0 0 / .07);
  border: 1px solid oklch(100% 0 0 / .18);
}
.kbrief__done[hidden] { display: none !important; }
.kbrief__done-icon {
  display: grid; place-items: center;
  width: 58px; height: 58px; margin-bottom: .4rem;
  border-radius: 50%;
  background: oklch(56% 0.19 40 / .2);
  border: 1px solid oklch(72% 0.14 55 / .5);
  color: oklch(88% 0.11 58);
}
.kbrief__done-icon svg { width: 28px; height: 28px; }
.kbrief__done h4 { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 1.2rem; }
.kbrief__done p { margin: 0; font-size: .95rem; line-height: 1.55; color: oklch(88% 0.008 90 / .8); max-width: 34ch; }

@media (max-width: 900px) { .kbrief__inner { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .kbrief__pair { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Окно «Программа вечера» ---------- */
.kmod {
  position: fixed; inset: 0; z-index: 92;
  display: grid; place-items: center;
  padding: clamp(.9rem, 3vw, 2rem);
  background: oklch(12% 0.02 260 / .76);
  backdrop-filter: blur(5px);
  opacity: 0; visibility: hidden;
  transition: opacity .28s ease, visibility .28s ease;
}
.kmod.is-open { opacity: 1; visibility: visible; }
.kmod__dialog {
  position: relative; isolation: isolate;
  display: flex; flex-direction: column;
  width: min(100%, 700px);
  max-height: min(90vh, 820px);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--edge);
  box-shadow: 0 40px 90px -40px oklch(14% 0.02 260 / .85);
  transform: translateY(14px) scale(.985);
  transition: transform .3s cubic-bezier(.2, .7, .3, 1);
}
.kmod.is-open .kmod__dialog { transform: none; }
.kmod__close {
  position: absolute; top: .8rem; right: .8rem; z-index: 4;
  width: 36px; height: 36px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid oklch(100% 0 0 / .3);
  background: oklch(100% 0 0 / .16);
  color: oklch(99% 0 0); cursor: pointer;
  backdrop-filter: blur(4px);
  transition: background .2s ease, transform .2s ease;
}
.kmod__close:hover { background: oklch(100% 0 0 / .32); transform: rotate(90deg); }

.kmod__head {
  display: flex; align-items: center; gap: 1rem;
  padding: clamp(1.2rem, 2.4vw, 1.7rem) clamp(1.2rem, 2.6vw, 1.9rem);
  padding-right: 3.6rem;
  background: linear-gradient(120deg, var(--sc, var(--accent)), var(--sc-deep, var(--accent-dim)));
  color: oklch(99% 0 0);
}
.kmod__num {
  font-family: var(--font-display); font-weight: 900;
  font-size: 2.6rem; line-height: 1; letter-spacing: -.04em;
  color: oklch(100% 0 0 / .45);
}
.kmod__head .eyebrow { margin: 0 0 .2rem; color: oklch(100% 0 0 / .8); }
.kmod__title { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.15rem, 2.2vw, 1.5rem); line-height: 1.2; }

.kmod__scroll { padding: clamp(1.2rem, 2.6vw, 1.9rem); overflow-y: auto; }
.kmod__lead { margin: 0 0 1.3rem; font-size: 1rem; line-height: 1.7; color: var(--text-muted); }
.kmod__caption {
  margin: 0 0 .8rem;
  font-family: var(--font-display); font-weight: 600;
  font-size: .78rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-faint);
}
.kmod__list { list-style: none; margin: 0 0 1.3rem; padding: 0; display: grid; gap: .55rem; }
.kmod__list li {
  position: relative; padding-left: 2rem;
  font-size: .96rem; line-height: 1.55;
}
.kmod__list li::before {
  content: ""; position: absolute; left: 0; top: .18em;
  width: 20px; height: 20px; border-radius: 50%;
  background: color-mix(in oklch, var(--sc, var(--accent)) 18%, transparent);
}
.kmod__list li::after {
  content: ""; position: absolute; left: 6px; top: .52em;
  width: 8px; height: 5px;
  border-left: 2px solid var(--sc-deep, var(--accent-dim));
  border-bottom: 2px solid var(--sc-deep, var(--accent-dim));
  transform: rotate(-45deg);
}
.kmod__outro {
  margin: 0 0 1.3rem;
  padding: .85rem 1rem;
  border-radius: 14px;
  background: color-mix(in oklch, var(--sc, var(--accent)) 10%, var(--surface-2));
  border: 1px solid color-mix(in oklch, var(--sc, var(--accent)) 30%, transparent);
  font-size: .95rem; line-height: 1.55;
}
.kmod__gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; margin-bottom: 1.1rem; }
.kmod__gallery:empty { display: none; }
.kmod__gallery button {
  aspect-ratio: 1; padding: 0; border: 0; border-radius: 10px;
  overflow: hidden; cursor: zoom-in; background: var(--surface-2);
}
.kmod__gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.kmod__gallery button:hover img { transform: scale(1.08); }
.kmod__note { margin: 0; font-size: .88rem; line-height: 1.55; color: var(--text-faint); }
.kmod__note:empty { display: none; }

.kmod__foot {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: .8rem;
  padding: clamp(1rem, 2vw, 1.3rem) clamp(1.2rem, 2.6vw, 1.9rem);
  border-top: 1px solid var(--edge);
  background: var(--surface-2);
}
.kmod__video {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--font-display); font-weight: 600; font-size: .92rem;
  color: var(--sc-deep, var(--accent-dim));
}
.kmod__video[hidden] { display: none !important; }
.kmod__video-icon {
  width: 32px; height: 32px; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  background: color-mix(in oklch, var(--sc, var(--accent)) 16%, transparent);
  border: 1px solid color-mix(in oklch, var(--sc, var(--accent)) 40%, transparent);
  transition: background .2s ease, transform .2s ease;
}
.kmod__video-icon svg { width: 14px; height: 14px; margin-left: 2px; }
.kmod__video:hover .kmod__video-icon { background: var(--sc, var(--accent)); color: oklch(99% 0 0); transform: scale(1.06); }
.kmod__foot .btn--cta {
  background: linear-gradient(135deg, var(--sc, var(--accent)), var(--sc-deep, var(--accent-dim)));
  color: oklch(99% 0 0);
  box-shadow: 0 12px 24px -12px var(--sc-deep, var(--accent-dim));
}

@media (max-width: 520px) {
  .kmod__gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kmod__foot { justify-content: center; }
  .kmod__foot .btn { flex: 1 1 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .kmod, .kmod__dialog, .kmod__close, .kv__media img, .kcom { transition: none; }
  .kbrief__glow, .kbrief__phone-ring svg { animation: none; }
}

/* =====================================================================
   ПУНКТ МЕНЮ «ШКОЛА КАСКАДЁРОВ» — ГОРИТ
   Три места: верхнее меню, мобильное меню, футер. Разметка одинаковая:
   <span class="fire"><i></i><i></i><i></i></span> + текст.
   ===================================================================== */
.navlink--fire,
.mobile-menu__fire {
  display: inline-flex; align-items: center;
  font-weight: 700;
  color: transparent;
  background-image: linear-gradient(100deg,
      oklch(54% 0.21 30)  0%,
      oklch(68% 0.21 46) 12%,
      oklch(86% 0.16 80) 24%,
      oklch(97% 0.09 98) 32%,
      oklch(80% 0.18 66) 42%,
      oklch(60% 0.21 36) 54%,
      oklch(74% 0.20 52) 68%,
      oklch(94% 0.12 92) 80%,
      oklch(66% 0.21 42) 92%,
      oklch(54% 0.21 30) 100%);
  background-size: 300% 100%;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: fireFlow 5.2s linear infinite;
}
.navlink--fire { padding-bottom: 2px; }
.navlink--fire::after {
  background: linear-gradient(90deg, oklch(80% 0.18 75), oklch(58% 0.21 32));
}
.navlink--fire:hover, .mobile-menu__fire:hover { color: transparent; }
.mobile-menu a.mobile-menu__fire { display: flex; align-items: center; }

/* язычки пламени */
.fire {
  position: relative; display: inline-block; flex: none;
  width: .78em; height: 1.05em; margin-right: .42em;
  vertical-align: -.12em;
}
.fire i {
  position: absolute; left: 50%; bottom: 0;
  border-radius: 0 54% 54% 54%;
  transform: translateX(-50%) rotate(45deg);
  transform-origin: 50% 72%;
  animation: fireFlick 1.3s ease-in-out infinite;
}
.fire i:nth-child(1) {
  width: .78em; height: .78em;
  background: linear-gradient(220deg, oklch(66% 0.22 34), oklch(50% 0.20 26));
  opacity: .9; filter: blur(.6px); animation-duration: 1.55s;
}
.fire i:nth-child(2) {
  width: .54em; height: .54em;
  background: linear-gradient(220deg, oklch(86% 0.17 78), oklch(68% 0.21 50));
  animation-duration: 1.15s; animation-delay: -.45s;
}
.fire i:nth-child(3) {
  width: .3em; height: .3em;
  background: oklch(96% 0.10 96);
  animation-duration: .82s; animation-delay: -.75s;
}
@keyframes fireFlick {
  0%, 100% { transform: translateX(-50%) rotate(45deg) scale(1); opacity: .92; }
  28%      { transform: translateX(-54%) rotate(45deg) scale(1.16, 1.06); opacity: 1; }
  55%      { transform: translateX(-47%) rotate(45deg) scale(.94, 1.02); opacity: .84; }
  78%      { transform: translateX(-52%) rotate(45deg) scale(1.04, .96); opacity: .98; }
}
@keyframes fireFlow {
  from { background-position:    0% 50%; }
  to   { background-position: -300% 50%; }
}

/* футер — фон тёмный, огонь ярче */
.footlink--fire {
  font-weight: 700;
  color: transparent;
  background-image: linear-gradient(100deg,
      oklch(68% 0.20 38)  0%,
      oklch(82% 0.18 62) 14%,
      oklch(99% 0.06 100) 30%,
      oklch(86% 0.16 74) 44%,
      oklch(70% 0.20 40) 58%,
      oklch(92% 0.14 88) 76%,
      oklch(76% 0.19 52) 90%,
      oklch(68% 0.20 38) 100%);
  background-size: 300% 100%;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: fireFlow 5.2s linear infinite;
}
.footlink--fire::before {
  content: ""; display: inline-block; vertical-align: -.05em;
  width: .5em; height: .62em; margin-right: .4em;
  border-radius: 0 54% 54% 54%;
  transform: rotate(45deg);
  background: linear-gradient(220deg, oklch(92% 0.13 92), oklch(66% 0.21 40));
  animation: fireFlickMini 1.1s ease-in-out infinite;
}
@keyframes fireFlickMini {
  0%, 100% { transform: rotate(45deg) scale(1); opacity: .95; }
  40%      { transform: rotate(45deg) scale(1.22, 1.12); opacity: 1; }
  70%      { transform: rotate(45deg) scale(1, .92); opacity: .82; }
}

@media (prefers-reduced-motion: reduce) {
  .fire i, .navlink--fire, .mobile-menu__fire, .footlink--fire, .footlink--fire::before { animation: none; }
}

/* =====================================================================
   ШКОЛА КАСКАДЁРОВ  (shkola-kaskaderov.html, body.page-shkola)
   ===================================================================== */

/* ---- полосы во всю ширину экрана ---- */
.site > .smarq,
.site > .sfound,
.site > .strust { max-width: none; }
.site > .sfound,
.site > .strust {
  padding-inline: max(var(--gutter), calc((100% - var(--shell)) / 2));
}

/* ---------------------- Первый экран ---------------------- */
.page-shkola .phero__poster { --phero-img: url('../assets/ogon/hero-poster.jpg'); }
.phero--school { min-height: min(86vh, 800px); }

/* Ролик вертикальный (402x720) — фоном его приходится увеличивать в три-четыре
   раза. Лёгкое размытие и зерно поверх убирают мыло и читаются как киноплёнка. */
.phero--school .phero__video-wrap { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.phero--school .phero__video {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.08);
  filter: blur(2px) saturate(1.1) contrast(1.06);
}
.phero--school .phero__video-wrap::after {
  content: ""; position: absolute; inset: 0;
  background-image:
    repeating-linear-gradient(0deg, oklch(0% 0 0 / .16) 0 1px, transparent 1px 3px);
  opacity: .5; mix-blend-mode: overlay;
}
.phero--school .phero__scrim {
  z-index: 1;
  background:
    linear-gradient(100deg, oklch(11% 0.02 260 / .95) 0%, oklch(11% 0.02 260 / .84) 42%, oklch(11% 0.02 260 / .56) 72%, oklch(11% 0.02 260 / .8) 100%),
    linear-gradient(to top, oklch(8% 0.02 260 / .92) 0%, transparent 48%);
}
.phero--school::after {
  content: ""; position: absolute; inset: auto 0 0 0; height: 46%; z-index: 2;
  pointer-events: none;
  background: radial-gradient(120% 100% at 18% 100%, oklch(62% 0.2 45 / .3), transparent 62%);
}
.phero__title-accent {
  background: linear-gradient(100deg, oklch(94% 0.1 92), oklch(76% 0.19 62) 55%, oklch(62% 0.21 38));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.eyebrow--live { display: inline-flex; align-items: center; gap: .5rem; }
.livedot {
  width: .5rem; height: .5rem; border-radius: 50%;
  background: oklch(78% 0.19 62);
  box-shadow: 0 0 0 0 oklch(78% 0.19 62 / .7);
  animation: liveDot 2s ease-out infinite;
}
@keyframes liveDot {
  0%   { box-shadow: 0 0 0 0 oklch(78% 0.19 62 / .65); }
  70%  { box-shadow: 0 0 0 .6rem oklch(78% 0.19 62 / 0); }
  100% { box-shadow: 0 0 0 0 oklch(78% 0.19 62 / 0); }
}

/* ---------------------- Отсчёт до старта ---------------------- */
.scount {
  display: inline-block;
  margin: 0 0 1.7rem;
  padding: .95rem 1.2rem 1rem;
  border-radius: 18px;
  border: 1px solid oklch(100% 0 0 / .26);
  background: oklch(14% 0.02 260 / .5);
  backdrop-filter: blur(9px);
}
.scount__label {
  margin: 0 0 .5rem;
  font-family: var(--font-display); font-weight: 600;
  font-size: .76rem; letter-spacing: .12em; text-transform: uppercase;
  color: oklch(88% 0.08 70);
}
.scount__row { display: flex; align-items: flex-start; gap: .35rem; }
.scount__cell { display: flex; flex-direction: column; align-items: center; min-width: 3.1rem; }
.scount__cell b {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.6rem, 3.4vw, 2.5rem); line-height: 1;
  font-variant-numeric: tabular-nums;
  color: oklch(99% 0 0);
  text-shadow: 0 2px 20px oklch(62% 0.2 45 / .55);
}
.scount__cell i {
  margin-top: .3rem; font-style: normal;
  font-size: .68rem; letter-spacing: .08em; text-transform: uppercase;
  color: oklch(85% 0.02 90 / .78);
}
.scount__sep {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.3rem, 2.6vw, 2rem); line-height: 1;
  color: oklch(78% 0.16 60 / .8);
  animation: scBlink 1s steps(1, end) infinite;
}
@keyframes scBlink { 50% { opacity: .25; } }
.scount__note {
  margin: .7rem 0 0;
  font-size: .82rem; color: oklch(88% 0.02 90 / .8);
}
.scount.is-live { border-color: oklch(78% 0.18 62 / .55); }
.scount.is-live .scount__row { display: none; }
.scount.is-live .scount__label {
  margin: 0; font-size: clamp(1.05rem, 2vw, 1.45rem);
  letter-spacing: 0; text-transform: none; color: oklch(99% 0 0);
  font-weight: 800;
}

/* ---------------------- Лента-слоган ---------------------- */
.smarq {
  position: relative; overflow: hidden;
  padding: clamp(1.1rem, 2.4vw, 1.9rem) 0;
  background: var(--text);
  display: flex; flex-direction: column; gap: .25rem;
}
.smarq__row { overflow: hidden; }
.smarq__track {
  display: inline-flex; align-items: center; gap: 1.2rem;
  white-space: nowrap; will-change: transform;
  animation: smarqGo 42s linear infinite;
}
.smarq__row--back .smarq__track { animation-direction: reverse; animation-duration: 54s; }
.smarq__track span {
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(1.5rem, 4.6vw, 3.4rem); line-height: 1.1;
  letter-spacing: -.01em;
  color: transparent;
  -webkit-text-stroke: 1.3px oklch(88% 0.02 90 / .42);
}
.smarq__row--back .smarq__track span {
  -webkit-text-stroke: 0;
  background: linear-gradient(100deg, oklch(94% 0.1 92), oklch(74% 0.19 58) 55%, oklch(60% 0.21 36));
  -webkit-background-clip: text; background-clip: text;
}
.smarq__track em {
  font-style: normal; font-size: .7em;
  color: oklch(70% 0.19 52 / .8);
}
@keyframes smarqGo { to { transform: translateX(-33.3333%); } }

/* ---------------------- О школе ---------------------- */
.sabout { padding: clamp(3rem, 6.5vw, 5.5rem) var(--gutter) clamp(2.6rem, 5vw, 4.4rem); }
.sabout__top {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(1.8rem, 4.5vw, 4rem); align-items: center;
}
.sabout__text .section-title { font-size: clamp(1.9rem, 3.8vw, 3.1rem); }
.sabout__text p { margin: 0 0 1rem; font-size: clamp(1rem, 1.2vw, 1.08rem); line-height: 1.78; color: var(--text-muted); max-width: 60ch; }
.sabout__quote {
  position: relative; margin: 1.6rem 0 1.8rem; padding: 1.1rem 1.2rem 1.1rem 3.2rem;
  border-radius: var(--radius-card);
  background: linear-gradient(120deg, var(--accent-soft), oklch(97% 0.02 60));
  border: 1px solid var(--accent-line);
}
.sabout__quote::before {
  content: "\201C"; position: absolute; left: 1rem; top: .1rem;
  font-family: var(--font-display); font-weight: 900; font-size: 3.4rem; line-height: 1;
  color: var(--accent); opacity: .45;
}
.sabout__quote p {
  margin: 0 !important; max-width: none !important;
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1.02rem, 1.5vw, 1.2rem) !important; line-height: 1.45 !important;
  color: var(--text) !important;
}
.sabout__cta { display: flex; flex-wrap: wrap; gap: .8rem; }

/* коллаж */
.sabout__collage {
  position: relative;
  display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto;
  gap: clamp(.6rem, 1.2vw, 1rem);
}
.sacol {
  position: relative; margin: 0; overflow: hidden;
  border-radius: var(--radius-card);
  border: 1px solid var(--edge);
  background: var(--surface-2);
  box-shadow: 0 26px 54px -42px oklch(23% 0.02 260 / .9);
}
.sacol--main { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
.sacol--b, .sacol--c { aspect-ratio: 4 / 3; }
.sacol img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.3,1); }
.sacol:hover img { transform: scale(1.06); }
.sacol figcaption {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 1.6rem .9rem .7rem;
  font-size: .8rem; letter-spacing: .02em; color: oklch(99% 0 0);
  background: linear-gradient(to top, oklch(12% 0.02 260 / .88), transparent);
}
.sabout__stamp {
  position: absolute; z-index: 2;
  left: 50%; bottom: 3.4rem; transform: translateX(-50%) rotate(-8deg);
  width: 6.2rem; height: 6.2rem; border-radius: 50%;
  display: grid; place-content: center; text-align: center; line-height: 1;
  background: linear-gradient(135deg, oklch(70% 0.19 55), oklch(52% 0.2 32));
  color: oklch(99% 0 0);
  border: 3px solid var(--bg);
  box-shadow: 0 18px 34px -18px oklch(52% 0.2 32 / .8);
}
.sabout__stamp b { font-family: var(--font-display); font-weight: 900; font-size: 1.22rem; letter-spacing: -.02em; }
.sabout__stamp i { display: block; margin-top: .22rem; font-style: normal; font-size: .72rem; opacity: .85; }

/* цифры */
.sabout__figs {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.7rem, 1.4vw, 1.1rem);
  margin-top: clamp(1.8rem, 3.5vw, 3rem);
}
.sfig {
  position: relative; overflow: hidden;
  padding: clamp(1.2rem, 2.2vw, 1.8rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--edge);
  background: var(--surface);
  box-shadow: 0 22px 46px -42px oklch(23% 0.02 260 / .8);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.sfig::after {
  content: ""; position: absolute; inset: auto -30% -60% auto;
  width: 9rem; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle, var(--accent-soft), transparent 68%);
  opacity: .8;
}
.sfig:hover { transform: translateY(-4px); border-color: var(--accent-line); box-shadow: 0 30px 56px -40px oklch(56% 0.19 40 / .5); }
.sfig__icon {
  position: relative; z-index: 1;
  display: grid; place-items: center;
  width: 46px; height: 46px; margin-bottom: .9rem;
  border-radius: 14px;
  background: linear-gradient(135deg, oklch(72% 0.17 58), oklch(54% 0.2 34));
  color: oklch(99% 0 0);
}
.sfig__icon svg { width: 23px; height: 23px; }
.sfig b {
  position: relative; z-index: 1; display: block;
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(1.9rem, 3.8vw, 2.7rem); line-height: 1;
  font-variant-numeric: tabular-nums;
  background: linear-gradient(120deg, oklch(66% 0.2 48), oklch(50% 0.2 28));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.sfig > span:not(.sfig__icon) { position: relative; z-index: 1; display: block; margin-top: .5rem; font-size: .9rem; line-height: 1.45; color: var(--text-muted); }

/* ---------------------- Направления ---------------------- */
.sdir { padding: clamp(2.6rem, 5vw, 4rem) var(--gutter) clamp(3rem, 6vw, 5rem); }
.sdir__head { max-width: 56rem; margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.sdir__lead { margin: .9rem 0 0; font-size: 1.04rem; line-height: 1.7; color: var(--text-muted); max-width: 64ch; }
.sdir__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(.7rem, 1.4vw, 1.1rem);
}
.sdcard {
  grid-column: span 2;
  position: relative; isolation: isolate;
  display: flex; align-items: flex-end;
  min-height: clamp(280px, 26vw, 340px);
  padding: clamp(1rem, 1.8vw, 1.5rem);
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  background: var(--sc-deep, oklch(28% 0.03 260));
  overflow: hidden; cursor: pointer;
  text-align: left; font-family: inherit;
  box-shadow: 0 26px 54px -44px oklch(23% 0.02 260 / .85);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.sdcard--big { grid-column: span 3; min-height: clamp(320px, 30vw, 420px); }
.sdcard__media { position: absolute; inset: 0; z-index: -2; }
.sdcard__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s cubic-bezier(.2,.7,.3,1), filter .4s ease;
  filter: saturate(.92);
}
.sdcard::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(to top, oklch(12% 0.02 260 / .94) 0%, oklch(12% 0.02 260 / .62) 40%, oklch(12% 0.02 260 / .18) 72%),
    linear-gradient(to top, var(--sc, oklch(62% 0.2 45)) -14%, transparent 52%);
  transition: opacity .3s ease;
}
.sdcard__num {
  position: absolute; top: .7rem; right: 1rem; z-index: 1;
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(2.2rem, 4.4vw, 3.4rem); line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px oklch(100% 0 0 / .38);
  transition: -webkit-text-stroke-color .3s ease;
}
.sdcard__body { position: relative; z-index: 1; display: block; }
.sdcard__kicker {
  display: block; margin-bottom: .35rem;
  font-family: var(--font-display); font-weight: 600;
  font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--sc, oklch(78% 0.16 60));
  filter: brightness(1.25);
}
.sdcard__title {
  display: block;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.05rem, 1.6vw, 1.32rem); line-height: 1.18;
  color: oklch(99% 0 0);
  text-shadow: 0 2px 16px oklch(12% 0.02 260 / .7);
}
.sdcard--big .sdcard__title { font-size: clamp(1.25rem, 2.2vw, 1.75rem); }
.sdcard__age {
  display: block; margin-top: .45rem;
  font-size: .84rem; color: oklch(92% 0.01 90 / .82);
}
.sdcard__more {
  display: inline-flex; align-items: center; gap: .4rem;
  margin-top: .9rem;
  font-family: var(--font-display); font-weight: 600; font-size: .84rem;
  color: oklch(99% 0 0);
  opacity: .82; transition: gap .25s ease, opacity .25s ease;
}
.sdcard:hover { transform: translateY(-5px); border-color: var(--sc, var(--accent)); box-shadow: 0 34px 62px -40px var(--sc, oklch(62% 0.2 45)); }
.sdcard:hover .sdcard__media img { transform: scale(1.07); filter: saturate(1.08); }
.sdcard:hover .sdcard__more { gap: .75rem; opacity: 1; }
.sdcard:hover .sdcard__num { -webkit-text-stroke-color: var(--sc, oklch(78% 0.16 60)); }
.sdcard:focus-visible { outline: 3px solid var(--sc, var(--accent)); outline-offset: 3px; }

/* одиннадцать акцентов */
.sdcard--flame    { --sc: oklch(72% 0.18 48);  --sc-deep: oklch(40% 0.14 42); }
.sdcard--wine     { --sc: oklch(62% 0.17 18);  --sc-deep: oklch(34% 0.13 18); }
.sdcard--plum     { --sc: oklch(64% 0.16 348); --sc-deep: oklch(36% 0.13 348); }
.sdcard--aqua     { --sc: oklch(74% 0.13 194); --sc-deep: oklch(38% 0.10 200); }
.sdcard--red      { --sc: oklch(64% 0.21 28);  --sc-deep: oklch(36% 0.16 28); }
.sdcard--electric { --sc: oklch(68% 0.16 252); --sc-deep: oklch(36% 0.13 258); }
.sdcard--sky      { --sc: oklch(76% 0.12 226); --sc-deep: oklch(38% 0.10 232); }
.sdcard--gold     { --sc: oklch(80% 0.16 78);  --sc-deep: oklch(42% 0.12 74); }
.sdcard--lime     { --sc: oklch(78% 0.17 142); --sc-deep: oklch(38% 0.12 146); }
.sdcard--amber    { --sc: oklch(78% 0.13 88);  --sc-deep: oklch(40% 0.11 84); }
.sdcard--violet   { --sc: oklch(64% 0.15 302); --sc-deep: oklch(36% 0.13 302); }

.sdir__note {
  display: flex; align-items: flex-start; gap: .6rem;
  margin: clamp(1.2rem, 2.4vw, 1.8rem) 0 0;
  font-size: .9rem; line-height: 1.6; color: var(--text-faint); max-width: 70ch;
}
.sdir__note .icon { margin-top: .15rem; color: var(--accent); }

/* ---------------------- Стоимость и расписание ---------------------- */
.sprice { padding: clamp(2.6rem, 5vw, 4rem) var(--gutter); }
.sprice__head { max-width: 54rem; margin-bottom: clamp(1.4rem, 2.6vw, 2rem); }
.sprice__lead { margin: .9rem 0 0; font-size: 1.02rem; line-height: 1.7; color: var(--text-muted); max-width: 62ch; }
.sprice__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.2rem); }
.spcard {
  position: relative;
  padding: clamp(1.2rem, 2.2vw, 1.8rem);
  border: 1px dashed var(--edge-strong);
  border-radius: var(--radius-card);
  background: var(--surface);
}
.spcard--hot { border-style: solid; border-color: var(--accent-line); background: linear-gradient(180deg, var(--accent-soft), var(--surface) 62%); }
.spcard__flag {
  position: absolute; top: -.7rem; left: clamp(1.2rem, 2.2vw, 1.8rem);
  padding: .25rem .7rem; border-radius: var(--radius-chip);
  background: var(--accent); color: var(--accent-ink);
  font-family: var(--font-display); font-weight: 600; font-size: .7rem;
  letter-spacing: .06em; text-transform: uppercase;
}
.spcard__name { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; }
.spcard__val {
  margin: .6rem 0 .5rem;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1;
  color: var(--text-faint);
}
.spcard__note { margin: 0; font-size: .9rem; line-height: 1.55; color: var(--text-muted); }

.sprice__sched {
  margin-top: clamp(1rem, 2vw, 1.5rem);
  padding: clamp(1.2rem, 2.2vw, 1.8rem);
  border: 1px solid var(--edge); border-radius: var(--radius-card);
  background: var(--surface-2);
  display: flex; flex-wrap: wrap; align-items: center; gap: clamp(.8rem, 2vw, 1.6rem);
}
.sprice__sched-title { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: .95rem; }
.sprice__days { display: flex; flex-wrap: wrap; gap: .45rem; flex: 1 1 320px; }
.spday {
  display: flex; flex-direction: column; align-items: center; gap: .2rem;
  min-width: 3rem; padding: .5rem .55rem;
  border-radius: 12px; border: 1px solid var(--edge); background: var(--surface);
}
.spday b { font-family: var(--font-display); font-weight: 700; font-size: .8rem; }
.spday i { font-style: normal; font-size: .84rem; color: var(--text-faint); }

/* ---------------------- Основатель ---------------------- */
.sfound {
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(3rem, 6vw, 5rem) clamp(2.6rem, 5vw, 4.5rem);
  margin-top: clamp(1rem, 2vw, 1.6rem);
  background: var(--text);
  color: oklch(92% 0.01 90);
}
.sfound__glow {
  position: absolute; inset: -14% auto auto -14%; z-index: -1;
  width: 54%; aspect-ratio: 1;
  background: radial-gradient(circle, oklch(58% 0.2 44 / .42), transparent 64%);
  filter: blur(10px);
}
.sfound__glow::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 30%, oklch(72% 0.18 70 / .3), transparent 58%);
}
.sfound__top {
  display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  align-items: center; gap: clamp(1.6rem, 4.5vw, 4rem);
}
.sfound__photo { display: flex; justify-content: center; }
.sfound__photo img {
  width: auto; max-width: 100%;
  max-height: clamp(430px, 52vw, 700px);
  filter: drop-shadow(0 40px 60px oklch(0% 0 0 / .6));
}
.sfound .eyebrow { color: oklch(84% 0.12 72); }
.sfound__name {
  margin: .4rem 0 .6rem;
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(2.4rem, 5.6vw, 4.6rem); line-height: .98; letter-spacing: -.025em;
  color: oklch(99% 0 0);
}
.sfound__role {
  margin: 0 0 1.4rem; max-width: 48ch;
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1rem, 1.4vw, 1.14rem); line-height: 1.5; color: oklch(84% 0.1 70);
}
.sfound__text p { margin: 0 0 1rem; font-size: 1.02rem; line-height: 1.75; color: oklch(88% 0.01 90 / .9); max-width: 60ch; }
.sfound__text .btn { margin-top: .8rem; }

.sfound__regs { margin-top: clamp(2.2rem, 4.5vw, 3.6rem); }
.sfound__regs-head {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem 1rem;
  padding-bottom: 1rem; margin-bottom: clamp(1rem, 2vw, 1.5rem);
  border-bottom: 1px solid oklch(100% 0 0 / .14);
}
.sfound__regs-title {
  margin: 0; font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.2rem, 2.2vw, 1.6rem); color: oklch(99% 0 0);
}
.sfound__regs-sub { margin: 0; font-size: .92rem; color: oklch(86% 0.01 90 / .62); }

.sreg__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: clamp(.7rem, 1.4vw, 1.1rem);
}
.sreg {
  display: flex; align-items: flex-start; gap: .85rem;
  padding: clamp(.9rem, 1.6vw, 1.15rem);
  border-radius: 16px;
  border: 1px solid oklch(100% 0 0 / .12);
  background: oklch(100% 0 0 / .045);
  transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}
.sreg:hover { background: oklch(100% 0 0 / .085); border-color: oklch(74% 0.18 58 / .5); transform: translateY(-3px); }
.sreg__icon {
  flex: none; display: grid; place-items: center;
  width: 42px; height: 42px; border-radius: 12px;
  background: oklch(100% 0 0 / .08); color: oklch(88% 0.09 70);
  border: 1px solid oklch(100% 0 0 / .1);
}
.sreg--gold .sreg__icon {
  background: linear-gradient(135deg, oklch(78% 0.15 82), oklch(60% 0.18 48));
  color: oklch(18% 0.03 60); border-color: transparent;
}
.sreg__icon svg { width: 21px; height: 21px; }
.sreg__body { display: flex; flex-direction: column; gap: .22rem; min-width: 0; }
.sreg__title {
  font-family: var(--font-display); font-weight: 700;
  font-size: .96rem; line-height: 1.3; color: oklch(99% 0 0);
}
.sreg__text { font-style: normal; font-size: .89rem; line-height: 1.5; color: oklch(86% 0.01 90 / .72); }

/* ---------------------- После школы ---------------------- */
.strust {
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(3rem, 6vw, 5rem);
  background: var(--text);
  color: oklch(92% 0.01 90);
}
.strust__bg {
  position: absolute; inset: 0; z-index: -1;
  background: url('../assets/shkola/trust-bg.webp') center / cover no-repeat;
  opacity: .14; filter: grayscale(.45) contrast(1.06);
}
.strust::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(85% 65% at 6% 0%, oklch(58% 0.2 44 / .42), transparent 60%),
    linear-gradient(to bottom, oklch(19% 0.02 260 / .92), oklch(17% 0.02 260 / .97));
}
.strust__head { max-width: 58rem; margin-bottom: clamp(1.8rem, 3.6vw, 2.8rem); }
.strust .eyebrow { color: oklch(84% 0.12 72); }
.strust__title {
  margin: .4rem 0 .9rem;
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(2rem, 4.6vw, 3.5rem); line-height: 1.02; letter-spacing: -.022em;
  color: oklch(99% 0 0);
}
.strust__lead { margin: 0; font-size: clamp(1rem, 1.25vw, 1.1rem); line-height: 1.72; color: oklch(88% 0.01 90 / .82); max-width: 62ch; }

.strust__grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.7rem, 1.4vw, 1.1rem);
  margin-bottom: clamp(1.4rem, 2.8vw, 2.2rem);
}
.stway {
  position: relative; overflow: hidden;
  padding: clamp(1.1rem, 2vw, 1.6rem);
  border-radius: 18px;
  border: 1px solid oklch(100% 0 0 / .14);
  background: oklch(100% 0 0 / .055);
  backdrop-filter: blur(6px);
  transition: transform .25s ease, background-color .25s ease, border-color .25s ease;
}
.stway:hover { transform: translateY(-4px); background: oklch(100% 0 0 / .1); border-color: oklch(74% 0.18 58 / .5); }
.stway__icon {
  display: grid; place-items: center;
  width: 48px; height: 48px; margin-bottom: .9rem;
  border-radius: 14px;
  background: oklch(100% 0 0 / .1);
  border: 1px solid oklch(78% 0.14 62 / .4);
  color: oklch(88% 0.15 70);
}
.stway--hard .stway__icon {
  background: linear-gradient(135deg, oklch(74% 0.17 62), oklch(54% 0.2 34));
  color: oklch(20% 0.03 50); border-color: transparent;
}
.stway__icon svg { width: 24px; height: 24px; }
.stway__name {
  display: block; margin-bottom: .35rem;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.05rem, 1.6vw, 1.3rem); letter-spacing: .01em;
  color: oklch(99% 0 0);
}
.stway__note { display: block; font-size: .88rem; line-height: 1.5; color: oklch(88% 0.01 90 / .7); }

.strust__figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.7rem, 1.4vw, 1.1rem); }
.stfig {
  display: flex; align-items: center; gap: 1rem;
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: 18px;
  border: 1px solid oklch(100% 0 0 / .12);
  background: linear-gradient(120deg, oklch(100% 0 0 / .085), oklch(100% 0 0 / .03));
}
.stfig__icon { flex: none; color: oklch(84% 0.13 66); }
.stfig__icon svg { width: 30px; height: 30px; }
.stfig b {
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(2rem, 4vw, 2.9rem); line-height: 1;
  color: oklch(99% 0 0);
  text-shadow: 0 2px 22px oklch(62% 0.2 45 / .5);
}
.stfig > span:not(.stfig__icon) { font-size: .9rem; line-height: 1.45; color: oklch(88% 0.01 90 / .75); }

/* ---------------------- Фестивали ---------------------- */
.sfests { padding: clamp(2.8rem, 5.5vw, 4.4rem) var(--gutter); }
.sfests__head { max-width: 56rem; margin-bottom: clamp(1.4rem, 2.8vw, 2.2rem); }
.sfests__lead { margin: .9rem 0 0; font-size: 1.02rem; line-height: 1.7; color: var(--text-muted); max-width: 64ch; }
.sfests__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.2rem); }
.sfest {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; align-items: flex-end;
  min-height: 210px; padding: clamp(1rem, 1.8vw, 1.4rem);
  border-radius: var(--radius-card); border: 1px solid var(--edge);
  background: oklch(28% 0.03 260);
  transition: transform .26s ease, box-shadow .26s ease;
}
.sfest__media { position: absolute; inset: 0; z-index: -2; }
.sfest__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.3,1); }
.sfest::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to top, oklch(11% 0.02 260 / .96) 0%, oklch(11% 0.02 260 / .72) 44%, oklch(11% 0.02 260 / .34) 74%, oklch(11% 0.02 260 / .14) 100%);
}
.sfest__title {
  display: block; font-family: var(--font-display); font-weight: 800;
  font-size: 1.06rem; line-height: 1.22; color: oklch(99% 0 0);
}
.sfest__note { display: block; margin-top: .35rem; font-size: .84rem; line-height: 1.45; color: oklch(90% 0.01 90 / .8); }
.sfest__go {
  display: inline-flex; align-items: center; gap: .35rem; margin-top: .7rem;
  font-family: var(--font-display); font-weight: 600; font-size: .82rem;
  color: oklch(86% 0.14 70);
}
.sfest__go::after { content: "→"; transition: transform .25s ease; }
.sfest--link:hover { transform: translateY(-5px); box-shadow: 0 30px 56px -40px oklch(23% 0.02 260 / .9); }
.sfest--link:hover .sfest__media img { transform: scale(1.07); }
.sfest--link:hover .sfest__go::after { transform: translateX(4px); }

/* ---------------------- Галерея (заглушки) ---------------------- */
.sgal { padding: clamp(2.6rem, 5vw, 4rem) var(--gutter); }
.sgal__head { max-width: 56rem; margin-bottom: clamp(1.4rem, 2.8vw, 2.2rem); }
.sgal__lead { margin: .9rem 0 0; font-size: 1.02rem; line-height: 1.7; color: var(--text-muted); max-width: 64ch; }
.sgal__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr));
  gap: clamp(.6rem, 1.2vw, .9rem);
}
.sgtile {
  position: relative; margin: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .5rem; min-height: 190px; padding: 1rem;
  border: 1.5px dashed var(--edge-strong); border-radius: var(--radius-media);
  background:
    repeating-linear-gradient(135deg, oklch(97% 0.006 250) 0 12px, oklch(95% 0.008 250) 12px 24px);
  text-align: center;
}
.sgtile--tall { min-height: 250px; }
.sgtile__icon { color: var(--edge-strong); }
.sgtile__icon svg { width: 34px; height: 34px; }
.sgtile__cap { font-family: var(--font-display); font-weight: 600; font-size: .9rem; color: var(--text-muted); }
.sgtile__stub {
  font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--text-faint);
}

/* ---------------------- Заявка ---------------------- */
.sjoin {
  display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(1.4rem, 3vw, 2.6rem);
  align-items: start;
  padding: clamp(2.6rem, 5vw, 4rem) var(--gutter);
}
.sjoin__aside { padding-top: .4rem; }
.sjoin__title {
  margin: .3rem 0 .8rem;
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.08; letter-spacing: -.015em;
}
.sjoin__lead { margin: 0 0 1.5rem; font-size: 1.01rem; line-height: 1.7; color: var(--text-muted); max-width: 46ch; }
.sjoin__person {
  display: flex; align-items: center; gap: .9rem;
  padding: 1rem 1.1rem; border-radius: var(--radius-card);
  border: 1px solid var(--edge); background: var(--surface);
  box-shadow: 0 20px 44px -40px oklch(23% 0.02 260 / .7);
}
.sjoin__person-ava {
  display: grid; place-items: center; flex: none;
  width: 52px; height: 52px; border-radius: 50%;
  background: linear-gradient(135deg, oklch(70% 0.18 55), oklch(52% 0.2 32));
  color: oklch(99% 0 0);
  font-family: var(--font-display); font-weight: 800; font-size: .98rem; letter-spacing: .02em;
}
.sjoin__person-name { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1rem; }
.sjoin__person-role { margin: .1rem 0 .3rem; font-size: .85rem; color: var(--text-faint); }
.sjoin__person-tel { font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; color: var(--accent); }
.sjoin__person-tel:hover { text-decoration: underline; }
.sjoin__alt { margin: .9rem 0 0; font-size: .9rem; color: var(--text-muted); }
.sjoin__alt a { font-weight: 600; color: var(--text); }

.sjoin__formwrap {
  padding: clamp(1.2rem, 2.4vw, 2rem);
  border-radius: var(--radius-card);
  border: 1px solid var(--edge);
  background: var(--surface);
  box-shadow: 0 30px 60px -48px oklch(23% 0.02 260 / .85);
}
.sjoin__form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }
.gfield--wide { grid-column: 1 / -1; }
.gfield__opt { font-weight: 400; font-size: .78rem; color: var(--text-faint) !important; }
.sjoin__form input[type="number"],
.sjoin__form select {
  padding: .72rem .9rem;
  border: 1.5px solid var(--edge-strong); border-radius: 12px;
  background: var(--surface); color: var(--text);
  font-family: var(--font-body); font-size: .96rem;
  width: 100%;
}
.sjoin__form select { appearance: none; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);
  background-position: calc(100% - 20px) 55%, calc(100% - 14px) 55%;
  background-size: 6px 6px, 6px 6px; background-repeat: no-repeat;
  padding-right: 2.4rem;
}
.sjoin__form input:focus, .sjoin__form select:focus, .sjoin__form textarea:focus {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-line);
}
.sjoin__submit { margin-top: .3rem; }
.gform__legal { margin: .7rem 0 0; font-size: .78rem; line-height: 1.5; color: var(--text-faint); }
.gdone { display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; padding: .6rem 0; }
.gdone[hidden] { display: none !important; }
.sjoin__form[hidden] { display: none !important; }
.gdone > svg {
  width: 44px; height: 44px; padding: 10px; border-radius: 50%;
  background: oklch(92% 0.09 150); color: oklch(42% 0.15 150);
}
.gdone h4 { margin: .2rem 0 0; font-family: var(--font-display); font-weight: 800; font-size: 1.2rem; }
.gdone p { margin: 0; font-size: .95rem; line-height: 1.6; color: var(--text-muted); }

/* ---------------------- Вопросы ---------------------- */
.sfaq { padding: clamp(2.6rem, 5vw, 4rem) var(--gutter); }
.sfaq__head { max-width: 54rem; margin-bottom: clamp(1.2rem, 2.4vw, 1.8rem); }
.sfaq__lead { margin: .9rem 0 0; font-size: 1.02rem; line-height: 1.7; color: var(--text-muted); max-width: 62ch; }
.sfaq__list {
  border: 1px solid var(--edge); border-radius: var(--radius-card);
  background: var(--surface); overflow: hidden;
}
.sfaq__item + .sfaq__item { border-top: 1px solid var(--edge); }
.sfaq__q {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  width: 100%; padding: clamp(.95rem, 1.8vw, 1.25rem) clamp(1rem, 2vw, 1.5rem);
  background: none; border: 0; cursor: pointer; text-align: left;
  font-family: var(--font-display); font-weight: 600; font-size: 1rem; color: var(--text);
  transition: background-color .2s ease;
}
.sfaq__q:hover { background: var(--surface-2); }
.sfaq__q .icon { flex: none; color: var(--accent); transition: transform .25s ease; }
.sfaq__q[aria-expanded="true"] .icon { transform: rotate(180deg); }
.sfaq__a { padding: 0 clamp(1rem, 2vw, 1.5rem) clamp(1rem, 2vw, 1.35rem); }
.sfaq__a[hidden] { display: none; }
.sfaq__a p {
  margin: 0; padding-left: .9rem; border-left: 2px dashed var(--accent-line);
  font-size: .97rem; line-height: 1.7; color: var(--text-muted); max-width: 72ch;
}

/* ---------------------- Окно направления ---------------------- */
.dmod {
  position: fixed; inset: 0; z-index: 120;
  display: grid; place-items: center;
  padding: clamp(.8rem, 3vw, 2rem);
  background: oklch(14% 0.02 260 / .72);
  backdrop-filter: blur(5px);
  opacity: 0; visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.dmod.is-open { opacity: 1; visibility: visible; }
.dmod__dialog {
  position: relative;
  display: grid; grid-template-rows: auto minmax(0, 1fr);
  width: min(640px, 100%); max-height: min(88vh, 760px);
  border-radius: 24px; overflow: hidden;
  background: var(--surface);
  box-shadow: 0 40px 90px -40px oklch(10% 0.02 260 / .8);
  transform: translateY(14px) scale(.985);
  transition: transform .28s cubic-bezier(.2,.7,.3,1);
}
.dmod.is-open .dmod__dialog { transform: none; }
.dmod__close {
  position: absolute; top: .7rem; right: .7rem; z-index: 3;
  width: 38px; height: 38px; display: grid; place-items: center;
  border: 0; border-radius: 50%; cursor: pointer;
  background: oklch(100% 0 0 / .9); color: var(--text);
  box-shadow: 0 8px 20px -10px oklch(23% 0.02 260 / .8);
}
.dmod__close svg { width: 18px; height: 18px; }
.dmod__media { position: relative; aspect-ratio: 16 / 9; background: var(--sc-deep, oklch(28% 0.03 260)); }
.dmod__media img { width: 100%; height: 100%; object-fit: cover; }
.dmod__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, var(--sc, oklch(62% 0.2 45)) -30%, transparent 55%);
  opacity: .55;
}
.dmod__num {
  position: absolute; left: 1.1rem; bottom: .6rem; z-index: 2;
  font-family: var(--font-display); font-weight: 900; font-size: 2.8rem; line-height: 1;
  color: transparent; -webkit-text-stroke: 1.6px oklch(100% 0 0 / .6);
}
.dmod__body { display: flex; flex-direction: column; padding: clamp(1.3rem, 2.6vw, 2.1rem); overflow-y: auto; min-height: 0; }
.dmod__kicker {
  margin: 0 0 .4rem;
  font-family: var(--font-display); font-weight: 600; font-size: .72rem;
  letter-spacing: .1em; text-transform: uppercase; color: var(--sc, var(--accent));
  filter: brightness(.85);
}
.dmod__title { margin: 0 0 .5rem; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.25rem, 2.4vw, 1.7rem); line-height: 1.15; }
.dmod__age {
  display: inline-block; margin: 0 0 1rem; padding: .3rem .8rem;
  border-radius: var(--radius-chip); background: var(--surface-2); border: 1px solid var(--edge);
  font-size: .84rem; color: var(--text-muted);
}
.dmod__text { margin: 0 0 1.2rem; font-size: 1rem; line-height: 1.7; color: var(--text-muted); }
.dmod__sub { margin: 0 0 .6rem; font-family: var(--font-display); font-weight: 700; font-size: .95rem; }
.dmod__list { margin: 0 0 1rem; padding: 0; list-style: none; display: grid; gap: .5rem; }
.dmod__list li { position: relative; padding-left: 1.5rem; font-size: .96rem; line-height: 1.55; color: var(--text-muted); }
.dmod__list li::before {
  content: ""; position: absolute; left: 0; top: .5em;
  width: .55rem; height: .55rem; border-radius: 3px;
  background: var(--sc, var(--accent)); transform: rotate(45deg);
}
.dmod__foot {
  position: sticky; bottom: calc(clamp(1.3rem, 2.6vw, 2.1rem) * -1);
  margin-top: auto;
  padding-block: .7rem clamp(.2rem, 1vw, .5rem);
  background: linear-gradient(to top, var(--surface) 62%, oklch(99% 0.002 90 / 0));
}
.dmod__foot .btn--cta { width: 100%; }

/* ---------------------- Адаптив ---------------------- */
@media (max-width: 1100px) {
  .sabout__top { grid-template-columns: 1fr; }
  .sjoin { grid-template-columns: 1fr; }
  .sfound__top { grid-template-columns: 1fr; }
  .sfound__photo { order: 2; }
  .sfound__photo img { max-height: clamp(340px, 56vw, 480px); }
  .sfound__text { order: 1; }
}
@media (max-width: 900px) {
  .sabout__figs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strust__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strust__figs { grid-template-columns: 1fr; }
  .sfests__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sdcard, .sdcard--big { grid-column: span 3; min-height: clamp(250px, 40vw, 320px); }
  .sprice__grid { grid-template-columns: 1fr; }
  .strust__figs { grid-template-columns: 1fr; }
  .dmod__media { aspect-ratio: 3 / 2; }
}
@media (max-width: 700px) {
  /* на телефоне ролик идёт почти в родном разрешении — размытие не нужно */
  .phero--school .phero__video { filter: saturate(1.08) contrast(1.04); transform: scale(1.03); }
  .phero--school .phero__video-wrap::after { opacity: .3; }
  .sjoin__form { grid-template-columns: 1fr; }
  .sdir__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sdcard, .sdcard--big { grid-column: span 1; min-height: clamp(210px, 44vw, 290px); }
  .scount { display: block; width: 100%; }
  .scount__cell { min-width: 0; flex: 1; }
}
@media (max-width: 480px) {
  .strust__grid { grid-template-columns: 1fr; }
  .sabout__figs { grid-template-columns: 1fr; }
  .sabout__stamp { width: 5rem; height: 5rem; bottom: 2.6rem; }
  .sabout__stamp b { font-size: 1rem; }
  .sfests__grid { grid-template-columns: 1fr; }
  .sdir__grid { grid-template-columns: 1fr; }
  .sdcard, .sdcard--big { grid-column: span 1; min-height: 250px; }
  .sfound { border-radius: 24px; }
  .scount__cell b { font-size: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .smarq__track, .scount__sep, .livedot { animation: none; }
  .sreg, .sfig, .stway, .sacol img { transition: none; }
  .sdcard, .sdcard__media img, .sfest, .sfest__media img { transition: none; }
}

/* =====================================================================
   ВЁРСТКА ТЕКСТА
   Неразрывные пробелы расставлены прямо в разметке (после предлогов,
   союзов, частиц, чисел и перед тире). Здесь — балансировка строк:
   заголовки браузер делит на примерно равные строки, в абзацах
   не оставляет одинокое слово на последней строке.
   ===================================================================== */
h1, h2, h3, h4,
.section-title, .hero__title, .phero__title, .sfound__name, .strust__title,
.sjoin__title, .sdcard__title, .usl__title, .feature__title, .kv__title,
.eyebrow, .spcard__name, .sreg__title, .stway__name, .sfest__title {
  text-wrap: balance;
}
p, li, figcaption, blockquote,
.sdcard__age, .sdcard__kicker, .sfig > span, .stfig > span,
.sreg__text, .stway__note, .sfest__note {
  text-wrap: pretty;
}
