/* Диагностика потерь прибыли, /diagnostics/. Надстройка над tokens.css + site.css + palette.css.
   Собрана 19.08.2026 по правке Дмитрия: «эту диагностику нужно в дизайне сделать так же,
   как на основном сайте». До этого страница жила своей палитрой (графит и матовое золото),
   своим шрифтом Manrope, своими тенями и скруглениями 16 px и не имела ничего общего
   ни с главной, ни с чек-листом.

   Правила этого файла те же, что у checklist.css:
   1. Ни одного своего цвета. Только переменные палитры, иначе смена palette.css перестанет
      тянуть страницу. С 19.08.2026 на странице ровно два цвета: золото и чернила.
   2. Все классы с префиксом dg-. В site.css заняты .box, .head, .n, .metrics, .quote, .qa.
   3. Шрифты не объявляются: Lora и Inter приходят из tokens.css.
   4. Чёрный это контур и текст, а не заливка. Действующее правило сайта с 17.08.2026,
      подтверждено Дмитрием 19.08.2026 отдельно для этой страницы.
   5. Движение только подтверждает изменение состояния. Пульсаций, свечений и
      подпрыгивающих стрелок на странице нет: DESIGN.md, принцип 5. */

:root{
  /* Правка Дмитрия 19.08.2026: «розовый убери, оставь только золотой и чёрный, и всё в контуре».
     Кирпичный сигнал «дыра» и зелёный «порядок» сняты со страницы полностью. Смысл никуда
     не делся, его несёт контур: золото это «смотреть сюда», чернила это «закрыто», тонкая
     серая линия это «пусто, ответа ещё нет». Тот же язык, что в оглавлении чек-листа. */
  --dg-toc-w:320px;
}

/* ── Шапка сайта ─────────────────────────────────────────────────
   Перенесена из чек-листа один в один, тот в свою очередь снял её с главной.
   Меняешь шапку на главной: продублируй в оба файла. */
.top{border-bottom:1px solid var(--hair);background:var(--paper);position:sticky;top:0;z-index:30}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  min-height:clamp(54px,7vh,70px);padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:center;gap:var(--s3);min-width:0}
.brand .ava{width:clamp(36px,4.6vh,44px);height:clamp(36px,4.6vh,44px);border-radius:50%;
  background:var(--wash);flex:none;object-fit:cover;object-position:50% 12%}
.brand .name{font-family:Lora,Georgia,serif;font-weight:500;font-size:1.1rem;line-height:1.15;display:block}
.brand .desc{display:none;color:var(--text2);font-size:.8rem;line-height:1.3;max-width:52ch;margin-top:2px}
@media(min-width:860px){.brand .desc{display:block}}
.top .act{display:flex;align-items:center;gap:var(--s4);flex:none}
.top .tel{display:none;font-size:1.02rem;color:var(--ink);text-decoration:none;white-space:nowrap}
.top .tel:hover{color:var(--ochre)}
@media(min-width:700px){.top .tel{display:inline}}
.top .btn{padding:11px 22px;font-size:1rem}
.top .btn-p{background:var(--card);color:var(--ink);border:1.5px solid var(--ink);box-shadow:none}
.top .btn-p:hover{background:var(--wash);box-shadow:none}
/* Оглавление слева перекрыло бы шапку: сдвигаем её, когда оглавление раскрыто в колонку. */
@media(min-width:1180px){.top .wrap{max-width:none;padding-left:calc(var(--dg-toc-w) + var(--s4))}}

/* ── Каркас страницы ─────────────────────────────────────────────
   До 1180 одна колонка, выше слева оглавление модулей. Тот же приём, что в чек-листе:
   у страницы один центр внимания, а не сетка дашборда из трёх колонок. */
.dg-page{max-width:1180px;margin:0 auto;padding:0 var(--s4)}
@media(min-width:768px){.dg-page{padding:0 var(--s6)}}
@media(min-width:1180px){
  .dg-page{max-width:1500px;margin:0 auto;
    padding-left:calc(var(--dg-toc-w) + var(--s6));padding-right:var(--s6)}
}
.dg-inner{max-width:820px;margin:0 auto}

/* ── Оглавление модулей слева, от 1180 ───────────────────────────
   Контур несёт состояние модуля: серый это не начат, золотой это в работе,
   зелёный это пройден целиком. Взято из оглавления чек-листа, правка 17.08.2026. */
.dg-toc{display:none;position:fixed;left:0;top:0;width:var(--dg-toc-w);height:100vh;z-index:40;
  background:var(--fog);border-right:1px solid var(--hair);flex-direction:column}
@media(min-width:1180px){.dg-toc{display:flex}}
.dg-toc-h{padding:var(--s4) var(--s4) var(--s3);border-bottom:1px solid var(--hair);flex:none}
.dg-toc-h .k{font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ash)}
.dg-toc-h .dg-big{font-family:Lora,Georgia,serif;font-size:1.9rem;line-height:1;margin-top:6px;
  display:flex;align-items:baseline;gap:8px}
