/* Базовые стили лендинга Marika AI: локальные шрифты, сброс, типографика, утилиты */
@font-face { font-family: Onest; src: url('/assets/fonts/Onest-Variable-cyrillic.woff2') format('woff2');
             font-weight: 400 800; font-display: swap; unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: Onest; src: url('/assets/fonts/Onest-Variable-latin.woff2') format('woff2');
             font-weight: 400 800; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Inter; src: url('/assets/fonts/Inter-Variable-cyrillic.woff2') format('woff2');
             font-weight: 400 700; font-display: swap; unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: Inter; src: url('/assets/fonts/Inter-Variable-latin.woff2') format('woff2');
             font-weight: 400 700; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

*, *::before, *::after { box-sizing: border-box; }
/* Страховка для атрибута hidden: авторские правила display (например,
   .btn { display: inline-flex } или .site-footer__telegram { display:
   inline-flex }) перебивают браузенную таблицу стилей для [hidden] — это
   не вопрос специфичности, а порядка объявления. Без этого правила
   элемент с hidden, у которого где-то ниже задан свой display, всё равно
   рисуется (так было с пустой кнопкой «Написать в Telegram», пока адрес
   не заполнен — см. public/js/telegram-cta.js). !important здесь
   осознанный: это последняя линия защиты, а не рядовой стиль, её не
   должно быть просто переопределить следующим селектором. */
[hidden] { display: none !important; }
/* Липкая шапка перекрывает якорь: без отступа переход по #lead или #hero
   подсовывает заголовок секции под шапку. Значение — её высота с запасом
   (padding 14px x2 + строка кнопки), на узких экранах шапка ниже. */
html { scroll-padding-top: 88px; }
@media (max-width: 560px) { html { scroll-padding-top: 68px; } }
body { margin: 0; background: var(--bg); color: var(--ink);
       font: 400 1.0625rem/1.6 Inter, system-ui, sans-serif;
       -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-family: Onest, Inter, sans-serif; letter-spacing: -.02em;
             line-height: 1.08; margin: 0 0 .5em; }
h1 { font-size: var(--step-h1); font-weight: 700; }
h2 { font-size: var(--step-h2); font-weight: 600; }
.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: 20px; }
.band { height: 6px; background: var(--grad); border-radius: var(--r-pill); }
.eyebrow { font-size: .8125rem; font-weight: 600; letter-spacing: .08em;
           text-transform: uppercase; color: var(--ink-2); }
:focus-visible { outline: 3px solid var(--indigo); outline-offset: 3px; border-radius: 6px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after {
  animation-duration: .01ms !important; transition-duration: .01ms !important; } }
