/* ==========================================================
   winpix — шаблон статьи блога v2 (site/blog/article.css), 07.10
   Логика и разметка — по эталону блога ruvision.ru (pilot-astro/src/pages/blog/[slug].astro: art__*, faq__i, art__note, art__toc,
   art__author, art__related), визуально — в системе winpix: тёмная шапка .phead, тело статьи на молочном (--milk), номера H2 бордо,
   плиты (форма в середине, CTA) — тёмные на молочном.
   Подключается на страницах статей ВМЕСТО blog/page.css (page.css остаётся у списка blog/index.html), после styles.css и footer.css.
   Скрипт — blog/article.js (оглавление, подсветка раздела, мобильное «Содержание», форма в середине). Подключать ПЕРЕД main.js.
   Как собрать новую статью — blog/_article_template.html (комментарии в разметке).
   Порядок фонов (design_system_rules.md, А2–А3): D .phead → L .art (молочный, пара «статья + после статьи» с линией)
   → D «Другие статьи» → D #lead (бордовая плита) → подвал.
   ========================================================== */

/* ---------- 0. Шапка статьи: крошки, H1, автор, рубрика, дата, время чтения ---------- */
/* следующий блок — другой фон (молочный), поэтому у шапки обычное поле главы, а не --s-head (перебивает правило styles.css «.phead:has(+ .art)») */
main>.phead.phead--art2:has(+ .art--v2){padding-bottom:var(--s-chap)}
.phead--art2 .phead__grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:28px 56px;align-items:end}
.phead--art2 h1.hl{max-width:16ch}
.art__byline{display:grid;gap:18px;justify-items:start;padding-bottom:.4em}
.art__author{display:flex;align-items:center;gap:14px}
.art__ava{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;background:var(--night-2)}
.art__aname{font-weight:500;font-size:16px;letter-spacing:-.01em;line-height:1.25;color:var(--milk)}
.art__arole{font-size:14px;line-height:1.35;color:var(--mute-d);margin-top:2px}
.art__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:14px;line-height:1.3;color:var(--mute-d)}
.art__meta>span{display:inline-flex;align-items:center;gap:7px}
.art__meta svg{width:15px;height:15px;flex:none;stroke:currentColor;fill:none;stroke-width:1.5;opacity:.85}
.art__cat{padding:7px 13px;border-radius:var(--r-pill);background:rgba(var(--brick-rgb),.85);color:var(--milk);font-size:13.5px;letter-spacing:-.005em}

/* ---------- 1. Тело статьи: молочный фон, колонка текста + закреплённое оглавление ---------- */
.art.art--v2{background:var(--milk);color:var(--ink);padding:var(--s-chap) var(--gutter);counter-reset:h2c}
.art__grid{display:grid;grid-template-columns:minmax(0,800px) minmax(240px,300px);justify-content:space-between;gap:64px;align-items:start}
.art__body{min-width:0}
.art__side{position:sticky;top:calc(var(--header-h) + 28px);align-self:start}

/* «Короткий ответ» — первый абзац статьи, вынесен лидом (текст — существующий, без новых слов) */
.art__answer{font-size:clamp(20px,1.6vw,23px);line-height:1.5;font-weight:300;letter-spacing:-.012em;color:var(--ink);padding:2px 0 2px clamp(18px,2vw,26px);box-shadow:inset 3px 0 0 var(--brick);max-width:760px}

/* разделы */
.art__sec{padding-top:var(--s-art)}
.art__body>.art__sec:first-child{padding-top:0}
.art__h2{position:relative;font-size:clamp(28px,2.7vw,40px);line-height:1.08;letter-spacing:-.03em;font-weight:400;margin:0 0 clamp(18px,2vw,26px);max-width:none;counter-increment:h2c;text-wrap:balance}
.art__h2::before{content:counter(h2c,decimal-leading-zero);display:block;font-size:15px;line-height:1;letter-spacing:.02em;font-weight:500;color:var(--brick);margin-bottom:14px;font-variant-numeric:tabular-nums}
.art__h2--plain{counter-increment:none}
.art__h2--plain::before{content:none}
.art__anchor{position:absolute;left:0;top:calc(-1 * (var(--header-h) + 28px));width:1px;height:1px;pointer-events:none}
.art__h3{font-size:clamp(21px,1.8vw,26px);line-height:1.18;letter-spacing:-.02em;font-weight:500;margin:clamp(28px,3vw,40px) 0 12px}