.dg-toc-h .dg-big i{font-style:normal;font-size:.95rem;color:var(--ash);font-family:Inter,sans-serif}
.dg-toc-track{height:6px;background:var(--card);border:1px solid var(--edge);
  border-radius:100px;overflow:hidden;margin-top:var(--s3)}
.dg-toc-track i{display:block;height:100%;width:0;background:var(--ochre);transition:width .3s var(--ease)}
.dg-toc-b{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--s3) var(--s3) var(--s4)}
.dg-toc-b::-webkit-scrollbar{width:7px}
.dg-toc-b::-webkit-scrollbar-thumb{background:var(--hair-2,var(--hair));border-radius:4px}
.dg-toc-sep{padding:var(--s3) 4px 8px;font-size:.72rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--stone)}
.dg-toc a{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:baseline;
  padding:11px 13px;margin-bottom:6px;text-decoration:none;color:var(--text);
  font-size:1rem;line-height:1.38;background:var(--card);
  border:1px solid var(--edge);border-radius:var(--r-s);
  transition:border-color .18s var(--ease),color .18s var(--ease)}
.dg-toc a:hover{border-color:var(--ash);color:var(--ink)}
.dg-toc a i{font-style:normal;font-family:Lora,Georgia,serif;color:var(--stone);font-size:1rem}
.dg-toc a em{font-style:normal;font-size:.9rem;color:var(--stone);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.dg-toc a.part{border-color:var(--ochre)}
.dg-toc a.part em{color:var(--ochre-deep);font-weight:600}
/* Пройденный модуль метится чернилами, а не зелёным. Зелёный на этой странице уже
   занят смыслом «здесь хорошая оценка» (кант карточки блока), и на строке «11/20 ✓»
   он читался бы как «тут всё в порядке», хотя пройдено значит только «отвечено». */
.dg-toc a.done{border-color:var(--ink)}
.dg-toc a.done em{color:var(--ink);font-weight:600}
.dg-toc a.done em::after{content:" ✓"}
.dg-toc a.act{border-color:var(--ink);color:var(--ink);font-weight:500;box-shadow:inset 3px 0 0 var(--ochre)}
.dg-toc a.act i{color:var(--ochre-deep)}
/* Действия над отчётом. Кнопки текстовые: это служебные операции, а не призыв. */
.dg-toc-f{flex:none;padding:var(--s3) var(--s4) var(--s4);border-top:1px solid var(--hair);display:grid;gap:2px}
.dg-toc-f button{width:100%;font:inherit;font-size:.96rem;color:var(--stone);background:none;
  border:none;cursor:pointer;text-align:left;padding:7px 4px;text-decoration:underline}
.dg-toc-f button:hover{color:var(--ochre-deep)}

/* ── Полоса модулей до 1180 ──────────────────────────────────────
   Аналог .secnav на главной: горизонтальная лента внутри липкой шапки, поэтому
   отдельный sticky ей не нужен и она не спорит с шапкой за верхний край.
   Четыре пункта помещаются даже на 360 px, лента почти не прокручивается. */
.dg-modnav{border-top:1px solid var(--hair)}
@media(min-width:1180px){.dg-modnav{display:none}}
.dg-modnav .wrap{display:flex;align-items:center;gap:clamp(10px,1.3vw,18px);
  overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none}
.dg-modnav .wrap::-webkit-scrollbar{display:none}
.dg-modnav a{position:relative;flex:none;padding:10px 0 11px;font-size:.87rem;line-height:1.2;
  color:var(--text2);text-decoration:none;white-space:nowrap;
  display:flex;align-items:baseline;gap:7px;transition:color .18s var(--ease)}
.dg-modnav a em{font-style:normal;font-size:.8rem;color:var(--ash);font-variant-numeric:tabular-nums}
.dg-modnav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ochre);
  transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease)}
.dg-modnav a:hover{color:var(--ink)}
.dg-modnav a:hover::after,.dg-modnav a.act::after{transform:scaleX(1)}
.dg-modnav a.act{color:var(--ink)}
.dg-modnav a.done em{color:var(--ink)}
.dg-modnav a.part em{color:var(--ochre-deep)}
/* Край ленты подсвечен, чтобы было видно, что список продолжается. */
@media(max-width:520px){
  .dg-modnav{position:relative}
  .dg-modnav::after{content:"";position:absolute;right:0;top:0;bottom:1px;width:28px;pointer-events:none;
    background:linear-gradient(90deg,transparent,var(--paper))}
}

