/* Юридические документы «ДВОЕ» — модальность Read.
   Токены унаследованы от главной страницы: они главнее любых внешних каталогов. */

@font-face {
  font-family: 'Golos Text';
  src: url('/assets/fonts/golos-var-cyrillic.woff2') format('woff2');
  font-weight: 400 900; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Golos Text';
  src: url('/assets/fonts/golos-var-latin.woff2') format('woff2');
  font-weight: 400 900; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122, U+2212;
}
@font-face {
  font-family: 'Unbounded';
  src: url('/assets/fonts/unbounded-700-cyrillic.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Unbounded';
  src: url('/assets/fonts/unbounded-700-latin.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+2000-206F, U+2122, U+2212;
}
@font-face {
  font-family: 'Unbounded';
  src: url('/assets/fonts/unbounded-500-cyrillic.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Unbounded';
  src: url('/assets/fonts/unbounded-500-latin.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+2000-206F, U+2122, U+2212;
}
@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/assets/fonts/plexmono-400-cyrillic.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/assets/fonts/plexmono-400-latin.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+2000-206F, U+2122, U+2212;
}

:root {
  --bg: #fbfbfa;
  --ink: #111114;
  --ink-soft: #55555e;
  --rule: rgba(17, 17, 20, 0.12);
  --acc: #2617FF;
  --flag: #B4351C;
  --measure: 68ch;
}

* { box-sizing: border-box; }

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

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: 'Golos Text', system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

/* ── Шапка ───────────────────────────────────────────── */

.top {
  border-bottom: 1px solid var(--rule);
  padding: 18px clamp(20px, 5vw, 64px);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.top a { color: inherit; text-decoration: none; }
.brand {
  font-family: 'Unbounded', sans-serif;
  font-weight: 700;
  font-size: 17px;
  letter-spacing: 0.02em;
}
.brand span { color: var(--acc); }
.top nav {
  display: flex;
  gap: 4px 20px;
  font-size: 14px;
  color: var(--ink-soft);
  flex-wrap: wrap;
}
/* Тап-таргет не меньше 44 px по высоте — иначе на телефоне промахиваются. */
.top nav a { display: inline-block; padding: 11px 0; }
.top nav a:hover { color: var(--acc); }
.top nav a[aria-current='page'] { color: var(--ink); font-weight: 600; }

/* ── Каркас страницы ─────────────────────────────────── */

.wrap {
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(36px, 6vw, 76px) clamp(20px, 5vw, 64px) 96px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 48px;
}
@media (min-width: 1000px) {
  .wrap { grid-template-columns: 232px minmax(0, 1fr); gap: 64px; }
}

/* ── Оглавление ──────────────────────────────────────── */

.toc { font-size: 14px; line-height: 1.45; }

.toc summary {
  font-family: 'Unbounded', sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  cursor: pointer;
  padding: 12px 0;
  border-bottom: 1px solid var(--rule);
  list-style-position: inside;
}
.toc summary:hover { color: var(--acc); }

.toc ol { list-style: none; margin: 14px 0 0; padding: 0; }
.toc li { margin: 0; }
/* Тап-таргет: ссылка оглавления — цель для пальца, а не строка текста. */
.toc a { display: block; padding: 9px 0; color: var(--ink-soft); text-decoration: none; }
.toc a:hover { color: var(--acc); }

@media (min-width: 1000px) {
  .toc { position: sticky; top: 28px; align-self: start; max-height: calc(100vh - 56px); overflow-y: auto; }
  /* На десктопе оглавление всегда раскрыто. Закрытый <details> в современных
     браузерах прячется через ::details-content с content-visibility, а не только
     через display у детей, — поэтому нужны обе строки. */
  .toc::details-content { content-visibility: visible; block-size: auto; }
  .toc summary { display: none; }
  .toc > ol { display: block !important; margin-top: 0; }
  .toc a { padding: 5px 0; }
}

/* ── Текст документа ─────────────────────────────────── */

.doc { max-width: var(--measure); }

.doc h1 {
  font-family: 'Unbounded', sans-serif;
  font-weight: 700;
  font-size: clamp(26px, 4.2vw, 40px);
  line-height: 1.15;
  letter-spacing: -0.015em;
  margin: 0 0 22px;
}

/* Воздуха над заголовком больше, чем под ним: заголовок принадлежит тому, что идёт после. */
.doc h2 {
  font-family: 'Unbounded', sans-serif;
  font-weight: 500;
  font-size: clamp(18px, 2.4vw, 23px);
  line-height: 1.28;
  letter-spacing: -0.01em;
  margin: 72px 0 18px;
  padding-top: 22px;
  border-top: 1px solid var(--rule);
  scroll-margin-top: 24px;
}
.doc h3 {
  font-weight: 600;
  font-size: 17px;
  margin: 40px 0 12px;
  scroll-margin-top: 24px;
}
.doc h2:first-of-type { margin-top: 44px; }

.doc p { margin: 0 0 16px; }
.doc ul, .doc ol { margin: 0 0 18px; padding-left: 24px; }
.doc li { margin-bottom: 8px; }
.doc li::marker { color: var(--ink-soft); }

.doc a { color: var(--acc); text-underline-offset: 3px; text-decoration-thickness: 1px; }

.doc strong { font-weight: 600; }

.doc code {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.9em;
  background: rgba(17, 17, 20, 0.05);
  padding: 1px 5px;
  border-radius: 3px;
}

.doc hr { border: 0; border-top: 1px solid var(--rule); margin: 44px 0; }

/* Цитата = формулировка пункта договора. Единственное место, где включается акцент. */
.doc blockquote {
  margin: 24px 0;
  padding: 2px 0 2px 22px;
  border-left: 2px solid var(--acc);
  color: var(--ink);
}
.doc blockquote p:last-child { margin-bottom: 0; }

/* ── Таблицы ─────────────────────────────────────────── */

.tw { overflow-x: auto; margin: 0 0 24px; }
.doc table { border-collapse: collapse; width: 100%; font-size: 15px; min-width: 460px; }
.doc th, .doc td {
  text-align: left;
  vertical-align: top;
  padding: 11px 14px 11px 0;
  border-bottom: 1px solid var(--rule);
}
.doc th {
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-soft);
  border-bottom-color: var(--ink);
}

/* ── Незаполненные места ─────────────────────────────── */

/* Переносится: длинные плейсхолдеры вроде «[КОНКРЕТНЫЙ АРБИТРАЖНЫЙ СУД СУБЪЕКТА РФ]»
   с nowrap вылезают за экран на 360 px. */
.tbd {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.88em;
  background: rgba(180, 53, 28, 0.09);
  color: var(--flag);
  padding: 1px 6px;
  border-radius: 3px;
  overflow-wrap: anywhere;
}

.notice {
  margin: 0 0 36px;
  padding: 16px 20px;
  background: rgba(38, 23, 255, 0.05);
  border-left: 2px solid var(--acc);
  font-size: 15px;
}
.notice p { margin: 0 0 8px; }
.notice p:last-child { margin-bottom: 0; }

.meta {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--ink-soft);
  margin: 0 0 32px;
}

/* ── Подвал ──────────────────────────────────────────── */

.foot {
  border-top: 1px solid var(--rule);
  padding: 28px clamp(20px, 5vw, 64px) 44px;
  font-size: 13px;
  color: var(--ink-soft);
  line-height: 1.6;
}
.foot a { color: var(--ink-soft); display: inline-block; padding: 6px 0; }
.foot a:hover { color: var(--acc); }
.foot .cols { display: flex; gap: 32px; flex-wrap: wrap; justify-content: space-between; max-width: 1180px; margin: 0 auto; }

/* ── Печать: документы печатают ──────────────────────── */

@media print {
  .top, .toc, .foot, .notice { display: none; }
  body { background: #fff; font-size: 11pt; line-height: 1.45; }
  .wrap { display: block; padding: 0; max-width: none; }
  .doc { max-width: none; }
  .doc h2 { margin-top: 26px; page-break-after: avoid; border-top: 0.5pt solid #999; }
  .doc h3 { page-break-after: avoid; }
  .doc table, .doc blockquote, .doc li { page-break-inside: avoid; }
  .doc a { color: #000; text-decoration: none; }
  .tbd { background: none; border: 0.5pt solid #999; color: #000; }
}
