/* Cherish — студия онлайн-трансляций
   Дизайн-система Cherish Studio (палитра 30.09.2026): тёплая бумага, чернильный текст, вино.
   Вино — на акцентах: киккеры, линии секций, цифры, шапки таблиц, кнопки.
   Сплошные винные поверхности — только CTA, футер, бегущая строка, меню и шторка.
   Служебные линии 1px (сетки карточек, строки таблиц) — нейтральные --border-light.
   Без градиентов, теней и свечений; основной текст — чернильный. */

/* Шрифт Inter — самохостинг (assets/fonts/). Раньше грузился с cdn.jsdelivr.net;
   убрали, чтобы не зависеть от внешнего CDN и не светить IP посетителей третьей стороне. */
@font-face{font-family:'Inter Variable';font-style:normal;font-display:swap;font-weight:100 900;
  src:url(fonts/inter-cyrillic-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Inter Variable';font-style:normal;font-display:swap;font-weight:100 900;
  src:url(fonts/inter-cyrillic-wght-normal.woff2) format('woff2-variations');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Inter Variable';font-style:normal;font-display:swap;font-weight:100 900;
  src:url(fonts/inter-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  /* нейтрали — потеплели (tokens/colors.css, выгрузка 30.09.2026) */
  --ink-900:#0D0D0D; --ink-800:#1C1C1C; --ink-700:#3D3D3D;
  --gray-500:#6E6E6E; --gray-300:#B4B4B4; --gray-100:#EDE3E4;
  --paper-50:#F7F1F1; --white:#FFFFFF;
  /* вино */
  --wine-900:#3E0C17; --wine-700:#6B1428; --wine-500:#8E1E36; --wine-100:#F1E4E6;
  --accent:var(--wine-700); --accent-strong:var(--wine-900);
  --accent-bright:var(--wine-500); --accent-tint:var(--wine-100);
  --border-light:#D9C4C7;
  --scrim-wine:rgba(62,12,23,.45);

  /* алиасы сайта — чтобы не переписывать селекторы */
  --bg:var(--paper-50); --surface:var(--white); --surface-2:var(--paper-50);
  --text:var(--ink-900); --muted:var(--gray-500); --line:var(--border-light);
  --brand:var(--wine-700); --brand-ink:var(--wine-900); --brand-soft:var(--wine-100);
  --surface-inverse:var(--wine-900);

  --radius:2px; --wrap:1180px; --ease:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:'Inter Variable','Inter',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","cv05";text-wrap:pretty;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
/* ссылка в тексте обязана быть видна и без цвета: подчёркивание, а не только оттенок */
a{color:var(--text);text-decoration:underline;text-decoration-thickness:1px;
  text-underline-offset:.22em;text-decoration-color:var(--border-light);
  transition:color .2s,text-decoration-color .2s}
a:hover{color:var(--brand);text-decoration-color:var(--brand)}
::selection{background:var(--wine-100);color:var(--wine-900)}
/* служебные ссылки — навигация, кнопки, микро-подписи — подчёркивания не носят */
.btn,.logo,.crumbs a,.overlay a,.fcols a,.more,.marquee a{text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.narrow{max-width:780px}
@media(max-width:700px){.wrap{padding:0 20px}}

/* ---------- зерно плёнки ---------- */
body:before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.55;
  background-image:url("grain.png");background-size:128px 128px}

/* ---------- курсор-инверсия ---------- */
.cursor{position:fixed;top:0;left:0;width:26px;height:26px;border-radius:50%;
  background:#fff;mix-blend-mode:difference;pointer-events:none;z-index:9998;
  transform:translate3d(-100px,-100px,0);transition:width .25s var(--ease),height .25s var(--ease);
  margin:-13px 0 0 -13px}
.cursor.big{width:86px;height:86px;margin:-43px 0 0 -43px}
@media(hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------- шторка перехода ---------- */
.curtain{position:fixed;inset:0;background:var(--wine-900);z-index:9999;pointer-events:none;
  transform:translateY(100%);visibility:hidden;opacity:0;transition:transform .5s var(--ease)}
.curtain.up,.curtain.down{visibility:visible;opacity:1}
.curtain.up{transform:translateY(0)}
.curtain.down{transform:translateY(-100%);transition:transform .55s var(--ease)}

/* ---------- шапка ---------- */
header.site{position:sticky;top:0;z-index:60;background:rgba(247,241,241,.86);
  backdrop-filter:saturate(120%) blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:20px;height:72px}
.logo{font-weight:900;font-size:21px;letter-spacing:-.02em;text-transform:uppercase;color:var(--ink-900);
  line-height:1}
.logo:hover{color:var(--ink-900)}
.nav .btn{margin-left:auto;white-space:nowrap}
/* на узком экране ярлык кнопки короткий — иначе он налезает на логотип */
.only-sm{display:none}
@media(max-width:460px){
  .hide-sm{display:none}.only-sm{display:inline}
  .nav .btn{padding:11px 16px;font-size:12px;letter-spacing:.08em}
  .menu-btn{font-size:11px;gap:8px}
}
.menu-btn{display:flex;align-items:center;gap:10px;background:none;border:0;cursor:pointer;
  font:600 12px/1 'Inter Variable','Inter',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-900);
  padding:12px 0}
.menu-btn i{display:block;width:26px;height:8px;border-top:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;transition:transform .3s var(--ease)}
.menu-btn:hover i{transform:scaleX(.7)}
@media(max-width:700px){.nav{height:62px;gap:14px}.logo{font-size:18px}}

/* полноэкранное меню */
.overlay{position:fixed;inset:0;z-index:70;background:var(--wine-900);color:var(--white);
  display:flex;flex-direction:column;justify-content:center;gap:min(4vh,32px);
  padding:max(72px,9vh) 0 max(28px,4vh);overflow-y:auto;overscroll-behavior:contain;
  clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease);visibility:hidden}
.overlay.open{clip-path:inset(0 0 0 0);visibility:visible}
.overlay>.wrap{width:100%;flex:none}
.overlay a{color:var(--white)}
.overlay .close{position:absolute;top:22px;right:32px;background:none;border:0;color:var(--white);
  cursor:pointer;font:600 12px/1 'Inter Variable','Inter',sans-serif;letter-spacing:.14em;text-transform:uppercase}
.overlay ol{list-style:none;margin:0;padding:0;counter-reset:m}
.overlay li{border-top:1px solid var(--wine-700);overflow:hidden}
.overlay li:last-child{border-bottom:1px solid var(--wine-700)}
.overlay li a{display:flex;align-items:baseline;gap:20px;padding:min(1.5vh,16px) 0;
  font-size:clamp(20px,min(5.2vw,5.6vh),60px);font-weight:800;letter-spacing:-.03em;line-height:1;
  text-transform:uppercase;transform:translateY(110%);transition:color .25s}
.overlay.open li a{transform:translateY(0);transition:transform .7s var(--ease),color .25s}
.overlay li:nth-child(1) a{transition-delay:.06s}.overlay li:nth-child(2) a{transition-delay:.1s}
.overlay li:nth-child(3) a{transition-delay:.14s}.overlay li:nth-child(4) a{transition-delay:.18s}
.overlay li:nth-child(5) a{transition-delay:.22s}.overlay li:nth-child(6) a{transition-delay:.26s}
.overlay li:nth-child(7) a{transition-delay:.3s}.overlay li:nth-child(8) a{transition-delay:.34s}
.overlay li a:hover{color:var(--wine-100)}
.overlay li a b{font-size:12px;font-weight:500;letter-spacing:.1em;color:var(--gray-300);
  flex:none;width:34px}
.overlay .foot{flex:none;font-size:13px;color:var(--gray-300)}

/* ---------- кнопки ---------- */
/* заливка ховера — фоновый слой самой кнопки, а не псевдоэлемент:
   работает и когда внутри кнопки голый текст без span */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background-color:var(--brand);color:#fff;padding:13px 22px;border-radius:var(--radius);
  font-weight:600;font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  border:0;cursor:pointer;text-align:center;white-space:normal;max-width:100%;
  position:relative;overflow:hidden;
  background-image:linear-gradient(var(--wine-900),var(--wine-900));
  background-repeat:no-repeat;background-position:50% 100%;background-size:100% 0;
  transition:background-size .4s var(--ease),color .35s var(--ease)}
.btn:hover{color:#fff;background-size:100% 100%}
/* сплошная заливка снизу вверх — визуально это смена цвета, а не градиент */
.btn.ghost{background-color:transparent;color:var(--wine-700);border:1px solid var(--wine-700);
  padding:12px 21px;background-image:linear-gradient(var(--wine-700),var(--wine-700))}
.btn.ghost.lg{padding:16px 29px}
.btn.ghost:hover{color:#fff}
.btn.lg{padding:17px 30px;font-size:14px}
.cta .btn{background-color:var(--white);color:var(--wine-900);
  background-image:linear-gradient(var(--wine-100),var(--wine-100))}
.cta .btn:hover{color:var(--wine-900)}

/* ---------- первый экран ---------- */
.hero{position:relative;padding:72px 0 0;overflow:hidden;border-bottom:1px solid var(--line)}
.hero .grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:48px;align-items:end;
  position:relative;z-index:2}
.hero h1{font-size:clamp(34px,4.6vw,62px);line-height:1.02;margin:0 0 20px;letter-spacing:-.035em;
  font-weight:800;max-width:14ch}
.hero p.lead{font-size:18px;color:var(--ink-700);max-width:48ch;margin:0 0 30px;line-height:1.55}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:56px}
.hero .kicker{display:flex;align-items:center;gap:12px;font:500 11px/1 'Inter Variable','Inter',sans-serif;
  letter-spacing:.18em;text-transform:uppercase;color:var(--wine-700);margin:0 0 26px;font-weight:600}
.hero .kicker:before{content:"";width:46px;height:1px;background:var(--wine-700)}
/* кинетический вордмарк за оффером */
.hero .mark{position:absolute;left:0;right:0;bottom:-2.5vw;z-index:0;pointer-events:none;
  font-weight:900;font-size:19.5vw;line-height:.78;letter-spacing:-.045em;text-transform:uppercase;
  color:var(--wine-700);opacity:.08;white-space:nowrap;text-align:center;will-change:transform}
@media(max-width:860px){
  .hero{padding:40px 0 0}
  .hero .grid{grid-template-columns:1fr;gap:28px;align-items:start}
  .hero .actions{margin-bottom:34px}
  .hero .mark{font-size:30vw;bottom:-1vw;opacity:.06}
}

/* ---------- фото-слоты ---------- */
/* заглушка — фон Wine 100; реальное фото — ч/б и винный скрим на весь кадр (CoverBlock) */
.photo{position:relative;aspect-ratio:3/4;background:var(--wine-100);overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  outline:1px solid var(--border-light);outline-offset:-1px}
.photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05)}
.photo:has(img):before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:var(--scrim-wine)}
.role .photo:has(img):before{background:rgba(62,12,23,.22)}
.photo .ph{font:500 11px/1.6 'Inter Variable','Inter',sans-serif;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-700);text-align:center;padding:20px;max-width:24ch}
.photo.wide{aspect-ratio:16/9}