/* ── Титул ───────────────────────────────────────────────────────── */
.dg-hero{padding:clamp(34px,5.5vh,68px) 0 0}
.dg-hero .ask{font-family:Lora,Georgia,serif;font-style:italic;color:var(--ochre);font-size:1.05rem}
.dg-hero h1{font-size:clamp(1.95rem,1.5rem + 2.3vw,3.1rem);line-height:1.06;margin-top:var(--s2);
  letter-spacing:-.01em;max-width:18ch}
.dg-hero .dg-sub{margin-top:var(--s4);color:var(--stone);max-width:58ch;
  font-size:clamp(1.06rem,1rem + .4vw,1.22rem)}
.dg-hero .dg-src{margin-top:var(--s3);color:var(--ash);font-size:.94rem;max-width:62ch;line-height:1.55}

/* ── Поля расчёта ────────────────────────────────────────────────
   Подпись видима всегда, DESIGN.md, раздел компонентов. Выручка выделена
   не свечением, а кантом и золотой подписью: без неё расчёт в рублях не работает. */
.dg-meta{margin-top:clamp(24px,3.5vh,40px);display:grid;gap:var(--s3);
  background:var(--card);border:1px solid var(--edge);border-radius:var(--r);
  padding:clamp(18px,2.6vh,26px)}
@media(min-width:700px){.dg-meta{grid-template-columns:1fr 1fr}}
.dg-f{display:grid;gap:6px;min-width:0}
.dg-f label{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}
.dg-f input{width:100%;font:inherit;font-size:1.02rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--edge);border-radius:var(--r-s);padding:13px 15px;
  transition:border-color .18s var(--ease)}
.dg-f input:hover{border-color:var(--ash)}
.dg-f input:focus{outline:none;border-color:var(--ink)}
.dg-f input:focus-visible{outline:2px solid var(--ochre);outline-offset:2px}
.dg-f input::placeholder{color:var(--ash)}
.dg-f.dg-rev{grid-column:1 / -1}
.dg-f.dg-rev label{color:var(--ochre-deep);font-weight:600}
.dg-f.dg-rev input{border:1.5px solid var(--ink);background:var(--wash);
  font-family:Lora,Georgia,serif;font-size:1.3rem;padding:12px 15px}
.dg-f.dg-rev input::placeholder{font-family:Inter,sans-serif;font-size:1rem;color:var(--stone)}
/* Подсказка «сначала выручка». Появляется и исчезает, не пульсирует. */
.dg-hint{margin-top:var(--s3);padding:var(--s3) var(--s4);background:var(--wash);
  border:1px solid var(--hair-2,var(--hair));border-left:3px solid var(--ochre);
  border-radius:var(--r-s);color:var(--text);line-height:1.55;font-size:1rem;display:none}
.dg-hint.on{display:block}
.dg-hint b{color:var(--ink)}
.dg-hint span{display:block;margin-top:6px;color:var(--stone);font-size:.94rem}

/* ── Плитка результата ───────────────────────────────────────────
   Цифра это главный визуальный объект: Lora, крупный кегль, табличные цифры. */
.dg-kpi{margin-top:clamp(22px,3vh,34px);display:grid;gap:var(--s2)}
@media(min-width:560px){.dg-kpi{grid-template-columns:1fr 1fr}}
@media(min-width:1180px){.dg-kpi{grid-template-columns:repeat(4,1fr)}}
.dg-k{background:var(--card);border:1px solid var(--hair);border-radius:var(--r-s);
  padding:var(--s4);display:flex;flex-direction:column;gap:4px;min-width:0}
.dg-k.dg-k-main{border:1.5px solid var(--ink)}
.dg-k .k{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}
/* Кегль ограничен 1,55rem не из вкуса: в четырёх колонках от 1180 px «18 000 000 ₽»
   при 1,85rem не влезает в карточку. Перенос внутри числа запрещён: Intl отдаёт
   неразрывные пробелы, и любой overflow-wrap:anywhere рвал сумму как «1 500 00 0 ₽». */
.dg-k .v{font-family:Lora,Georgia,serif;font-size:clamp(1.4rem,1.2rem + .7vw,1.55rem);line-height:1.15;
  color:var(--ink);margin-top:4px;overflow-wrap:normal}
.dg-k .v small{font-family:Inter,sans-serif;font-size:.86rem;color:var(--stone)}
.dg-k.dg-k-main .v{color:var(--ochre-deep)}
.dg-k .s{font-size:.92rem;color:var(--stone);line-height:1.45;margin-top:2px}
/* Описание уровня длинное, и в четырёх колонках оно растягивало всю строку плитки.
   Четыре строки дают суть, полный текст остаётся в липкой строке итога и в отчёте. */
.dg-k .s.clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.dg-k .p{height:6px;background:var(--fog);border:1px solid var(--hair);border-radius:100px;
  overflow:hidden;margin-top:auto}
.dg-k .p i{display:block;height:100%;width:0;background:var(--ochre);transition:width .3s var(--ease)}

