/* ============================================================
   Изнанка — тема «Швы наружу»
   Единый источник цветов, шрифтов, отступов и приёма «строчка».
   Подключать первым, до любых стилей страниц.
   Шрифты: Piazzolla (заголовки) + Commissioner (текст), обе с кириллицей.
   ============================================================ */

/* Шрифты подключаются в <head> каждой страницы тегом <link>, не через @import — так они не ждут загрузки CSS */

:root {
  /* ---------- Цвет ---------- */
  --c-byaz:      #efeadf;   /* фон страницы — небелёная бязь */
  --c-byaz-2:    #e6dfd0;   /* фон второго уровня: полосы, врезки */
  --c-paper:     #fffdf8;   /* карточки, поля квиза — бумага */
  --c-ink:       #1c1b19;   /* основной текст, заголовки */
  --c-ink-2:     #3d3a35;   /* текст абзацев */
  --c-muted:     #6a655a;   /* подписи, вторичный текст */
  --c-line:      #cfc8b8;   /* тонкие сплошные линии, рамки полей */
  --c-chalk:     #2b4b8c;   /* мел — акцент: ссылки, кнопки, пунктир разметки */
  --c-chalk-2:   #1f3a70;   /* мел темнее — hover, active */
  --c-thread:    #c4372c;   /* нить — только пунктир внутри карточек и бирок, никогда для текста */
  --c-ok:        #2f6b4f;   /* состояние «утверждено», успех квиза */

  /* ---------- Шрифты ---------- */
  --f-display: "Piazzolla", "Times New Roman", serif;
  --f-text:    "Commissioner", "Segoe UI", system-ui, sans-serif;

  /* Размерная шкала — 1.25, база 16 */
  --fs-xs:   0.8125rem;  /* 13 — подписи в бирках */
  --fs-sm:   0.9375rem;  /* 15 — вторичный текст, кнопки-ссылки */
  --fs-base: 1.0625rem;  /* 17 — основной текст */
  --fs-lg:   1.25rem;    /* 20 — лид, подзаголовки карточек */
  --fs-xl:   1.625rem;   /* 26 — h3 */
  --fs-2xl:  2.125rem;   /* 34 — h2, цифры в строке */
  --fs-3xl:  clamp(2.25rem, 4.6vw, 3.625rem); /* 36–58 — h1 */

  --lh-tight: 1.05;
  --lh-snug:  1.25;
  --lh-text:  1.55;

  /* ---------- Отступы — шаг 8 ---------- */
  --s-1:  0.5rem;   /* 8  */
  --s-2:  0.75rem;  /* 12 */
  --s-3:  1rem;     /* 16 */
  --s-4:  1.5rem;   /* 24 */
  --s-5:  2rem;     /* 32 */
  --s-6:  3rem;     /* 48 */
  --s-7:  4rem;     /* 64 */
  --s-8:  6rem;     /* 96 */

  --container: 1180px;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);

  /* ---------- Строчка — единственный декоративный приём ---------- */
  --stitch-chalk:  2px dashed var(--c-chalk);
  --stitch-thread: 1px dashed var(--c-thread);
  --stitch-gap:    6px;   /* inset для внутренней рамки карточки */

  /* Сетка лекальной бумаги — фон первого экрана и врезок */
  --grid-step: 40px;
  --grid-line: rgba(28, 27, 25, .07);

  /* ---------- Радиусы и тени ---------- */
  --r-0: 0;      /* карточки, поля — прямые углы, как крой */
  --r-btn: 3px;  /* кнопки — едва скруглены */
  --shadow-card: 0 1px 0 rgba(28, 27, 25, .06);

  /* ---------- Движение ---------- */
  --t-fast: 150ms ease;
  --t-base: 220ms ease;
}

/* ============================================================
   База
   ============================================================ */

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

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--c-byaz);
  color: var(--c-ink);
  font-family: var(--f-text);
  font-size: var(--fs-base);
  line-height: var(--lh-text);
  font-feature-settings: "kern", "liga";
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--f-display);
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--c-ink);
  margin: 0 0 var(--s-3);
}
h1 { font-size: var(--fs-3xl); line-height: var(--lh-tight); }
h2 { font-size: var(--fs-2xl); line-height: 1.1; }
h3 { font-size: var(--fs-xl);  line-height: var(--lh-snug); }
h4 { font-family: var(--f-text); font-weight: 600; font-size: var(--fs-lg); letter-spacing: 0; }

p { margin: 0 0 var(--s-3); color: var(--c-ink-2); max-width: 66ch; }
.lead { font-size: var(--fs-lg); color: var(--c-ink-2); }
small, .muted { color: var(--c-muted); font-size: var(--fs-sm); }

a { color: var(--c-chalk); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; transition: color var(--t-fast); }
a:hover { color: var(--c-chalk-2); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--c-chalk);
  outline-offset: 2px;
}