/* текст: кегль 18–19, межстрочный 1.6, мера ≤ 760 px */
.art--v2 .prose{max-width:760px}
.art--v2 .prose p,.art__p{font-size:19px;line-height:1.6;color:#2E2420;max-width:760px}
.art--v2 .prose p+p{margin-top:1em}
.art--v2 .prose p.lead{font-size:clamp(20px,1.6vw,23px);line-height:1.45;font-weight:300;letter-spacing:-.012em;color:var(--ink)}
.art--v2 .prose p.mute{font-size:17px;color:var(--mute-l)}
.art--v2 .prose a,.art__p a,.art--v2 .steps p a,.art__note a,.faq__a a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(var(--brick-rgb),.55);transition:color .25s,text-decoration-color .25s}
.art--v2 .prose a:hover,.art__p a:hover,.art--v2 .steps p a:hover,.art__note a:hover,.faq__a a:hover{color:var(--brick);text-decoration-color:var(--brick)}
.art--v2 .art__lead{font-size:clamp(18px,1.4vw,20px);line-height:1.55;color:var(--mute-l);max-width:760px;margin-bottom:clamp(20px,2.4vw,30px)}
.art__ul,.art__ol{max-width:760px;margin:0 0 1em;padding-left:1.2em}
.art__ul{list-style:disc}
.art__ol{list-style:decimal}
.art__ul li,.art__ol li{font-size:19px;line-height:1.6;color:#2E2420;margin-bottom:.45em;padding-left:.2em}
.art__ul li::marker,.art__ol li::marker{color:var(--brick)}
.art--v2 .prose+.art__ul,.art--v2 .prose+.art__ol{margin-top:1em}

/* компоненты сайта внутри статьи: нумерованный список .steps, пара колонок .roles, финальная строка .co__line */
.art--v2 .steps{margin:0;max-width:800px}
.art--v2 .steps li{grid-template-columns:48px 1fr;padding:20px 0 22px}
.art--v2 .steps b{font-size:19px;line-height:1.35}
.art--v2 .steps p{max-width:none;font-size:18px;line-height:1.6;color:#4A3E37}
.art--v2 .steps+.prose,.art--v2 .callout+.prose,.art--v2 .art__note+.prose,.art--v2 .art__fig+.prose{margin-top:clamp(20px,2.4vw,30px)}
.art--v2 .roles{margin-top:0;gap:14px;max-width:800px}
.art--v2 .roles>div{padding:22px 22px 24px}
.art--v2 .roles h4{font-size:18px}
.art--v2 .roles li{font-size:17px;line-height:1.45;padding:11px 0}
.art--v2 .co__line{margin-top:clamp(28px,3.5vw,44px);max-width:760px;font-size:clamp(21px,1.9vw,26px);line-height:1.35;color:var(--ink)}

/* кадр-петля из /media внутри колонки */
.art__fig{margin:clamp(24px,3vw,40px) 0 0;border-radius:var(--r-card);overflow:hidden;aspect-ratio:16/9;position:relative;background:var(--bone-2)}
.art__fig img,.art__fig video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.art__fig video{opacity:0;transition:opacity .8s}
.art__fig video.is-ready{opacity:1}
.art__fig+.steps{margin-top:clamp(24px,3vw,40px)}
.art__fig--cap{aspect-ratio:auto;overflow:visible;background:none;border-radius:0}
.art__fig--cap>.art__fig-m{position:relative;aspect-ratio:16/9;border-radius:var(--r-card);overflow:hidden;background:var(--bone-2)}
.art__fig figcaption,.art__table figcaption{font-size:14px;line-height:1.45;color:var(--mute-l);margin-top:12px;padding-left:12px;box-shadow:inset 2px 0 0 var(--brick)}
html.flat .art__fig video{display:none}

/* врезка-пример из кейса (была на тёмном, теперь светлая) */
.art--v2 .callout{margin:clamp(22px,2.6vw,34px) 0 0;max-width:800px;border-radius:var(--r-card);padding:22px 24px 24px;background:rgba(26,20,18,.04);box-shadow:inset 0 0 0 1px var(--line-l);display:grid;gap:10px}
.art--v2 .callout__k{font-size:14px;color:var(--mute-l);line-height:1.4}
.art--v2 .callout b{font-weight:500;font-size:19px;letter-spacing:-.01em;line-height:1.3;display:block}
.art--v2 .callout p{font-size:17.5px;line-height:1.55;color:#2E2420}
.art--v2 .callout .facts{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.art--v2 .callout .tag{font-size:14px;padding:8px 13px}
.art--v2 .callout .link{font-size:16px;justify-self:start}

/* ---------- 2. Врезки: «Важно», «Совет продюсера», «Где теряют деньги» ----------
   <aside class="art__note art__note--important|--tip|--money"><b class="art__note-h">…</b><p>…</p></aside> */
.art__note{position:relative;max-width:800px;margin:clamp(22px,2.6vw,34px) 0 0;padding:20px 24px 22px 26px;border-radius:var(--r-ui);background:rgba(26,20,18,.045);box-shadow:inset 3px 0 0 var(--ink)}
.art__note-h{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.2;letter-spacing:.07em;text-transform:uppercase;font-weight:500;color:var(--ink);margin-bottom:10px}
.art__note-h::before{content:"!";display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--ink);color:var(--milk);font-size:13px;letter-spacing:0;text-transform:none;flex:none}
.art__note p{font-size:18px;line-height:1.6;color:#2E2420}
.art__note p+p{margin-top:.7em}
.art__note--tip{box-shadow:inset 3px 0 0 var(--brick)}
.art__note--tip .art__note-h{color:var(--brick)}
.art__note--tip .art__note-h::before{content:"→";background:var(--brick)}
.art__note--money{background:rgba(var(--brick-rgb),.07);box-shadow:inset 3px 0 0 var(--brick),inset 0 0 0 1px rgba(var(--brick-rgb),.18)}
.art__note--money .art__note-h{color:var(--brick)}
.art__note--money .art__note-h::before{content:"₽";background:var(--brick)}
.art--v2 .prose+.art__note,.art--v2 .steps+.art__note{margin-top:clamp(24px,3vw,36px)}
.art--v2 .art__note+.art__sec{padding-top:var(--s-art)}

/* ---------- 3. Таблица: <figure class="art__table"><div class="art__table-scroll"><table>…</table></div><figcaption>…</figcaption></figure> ---------- */
.art__table{margin:clamp(24px,3vw,36px) 0 0;max-width:800px}
.art__table-scroll{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border-radius:var(--r-ui);box-shadow:inset 0 0 0 1px var(--line-l)}
.art__table table{width:100%;border-collapse:collapse;font-size:16.5px;line-height:1.45}
.art__table th,.art__table td{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid var(--line-l)}
.art__table thead th{background:var(--ink);color:var(--milk);font-weight:500;font-size:15px;letter-spacing:-.005em}
.art__table tbody tr:last-child td{border-bottom:0}
.art__table tbody tr:nth-child(even){background:rgba(26,20,18,.03)}
.art__table td:first-child{font-weight:500;color:var(--ink)}
.art__table td{color:#2E2420}

/* ---------- 4. Оглавление: закреплено справа на ≥1101, на узких — свёрнутое «Содержание» после лида (строит article.js) ---------- */
.art__toc{padding-top:18px;border-top:1px solid var(--line-l);max-height:calc(100vh - var(--header-h) - 56px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.art__toc-k{font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:var(--mute-l);margin-bottom:14px}
.art__toc ol{display:grid;gap:2px}
.art__toc li a,.art__toc-faq a{display:grid;grid-template-columns:30px 1fr;gap:6px;padding:8px 0 8px 12px;margin-left:-12px;border-radius:10px;font-size:15px;line-height:1.35;letter-spacing:-.005em;color:var(--mute-l);box-shadow:inset 2px 0 0 transparent;transition:color .25s,box-shadow .25s,background .25s}
.art__toc li a i{font-style:normal;color:var(--brick);font-variant-numeric:tabular-nums;font-size:13.5px;line-height:1.5}
.art__toc li a:hover,.art__toc-faq a:hover{color:var(--ink);background:rgba(26,20,18,.04)}
.art__toc li a.is-active,.art__toc-faq a.is-active{color:var(--ink);box-shadow:inset 2px 0 0 var(--brick);background:rgba(26,20,18,.045);font-weight:500}
.art__toc-faq{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-l)}
.art__toc-faq a i{font-style:normal;color:var(--brick)}
.art__toc:empty,.art__side:empty{display:none}

.art__tocm{display:none}
.art__tocm-b{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:12px 16px 12px 18px;font-weight:500;font-size:17px;letter-spacing:-.01em;text-align:left;color:var(--ink)}
.art__tocm-b small{font-weight:400;font-size:14px;color:var(--mute-l);margin-left:8px}
.art__tocm-b i{width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--edge-l);position:relative;flex:none;transition:transform .35s var(--ease-soft)}
.art__tocm-b i::before,.art__tocm-b i::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:currentColor;transform:translate(-50%,-50%)}
.art__tocm-b i::after{transform:translate(-50%,-50%) rotate(90deg)}
.art__tocm.is-open .art__tocm-b i{transform:rotate(45deg)}
.art__tocm ol{display:none;padding:0 18px 12px}
.art__tocm.is-open ol{display:grid}
.art__tocm li a{display:grid;grid-template-columns:30px 1fr;gap:6px;padding:10px 0;border-top:1px solid var(--line-l);font-size:16px;line-height:1.35;color:#2E2420}
.art__tocm li a i{font-style:normal;color:var(--brick);font-variant-numeric:tabular-nums;font-size:14px;line-height:1.45}

/* ---------- 5. Форма в середине статьи: тёмная плита на молочном, одна строка полей ---------- */
.mform{margin-top:var(--s-art);max-width:800px;background:var(--night);color:var(--milk);border-radius:var(--r-card);padding:clamp(24px,3vw,36px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 16px;align-items:end}
.mform :focus-visible{outline-color:var(--milk);box-shadow:0 0 0 2px var(--night)}
.mform__head{grid-column:1/-1;display:grid;gap:8px}
.mform__h{font-size:clamp(24px,2.3vw,32px);line-height:1.1;letter-spacing:-.025em;font-weight:400;max-width:22ch;text-wrap:balance}
.mform__s{font-size:15px;line-height:1.45;color:var(--mute-d)}
.mform__need{grid-column:1/-1;display:grid;gap:10px}
.mform__need legend{font-size:14px;color:var(--mute-d);padding:0;margin-bottom:10px}
.mform__need .opts{gap:8px}
.mform__need .opt span{font-size:15px;min-height:44px;padding:10px 16px}
.art--v2 .mform .opt span{box-shadow:inset 0 0 0 1px var(--edge-d)}      /* плита тёмная внутри светлой главы: возвращаем чипам тёмную тему */
.art--v2 .mform .opt:hover span{box-shadow:inset 0 0 0 1px rgba(244,238,230,.8)}
.art--v2 .mform .opt input:checked+span{background:var(--milk);color:var(--ink);box-shadow:none}
.art--v2 .mform .opt input:focus-visible+span{outline:2px solid var(--milk);outline-offset:2px;box-shadow:0 0 0 2px var(--night)}
.art--v2 .mform__need.is-error .opt span{box-shadow:inset 0 0 0 1.5px var(--brick-text)}
.mform .field label{color:var(--mute-d)}
.mform .btn{min-height:52px;justify-content:center}
.mform .consent{margin-top:0}
.mform .consent a{color:inherit}
.mform .form__ok{grid-column:1/-1;background:rgba(244,238,230,.1);color:var(--milk)}
.mform__note{grid-column:1/-1;font-size:13px;color:var(--mute-d);margin-top:-6px}

/* ---------- 6. Частые вопросы: <section class="art__faq" id="faq"> + <details class="faq__i"> (+ JSON-LD FAQPage в <head>) ---------- */
.art__faq{padding-top:var(--s-art);max-width:800px}
.faq__i{border-bottom:1px solid var(--line-l)}
.faq__i:first-of-type{border-top:1px solid var(--line-l)}
.faq__i summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr 34px;gap:20px;align-items:center;padding:20px 0;font-weight:500;font-size:19px;line-height:1.35;letter-spacing:-.01em;color:var(--ink);transition:color .25s}
.faq__i summary::-webkit-details-marker{display:none}
.faq__i summary:hover{color:var(--brick)}
.faq__x{width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--edge-l);position:relative;transition:transform .35s var(--ease-soft),background .25s}
.faq__x::before,.faq__x::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:currentColor;transform:translate(-50%,-50%)}
.faq__x::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq__i[open] .faq__x{transform:rotate(45deg);background:var(--ink);color:var(--milk);box-shadow:none}
.faq__a{padding:0 54px 24px 0}
.faq__a p{font-size:18px;line-height:1.6;color:#2E2420}
.faq__a p+p{margin-top:.7em}

/* ---------- 7. После статьи (та же молочная глава, пара с линией): доверие → работы → CTA ---------- */
.art__after{margin-top:calc(var(--s-pair) / 2 + var(--s-art) / 2);padding-top:calc(var(--s-pair) / 2);border-top:1px solid var(--line-l);display:grid;gap:var(--s-art)}
.art__trust{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;align-items:end}
.art__trust p{font-size:clamp(24px,2.5vw,38px);line-height:1.18;letter-spacing:-.025em;font-weight:300;max-width:42ch;text-wrap:balance}
.art__trust .link{font-size:16px;white-space:nowrap}
.art__works-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin-bottom:clamp(20px,2.4vw,30px)}
.art__works-h h2{font-size:clamp(26px,2.4vw,36px);line-height:1.05;letter-spacing:-.03em}
.art__works-h .link{font-size:16px}
.art__works .works__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.art__works .work .h4{font-size:18px}
.art__cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;align-items:center;background:var(--night);color:var(--milk);border-radius:var(--r-card);padding:clamp(24px,3vw,40px) clamp(24px,3.4vw,48px)}
.art__cta :focus-visible{outline-color:var(--milk);box-shadow:0 0 0 2px var(--night)}
.art__cta-h{font-size:clamp(24px,2.4vw,34px);line-height:1.1;letter-spacing:-.025em}
.art__cta-s{font-size:15.5px;line-height:1.45;color:var(--mute-d);margin-top:8px}

/* ---------- 8. «Другие статьи» — тёмная глава перед формой: превью, рубрика, дата, время чтения ---------- */
.art-rel__h{display:flex;align-items:baseline;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin-bottom:clamp(24px,3vw,40px)}
.art-rel__h h2{font-size:clamp(28px,3vw,44px);line-height:1.04;letter-spacing:-.03em}
.art-rel__h .link{font-size:16px}
.art-rel__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.art-rel__grid:has(>.relc:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.relc{position:relative;display:grid;gap:14px;align-content:start}
.relc__m{position:relative;aspect-ratio:16/10;border-radius:var(--r-card);overflow:hidden;background:var(--night-2)}
.art-rel__grid:has(>.relc:nth-child(2):last-child) .relc__m{aspect-ratio:16/8.5}
.relc__m img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-soft)}
.relc:hover .relc__m img{transform:scale(1.04)}
.relc__m .tag{position:absolute;left:14px;top:14px;background:rgba(26,20,18,.55);box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:14px;padding:8px 13px}
.relc h3{font-size:clamp(19px,1.6vw,23px);line-height:1.2;letter-spacing:-.015em;max-width:26ch}
.relc h3 a::after{content:"";position:absolute;inset:0}
.relc h3 a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.relc__meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--small);color:var(--mute-d)}

