/* ===========================================================
   Nota-bene — базовый reset и типографика
   =========================================================== */

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

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  /* Шапка закреплена (position: sticky), поэтому без этого браузер ставил цель якоря вплотную к верху окна,
     то есть ПОД шапку: верх блока и поле «ИНН компании» оказывались закрыты. Отступ действует на все переходы
     по якорям и при фокусе с клавиатуры; размеры — в tokens.css. */
  scroll-padding-top: calc(var(--header-h) + var(--anchor-gap));
}

body {
  margin: 0;
  /* Едва заметное золотое сияние сверху страницы — атмосфера, а не эффект */
  background:
    radial-gradient(ellipse 1400px 700px at 50% -8%, rgba(198, 161, 91, 0.05), transparent 60%),
    var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

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

h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--ink);
  margin: 0 0 var(--sp-4);
  text-wrap: balance;
  font-weight: 500;
}

/* Крупные заголовки — плотнее (дороже смотрится), некрупные — свободнее
   (иначе перенос на 2-3 строки читается тесно). */
h1 { font-size: var(--text-h1); line-height: 1.04; letter-spacing: -0.015em; }
h2 { font-size: var(--text-h2); line-height: 1.15; letter-spacing: -0.01em; }
h3 { font-size: var(--text-h3); line-height: 1.2; }
/* .h4 — то же оформление для заголовков другого уровня: порядок h1 → h2 → h3 на публичных страницах не перескакивает через
   уровни (подзаголовки карточек, подвал, контакты), а вид остаётся прежним. */
h4, .h4 { font-size: var(--text-h4); font-family: var(--font-body); font-weight: 700; line-height: 1.3; letter-spacing: normal; }

p { margin: 0 0 var(--sp-4); max-width: 62ch; color: var(--ink-soft); }
p:last-child { margin-bottom: 0; }
p.lede { font-size: var(--text-body-lg); line-height: 1.55; color: var(--ink-soft); }

a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hover); text-decoration: underline; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-mono);
  font-size: var(--text-eyebrow);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: var(--sp-3);
}

/* Skip-link: до правки клавиатурному пользователю приходилось проходить
   Tab через всю шапку (5-8 пунктов меню + CTA) на КАЖДОЙ странице, чтобы
   попасть в содержимое. Скрыт визуально, но не через display:none — так
   он остаётся первым в Tab-порядке и появляется по фокусу. */
.skip-link {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(-100%);
  z-index: 100;
  background: var(--accent);
  color: var(--accent-ink);
  font-weight: 600;
  padding: var(--sp-3) var(--sp-5);
  border-radius: 0 0 var(--radius) 0;
}
.skip-link:focus {
  transform: translateY(0);
}

/* Единый видимый фокус — доступность прежде всего */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  /* Не «выключить всё», а убрать движение (10 октября 2026 года, раздел 13.37): перемещения, масштаб, раскрытие по высоте и
     анимации пропадают (меняются мгновенно), а смена цвета, рамки, тени и прозрачности остаётся короткой (120 мс), чтобы
     отклик на действие был виден. Псевдоэлементы (::before/::after) селектор * не захватывает, а на них построены золотая
     «таблетка» переключателя валюты и значок «+/−» у вопросов FAQ. */
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-property: color, background-color, border-color, outline-color, opacity, box-shadow !important;
    transition-duration: 120ms !important;
    transition-delay: 0s !important;
  }
}