/* ── Как пользоваться ────────────────────────────────────────────
   Было: тёмная карточка с градиентом, свечением и подложкой blur.
   Стало: та же светлая карточка в чёрном контуре, что блок формулы в чек-листе. */
.dg-how{margin-top:clamp(28px,4vh,44px);background:var(--card);border:1.5px solid var(--ink);
  border-radius:var(--r);padding:clamp(22px,3vh,36px)}
.dg-how .k{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ochre-deep)}
.dg-how h2{margin-top:var(--s2);font-size:clamp(1.4rem,1.15rem + 1.1vw,2rem);line-height:1.14;max-width:24ch}
.dg-how p{margin-top:var(--s3);color:var(--text);max-width:62ch}
.dg-steps{list-style:none;margin-top:var(--s5);display:grid;gap:0;
  border:1px solid var(--hair);border-radius:var(--r-s);overflow:hidden;background:var(--paper)}
.dg-steps li{padding:var(--s3) var(--s4);border-top:1px solid var(--hair);
  display:grid;grid-template-columns:34px 1fr;gap:4px var(--s3)}
.dg-steps li:first-child{border-top:0}
.dg-steps li k{grid-row:1 / span 2;display:grid;place-items:center;width:30px;height:30px;
  border-radius:50%;background:var(--wash);border:1px solid var(--hair-2,var(--hair));
  font-family:Lora,Georgia,serif;font-size:.95rem;color:var(--ochre-deep);align-self:start}
.dg-steps li b{font-weight:500;color:var(--ink);font-size:1.06rem;align-self:center}
.dg-steps li span{color:var(--text2);font-size:1rem;line-height:1.5}
.dg-how .dg-proof{margin-top:var(--s4);padding-left:var(--s4);border-left:2px solid var(--ochre);
  font-family:Lora,Georgia,serif;font-size:1.15rem;line-height:1.5;color:var(--ink)}

/* ── Модуль и вопрос ─────────────────────────────────────────────── */
.dg-mod{padding-top:clamp(44px,6.5vh,80px);scroll-margin-top:110px}
@media(min-width:1180px){.dg-mod{scroll-margin-top:24px}}
.dg-mod-h{border-top:2px solid var(--ink);padding-top:var(--s4);
  display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);flex-wrap:wrap}
.dg-mod-h h2{font-size:clamp(1.35rem,1.15rem + 1vw,1.95rem);line-height:1.12;max-width:22ch}
.dg-mod-h .dg-mod-score{font-family:Lora,Georgia,serif;font-size:1.25rem;color:var(--ink);
  white-space:nowrap;font-variant-numeric:tabular-nums}
.dg-mod-h .dg-mod-score i{font-style:normal;color:var(--stone);font-size:.8em}

.dg-q{margin-top:var(--s3);background:var(--card);border:1px solid var(--hair);
  border-radius:var(--r-s);overflow:hidden;transition:border-color .18s var(--ease)}
.dg-q:hover{border-color:var(--ash)}
/* Оценка это состояние, и оно читается кантом слева, а не заливкой карточки.
   Два цвета на всю страницу: золото зовёт смотреть, чернила говорят «тут закрыто».
   Слабый блок дополнительно берёт золото во весь контур, поэтому 1-2 и 3 различимы
   без третьего цвета: у первого золотая рамка целиком, у второго только кант. */
.dg-q.lvl-bad{border-color:var(--ochre);border-left:3px solid var(--ochre)}
.dg-q.lvl-bad:hover{border-color:var(--ochre-deep);border-left-color:var(--ochre-deep)}
.dg-q.lvl-mid{border-left:3px solid var(--ochre)}
.dg-q.lvl-ok{border-left:3px solid var(--ink)}
.dg-q-h{display:grid;gap:var(--s3);padding:var(--s4)}
@media(min-width:900px){.dg-q-h{grid-template-columns:1fr 330px;gap:var(--s4);align-items:center}}
.dg-q-t{min-width:0}
.dg-q-t b{display:block;font-weight:500;color:var(--ink);font-size:1.08rem;line-height:1.35}
.dg-q-t span{display:block;margin-top:5px;color:var(--stone);font-size:.99rem;line-height:1.45}

/* Шкала. Выбранная кнопка заливается чернилами: это маленький элемент состояния,
   а не плашка. Правило «чёрный это контур» касается крупных блоков. */
.dg-scale{display:grid;gap:5px}
.dg-scale .row{display:flex;gap:5px}
.dg-scale button{flex:1;height:52px;min-width:0;font:inherit;font-size:1.05rem;font-weight:500;
  color:var(--stone);background:var(--paper);border:1px solid var(--edge);
  border-radius:var(--r-s);cursor:pointer;font-variant-numeric:tabular-nums;
  transition:border-color .16s var(--ease),background .16s var(--ease),color .16s var(--ease)}
