/* ДОКУМЕНТ: каркас юридических страниц (сейчас — /privacy).

   Раньше политика была колонкой 720px посреди пустой бумаги: строки по 88
   знаков, h2 18px против текста 17px, реквизиты в абзаце, единственное действие
   (отозвать согласие) — инлайн-ссылкой в седьмом разделе. Текст документа
   юридический и не меняется ни в одном слове, поэтому здесь только подача:

   · сверху «паспорт данных» — штамп оператора, полоса фактов (каждый ведёт
     в раздел, где он сказан дословно) и схема «куда уходят данные»;
   · сам документ — лист: слева липкое оглавление 01–08, текст строкой
     65–70 знаков, справа поля с пометками (как на полях печатного издания);
   · ключевые запреты — выноски и маркер по тексту, раздел «Ваши права» —
     чёрная плита с крупными кнопками.

   BE-1 (12.11.2026): «бланк» с рамками 2 px и офсетными тенями ушёл. Паспорт
   данных — белый документ (рамка чернилами остаётся только у документов),
   печать — жёлтая, клина за штампом нет, факты — карточки (одна чёрная),
   оглавление и выноски — белые карточки с мягкой тенью, «Ваши права» —
   чёрная плита. Текст — Onest 18/19 чернилами, номера разделов — моно.

   Подключается после frame.css (токены, шапка, подвал, кнопки). site.css
   на документе не нужен: свои заголовки и абзацы, глобальные правила сайта
   (подгонка H2, счётчик разделов) сюда не относятся. */

*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--t-body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit}
::selection{background:var(--y);color:var(--ink)}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.doc-wrap{max-width:var(--frame-w);margin:0 auto;padding:0 var(--frame-pad)}

/* Прогресс чтения: 3px жёлтым под шапкой, идёт по тексту документа. */
.rprog{position:absolute;left:0;right:0;top:100%;height:3px;pointer-events:none}
.rprog i{display:block;height:100%;background:var(--y);transform-origin:0 50%;transform:scaleX(0)}

/* ── Первый экран: заголовок и штамп оператора ─────────────────── */
.doc-hero{position:relative;padding:48px 0 0}
/* BE-1: клина за штампом нет — паспорт данных стоит на бумаге, как документ. */
.doc-hero-in{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px 64px;align-items:start}
.doc-hero > .doc-wrap{position:relative;z-index:1}
.doc-kick{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:20px;font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:var(--ls-label);line-height:1.25;text-transform:uppercase;color:var(--ink)}
.doc-kick b{color:var(--ink);background:var(--y);padding:4px 9px;border-radius:5px;letter-spacing:.06em}
.doc-hero h1{font-family:var(--grot);font-weight:var(--fw-h);font-size:clamp(40px,5.2vw,68px);line-height:1.07;letter-spacing:var(--h1-ls);text-wrap:balance;overflow-wrap:break-word}
/* Мета: сплошной цвет вместо прозрачности .65 (было 2,9:1, ссылка 3,4:1). */
.doc-hero .muted{margin-top:26px;padding-top:16px;border-top:1px solid var(--line-2);max-width:54ch;font-size:var(--t-small);line-height:1.6;color:var(--muted)}
.doc-hero .muted a{color:var(--ink);text-decoration-color:var(--y);text-decoration-thickness:2px;text-underline-offset:3px}

/* Паспорт данных — документ: белый, рамка 2 px чернилами, радиус 20, мягкая
   тень, лёгкий наклон документа; в углу — жёлтая печать. */
