/* прогон 31 — слой поверх leaf30 */
/* ── прогон 31 · rh=d31a / d31c: ОДНА виньетка художника на весь сайт (рецензент 30: «пять разных микросюжетов — скрапбук; оставить один знак»;
   Роман 31.10: разделители — от ChatGPT, в тематике сайта). Те же пять стыков, что у gen29, одна картинка. Встаёт в середину ровного шага zg=even. */
html:is([data-rh="d31a"],[data-rh="d31c"]) :is([data-sec="courses"],[data-sec="how"],[data-sec="tests"],[data-sec="prices"],[data-sec="zapis"]):not([hidden])::before{content:"";display:block;
  width:calc(420 * var(--u));height:calc(64 * var(--u));margin:calc(var(--sec) * .5 * var(--u)) auto calc(var(--sec) * -.5 * var(--u) + 40 * var(--u));
  background:var(--rh31) 50% 50%/contain no-repeat}
html[data-rh="d31a"]{--rh31:url(img31/rh31-a.webp)}
html[data-rh="d31c"]{--rh31:url(img31/rh31-c.webp)}
html[data-zg="even"]:is([data-rh="d31a"],[data-rh="d31c"]) main.wrap > [data-sec]:is([data-sec="courses"],[data-sec="how"],[data-sec="tests"],[data-sec="prices"],[data-sec="zapis"]):not([hidden])::before{
  height:calc(64 * var(--u))!important;width:calc(420 * var(--u))!important;   /* рецензент 31: при 84 виньетка почти касалась стрелок карусели, хвост ленты торчал из-под шапки при переходе к разделу */
  margin:calc((var(--zg) - 64) * .5 * var(--u)) auto calc((var(--zg) - 64) * -.5 * var(--u) - 64 * var(--u))!important}
@media (max-width:1023.98px){
  html:is([data-rh="d31a"],[data-rh="d31c"]) :is([data-sec="courses"],[data-sec="how"],[data-sec="tests"],[data-sec="prices"],[data-sec="zapis"]):not([hidden])::before{width:80%;height:calc(52 * var(--u))}
  html[data-zg="even"]:is([data-rh="d31a"],[data-rh="d31c"]) main.wrap > [data-sec]:is([data-sec="courses"],[data-sec="how"],[data-sec="tests"],[data-sec="prices"],[data-sec="zapis"]):not([hidden])::before{
    height:calc(52 * var(--u))!important;width:80%!important;margin:calc((var(--zg) - 52) * .5 * var(--u)) auto calc((var(--zg) - 52) * -.5 * var(--u) - 52 * var(--u))!important}
}
/* ── прогон 31 · заголовки разделов одним кеглем и при zh=as (выбор Романа на пульте 30: номер висит слева).
   Раньше при zh=as разделы с урезанной по высоте единицей (--u в «Направлениях», «Преподавателях», «Обучении», «Ценах») давали 52 против 62 на 1710 (REVIEW30 п. 7).
   Раскладку «как сейчас» не трогаю — только кегль от единицы страницы --uh. */
html[data-zh="as"] .rubric h2{font-size:calc(var(--fs-h2) * var(--uh))!important}
/* при zh=as заголовок длиннее 16em переносился на вторую строку («Два теста — и весь час на практику», «Английский между уроками» с висячим номером) →
   на 1710 «Тесты», «Вопросы», «Между уроками» выходили за экран (806 / 795 / 822). Строка шире, как в zh=grid; раскладка с висячим номером — прежняя. */
html[data-zh="as"] .rubric h2{max-width:22em}
html[data-zh="as"] .rubric .rubric-sub{max-width:48em}
@media (min-width:1024px){ html[data-zh="as"] .rubric{min-height:0!important} }
/* ── прогон 31 · smoke 390: кнопки-названия «Витрины» (courses z30g) 27 px высотой — цель касания < 44 (строка кликабельна целиком через ::after, но сама кнопка мала) */
@media (max-width:1023.98px){ .v-z30g .zv-nm{display:inline-flex!important;align-items:center;min-height:44px!important} }
/* smoke 360: надпись «✛ Запись на пробный урок» над заголовком «Записи» 13,8 px — не меньше 16 */
.v-y31d .zd1-kick{font-size:max(16px, calc(15 * var(--u)))!important}