/* ---------- бегущая строка ---------- */
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:16px 0;background:var(--bg);white-space:nowrap;display:flex}
/* два одинаковых трека, каждый шириной не меньше экрана: цикл бесшовный
   при любой ширине окна, длина фраз значения не имеет */
.marquee .track{display:flex;align-items:center;gap:56px;padding-right:56px;flex:none;
  min-width:100%;justify-content:space-around;
  animation:mq 34s linear infinite;will-change:transform}
.marquee span{font:600 13px/1 'Inter Variable','Inter',sans-serif;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-700);flex:none}
.marquee span.dot{color:var(--wine-500)}
.marquee.dark{background:var(--wine-900);border-color:var(--wine-700)}
.marquee.dark span{color:var(--white)}
.marquee.dark span.dot{color:var(--wine-500)}
.marquee.big{padding:26px 0}
.marquee.big span{font-size:clamp(28px,5vw,64px);font-weight:900;letter-spacing:-.03em;
  text-transform:uppercase;color:var(--wine-700);opacity:.12}
.marquee.big .track{gap:40px;padding-right:40px;animation-duration:26s}
.marquee:hover .track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-100%)}}

/* ---------- секции ---------- */
main{position:relative;z-index:2}
section{padding:88px 0}
section.tight{padding:56px 0}
.sec-head{display:flex;align-items:baseline;gap:20px;margin:0 0 40px;
  border-top:1px solid var(--wine-500);padding-top:18px}