.doc-pass{position:relative;margin-top:6px;background:var(--white);border:2px solid var(--ink);border-radius:var(--r-card);box-shadow:var(--sh-lift);rotate:var(--rot-doc)}
.doc-pass-hd{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 14px;padding:16px 20px;border-bottom:2px solid var(--ink)}
.doc-pass-hd b{font-family:var(--grot);font-weight:800;font-size:var(--t-h4);line-height:1.1;letter-spacing:-.015em}
.doc-pass-hd span{padding:5px 9px;border-radius:5px;background:var(--ink);color:var(--y);font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:var(--ls-label);line-height:1.2;text-transform:uppercase}
.doc-pass dl > div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:4px 14px;align-items:baseline;padding:12px 20px}
.doc-pass dl > div + div{border-top:1px solid var(--line)}
.doc-pass dt{font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--muted)}
.doc-pass dd{font-size:var(--t-body);font-weight:600;line-height:1.4;color:var(--ink);overflow-wrap:anywhere}
.doc-pass dd.num{font-family:var(--num);font-weight:700;letter-spacing:.04em}
.doc-pass dd a{color:var(--ink);text-decoration-color:var(--y);text-decoration-thickness:2px;text-underline-offset:4px;padding-block:11px}
@media (hover:hover) and (pointer:fine){.doc-pass dd a:hover{color:var(--ink);text-decoration-color:var(--ink)}}
/* Печать — круглый штамп ОТК: жёлтый диск в тройном кольце (чернила — жёлтый —
   чернила, как у .stamp), надпись по кругу моно 15 px, «152-ФЗ» — Onest 900,
   поворот штампа −6°. Кегль надписи — не мельче 15 px и на телефоне (лист 1:1). */
.doc-seal{position:absolute;bottom:-56px;right:-22px;width:140px;height:140px;color:var(--ink);transform:rotate(var(--rot-stamp));filter:drop-shadow(0 10px 12px rgba(0,0,0,.22));pointer-events:none}
.doc-seal .disc{fill:var(--y)}
.doc-seal text{font-family:var(--num);font-weight:600;fill:currentColor}
.doc-seal .big{font-family:var(--grot);font-weight:900}

/* Ряд из четырёх фактов: только то, что дословно сказано в тексте. Факт —
   белая карточка-ссылка на раздел, где он стоит; цифра Onest 900 с
   маркером-подчёркиванием; одна карточка чёрная — срок ответа, цифра жёлтая. */
.doc-facts{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:56px}
.doc-facts li{display:flex}
.doc-fact{flex:1;display:flex;flex-direction:column;gap:14px;padding:24px 24px 22px;border-radius:var(--r-card);background:var(--white);box-shadow:var(--sh-card);text-decoration:none;color:var(--ink);transition:transform var(--d-1) var(--ease),box-shadow var(--d-1)}
.doc-fact b{align-self:flex-start;padding:0 .05em;font-family:var(--grot);font-weight:900;font-size:var(--t-num);line-height:.9;letter-spacing:var(--num-ls);background:linear-gradient(transparent 66%,var(--y) 66%,var(--y) 92%,transparent 92%)}
.doc-fact.acc{background:var(--black);color:var(--on-dark);box-shadow:var(--sh-card-ink)}
.doc-fact.acc b{color:var(--y);background:none}
.doc-fact span{max-width:26ch;font-size:var(--t-small);line-height:1.45;color:var(--muted)}
.doc-fact.acc span{color:var(--muted-d)}
.doc-fact small{margin-top:auto;font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink)}
.doc-fact.acc small{color:var(--y)}
.doc-fact small::after{content:" \2193";transition:transform var(--d-1)}
.doc-fact.acc:focus-visible{outline-color:var(--ink)}
@media (hover:hover) and (pointer:fine){.doc-fact:hover{transform:translateY(-3px);box-shadow:var(--sh-lift)}.doc-fact.acc:hover{box-shadow:var(--sh-card-ink)}}
.doc-fact:active{transform:translateY(1px)}

/* ── Схема «куда уходят данные» ────────────────────────────────── */
.doc-flow{margin-top:var(--sec-m);padding:var(--sec-m) 0;background:var(--stone)}
.doc-flow-hd{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 28px;margin-bottom:34px}
.doc-flow-hd b{font-family:var(--grot);font-weight:800;font-size:clamp(28px,3.4vw,44px);line-height:1;letter-spacing:-.03em}
.doc-flow-hd b em{font-style:normal;color:var(--ink)}
.doc-flow-hd span{font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--muted)}
.doc-flow svg{display:block;width:100%;height:auto;overflow:visible}
.doc-flow .fl-n{display:none;max-width:340px}
.fl text{font-family:var(--num);font-size:13px;fill:var(--muted)}
.fl .t{font-family:var(--grot);font-weight:800;font-size:17px;letter-spacing:-.01em;fill:var(--ink)}
.fl .lb{font-weight:600;font-size:13px;letter-spacing:.04em;fill:var(--ink)}
.fl rect{rx:8px}
.fl .box{fill:var(--white);stroke:var(--ink);stroke-width:2}
.fl .ink{fill:var(--black);stroke:var(--black);stroke-width:2}
.fl .ink-t{fill:var(--on-dark)}
.fl .ink-s{fill:var(--muted-d)}
.fl .site{fill:none;stroke:var(--ink);stroke-width:2;stroke-dasharray:8 6;rx:14px}
/* Узкая раскладка (телефон): лист 288 единиц — на 320 он 1:1, шире — крупнее;
   подписи не мельче 15 px, второстепенные строки — Onest (уже моно). */