/* слова с дефисом (15-летним, 3D-модель, ИИ-ролик) не рвём по дефису — article.js оборачивает их в .nw */
.art .nw,.phead--art2 .nw{white-space:nowrap}

/* ---------- 9. Адаптив ---------- */
@media (max-width:1280px){
  .art__grid{grid-template-columns:minmax(0,760px) minmax(220px,260px);gap:48px}
}
@media (max-width:1100px){
  .art__grid{grid-template-columns:minmax(0,800px)}
  .art__side{display:none}
  .art__tocm{display:block;margin-top:clamp(24px,3vw,32px);max-width:800px;border-radius:var(--r-ui);box-shadow:inset 0 0 0 1px var(--line-l);background:rgba(26,20,18,.025)}
  .art__tocm[hidden]{display:none}
  .art--v2 .prose p,.art__p,.art__ul li,.art__ol li{font-size:18px}
  .art__works .works__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  .phead--art2 .phead__grid{grid-template-columns:1fr;gap:22px}
  .phead--art2 h1.hl{max-width:none}
  .art__byline{gap:14px;padding-bottom:0}
  .art__ava{width:48px;height:48px}
  .art__answer{font-size:19px;line-height:1.5}
  .art__h2{font-size:clamp(25px,6.6vw,30px);line-height:1.1}
  .art__h2::before{font-size:14px;margin-bottom:10px}
  .art--v2 .steps li{grid-template-columns:40px 1fr;padding:16px 0 18px}
  .art--v2 .steps b{font-size:18px}
  .art--v2 .steps p{font-size:17px}
  .art--v2 .roles{grid-template-columns:1fr}
  .art--v2 .callout{padding:18px 18px 20px}
  .art--v2 .callout p{font-size:17px}
  .art__note{padding:18px 18px 20px 20px}
  .art__note p{font-size:17px}
  .art__table table{min-width:560px;font-size:15px}
  .art__table th,.art__table td{padding:12px 13px}
  .mform{grid-template-columns:1fr;gap:16px;padding:22px 16px 20px;border-radius:var(--r-ui)}
  .mform__h{font-size:24px}
  .mform__need legend{margin-bottom:8px}
  .mform__need .opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .mform__need .opt span{width:100%;justify-content:center;text-align:center;font-size:14.5px;padding:9px 10px;min-height:48px}
  .mform .btn{width:100%}
  .faq__i summary{font-size:17.5px;gap:14px;padding:16px 0}
  .faq__a{padding-right:0}
  .faq__a p{font-size:17px}
  .art__trust{grid-template-columns:1fr}
  .art__trust p{font-size:24px}
  .art__cta{grid-template-columns:1fr;padding:22px 18px;border-radius:var(--r-ui)}
  .art__cta .btn{width:100%;justify-content:center}
  .art-rel__grid,.art-rel__grid:has(>.relc:nth-child(2):last-child){grid-template-columns:1fr;gap:24px}
  .art-rel__grid,.art-rel__grid:has(>.relc:nth-child(2):last-child){gap:12px}
  /* компактная карточка: кадр слева, текст справа (статьи ≤ 9,5 экрана — design_system_rules В1) */
  .relc{grid-template-columns:112px minmax(0,1fr);gap:4px 14px;align-items:start;padding:10px;border-radius:var(--r-card);background:rgba(244,238,230,.05);box-shadow:inset 0 0 0 1px var(--line-d)}
  .relc__m,.art-rel__grid:has(>.relc:nth-child(2):last-child) .relc__m{grid-row:1 / span 2;aspect-ratio:1/1;border-radius:calc(var(--r-card) - 8px)}
  .relc__m .tag{display:none}
  .relc h3{font-size:17px;line-height:1.25;align-self:end}
  .relc__meta{gap:4px 10px;font-size:12.5px}
  .relc__meta::before{content:attr(data-cat);display:block;width:100%;color:var(--milk);opacity:.7}
}
@media (max-width:600px){
  .art--v2 .prose p,.art__p,.art__ul li,.art__ol li{font-size:18px;line-height:1.6}
  .art--v2 .prose p.lead{font-size:20px}
  .art--v2 .art__lead{font-size:17.5px}
  .art--v2 .co__line{font-size:20px}
}
@media (prefers-reduced-motion:reduce){.art__tocm-b i,.faq__x,.relc__m img{transition:none}}

