/* ============================================================================
   Авторские туры в Китай — таблица стилей сайта.

   Первый блок — токены дизайн-системы China Author Tours, перенесённые из
   prototype/_ds/tokens/*.css без изменений. Дальше — компоненты этой системы
   (кнопка, рамка фото, поле, диалог и т.д.), затем секции страницы и в конце
   один блок медиазапросов. Значения совпадают с макетом Claude Design.
   ========================================================================= */

/* ── токены: цвет ───────────────────────────────────────────────────────── */
:root{
  --ink-900:#17120F; --ink-800:#241D18; --ink-700:#3A2F27; --ink-600:#4E4138;
  --ink-500:#6B5A4E; --ink-400:#8C7C6F; --ink-300:#B3A598; --ink-200:#D2C7BA;
  --ink-100:#E6DCD0;

  --paper-000:#FFFDF9; --paper-100:#FBF6EE; --paper-200:#F4EDE1;
  --paper-300:#EAE0D0; --paper-400:#DCCFBA;

  --cinnabar-800:#7C2114; --cinnabar-700:#9A2A18; --cinnabar-600:#B93521;
  --cinnabar-500:#C8412B; --cinnabar-400:#DB6A55; --cinnabar-200:#F0BFB4;
  --cinnabar-100:#F9E6E0;

  --jade-700:#204A41; --jade-600:#2F5D53; --jade-500:#3F776A;
  --jade-400:#5E9A8B; --jade-200:#B9D5CC; --jade-100:#E1EDE8;

  --brass-600:#9C6B24; --brass-500:#BE8A3C; --brass-400:#D6A860;
  --brass-200:#EDD5A9; --brass-100:#F7EDD9;

  --surface-page:var(--paper-100);
  --surface-card:var(--paper-000);
  --surface-sunken:var(--paper-200);
  --surface-ink:var(--ink-900);
  --surface-accent:var(--cinnabar-600);
  --surface-accent-soft:var(--cinnabar-100);
  --surface-overlay:rgba(23,18,15,.62);

  --text-primary:var(--ink-900);
  --text-secondary:var(--ink-600);
  --text-muted:var(--ink-400);
  --text-inverse:var(--paper-100);
  --text-inverse-muted:rgba(251,246,238,.66);
  --text-accent:var(--cinnabar-600);
  --text-link:var(--cinnabar-700);
  --text-link-hover:var(--cinnabar-500);

  --border-hairline:rgba(23,18,15,.10);
  --border-subtle:var(--paper-300);
  --border-strong:var(--ink-200);
  --border-accent:var(--cinnabar-600);
  --border-inverse:rgba(251,246,238,.20);

  --danger:#B93521;

  --seal-red:var(--cinnabar-600);
  --texture-paper:radial-gradient(circle at 20% 15%,rgba(190,138,60,.05),transparent 55%),radial-gradient(circle at 82% 70%,rgba(47,93,83,.05),transparent 50%);
}

/* ── токены: шрифты, размеры, ритм ──────────────────────────────────────── */
:root{
  --font-display:"Cormorant Garamond",Georgia,serif;
  --font-text:"Manrope","Helvetica Neue",Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;
  --font-han:"Noto Serif SC","Songti SC",serif;

  --size-h1:clamp(34px,3.4vw,52px);
  --size-h2:clamp(28px,2.4vw,38px);
  --size-h3:24px;
  --size-h4:20px;
  --size-body-lg:19px;
  --size-body:17px;
  --size-body-sm:15px;
  --size-caption:13px;
  --size-micro:11px;

  --leading-body:1.62;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;

  --tracking-display:-0.02em;
  --tracking-heading:-0.01em;
  --tracking-label:0.14em;
  --tracking-micro:0.18em;

  --page-max:1240px;
  --page-gutter:clamp(20px,5vw,64px);
  --section-y:clamp(72px,9vw,144px);
  --space-6:24px;
  --space-8:32px;

  --radius-xs:3px; --radius-sm:6px; --radius-md:10px; --radius-lg:16px;
  --radius-pill:999px; --radius-circle:50%;
  --radius-moongate:50% 50% var(--radius-sm) var(--radius-sm) / 38% 38% var(--radius-sm) var(--radius-sm);

  --shadow-sm:0 1px 2px rgba(23,18,15,.06),0 1px 1px rgba(23,18,15,.04);
  --shadow-md:0 2px 4px rgba(23,18,15,.05),0 10px 24px -12px rgba(23,18,15,.18);
  --shadow-lg:0 4px 8px rgba(23,18,15,.05),0 24px 48px -20px rgba(23,18,15,.26);
  --shadow-overlay:0 32px 80px -24px rgba(23,18,15,.42);
  --shadow-focus:0 0 0 3px rgba(200,65,43,.24);

  --ease-standard:cubic-bezier(.2,.6,.25,1);
  --ease-out:cubic-bezier(.16,.84,.44,1);
  --duration-fast:160ms;
  --duration-base:240ms;
  --transition-control:color var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard);
  --transition-surface:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);
  --press-scale:0.985;
  --hover-lift:-2px;

  /* высота, на которую липнет сцена «Тур по дням» */
  --stage-top:96px;
}

/* ── база ───────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--surface-page);color:var(--text-primary);
  font:400 var(--size-body)/var(--leading-body) var(--font-text);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:400;
  letter-spacing:var(--tracking-heading);color:var(--text-primary)}
p{margin:0;text-wrap:pretty}
ul{margin:0;padding:0;list-style:none}
button{font-family:inherit}
img{display:block;max-width:100%}
a{color:var(--text-link);text-decoration:none;transition:var(--transition-control)}
a:hover{color:var(--text-link-hover)}
::selection{background:var(--cinnabar-200);color:var(--ink-900)}
:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-xs)}
/* класс display у компонентов перебивает [hidden] из стилей браузера */
[hidden]{display:none !important}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

.wrap{width:100%;max-width:var(--page-max);margin:0 auto;padding:0 var(--page-gutter)}