.sec-head .num{font:600 11px/1 'Inter Variable','Inter',sans-serif;letter-spacing:.16em;color:var(--wine-700);flex:none}
.sec-head h2{margin:0}
/* полоса 56×4 под заголовком секции — как в SectionHeader.jsx */
.sec-head h2:after{content:"";display:block;width:56px;height:4px;background:var(--wine-700);margin-top:16px}
.sec-head .sub{display:block;font-weight:700;color:var(--wine-700)}
h1{font-size:clamp(30px,4vw,50px);line-height:1.05;letter-spacing:-.03em;font-weight:800;margin:0 0 18px}
h2{font-size:clamp(24px,3vw,38px);line-height:1.1;margin:0 0 20px;letter-spacing:-.025em;font-weight:800}
h3{font-size:19px;margin:30px 0 10px;letter-spacing:-.01em;font-weight:700}
h4{font-size:16px;margin:22px 0 8px;font-weight:700}
p{margin:0 0 16px}
.lead{font-size:19px;color:var(--ink-700);line-height:1.5}
.muted{color:var(--muted)}
.small{font-size:14px}
@media(max-width:700px){
  body{font-size:16px}
  section{padding:52px 0}
  section.tight{padding:36px 0}
  .lead{font-size:17px}
}

/* ---------- статистика ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;
  margin:0;border-top:1px solid var(--line)}
.stat{padding:28px 24px 30px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat b{display:block;font-size:clamp(34px,4vw,52px);line-height:1;color:var(--brand);
  letter-spacing:-.04em;font-weight:800;font-variant-numeric:tabular-nums}
.stat span{display:block;color:var(--wine-900);font-size:14px;margin-top:12px;line-height:1.45;max-width:26ch}
@media(max-width:700px){.stat{border-right:0;padding:22px 0 24px}}

/* ---------- карточки ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line)}
.card{background:var(--surface);padding:32px 28px;transition:background .4s var(--ease),color .4s var(--ease)}
.card h3{margin-top:0;font-size:20px}
.card ul{padding-left:0;margin:14px 0;list-style:none}
.card li{margin:8px 0;padding-left:18px;position:relative;font-size:15px;color:var(--ink-700)}
.card li:before{content:"";position:absolute;left:0;top:.65em;width:8px;height:1px;background:var(--gray-500)}
.card:hover{background:var(--wine-900);color:var(--white)}
.card:hover li,.card:hover p{color:var(--gray-300)}
.card:hover a{color:var(--white)}
.card:hover li:before{background:var(--wine-500)}
.card:hover .rate{color:var(--wine-100)}
.card .more{font:600 12px/1 'Inter Variable','Inter',sans-serif;letter-spacing:.12em;text-transform:uppercase}

/* карточка роли с фото */
.role{display:flex;flex-direction:column;background:var(--surface);padding:0}
.role .photo{aspect-ratio:3/4}
.role .body{padding:26px 26px 30px}
.role .rate{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);
  font-weight:600;margin:0 0 10px}