.fl.fl-n text{font-size:15px}
.fl.fl-n .s{font-family:var(--font)}
.fl.fl-n .t{font-size:17px}
.fl.fl-n .lb,.fl.fl-n .rl{font-size:15px}
.fl .ln{fill:none;stroke:var(--ink);stroke-width:2}
.fl .ln.red{stroke:var(--ink);stroke-dasharray:9 6}
.fl .hd{fill:var(--ink)}
.fl .hd.red{fill:var(--ink)}
.fl .rbox{fill:var(--y);stroke:var(--ink);stroke-width:2}
.fl .rt{fill:var(--ink)}
.fl .rl{fill:var(--ink);font-weight:700;font-size:13px;letter-spacing:.03em}
.fl .chip{fill:var(--stone)}

/* ── Лист документа: оглавление, текст, поля ───────────────────── */
.doc{display:grid;grid-template-columns:220px minmax(0,1fr);gap:0 48px;max-width:var(--frame-w);margin:0 auto;padding:var(--sec-m) var(--frame-pad)}
.doc-side{position:relative;min-width:0}
.doc-toc{position:sticky;top:calc(var(--hdr-pin) + 24px);overflow:hidden;background:var(--white);border-radius:var(--r-card);box-shadow:var(--sh-card)}
.doc-toc-hd{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:16px 16px 14px;border-bottom:1px solid var(--line)}
.doc-toc-hd b{font-family:var(--grot);font-weight:800;font-size:var(--t-small);letter-spacing:-.01em}
.doc-toc-hd span{font-family:var(--num);font-size:var(--t-meta);font-weight:700;letter-spacing:.06em;color:var(--ink);white-space:nowrap}
.doc-toc ol{list-style:none}
.doc-toc li + li{border-top:1px solid var(--line)}
.doc-toc a{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;min-height:44px;padding:11px 14px;text-decoration:none;color:var(--muted);
  font-size:var(--t-small);font-weight:600;line-height:1.35;transition:background-color var(--d-1),color var(--d-1),box-shadow var(--d-1)}
.doc-toc a i{font-style:normal;font-family:var(--num);font-size:var(--t-meta);font-weight:600;line-height:1;padding:3px 0;border-radius:4px;text-align:center;color:var(--ink);transition:background-color var(--d-1),color var(--d-1)}
.doc-toc .sub a{padding-left:30px;font-weight:400;min-height:40px}
.doc-toc .sub a i{font-weight:400}
.doc-toc a[aria-current]{color:var(--ink);background:var(--stone);box-shadow:inset 4px 0 0 var(--ink)}
.doc-toc a[aria-current] i{background:var(--y);color:var(--ink)}
@media (hover:hover) and (pointer:fine){.doc-toc a:hover{color:var(--ink);background:var(--stone)}}

/* Текстовая колонка и поля: пометка (.doc-note) обтекается справа и уходит
   на поле отрицательным отступом — стоит напротив абзаца, к которому
   относится. Пометки дублируют текст картинкой, поэтому скрыты от чтения
   с экрана: сам текст рядом. */
