/* прогон 30 — слой поверх leaf29 */
/* прогон 30 */

/* ══ Z30: общий слой студии (дизайнер Z). Каждый пункт — на пульте с «как сейчас» рядом. ══ */

/* ── Z30: шрифт текста (html[data-ft]) — грани подменяются в leaf30.js (переопределяет и жёстко прописанный "Vollkorn" в разделах).
   Здесь — только поправки кегля/ритма под каждую гарнитуру. */
html[data-ft="sans"] body{letter-spacing:-.003em}
html[data-ft="sans"] .rubric .rubric-sub{letter-spacing:0}

/* ── Z30: заголовок раздела по сетке (html[data-zh="grid"]) — номер в строке, заголовок и подзаголовок с левого края содержимого,
   у всех разделов один кегль и один шаг до содержимого (AUDIT-Z п.1; X просил «одну левую линию» — то же) */
html[data-zh="grid"] .rubric{min-height:0!important;padding:0 0 calc(30 * var(--u))!important;display:block!important;margin-left:0!important}
html[data-zh="grid"] .rubric h2{font-size:calc(54 * var(--u))!important;line-height:1.06!important;max-width:22em!important;letter-spacing:-.012em}
html[data-zh="grid"][data-nst="gold"] .rubric h2:has(> .fol){padding-left:0!important}
html[data-zh="grid"][data-nst="gold"] .rubric h2 > .fol{position:static!important;display:inline!important;width:auto!important;text-align:left!important;margin-right:.26em!important}
html[data-zh="grid"] .rubric .rubric-sub{padding-left:0!important;margin:calc(12 * var(--u)) 0 0!important;max-width:40em!important;color:#3b3d43!important;
  font-size:calc(19 * var(--u))!important;line-height:1.45!important}
@media (max-width:1023.98px){
  html[data-zh="grid"] .rubric{padding:0 0 calc(18 * var(--u))!important}
  html[data-zh="grid"] .rubric h2{font-size:calc(36 * var(--u))!important}
  html[data-zh="grid"] .rubric .rubric-sub{font-size:max(16px, calc(17 * var(--u)))!important}
}

/* ── Z30: ровный шаг между разделами (html[data-zg="even"]) — один зазор на каждом стыке; виньетка-разделитель
   встаёт в середину этого же зазора, а не добавляет свой (было 86 / 140 / 185 / 263 px) */