/* ---------- шаги ---------- */
.steps{counter-reset:s;display:grid;gap:0;margin:0;border-top:1px solid var(--line)}
.step{padding:26px 0 26px 92px;position:relative;border-bottom:1px solid var(--line);color:var(--ink-700)}
.step:before{counter-increment:s;content:counter(s,decimal-leading-zero);position:absolute;left:0;top:24px;
  font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--wine-500);
  font-variant-numeric:tabular-nums}
.step b{display:block;margin-bottom:6px;color:var(--text);font-size:18px;letter-spacing:-.01em}
@media(max-width:700px){.step{padding-left:0;padding-top:52px}.step:before{top:20px}}

/* ---------- таблицы ---------- */
.tablewrap{overflow-x:auto;margin:24px 0;border:1px solid var(--line);background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:420px;font-size:16px}
/* как DataTable.jsx: шапка Wine 900, полосы Wine 100, первая колонка Wine 900 полужирным */
th,td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--border-light)}
th{background:var(--wine-900);color:var(--white);font-weight:600;font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;border-bottom:0}
tr:nth-child(even) td{background:var(--wine-100)}
td:first-child{color:var(--wine-900);font-weight:600}
td:first-child a{color:inherit}
tr:nth-child(even) td .muted{color:var(--ink-700)}
tr:last-child td{border-bottom:0}
td.num,th.num{font-variant-numeric:tabular-nums;white-space:nowrap}
td.num{font-weight:600}
.hl{color:var(--brand);font-weight:700}