/* ---------- 10. Компоненты волны 2 (08.10): кадры с естественными пропорциями, ряды кадров, календарный план,
   схема команды, вопросы-ответы, карточка брифа, версии под площадки. Разметка — в комментарии каждого блока ниже. ---------- */
/* Кадр-полоса (триптих, 4 варианта генерации, пара «эскиз → кадр»): <figure class="art__fig art__fig--nat"><img …></figure> — без обрезки */
.art__fig--nat{aspect-ratio:auto;background:none}
.art__fig--nat img{position:static;display:block;width:100%;height:auto}
/* Ряд кадров: <div class="art__figs art__figs--2|3|4"><figure><img></figure>…</div>; 8 кадров в --4 — сетка 4×2.
   Естественные пропорции в один ряд одной высоты: .art__figs--nat + style="--c:1.64fr 1.78fr" (доли = ширина/высота кадров) */
.art__figs{display:grid;grid-template-columns:var(--c,repeat(2,minmax(0,1fr)));gap:clamp(8px,1vw,12px);margin:clamp(24px,3vw,40px) 0 0}
.art__figs>figure{margin:0;position:relative;aspect-ratio:var(--ar,16/9);border-radius:var(--r-ui);overflow:hidden;background:var(--bone-2)}
.art__figs>figure>img,.art__figs>figure>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.art__figs>figure>video{opacity:0;transition:opacity .8s}
.art__figs>figure>video.is-ready{opacity:1}
.art__figs--3{--c:repeat(3,minmax(0,1fr))}
.art__figs--4{--c:repeat(4,minmax(0,1fr))}
.art__figs--nat>figure{aspect-ratio:auto;background:none}
.art__figs--nat>figure>img{position:static;display:block;width:100%;height:auto}
.art__figs .tag{position:absolute;left:8px;bottom:8px;background:rgba(26,20,18,.62);color:var(--milk);box-shadow:none;font-size:12.5px;padding:5px 9px;border-radius:var(--r-pill)}
/* Версии одного кадра 16:9 / 1:1 / 9:16 — одной высоты: доли колонок = пропорции кадров */
.art__figs--fmt{--c:1.778fr 1fr .5625fr;align-items:end}
html.flat .art__figs video{display:none}