.dg-scale button:hover{border-color:var(--ink);color:var(--ink);background:var(--card)}
.dg-scale button:focus-visible{outline:2px solid var(--ochre);outline-offset:2px}
.dg-scale button.sel{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600}
.dg-scale .labels{display:flex;gap:5px;font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ash)}
.dg-scale .labels span{flex:1;text-align:center;min-width:0}

.dg-more{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  font:inherit;font-size:.94rem;color:var(--ochre-deep);background:var(--wash);
  border:0;border-top:1px solid var(--hair);padding:13px 12px;cursor:pointer;
  transition:background .16s var(--ease)}
.dg-more:hover{background:var(--fog)}
.dg-more .chev{display:inline-block;transition:transform .2s var(--ease);line-height:1;font-size:.8em}
.dg-q.open .dg-more .chev{transform:rotate(90deg)}
.dg-q .lbl-open{display:none}
.dg-q.open .lbl-open{display:inline}
.dg-q.open .lbl-closed{display:none}

.dg-det{display:none;padding:var(--s4);border-top:1px solid var(--hair);background:var(--paper)}
.dg-q.open .dg-det{display:block}
.dg-simple{background:var(--wash);border:1px solid var(--hair-2,var(--hair));border-left:3px solid var(--ochre);
  border-radius:var(--r-s);padding:var(--s3) var(--s4);color:var(--text);line-height:1.6;font-size:1rem}
.dg-simple b{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ochre-deep);margin-bottom:6px}
.dg-det dl{margin-top:var(--s3);display:grid;gap:0;
  border:1px solid var(--hair);border-radius:var(--r-s);overflow:hidden;background:var(--card)}
.dg-det dt{padding:var(--s3) var(--s4) 2px;border-top:1px solid var(--hair);
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}
.dg-det dt:first-of-type{border-top:0}
.dg-det dd{padding:0 var(--s4) var(--s3);color:var(--text2);line-height:1.55;font-size:1rem;
  white-space:pre-wrap}
.dg-det dd.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem;
  line-height:1.7;color:var(--text)}
/* Красная и зелёная полоски у строк «почему теряете» и «что получите» сняты 19.08.2026.
   Золотом помечен только первый шаг: это единственная строка, которая требует действия,
   остальные читаются по подписи слева и держатся общей сеткой в контуре. */
.dg-det dd.bad,.dg-det dd.good{color:var(--text)}
.dg-det dd.step{box-shadow:inset 3px 0 0 var(--ochre);color:var(--text)}
@media(min-width:700px){
  .dg-det dl{grid-template-columns:200px 1fr}
  .dg-det dt{grid-column:1;padding:var(--s3) 0 var(--s3) var(--s4)}
  .dg-det dd{grid-column:2;padding:var(--s3) var(--s4) var(--s3) var(--s3);border-top:1px solid var(--hair)}
  .dg-det dd:first-of-type{border-top:0}
}

/* ── Слабые места ────────────────────────────────────────────────── */
.dg-weak{margin-top:clamp(44px,6vh,80px);background:var(--card);border:1.5px solid var(--ink);
  border-radius:var(--r);padding:clamp(22px,3vh,36px);display:none}
.dg-weak.on{display:block}
.dg-weak h2{font-size:clamp(1.35rem,1.15rem + .9vw,1.8rem);line-height:1.14}
.dg-weak .dg-lede{margin-top:var(--s2);color:var(--stone);max-width:56ch}
.dg-weak-list{display:grid;gap:var(--s2);margin-top:var(--s4)}
/* Кант золотой, а не кирпичный: это блоки, на которые надо смотреть, а не «ошибка». */
.dg-weak-i{background:var(--paper);border:1px solid var(--hair);border-left:3px solid var(--ochre);
  border-radius:var(--r-s);padding:var(--s3) var(--s4)}
.dg-weak-i .r{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}
.dg-weak-i .nm{font-size:1.08rem;font-weight:500;color:var(--ink);margin-top:4px;line-height:1.35}
.dg-weak-i .sc{display:inline-block;margin-top:8px;font-size:.86rem;font-weight:600;color:var(--ochre-deep);
  background:var(--wash);border:1px solid var(--hair-2,var(--hair));border-radius:100px;padding:2px 10px}
.dg-weak-i .ls{margin-top:10px;color:var(--text);font-size:1rem;line-height:1.5}
.dg-weak-i .ls b{color:var(--ochre-deep);font-weight:600}
.dg-weak-i .st{margin-top:6px;color:var(--stone);font-size:.96rem;line-height:1.5}
.dg-weak-i .st b{color:var(--ink);font-weight:500}
.dg-method{margin-top:var(--s4);color:var(--text2);font-size:.98rem;line-height:1.6;
  border-top:1px solid var(--hair);padding-top:var(--s4);white-space:pre-line}