.doc-body{min-width:0;padding-right:240px}
.doc-now{display:none}
.doc-sec{padding-top:36px;margin-top:64px;border-top:1px solid var(--line-2);scroll-margin-top:calc(var(--hdr-pin) + 16px)}
.doc-sec:first-of-type{margin-top:0}
.doc-sec h2{display:flex;align-items:baseline;gap:14px;margin-bottom:22px;font-family:var(--grot);font-weight:var(--fw-h);font-size:clamp(26px,2.6vw,34px);line-height:1.08;letter-spacing:var(--h2-ls);text-wrap:balance}
.doc-n{flex:none;align-self:flex-start;margin-top:.12em;padding:5px 9px;border-radius:5px;background:var(--y);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:.04em;line-height:1.25}
/* Абзац — Onest 18 (19 от 1024) чернилами: строка 65–70 знаков. */
.doc-sec p,.doc-data li{font-size:18px;line-height:1.7;color:var(--ink);text-wrap:pretty}
@media(min-width:1024px){.doc-sec p,.doc-data li{font-size:19px;line-height:1.65}}
.doc-sec p{max-width:38em}
.doc-sec p ~ p{margin-top:16px}
.doc-sec p a{color:var(--ink);text-decoration-color:var(--y);text-decoration-thickness:2px;text-underline-offset:3px}
@media (hover:hover) and (pointer:fine){.doc-sec p a:hover{text-decoration-thickness:2px}}

/* Маркер по тексту: ключевой запрет в абзаце, как выделение в печатном экземпляре. */
.doc-ban{color:var(--ink);font-weight:600;background:linear-gradient(to top,var(--y) 0 .45em,transparent .45em);-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* Выноска: абзац-запрет — белая карточка с жёлтой чертой слева и подписью. */
.doc-sec p.doc-callout{margin-top:24px;padding:24px 26px 24px 26px;background:var(--white);border-left:6px solid var(--y);border-radius:var(--r-md);box-shadow:var(--sh-card);color:var(--ink)}
.doc-sec p.doc-callout + p{margin-top:28px}
.doc-callout::before{content:attr(data-label);display:block;margin-bottom:10px;font-family:var(--grot);font-weight:800;font-size:var(--t-h4);line-height:1.15;letter-spacing:-.01em;color:var(--ink)}

/* Раздел 2: перечень — таблицей «откуда / какие данные», источник — меткой
   из data-src (текст пункта не трогаем). Метка стоит у первого пункта группы. */
.doc-data-hd{display:grid;grid-template-columns:104px minmax(0,1fr);gap:20px;margin-top:6px;padding:0 0 10px;border-bottom:2px solid var(--ink);font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--muted)}
.doc-data{list-style:none}
.doc-data li{display:grid;grid-template-columns:104px minmax(0,1fr);gap:20px;align-items:start;padding:14px 0;color:var(--ink)}
.doc-data li + li{border-top:1px solid var(--line-2)}
.doc-data li[data-src="форма"] + li[data-src="форма"]{border-top-color:transparent;background:linear-gradient(var(--line-2),var(--line-2)) 124px 0 / calc(100% - 124px) 1px no-repeat}
.doc-data li::before{content:attr(data-src);justify-self:start;margin-top:4px;padding:3px 8px;border-radius:5px;background:var(--ink);color:var(--y);font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:var(--ls-label);line-height:1.3;text-transform:uppercase}
.doc-data li[data-src="форма"] + li[data-src="форма"]::before{visibility:hidden}

/* Перечень раздела 2 — на всю ширину листа, вместе с полем: это таблица. */
@media(min-width:1181px){.doc-data-hd,.doc-data{margin-right:-240px}}