img, video { max-width: 100%; height: auto; display: block; }

/* ============================================================
   Раскладка
   ============================================================ */

.container { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }

.section { padding-block: var(--s-7); }
.section--tight { padding-block: var(--s-6); }
.section--paper { background: var(--c-paper); }
.section--byaz2 { background: var(--c-byaz-2); }

/* Фон лекальной бумаги — первый экран, врезки */
.grid-paper {
  background-color: var(--c-byaz);
  background-image:
    repeating-linear-gradient(0deg,  transparent 0 calc(var(--grid-step) - 1px), var(--grid-line) calc(var(--grid-step) - 1px) var(--grid-step)),
    repeating-linear-gradient(90deg, transparent 0 calc(var(--grid-step) - 1px), var(--grid-line) calc(var(--grid-step) - 1px) var(--grid-step));
}

/* ============================================================
   Строчка — разделители, рамки, подчёркивания
   ============================================================ */

/* Горизонтальный разделитель-строчка */
.stitch { border: 0; border-top: var(--stitch-chalk); margin: var(--s-5) 0; }

/* Строка цифр под заголовком: пунктир сверху и снизу */
.figures {
  display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-5);
  padding: var(--s-3) 0;
  border-top: var(--stitch-chalk);
  border-bottom: var(--stitch-chalk);
  margin: 0 0 var(--s-5);
}
.figures > div { font-size: var(--fs-sm); color: var(--c-muted); }
.figures b {
  display: block;
  font-family: var(--f-display); font-weight: 500;
  font-size: var(--fs-2xl); line-height: 1; color: var(--c-ink);
  margin-bottom: 4px;
}

/* Карточка с внутренней строчкой нитью */
.card {
  position: relative;
  background: var(--c-paper);
  border: 1px solid var(--c-line);
  border-radius: var(--r-0);
  padding: var(--s-4);
  box-shadow: var(--shadow-card);
}
.card::before {
  content: "";
  position: absolute; inset: var(--stitch-gap);
  border: var(--stitch-thread);
  opacity: .55;
  pointer-events: none;
}
.card > * { position: relative; }

/* Бирка — короткая подпись к кейсу: состав, тираж, срок */
.tag {
  display: inline-block;
  font-size: var(--fs-xs); color: var(--c-ink-2);
  padding: 4px 10px;
  border: var(--stitch-thread);
  background: var(--c-paper);
}

/* ============================================================
   Кнопки и поля
   ============================================================ */

.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 0 var(--s-4);
  font-family: var(--f-text); font-weight: 600; font-size: var(--fs-base);
  text-decoration: none; cursor: pointer;
  border-radius: var(--r-btn);
  border: 1px solid transparent;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.btn--primary { background: var(--c-chalk); color: var(--c-paper); }
.btn--primary:hover { background: var(--c-chalk-2); color: var(--c-paper); }
.btn--ghost { background: transparent; color: var(--c-ink); border-color: var(--c-ink); }
.btn--ghost:hover { background: var(--c-ink); color: var(--c-byaz); }
.btn--link { min-height: auto; padding: 0; color: var(--c-chalk); font-weight: 600; border: 0; }

label { display: block; font-size: var(--fs-sm); font-weight: 500; color: var(--c-ink); margin-bottom: var(--s-1); }

input[type="text"], input[type="email"], input[type="tel"], select, textarea {
  width: 100%; min-height: 48px;
  padding: 0 var(--s-3);
  font: inherit; color: var(--c-ink);
  background: var(--c-paper);
  border: 1px solid var(--c-line);
  border-radius: var(--r-0);
  transition: border-color var(--t-fast);
}
textarea { padding: var(--s-2) var(--s-3); min-height: 120px; }
input:hover, select:hover, textarea:hover { border-color: var(--c-muted); }
input:focus, select:focus, textarea:focus { border-color: var(--c-chalk); }

.field-error { color: var(--c-thread); font-size: var(--fs-sm); margin-top: var(--s-1); }

/* Вариант ответа квиза — карточка-радио */
.choice {
  display: block; cursor: pointer;
  background: var(--c-paper);
  border: 1px solid var(--c-line);
  padding: var(--s-3) var(--s-4);
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.choice:hover { border-color: var(--c-muted); }
.choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice:has(input:checked) { border-color: var(--c-chalk); box-shadow: inset 0 0 0 1px var(--c-chalk); }
.choice:has(input:focus-visible) { outline: 3px solid var(--c-chalk); outline-offset: 2px; }
.choice__title { font-weight: 600; display: block; }
.choice__hint { color: var(--c-muted); font-size: var(--fs-sm); }

/* ============================================================
   Движение
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ============================================================
   Мобильные
   ============================================================ */

@media (max-width: 860px) {
  :root { --s-7: 3rem; --s-8: 4rem; }
  .figures { gap: var(--s-3) var(--s-4); }
  .figures b { font-size: var(--fs-xl); }
}