.dg-method h3{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash);
  font-family:Inter,sans-serif;font-weight:500;margin-bottom:8px}

/* ── Разделы ниже расчёта ────────────────────────────────────────── */
.dg-sec{padding-top:clamp(44px,6.5vh,86px)}
.dg-sec .ask{font-family:Lora,Georgia,serif;font-style:italic;color:var(--ochre);font-size:1.05rem}
.dg-sec h2{margin-top:var(--s2);font-size:clamp(1.45rem,1.2rem + 1.2vw,2.1rem);line-height:1.12;max-width:24ch}
.dg-sec .dg-lede{margin-top:var(--s3);color:var(--stone);max-width:62ch}
.dg-sec .dg-lede b{color:var(--ink);font-weight:500}

.dg-trust{list-style:none;margin-top:var(--s4);display:grid;gap:0;
  border:1px solid var(--hair);border-radius:var(--r-s);overflow:hidden;background:var(--card)}
.dg-trust li{padding:var(--s4);border-top:1px solid var(--hair);display:grid;gap:4px}
.dg-trust li:first-child{border-top:0}
@media(min-width:760px){
  .dg-trust li{grid-template-columns:8em 1fr;gap:4px var(--s4)}
  .dg-trust k{grid-row:1 / span 2;grid-column:1;align-self:start}
  .dg-trust b{grid-column:2}
  .dg-trust span{grid-column:2}
}
.dg-trust k{font-family:Lora,Georgia,serif;font-size:clamp(1.5rem,1.2rem + 1.1vw,2rem);line-height:1;
  color:var(--ink);font-variant-numeric:tabular-nums}
.dg-trust b{font-weight:500;color:var(--ink);font-size:1.06rem;line-height:1.35}
.dg-trust span{color:var(--text2);font-size:.99rem;line-height:1.55}

/* ── Клиенты и кейсы ─────────────────────────────────────────────── */
.dg-clients{display:grid;gap:var(--s2);margin-top:var(--s4)}
@media(min-width:760px){.dg-clients{grid-template-columns:repeat(3,1fr)}}
.dg-client{background:var(--card);border:1px solid var(--hair);border-radius:var(--r-s);
  padding:var(--s4);display:flex;flex-direction:column;gap:8px;
  transition:border-color .18s var(--ease)}
.dg-client:hover{border-color:var(--ochre)}
.dg-client .ph{width:72px;height:72px;border-radius:50%;object-fit:cover;object-position:50% 20%;
  border:1px solid var(--hair-2,var(--hair));background:var(--wash)}
.dg-client .nm{font-weight:500;color:var(--ink);font-size:1.06rem;line-height:1.3}
.dg-client .nc{color:var(--stone);font-size:.94rem;line-height:1.4}
.dg-client .qt{color:var(--text2);font-size:.99rem;line-height:1.55}
.dg-client .mt{margin-top:auto;padding-top:10px;border-top:1px solid var(--hair);
  font-size:.78rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ochre-deep)}

.dg-creds{list-style:none;margin-top:var(--s3);display:grid;gap:0;
  border:1px solid var(--hair);border-radius:var(--r-s);overflow:hidden;background:var(--paper)}
@media(min-width:700px){.dg-creds{grid-template-columns:1fr 1fr}}
.dg-creds li{padding:var(--s3) var(--s4);border-top:1px solid var(--hair)}
.dg-creds li:first-child{border-top:0}
@media(min-width:700px){
  .dg-creds li:nth-child(2){border-top:0}
  .dg-creds li:nth-child(odd){border-right:1px solid var(--hair)}
}
.dg-creds b{display:block;font-weight:500;color:var(--ink);font-size:1.02rem}
.dg-creds span{display:block;margin-top:3px;color:var(--text2);font-size:.96rem;line-height:1.5}

.dg-cases{display:grid;gap:var(--s2);margin-top:var(--s4);grid-template-columns:1fr}
@media(min-width:560px){.dg-cases{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.dg-cases{grid-template-columns:repeat(3,1fr)}}
.dg-case{background:var(--card);border:1px solid var(--hair);border-radius:var(--r-s);overflow:hidden;
  display:flex;flex-direction:column;transition:border-color .18s var(--ease)}
.dg-case:hover{border-color:var(--ochre)}
.dg-case img{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--fog);padding:10px}
.dg-case .nm{padding:var(--s3) var(--s4);font-size:1rem;color:var(--ink);line-height:1.4;
  border-top:1px solid var(--hair)}

/* ── Призыв ──────────────────────────────────────────────────────── */
.dg-cta{margin-top:clamp(44px,6vh,80px);background:var(--card);border:1.5px solid var(--ink);
  border-radius:var(--r);padding:clamp(24px,3.4vh,40px)}