html[data-zg="even"]{--zg:132}
html[data-zg="even"] main.wrap > [data-sec]:not([data-sec="hero"]):not([data-sec="contacts"]):not([data-sec="foot"]) > section:is(#courses,#teachers,#board,#reviews,#how,#tests,#prices,#faq,#zapis,#channel,[id]){margin-top:calc(var(--zg) * var(--u))!important}
html[data-zg="even"] main.wrap > [data-sec]:not([hidden]){margin-top:0!important}   /* leaf24 тянул «Между уроками» вверх на 60 px */
html[data-zg="even"][data-rh="gen29"] main.wrap > [data-sec]:not([hidden])::before{height:calc(84 * var(--u))!important;width:calc(380 * var(--u))!important;
  margin:calc((var(--zg) - 84) * .5 * var(--u)) auto calc((var(--zg) - 84) * -.5 * var(--u) - 84 * var(--u))!important}
html[data-zg="even"] main.wrap > [data-sec="contacts"] > section:is(#contacts,[id]){margin-top:calc(var(--zg) * var(--u))!important}
/* разделы с внутренним верхним полем (секция начинается не с заголовка) — поле снимаем, чтобы шаг был виден одинаковым */
html[data-zg="even"] main.wrap > [data-sec] > section:is(#how,#prices,#zapis,#channel){padding-top:0!important}
@media (max-width:1023.98px){
  html[data-zg="even"]{--zg:72}
  html[data-zg="even"][data-rh="gen29"] main.wrap > [data-sec]:not([hidden])::before{height:calc(56 * var(--u))!important;width:72%!important;
    margin:calc((var(--zg) - 56) * .5 * var(--u)) auto calc((var(--zg) - 56) * -.5 * var(--u) - 56 * var(--u))!important}
}

/* ── Z30: карточки (html[data-zc="crisp"]) — белее листа и с чёткой каймой тушью вместо размытой тени (X: «серость: светлая коробка
   с мягкой тенью на светлом пергаменте, разница 3–5 %»). Переменные --z-card-bg / --z-card-line — для новых вариантов X и Y. */
:root{--z-card-bg:#fffdf8;--z-card-line:rgba(36,38,43,.15);--z-card-lift:0 1px 0 rgba(36,38,43,.05)}   /* без размытой тени: кайма + тонкая нижняя черта (договорились с X) */
html[data-zc="crisp"] :is(.t10,.rv17-card,.d7-box,.x10-after,.h18,.pz-post,.zd1-formbox,.fm-page){
  background-color:var(--z-card-bg)!important;box-shadow:inset 0 0 0 1px var(--z-card-line),var(--z-card-lift)!important}
html[data-zc="crisp"] .pz-box{box-shadow:inset 0 0 0 1px var(--z-card-line)!important}
html[data-zc="crisp"] .rubric .rubric-sub, html[data-zc="crisp"] .t-soft{color:#3b3d43}

/* ══ Z30 · круг 2 (по REVIEW30) ══ */

/* ── Z30 круг 2: один h2 на всех ширинах (REVIEW30 п.7: «на 1710 у #courses, #how и #prices h2 по 54, у остальных 64»).
   Причина — эти разделы держат высоту единицей, урезанной высотой экрана (--u = min(ширина, высота)). Заголовок берёт единицу страницы
   --uh: она вычисляется на <html> и наследуется готовым значением, переопределение --u внутри раздела её не трогает. */
html{--uh:var(--u)}
html[data-zh="grid"] .rubric h2{font-size:calc(54 * var(--uh))!important}
html[data-zh="grid"] .rubric .rubric-sub{font-size:calc(19 * var(--uh))!important;margin-top:calc(12 * var(--uh))!important}
html[data-zh="grid"] .rubric{padding-bottom:calc(30 * var(--uh))!important}
@media (max-width:1023.98px){
  html[data-zh="grid"] .rubric h2{font-size:calc(36 * var(--uh))!important}
  html[data-zh="grid"] .rubric .rubric-sub{font-size:max(16px, calc(17 * var(--uh)))!important}
  html[data-zh="grid"] .rubric{padding-bottom:calc(18 * var(--uh))!important}
  /* поле страницы на телефоне 16 px (было 12; у «С чего начать» и «Записи» 26–31) — одна левая линия на 390 */
  html[data-zh="grid"]{--gut:16}
}

/* ── Z30 круг 2: разделители (REVIEW30 п.8: «мелкие виньетки = мелкие полупрозрачные рисунки из REJECTED; пять подряд — скрапбук»).
   rh=air30 — виньеток нет совсем, стык держит один ровный шаг (zg) и смена плит; ✛ тоже не ставлю: мелкий знак — тот же мелкий рисунок. */
html[data-rh="air30"] main.wrap > [data-sec]::before{content:none!important;display:none!important}

/* ── Z30 круг 2: подписи ≥ 16 px CSS (REVIEW30 п.6). Капитель с разрядкой — не меньше 15. Здесь — общие места; свои разделы X и Y правят у себя. */
html[data-zh="grid"] .t26t-tab .nw-pill{font-size:15px!important;letter-spacing:.1em}

/* ── Z30 круг 2: h2 одним кеглем и для заголовков вне .rubric — через общий токен --fs-h2 (Y: «Запись» берёт calc(var(--fs-h2) * var(--u))) */
html[data-zh="grid"]{--fs-h2:54}
@media (max-width:1023.98px){ html[data-zh="grid"]{--fs-h2:36} }

/* ── Z30 круг 2: ритм плит (html[data-zr="bleed"]) — REVIEW30: «11 почти одинаковых белых коробок, нет ни одной ударной секции».
   Светлые цветные плиты-события идут до краёв окна: «Отзывы» (плита y30g/y30m), «Запись» (y30k у Y уже такая), «Контакты» (z30f).
   Между ними — лист. Содержимое плиты стоит на общей левой линии (внутреннее поле плиты по горизонтали снято). Ширина — тенью псевдоэлемента, обрезанной сверху/снизу: в прокрутку вбок не идёт. */
html[data-zr="bleed"] .y30g-plate{border-radius:0!important;box-shadow:none!important;background:none!important;z-index:0;padding-inline:0!important}
html[data-zr="bleed"] .y30g-plate::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--tt);
  box-shadow:0 0 0 100vmax var(--tt);clip-path:inset(0 -100vmax);transition:background .45s ease,box-shadow .45s ease}   /* тень вместо ширины: в прокрутку вбок не идёт */
html[data-zr="bleed"] .y30c-plate{border-radius:0!important;box-shadow:none!important;background:none!important;z-index:0;padding-inline:0!important}
html[data-zr="bleed"] .y30c-plate::before{content:"";position:absolute;z-index:-1;inset:0;background:#e8eef6;box-shadow:0 0 0 100vmax #e8eef6;clip-path:inset(0 -100vmax)}
@media (max-width:1023.98px){ html[data-zr="bleed"] :is(.y30g-plate,.y30c-plate){padding-inline:0!important} }

/* ── Z30 круг 2: формула заголовка (html[data-zt="acc"], разметку ставит leaf30.js) — одно слово курсивом лазурью, остальное тушью прямым.
   Тот же приём, что у шапки и у «С чего начать»: на всей странице одна система. Курсив — Garamond заголовков, вес тот же. */
html[data-zt="acc"] :is(.rubric h2, .zd1-h, .y30k-h) em{font-style:italic;font-weight:500;color:var(--azure,#29466f);letter-spacing:-.005em}

/* ── Z30 круг 2: «паспорт» обработки картинок (направление Романа 01.11, bookclub): у всех одна обработка, а не разная.
   Картина — в бумажном паспарту (поле листа + кайма тушью 1 px); фигура или вещь — без фона, с одной и той же бумажной тенью.
   Переменные для X и Y: --z-mat (поле паспарту), --z-mat-line, --z-obj-shadow. CSS-тонировки картинок нет. */
:root{--z-mat:calc(12 * var(--u));--z-mat-line:rgba(36,38,43,.15);--z-obj-shadow:drop-shadow(calc(6 * var(--u)) calc(12 * var(--u)) calc(11 * var(--u)) rgba(40,34,22,.24))}

/* ── Z30 круг 2: не больше трёх цветных плит на страницу (bookclub: «цветных плиток только 3»). При zr=bleed цветные — «Отзывы», «Запись», «Контакты»;
   окно канала в «Между уроками» из бежевой плиты становится листом с каймой (Y в круге 1: «плита канала бежево-серая»). */
html[data-zr="bleed"] #channel .pz-box{background-color:var(--z-card-bg,#fffdf8)!important;box-shadow:inset 0 0 0 1px var(--z-card-line)!important}