/* Пометки на полях. */
.doc-note{float:right;clear:right;width:200px;margin:6px -240px 18px 0;font-family:var(--num);font-size:var(--t-meta);line-height:1.45;letter-spacing:.02em;color:var(--muted)}
.doc-note small{font-size:var(--t-meta)}
.doc-note > small{display:block;margin-bottom:8px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
/* бирка: название узла и где он — маленькая белая карточка */
.doc-tag{display:block;padding:12px 14px;border-radius:var(--r-md);background:var(--white);box-shadow:var(--sh-card)}
.doc-tag b{display:block;font-family:var(--grot);font-weight:800;font-size:var(--t-small);line-height:1.2;letter-spacing:-.005em;color:var(--ink)}
.doc-tag span{display:block;margin-top:6px}
.doc-tag.red{box-shadow:inset 4px 0 0 var(--y),var(--sh-card)}
.doc-tag.red b{color:var(--ink)}
.doc-tag.red span{color:var(--ink);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.doc-tag + .doc-tag{margin-top:10px}
/* перечёркнутые фишки: чего нет */
.doc-no{display:flex;flex-wrap:wrap;gap:8px}
.doc-no s{position:relative;padding:5px 9px;border:1.5px solid var(--ink);border-radius:6px;background:var(--white);font-weight:600;letter-spacing:0;text-transform:uppercase;text-decoration:none;color:var(--ink)}
.doc-no s::after{content:"";position:absolute;left:-3px;right:-3px;top:50%;height:2px;background:var(--ink);transform:rotate(-4deg)}
/* маршрут: узлы через стрелку */
.doc-route{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0}
.doc-route span{padding:5px 9px;border:1.5px solid var(--ink);border-radius:6px;background:var(--white);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.doc-route span.ink{background:var(--ink);color:var(--y)}
.doc-route i{font-style:normal;padding:0 7px;color:var(--ink);font-weight:700}
/* стрелка едет вместе со следующим узлом: в конце строки она не висит */
.doc-route b{display:inline-flex;align-items:center;white-space:nowrap;font-weight:inherit}
/* галочка согласия */
/* Поля и зазор — под моно 15 px: «ст. 6 ч. 1 п. 1» (неразрывно) входит в заметку на полях шириной 200 px. */
.doc-check{display:grid;grid-template-columns:30px minmax(0,1fr);gap:4px 10px;align-items:center;padding:12px 12px;border-radius:var(--r-md);background:var(--white);box-shadow:var(--sh-card)}
.doc-check svg{width:30px;height:30px}
.doc-check b{font-family:var(--grot);font-weight:800;font-size:var(--t-small);letter-spacing:-.005em;color:var(--ink)}
.doc-check span{grid-column:2;letter-spacing:0}
/* журнал без контактов: строки, закрытые плашкой */
.doc-redact{display:flex;flex-direction:column;gap:7px;padding:12px 14px;border-radius:var(--r-md);background:var(--white);box-shadow:var(--sh-card)}
.doc-redact span{display:grid;grid-template-columns:minmax(0,auto) minmax(28px,1fr);gap:10px;align-items:center;color:var(--ink)}
.doc-redact span::after{content:"";height:13px;border-radius:2px;background:var(--ink)}
.doc-redact small{margin-top:4px;color:var(--ink);font-weight:600;letter-spacing:.06em;text-transform:uppercase}

/* Раздел 6: срок — шкала из трёх узлов. */
.doc-time{list-style:none;position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px;margin-top:30px;padding-top:26px}
.doc-time::before{content:"";position:absolute;top:8px;left:8px;right:calc((100% - 36px) / 3 - 8px);height:2px;background:var(--ink)}
.doc-time li{position:relative;font-family:var(--num);font-size:var(--t-meta);line-height:1.45;letter-spacing:.02em;color:var(--muted)}
.doc-time li::before{content:"";position:absolute;top:-25px;left:0;width:16px;height:16px;border-radius:4px;background:var(--paper);border:2px solid var(--ink)}
.doc-time li b{display:block;margin-bottom:4px;font-family:var(--grot);font-weight:800;font-size:var(--t-small);letter-spacing:-.005em;color:var(--ink)}
.doc-time li.end::before{width:18px;height:18px;top:-26px;border-radius:2px;background:var(--y);border-color:var(--ink);transform:skewX(var(--sk))}
.doc-time li.end b{color:var(--ink)}
.doc-time li:nth-child(2)::after{content:"";position:absolute;top:-21px;right:12px;width:10px;height:10px;border-top:2px solid var(--ink);border-right:2px solid var(--ink);transform:rotate(45deg)}

/* Раздел 7: права — чернильная плашка через текст и поле, с крупным сроком
   и кнопками от 56px. */
.doc-sec.doc-rights{clear:both;position:relative;margin-right:-240px;padding:0;border-top:0;border-radius:var(--r-plate);background:var(--black);color:var(--on-dark);box-shadow:0 60px 100px -50px rgba(18,18,18,.6)}
.doc-rights-in{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:0 44px;padding:44px 44px 48px}
.doc-rights-in > *{grid-column:1}
.doc-rights h2{color:var(--on-dark)}
.doc-rights .doc-n{box-shadow:none}
.doc-rights p{color:var(--muted-d)}
.doc-rights p a{color:var(--on-dark);text-decoration-color:var(--y);text-decoration-thickness:2px}
.doc-rights :focus-visible{outline-color:var(--y)}
.doc-rights-num{grid-column:2;grid-row:1 / span 3;align-self:start;padding-top:4px;border-top:1px solid var(--line-d)}
.doc-rights-num b{display:block;margin-top:10px;font-family:var(--grot);font-weight:900;font-size:clamp(120px,12vw,168px);line-height:.8;letter-spacing:-.06em;color:var(--y)}
.doc-rights-num span{display:block;margin-top:14px;font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;line-height:1.45;color:var(--muted-d)}
/* Три права — плиты на чёрном с жёлтыми квадратами номеров. */
.doc-rights-list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:28px}
.doc-rights-list li{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px 14px 16px;border-radius:var(--r-md);background:var(--plate);box-shadow:inset 0 0 0 1px var(--line-d);font-family:var(--grot);font-weight:800;font-size:var(--t-small);line-height:1.25;letter-spacing:-.005em;color:var(--on-dark)}
.doc-rights-list i{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--y);font-style:normal;font-family:var(--grot);font-size:var(--t-meta);font-weight:900;letter-spacing:-.01em;color:var(--ink)}
.doc-acts{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:16px;margin-top:32px}
.doc-acts .btn{min-height:56px}
/* BE-1: на чёрном жёлтая кнопка — с жёлтой рамкой и без тени (тень на чёрном не видна). */
.doc-acts .btn.prim{border-color:var(--y);box-shadow:none}
/* Вторая кнопка на чернильной плашке — контуром бумаги, как .btn.dark:
   чернилами на чернилах её не было видно. */
.doc-acts .btn:not(.prim){background:transparent;border-color:var(--on-dark);color:var(--on-dark)}
@media (hover:hover) and (pointer:fine){.doc-acts .btn:not(.prim):hover{background:var(--y);border-color:var(--y);color:var(--ink)}}
.doc-acts .btn:not(.prim):active{background:var(--y-hover);border-color:var(--y-hover);color:var(--ink)}

/* Раздел 8 — сноска в конце листа. */
.doc-sec.doc-end p{font-size:var(--t-body)}

/* ── Ширины ─────────────────────────────────────────────────────── */
/* 981–1180: поля уже не помещаются — пометки встают в текст полосой. */
@media(max-width:1180px){
  .doc{grid-template-columns:200px minmax(0,1fr);gap:0 40px}
  .doc-body{padding-right:0}
  .doc-note{float:none;width:auto;max-width:44rem;margin:26px 0 20px}
  .doc-sec h2 + .doc-note{margin-top:0}
  .doc-note.dup{display:none}
  .doc-note .doc-tag{display:inline-block;vertical-align:top;max-width:100%}
  .doc-note .doc-tag + .doc-tag{margin:0 0 0 10px}
  .doc-check,.doc-redact{display:inline-grid;max-width:100%}
  .doc-redact{display:inline-flex;min-width:260px}
  .doc-sec.doc-rights{margin-right:0}
}
@media(max-width:980px){
  .doc-hero-in{grid-template-columns:minmax(0,1fr);gap:44px}
  .doc-pass{max-width:560px}
  .doc-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .doc-flow .fl-w{display:none}
  .doc-flow .fl-n{display:block}
  .doc{grid-template-columns:minmax(0,1fr);padding-top:var(--sec-m)}
  .doc-toc{position:static;max-width:560px;margin-bottom:var(--sec-m)}
  /* Где я в документе: строка под шапкой с номером текущего раздела,
     нажатие — к оглавлению. Выезжает из-под шапки, когда оглавление ушло
     с экрана (скрипт ставит .on); без скрипта её нет — оглавление в начале. */
  .doc-now{position:fixed;left:0;right:0;top:var(--now-top,var(--hdr-h));z-index:45;display:flex;align-items:center;gap:12px;min-height:48px;padding:0 var(--frame-pad);
    background:rgba(250,250,247,.96);border-bottom:1px solid var(--line);box-shadow:0 10px 20px -16px rgba(18,18,18,.35);text-decoration:none;color:var(--ink);
    transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform var(--d-1) var(--ease),opacity var(--d-1),visibility 0s var(--d-1),translate .22s var(--ease)}
  .doc-now.on{transform:none;opacity:1;visibility:visible;transition:transform var(--d-1) var(--ease),opacity var(--d-1),translate .22s var(--ease)}
  /* Шапка сжата (frame.css, класс hdr-sm) — строка поднимается вслед за её чертой. */
  html.hdr-sm .doc-now{translate:0 calc(-1 * var(--hdr-cut))}
  .doc-now i{font-style:normal;padding:4px 8px;border-radius:5px;background:var(--y);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:.04em;line-height:1.25}
  .doc-now i:empty{display:none}
  .doc-now span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--grot);font-weight:800;font-size:var(--t-small);letter-spacing:-.005em}
  .doc-now b{flex:none;margin-left:auto;font-family:var(--num);font-size:var(--t-meta);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink)}
  .doc-sec{scroll-margin-top:calc(var(--hdr-pin) + 64px)}
}
@media(max-width:640px){
  .doc-hero{padding-top:32px}
  .doc-hero h1{font-size:clamp(32px,9.2vw,40px);line-height:1.1;letter-spacing:var(--h1-ls-m)}
  /* печать выступает над паспортом на 62 px — паспорт ниже, чтобы она не легла на строку редакции */
  .doc-pass{margin-top:28px;margin-right:8px;rotate:none}
  .doc-pass-hd{padding-right:96px}
  .doc-pass dl > div{grid-template-columns:minmax(0,1fr);padding:11px 16px}
  .doc-seal{bottom:auto;top:-62px;right:-14px;width:132px;height:132px}
  .doc-facts{margin-top:44px}
  .doc-facts{gap:10px}
  .doc-fact{padding:18px 16px 16px;gap:10px;border-radius:16px}
  .doc-fact b{font-size:56px}
  .doc-flow-hd{margin-bottom:24px}
  .doc-flow .fl-n{max-width:340px}
  .doc-sec{margin-top:48px;padding-top:28px}
  .doc-sec h2{gap:12px;font-size:clamp(22px,6.4vw,26px)}
  .doc-sec p,.doc-data li{font-size:17px;line-height:1.65}
  /* Таблица «откуда / какие данные» — стопкой карточек, у каждой своя метка. */
  .doc-data-hd{display:none}
  .doc-data{border-bottom:0;display:flex;flex-direction:column;gap:10px}
  .doc-data li,.doc-data li + li,.doc-data li[data-src="форма"] + li[data-src="форма"]{display:block;padding:14px 16px 16px;border-radius:var(--r-md);background:var(--white);box-shadow:var(--sh-card)}
  .doc-data li::before,.doc-data li[data-src="форма"] + li[data-src="форма"]::before{display:table;visibility:visible;margin:0 0 10px}
  .doc-sec p.doc-callout{padding:18px 16px 18px 16px;border-left-width:5px}
  .doc-note .doc-tag + .doc-tag{margin:10px 0 0}
  .doc-note .doc-tag{display:block}
  .doc-redact{display:flex;min-width:0}
  .doc-check{display:grid}
  .doc-time{grid-template-columns:minmax(0,1fr);gap:22px;padding:0 0 0 34px}
  .doc-time::before{top:8px;bottom:12px;left:7px;right:auto;width:2px;height:auto}
  .doc-time li::before{top:2px;left:-34px}
  .doc-time li:nth-child(2)::after{top:auto;bottom:-16px;right:auto;left:-31px;transform:rotate(135deg)}
  /* линия кончается на жёлтом узле: ниже него её закрывает бумага */
  .doc-time li.end{box-shadow:-34px 18px 0 var(--paper)}
  .doc-sec.doc-rights{margin:48px calc(-1 * var(--frame-pad)) 0;border-radius:0;box-shadow:none}
  .doc-rights-in{grid-template-columns:minmax(0,1fr);padding:36px var(--frame-pad) 40px}
  .doc-rights-num{grid-column:1;grid-row:auto;display:flex;align-items:flex-end;gap:16px;margin-top:28px;padding-top:18px}
  .doc-rights-num b{margin-top:0;font-size:112px}
  .doc-rights-num span{margin-top:0;padding-bottom:6px}
  .doc-rights-list{grid-template-columns:minmax(0,1fr)}
  .doc-rights-list{gap:8px}
  .doc-rights-list li{flex-direction:row;align-items:center;gap:12px}
  .doc-acts .btn{width:100%}
  .doc-rights-num{order:1}
  .doc-acts{order:2}
}
/* до 374 px колонка факта уже неразрывного «на рассмотрение» — слово от 12 букв
   переносится по слогам, карточка не выходит из своей ячейки и за экран */