/* ── анимации ───────────────────────────────────────────────────────────── */
@keyframes catKen{from{transform:scale(1.02)}to{transform:scale(1.14)}}
@keyframes catRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes catFade{from{opacity:0}to{opacity:1}}
@keyframes catFadeOut{from{opacity:1}to{opacity:0}}
@keyframes catPop{from{opacity:0;transform:translateY(20px) scale(.985)}to{opacity:1;transform:none}}
@keyframes catPopOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(12px) scale(.99)}}
@keyframes catMarqueeLeft{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes catMarqueeRight{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@keyframes catShine{
  0%{transform:translateX(-160%) skewX(-18deg);opacity:1}
  26%{transform:translateX(300%) skewX(-18deg);opacity:1}
  26.5%,100%{transform:translateX(300%) skewX(-18deg);opacity:0}}

/* появление блоков по мере прокрутки */
.reveal{opacity:0;transform:translate(0,18px);
  transition:opacity 640ms var(--ease-standard),transform 640ms var(--ease-standard)}
.reveal--left{transform:translate(-26px,18px)}
.reveal--right{transform:translate(26px,18px)}
.reveal.is-shown{opacity:1;transform:none}

/* ── компонент: иконка ──────────────────────────────────────────────────── */
.ic{display:block;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}

/* ── компонент: кнопка ──────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-text);font-weight:var(--weight-semibold);
  letter-spacing:.01em;line-height:1.1;border-radius:var(--radius-pill);
  cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:var(--transition-control),transform var(--duration-fast) var(--ease-out)}
.btn--sm{padding:8px 18px;font-size:13px;gap:7px}
.btn--md{padding:13px 26px;font-size:15px;gap:9px}
.btn--lg{padding:17px 34px;font-size:17px;gap:10px}
.btn--full{display:flex;width:100%}
.btn--primary{background:var(--cinnabar-600);color:var(--paper-000);
  border:1px solid var(--cinnabar-600);box-shadow:var(--shadow-sm)}
.btn--primary:hover{background:var(--cinnabar-700);border-color:var(--cinnabar-700);
  box-shadow:var(--shadow-md);transform:translateY(var(--hover-lift));color:var(--paper-000)}
.btn--secondary{background:transparent;color:var(--text-primary);
  border:1px solid var(--border-strong)}
.btn--secondary:hover{background:var(--paper-200);border-color:var(--ink-900);
  color:var(--text-primary)}
.btn--ghost{background:transparent;color:var(--text-accent);border:1px solid transparent}
.btn--ghost:hover{background:var(--cinnabar-100);color:var(--text-accent)}
.btn--outline-inverse{background:transparent;color:var(--paper-100);
  border:1px solid rgba(251,246,238,.5);box-shadow:none}
.btn--outline-inverse:hover{background:rgba(251,246,238,.12);
  border-color:var(--paper-100);color:var(--paper-000)}
.btn:active{transform:scale(var(--press-scale));box-shadow:var(--shadow-sm)}
.btn[disabled]{opacity:.42;cursor:not-allowed;transform:none}

/* бегущий блик на главной кнопке — три секунды на цикл */
.shine{position:relative;display:inline-flex;overflow:hidden;border-radius:var(--radius-pill)}
.shine::after{content:"";position:absolute;top:0;bottom:0;left:0;width:34%;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(255,253,249,0) 0%,rgba(255,253,249,.45) 50%,rgba(255,253,249,0) 100%);
  animation:catShine 3s var(--ease-standard) infinite}

/* ── компонент: круглая кнопка-иконка ───────────────────────────────────── */
.iconbtn{display:inline-flex;align-items:center;justify-content:center;padding:0;
  border-radius:var(--radius-circle);cursor:pointer;transition:var(--transition-control);
  background:var(--surface-card);color:var(--text-primary);
  border:1px solid var(--border-subtle);width:40px;height:40px}
.iconbtn:hover{background:var(--paper-200);border-color:var(--border-strong)}
.iconbtn--lg{width:48px;height:48px}
.iconbtn--ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}
.iconbtn--ghost:hover{background:var(--paper-200);color:var(--text-primary);border-color:transparent}

/* ── компонент: логотип-надпись ─────────────────────────────────────────── */
.wm{display:inline-flex;align-items:center;gap:10px}
.wm__seal{width:30px;height:30px;display:inline-flex;align-items:center;
  justify-content:center;background:var(--seal-red);color:var(--paper-000);
  border-radius:var(--radius-xs);font-family:var(--font-han);font-size:17px;
  line-height:1;padding-bottom:1px}
.wm__text{display:inline-flex;flex-direction:column;line-height:1}
.wm__name{font-family:var(--font-display);font-size:22px;
  font-weight:var(--weight-semibold);letter-spacing:-.01em;color:var(--ink-900);
  white-space:nowrap}
.wm__kicker{font-family:var(--font-text);font-size:9.5px;font-weight:var(--weight-bold);
  letter-spacing:var(--tracking-micro);text-transform:uppercase;
  color:var(--text-muted);margin-top:4px}
.wm--sm{gap:7.8px}
.wm--sm .wm__seal{width:23.4px;height:23.4px;font-size:13.26px}
.wm--sm .wm__name{font-size:17.16px}
.wm--sm .wm__kicker{font-size:7.41px;margin-top:3.12px}
.wm--inverse .wm__name{color:var(--paper-100)}
.wm--inverse .wm__kicker{color:var(--text-inverse-muted)}

/* ── компонент: рамка фото ──────────────────────────────────────────────── */
.frame{margin:0;display:flex;flex-direction:column;gap:10px}
.frame__box{position:relative;overflow:hidden;background:var(--paper-300);
  border-radius:var(--radius-xs)}
.frame__box img{width:100%;height:100%;object-fit:cover}
.frame--moongate .frame__box{border-radius:var(--radius-moongate)}
.frame--empty .frame__box{background:var(--paper-200);
  background-image:var(--texture-paper);border:1px solid var(--border-subtle)}
.frame__stub{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px}
.frame__glyph{font-family:var(--font-han);font-size:clamp(40px,9vw,88px);
  color:var(--ink-200);line-height:1}
.frame__stub span:last-child{font-family:var(--font-text);font-size:var(--size-micro);
  font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);
  text-transform:uppercase;color:var(--text-muted)}
.frame figcaption{font-family:var(--font-text);font-size:var(--size-caption);
  color:var(--text-muted);line-height:1.5}
.zoom{cursor:zoom-in}

/* ── компонент: поле ввода ──────────────────────────────────────────────── */
.field{display:flex;flex-direction:column;gap:7px;font-family:var(--font-text)}
.field > span{font-size:var(--size-micro);font-weight:var(--weight-bold);
  letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.field input,.field textarea{width:100%;padding:13px 15px;font-family:var(--font-text);
  font-size:var(--size-body-sm);color:var(--text-primary);background:var(--surface-card);
  border:1px solid var(--border-subtle);border-radius:var(--radius-sm);outline:none;
  line-height:1.5;transition:var(--transition-control)}
.field textarea{resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--ink-900);
  box-shadow:var(--shadow-focus)}
.field[data-invalid] input,.field[data-invalid] textarea{border-color:var(--danger)}
.field__err{display:none;font-size:var(--size-caption);color:var(--danger)}
.field[data-invalid] .field__err{display:block}

/* ── компонент: чекбокс ─────────────────────────────────────────────────── */
.check{display:flex;gap:11px;align-items:flex-start;cursor:pointer;
  font-family:var(--font-text)}