.dg-cta h2{font-size:clamp(1.45rem,1.25rem + 1.1vw,2.1rem);line-height:1.12;max-width:22ch}
.dg-cta p{margin-top:var(--s3);color:var(--text);max-width:60ch}
.dg-cta .dg-delta{margin-top:var(--s3);padding:var(--s3) var(--s4);background:var(--wash);
  border:1px solid var(--hair-2,var(--hair));border-left:3px solid var(--ochre);
  border-radius:var(--r-s);color:var(--text);line-height:1.55;display:none}
.dg-cta .dg-delta b{color:var(--ochre-deep);font-weight:600}
.dg-cta .dg-act{margin-top:var(--s4);display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center}
.dg-cta .btn{padding:16px 30px;font-size:1.05rem}
.dg-cta .btn-p{background:var(--wash);color:var(--ink);border:1.5px solid var(--ink);box-shadow:none}
.dg-cta .btn-p:hover{background:var(--card);box-shadow:none;transform:none}
.dg-cta .dg-note{color:var(--stone);font-size:.94rem}
.print-tg-link{display:none}

/* ── Липкая строка итога ─────────────────────────────────────────
   Держит на экране цифру, ради которой человек пришёл. Была чёрной плашкой
   с тенью в 40 px, стала полосой бумаги с кантом сверху. */
.dg-bar{position:fixed;left:0;right:0;bottom:0;z-index:35;background:var(--paper);
  border-top:1px solid var(--hair-2,var(--hair));box-shadow:0 -12px 30px -26px var(--shadow)}
.dg-bar .wrap{display:grid;gap:var(--s2) var(--s4);align-items:center;
  grid-template-columns:1fr auto;padding-top:10px;padding-bottom:10px}
@media(min-width:1180px){.dg-bar .wrap{max-width:none;padding-left:calc(var(--dg-toc-w) + var(--s4))}}
.dg-bar .k{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}
.dg-bar .v{font-family:Lora,Georgia,serif;font-size:clamp(1.2rem,1.02rem + .85vw,1.65rem);line-height:1.1;
  color:var(--ochre-deep);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.dg-bar .s{font-size:.82rem;color:var(--stone);line-height:1.35;margin-top:2px}
.dg-bar .dg-bar-loss{min-width:0}
.dg-bar .dg-bar-score{display:none;min-width:0}
.dg-bar .dg-bar-score .v{color:var(--ink)}
@media(min-width:820px){
  .dg-bar .wrap{grid-template-columns:1.4fr 1fr auto}
  .dg-bar .dg-bar-score{display:block}
}
/* Подпись под названием кнопки: .btn это inline-flex с gap, поэтому без смены
   направления вторая строка вставала сбоку и слипалась с первой. */
.dg-bar .btn{padding:13px 20px;font-size:.96rem;background:var(--wash);color:var(--ink);
  border:1.5px solid var(--ink);box-shadow:none;white-space:nowrap;text-align:center;line-height:1.2;
  flex-direction:column;gap:0}
.dg-bar .btn:hover{background:var(--card);transform:none;box-shadow:none}
.dg-bar .btn small{display:block;font-size:.72rem;color:var(--stone);font-weight:400;margin-top:2px}
@media(max-width:420px){
  .dg-bar .btn{padding:12px 14px;font-size:.9rem}
  .dg-bar .btn small{display:none}
}

/* ── Подвал ──────────────────────────────────────────────────────── */
.dg-foot{margin-top:clamp(48px,7vh,90px);border-top:1px solid var(--hair-2,var(--hair));
  padding:clamp(28px,4vh,44px) 0 clamp(130px,17vh,160px);
  display:grid;gap:var(--s4);color:var(--text2);font-size:.98rem;line-height:1.6}
@media(min-width:760px){.dg-foot{grid-template-columns:1.5fr 1fr 1fr;gap:var(--s6)}}
.dg-foot h4{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash);
  font-weight:500;margin-bottom:10px}
.dg-foot-brand{display:flex;align-items:center;gap:var(--s3)}
.dg-foot-brand img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 12%;
  background:var(--wash);flex:none}
.dg-foot-brand b{font-family:Lora,Georgia,serif;font-weight:500;font-size:1.1rem;color:var(--ink)}
.dg-foot p{margin-top:var(--s3);max-width:46ch}
.dg-foot ul{list-style:none;display:grid;gap:8px}
.dg-foot a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair-2,var(--hair))}
.dg-foot a:hover{color:var(--ochre-deep);border-bottom-color:var(--ochre)}
.dg-foot .dg-foot-b{grid-column:1 / -1;border-top:1px solid var(--hair);padding-top:var(--s3);
  color:var(--ash);font-size:.92rem;display:flex;justify-content:space-between;gap:var(--s3);flex-wrap:wrap}