/* Календарный план (как шаг 03 «Презентации ЖК»): .art__gc > p.art__gc-h + ol > li(style="--a:1;--b:3") > span.art__gc-l + span.art__gc-t > i */
.art__gc{margin:clamp(24px,3vw,40px) 0 0;padding:clamp(18px,2vw,24px);border-radius:var(--r-card);background:var(--bone);max-width:800px}
.art__gc-h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;font-size:15px;line-height:1.3;color:var(--mute-l);margin:0 0 14px}
.art__gc-h b{font-weight:500;color:var(--ink);font-size:17px}
.art__gc-w{display:grid;grid-template-columns:minmax(150px,34%) 1fr;gap:0 14px;font-size:12.5px;color:var(--mute-l);margin-bottom:6px}
.art__gc-w span{display:grid;grid-template-columns:repeat(4,1fr)}
.art__gc-w i{font-style:normal;padding-left:6px;border-left:1px solid var(--line-l)}
.art__gc ol{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.art__gc li{display:grid;grid-template-columns:minmax(150px,34%) 1fr;gap:0 14px;align-items:center;font-size:14.5px;line-height:1.25;color:#2E2420}
.art__gc-l b{font-weight:500;color:var(--brick);margin-right:8px;font-variant-numeric:tabular-nums}
.art__gc-t{position:relative;height:12px;border-radius:6px;background:rgba(26,20,18,.06);background-image:linear-gradient(90deg,transparent calc(25% - 1px),var(--line-l) calc(25% - 1px),var(--line-l) 25%,transparent 25%,transparent calc(50% - 1px),var(--line-l) calc(50% - 1px),var(--line-l) 50%,transparent 50%,transparent calc(75% - 1px),var(--line-l) calc(75% - 1px),var(--line-l) 75%,transparent 75%)}
.art__gc-t i{position:absolute;top:0;bottom:0;left:calc((var(--a) - 1) * 5%);width:calc((var(--b) - var(--a) + 1) * 5%);border-radius:6px;background:var(--brick)}
.art__gc li.is-mark .art__gc-t i{background:var(--ink)}

/* Схема команды: .art__org > p.art__org-top + ul.art__org-row > li */
.art__org{margin:clamp(24px,3vw,40px) 0 0;display:grid;justify-items:center;gap:0;max-width:800px}
.art__org-top{padding:14px 22px;border-radius:var(--r-ui);background:var(--ink);color:var(--milk);font-size:17px;font-weight:500;letter-spacing:-.01em;position:relative;margin:0}
.art__org-top::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:22px;background:var(--brick)}
.art__org-row{list-style:none;margin:22px 0 0;padding:22px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%;position:relative}
.art__org-row::before{content:"";position:absolute;top:0;left:12.5%;right:12.5%;height:1px;background:var(--brick)}
.art__org-row li{position:relative;text-align:center;padding:14px 10px;border-radius:var(--r-ui);background:var(--bone);font-size:15.5px;line-height:1.3;color:var(--ink)}
.art__org-row li::before{content:"";position:absolute;left:50%;bottom:100%;width:1px;height:22px;background:var(--brick)}

/* Вопросы-ответы в тексте (не аккордеон): dl.art__qa > div > dt + dd */
.art__qa{margin:clamp(20px,2.4vw,30px) 0 0;max-width:760px}
.art__qa>div{padding:16px 0 18px;border-top:1px solid var(--line-l)}
.art__qa>div:last-child{border-bottom:1px solid var(--line-l)}
.art__qa dt{font-weight:500;font-size:19px;line-height:1.35;letter-spacing:-.01em;color:var(--ink);margin-bottom:6px}
.art__qa dd{margin:0;font-size:18px;line-height:1.55;color:#2E2420}
.art--v2 .art__qa+.prose,.art--v2 .art__gc+.prose,.art--v2 .art__figs+.prose,.art--v2 .art__doc+.prose,.art--v2 .art__table+.prose{margin-top:clamp(20px,2.4vw,30px)}

/* Карточка брифа / версий (выдержка из документа): .art__doc > p.art__doc-k + .art__doc-row(span + p) | ul.art__doc-tiles */
.art__doc{margin:clamp(24px,3vw,40px) 0 0;padding:clamp(18px,2vw,26px);border-radius:var(--r-card);background:#fff;box-shadow:0 1px 0 var(--line-l),0 18px 40px -28px rgba(26,20,18,.35);max-width:760px}
.art__doc-k{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--brick);font-weight:500;margin:0 0 10px}
.art__doc-row{display:grid;grid-template-columns:120px 1fr;gap:4px 18px;padding:12px 0;border-top:1px solid var(--line-l)}
.art__doc-row span{font-size:14px;color:var(--mute-l);padding-top:2px}
.art__doc-row p{margin:0;font-size:17px;line-height:1.5;color:var(--ink)}
.art__doc-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.art__doc-tiles li{padding:12px;border-radius:var(--r-ui);background:var(--bone);display:grid;gap:4px}
.art__doc-tiles b{font-weight:500;font-size:16px}
.art__doc-tiles span{font-size:13.5px;line-height:1.35;color:var(--mute-l)}
.art__doc-p{margin:12px 0 0;font-size:15px;color:var(--mute-l)}

@media (max-width:700px){
  .art__figs--4,.art__figs--3{--c:repeat(2,minmax(0,1fr))}
  .art__figs--3>figure:first-child{grid-column:1 / -1}
  .art__figs--nat{--c:1fr !important}
  .art__gc{padding:16px 14px}
  .art__gc-w,.art__gc li{grid-template-columns:118px 1fr;gap:0 10px}
  .art__gc li{font-size:13px}
  .art__gc-l b{margin-right:5px}
  .art__org-row{grid-template-columns:1fr 1fr;padding-top:18px}
  .art__org-row::before,.art__org-row li::before{display:none}
  .art__org-top::after{height:18px}
  .art__doc-row{grid-template-columns:1fr;gap:2px}
  .art__doc-tiles{grid-template-columns:1fr 1fr}
  .art__qa dt{font-size:18px}
  .art__qa dd{font-size:17px}
}
/* перенос только на ≤900 (пара к .br-d из styles.css): <br class="br-m"> */
.br-m{display:none}
@media (max-width:900px){.br-m{display:inline}}
/* H1, у которого на узком экране строка шире колонки на несколько пикселей (без одиноких слов иначе не собрать): чуть меньший кегль только ≤900 */
@media (max-width:900px){main>.phead.phead--art2 h1.hl.hl--fit{font-size:min(var(--h1-s),9.1vw)}}

/* 1007l обложки «Свет» (site/_tools/blog_covers): в «Других статьях» <picture> — на ≤900 квадрат <slug>_sq.webp под миниатюру 112 px.
   display:contents — img остаётся прямым ребёнком .relc__m, прежние правила работают без изменений. */
.relc__m picture{display:contents}

/* ===== 07.10 (Алексей): шире колонка текста, оглавление ближе; обложка статьи — баннером в начале статьи ===== */
@media (min-width:1101px){.art__grid{grid-template-columns:minmax(0,1fr) minmax(240px,300px);justify-content:stretch;gap:clamp(40px,4.4vw,72px)}}
.art--v2 .prose,.art--v2 .prose p,.art__p,.art--v2 .art__lead,.art__ul,.art__ol,.art--v2 .co__line,.art__answer{max-width:880px}
.art--v2 .steps,.art--v2 .roles,.art--v2 .callout,.art__note,.art__table{max-width:none}
.art__cover{margin:0 0 clamp(36px,4.4vw,64px);border-radius:var(--r-frame,28px);overflow:hidden;background:var(--night);aspect-ratio:16/7}
.art__cover img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:700px){.art__cover{aspect-ratio:16/7;border-radius:var(--r-card,20px);margin-bottom:28px}}

/* 07.10 (Алексей: «подсветка активного пункта грубовата»): оглавление — мягкая плашка со скруглением,
   без обрезки слева (раньше отрицательный отступ уходил под overflow контейнера и срезал скругление и полосу) */
.art__toc{padding:18px 6px 6px 0;margin-left:-6px;padding-left:6px}
.art__toc ol{gap:4px}
.art__toc li a,.art__toc-faq a{grid-template-columns:28px 1fr;gap:8px;margin-left:0;padding:9px 12px 10px;border-radius:14px;box-shadow:none;text-wrap:pretty;transition:color .25s,background .25s}
.art__toc li a i,.art__toc-faq a i{transition:color .25s}
.art__toc li a:hover,.art__toc-faq a:hover{background:rgba(26,20,18,.035)}
.art__toc li a.is-active,.art__toc-faq a.is-active{color:var(--ink);background:rgba(var(--brick-rgb),.07);box-shadow:inset 0 0 0 1px rgba(var(--brick-rgb),.14);font-weight:400}
.art__toc li a.is-active i{font-weight:500}
.art__toc-faq{margin-top:12px;padding-top:12px}
.art__toc ol{list-style:none;margin:0;padding:0}
.art__toc ol>li::marker{content:none}
.relc__m:has(img[src*="/blog/covers/"]){aspect-ratio:16/10}

/* 07.10 (Алексей: «шире текст, шрифт как есть»): все блоки статьи — на ширину колонки текста, единый правый край.
   07.10 одобрено Алексеем: класс .art--full стоит во всех статьях и в шаблоне */
.art--full .art__body .prose,.art--full .art__body .prose p,.art--full .art__body .art__p,.art--full .art__body .art__lead,.art--full .art__body .art__ul,.art--full .art__body .art__ol,.art--full .art__body .co__line,.art--full .art__body .art__answer,
.art--full .art__body .steps,.art--full .art__body .roles,.art--full .art__body .callout,.art--full .art__body .art__note,.art--full .art__body .art__table,.art--full .art__body .mform,.art--full .art__body .art__figs,.art--full .art__body .art__fig,.art--full .art__body .faqb,.art--full .art__body details,
.art--full .art__body .art__qa,.art--full .art__body .art__gc,.art--full .art__body .art__org{max-width:none} /* 07.10 (Алексей): вопросы-ответы, календарный план и оргсхема — на ту же ширину, что и текст */

/* 07.10 (Алексей): .art--full (все статьи) — крупнее текст под широкую колонку (строка ~95 знаков) и H2 в одну строку (ручные переносы br-d сняты) */
@media (min-width:1101px){
  .art--full .art__body .prose p,.art--full .art__body .art__p,.art--full .art__body .art__ul li,.art--full .art__body .art__ol li{font-size:21px;line-height:1.6}
  .art--full .art__body .art__lead{font-size:22px}
  .art--full .art__body .art__answer{font-size:clamp(23px,1.75vw,25px)}
  .art--full .art__body .steps p,.art--full .art__body .callout p,.art--full .art__body .art__note p{font-size:19.5px}
  .art--full .art__body .art__table td,.art--full .art__body .art__table th{font-size:18px}
  .art--full .art__body .art__qa dt{font-size:22px;line-height:1.35}
  .art--full .art__body .art__qa dd{font-size:21px;line-height:1.6}
  .art--full .art__h2 br.br-d{display:none}
  .art--full .art__h2{text-wrap:balance}
}

/* 07.10 (Алексей): .art--full (все статьи) — «Частые вопросы» в две колонки на всю ширину колонки статьи; аккуратный фокус у вопросов */
@media (min-width:1101px){
  .art--full .art__faq{max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,3.4vw,56px);align-items:start}
  .art--full .art__faq>:not(.faq__i){grid-column:1 / -1}
}
.art__faq .faq__i summary:focus{outline:none}
.art__faq .faq__i summary:focus-visible{outline:2px solid var(--brick);outline-offset:4px;border-radius:12px}