.check input{position:absolute;opacity:0;width:0;height:0}
.check__box{width:20px;height:20px;flex:none;margin-top:1px;display:inline-flex;
  align-items:center;justify-content:center;border-radius:var(--radius-xs);
  transition:var(--transition-control);background:var(--surface-card);
  border:1px solid var(--border-strong);color:var(--paper-000)}
.check__box .ic{opacity:0;stroke-width:2.4}
.check input:checked + .check__box{background:var(--cinnabar-600);
  border-color:var(--cinnabar-600)}
.check input:checked + .check__box .ic{opacity:1}
.check input:focus-visible + .check__box{box-shadow:var(--shadow-focus)}
.check__text{display:flex;flex-direction:column;gap:2px}
.check__text b{font-size:var(--size-body-sm);color:var(--text-primary);
  line-height:1.45;font-weight:400}
.check__text a{color:var(--text-link);border-bottom:1px solid rgba(154,42,24,.4)}
.check__text a:hover{color:var(--text-link-hover);border-bottom-color:currentColor}
.check__text span{font-size:var(--size-caption);color:var(--text-muted);line-height:1.5}
.check[data-invalid] .check__box{border-color:var(--danger)}

/* ── шапка: капсула по центру, кремовая всегда ──────────────────────────── */
.hdr{position:fixed;top:0;left:0;right:0;z-index:80;height:92px;padding-top:16px;
  display:flex;align-items:flex-start;color:var(--text-primary);
  background-color:transparent;border-bottom:1px solid transparent}
.hdr__pill{width:100%;max-width:1180px;margin:0 auto;height:60px;
  padding:0 14px 0 24px;display:flex;align-items:center;justify-content:space-between;
  gap:24px;border-radius:var(--radius-pill);
  background-color:rgba(251,246,238,.92);border:1px solid var(--border-hairline);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  backdrop-filter:saturate(150%) blur(14px);
  box-shadow:0 6px 22px rgba(23,18,15,.16)}
.hdr__logo{display:flex;align-items:center;border:none;color:inherit}
.nav{display:flex;align-items:center;gap:26px}
.nav a{font-size:var(--size-body-sm);color:inherit;opacity:.84;text-decoration:none;
  border:none;white-space:nowrap}
.nav a:hover{opacity:1;color:inherit}
.nav__phone{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);
  font-size:var(--size-body-sm);color:inherit;text-decoration:none;border:none;
  white-space:nowrap}
.nav__phone:hover{opacity:.7}
.burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;
  margin-right:-10px;padding:0;border:none;background:transparent;color:inherit;
  cursor:pointer}

/* ── мобильное меню ─────────────────────────────────────────────────────── */
.menu{position:fixed;inset:0;z-index:95;display:flex;flex-direction:column;gap:28px;
  padding:18px var(--page-gutter) 34px;background:var(--ink-900);
  background-image:var(--texture-paper);color:var(--paper-100);overflow-y:auto;
  animation:catFade 200ms var(--ease-standard) both}
.menu[hidden]{display:none}
.menu__top{display:flex;align-items:center;justify-content:space-between;gap:20px}
.menu__close{width:44px;height:44px;display:inline-flex;align-items:center;
  justify-content:center;margin-right:-10px;padding:0;border:none;background:transparent;
  color:inherit;cursor:pointer}
.menu__nav{display:flex;flex-direction:column;margin-top:8px}
.menu__nav a{padding:18px 0;border:none;border-bottom:1px solid var(--border-inverse);
  font:var(--weight-medium) 30px/1.2 var(--font-display);
  letter-spacing:var(--tracking-display);color:var(--paper-100);text-decoration:none}
.menu__foot{margin-top:auto;display:flex;flex-direction:column;gap:14px}
.menu__foot a{display:inline-flex;align-items:center;gap:10px;font-size:var(--size-body);
  color:var(--paper-100);text-decoration:none;border:none}

/* ── главный экран ──────────────────────────────────────────────────────── */
.hero{position:relative;overflow:hidden;background:var(--ink-900);color:var(--paper-100)}
/* Адрес рисунка приходит из data-art: site.js кладёт его в --art после
   загрузки страницы, до этого файл не качается вовсе. Без JS подложки просто
   нет — она декоративная. */
.hero__art{position:absolute;inset:0;z-index:0;pointer-events:none;
  mix-blend-mode:screen;background-image:var(--art);background-size:86% auto;
  background-position:left bottom;background-repeat:no-repeat;
  opacity:0;transition:opacity 900ms var(--ease-standard)}
.hero__art.is-art{opacity:.06}
.hero__inner{position:relative;z-index:1;min-height:100svh;display:flex;
  align-items:center;background-image:var(--texture-paper)}
.hero__pane{position:absolute;top:0;right:0;bottom:0;width:46%;overflow:hidden}
.hero__pane img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 900ms var(--ease-standard);
  animation:catKen 40s ease-in-out infinite alternate}
.hero__pane img.is-active{opacity:1}
.hero__stub{position:absolute;inset:0;background:var(--ink-800);
  background-image:var(--texture-paper);display:flex;align-items:center;
  justify-content:center}
.hero__stub span{font-family:var(--font-han);font-size:clamp(64px,9vw,120px);
  color:rgba(251,246,238,.14);line-height:1}
.hero__scrim{position:absolute;inset:0;
  background:linear-gradient(90deg,var(--ink-900) 0%,rgba(23,18,15,.72) 22%,rgba(23,18,15,0) 62%)}
.hero__body{position:relative;width:100%;max-width:var(--page-max);margin:0 auto;
  padding:148px var(--page-gutter) 76px}
.hero__col{max-width:620px;display:flex;flex-direction:column;gap:26px}
.hero h1{font-family:var(--font-display);font-weight:var(--weight-medium);
  font-size:clamp(50px,5.4vw,82px);line-height:1;letter-spacing:var(--tracking-display);
  color:var(--paper-100);text-wrap:pretty;animation:catRise 700ms var(--ease-standard) both}
.hero__lead{max-width:580px;font-size:clamp(19px,1.45vw,24px);line-height:1.55;
  color:var(--paper-100);text-wrap:pretty;
  animation:catRise 700ms 120ms var(--ease-standard) both}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:28px;
  animation:catRise 700ms 220ms var(--ease-standard) both}
.hero__price{font-family:var(--font-display);font-size:clamp(38px,3.6vw,56px);
  line-height:1;color:var(--paper-100);white-space:nowrap}
.hero__price b{font-family:var(--font-mono);font-weight:400;font-size:.72em;
  letter-spacing:-.01em}