/* Служебные действия дублируются в подвале: до 1180 оглавления с ними на экране нет. */
.dg-foot-acts{display:flex;gap:var(--s4);flex-wrap:wrap}
@media(min-width:1180px){.dg-foot-acts{display:none}}
.dg-foot-acts button{font:inherit;font-size:.96rem;color:var(--stone);background:none;border:0;
  padding:0;cursor:pointer;text-decoration:underline}
.dg-foot-acts button:hover{color:var(--ochre-deep)}

.dg-empty{color:var(--ash);font-style:italic}
.print-author{display:none}

/* ── Печать отчёта ───────────────────────────────────────────────
   Отчёт печатается на A4 книжной ориентации: страница одноколоночная,
   ландшафт больше не нужен. Чёрных заливок в печати тоже нет, структуру
   держат контур и золотая отбивка, ровно как на экране. */
@media print{
  @page{size:A4;margin:12mm}
  .top,.dg-modnav,.dg-toc,.dg-bar,.navsheet,.navscrim,.nav-burger,.readbar,
  .dg-more,.dg-hint,.dg-meta,.dg-foot-acts,.dg-cta .dg-act{display:none !important}
  body{background:#fff;color:#111;font-size:10.5pt;line-height:1.45}
  .dg-page{max-width:none;padding:0;margin:0}
  .dg-inner{max-width:none}
  .dg-hero{padding:0}
  .dg-hero h1{font-size:21pt;max-width:none;border-bottom:2px solid var(--ochre);padding-bottom:8pt}
  .dg-hero .dg-sub{font-size:10pt;margin-top:8pt}
  .dg-hero .dg-src{display:none}
  .dg-kpi{grid-template-columns:repeat(2,1fr);gap:6pt;margin-top:10pt;break-inside:avoid}
  .dg-k{padding:8pt 10pt;break-inside:avoid}
  .dg-k .v{font-size:15pt}
  .dg-k .p{display:none}
  .print-author{display:flex !important;flex-direction:column;gap:8pt;margin-top:12pt;
    border:1px solid var(--hair);border-left:4px solid var(--ochre);border-radius:8pt;
    padding:12pt 14pt;break-inside:avoid}
  .print-author .k{font-size:8pt;letter-spacing:.1em;text-transform:uppercase;color:var(--ochre-deep)}
  .print-author h3{font-size:15pt;line-height:1.15;margin-top:2pt}
  .print-author>p{font-size:10pt;color:#333;margin-top:4pt}
  .print-author .pa-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:10pt;margin-top:4pt}
  .print-author .pa-cols b{display:block;font-size:9.5pt;color:#111}
  .print-author .pa-cols span{display:block;font-size:9.5pt;color:#333;line-height:1.4;margin-top:3pt}
  .print-author .pa-fin{font-size:10.5pt;color:#111;border-top:1px solid var(--hair);padding-top:6pt}
  .dg-how,.dg-weak,.dg-cta{padding:12pt}
  .dg-weak,.dg-cta{break-inside:avoid}
  /* Модули идут подряд, а не с новой страницы каждый: принудительный разрыв оставлял
     под коротким модулем две трети пустого листа. Разрыв запрещён только между
     заголовком модуля и первым блоком, чтобы шапка не отрывалась от содержимого. */
  .dg-mod{padding-top:14pt}
  .dg-mod-h{break-after:avoid}
  .dg-mod-h h2{font-size:15pt}
  .dg-q{break-inside:avoid;margin-top:6pt}
  .dg-q-h{padding:8pt 10pt;grid-template-columns:1fr 150pt;gap:10pt}
  .dg-q-t b{font-size:11pt}
  .dg-q-t span{font-size:9pt}
  .dg-scale button{height:22pt;font-size:9pt}
  .dg-scale button.sel{background:#111 !important;color:#fff !important}
  .dg-scale .labels{font-size:6pt}
  /* Раскрываются только отвеченные блоки: непройденное в отчёт не идёт. */
  .dg-q .dg-det{display:none !important}
  .dg-q[class*="lvl-"] .dg-det{display:block !important;padding:8pt 10pt}
  .dg-det dl{font-size:9.5pt}
  .dg-det dt{padding-top:6pt}
  .dg-det dd{padding-bottom:6pt}
  .dg-sec{padding-top:14pt;break-inside:avoid}
  /* Запрет разрыва ставится на карточку, а не на сетку: неразрывная сетка из девяти
     кейсов не влезала на лист, уезжала целиком на следующий и оставляла заголовок
     раздела в одиночестве на пустой странице. */
  .dg-cases,.dg-clients{break-inside:auto}
  .dg-case,.dg-client{break-inside:avoid}
  .dg-case img{background:#fff}
  .print-tg-link{display:inline-block !important;margin-top:8pt;font-size:11pt;color:#111;
    border:1.5px solid #111;border-radius:100px;padding:8pt 16pt;text-decoration:none}
  .dg-foot{padding-bottom:0;break-inside:avoid}
  *{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}
}