/* ---------- плашки ---------- */
.note{background:var(--wine-100);border-left:3px solid var(--wine-700);border-radius:0;
  padding:20px 22px;margin:24px 0}
.note.warn{background:var(--wine-100);border-left-color:var(--wine-900)}
.note.ok{background:var(--paper-50);border-left-color:var(--ink-700)}
/* на Wine 100 серый Gray 500 не проходит по контрасту — вторичный текст чернильный */
.note .muted{color:var(--ink-700)}
.note p:last-child{margin-bottom:0}

/* ---------- списки ---------- */
ul.check{list-style:none;padding:0;margin:20px 0}
ul.check li{position:relative;padding-left:30px;margin:12px 0;color:var(--ink-700)}
ul.check li b{color:var(--text)}
ul.check li:before{content:"";position:absolute;left:4px;top:8px;width:7px;height:12px;
  border:solid var(--ink-900);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
ul.dash{list-style:none;padding:0}
ul.dash li{position:relative;padding-left:22px;margin:10px 0}
ul.dash li:before{content:"";position:absolute;left:0;top:.7em;width:10px;height:1px;background:var(--gray-500)}

/* ---------- FAQ ---------- */
details{background:transparent;border:0;border-top:1px solid var(--line);margin:0;padding:0}
details:last-of-type{border-bottom:1px solid var(--line)}
/* группа вопросов кончается не обязательно последним details на странице —
   отдельным правилом, чтобы строчка выше уцелела там, где :has() не поддержан */
details:has(+ :not(details)){border-bottom:1px solid var(--line)}
details summary{cursor:pointer;padding:22px 44px 22px 0;font-weight:600;font-size:18px;
  letter-spacing:-.01em;list-style:none;position:relative;transition:color .2s}
details summary:hover{color:var(--brand)}
details summary::-webkit-details-marker{display:none}
details summary:after{content:"";position:absolute;right:6px;top:50%;width:14px;height:1.5px;
  background:currentColor;transition:transform .3s var(--ease)}
details summary:before{content:"";position:absolute;right:6px;top:50%;width:14px;height:1.5px;
  background:currentColor;transform:rotate(90deg);transition:transform .3s var(--ease)}
details[open] summary:before{transform:rotate(0)}
details .body{padding:0 0 24px;color:var(--ink-700);max-width:70ch}
details .body p:last-child{margin-bottom:0}

/* ---------- CTA ---------- */
.cta{background:var(--wine-900);color:var(--white);border-radius:0;padding:80px 40px;
  text-align:center;margin:0;position:relative;overflow:hidden}
.cta h2{color:#fff;margin-bottom:14px;position:relative;z-index:1}
.cta p{color:var(--wine-100);max-width:56ch;margin:0 auto 30px;position:relative;z-index:1}
.cta .btn{position:relative;z-index:1}
.cta a:not(.btn){color:var(--white)}
@media(max-width:700px){.cta{padding:52px 22px}}

/* ---------- калькулятор ---------- */
.calc{background:var(--surface);border:1px solid var(--line);padding:32px;margin:28px 0}
.calc label{display:block;font-weight:600;margin-bottom:12px;font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gray-500)}
.calc label b{float:right;font-size:22px;letter-spacing:-.02em;text-transform:none;color:var(--text);
  font-variant-numeric:tabular-nums;margin-top:-6px}
.calc input[type=range]{width:100%;accent-color:var(--wine-700);height:2px;appearance:none;
  background:var(--border-light);background-repeat:no-repeat;outline:0;margin:0;cursor:ew-resize}
.calc input[type=range]::-webkit-slider-thumb{appearance:none;width:20px;height:20px;border-radius:50%;
  background:var(--wine-700);cursor:pointer;transition:transform .2s}
.calc input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25)}
.calc input[type=range]::-moz-range-thumb{width:20px;height:20px;border:0;border-radius:50%;
  background:var(--wine-700);cursor:pointer}