.hero__slides{display:flex;align-items:center;gap:18px;margin-top:6px}
.hero__dots{display:flex;align-items:center;gap:8px}
.hero__dots button{height:4px;width:12px;border:none;padding:0;
  border-radius:var(--radius-pill);cursor:pointer;
  background-color:rgba(251,246,238,.35);
  transition:width var(--duration-base) var(--ease-standard),
             background-color var(--duration-base) var(--ease-standard)}
.hero__dots button.is-active{width:34px;background-color:var(--paper-100)}
.hero__caps{position:relative;display:block;flex:1;min-width:0;height:18px}
.hero__caps span{position:absolute;inset:0;font-size:var(--size-caption);
  color:var(--text-inverse-muted);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;opacity:0;transition:opacity 400ms var(--ease-standard)}
.hero__caps span.is-active{opacity:1}

/* ── полоса с цифрами ───────────────────────────────────────────────────── */
.stats{background:var(--surface-sunken);border-top:1px solid var(--border-subtle);
  border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}
.stats__grid{max-width:var(--page-max);margin:0 auto;padding:44px var(--page-gutter);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:32px}
.stat{display:flex;flex-direction:column;gap:6px}
.stat b{font:400 clamp(38px,3.4vw,52px)/1 var(--font-display);
  letter-spacing:var(--tracking-display);color:var(--text-primary)}
.stat span{font-family:var(--font-text);font-size:var(--size-caption);line-height:1.45;
  color:var(--text-muted)}

/* ── об авторе ──────────────────────────────────────────────────────────── */
.author{position:relative;overflow:hidden;padding:var(--section-y) 0;
  background:var(--ink-900);background-image:var(--texture-paper);
  color:var(--paper-100);scroll-margin-top:84px}
.author__pattern{position:absolute;inset:0;width:100%;height:100%;fill:none;
  stroke:var(--paper-100);stroke-width:1.5;opacity:.07;pointer-events:none}
.author__grid{position:relative;z-index:1;max-width:var(--page-max);margin:0 auto;
  padding:0 var(--page-gutter);display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:start}
.author__text{display:flex;flex-direction:column;gap:22px}
.author h2{font:var(--weight-medium) var(--size-h1)/1.14 var(--font-display);
  letter-spacing:var(--tracking-display);color:var(--paper-100);text-wrap:pretty}
.kicker{font-size:var(--size-micro);font-weight:var(--weight-bold);
  letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brass-500)}
.author__lead{max-width:620px;font-size:var(--size-body-lg);line-height:1.6;
  color:var(--paper-200);text-wrap:pretty}
.author__p{max-width:620px;font-size:var(--size-body);line-height:var(--leading-body);
  color:var(--paper-200);text-wrap:pretty}
.author__list{margin:2px 0 0;display:flex;flex-direction:column;gap:18px;max-width:620px}
.author__list li{display:flex;gap:16px;align-items:flex-start}
.author__tick{flex:none;width:34px;height:34px;border-radius:var(--radius-pill);
  background:var(--brass-500);color:var(--ink-900);display:inline-flex;
  align-items:center;justify-content:center}
.author__list p{font-size:var(--size-body);line-height:var(--leading-body);
  color:var(--paper-200);text-wrap:pretty}
.author__list strong{color:var(--paper-100);font-weight:var(--weight-bold)}
.author__pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:6px}

/* ── латунный разделитель между секциями ────────────────────────────────── */
.rule{position:relative;height:0;z-index:4}
.rule > div{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);
  width:min(980px,calc(100% - 2 * var(--page-gutter)));color:var(--brass-500)}
.rule svg{width:100%;height:auto;display:block;fill:none;stroke:currentColor;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ── общий заголовок секции ─────────────────────────────────────────────── */
.h-section{font:var(--weight-medium) var(--size-h1)/1.14 var(--font-display);
  letter-spacing:var(--tracking-display);text-wrap:pretty}
.hint{font-size:var(--size-body-sm);color:var(--text-muted)}

/* ── ленты фотографий ───────────────────────────────────────────────────── */
.ribbon-sec{padding:var(--section-y) 0 calc(var(--section-y) * 0.7);overflow:hidden}
.ribbon-sec--group{padding:var(--section-y) 0 calc(var(--section-y) * 0.8)}
.ribbon-sec__head{max-width:var(--page-max);margin:0 auto 44px;
  padding:0 var(--page-gutter);display:flex;flex-direction:column;gap:14px}
.ribbon-sec--group .ribbon-sec__head{margin-bottom:40px}
.ribbon-wrap{width:100%;overflow-x:auto;padding:14px 0;scrollbar-width:none;
  -webkit-overflow-scrolling:touch}
.ribbon-wrap::-webkit-scrollbar{display:none}
.ribbon{display:flex;gap:24px;width:max-content;padding:0 12px;
  animation:catMarqueeLeft 62s linear infinite}
.ribbon--right{align-items:flex-start;animation:catMarqueeRight 74s linear infinite}
/* Пауза — только когда курсор действительно на кадре, как обещает подпись под
   заголовком. Раньше пауза висела на всей полосе во всю ширину экрана: курсор,
   замерший в промежутке между карточками, останавливал ленту насовсем. */
.ribbon:has(> div:hover){animation-play-state:paused}
.ribbon-wrap[data-paused] .ribbon{animation-play-state:paused}
.ribbon > div{width:clamp(300px,30vw,460px);flex:none;cursor:zoom-in;
  transition:transform 320ms var(--ease-out),box-shadow 320ms var(--ease-out)}
.ribbon--right > div{width:clamp(210px,19vw,300px)}
.ribbon > div:hover{transform:translateY(-14px) scale(1.02);box-shadow:var(--shadow-lg)}

/* ── тур по дням ────────────────────────────────────────────────────────── */
.days-intro{max-width:var(--page-max);margin:0 auto;
  padding:var(--section-y) var(--page-gutter) clamp(18px,2.6vh,34px)}
.days-intro > div{display:flex;flex-direction:column;gap:14px}
.days-intro p{max-width:62ch;font-size:var(--size-body-sm);line-height:1.55;
  color:var(--text-muted)}
.days{position:relative;height:calc(100vh - var(--stage-top) + 392vh);
  background:var(--surface-page);color:var(--text-primary)}
.days__sticky{position:sticky;top:var(--stage-top);height:calc(100vh - var(--stage-top));
  overflow:hidden;display:flex;flex-direction:column}
.days__stage{position:relative;flex:1;min-height:0;width:100%;
  max-width:var(--page-max);margin:0 auto}
.day{position:absolute;inset:0 var(--page-gutter);display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.86fr);gap:clamp(24px,4vw,56px);
  align-items:center;overflow:hidden;opacity:0;transform:translateY(28px);
  pointer-events:none;
  transition:opacity 520ms var(--ease-standard),transform 520ms var(--ease-standard)}