@media(max-width:374px){.doc-fact span{hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:12 5 5}}

/* ── Движение ──────────────────────────────────────────────────── */
/* Оглавление подсвечивает раздел (скрипт ставит aria-current); прогресс
   чтения и схема — по прокрутке, только где это поддерживается и только
   без «уменьшить движение». Без поддержки — схема сразу целиком. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rprog{display:none}
  .doc-fact,.doc-toc a,.doc-toc a i,.doc-fact small::after{transition:none}
}
@media(prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()) and (timeline-scope:--doc){
    html:has(.doc-body){timeline-scope:--doc}
    .doc-body{view-timeline:--doc block}
    .rprog i{animation:doc-prog linear both;animation-timeline:--doc;animation-range:contain 0% contain 100%}
  }
  /* Схема прорисовывается слева направо (на телефоне — сверху вниз), когда
     входит в экран: класс .in ставит скрипт. Без скрипта схема сразу целиком. */
  .js .fl .lane{transition:clip-path .7s cubic-bezier(.65,0,.35,1)}
  .js .fl .lane.l2{transition-delay:.18s}
  .js .fl .lane.l3{transition-delay:.36s}
  .js .fl-w .lane:not(.in){clip-path:inset(0 100% 0 0)}
  .js .fl-n .lane:not(.in){clip-path:inset(0 0 100% 0)}
}
@keyframes doc-prog{to{transform:scaleX(1)}}