.calc .out{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;
  margin-top:32px;background:var(--line);border:1px solid var(--line)}
.calc .out div{background:var(--surface);padding:20px}
.calc .out b{display:block;font-size:clamp(26px,3.4vw,38px);color:var(--brand);font-weight:800;
  letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}
.calc .out span{font-size:13px;color:var(--wine-900);margin-top:8px;display:block;
  letter-spacing:.08em;text-transform:uppercase}
.calc b.bump{animation:bump .32s var(--ease)}
@keyframes bump{0%{transform:translateY(-4px);opacity:.45}100%{transform:none;opacity:1}}
.calc input[type=checkbox]{accent-color:var(--brand);width:16px;height:16px;margin-right:8px;
  vertical-align:-2px}
@media(max-width:700px){.calc{padding:22px}}

/* ---------- отзывы / заглушки ---------- */
/* как PullQuote.jsx: текст Wine 900, полоса 48×3 Wine 700 */
.review{background:var(--surface);border:1px solid var(--line);padding:28px}
.review p{color:var(--wine-900);font-weight:600}
.review .who{color:var(--muted);font-size:14px;margin-top:14px}
.review .who:before{content:"";display:block;width:48px;height:3px;background:var(--wine-700);margin-bottom:12px}
.placeholder{border:1px dashed var(--gray-300);padding:40px;color:var(--muted);text-align:center;
  background:transparent;font-size:15px}

/* ---------- крошки ---------- */
.crumbs{font-size:12px;color:var(--muted);padding:22px 0 0;letter-spacing:.08em;text-transform:uppercase}
.crumbs a{color:var(--muted)}

/* ---------- подвал ---------- */
footer.site{background:var(--wine-900);color:var(--gray-300);padding:72px 0 36px;margin-top:0;
  position:relative;z-index:2}
footer.site .fmark{font-weight:900;font-size:clamp(56px,15vw,190px);line-height:.8;letter-spacing:-.045em;
  text-transform:uppercase;color:var(--wine-700);margin:0 0 48px;pointer-events:none;text-align:center}
.fcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px}
.fcols h4{margin:0 0 14px;font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--wine-100);
  font-weight:500}
.fcols ul{list-style:none;padding:0;margin:0}
.fcols li{margin:9px 0}
.fcols a{color:var(--gray-300);font-size:15px}
.fcols a:hover{color:var(--white)}
.legal{margin-top:40px;padding-top:24px;border-top:1px solid var(--wine-700);color:var(--gray-300);font-size:13px}
.legal a:hover{color:var(--white)}
.legal a{color:var(--gray-300)}
.age{display:inline-block;border:1px solid var(--gray-300);padding:1px 7px;font-weight:700;font-size:12px;
  margin-right:8px}

/* ---------- глоссарий ---------- */
dl.gl{margin:20px 0 32px}
dl.gl dt{font-weight:700;margin:22px 0 6px;color:var(--wine-900);scroll-margin-top:100px;
  letter-spacing:-.01em}
dl.gl dd{margin:0;padding:0 0 14px;border-bottom:1px solid var(--line);color:var(--ink-700)}
dl.gl dd:last-child{border-bottom:0}

/* ---------- появление по скроллу ---------- */
html.ch-motion [data-reveal]:not([data-kinetic]){opacity:0;transform:translateY(22px);
  transition:opacity .7s var(--ease),transform .7s var(--ease)}
html.ch-motion [data-reveal]:not([data-kinetic]).in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html.ch-motion [data-reveal]:not([data-kinetic]){transform:none;transition:opacity .4s linear}
  .marquee .track{animation:none}
  .cursor{display:none}
  .curtain{transition:none}
  .hero .mark{transform:none !important}
}