.day.is-active{opacity:1;transform:none;pointer-events:auto}
.day__text{display:flex;flex-direction:column;gap:clamp(12px,1.8vh,20px)}
.day__kicker{font-size:clamp(16px,1.5vw,20px);font-weight:var(--weight-bold);
  letter-spacing:.06em;text-transform:uppercase;color:var(--cinnabar-600)}
.day h3{font:var(--weight-medium) clamp(26px,2.7vw,42px)/1.12 var(--font-display);
  letter-spacing:var(--tracking-display);text-wrap:pretty}
.day__lead{max-width:48ch;font-size:var(--size-body);line-height:var(--leading-body);
  color:var(--text-secondary);text-wrap:pretty}
.day__list{display:flex;flex-direction:column;gap:11px}
.day__list li{display:flex;gap:12px;align-items:flex-start;font-size:var(--size-body-sm);
  line-height:1.55;color:var(--text-secondary)}
.day__list .ic{margin-top:2px;color:var(--cinnabar-600)}
.day__go{display:flex;padding-top:clamp(4px,1vh,12px)}
.day__pic{position:relative;align-self:center;height:min(100%,460px);
  border-radius:var(--radius-sm);overflow:hidden;background:var(--ink-700)}
.day__pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.day__pic .frame,.day__pic .frame__box{height:100%}
.days__pager{flex:none}
.days__pager > div{max-width:var(--page-max);margin:0 auto;
  padding:8px var(--page-gutter) clamp(16px,2.6vh,30px);display:flex;
  align-items:flex-end;justify-content:center;gap:clamp(14px,2.6vw,40px);
  overflow-x:auto;scrollbar-width:none}
.days__pager > div::-webkit-scrollbar{display:none}
.daydot{flex:none;cursor:pointer;display:flex;flex-direction:column;gap:4px;
  padding:0 0 8px;border:none;border-bottom:2px solid transparent;background:none;
  color:var(--text-muted);
  transition:color 220ms var(--ease-standard),border-color 220ms var(--ease-standard)}
.daydot:hover{color:var(--text-primary)}
.daydot.is-active{color:var(--cinnabar-600);border-bottom-color:var(--cinnabar-600)}
.daydot b{font:var(--weight-medium) 20px/1 var(--font-display)}
.daydot span{font-size:11px;font-weight:var(--weight-bold);letter-spacing:.12em;
  text-transform:uppercase;white-space:nowrap}

/* ── как устроена поездка ───────────────────────────────────────────────── */
.comfort{position:relative;overflow:hidden;padding:var(--section-y) 0;
  border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}
/* Подложка секции — сплошная заливка, из которой рисунок вырезан маской.
   Пока site.js не подставил --art, маски нет, поэтому непрозрачность держим
   нулевой: иначе без маски и без JS на секцию лёг бы сплошной тёмный
   прямоугольник. Класс is-art приходит вместе с адресом. */
.sec-art{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;
  background-color:var(--ink-900);
  -webkit-mask-image:var(--art);mask-image:var(--art);
  -webkit-mask-size:100% auto;mask-size:100% auto;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  transition:opacity 900ms var(--ease-standard)}
.sec-art--comfort{-webkit-mask-position:center;mask-position:center}
.sec-art--tours{-webkit-mask-position:bottom center;mask-position:bottom center}
.sec-art--contacts{-webkit-mask-position:top center;mask-position:top center}
.sec-art--comfort.is-art{opacity:.12}
.sec-art--tours.is-art{opacity:.10}
.sec-art--contacts.is-art{opacity:.10}
.sec-inner{position:relative;z-index:1;max-width:var(--page-max);margin:0 auto;
  padding:0 var(--page-gutter)}
.comfort__head{max-width:760px;margin-bottom:44px;display:flex;flex-direction:column;
  gap:16px}
.comfort__head p:first-of-type{font-size:var(--size-body-lg);line-height:1.6;
  color:var(--text-secondary);text-wrap:pretty}
.comfort__head p{font-size:var(--size-body);line-height:var(--leading-body);
  color:var(--text-secondary);text-wrap:pretty}
.comfort__head strong{color:var(--text-primary);font-weight:var(--weight-bold)}
.comfort__list{border-top:1px solid var(--border-subtle)}
.comfort__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:24px;padding:28px 0;border-bottom:1px solid var(--border-subtle)}
.comfort__row > div{display:flex;align-items:center;gap:14px}
.comfort__row .ic{color:var(--text-accent)}
.comfort__row h3{font:var(--weight-medium) var(--size-h3)/1.2 var(--font-display)}
.comfort__row p{grid-column:span 2;max-width:720px;font-size:var(--size-body);
  line-height:var(--leading-body);color:var(--text-secondary);text-wrap:pretty}

/* ── программы и стоимость ──────────────────────────────────────────────── */
.tours{position:relative;overflow:hidden;padding:var(--section-y) 0;
  scroll-margin-top:84px}
.corner{position:absolute;pointer-events:none;color:var(--ink-900);
  transform:rotate(180deg)}
.corner svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.corner--tours{bottom:-30px;right:-34px;width:132px;height:132px;opacity:.10}
.corner--contacts{bottom:-26px;right:-30px;width:126px;height:126px;opacity:.16}
.tours__head{max-width:780px;margin-bottom:44px;display:flex;flex-direction:column;
  gap:16px}
.tours__head p{font-size:var(--size-body-lg);line-height:1.6;
  color:var(--text-secondary);text-wrap:pretty}
.tours__cards{display:flex;flex-direction:column;gap:32px}
.tour{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:40px;
  align-items:center;padding:28px;border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);background:var(--surface-card);
  box-shadow:var(--shadow-sm)}
.tour__pic{position:relative;align-self:stretch;min-height:320px}
.tour__pic > div:first-child{position:absolute;inset:0;cursor:zoom-in;overflow:hidden;
  border-radius:var(--radius-sm);background:var(--ink-700)}
.tour__pic img{width:100%;height:100%;object-fit:cover}
.tour__pic .frame,.tour__pic .frame__box{height:100%}
.tour__badge{position:absolute;top:18px;left:18px;width:78px;height:78px;
  border-radius:var(--radius-pill);background:var(--cinnabar-600);color:var(--paper-000);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  line-height:1;box-shadow:var(--shadow-md)}
.tour__badge b{font-family:var(--font-display);font-size:30px;
  font-weight:var(--weight-semibold)}
.tour__badge span{font-size:11px;font-weight:var(--weight-bold);
  letter-spacing:var(--tracking-label);text-transform:uppercase;margin-top:4px}
