/* ══════════════════════════════════════════════════════════════════════════
   Трансформационное перерождение 4.0 — Грузия
   Дизайн-система перенесена с hubetsova.ru: токены, шрифты, приёмы.
   ══════════════════════════════════════════════════════════════════════════ */

@import url('assets/fonts/fonts.css');

:root{
  --bg:          #080706;
  --panel:       linear-gradient(168deg, rgba(28,23,17,.92) 0%, rgba(17,14,10,.94) 48%, rgba(10,8,6,.96) 100%);
  --panel-solid: #100d09;

  --gold:        #caa665;
  --gold-bright: #dbc491;
  --gold-pale:   #efe2c2;
  --gold-dim:    #9c7c47;
  --gold-line:      rgba(197,163,90,.34);
  --gold-line-soft: rgba(197,163,90,.16);

  --blue:  #6b5636;
  --text:  #ece5dc;
  --muted: #a19d96;

  --grad-gold:     linear-gradient(180deg, #f0e2c0 0%, #d8bd84 45%, #ab8140 100%);
  --grad-gold-btn: linear-gradient(180deg, #efdfb4 0%, #d3ae6e 52%, #a8813f 100%);

  --radius: 20px;
  --sp-1: 8px;  --sp-2: 16px; --sp-3: 24px;
  --sp-4: 40px; --sp-5: 64px; --sp-6: 96px;

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

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

html{ scroll-behavior:smooth; overflow-x:clip; }

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Inter', -apple-system, system-ui, sans-serif;
  font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}

/* космос стоит на месте, контент едет поверх — глубина без единой строки JS */
body::before{
  content:''; position:fixed; inset:0; z-index:-2;
  background:var(--bg) url('assets/img/bg-space.webp') top center / cover no-repeat;
}
body::after{
  content:''; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(ellipse 80% 42% at 50% 0%,  rgba(197,163,90,.10), transparent 68%),
    radial-gradient(ellipse 65% 40% at 12% 72%, rgba(197,163,90,.05), transparent 72%),
    radial-gradient(ellipse 65% 40% at 88% 32%, rgba(140,110,60,.08), transparent 72%);
}

img{ display:block; max-width:100%; }

/* иконки живут внутри <use>: цвет задаём на самом svg, он наследуется в shadow DOM */
svg{ fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
svg .fill{ fill:currentColor; stroke:none; }
.vplay svg{ fill:currentColor; stroke:none; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
figure{ margin:0; }
blockquote{ margin:0; }

.container{ width:100%; max-width:1180px; margin-inline:auto; padding-inline:20px; }
.container.narrow{ max-width:760px; }
.container.wide{ max-width:1400px; }

.section{ padding-block:clamp(64px, 9vw, 120px); position:relative; }

/* ── типографика ──────────────────────────────────────────────────────── */
h1,h2,h3,h4{ margin:0; font-family:'Playfair Display', Georgia, serif; }

.h1{
  font-weight:700;
  font-size:clamp(34px, 9vw, 68px);
  line-height:1.06; letter-spacing:.005em;
  background:var(--grad-gold);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-wrap:balance;
}
.h2{
  font-weight:600;
  font-size:clamp(28px, 5.4vw, 46px);
  line-height:1.18; letter-spacing:.005em;
  background:var(--grad-gold);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-wrap:balance;
}
@supports not (background-clip: text){
  .h1,.h2{ color:var(--gold-pale); background:none; }
}
.h3{ font-weight:600; font-size:clamp(18px, 2.4vw, 22px); line-height:1.24; color:var(--gold-bright); }

p{ margin:0; text-wrap:pretty; }

.eyebrow{
  display:inline-block;
  font-family:'Inter', sans-serif;
  font-size:11.5px; font-weight:600;
  letter-spacing:.32em; text-indent:.32em; text-transform:uppercase;
  color:var(--gold-dim);
}

/* фирменный разделитель: волосок с золотым ромбом */
.rule{
  display:block; position:relative;
  width:132px; height:1px; margin:20px auto 0;
  background:linear-gradient(90deg, transparent, var(--gold-line) 22%, var(--gold-line) 78%, transparent);
}
.rule::after{
  content:''; position:absolute; left:50%; top:50%;
  width:7px; height:7px;
  transform:translate(-50%,-50%) rotate(45deg);
  background:var(--gold);
  box-shadow:0 0 10px rgba(208,174,110,.7);
}

.sect-head{ text-align:center; margin-bottom:var(--sp-4); }
.sect-head .h2{ margin-top:14px; }
.sect-lead{ max-width:60ch; margin:16px auto 0; font-size:15.5px; line-height:1.62; color:var(--muted); }
.section-sub{
  color:var(--text); font-size:clamp(15px, 3.7vw, 18px);
  max-width:660px; margin:var(--sp-4) auto 0; text-align:center;
}
.section-note{
  color:var(--muted); font-size:15px;
  max-width:640px; margin:var(--sp-3) auto 0; text-align:center;
}

/* ── кнопки ───────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:54px; padding:14px 32px;
  font-family:'Inter', sans-serif; font-weight:700; font-size:14.5px;
  letter-spacing:.07em; text-transform:uppercase;
  border:none; border-radius:13px; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease, background .18s ease;
}
.btn-gold{
  background:var(--grad-gold-btn); color:#17120a;
  box-shadow:0 0 30px rgba(208,174,110,.24), inset 0 1px 0 rgba(255,252,244,.5);
}
.btn-gold:hover{ filter:brightness(1.06); box-shadow:0 0 42px rgba(208,174,110,.4), inset 0 1px 0 rgba(255,252,244,.5); }
.btn-ghost{
  background:rgba(11,14,19,.5); color:var(--gold-pale);
  border:1px solid var(--gold-line);
}
.btn-ghost:hover{ border-color:var(--gold); background:rgba(197,163,90,.08); }
.btn-xl{ min-height:60px; padding:18px 40px; font-size:15px; }
.btn-sm{ min-height:44px; padding:11px 20px; font-size:12px; }
.btn:active{ transform:translateY(1px); }
.btn-note{ margin-top:12px; font-size:13px; color:var(--muted); }

/* ── карточка ─────────────────────────────────────────────────────────── */
.card{
  position:relative;
  border:1px solid var(--gold-line-soft);
  border-radius:var(--radius);
  background:var(--panel);
  padding:var(--sp-4) var(--sp-3) var(--sp-3);
  box-shadow:inset 0 1px 0 rgba(223,202,154,.07), 0 20px 55px rgba(0,0,0,.5);
}
/* легенда, выходящая из рамки карточки */
.card-legend{
  position:absolute; top:0; left:0; right:0;
  transform:translateY(-50%);
  display:flex; justify-content:center;
  pointer-events:none;
}
.legend-txt{
  background:var(--panel-solid);
  border:1px solid var(--gold-line);
  border-radius:999px;
  padding:7px 18px;
  font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-indent:.16em; text-transform:uppercase;
  color:var(--gold);
}

/* ── появление при скролле ────────────────────────────────────────────── */
.rise{ opacity:0; transform:translateY(24px); }
.rise.is-in{
  opacity:1; transform:none;
  transition:opacity .9s var(--ease) var(--d,0ms), transform .9s var(--ease) var(--d,0ms);
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .rise{ opacity:1; transform:none; }
}

/* ══ ШАПКА ════════════════════════════════════════════════════════════ */
.topbar{
  position:fixed; inset:0 0 auto 0; z-index:50;
  display:flex; align-items:center; gap:var(--sp-4);
  padding:16px 20px;
  transition:background .5s var(--ease), backdrop-filter .5s var(--ease);
}
.topbar::before{
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgba(6,7,10,.92) 0%, rgba(6,7,10,.6) 58%, transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 60%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 60%,transparent 100%);
}
.topbar.is-stuck{ background:rgba(6,7,10,.86); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.brand{ display:flex; align-items:center; gap:10px; margin-right:auto; }
.brand__mark{ width:28px; height:28px; flex:none; color:var(--gold); stroke-width:1.3; }
.brand__mark path,.brand__mark ellipse,.brand__mark circle{
  fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round;
}
.brand__mark .fill{ fill:currentColor; stroke:none; }
.brand__text{ font-family:'Playfair Display', serif; font-weight:600; font-size:16px; white-space:nowrap; }
.topnav{ display:flex; gap:26px; font-size:13.5px; }
@media (min-width:1024px) and (max-width:1180px){ .topnav{ gap:16px; font-size:12.5px; } }
.topnav a{ position:relative; padding-block:6px; color:var(--text); transition:color .3s var(--ease); }
.topnav a::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform .45s var(--ease);
}
.topnav a:hover{ color:var(--gold-bright); }
.topnav a:hover::after{ transform:scaleX(1); }

/* нить прогресса чтения */
.progress{
  position:fixed; top:0; left:0; height:2px; z-index:60;
  width:var(--p, 0%);
  background:linear-gradient(90deg, rgba(197,163,90,.2), var(--gold));
  box-shadow:0 0 12px rgba(208,174,110,.55);
  transition:width .1s linear;
}

/* ══ HERO ═════════════════════════════════════════════════════════════ */
.hero{
  position:relative; min-height:100svh;
  display:flex; align-items:flex-end;
  overflow:hidden;
}
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img,.hero-bg video{
  width:100%; height:100%; object-fit:cover; object-position:50% 40%;
}
/* место под видео заказчика */
.hero-plate{
  position:absolute; inset:0;
  background:
    radial-gradient(52% 42% at 74% 18%, rgba(202,166,101,.14), transparent 66%),
    radial-gradient(60% 46% at 22% 72%, rgba(140,110,60,.16), transparent 68%),
    var(--bg);
}
.stage-intro{ text-align:center; margin-bottom:var(--sp-4); }
.stage-lead{
  max-width:56ch; margin:0 auto; font-size:clamp(16px, 2vw, 19px);
  line-height:1.65; color:var(--text);
}
.stage-intro .hero-markers{ margin-top:18px; justify-content:center; }

/* заголовок залит градиентом через background-clip — тень просвечивает
   сквозь буквы и глушит золото, поэтому читаемость держим только вуалью */
.hero .h1{ text-shadow:none; }
.hero .btn-note{ text-shadow:0 1px 12px rgba(6,7,10,.95); }
.hero-pill{ backdrop-filter:blur(3px); }
/* мягкая вуаль ровно под текстовым блоком: буквы читаются, кадр просвечивает */
.hero-inner::before{
  content:''; position:absolute; z-index:-1; pointer-events:none;
  left:-8vw; right:-8vw; bottom:-4vh; top:-6vh;
  background:radial-gradient(78% 64% at 50% 60%, rgba(6,7,10,.72) 0%, rgba(6,7,10,.42) 54%, transparent 84%);
}

.hero-vid{
  position:absolute; inset:0; opacity:0;
  width:100%; height:100%; object-fit:cover; object-position:50% 40%;
}
/* на широких экранах кадр поднимаем: внизу тёмный настил, вверху горы и закат */
@media (min-width:900px){
  .hero-vid{ object-position:50% 26%; }
  /* вуаль под текстом давала видимое тёмное пятно с краями —
     на десктопе читаемость и так держит боковое затемнение слева */
  .hero-inner::before{ display:none; }
  .hero .h1{ text-shadow:0 2px 18px rgba(6,7,10,.5); }
}
.hero-vid.is-on{ opacity:1; }
.hero-scrim{
  position:absolute; inset:0; z-index:1;
  /* видео должно оставаться видимым: густо только у самой кромки,
     под текстом — лёгкая вуаль */
  background:linear-gradient(180deg,
    rgba(6,7,10,.58) 0%, rgba(6,7,10,.14) 26%, rgba(6,7,10,.22) 58%,
    rgba(6,7,10,.52) 82%, rgba(6,7,10,.86) 94%, var(--bg) 100%);
}
.hero-inner{
  position:relative; z-index:2;
  width:100%; padding-bottom:clamp(38px, 7vh, 74px);
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px;
}
.hero-pill{
  border:1px solid var(--gold-line); border-radius:999px;
  padding:8px 18px;
  font-size:10.5px; font-weight:700; letter-spacing:.24em; text-indent:.24em;
  text-transform:uppercase; color:var(--gold);
  background:rgba(6,7,10,.5); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
}
.hero-sub{
  font-family:'Playfair Display', serif; font-style:italic; font-weight:500;
  font-size:clamp(18px, 4.6vw, 27px); line-height:1.3; color:var(--gold-pale);
}
.hero-lead{ max-width:540px; color:var(--text); font-size:clamp(14.5px, 3.6vw, 16.5px); }
.hero-markers{
  display:flex; flex-wrap:wrap; justify-content:center; gap:8px 18px;
  font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.hero-markers li{ position:relative; }
.hero-markers li + li::before{
  content:''; position:absolute; left:-10px; top:50%;
  width:1px; height:11px; transform:translateY(-50%);
  background:var(--gold-line);
}
.hero-scroll{
  width:44px; height:44px; display:grid; place-items:center;
  color:var(--gold); margin-top:6px;
}
.hero-scroll svg{ width:22px; height:22px; animation:nudge 2.4s var(--ease) infinite; }
@keyframes nudge{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(5px)} }
@media (prefers-reduced-motion: reduce){ .hero-scroll svg{ animation:none; } }

/* десктоп: текст уходит влево, скрим разворачивается по горизонтали */
@media (min-width:1000px) and (min-aspect-ratio:13/10){
  .hero{ align-items:center; }
  .hero-inner{ align-items:flex-start; text-align:left; padding-bottom:0; }
  .hero-inner > *{ max-width:720px; }
  .hero-scrim{ background:linear-gradient(96deg, rgba(6,7,10,.94) 0%, rgba(6,7,10,.82) 26%, rgba(6,7,10,.5) 55%, rgba(6,7,10,.12) 80%, transparent 100%); }
  .hero-markers{ justify-content:flex-start; }
  .hero-lead{ margin:0; }
}
/* телефон в ландшафте */
@media (max-width:999px) and (min-aspect-ratio:13/10){
  .hero{ align-items:center; }
  .hero-inner{ align-items:flex-start; text-align:left; max-width:60%; padding-bottom:0; gap:10px; }
  .hero-scrim{ background:linear-gradient(90deg, rgba(6,7,10,.95) 0%, rgba(6,7,10,.6) 55%, transparent 92%); }
  .hero-markers{ justify-content:flex-start; }
  .hero-scroll{ display:none; }
}
/* низкий экран */
@media (max-height:780px) and (max-width:999px){
  .hero-inner{ gap:10px; padding-bottom:26px; }
  .hero-scroll{ display:none; }
}

/* ══ СТАДИЯ И ЦЕНА ════════════════════════════════════════════════════ */
.stage-card{ text-align:center; padding:54px 24px 28px; }
.stage-shot{
  position:relative; margin:0 0 var(--sp-4);
  aspect-ratio:16/9; overflow:hidden;
  -webkit-mask-image:radial-gradient(120% 100% at 50% 45%, #000 58%, transparent 100%);
  mask-image:radial-gradient(120% 100% at 50% 45%, #000 58%, transparent 100%);
}
.stage-shot .slide{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover; object-position:center;
  opacity:0; transition:opacity .8s var(--ease);
}
.stage-shot .slide.is-active{ opacity:1; }

.timer{
  display:inline-flex; align-items:center; gap:clamp(14px, 3vw, 30px);
  margin-bottom:10px; padding:14px clamp(18px, 4vw, 34px);
  border:1px solid var(--gold-line); border-radius:15px;
  background:rgba(16,13,9,.55);
}
.timer > span{ display:grid; justify-items:center; position:relative; }
.timer > span + span::before{
  content:':'; position:absolute; left:calc(-1 * clamp(9px, 1.6vw, 16px));
  top:2px; font-family:'Playfair Display', serif; font-size:22px; color:var(--gold-dim);
}
.timer i{ font-style:normal; }
.timer b{
  display:block;
  font-family:'Playfair Display', serif; font-weight:700;
  font-size:clamp(22px, 5vw, 30px); line-height:1;
  font-variant-numeric:tabular-nums;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.timer i{ display:block; margin-top:5px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.timer-note{ font-size:12.5px; color:var(--muted); margin-bottom:var(--sp-4); }
.stage-row{
  display:flex; flex-wrap:wrap; justify-content:center; gap:0;
  margin-bottom:var(--sp-3);
}
.stage-box{ padding:6px 22px; }
.stage-box--now b{ font-size:clamp(38px, 8vw, 52px); }
.stage-box--now span{ color:var(--gold); }
.stage-box--next b, .stage-box--pre b{
  font-size:clamp(20px, 4.4vw, 26px);
  background:none; color:var(--muted); -webkit-text-fill-color:var(--muted);
}
.stage-box--next span, .stage-box--pre span{ font-size:10px; }
.stage-box b{
  display:block; font-family:'Playfair Display', serif; font-weight:700;
  font-size:clamp(26px, 6vw, 34px); line-height:1;
  font-variant-numeric:tabular-nums;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.stage-box span{ display:block; margin-top:7px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.stage-note{ font-size:14px; color:var(--muted); max-width:540px; margin:var(--sp-2) auto 0; }

/* ══ МАНИФЕСТ ═════════════════════════════════════════════════════════ */
.manifest-sec{ position:relative; overflow:hidden; }
.project-bg{ position:absolute; inset:0; z-index:-1; }
.project-bg img{ width:100%; height:100%; object-fit:cover; opacity:.55; }
.project-bg::after{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(180deg, var(--bg) 0%, rgba(6,7,10,.62) 26%, rgba(6,7,10,.68) 74%, var(--bg) 100%);
}
.manifest{
  font-family:'Playfair Display', serif; font-weight:500;
  font-size:clamp(18px, 4.6vw, 25px); line-height:1.62;
  color:var(--gold-pale); margin-top:var(--sp-3);
}
.about-project{
  display:flex; flex-direction:column; gap:14px;
  max-width:640px; margin:var(--sp-3) auto 0;
  color:var(--muted); font-size:15px;
}
.about-h{ margin-top:32px; font-family:'Playfair Display', serif; font-weight:600; font-size:19px; color:var(--gold-bright); }

/* ══ ДЛЯ КОГО — карточки-цитаты с фото ═══════════════════════════════ */
.quotes{ display:grid; grid-template-columns:1fr; gap:16px; }
.quote{
  position:relative; isolation:isolate;
  min-height:190px; display:flex; align-items:center;
  padding:22px;
  border:1px solid var(--gold-line-soft); border-radius:18px;
  overflow:hidden;
}
.quote img{
  position:absolute; inset:0; z-index:-2;
  width:100%; height:100%; object-fit:cover;
}
.quote::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(96deg, rgba(8,7,6,.92) 0%, rgba(8,7,6,.70) 38%, rgba(8,7,6,.18) 66%, rgba(8,7,6,0) 100%);
}
.quote::before{
  content:''; position:absolute; left:0; top:22px; bottom:22px;
  width:2px; border-radius:2px;
  background:linear-gradient(180deg, transparent, var(--gold), transparent);
}
.quote-txt{
  text-shadow:0 2px 14px rgba(8,7,6,.9), 0 1px 3px rgba(8,7,6,.8);
  font-family:'Playfair Display', serif; font-style:italic; font-weight:500;
  font-size:clamp(17px, 4.2vw, 22px); line-height:1.42;
  max-width:34ch; color:var(--text);
}
@media (min-width:700px){
  .quotes{ grid-template-columns:repeat(2,1fr); }
  .quote{ min-height:230px; padding:30px 32px; }
  .quote:last-child{ grid-column:1/-1; width:calc(50% - 8px); justify-self:center; }
}

/* ══ ПОЧЕМУ ГРУЗИЯ ════════════════════════════════════════════════════ */
.georgia-grid{ display:grid; grid-template-columns:1fr; gap:26px; align-items:stretch; }
.georgia-figure{
  position:relative; border:1px solid var(--gold-line-soft);
  border-radius:var(--radius); overflow:hidden; min-height:100%;
}
.georgia-figure img{ width:100%; height:100%; min-height:320px; object-fit:cover; }
.georgia-text{ display:flex; flex-direction:column; justify-content:center; gap:20px; }
.why-point{ position:relative; padding-left:22px; }
.why-point::before{
  content:''; position:absolute; left:0; top:6px; bottom:6px; width:2px; border-radius:2px;
  background:linear-gradient(180deg, var(--gold), transparent);
}
.why-point h3{ margin-bottom:8px; }
.why-point p{ color:var(--muted); font-size:15.5px; line-height:1.65; }
.key-quote{
  position:relative; padding-left:20px;
  font-family:'Playfair Display', serif; font-style:italic; font-weight:500;
  font-size:clamp(19px, 4.4vw, 27px); line-height:1.48;
  color:var(--gold-pale); max-width:36ch;
}
.key-quote::before{
  content:''; position:absolute; left:0; top:4px; bottom:4px; width:2px; border-radius:2px;
  background:linear-gradient(180deg, transparent, var(--gold), transparent);
}
.why-portrait{
  margin-top:var(--sp-3); overflow:hidden; border-radius:var(--radius);
}
.why-portrait img{
  width:100%; height:auto; aspect-ratio:4/3; object-fit:cover;
  -webkit-mask-image:linear-gradient(180deg,#000 86%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 86%,transparent 100%);
}
.quote-author{ display:block; margin-top:16px; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-dim); }
@media (min-width:900px){
  .georgia-grid{ grid-template-columns:1fr 1fr; }
}

/* ══ ТРИ ДНЯ ══════════════════════════════════════════════════════════ */
.dress{ margin-bottom:var(--sp-5); text-align:center; }
.dress__intro{
  color:var(--muted); font-size:15px;
  max-width:52ch; margin:0 auto var(--sp-4);
}
.dress__row{
  position:relative;
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  gap:var(--sp-3); max-width:660px; margin-inline:auto;
}
/* линия перехода чёрный → белый → золото за кружками */
.dress__row::before{
  content:''; position:absolute; top:22px; left:16%; right:16%; height:1px;
  background:linear-gradient(90deg, #2a2622, #ece5dc 50%, var(--gold));
  opacity:.5;
}
.dress__item{ position:relative; display:grid; justify-items:center; gap:8px; }
.dress__dot{
  width:44px; height:44px; border-radius:50%;
  box-shadow:0 0 0 5px var(--bg), 0 0 22px rgba(202,166,101,.25);
}
.dress__item b{
  font-family:'Playfair Display', serif; font-weight:600; font-size:17px;
  color:var(--gold-bright);
}
.dress__name{
  font-size:10.5px; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold-dim);
}
.sw-black{ background:#0f0d0a; border:1px solid var(--gold-line); }
.sw-white{ background:#ece5dc; }
.sw-gold{ background:var(--grad-gold); }

.day{
  display:grid; grid-template-columns:1fr; gap:20px;
  padding-block:clamp(32px, 5vw, 64px);
  border-top:1px solid var(--gold-line-soft);
}
.day:first-of-type{ border-top:0; }
.day__aside{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.day__badge{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'Inter', sans-serif; font-size:11px; font-weight:700;
  letter-spacing:.2em; text-indent:.2em; text-transform:uppercase;
  color:var(--gold-dim);
}
.day__badge::before{
  content:''; width:26px; height:1px; flex:none;
  background:linear-gradient(90deg, var(--gold), transparent);
}
.day__meta{ display:flex; flex-direction:column; gap:10px; }
.day__dress{ display:flex; align-items:center; gap:8px; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.day__title{ font-family:'Playfair Display', serif; font-weight:600; font-size:clamp(17px, 4.3vw, 21px); color:var(--gold-bright); }
.day__list > li{
  display:grid; grid-template-columns:minmax(0,1fr);
  gap:16px;
  border-top:1px solid var(--gold-line-soft); padding:22px 0;
}
.pt-label{
  display:inline-block; margin-bottom:8px;
  font-family:'Inter', sans-serif; font-size:10.5px; font-weight:700;
  letter-spacing:.2em; text-indent:.2em; text-transform:uppercase;
  color:var(--gold-dim);
}
/* кадр под текстом пункта, без рамки — растворяется в фоне */
.pt-pic{ margin-top:2px; }

/* финальный пункт занимает всю строку: шесть кадров выпускного вечера */
.cert-grid{
  grid-column:1 / -1;
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  gap:10px; margin-top:var(--sp-2);
}
.cert-grid li{ overflow:hidden; border-radius:14px; }
.cert-grid img{
  width:100%; height:auto; aspect-ratio:3/4; object-fit:cover;
  transition:transform .9s var(--ease);
}
.cert-grid li:hover img{ transform:scale(1.06); }
@media (min-width:900px){
  /* финальный пункт разворачивается на всю ширину строки — кадры крупнее */
  .day__list > li.li-wide{ grid-template-columns:minmax(0,1fr); }
  .cert-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
}
.pt-pic img{
  width:100%; height:auto; aspect-ratio:16/10; object-fit:cover;
  border-radius:14px;
  -webkit-mask-image:linear-gradient(180deg,#000 82%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 82%,transparent 100%);
}
@media (min-width:900px){
  .day__list > li{ grid-template-columns:minmax(0,1fr) 280px; gap:32px; align-items:start; }
  .pt-pic{ grid-column:2; grid-row:1; margin-top:0; }
}
.day__list > li:first-child{ border-top:0; padding-top:0; }

.day__list h4{ font-family:'Playfair Display', serif; font-weight:600; font-size:17px; color:var(--gold-bright); margin-bottom:5px; }
.day__list p{ font-size:14px; line-height:1.6; color:var(--muted); }
.day__shot{ margin-top:var(--sp-2); border-radius:14px; overflow:hidden; }
.day__shot img{
  width:100%; max-width:520px; height:auto; aspect-ratio:16/10;
  object-fit:cover; object-position:50% 32%;
}
@media (min-width:900px){
  .day{ grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:clamp(2rem,3vw,3.5rem); }
  .day__aside{ position:sticky; top:14vh; align-self:start; flex-direction:column; align-items:flex-start; gap:18px; }

  .day__shot img{ max-width:100%; }
}

/* широкая карточка бассейна */
.field-flex{ display:grid; grid-template-columns:1fr; gap:20px; align-items:center; justify-items:center; text-align:center; }
.field-flex img{
  width:100%; max-width:240px; height:auto; aspect-ratio:1/1; object-fit:cover;
  border-radius:16px; border:1px solid var(--gold-line-soft);
  margin-inline:auto;
}
.field-flex p{ font-size:clamp(16px, 2vw, 19px); line-height:1.65; max-width:52ch; }
@media (min-width:700px){
  .field-flex{ grid-template-columns:240px 1fr; gap:32px; justify-items:stretch; text-align:left; }
  .field-flex img{ margin-inline:0; }
}

/* ══ ЛОКАЦИЯ ══════════════════════════════════════════════════════════ */
.loc-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:12px; }
.loc-grid figure{ position:relative; overflow:hidden; border-radius:16px; border:1px solid var(--gold-line-soft); }
.loc-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.loc-grid figure:hover img{ transform:scale(1.05); }
.loc-grid figcaption{
  position:absolute; inset:auto 0 0 0; padding:38px 16px 14px;
  font-size:12.5px; color:var(--text);
  background:linear-gradient(180deg, transparent, rgba(6,7,10,.92));
}
.loc-a,.loc-b,.loc-c,.loc-d{ grid-column:1/-1; aspect-ratio:16/10; }
@media (min-width:900px){
  /* два ряда равной высоты: широкий кадр + узкий, без пустот между ними */
  .loc-grid{ grid-template-columns:repeat(12, 1fr); gap:14px; }
  .loc-a{ grid-column:span 7; aspect-ratio:auto; height:400px; }
  .loc-b{ grid-column:span 5; aspect-ratio:auto; height:400px; }
  .loc-c{ grid-column:span 5; aspect-ratio:auto; height:340px; }
  .loc-d{ grid-column:span 7; aspect-ratio:auto; height:340px; }
}

/* ══ РЕЗУЛЬТАТ ════════════════════════════════════════════════════════ */
.results{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.res{ text-align:center; padding:26px 18px; }
.res img{ width:clamp(64px, 18vw, 92px); margin:0 auto 14px; filter:drop-shadow(0 0 14px rgba(202,166,101,.28)); }
.res h3{ font-family:'Playfair Display', serif; font-weight:600; font-size:17px; color:var(--gold-bright); margin-bottom:8px; }
.res p{ font-size:14px; line-height:1.55; color:var(--muted); max-width:24ch; margin-inline:auto; }
/* две колонки оставляем, но на узком экране карточка всего ~160px:
   ужимаем поля и кегль, чтобы строки ложились ровно, а не по два слова */
@media (max-width:420px){
  .results{ gap:10px; }
  .res{ padding:20px 12px; }
  .res img{ width:56px; margin-bottom:10px; }
  .res h3{ font-size:15px; line-height:1.25; margin-bottom:6px; text-wrap:balance; hyphens:none; }
  .res p{ font-size:13px; line-height:1.5; max-width:none; text-wrap:pretty; }
}
@media (min-width:900px){ .results{ grid-template-columns:repeat(6,1fr); } }

/* ══ ИСТОРИЯ ══════════════════════════════════════════════════════════ */
.story-grid{ display:grid; grid-template-columns:1fr; gap:26px; align-items:center; }
.story-text{ display:flex; flex-direction:column; gap:16px; color:var(--muted); font-size:15px; line-height:1.65; }
.story-text b{ color:var(--gold-bright); font-weight:600; }
.levels{ display:grid; gap:10px; margin:var(--sp-2) 0; }
.levels li{
  display:grid; grid-template-columns:auto 1fr; align-items:baseline; gap:6px 16px;
  padding:15px 18px; border:1px solid var(--gold-line-soft); border-radius:14px;
  background:var(--panel);
}
.levels b{
  font-family:'Playfair Display', serif; font-weight:600; font-size:18px;
  color:var(--gold-bright); min-width:66px;
}
.levels span{ font-size:14.5px; line-height:1.6; color:var(--muted); }
@media (max-width:520px){
  .levels li{ grid-template-columns:1fr; gap:5px; }
}

/* ── три уровня: разум / душа / тело ─────────────────────────────────── */
.lv{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.lv__card{
  display:flex; flex-direction:column; overflow:hidden;
  border:1px solid var(--gold-line-soft); border-radius:var(--radius);
  background:var(--panel);
  transition:border-color .45s ease, transform .45s ease;
}
.lv__card:hover{ border-color:var(--gold-line); transform:translateY(-3px); }
.lv__shot{ position:relative; margin:0; aspect-ratio:1/1; overflow:hidden; }
.lv__shot img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.1s cubic-bezier(.22,.61,.36,1);
}
.lv__card:hover .lv__shot img{ transform:scale(1.04); }
/* кадры уходят в подложку карточки, чтобы не было жёсткой границы */
.lv__shot::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(8,7,6,.18) 0%, rgba(8,7,6,0) 34%, rgba(8,7,6,.72) 100%);
}
.lv__body{ position:relative; padding:22px 24px 26px; }
.lv__num{
  font-family:'Inter', sans-serif; font-size:11px; font-weight:700;
  letter-spacing:.2em; color:var(--gold-dim);
}
.lv__t{
  margin:8px 0 10px; font-family:'Playfair Display', serif; font-weight:600;
  font-size:26px; line-height:1.1;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.lv__body p{ font-size:14.5px; line-height:1.66; color:var(--muted); }
.lv__note{
  max-width:62ch; margin:var(--sp-3) auto 0; text-align:center;
  font-size:15px; line-height:1.62; color:var(--muted);
}
@media (max-width:900px){
  .lv{ grid-template-columns:1fr; gap:14px; }
  .lv__card{ flex-direction:row; align-items:stretch; }
  .lv__shot{ flex:0 0 40%; aspect-ratio:auto; }
  .lv__body{ padding:18px 20px; align-self:center; }
  .lv__t{ font-size:22px; }
}
@media (max-width:520px){
  .lv__card{ flex-direction:column; }
  .lv__shot{ flex:none; aspect-ratio:4/3; }
  .lv__shot img{ object-position:center 38%; }
}
.ba{
  position:relative; border-radius:var(--radius); overflow:hidden;
  aspect-ratio:4/5; user-select:none; cursor:ew-resize;
  border:1px solid var(--gold-line);
}
.ba img{ width:100%; height:100%; object-fit:cover; }

.ba__after{ position:absolute; inset:0; }
.ba__clip{ position:absolute; inset:0; clip-path:inset(0 50% 0 0); }
.ba__handle{ position:absolute; top:0; bottom:0; left:50%; width:2px; background:var(--gold-pale); transform:translateX(-1px); }
.ba__grip{ stroke-width:1.8;
  position:absolute; top:50%; left:50%; translate:-50% -50%;
  display:grid; place-items:center; width:46px; height:46px; border-radius:50%;
  background:var(--grad-gold-btn); color:#17120a;
  box-shadow:0 0 24px rgba(208,174,110,.5);
}
.ba__grip svg{ width:20px; height:20px; }
.ba__tag{
  position:absolute; bottom:14px; z-index:3;
  padding:6px 13px; border-radius:999px;
  font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  background:rgba(6,7,10,.72); color:var(--gold-pale);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
}
.ba__tag--l{ left:14px; } .ba__tag--r{ right:14px; }
@media (min-width:700px){ .story-grid{ grid-template-columns:1.05fr 1fr; } }

/* ══ ВИДЕООТЗЫВЫ ══════════════════════════════════════════════════════ */
.proof-grid{ display:grid; grid-template-columns:1fr; gap:28px; align-items:center; }
.vlist{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 240px)); gap:16px; justify-content:center; }
.proof-aside .h3{ margin-bottom:14px; }
.proof-aside p{ color:var(--muted); font-size:15.5px; line-height:1.7; max-width:44ch; }
.vcard{ justify-items:center; text-align:center; }
@media (min-width:900px){ .proof-grid{ grid-template-columns:1fr 1fr; } .vlist{ justify-content:start; } .vcard{ justify-items:start; text-align:left; } }
.vcard{ display:grid; gap:12px; }
.vframe{
  position:relative; overflow:hidden; border-radius:18px;
  aspect-ratio:9/16; background:var(--panel-solid);
  border:1px solid var(--gold-line-soft);
}
.vframe video{ width:100%; height:100%; object-fit:cover; object-position:50% 22%; display:block; }
.vplay{
  position:absolute; inset:0; display:grid; place-items:center;
  background:radial-gradient(50% 50% at 50% 50%, rgba(6,7,10,.3), transparent 72%);
  transition:opacity .4s var(--ease);
}
.vplay svg{
  width:62px; height:62px; padding:19px; border-radius:50%;
  background:var(--grad-gold-btn); color:#17120a;
  box-shadow:0 0 26px rgba(208,174,110,.4);
  transition:transform .45s var(--ease);
}
.vplay:hover svg{ transform:scale(1.08); }
.vcard.is-playing .vplay{ opacity:0; pointer-events:none; }
.vwho{ font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dim); }

/* ══ ТАРИФЫ ═══════════════════════════════════════════════════════════ */
.tariffs-sec{ position:relative; }
.tariffs-sec::before{
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(ellipse 55% 45% at 50% 42%, rgba(197,163,90,.08), transparent 70%),
    radial-gradient(ellipse 80% 38% at 50% 84%, rgba(140,110,60,.09), transparent 72%);
  /* свечение обрывалось ровно по краю секции и читалось как светлая полоса —
     растворяем его у обеих границ */
  -webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 10%, #000 74%, transparent 100%);
          mask-image:linear-gradient(180deg, transparent 0%, #000 10%, #000 74%, transparent 100%);
}
.tariffs{ display:grid; gap:16px; }
.tariff{
  position:relative; display:flex; flex-direction:column; gap:12px;
  background:var(--panel);
  border:1px solid var(--gold-line-soft); border-radius:var(--radius);
  padding:40px 24px 24px;
  box-shadow:inset 0 1px 0 rgba(223,202,154,.07), 0 18px 48px rgba(0,0,0,.45);
}
.tariff-badge{
  position:absolute; top:0; left:50%; transform:translate(-50%,-50%);
  background:var(--grad-gold-btn); color:#17120a;
  border-radius:999px; padding:6px 16px;
  font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  box-shadow:0 0 22px rgba(208,174,110,.4); white-space:nowrap;
}
.tariff-glyph{ width:78px; height:78px; filter:drop-shadow(0 0 16px rgba(202,166,101,.35)); }
.tariff-name{ font-family:'Playfair Display', serif; font-weight:700; font-size:22px; color:var(--gold-bright); }
.tariff-tagline{ font-family:'Playfair Display', serif; font-style:italic; font-size:14px; color:var(--muted); }
.tariff-warn{ border:1px solid var(--gold-line); border-radius:12px; padding:12px 14px; order:9; margin-top:auto; }
.tariff-warn b{ display:block; margin-bottom:6px; font-family:'Inter',sans-serif; font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.tariff-warn p{ font-size:13px; line-height:1.5; color:var(--muted); }
.price{ display:flex; align-items:baseline; gap:8px; }
.price b{
  font-family:'Playfair Display', serif; font-weight:700;
  font-size:clamp(30px, 6.4vw, 36px); line-height:1.1;
  font-variant-numeric:tabular-nums;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.price span{ font-size:18px; color:var(--gold-dim); }
.price-note{ font-size:13px; color:var(--muted); min-height:20px; }
.t-group h4{
  font-family:'Inter', sans-serif; font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-indent:.16em; text-transform:uppercase; color:var(--gold-dim);
  border-bottom:1px solid var(--gold-line-soft); padding-bottom:8px; margin-bottom:12px;
}
.t-group li{
  position:relative; padding-left:18px; margin-bottom:9px;
  font-size:14px; line-height:1.5; color:var(--muted);
}
.t-group li::before{
  content:''; position:absolute; left:0; top:.55em;
  width:6px; height:6px; border-radius:50%;
  background:var(--gold); box-shadow:0 0 7px rgba(208,174,110,.6);
}
.t-group li.minus::before{ background:#57514a; box-shadow:none; }
.t-group:last-of-type{ flex:1 1 auto; }
.tariff-actions{ margin-top:auto; display:grid; gap:10px; }
.tariff-actions .btn{ width:100%; }
.tariff-note{ font-size:12px; line-height:1.4; font-style:italic; color:var(--muted); }
.tariff--vip{
  border-color:var(--gold);
  box-shadow:inset 0 1px 0 rgba(223,202,154,.14), 0 0 56px rgba(208,174,110,.2);
}
@media (min-width:700px){
  .tariffs{ grid-template-columns:repeat(2,1fr); }
  .tariffs .tariff:nth-child(3){ grid-column:1/-1; max-width:calc(50% - 8px); justify-self:center; }
}
@media (min-width:1100px){
  .tariffs{ grid-template-columns:repeat(3,1fr); align-items:stretch; }
  .tariffs .tariff:nth-child(3){ grid-column:auto; max-width:none; }
  .tariff--vip{ transform:scale(1.03); z-index:1; }
  .tariff-glyph{ width:74px; height:74px; }
  .tariff-name{ font-size:19px; }
  .price b{ font-size:29px; }
}

/* сводная таблица */
.table-wrap{
  margin-top:var(--sp-5); overflow-x:auto;
  border:1px solid var(--gold-line-soft); border-radius:17px;
  background:rgba(8,10,15,.6);
}
.cmp{ min-width:660px; width:100%; border-collapse:collapse; }
.cmp th,.cmp td{ padding:15px 18px; text-align:left; border-bottom:1px solid var(--gold-line-soft); font-size:14px; }
.cmp thead th{ font-family:'Inter',sans-serif; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); background:rgba(197,163,90,.05); }
.cmp tbody tr:last-child td{ border-bottom:0; }
.cmp tbody tr:hover{ background:rgba(197,163,90,.04); }
.cmp .hl{ background:rgba(197,163,90,.09); }
.cmp td:first-child,.cmp th:first-child{ color:var(--text); position:sticky; left:0; background:var(--panel-solid); }
.cmp .yes{ color:var(--gold-bright); }
.cmp .no{ color:#57514a; }

/* ══ УСЛОВИЯ ══════════════════════════════════════════════════════════ */
.terms{ display:grid; grid-template-columns:1fr; gap:12px; }
.term{ border:1px solid var(--gold-line-soft); border-radius:15px; padding:20px; }
.term b{ display:block; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:8px; }
.term h4{ font-family:'Playfair Display',serif; font-weight:600; font-size:17px; color:var(--gold-bright); margin-bottom:6px; }
.term p{ font-size:14px; line-height:1.55; color:var(--muted); }
.term a{ color:var(--gold); border-bottom:1px solid var(--gold-line); }
@media (min-width:700px){ .terms{ grid-template-columns:repeat(2,1fr); gap:16px; } }

/* ══ ПИСЬМА — переключаемые развороты ═════════════════════════════════ */
.lt{ display:grid; gap:var(--sp-4); }

.lt-tabs{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.lt-tab{
  display:flex; align-items:center; gap:11px;
  padding:8px 18px 8px 8px; border-radius:999px;
  border:1px solid var(--gold-line-soft);
  background:rgba(16,13,9,.6);
  font-size:13px; color:var(--muted);
  transition:border-color .4s var(--ease), color .3s var(--ease), background .4s var(--ease);
}
.lt-tab img{ width:36px; height:36px; border-radius:50%; object-fit:cover; object-position:50% 18%; }
.lt-tab:hover{ color:var(--gold-pale); border-color:var(--gold-line); }
.lt-tab.is-on{
  color:var(--gold-pale); border-color:var(--gold);
  background:rgba(202,166,101,.08);
  box-shadow:0 0 22px rgba(202,166,101,.14);
}

.lt-panel{ display:none; }
.lt-panel.is-on{
  display:grid; grid-template-columns:1fr; gap:var(--sp-4);
  animation:ltIn .6s var(--ease) both;
}
@keyframes ltIn{ from{ opacity:0; transform:translateY(14px);} to{ opacity:1; transform:none;} }
@media (prefers-reduced-motion: reduce){ .lt-panel.is-on{ animation:none; } }

.lt-photo{
  position:relative; overflow:hidden;
  border-radius:var(--radius); border:1px solid var(--gold-line-soft);
}
.lt-photo img{
  width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:50% 24%;
}
.lt-photo::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 62%, rgba(8,7,6,.5));
}

.lt-body{ position:relative; padding-top:var(--sp-3); }
.lt-mark{
  position:absolute; top:-14px; left:-6px;
  font-family:'Playfair Display', serif; font-size:96px; line-height:1;
  color:rgba(202,166,101,.18); pointer-events:none;
}
.lt-lead{
  position:relative;
  font-family:'Playfair Display', serif; font-style:italic; font-weight:500;
  font-size:clamp(20px, 2.4vw, 30px); line-height:1.36;
  color:var(--gold-pale); margin-bottom:var(--sp-3);
  max-width:26ch;
}
.lt-text{ display:grid; gap:14px; }
.lt-text p{ font-size:15.5px; line-height:1.72; color:var(--muted); max-width:62ch; }
.lt-who{
  margin-top:var(--sp-3); padding-top:var(--sp-3);
  border-top:1px solid var(--gold-line-soft);
  font-family:'Playfair Display', serif; font-weight:600; font-size:18px; color:var(--gold-bright);
}
.lt-who span{
  display:block; margin-top:5px;
  font-family:'Inter', sans-serif; font-weight:600; font-size:10.5px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dim);
}

@media (min-width:900px){
  .lt-panel.is-on{ grid-template-columns:minmax(0,.72fr) minmax(0,1fr); gap:clamp(32px,4vw,64px); align-items:start; }
  .lt-photo{ position:sticky; top:14vh; }
  .lt-mark{ font-size:120px; top:-26px; left:-14px; }
}

/* ══ FAQ ══════════════════════════════════════════════════════════════ */
.faq{ max-width:900px; margin-inline:auto; }
.qa{ border-top:1px solid var(--gold-line-soft); }
.qa:last-child{ border-bottom:1px solid var(--gold-line-soft); }
.qa summary{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:22px 0; min-height:44px; cursor:pointer; list-style:none;
  font-family:'Playfair Display', serif; font-weight:600;
  font-size:clamp(16px, 2vw, 19px); line-height:1.3; color:var(--text);
  transition:color .4s var(--ease);
}
.qa summary::-webkit-details-marker{ display:none; }
.qa summary:hover{ color:var(--gold-bright); }
.qa i{ color:var(--gold);
  display:grid; place-items:center; flex:none;
  width:34px; height:34px; border-radius:50%;
  border:1px solid var(--gold-line);
  transition:transform .5s var(--ease), background .4s var(--ease), color .3s var(--ease);
}
.qa i svg{ width:15px; height:15px; }
.qa summary:hover i{ background:var(--gold); color:#17120a; }
.qa[open] i{ transform:rotate(45deg); }
.qa-body{ padding-bottom:24px; max-width:74ch; }
.qa-body p{ font-size:15px; line-height:1.65; color:var(--muted); margin-bottom:.8em; }
.qa-body b{ color:var(--gold-bright); font-weight:600; }

/* ══ ФИНАЛ ════════════════════════════════════════════════════════════ */
.final{ position:relative; overflow:hidden; text-align:center; padding-block:clamp(80px,12vw,160px); }
.final-bg{ position:absolute; inset:0; z-index:-1; }
.final-bg img{ width:100%; height:100%; object-fit:cover; opacity:.4; }
.final-bg::after{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(58% 60% at 50% 52%, rgba(197,163,90,.1), transparent 68%),
    linear-gradient(180deg, var(--bg) 0%, transparent 28%, transparent 68%, var(--bg) 100%);
}
.final-mark{ width:38px; height:38px; margin:0 auto var(--sp-3); color:var(--gold); stroke-width:1.2; }
.final-mark path,.final-mark ellipse,.final-mark circle{ fill:none; stroke:currentColor; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.final-mark .fill{ fill:currentColor; stroke:none; }
.final-quote{
  font-family:'Playfair Display', serif; font-weight:600;
  font-size:clamp(22px, 4.6vw, 40px); line-height:1.24;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; color:transparent;
  max-width:20ch; margin:0 auto var(--sp-3);
}
.final-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:var(--sp-4); }

/* ══ ПОДВАЛ ═══════════════════════════════════════════════════════════ */
.foot{ padding:var(--sp-5) 0 var(--sp-4); border-top:1px solid var(--gold-line-soft); background:rgba(3,4,7,.7); }
.foot-grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); padding-bottom:var(--sp-4); }
.foot h4{ font-family:'Inter',sans-serif; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:12px; }
.foot a{ display:block; font-size:14px; color:var(--muted); margin-bottom:9px; transition:color .3s var(--ease); }
.foot a:hover{ color:var(--gold-bright); }
.foot-brand p{ font-size:14px; line-height:1.55; color:var(--muted); max-width:34ch; margin-top:12px; }
.foot-bottom{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding-top:var(--sp-3); border-top:1px solid var(--gold-line-soft); font-size:12px; color:var(--muted); }
@media (min-width:700px){ .foot-grid{ grid-template-columns:1.6fr 1fr 1fr 1fr; } }
/* на телефоне подвал уходил в одну длинную колонку из трёх списков подряд —
   разводим списки в две колонки, описание оставляем на всю ширину */
@media (max-width:699px){
  .foot-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--sp-3) 20px; }
  .foot-brand{ grid-column:1 / -1; }
  .foot-grid > div:last-child{ grid-column:1 / -1; }
  .foot a{ font-size:13.5px; margin-bottom:8px; }
}

/* ══ ЗАКРЕПЛЁННАЯ ПАНЕЛЬ ПОКУПКИ ═════════════════════════════════════ */
.buybar{
  position:fixed; left:0; right:0; bottom:0; z-index:55;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:12px 20px;
  background:rgba(6,7,10,.94); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border-top:1px solid var(--gold-line-soft);
  transform:translateY(110%); transition:transform .5s var(--ease);
}
.buybar.is-on{ transform:none; }
.buybar-price{ font-size:12px; color:var(--muted); white-space:nowrap; }
.buybar-price b{ display:block; font-family:'Playfair Display',serif; font-weight:700; font-size:19px; color:var(--gold-bright); font-variant-numeric:tabular-nums; }
@media (max-width:520px){
  .buybar{ padding:10px 14px; gap:10px; }
  .buybar .btn{ padding:12px 18px; font-size:12px; min-height:46px; }
  .buybar-price b{ font-size:16px; }
}

/* ══ МОБИЛЬНОЕ ════════════════════════════════════════════════════════ */
@media (max-width:760px){
  /* на телефоне таблица остаётся таблицей, но ужимается: длинные значения —
     мелким текстом, «да/нет» — знаком; шапка липнет, чтобы колонки не терялись */
  .table-wrap{ overflow:clip; border-radius:16px; }
  .cmp{ min-width:0; width:100%; table-layout:fixed; }
  .cmp th,.cmp td{ padding:0; }
  .cmp thead th{
    position:sticky; top:0; z-index:3;
    padding:11px 3px; font-size:8.5px; letter-spacing:.01em;
    background:#161209; border-bottom:1px solid var(--gold-line);
  }
  .cmp thead th:not(:first-child){ text-align:center; }
  .cmp th:first-child,.cmp td:first-child{ width:37%; }
  .cmp th:not(:first-child),.cmp td:not(:first-child){ width:21%; }
  .cmp td:first-child{
    position:static; background:none;
    padding:12px 10px 12px 12px; font-size:12.5px; line-height:1.3;
  }
  .cmp td:not(:first-child){
    text-align:center; vertical-align:middle;
    padding:12px 3px; font-size:10.5px; line-height:1.25;
  }
  /* «Да» и прочерк занимают целую ячейку текстом — меняем на компактный знак */
  .cmp tbody td.yes:not(.val){ font-size:0; color:var(--gold-bright); }
  .cmp tbody td.yes:not(.val)::before{ content:'✓'; font-size:16px; line-height:1; }
  .cmp tbody td.no{ font-size:0; }
  .cmp tbody td.no::before{ content:'—'; font-size:12px; color:#4a443d; line-height:1; }
  .cmp td:not(:first-child)::before{ content:none; }

  .quote::after{
    background:linear-gradient(96deg, rgba(8,7,6,.95) 0%, rgba(8,7,6,.78) 46%, rgba(8,7,6,.30) 78%, rgba(8,7,6,.05) 100%);
  }
  .quote-txt{ max-width:26ch; }
  .stage-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px 10px; justify-items:center; }
  .stage-box--now{ grid-column:1 / -1; padding-bottom:14px; }
  .stage-box{ padding-inline:6px; text-align:center; }
  .timer{ gap:12px; padding:12px 16px; }
  .topnav{ display:none; }
  .topbar{ position:absolute; gap:12px; padding:14px 16px; }
  .topbar::before{ display:none; }
  .brand__text{ font-size:14px; }
  .topbar .btn--sm, .topbar .btn-sm{ padding:10px 14px; font-size:11px; letter-spacing:.05em; }
  .section{ padding-block:clamp(52px, 12vw, 80px); }
  .card{ padding:var(--sp-4) 20px 20px; }

  .results{ grid-template-columns:repeat(2,1fr); }
  .letter-shots{ gap:6px; }
  body{ padding-bottom:74px; }
}

/* ══════════════════════════════════════════════════════════════════════
   ПРАВКИ ПО АУДИТУ ВЁРСТКИ — дописывать в КОНЕЦ styles.css
   (порядок важен: блок должен идти после всех существующих медиазапросов)
   ══════════════════════════════════════════════════════════════════════ */

/* ─── КРИТИЧНО 1. Шапка на планшете ─────────────────────────────────────
   .topnav скрывался только в @media (max-width:760px). На 768 меню
   показывалось целиком: пункты рвались по слову («Для / кого»), шапка
   росла с 76 до 87px, кнопка «Записаться» уезжала за экран на 108px. */
@media (max-width:1023px){
  .topnav{ display:none; }
}
.topnav a{ white-space:nowrap; }

/* ─── КРИТИЧНО 2. H1 вылезал за контейнер на телефоне ───────────────────
   clamp(34px,9vw,68px) упирался в нижнюю границу 34px, при которой
   min-content слова «Трансформационное» = 357px против 320px контента,
   а .hero-inner — flex-колонка с align-items:center и ужаться не даёт. */
.hero .h1{
  /* второй аргумент min() — ширина контента, делённая на длину самого
     длинного слова: «Трансформационное» ≈ 11 × кегль. Так заголовок
     физически не может вылезти ни на одной ширине */
  font-size:min(9vw, calc((100vw - 48px) / 11), 68px);
}
@media (max-width:999px){
  .hero-inner > *{ max-width:100%; }
}

/* ─── КРИТИЧНО 3. Плашка-легенда упиралась в рамку карточки ─────────────
   На 360–375px зазор до рамки .card был 1–1.5px, рамки сливались в
   двойную линию, «ВОЛНЫ» висело одно на второй строке. */
@media (max-width:400px){
  .legend-txt{
    max-width:calc(100% - 40px);
    padding:7px 14px;
    font-size:9.5px;
    letter-spacing:.06em; text-indent:.06em;
    text-wrap:balance;
  }
}

/* ─── ЗАМЕТНО 4. Разделитель «|» уезжал в начало строки ─────────────────
   Палка рисовалась absolute-псевдоэлементом следующего пункта
   (li + li::before, left:-10px) и при переносе висела перед строкой. */
.hero-markers{ gap:8px 18px; }
.hero-markers li{ white-space:nowrap; }
.hero-markers li + li::before{ content:none; }
/* на ширинах, где строка не переносится, разделитель возвращаем —
   но уже как инлайновый ::after предыдущего пункта */
@media (min-width:700px){
  .hero-markers{ gap:8px 14px; }
  .hero-markers li:not(:last-child)::after{
    content:'|';
    margin-left:.9em;
    color:var(--gold-line);
  }
}

/* ─── ЗАМЕТНО 5. «Разум/Душа/Тело»: высоту карточки задавала картинка ───
   В горизонтальном режиме (521–900px) квадратное фото 290×290 распирало
   карточку, текст занимал 152–176px, сверху и снизу от него оставалось
   по 58–70px пустоты. Заодно разворачиваем градиент: подложка справа,
   а затемнение шло вниз и без смысла гасило низ кадра. */
@media (min-width:521px) and (max-width:900px){
  .lv__shot{ flex:0 0 36%; aspect-ratio:4/3; }
  .lv__body{ padding:22px 24px; }
  .lv__shot::after{
    background:linear-gradient(90deg, rgba(8,7,6,0) 55%, rgba(8,7,6,.6) 100%);
  }
}
/* свободное место в карточке расходится поровну, а не копится снизу
   (на 1440 у «Тело» под текстом висело 25px лишнего) */
.lv__body{ flex:1 1 auto; display:flex; flex-direction:column; justify-content:center; }

/* ─── ЗАМЕТНО 6. Программа: фото на всю ширину в планшетном стеке ───────
   На 560–879px картинка пункта = 728×455 при тексте в 2 строки, секция
   вырастала до 8872px — 11 экранов подряд.
   Строка становится двухколоночной уже с 700px, а не с 900px. */
@media (min-width:700px) and (max-width:899px){
  .day__list > li{ grid-template-columns:minmax(0,1fr) 240px; gap:24px; align-items:center; }
  .day__list > li.li-wide{ grid-template-columns:minmax(0,1fr); }
  .pt-pic{ grid-column:2; grid-row:1; margin-top:0; }
}
/* 560–699px колонка ещё одна — просто не даём кадру занимать пол-экрана */
@media (min-width:560px) and (max-width:699px){
  #days .pt-pic img{ max-height:240px; object-fit:cover; }
  #days .day__shot img{ max-height:280px; object-fit:cover; }
}

/* ─── ЗАМЕТНО 7. Галерея выпускного на телефоне ────────────────────────
   Три колонки давали кадр 100×133px — лица в несколько пикселей. */
@media (max-width:480px){
  .cert-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
}

/* ─── ЗАМЕТНО 8. Грузия: цитата, заголовок и высота фото ────────────────
   .key-quote{max-width:36ch} = 567px в колонке 728px → дыра 160px справа;
   .georgia-figure img тянулось на 908px при высоте окна 900. */
@media (max-width:900px){
  #georgia .key-quote{ max-width:none; }
  #georgia .georgia-figure{ min-height:0; }
  #georgia .georgia-figure img{
    height:auto; min-height:0;
    aspect-ratio:4/3; max-height:60vh;
  }
}
/* .h3 на 768 давал 18.4px и был мельче цитаты в 27px */
.h3{ font-size:clamp(18px, 2.9vw, 22px); }

/* ─── ЗАМЕТНО 9. «Для кого»: седьмая карточка ──────────────────────────
   Непарная последняя карточка стояла по центру на 50% ширины, оставляя
   по 186px (768) / 289px (1440) пустоты по бокам — ряд «проваливался». */
@media (min-width:700px){
  .quote:last-child{ width:100%; min-height:300px; }
}
/* на 1440 кадр 16:9 сжимался в бокс 2.44:1 — срезалось ~27% высоты */
@media (min-width:1200px){
  .quote{ min-height:300px; }
  .quote img{ object-position:center 35%; }
}
/* подложка под текстом на широких экранах — слабое место по контрасту
   (мобильный вариант градиента из @media (max-width:760px) не трогаем) */
@media (min-width:761px){
  .quote::after{
    background:linear-gradient(96deg, rgba(8,7,6,.95) 0%, rgba(8,7,6,.84) 44%, rgba(8,7,6,.26) 74%, rgba(8,7,6,0) 100%);
  }
}

/* ─── МЕЛОЧЬ 10. 3px горизонтального выноса на 360px ───────────────────
   Источник — li.card.res: грид-элементы с min-width:auto распирает
   длинное слово. minmax(0,1fr) + перенос по символам снимает вынос. */
.results{ grid-template-columns:repeat(2, minmax(0,1fr)); }
.res h3, .res p{ overflow-wrap:anywhere; }
@media (min-width:900px){ .results{ grid-template-columns:repeat(6, minmax(0,1fr)); } }

/* ─── МЕЛОЧЬ 11. Висячие строки из одного слова ────────────────────────
   «потерянными», «уже дома.», «встреч и отдыха.» */
.quote-txt, .lv__note, .sect-lead, .stage-lead{ text-wrap:balance; }

/* ─── МЕЛОЧЬ 12. Программа на десктопе: строка выровнена по верху ──────
   Высоту строки задавало фото 280×175, под коротким текстом висело
   ~100px пустоты, ритм колонки выглядел рваным. */
@media (min-width:900px){
  .day__list > li{ align-items:center; }
}

/* ─── МЕЛОЧЬ 13. Карточка бассейна: центрированный текст на телефоне ───
   Весь остальной текст секции выровнен влево. */
@media (max-width:699px){
  #days .field-flex{ text-align:left; }
  #days .field-flex p{ margin-inline:0; }
}

/* ─── МЕЛОЧЬ 14. Дресс-код: подписи рвались по слову на 360px ──────────
   «День / первый» при колонке 90.7px. */
@media (max-width:400px){
  .dress__row{ gap:12px; }
  .dress__item b{ font-size:15px; }
  .dress__name{ font-size:9px; letter-spacing:.12em; }
}

/* ссылки внутри текста ничем не отличались от обычных слов —
   подсвечиваем золотом с подчёркиванием, чтобы было видно, что это ссылка */
.qa-body a:not(.btn), .term p a:not(.btn), .foot-note a:not(.btn), .story-text a:not(.btn){
  color:var(--gold-bright);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-color:var(--gold-line);
  transition:text-decoration-color .3s var(--ease), color .3s var(--ease);
}
.qa-body a:not(.btn):hover, .term p a:not(.btn):hover{
  color:var(--gold-pale); text-decoration-color:var(--gold);
}
.tg-btn{ margin-top:6px; }