/* ── Печать ───────────────────────────────────────────────────── */
/* Документ печатают, чтобы хранить: раздел 7 — не чёрная плита, а светлая
   карточка в рамке чернилами (на бумаге без фона он выходил бледно-серым,
   «10» и подписи — жёлтым и оливковым по белому). Схема «Куда уходят данные»
   — целиком, даже если до неё не докрутили; плашка «Содержание ↑» и тени не
   печатаются; карточки и пункты не рвутся между листами. */
@media print{
  .doc-now{display:none!important}
  .js .fl .lane{clip-path:none!important}
  .doc-pass,.doc-toc,.doc-fact,.doc-sec p.doc-callout{box-shadow:none}
  .doc-pass{rotate:none}
  .doc-seal{filter:none}
  .doc-fact,.doc-toc,.doc-sec p.doc-callout{border:1px solid var(--line-2)}
  .doc-pass,.doc-fact,.doc-note,.doc-sec p.doc-callout,.doc-flow svg,.doc-time,.doc-rights-list li,.doc-rights-num{break-inside:avoid}
  .doc-sec h2{break-after:avoid}
  .doc-sec.doc-rights{margin-right:0;background:var(--white);color:var(--ink);border:2px solid var(--ink);box-shadow:none}
  .doc-rights h2,.doc-rights p,.doc-rights p a{color:var(--ink)}
  .doc-rights .doc-n{box-shadow:inset 0 0 0 1.5px var(--ink)}
  .doc-rights-list li{background:var(--stone);box-shadow:none;color:var(--ink)}
  .doc-rights-num{border-top-color:var(--line-2)}
  .doc-rights-num b{color:var(--ink)}
  .doc-rights-num span{color:var(--muted)}
  .doc-acts .btn{box-shadow:none}
  .doc-acts .btn.prim{border-color:var(--ink)}
  .doc-acts .btn:not(.prim){border-color:var(--ink);color:var(--ink)}
}