.tour__text{display:flex;flex-direction:column;gap:22px;padding:6px 0}
.tour h3{font:var(--weight-medium) var(--size-h2)/1.16 var(--font-display);
  letter-spacing:var(--tracking-display);text-wrap:pretty}
.tour__lead{font-size:var(--size-body);line-height:var(--leading-body);
  color:var(--text-secondary);text-wrap:pretty}
.tour__incl{display:flex;flex-direction:column;gap:12px}
.tour__incl > span{font-size:var(--size-micro);font-weight:var(--weight-bold);
  letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.tour__incl ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:10px 28px}
.tour__incl li{display:flex;gap:10px;align-items:flex-start;font-size:var(--size-body-sm);
  line-height:1.5;color:var(--text-secondary)}
.tour__incl .ic{color:var(--jade-700);margin-top:2px}
.tour__price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding-top:4px}
.tour__price b{font-family:var(--font-display);font-weight:var(--weight-semibold);
  font-size:clamp(40px,3.6vw,54px);line-height:1;letter-spacing:var(--tracking-display);
  color:var(--cinnabar-600)}
.tour__price span{font-size:var(--size-body);color:var(--text-secondary)}
.tour__chips{display:flex;flex-wrap:wrap;gap:10px}
.chip-note{display:inline-flex;align-items:center;gap:10px;padding:7px 16px 7px 7px;
  border-radius:var(--radius-pill);font-size:var(--size-body-sm);color:var(--text-primary)}
.chip-note i{flex:none;width:28px;height:28px;border-radius:var(--radius-pill);
  color:var(--paper-000);display:inline-flex;align-items:center;justify-content:center}
.chip-note--jade{border:1px solid var(--jade-700)}
.chip-note--jade i{background:var(--jade-700)}
.chip-note--red{border:1px solid var(--cinnabar-600)}
.chip-note--red i{background:var(--cinnabar-600)}
.tour__go{display:flex;flex-wrap:wrap;gap:12px;padding-top:4px}
.why{margin-top:48px;padding-top:44px;border-top:1px solid var(--border-subtle);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px;
  align-items:center}
.why__text{display:flex;flex-direction:column;gap:22px;max-width:620px}
.why__text p{font-size:var(--size-body);line-height:var(--leading-body);
  color:var(--text-secondary);text-wrap:pretty}
.why__card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);
  background:var(--surface-card);padding:30px 32px}

/* ── отзывы ─────────────────────────────────────────────────────────────── */
.reviews{position:relative;overflow:hidden;
  padding:var(--section-y) 0 calc(var(--section-y) * 0.6);background:var(--surface-sunken);
  border-top:1px solid var(--border-subtle);scroll-margin-top:84px}
.reviews__pattern{position:absolute;inset:0;width:100%;height:100%;fill:none;
  stroke:var(--ink-900);stroke-width:1.5;opacity:.05;pointer-events:none}
.reviews__head{max-width:760px;margin-bottom:44px}
.reviews__top{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:48px;align-items:start}
.galina{position:relative;border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);background:var(--surface-card);padding:46px 36px;
  display:flex;flex-direction:column;gap:18px}
.galina__edge{position:absolute;left:26px;right:26px;display:flex;align-items:center;
  gap:10px;color:var(--ink-900)}
.galina__edge--top{top:16px}
.galina__edge--bottom{bottom:16px}
.galina__edge i{width:9px;height:9px;border:1.5px solid currentColor;
  transform:rotate(45deg);flex:none}
.galina__edge b{flex:1;height:0;border-top:1.5px solid currentColor}
.galina p{font-family:var(--font-display);font-size:var(--size-h3);line-height:1.44;
  color:var(--text-primary);text-wrap:pretty}
.galina__by{display:flex;align-items:baseline;gap:12px;padding-top:16px;
  border-top:1px solid var(--border-subtle)}
.galina__by b{font-family:var(--font-display);font-size:var(--size-h4);font-weight:400}
.galina__by span{font-size:var(--size-caption);color:var(--text-muted)}
.revhead{display:flex;align-items:baseline;justify-content:space-between;gap:24px;
  margin:72px 0 28px}
.revhead h3{font:var(--weight-medium) var(--size-h2)/1.16 var(--font-display);
  letter-spacing:var(--tracking-display)}
.revhead > div{display:flex;gap:10px;flex:none}
.revtrack{display:flex;align-items:stretch;gap:24px;overflow-x:auto;
  overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-snap-stop:always;
  padding-bottom:8px;scrollbar-width:none}
.revtrack::-webkit-scrollbar{display:none}
.rev{scroll-snap-align:start;flex:none;width:clamp(300px,38vw,460px);display:flex;
  flex-direction:column;gap:18px;padding:34px 32px;border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);background:var(--surface-card)}
.rev__lead{font:var(--weight-medium) var(--size-h4)/1.36 var(--font-display);
  color:var(--text-primary);text-wrap:pretty}
.rev details{display:flex;flex-direction:column}
.rev summary{font-size:var(--size-body-sm);font-weight:var(--weight-bold);
  color:var(--cinnabar-600);list-style:none;cursor:pointer}
.rev summary::-webkit-details-marker{display:none}
.rev summary .less{display:none}
.rev details[open] summary .more{display:none}
.rev details[open] summary .less{display:inline}
.rev__body{display:flex;flex-direction:column;gap:14px;padding-top:16px}
.rev__body p{font-size:var(--size-body-sm);line-height:var(--leading-body);
  color:var(--text-secondary);text-wrap:pretty}
.rev__by{margin-top:auto;display:flex;flex-direction:column;gap:4px;padding-top:18px;
  border-top:1px solid var(--border-subtle)}
.rev__by b{font-family:var(--font-display);font-size:var(--size-h4);font-weight:400}
.rev__by span{font-size:var(--size-caption);color:var(--text-muted)}
.reviews__note{margin:18px 0 0;font-size:var(--size-caption);color:var(--text-muted)}

/* ── контакты ───────────────────────────────────────────────────────────── */
.contacts{position:relative;overflow:hidden;padding:var(--section-y) 0;
  background:var(--surface-sunken);scroll-margin-top:84px}
.contacts__head{max-width:760px;margin-bottom:40px;display:flex;flex-direction:column;
  gap:16px}
.contacts__head p{font-size:var(--size-body-lg);line-height:1.6;
  color:var(--text-secondary);text-wrap:pretty}
.contacts__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:20px;margin-bottom:36px}
.ccard{display:flex;align-items:center;gap:14px;padding:22px 24px;
  border:1px solid var(--border-subtle);border-radius:var(--radius-md);
  background:var(--surface-card);text-decoration:none;color:var(--text-primary);
  transition:box-shadow var(--duration-base) var(--ease-out),
             transform var(--duration-base) var(--ease-out)}