/* 08.10 волна 3: подпись под рядом кадров (<div class="art__figs">…<figcaption>), подпись под кадром-полосой (.art__fig--nat > figcaption),
   ряд из шести кадров .art__figs--6 (3×2, на ≤700 — 2×3), абзацы внутри ответа в .art__qa */
.art__figs>figcaption{grid-column:1 / -1;font-size:14px;line-height:1.45;color:var(--mute-l);margin-top:4px;padding-left:12px;box-shadow:inset 2px 0 0 var(--brick)}
.art__fig--nat{overflow:visible;border-radius:0}
.art__fig--nat>img{border-radius:var(--r-card)}
/* 08.10 волна 4: схемы «Свет» (site/_tools/blog_schemes) — <figure class="art__fig art__fig--nat"><picture><source media="(max-width:700px)" …><img></picture> */
.art__fig--nat>picture{display:block}
.art__fig--nat>picture>img{border-radius:var(--r-card)}
.art__figs--6{--c:repeat(3,minmax(0,1fr))}
.art__qa dd p{margin:0}
.art__qa dd p+p{margin-top:8px}
@media (max-width:700px){ .art__figs--6{--c:repeat(2,minmax(0,1fr))} }

/* 14.10 (Алексей): еле заметная тёмная обводка аватарки автора, как на «О студии» */
.art__ava{box-shadow:0 0 0 1px rgba(26,20,18,.14)}