.ccard:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);
  color:var(--text-primary)}
.ccard .ic{color:var(--cinnabar-600)}
.ccard div{display:flex;flex-direction:column;gap:3px}
.ccard b{font-size:var(--size-body);font-weight:400}
.ccard span{font-size:var(--size-caption);color:var(--text-muted)}

/* ── подвал ─────────────────────────────────────────────────────────────── */
.foot{position:relative;overflow:hidden;background:var(--ink-900);
  color:var(--text-inverse-muted);padding:56px 0 40px}
.foot__pattern{position:absolute;inset:0;width:100%;height:100%;fill:none;
  stroke:var(--paper-100);stroke-width:1.5;opacity:.07;pointer-events:none}
.foot__row{position:relative;z-index:1;max-width:var(--page-max);margin:0 auto;
  padding:0 var(--page-gutter);display:flex;flex-wrap:wrap;gap:32px;
  justify-content:space-between;align-items:flex-start}
.foot__links{display:flex;flex-direction:column;align-items:flex-start;gap:10px;
  font-size:var(--size-body-sm)}
.foot__links a{color:var(--paper-100);text-decoration:none;
  border-bottom:1px solid rgba(251,246,238,.4)}
.foot__links a:hover{color:var(--paper-000)}
.foot__info{display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  font-size:var(--size-caption);max-width:320px}
.foot__info a{color:var(--text-inverse-muted);border-bottom:1px solid rgba(251,246,238,.3)}
.foot__info a:hover{color:var(--paper-100)}
.foot__seal{max-width:var(--page-max);margin:32px auto 0;padding:0 var(--page-gutter);
  display:flex;align-items:center;gap:14px}
.foot__seal i{flex:1;height:1px;background:var(--border-inverse)}
.foot__seal b{font-family:var(--font-han);font-size:18px;color:var(--brass-500);
  font-weight:400}

/* ── диалоги ────────────────────────────────────────────────────────────── */
.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;
  justify-content:center;padding:var(--space-6);background:var(--surface-overlay);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  animation:catFade 260ms var(--ease-standard) both}
.modal[hidden]{display:none}
.modal__panel{width:100%;max-width:560px;max-height:92%;overflow-y:auto;
  background:var(--surface-card);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-overlay);padding:var(--space-8);display:flex;
  flex-direction:column;gap:20px;animation:catPop 300ms var(--ease-standard) both}
.modal--wide .modal__panel{max-width:900px}
.modal--quiz .modal__panel{max-width:880px}
.modal.is-closing{animation:catFadeOut 220ms var(--ease-standard) both}
.modal.is-closing .modal__panel{animation:catPopOut 220ms var(--ease-standard) both}
.modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.modal__head > div{display:flex;flex-direction:column;gap:8px}
.modal__head h3{font:var(--weight-medium) var(--size-h2)/1.2 var(--font-display)}
.modal__head p{font-family:var(--font-text);font-size:var(--size-body-sm);
  line-height:var(--leading-body);color:var(--text-secondary)}
.modal__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));
  gap:28px;align-items:start}
.form{display:flex;flex-direction:column;gap:18px}
.dates{display:flex;flex-direction:column;gap:18px;padding:4px 24px 4px 0;
  border-right:1px solid var(--border-subtle);text-align:center}
.dates > span{font-size:var(--size-micro);font-weight:var(--weight-bold);
  letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.dates__grp{display:flex;flex-direction:column;gap:0}
.dates__grp b{font-family:var(--font-display);font-size:var(--size-h4);font-weight:400;
  margin-bottom:10px;text-align:left;text-wrap:balance}
.dates__grp i{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding:9px 0;border-top:1px solid var(--border-subtle);text-align:left;
  font-family:var(--font-mono);font-size:var(--size-body-sm);font-style:normal}
.dates__grp em{flex:none;font-family:var(--font-text);font-style:normal;
  font-size:var(--size-caption);color:var(--jade-600)}
.dates__grp i[data-full]{color:var(--text-muted)}
.dates__grp i[data-full] em{color:var(--text-muted)}
.dates p{font-size:var(--size-caption);line-height:var(--leading-body);
  color:var(--text-muted)}
.done{display:flex;flex-direction:column;gap:14px;align-items:flex-start;padding:8px 0 4px}
.done .ic{color:var(--jade-500)}
.done p{font-size:var(--size-body);line-height:var(--leading-body);
  color:var(--text-secondary);text-wrap:pretty}
.err{display:flex;flex-direction:column;gap:12px;padding:14px 16px;
  border:1px solid var(--cinnabar-200);background:var(--cinnabar-100);
  border-radius:var(--radius-sm);font-size:var(--size-body-sm);
  line-height:var(--leading-body);color:var(--cinnabar-800)}
.err[hidden]{display:none}

/* ── квиз ───────────────────────────────────────────────────────────────── */
.quiz{display:flex;flex-direction:column;gap:20px}
.quiz__prog{display:flex;flex-direction:column;gap:10px}
.quiz__prog > div:first-child{display:flex;justify-content:space-between;gap:16px;
  font-size:var(--size-micro);font-weight:var(--weight-bold);
  letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.quiz__bar{height:3px;border-radius:var(--radius-pill);background:var(--paper-300);
  overflow:hidden}
.quiz__bar i{display:block;height:100%;border-radius:var(--radius-pill);
  background:var(--cinnabar-600);transition:width 280ms var(--ease-standard)}
.quiz__step{display:flex;flex-direction:column;gap:16px}
.quiz__step[hidden]{display:none}
.quiz__step > p{font-size:var(--size-body);line-height:var(--leading-body);
  color:var(--text-secondary);text-wrap:pretty}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.tile{position:relative;padding:0;margin:0;border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;
  background:var(--surface-card);color:var(--text-primary);font-family:var(--font-text);
  text-align:left;
  transition:border-color 160ms var(--ease-standard),box-shadow 160ms var(--ease-standard)}
.tile:hover{border-color:var(--border-strong)}
.tile[aria-pressed="true"]{border-color:var(--cinnabar-600);
  box-shadow:0 0 0 2px var(--cinnabar-600)}
.tile__pic{display:block;aspect-ratio:4 / 3;background-color:var(--paper-300);
  background-size:cover;background-position:center}
.tile__pic--empty{display:flex;align-items:center;justify-content:center;
  background-image:var(--texture-paper);font-family:var(--font-han);font-size:34px;
  color:var(--ink-200)}
.tile__check{position:absolute;top:8px;right:8px;width:24px;height:24px;
  border-radius:var(--radius-pill);background:var(--cinnabar-600);color:var(--paper-000);
  display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.8);
  transition:opacity 160ms var(--ease-standard),transform 160ms var(--ease-standard)}
.tile[aria-pressed="true"] .tile__check{opacity:1;transform:none}
.tile__label{display:block;padding:9px 11px;font-size:var(--size-body-sm);line-height:1.3}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{padding:12px 20px;border-radius:var(--radius-pill);
  border:1px solid var(--border-strong);background:transparent;color:var(--text-primary);
  font-family:var(--font-text);font-size:var(--size-body-sm);cursor:pointer;
  transition:background-color 160ms var(--ease-standard),
             border-color 160ms var(--ease-standard),color 160ms var(--ease-standard)}
.chip:hover{background:var(--paper-200)}
.chip[aria-pressed="true"]{background:var(--ink-900);border-color:var(--ink-900);
  color:var(--paper-000)}
.quiz__nav{display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;padding-top:4px;border-top:1px solid var(--border-subtle)}
.quiz__nav > i{flex:1}
.quiz__where{display:flex;flex-direction:column;gap:10px}
.quiz__where > span{font-size:var(--size-micro);font-weight:var(--weight-bold);
  letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}

/* ── лайтбокс ───────────────────────────────────────────────────────────── */
.lb{position:fixed;inset:0;z-index:120;background:var(--surface-overlay);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;
  align-items:center;justify-content:center;padding:5vmin;cursor:zoom-out;
  animation:catFade 240ms var(--ease-standard) both}
.lb[hidden]{display:none}
.lb > div{display:flex;flex-direction:column;gap:14px;align-items:center}
.lb__img{width:88vw;max-width:1180px;height:74vh;background-size:contain;
  background-position:center;background-repeat:no-repeat;
  filter:drop-shadow(0 32px 80px rgba(23,18,15,.42))}
.lb__img--empty{display:flex;align-items:center;justify-content:center;
  font-family:var(--font-han);font-size:clamp(80px,18vw,220px);
  color:rgba(251,246,238,.22)}
.lb__cap{max-width:620px;text-align:center;font-size:var(--size-body-sm);
  line-height:var(--leading-body);color:var(--text-inverse)}

/* ── юридические страницы ───────────────────────────────────────────────── */
.legal{padding:124px 0 var(--section-y)}
.crumbs{font-size:var(--size-caption);color:var(--text-muted);margin-bottom:34px}
.crumbs a{color:var(--text-muted);border-bottom:1px solid var(--border-subtle)}
.crumbs a:hover{color:var(--text-primary)}
.legal__grid{display:grid;grid-template-columns:minmax(200px,240px) minmax(0,1fr);
  gap:clamp(32px,5vw,72px);align-items:start}
.legal__toc{position:sticky;top:120px;padding:22px 24px;
  border:1px solid var(--border-subtle);border-radius:var(--radius-md);
  background:var(--surface-card)}
.legal__toc h4{font:var(--weight-bold) var(--size-micro)/1.2 var(--font-text);
  letter-spacing:var(--tracking-label);text-transform:uppercase;
  color:var(--text-muted);margin-bottom:14px}
.legal__toc ul{display:flex;flex-direction:column;gap:10px;list-style:none;padding-left:0}
.legal__toc a{font-size:var(--size-body-sm);line-height:1.4;color:var(--text-secondary);
  border:none}
.legal__toc a:hover{color:var(--text-accent)}
.legal__body{max-width:680px;display:flex;flex-direction:column;gap:14px}
.legal h1{font:var(--weight-medium) var(--size-h1)/1.14 var(--font-display);
  letter-spacing:var(--tracking-display)}
.legal h2{font:var(--weight-medium) var(--size-h3)/1.3 var(--font-display);
  margin-top:26px;scroll-margin-top:120px}
.legal p,.legal li{font-size:var(--size-body-sm);line-height:var(--leading-body);
  color:var(--text-secondary)}
.legal strong{color:var(--text-primary);font-weight:var(--weight-bold)}
.legal ul{display:flex;flex-direction:column;gap:8px;padding-left:20px;list-style:disc}
.legal a{border-bottom:1px solid rgba(154,42,24,.35)}
.legal__upd{font-size:var(--size-caption);color:var(--text-muted);margin-bottom:10px}

/* ── медиазапросы ───────────────────────────────────────────────────────── */
@media (max-width:1180px){
  .nav__phone{display:none}
}
@media (max-width:900px){
  .nav{display:none}
  .burger{display:inline-flex}
  .hdr__pill{max-width:none;padding:0 10px 0 16px}
  .hero__pane{width:100%}
  .hero__scrim{background:linear-gradient(180deg,rgba(23,18,15,.55) 0%,rgba(23,18,15,.86) 60%,var(--ink-900) 100%)}
  /* На телефоне кадр дня переезжает наверх, над текстом: колонки справа нет,
     а фотография в программе нужна. Высота ограничена долей экрана, иначе
     текст дня не поместится в закреплённую сцену. */
  .day{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;
    gap:16px}
  .day__pic{order:-1;align-self:start;width:100%;height:clamp(130px,21vh,210px)}
}
@media (max-width:760px){
  .hero__body{padding-top:104px;padding-bottom:54px}
  .hero h1{font-size:clamp(40px,11vw,56px)}
  .hero__cta .shine,.hero__cta .shine .btn{width:100%;justify-content:center}
  .stats__grid{grid-template-columns:1fr 1fr;gap:22px 16px;padding-top:30px;
    padding-bottom:30px}
  .sec-art--comfort,.sec-art--tours{display:none}
  .ribbon > div{width:76vw}
  .ribbon--right > div{width:56vw}
  .daydot span{display:none}
  .tour{padding:14px;gap:26px}
  .tour__pic{min-height:230px}
  .why__card{padding:26px 20px}
  .revtrack > .rev{width:calc(100vw - 2 * var(--page-gutter));padding:26px 20px}
  .revhead{flex-direction:column;align-items:flex-start;gap:18px;margin:52px 0 24px}
  .modal{padding:10px}
  .modal__panel{padding:24px 18px;max-height:94%}
  .dates{border-right:none;border-bottom:1px solid var(--border-subtle);
    padding:0 0 22px}
  .lb__img{width:92vw;height:58vh}
  .author__pair{grid-template-columns:1fr}
}
@media (max-width:900px){
  .legal__grid{grid-template-columns:1fr;gap:28px}
  .legal__toc{position:static}
}
@media (max-height:800px){
  .day__lead{display:none}
  .day h3{font-size:clamp(22px,2.3vw,32px)}
  .day__list li{font-size:14px;line-height:1.45}
  .day__text{gap:10px}
}
@media (hover:none){
  .hint--hover{display:none}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
  .hero__pane img{transition:none}
  .hero__art,.sec-art{transition:none}
}
