/* =====================================================================
   rusgoncharov · theme.css
   1. База и утилиты   2. Кнопки   3. Плашки   4. Карточка
   5. Шапка (Task 12)  6. Мобильное меню (Task 12)  7. Футер (Task 13)
   8. Подписка (Task 13)  9. Шаблоны (Task 14)
   10. Главная (план 2b)  11. Хаб и архивы (план 2a)  12. Страницы (план 3a-1)
   13. Формы (план 3a-2)  14. Консультации (план 3a-2)  15. Материал (план 3c-1)
   16. Памятка (план 3c-2a)  17. Медиа (план 3c-2b)  18. Аудиокниги (план 3b-1)
   19. Лендинг аудиокниги (план 3b-2)  20. Материалы за подписку и гайд (план 3b-3)
   Цвета — только через var(--wp--preset--color--*) и var(--wp--custom--*),
   тёмные значения переопределяет dark.css.
   ===================================================================== */

/* ---------- 1. База ---------- */
*, *::before, *::after { box-sizing: border-box; }
/* --rg-bar-offset — на сколько всё, что цепляется к низу липкой шапки, опущено панелью WordPress:
   0 у гостя, высота панели у вошедшего (ставится в разделе 5, блок «Панель WordPress»). Им пользуются
   липкие боковые колонки (.rg-entry__side и шесть интро-колонок страниц). scroll-padding-top живёт
   на <html>, а переменная — на <body>, поэтому там надбавка своя, тем же значением. */
:root { --rg-bar-offset: 0px; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--wp--custom--header-height) + 24px); }
body { -webkit-font-smoothing: antialiased; margin: 0; min-height: 100vh; }
img, video { max-width: 100%; height: auto; display: block; }
:focus-visible { outline: 2px solid var(--wp--preset--color--electric); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3, .rg-card__title { text-wrap: balance; }
p { text-wrap: pretty; }
:is(.rg-entry, .rg-page) .entry-content { hyphens: auto; font-size: var(--wp--preset--font-size--body-l); }
:is(.rg-entry, .rg-page) .entry-content { hyphenate-limit-chars: 7 3 3; -webkit-hyphenate-limit-before: 3; -webkit-hyphenate-limit-after: 3; } /* не отрывать слог из двух букв («ти-шине», «де-талям») — владелец, 25.09.2026 */
:is(.rg-entry, .rg-page) .entry-content li { hyphens: manual; text-wrap: pretty; } /* пункты списков короткие — перенос по слогам в них рвёт чтение, строка переносится целым словом */
:is(.rg-entry, .rg-page) .entry-content > * { margin-block: 0 1em; }
:is(.rg-entry, .rg-page) .entry-content h2 { margin-block: 1.6em 0.6em; }
:is(.rg-entry, .rg-page) .entry-content h3 { margin-block: 1.4em 0.5em; }
:is(.rg-entry, .rg-page) .entry-content a { text-decoration: underline; text-decoration-color: var(--wp--preset--color--electric); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
@media (hover: hover) { :is(.rg-entry, .rg-page) .entry-content a:hover { text-decoration-thickness: 2px; color: var(--wp--preset--color--electric); } }
strong { font-weight: 600; }
em { font-style: normal; font-weight: 600; }
.rg-container { max-width: var(--wp--custom--container); margin-inline: auto; padding-inline: clamp(20px, 4vw, 40px); }
.rg-section { padding-block: var(--wp--preset--spacing--64); }
@media (min-width: 1024px) { .rg-section { padding-block: var(--wp--preset--spacing--96); } }
.rg-label { font-size: var(--wp--preset--font-size--label); letter-spacing: .08em; text-transform: uppercase; font-weight: 600; line-height: 1.2; color: var(--wp--preset--color--text-2); }
h2.rg-label { margin: 0; }
.rg-meta { font-size: var(--wp--preset--font-size--caption); font-weight: 500; color: var(--wp--preset--color--text-3); }
.rg-ink-glow { background: var(--wp--preset--gradient--ink-glow); color: #fff; }
.rg-ink-glow .rg-label { color: var(--wp--preset--color--ink-text); }
.rg-block-placeholder { padding: 12px 16px; border: 1px dashed var(--wp--preset--color--border-strong); border-radius: 8px; color: var(--wp--preset--color--text-2); font-size: 14px; }
[hidden] { display: none !important; } /* атрибут hidden сильнее display у компонентов (.rg-helpful — flex) */
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Ядро печатает :where(.is-layout-flow|.is-layout-constrained) > * + * { margin-block-start: blockGap } — наши контейнеры задают расстояния сами. */
.wp-site-blocks > * { margin-block-start: 0; }
.rg-card > * + *, .rg-card__body > * + *, .rg-footer__col > * + *, .rg-footer__grid > * + *, .rg-subscribe > * + *, .rg-subscribe__text > * + *, .rg-subscribe__side > * + *,
.rg-entry > * + *, .rg-mobile-menu__body > * + *, .rg-header__inner > * + *, .rg-pills > * + *, .rg-archive__head > * + *,
.rg-post-grid > * + *, .rg-post-list > * + *, .rg-hub > * + *,
.rg-hub__intro > * + *, .rg-hub__intro-text > * + *, .rg-hub__channels > * + *, .rg-hub__block > * + *,
.rg-home-hero > * + *, .rg-home-hero__text > * + *, .rg-home-pillars > * + *, .rg-pillars > * + *, .rg-pillar > * + *, .rg-home-blog > * + *, .rg-home-blog__inner > * + *, .rg-home-blog__intro > * + *, .rg-home-blog__channels > * + *, .rg-home-blog__start > * + *, .rg-home-blog__new > * + *,
.rg-home-thought-wrap > * + *, .rg-thought > * + *, .rg-home-practice > * + *, .rg-home-practice__inner > * + *, .rg-home-practice__grid > * + *, .rg-project > * + *, .rg-project__body > * + *, .rg-consult > * + *, .rg-consult__text > * + *, .rg-consult__asks > * + *, .rg-home-book > * + *, .rg-home-book__text > * + *, .rg-home-book__next > * + *, .rg-home-about > * + *, .rg-home-about__inner > * + *, .rg-home-about__text > * + * { margin-block-start: 0; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; } }

/* Оптическое выравнивание крупных заголовков (28.09.2026, DESIGN-SYSTEM §5а — та же компенсация, что на обложках).
   Класс rg-oa ставит типограф rg-core (rg_optical_h1) только h1 на букву с вертикальной основой (П, Р, К, В, Н…):
   у неё в Onest «чернила» начинаются на ~0,075 em правее края, и заголовок 40–60 px стоял на 1–3 px правее лида.
   Круглые и Т/Д/У класса не получают — они и так стоят по краю. Специфичность 0,2,1 — выше .rg-archive__head .rg-feed__title. */
h1.rg-oa:not(.has-text-align-center) { margin-left: -0.035em; }
h1.rg-oa.rg-home-hero__title:not(.has-text-align-center) { margin-left: -0.045em; }

/* ---------- 2. Кнопки ---------- */
.rg-btn, .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 48px; padding: 0 24px; border-radius: var(--wp--custom--radius-pill);
  font-size: var(--wp--preset--font-size--small); font-weight: 600; line-height: 1; text-decoration: none; white-space: nowrap;
  background: var(--wp--custom--accent-surface); color: #fff; border: 0; cursor: pointer;
  transition: background-color .15s ease-out, background .15s ease-out, color .15s ease-out, transform .15s ease-out, border-color .15s ease-out;
}
.rg-btn:active, .wp-block-button__link:active { transform: translateY(1px); }
@media (hover: hover) { .rg-btn:hover, .wp-block-button__link:hover { background: var(--wp--custom--accent-surface-hover); color: #fff; } }
.rg-btn--small, .is-style-small .wp-block-button__link { height: 40px; padding: 0 18px; font-size: 14px; }
.rg-btn--secondary, .is-style-secondary .wp-block-button__link { background: var(--wp--preset--color--tint); color: var(--wp--custom--tint-fg); }
@media (hover: hover) { .rg-btn--secondary:hover, .is-style-secondary .wp-block-button__link:hover { background: var(--wp--custom--tint-hover); color: var(--wp--custom--tint-fg); } }
.rg-btn--ghost, .is-style-ghost .wp-block-button__link { background: transparent; color: var(--wp--custom--accent-fg); border: 1.5px solid var(--wp--preset--color--border-strong); }
@media (hover: hover) { .rg-btn--ghost:hover, .is-style-ghost .wp-block-button__link:hover { background: var(--wp--preset--color--surface-2); border-color: var(--wp--custom--border-hover); color: var(--wp--custom--accent-fg); } }
.rg-btn--on-ink, .is-style-on-ink .wp-block-button__link { background: #fff; color: #12163F; }
@media (hover: hover) { .rg-btn--on-ink:hover, .is-style-on-ink .wp-block-button__link:hover { background: #E9EBFB; color: #12163F; } }
.rg-btn[disabled], .rg-btn[aria-disabled="true"] { background: var(--wp--preset--color--border-strong); color: #fff; cursor: not-allowed; }
.rg-icon-btn {
  display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px;
  background: transparent; border: 0; color: var(--wp--preset--color--text-2); cursor: pointer; padding: 0; text-decoration: none;
  transition: background-color .15s ease-out, color .15s ease-out;
}
@media (hover: hover) { .rg-icon-btn:hover { background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--fg); } }
.rg-ico { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
/* Официальные знаки соцсетей: заливные, currentColor, фирменный цвет — при наведении/фокусе клавиатурой (rg_theme_icon(), functions.php). */
.rg-ico--brand { fill: currentColor; stroke: none; transition: color .15s ease-out; }
@media (hover: hover) {
  a:hover .rg-ico--brand-telegram { color: #26A5E4; }
  a:hover .rg-ico--brand-vk { color: #0077FF; }
  a:hover .rg-ico--brand-max { color: #5533EE; }
  a:hover .rg-ico--brand-rutube { color: #ED143B; }
}
a:focus-visible .rg-ico--brand-telegram { color: #26A5E4; }
a:focus-visible .rg-ico--brand-vk { color: #0077FF; }
a:focus-visible .rg-ico--brand-max { color: #5533EE; }
a:focus-visible .rg-ico--brand-rutube { color: #ED143B; }
.rg-theme-toggle .rg-ico--sun { display: none; }
:root[data-theme="dark"] .rg-theme-toggle .rg-ico--moon { display: none; }
:root[data-theme="dark"] .rg-theme-toggle .rg-ico--sun { display: block; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .rg-theme-toggle .rg-ico--moon { display: none; }
  :root:not([data-theme="light"]) .rg-theme-toggle .rg-ico--sun { display: block; }
}

/* ---------- 3. Плашки ---------- */
.rg-pill { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; text-decoration: none; }
.rg-pill-format { background: var(--wp--preset--color--tint); color: var(--wp--custom--tint-fg); }
.rg-pill-format--razbor { background: var(--wp--custom--accent-surface); color: #fff; }
.rg-pill-rubric, .rg-pill-rubric a { background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--text-2); text-decoration: none; }
.rg-pill-ink { background: var(--wp--custom--accent-surface); color: #fff; }
.rg-pill-on-ink { background: rgba(255,255,255,.14); color: #fff; }
.rg-pill-private { background: var(--wp--preset--color--fg); color: var(--wp--preset--color--bg); }
.rg-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.rg-rubric-pills { display: contents; } /* плашки — прямые дети .rg-pills, раскладку задаёт flex родителя */

.rg-private-notice { display: flex; gap: 12px; align-items: center; padding: 12px 16px; border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--text-2); font-size: 14px; margin-bottom: 24px; }
.rg-social { display: flex; gap: 16px; align-items: center; color: var(--wp--preset--color--text-2); }
.rg-social__link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; color: inherit; border-radius: 999px; }
.rg-ico--14 { width: 14px; height: 14px; }
.rg-ico--16 { width: 16px; height: 16px; }
.rg-ico--20 { width: 20px; height: 20px; }
.rg-ico--22 { width: 22px; height: 22px; }
@media (hover: hover) { .rg-social__link:hover { color: var(--wp--preset--color--fg); background: var(--wp--preset--color--surface-2); } }
.rg-search-count { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--preset--color--text-2); margin: 0; }

/* ---------- 4. Карточка ---------- */
.rg-card {
  background: var(--wp--preset--color--surface); border-radius: var(--wp--custom--radius-l); box-shadow: var(--wp--custom--shadow-card);
  display: flex; flex-direction: column; overflow: hidden; height: 100%; border: 1px solid transparent;
  transition: box-shadow .15s ease-out, transform .15s ease-out, border-color .15s ease-out;
}
@media (hover: hover) { .rg-card:hover { box-shadow: var(--wp--custom--shadow-card-hover); transform: translateY(-2px); } }
.rg-card__cover, .rg-card__cover img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; background: var(--wp--preset--color--cover); margin: 0; }
.rg-card__body { padding: 24px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.rg-card__title { font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; font-weight: 700; letter-spacing: -0.015em; margin: 0; }
.rg-card__title a { text-decoration: none; color: inherit; }
.rg-card { position: relative; } /* вся карточка — ссылка на материал: растянутая ссылка заголовка поверх, плашки и кнопки — над ней */
.rg-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.rg-card .rg-pills, .rg-card__read, .rg-card__more { position: relative; z-index: 2; }
.rg-card__more { margin-left: auto; font-size: 14px; font-weight: 600; color: var(--wp--custom--accent-fg); text-decoration: none; white-space: nowrap; transition: color .15s ease-out; }
.rg-card__more span { display: inline-block; transition: transform .15s ease-out; }
@media (hover: hover) { .rg-card:hover .rg-card__more { color: var(--wp--preset--color--electric); } .rg-card:hover .rg-card__more span { transform: translateX(3px); } }
.rg-card__title a:focus-visible { outline: none; } .rg-card:has(.rg-card__title a:focus-visible) { outline: 2px solid var(--wp--preset--color--electric); outline-offset: 3px; }
.rg-card:not(:has(.rg-card__cover)) .rg-card__title { font-size: 26px; line-height: 1.14; letter-spacing: -0.02em; }
.rg-card__lead { font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--text-2); margin: 0; }
.rg-card__lead p { margin: 0; }
.rg-card__meta { margin-top: auto; display: flex; gap: 8px; align-items: center; }
.rg-card__cover--video { aspect-ratio: 16 / 9; background: #111318; position: relative; display: block; }
.rg-card__cover--video img { aspect-ratio: 16 / 9; }
.rg-card__cover--play { position: relative; display: block; } /* статья-видео: обложка 3:2, поверх «play» и длительность */
.rg-card__cover--play .rg-card__play { box-shadow: 0 2px 12px rgba(0,0,0,.35); } /* на светлом фото белый круг иначе теряется */
.rg-card__play { position: absolute; left: 50%; top: 50%; width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 999px; background: #fff; color: #111318; display: inline-flex; align-items: center; justify-content: center; }
.rg-card__play .rg-ico { fill: currentColor; stroke: none; margin-left: 2px; }
.rg-card__dur { position: absolute; right: 12px; bottom: 12px; font-size: var(--wp--preset--font-size--label); font-weight: 600; color: #fff; background: rgba(0,0,0,.45); border-radius: 6px; padding: 3px 8px; }
.rg-card__venue { position: absolute; left: 10px; bottom: 10px; max-width: calc(100% - 80px); padding: 3px 8px; border-radius: var(--wp--custom--radius-s); background: rgba(0,0,0,.45); color: #fff; font-size: var(--wp--preset--font-size--label); font-weight: 600; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rg-card__dot { color: var(--wp--preset--color--text-3); }
.rg-card__listen { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; } /* «или слушать 10 мин» у статьи с аудиоверсией, 27.09.2026 */
.rg-card__listen .rg-ico { width: 14px; height: 14px; flex: none; }
.rg-card__meta:has(.rg-card__listen) { flex-wrap: wrap; row-gap: 4px; } .rg-card__meta time { white-space: nowrap; } /* узкая карточка: дата не рвётся, «Читать →» при нехватке места уходит на следующую строку */
.rg-card--video .rg-card__title { font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; letter-spacing: -0.015em; }
.rg-card--flat { box-shadow: none; border-color: var(--wp--preset--color--border); }
@media (hover: hover) { .rg-card--flat:hover { box-shadow: none; border-color: var(--wp--custom--border-hover); } }
.rg-card--accent { background: var(--wp--preset--gradient--ink-glow); color: #fff; box-shadow: none; }
.rg-card--accent .rg-card__title a, .rg-card--accent .rg-card__lead { color: #fff; }
.rg-card--accent .rg-card__lead { color: rgba(255,255,255,.75); }
.rg-card--accent .rg-card__meta { color: rgba(255,255,255,.65); }
.rg-card--accent .rg-pill-format, .rg-card--accent .rg-pill-rubric { background: rgba(255,255,255,.14); color: #fff; }
.rg-card--accent .rg-card__read { margin-left: auto; }
.rg-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.rg-section__title { margin: 0; font-size: var(--wp--preset--font-size--h-2); line-height: 1.2; letter-spacing: -0.02em; }
.rg-section__sub { margin: 6px 0 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-2); max-width: 560px; }
.rg-link-quiet { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--preset--color--text-2); text-decoration: none; white-space: nowrap; }
@media (hover: hover) { .rg-link-quiet:hover { color: var(--wp--preset--color--electric); } }
@media (max-width: 599px) { .rg-section__head { flex-direction: column; align-items: flex-start; gap: 8px; } .rg-section__head .rg-link-quiet { white-space: normal; } }

/* ---------- 5. Шапка ---------- */
/* Прилипание — на обёртке template-part (.rg-header внутри неё места для sticky не имеет). */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
/* Панель WordPress на сайте (её видит только вошедший — владелец и помощница). Замерено в ядре
   (wp-includes/css/admin-bar.css) и в браузере:
     ≥783px — панель position: fixed, высота 32;
     601–782 — тоже fixed, высота 46;
     ≤600   — position: absolute, уезжает вверх вместе со страницей.
   Пока панель fixed, она стоит над липкой шапкой (её z-index 99999) и при прокрутке закрывает
   её верх — поэтому от 601px шапка липнет не к 0, а к нижней границе панели. Высоту берём из
   переменной ядра --wp-admin--admin-bar--height (32/46 переключает само ядро; наша admin.css
   трогает её только под html.wp-toolbar, то есть в админке). На ≤600 правила нет: панель там
   не перекрывает шапку.
   scroll-padding-top живёт на <html>, а класс admin-bar ядро ставит на <body>, отсюда :has().
   Правило CLAUDE.md про :has() — о состоянии, которое меняет скрипт; здесь класс приходит из
   разметки PHP и не меняется, а в браузере без :has() якорь просто ведёт себя как раньше. */
@media screen and (min-width: 601px) {
  body.admin-bar { --rg-bar-offset: var(--wp-admin--admin-bar--height, 32px); }
  body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--rg-bar-offset); }
  html:has(body.admin-bar) { scroll-padding-top: calc(var(--wp--custom--header-height) + 24px + var(--wp-admin--admin-bar--height, 32px)); }
}
.rg-header { background: var(--wp--custom--header-bg); backdrop-filter: blur(8px); border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-header__inner { height: 60px; align-items: center; gap: 16px; }
.rg-header__brand { margin: 0; font-size: 17px; font-weight: 700; letter-spacing: -0.02em; white-space: nowrap; }
.rg-header__brand a { color: inherit; text-decoration: none; }
.rg-header .rg-header__nav { display: none; }
.rg-header__tools { align-items: center; gap: 6px; }
.rg-header .rg-header__cta { display: none; }
.rg-header__tools .rg-theme-toggle { display: none; }
.rg-header__nav .wp-block-navigation-item__content { padding: 2px 0; border-bottom: 2px solid transparent; color: var(--wp--preset--color--fg); }
.rg-header__nav .current-menu-item > .wp-block-navigation-item__content { border-bottom-color: var(--wp--preset--color--electric); }
@media (hover: hover) { .rg-header__nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--electric); } }
@media (min-width: 960px) {
  .rg-header__inner { height: var(--wp--custom--header-height); gap: 32px; }
  .rg-header__brand { font-size: 18px; }
  .rg-header .rg-header__nav { display: flex; gap: 32px; }
  .rg-header .rg-header__cta { display: flex; }
  .rg-header__tools .rg-theme-toggle { display: inline-flex; }
  .rg-header__tools { gap: 6px; }
  .rg-burger { display: none; }
}

/* ---------- 6. Мобильное меню (DS §9) ---------- */
.rg-mobile-backdrop { position: fixed; inset: 0; z-index: 60; background: rgba(17,19,24,.4); opacity: 0; transition: opacity .2s ease-out; }
.rg-mobile-backdrop.is-open { opacity: 1; }
.rg-mobile-menu {
  position: fixed; left: 0; right: 0; top: 0; z-index: 61; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--fg);
  border-bottom: 1px solid var(--wp--preset--color--border); border-radius: 0 0 20px 20px; box-shadow: 0 24px 48px rgba(17,19,24,.18);
  transform: translateY(-100%); transition: transform .2s ease-out; max-height: 100vh; overflow-y: auto;
}
.rg-mobile-menu.is-open { transform: translateY(0); transition-duration: .2s; }
.rg-mobile-menu.is-closing { transition-duration: .15s; }
.rg-mobile-menu__bar { height: 60px; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-mobile-menu__brand { font-size: 17px; font-weight: 700; letter-spacing: -0.02em; }
.rg-mobile-menu__body { padding: 20px 20px 24px; display: flex; flex-direction: column; gap: 18px; }
.rg-mobile-menu__nav { gap: 2px !important; }
.rg-mobile-menu__nav .wp-block-navigation-item__content { position: relative; display: block; padding: 10px 0; font-size: 26px; font-weight: 700; letter-spacing: -0.02em; line-height: 1; color: var(--wp--preset--color--fg); }
.rg-mobile-menu__nav .current-menu-item > .wp-block-navigation-item__content::before { content: ""; position: absolute; left: -12px; top: 14px; bottom: 14px; width: 3px; border-radius: 2px; background: var(--wp--preset--color--electric); }
.rg-mobile-menu__foot { align-items: center; }
body.rg-menu-open { overflow: hidden; }
/* Открытое меню — оверлей на весь экран, и панель WordPress (у неё z-index: 99999) не должна
   торчать над ним: под панелью оказывалась верхняя полоса меню вместе с кнопкой закрытия.
   Поднимать z-index подложки и самой панели меню бесполезно — part «mobile-menu» подключён в
   конце header.html, то есть меню лежит внутри липкой шапки, а шапка со своим z-index: 50 и
   position: sticky создаёт контекст наложения; против панели играет шапка целиком. Поэтому на
   время открытого меню поднимаем шапку — вместе с ней уезжают вверх и подложка, и меню, и
   кнопка закрытия, порядок внутри контекста сохраняется. Сама шапка при этом за подложкой.
   Состояние, которое меняет скрипт, отражаем классом (rg-menu-open ставит theme.js), не :has(). */
body.rg-menu-open .wp-site-blocks > header.wp-block-template-part { z-index: 100000; }
@media (min-width: 960px) { .rg-mobile-menu, .rg-mobile-backdrop { display: none !important; } }
:root[data-theme="dark"] .rg-mobile-menu { box-shadow: none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .rg-mobile-menu { box-shadow: none; } }

/* ---------- 7. Футер ---------- */
.rg-footer { background: var(--wp--preset--color--surface); border-top: 1px solid var(--wp--preset--color--border); margin-top: auto; }
.rg-footer__grid { padding-top: 40px; padding-bottom: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 28px 24px; }
.rg-footer__col { display: flex; flex-direction: column; gap: 10px; }
.rg-footer__col--about { grid-column: 1 / -1; }
.rg-footer__col .rg-label { margin: 0 0 2px; }
.rg-footer__brand { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: -0.02em; }
.rg-footer__brand a { text-decoration: none; color: inherit; }
.rg-footer__desc { font-size: 14px; line-height: 1.55; color: var(--wp--preset--color--text-2); margin: 0; max-width: 300px; }
.rg-footer__mail { margin: 0; font-size: 14px; }
.rg-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rg-footer__list li { margin: 0; }
.rg-footer a { color: var(--wp--preset--color--fg); text-decoration: none; font-size: 14px; }
@media (hover: hover) { .rg-footer a:hover { color: var(--wp--preset--color--electric); } }
.rg-footer__bottom { padding-top: 16px; padding-bottom: 24px; border-top: 1px solid var(--wp--preset--color--border); font-size: 12px; line-height: 1.5; color: var(--wp--preset--color--text-3); flex-direction: column; gap: 8px; }
.rg-footer__bottom p { margin: 0; font-size: inherit; }
.rg-footer__bottom a { color: var(--wp--preset--color--text-3); font-size: inherit; }
@media (min-width: 960px) {
  .rg-footer__grid { padding-top: 56px; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }
  .rg-footer__col--about { grid-column: auto; }
  .rg-footer__brand { font-size: 20px; }
  .rg-footer__bottom { padding-top: 20px; padding-bottom: 28px; flex-direction: row; align-items: center; font-size: 13px; }
}

/* ---------- 8. Подписка ---------- */
.rg-subscribe { border-radius: var(--wp--custom--radius-l); padding: 32px 24px; display: flex; flex-direction: column; gap: 18px; }
.rg-subscribe__text { display: flex; flex-direction: column; gap: 12px; }
.rg-subscribe__title { font-size: 26px; line-height: 1.1; font-weight: 800; letter-spacing: -0.028em; margin: 0; color: inherit; }
.rg-subscribe__desc { font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.72); margin: 0; }
.rg-subscribe__form { position: relative; display: flex; flex-direction: column; flex-wrap: wrap; gap: 8px; }
/* Галочки согласия (спека ПДн §2.4) — внутри формы, отдельной строкой под полем и кнопкой при любой
   раскладке: flex-wrap у формы и полная ширина у блока галочек. Два класса — чтобы перебить .rg-check
   (раздел 10) и его .is-invalid: на чернильной заливке красный текст не читается. */
.rg-subscribe__consents { flex: 0 0 100%; display: flex; flex-direction: column; gap: 6px; margin-top: 6px; min-width: 0; }
.rg-check.rg-subscribe__check { gap: 8px; font-size: 13px; line-height: 1.45; color: rgba(255,255,255,.78); }
.rg-check.rg-subscribe__check input { flex: none; width: 16px; height: 16px; margin: 1px 0 0; accent-color: #fff; }
.rg-check.rg-subscribe__check a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.rg-check.rg-subscribe__check.is-invalid { color: #fff; }
.rg-check.rg-subscribe__check.is-invalid input { outline: 2px solid #fff; outline-offset: 2px; }
/* Блок rg/form (kind=subscribe) внутри чернильной панели: без карточки .rg-form, цвета — от панели. */
.rg-subscribe__promise { font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.88); margin: 0 0 12px; }
.rg-subscribe__alert { background: rgba(255,255,255,.16); border-radius: 12px; padding: 10px 14px; font-size: 14px; line-height: 1.45; color: inherit; margin: 0 0 12px; }
.rg-subscribe__hint { font-size: 13px; line-height: 1.5; color: rgba(255,255,255,.66); margin: 10px 0 0; }
/* Материал за подписку недоступен (гайд без выбранного PDF, спека 3b-3 §2): одна строка вместо полей. */
/* Цвета — белый с прозрачностью, как у .rg-subscribe__hint/__sent выше: у текста на чернильной заливке
   в теме нет своей переменной (раздел 8), а в тёмной теме панель переходит на surface — там переменные (dark.css). */
.rg-subscribe__soon { margin: 0; padding: 14px 18px; border-radius: 12px; background: rgba(255,255,255,.12); font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.88); }
.rg-subscribe__sent { background: rgba(255,255,255,.12); border-radius: var(--wp--custom--radius-l); padding: 20px 22px; display: flex; flex-direction: column; gap: 8px; }
.rg-subscribe__sent > * { margin: 0; font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.82); }
.rg-subscribe__sent-title { font-size: 18px; font-weight: 700; color: #fff; }
.rg-input { height: 48px; border-radius: var(--wp--custom--radius-s); border: 1.5px solid var(--wp--preset--color--border-strong); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--fg); padding: 0 16px; font: inherit; font-size: 15px; width: 100%; }
.rg-input::placeholder { color: var(--wp--preset--color--text-3); }
.rg-input:focus { outline: none; border-color: var(--wp--preset--color--electric); box-shadow: 0 0 0 3px var(--wp--custom--ring); }
.rg-subscribe__input { border-color: transparent; background: #fff; color: #111318; }
.rg-subscribe__note { font-size: 12px; line-height: 1.5; color: rgba(255,255,255,.55); margin: 10px 0 0; }
.rg-subscribe__note a { color: #fff; }
.rg-subscribe .rg-social { color: rgba(255,255,255,.72); margin-top: 12px; }
@media (min-width: 960px) {
  .rg-subscribe { padding: 56px 64px; display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
  .rg-subscribe__title { font-size: 34px; line-height: 1.08; }
  .rg-subscribe__desc { font-size: 16px; }
  .rg-subscribe__form { flex-direction: row; }
  .rg-subscribe__input { flex: 1; min-width: 0; }
}

/* ---------- 9. Шаблоны ---------- */
.rg-main { display: flow-root; }
.rg-feed__title { margin: 0 0 28px; }
.rg-grid3 { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 600px) { .rg-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .rg-grid3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rg-grid3 > li { margin: 0; }
.rg-pagination { margin-top: 40px; gap: 8px; }
.rg-pagination a, .rg-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 999px; font-size: 15px; font-weight: 600; text-decoration: none; color: var(--wp--preset--color--fg); border: 1.5px solid transparent; }
.rg-pagination .page-numbers.current { background: var(--wp--custom--accent-surface); color: #fff; }
.rg-pagination .wp-block-query-pagination-previous, .rg-pagination .wp-block-query-pagination-next { border-color: var(--wp--preset--color--border-strong); }
@media (hover: hover) { .rg-pagination a:hover { background: var(--wp--preset--color--surface-2); } }
.rg-entry__title { margin: 0; }
.rg-entry__lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.45; color: var(--wp--preset--color--text-2); }
.rg-entry__lead p { margin: 0; }
.rg-tags { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--wp--preset--color--border); display: flex; flex-wrap: wrap; gap: 8px; }
.rg-tags .wp-block-post-terms__separator { display: none; }
/* Теги — хэштегами целиком одного цвета, как ссылки-хэштеги в Telegram и VK: «#бабушки_и_дедушки» (текст — rg_hashtag()).
   Плашка — это рубрика (раздел), хэштег — метка темы (владелец, 25.09.2026). */
.rg-tags { column-gap: 14px; row-gap: 6px; }
.rg-tags a, .rg-tagchip { display: inline-flex; align-items: baseline; font-size: 15px; font-weight: 500; line-height: 1.4; color: var(--wp--preset--color--electric); text-decoration: none; white-space: nowrap; }
@media (hover: hover) { .rg-tags a:hover, .rg-tagchip:hover { text-decoration: underline; text-underline-offset: 3px; } }
.rg-search .wp-block-search__inside-wrapper { gap: 8px; border: 0; padding: 0; }
.rg-search .wp-block-search__input { height: 48px; border-radius: var(--wp--custom--radius-s); border: 1.5px solid var(--wp--preset--color--border-strong); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--fg); padding: 0 16px; font: inherit; font-size: 15px; }
.rg-search .wp-block-search__input:focus { outline: none; border-color: var(--wp--preset--color--electric); box-shadow: 0 0 0 3px var(--wp--custom--ring); }
.rg-search .wp-block-search__button { height: 48px; padding: 0 24px; border-radius: 999px; border: 0; background: var(--wp--custom--accent-surface); color: #fff; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
/* Страница 404 (правка 15.10.2026 по замечанию владельца): две колонки — слева текст, кнопки и поиск,
   справа фото из практики в рамке системы; на телефоне фото сверху, всё по левому краю. */
.rg-404 { display: grid; gap: 32px; align-items: center; }
@media (min-width: 960px) { .rg-404 { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 64px; } }
.rg-404__text { display: flex; flex-direction: column; align-items: flex-start; gap: 0; min-width: 0; }
.rg-404__text > * { margin-block: 0; }
.rg-404__num { font-size: 96px; line-height: 0.9; font-weight: 800; letter-spacing: -0.05em; color: var(--wp--custom--accent-fg); margin: 0; }
@media (min-width: 960px) { .rg-404__num { font-size: 136px; } }
.rg-404__text h1 { margin-top: 20px !important; }
.rg-404__text h1 + p { margin-top: 16px !important; max-width: 520px; color: var(--wp--preset--color--text-2); }
.rg-404__text .wp-block-buttons { margin-top: 28px !important; justify-content: flex-start; }
.rg-404 .rg-404__or { margin-top: 40px !important; font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--text-3); }
.rg-404 .rg-search { width: 100%; max-width: 440px; margin: 12px 0 0 !important; }
.rg-404 .rg-search .wp-block-search__inside-wrapper { gap: 0; padding: 4px; border: 1.5px solid var(--wp--preset--color--border-strong); border-radius: 999px; background: var(--wp--preset--color--surface); }
.rg-404 .rg-search .wp-block-search__inside-wrapper:focus-within { border-color: var(--wp--preset--color--electric); box-shadow: 0 0 0 3px var(--wp--custom--ring); }
.rg-404 .rg-search .wp-block-search__input { height: 44px; border: 0; background: transparent; padding: 0 18px; min-width: 0; }
.rg-404 .rg-search .wp-block-search__input:focus { box-shadow: none; }
.rg-404 .rg-search .wp-block-search__button { height: 44px; padding: 0 22px; margin: 0; }
.rg-404 .rg-404__media { margin: 0; }
.rg-404 .rg-404__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 55% 50%; border-radius: var(--wp--custom--radius-l, 16px); }
@media (max-width: 959px) { .rg-404 .rg-404__media { order: -1; } .rg-404 .rg-404__media img { aspect-ratio: 16 / 9; } }

/* ---------- 11. Хаб и архивы ---------- */
.rg-band { background: var(--wp--preset--color--surface); border-top: 1px solid var(--wp--preset--color--border); border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-band + .rg-band { border-top: 0; }
.rg-grid3__item { min-width: 0; }
.rg-rows { display: flex; flex-direction: column; border-top: 1px solid var(--wp--preset--color--border); }
.rg-row { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--wp--preset--color--border); text-decoration: none; color: inherit; }
.rg-row__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rg-row__title { font-size: 17px; font-weight: 600; line-height: 1.35; }
.rg-row__date { white-space: nowrap; }
@media (hover: hover) { .rg-row:hover .rg-row__title { color: var(--wp--preset--color--electric); } }
@media (max-width: 599px) { .rg-row { grid-template-columns: 1fr auto; } .rg-row > .rg-pill, .rg-row > span:first-child { grid-column: 1 / -1; justify-self: start; } .rg-row__text { grid-column: 1; } }
.rg-podcasts__grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-podcasts__intro { display: flex; flex-direction: column; gap: 12px; align-self: start; }
.rg-podcasts__list { display: flex; flex-direction: column; border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-pod { display: grid; grid-template-columns: 48px 1fr auto; gap: 16px; align-items: center; padding: 16px 0; border-top: 1px solid var(--wp--preset--color--border); text-decoration: none; color: inherit; }
.rg-pod__btn { width: 48px; height: 48px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; }
.rg-pod__btn .rg-ico { fill: #fff; stroke: none; margin-left: 2px; }
.rg-pod__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rg-pod__title { font-size: 18px; font-weight: 700; line-height: 1.3; }
.rg-pod__dur { white-space: nowrap; }
@media (hover: hover) { .rg-pod:hover .rg-pod__title { color: var(--wp--preset--color--electric); } }
@media (min-width: 960px) { .rg-podcasts__grid { grid-template-columns: 360px 1fr; gap: 64px; } .rg-podcasts__intro { position: sticky; top: calc(96px + var(--rg-bar-offset)); } }
.rg-archive__head { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.rg-archive__head .rg-label { margin: 0; }
.rg-archive__head .rg-feed__title { margin: 0; }
.rg-archive__desc { max-width: 720px; font-size: var(--wp--preset--font-size--lead); color: var(--wp--preset--color--text-2); margin: 0; }
.rg-archive__desc p { margin: 0; }
.rg-archive__count { margin: 0; }
.rg-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rg-archive__chips { margin-bottom: 32px; }
.rg-chip { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--wp--preset--color--border-strong); font-size: 14px; font-weight: 600; color: var(--wp--preset--color--fg); text-decoration: none; white-space: nowrap; }
.rg-chip__n { font-weight: 500; color: var(--wp--preset--color--text-3); }
.rg-chip.is-active { background: var(--wp--custom--accent-surface); border-color: transparent; color: #fff; }
.rg-chip.is-active .rg-chip__n { color: rgba(255,255,255,.65); }
@media (hover: hover) { .rg-chip:not(.is-active):hover { border-color: var(--wp--custom--border-hover); background: var(--wp--preset--color--surface-2); } }
@media (max-width: 959px) { .rg-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * clamp(20px, 4vw, 40px)); padding-inline: clamp(20px, 4vw, 40px); scroll-snap-type: x proximity; scroll-padding-inline: clamp(20px, 4vw, 40px); } .rg-chips::-webkit-scrollbar { display: none; } .rg-chip { scroll-snap-align: start; } }
.rg-rubrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rg-rubric { display: flex; flex-direction: column; gap: 6px; padding: 16px; border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); text-decoration: none; color: inherit; transition: border-color .15s ease-out, box-shadow .15s ease-out; }
.rg-rubric__name { font-size: 16px; font-weight: 700; line-height: 1.25; }
.rg-rubric__desc { font-size: 14px; line-height: 1.45; color: var(--wp--preset--color--text-2); display: none; }
@media (hover: hover) { .rg-rubric:hover { border-color: var(--wp--custom--border-hover); box-shadow: var(--wp--custom--shadow-card); } }
@media (min-width: 600px) { .rg-rubrics { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; } .rg-rubric { padding: 20px; } .rg-rubric__desc { display: block; } }
.rg-tags-row { display: flex; flex-direction: column; gap: 10px; padding-top: 16px; }
.rg-tags-row__top { display: flex; justify-content: space-between; align-items: baseline; }
.rg-tags-row__list { display: flex; flex-wrap: wrap; column-gap: 14px; row-gap: 6px; }
.rg-tags-row__note { margin: 0; font-size: 14px; color: var(--wp--preset--color--text-3); }
@media (max-width: 959px) { .rg-tags-row__list { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * clamp(20px, 4vw, 40px)); padding-inline: clamp(20px, 4vw, 40px); } .rg-tags-row__list::-webkit-scrollbar { display: none; } }
.rg-channels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rg-channel { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--wp--custom--radius-m); border: 1px solid var(--wp--preset--color--border-strong); text-decoration: none; color: inherit; }
.rg-channel__ico { width: 36px; height: 36px; border-radius: 10px; background: var(--wp--preset--color--tint); color: var(--wp--custom--tint-fg); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rg-channel__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; line-height: 1.3; } /* межстрочный текста 1.6 давал лишний воздух между названием и подписью */
.rg-channel__name { font-size: 15px; font-weight: 600; }
@media (hover: hover) { .rg-channel:hover { border-color: var(--wp--custom--border-hover); background: var(--wp--preset--color--surface-2); } }
@media (min-width: 960px) { .rg-channels:not(.is-cols-2) { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } }
.rg-hub__intro { padding-top: 48px; padding-bottom: 40px; display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-hub__intro-text { display: flex; flex-direction: column; gap: 16px; }
.rg-hub__intro-text .rg-label, .rg-hub__title, .rg-hub__lead, .rg-hub__channels .rg-label { margin: 0; }
.rg-hub__title { font-size: clamp(34px, 3.8vw, 48px); line-height: 1.05; letter-spacing: -0.025em; }
.rg-hub__lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.45; color: var(--wp--preset--color--text-2); max-width: 640px; }
.rg-hub__channels { display: flex; flex-direction: column; gap: 12px; }
.rg-hub__block { padding-bottom: 40px; display: flex; flex-direction: column; gap: 20px; }
.rg-hub__head { align-items: baseline; gap: 16px; }
.rg-hub__head p { margin: 0; }
.rg-label--ink { color: var(--wp--custom--accent-fg); }
.rg-hub__note { font-size: 14px; color: var(--wp--preset--color--text-3); }
.rg-hub__formats { padding-top: 32px; border-top: 1px solid var(--wp--preset--color--border); }
.rg-hub__tools { gap: 16px; align-items: center; }
.rg-hub__search { width: 100%; }
.rg-hub .rg-post-grid:not(.rg-band) > .rg-section, .rg-hub .rg-post-list > .rg-section { padding-bottom: 0; }
.rg-hub > .rg-post-grid:last-child > .rg-section, .rg-hub > .rg-post-list:last-child > .rg-section { padding-bottom: var(--wp--preset--spacing--64); }
.rg-hub .rg-band > .rg-section { padding-block: 80px; }
.rg-hub .rg-post-grid:not(.rg-band) + .rg-band, .rg-hub .rg-post-list:not(.rg-band) + .rg-band { margin-top: var(--wp--preset--spacing--64); }
@media (min-width: 1024px) { .rg-hub .rg-post-grid:not(.rg-band) + .rg-band, .rg-hub .rg-post-list:not(.rg-band) + .rg-band { margin-top: var(--wp--preset--spacing--96); } }
@media (min-width: 960px) {
  .rg-hub__intro { padding-top: 80px; padding-bottom: 64px; grid-template-columns: 1.2fr .8fr; gap: 64px; align-items: end; }
  .rg-hub__block { padding-bottom: 56px; }
  .rg-hub__search { width: 320px; flex-shrink: 0; }
  .rg-hub__formats { padding-bottom: 96px; }
}
/* Столбец без переноса: при flex-wrap: wrap ширину столбца задаёт самый широкий элемент — весь ряд фильтров, и страница
   уезжала вбок (753 px при экране 390, найдено 25.09.2026). Отрицательные поля ряда — с весом выше .is-layout-flex > :is(*, div)
   ядра, иначе ядро обнуляет их и ряд стоит с отступом от края. */
@media (max-width: 959px) {
  .rg-hub__tools { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
  .rg-hub__tools > .rg-chips { margin-inline: calc(-1 * clamp(20px, 4vw, 40px)); }
}
/* ---------- 10. Главная ---------- */
.rg-home-hero, .rg-home-pillars, .rg-home-thought-wrap, .rg-home-practice__inner, .rg-home-book, .rg-home-about__inner { display: flex; flex-direction: column; gap: 24px; }
.rg-home__h2 { margin: 0; font-size: clamp(26px, 2.5vw, 32px); line-height: 1.15; letter-spacing: -0.02em; }
.rg-home__h3 { margin: 0; font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; letter-spacing: -0.015em; }
.rg-home__lead { margin: 0; font-size: var(--wp--preset--font-size--lead); line-height: 1.45; color: var(--wp--preset--color--text-2); max-width: 640px; }
.rg-home__sub { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-2); }
.rg-home__more { margin: 0; font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.rg-home__more a { color: var(--wp--preset--color--text-2); text-decoration: none; }
@media (hover: hover) { .rg-home__more a:hover { color: var(--wp--preset--color--electric); } }
figure.wp-block-image:not(:has(img[src])) { display: none; }
/* hero */
.rg-home-hero { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; padding-bottom: 48px; }
.rg-home-hero__text { display: flex; flex-direction: column; gap: 20px; }
.rg-home-hero__text > * { margin: 0; }
.rg-home-hero__title { font-size: var(--wp--preset--font-size--display); line-height: 1; letter-spacing: -0.03em; }
.rg-home-hero__lead { font-size: var(--wp--preset--font-size--lead); font-weight: 500; line-height: 1.35; max-width: 560px; }
.rg-home-hero__desc { font-size: var(--wp--preset--font-size--body); color: var(--wp--preset--color--text-2); max-width: 560px; }
.rg-home-hero__actions { margin-top: 8px; gap: 12px; }
.rg-home-hero__photo { margin: 0; }
.rg-home-hero__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--wp--custom--radius-xl); }
@media (min-width: 960px) { .rg-home-hero { grid-template-columns: 1.15fr .85fr; gap: 64px; } .rg-home-hero:not(:has(img[src])) { grid-template-columns: 1fr; } }
@media (min-width: 1024px) { .rg-home-hero { padding-top: 96px; padding-bottom: 80px; } }
.rg-home-pillars { padding-top: 0; }
/* опоры */
.rg-pillars { display: grid; grid-template-columns: 1fr; gap: 24px; }
.rg-pillar { display: flex; flex-direction: column; gap: 10px; padding-top: 20px; border-top: 2px solid var(--wp--custom--accent-fg); }
.rg-pillar > * { margin: 0; }
.rg-pillar__num { font-size: 13px; font-weight: 700; color: var(--wp--preset--color--electric); letter-spacing: .04em; }
.rg-pillar__title { font-size: 22px; line-height: 1.2; font-weight: 700; letter-spacing: -0.015em; }
.rg-pillar__text { font-size: 16px; line-height: 1.5; color: var(--wp--preset--color--text-2); }
.rg-pillar__link { font-size: var(--wp--preset--font-size--small); font-weight: 600; margin-top: auto; }
.rg-pillar__link a { color: var(--wp--custom--accent-fg); text-decoration: none; }
@media (hover: hover) { .rg-pillar__link a:hover { color: var(--wp--preset--color--electric); } }
@media (min-width: 720px) { .rg-pillars { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; } }
/* блог (полоса surface) */
.rg-home-blog__inner { display: flex; flex-direction: column; gap: 40px; }
.rg-home-blog__intro { display: flex; flex-direction: column; gap: 14px; }
.rg-home-blog__intro > * { margin: 0; }
.rg-home-blog__channels { gap: 20px; margin-top: -16px; }
.rg-home-blog__channels > * { margin: 0; }
.rg-home-blog__channels .rg-channels { flex: 1 1 520px; }
.rg-home-blog__start, .rg-home-blog__new { display: flex; flex-direction: column; gap: 16px; }
.rg-home-blog__start > *, .rg-home-blog__new > * { margin: 0; }
.rg-home-blog__new-head { align-items: baseline; }
.rg-home-blog__new-head > * { margin: 0; }
/* статусы (DS §6: Действует · На паузе · В разработке) */
.rg-pill-status { align-self: flex-start; margin: 0; }
.rg-pill-status--ok { background: var(--wp--preset--color--ok-bg); color: var(--wp--preset--color--ok); }
.rg-pill-status--pause { background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--text-2); }
.rg-pill-status--dev { background: var(--wp--preset--color--warn-bg); color: var(--wp--preset--color--warn); }
/* главная мысль */
.rg-thought { border-radius: var(--wp--custom--radius-l); padding: 40px 24px; display: flex; flex-direction: column; gap: 16px; }
.rg-thought > * { margin: 0; }
.rg-thought__text { font-size: clamp(30px, 4vw, 48px); line-height: 1.08; font-weight: 800; letter-spacing: -0.03em; max-width: 14em; }
.rg-thought__text::after { content: ""; display: block; width: 48px; height: 4px; margin-top: 22px; border-radius: 2px; background: var(--wp--preset--color--electric); }
.rg-thought__more { font-size: 16px; line-height: 1.55; color: rgba(255,255,255,.72); max-width: 560px; }
@media (min-width: 960px) { .rg-thought { padding: 64px; display: grid; grid-template-columns: 1.3fr 1fr; gap: 32px 64px; align-items: center; } .rg-thought .rg-label { grid-column: 1 / -1; } .rg-thought__text::after { width: 56px; } .rg-thought__more { font-size: 18px; } }
/* практика */
.rg-home-practice__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.rg-project { display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: var(--wp--custom--radius-l); background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); }
.rg-project > * { margin: 0; }
.rg-project__title { font-size: 22px; line-height: 1.2; font-weight: 700; letter-spacing: -0.015em; }
.rg-project__text { font-size: 15px; line-height: 1.5; color: var(--wp--preset--color--text-2); }
.rg-project__actions { gap: 8px; }
.rg-project__body { display: flex; flex-direction: column; gap: 12px; }
.rg-project__body > * { margin: 0; }
.rg-project__photo { margin: 0 0 8px; }
.rg-project__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-m); }
.rg-project--dev { border-style: dashed; }
.rg-project__link { font-size: var(--wp--preset--font-size--small); font-weight: 600; margin-top: auto; }
.rg-project__link a { color: var(--wp--custom--accent-fg); text-decoration: none; }
.rg-consult { display: grid; grid-template-columns: 1fr; gap: 24px; padding-top: 32px; border-top: 1px solid var(--wp--preset--color--border); }
.rg-consult__text, .rg-consult__asks { display: flex; flex-direction: column; gap: 14px; }
.rg-consult__text > *, .rg-consult__asks > * { margin: 0; }
.rg-consult__desc { font-size: 16px; line-height: 1.55; color: var(--wp--preset--color--text-2); max-width: 520px; }
.rg-consult__list { list-style: none; padding: 0; margin: 0; }
.rg-consult__list li { padding: 12px 0; border-bottom: 1px solid var(--wp--preset--color--border); font-size: 17px; }
.rg-consult__list li:first-child { border-top: 1px solid var(--wp--preset--color--border); }
@media (min-width: 960px) {
  .rg-home-practice__grid { grid-template-columns: 1.6fr 1fr; grid-template-rows: auto auto; gap: 24px; }
  .rg-project--main { grid-row: 1 / 3; display: grid; grid-template-columns: 300px 1fr; gap: 32px; padding: 0; overflow: hidden; }
  .rg-project--main .rg-project__photo { margin: 0; }
  .rg-project--main .rg-project__photo img { height: 100%; aspect-ratio: auto; border-radius: 0; }
  .rg-project--main .rg-project__body { padding: 32px 32px 32px 0; }
  .rg-project--main:not(:has(img[src])) { grid-template-columns: 1fr; padding: 32px; }
  .rg-project--main:not(:has(img[src])) .rg-project__body { padding: 0; }
  .rg-consult { grid-template-columns: 1.1fr 0.9fr; gap: 64px; padding-top: 48px; }
}
/* книга */
.rg-home-book { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; }
.rg-home-book__cover { margin: 0; max-width: 240px; }
.rg-home-book__cover img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-s); box-shadow: var(--wp--custom--shadow-card-hover); }
.rg-home-book__text { display: flex; flex-direction: column; gap: 16px; }
.rg-home-book__text > * { margin: 0; }
.rg-home-book__actions { gap: 12px; }
.rg-home-book__next { gap: 12px; margin-top: 8px; }
.rg-home-book__next > * { margin: 0; }
.rg-home-book__note { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-2); }
.rg-home-book__next .rg-pill-status { align-self: center; }
@media (min-width: 960px) { .rg-home-book { grid-template-columns: 240px 1fr; gap: 64px; } .rg-home-book:not(:has(img[src])) { grid-template-columns: 1fr; } }
/* обо мне (полоса surface) */
.rg-home-about__inner { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; }
.rg-home-about__text { display: flex; flex-direction: column; gap: 16px; }
.rg-home-about__text > * { margin: 0; }
.rg-home-about__p { font-size: var(--wp--preset--font-size--body-l); line-height: 1.55; color: var(--wp--preset--color--text-2); max-width: 560px; }
.rg-home-about__photo { margin: 0; }
.rg-home-about__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-l); }
@media (min-width: 960px) { .rg-home-about__inner { grid-template-columns: 1.1fr .9fr; gap: 64px; } .rg-home-about__inner:not(:has(img[src])) { grid-template-columns: 1fr; } }
/* мобильный/планшетный порядок: фото выше текста в hero и «Обо мне» */
@media (max-width: 959px) {
  .rg-home-hero__photo, .rg-home-about__photo { order: -1; }
  .rg-home-hero__photo { max-width: 420px; }
}
/* front-page.html: контент из паттернов через wp:post-content без базового отступа ядра между секциями */
.rg-home > * + *, .rg-home .wp-block-post-content > * + * { margin-block-start: 0; }
.rg-home .rg-band > .rg-section { padding-block: var(--wp--preset--spacing--64); }
@media (min-width: 1024px) { .rg-home .rg-band > .rg-section { padding-block: var(--wp--preset--spacing--96); } }

/* ---------- 12. Страницы ---------- */
/* page-sections: контент из паттернов через wp:post-content без базового отступа ядра между секциями */
.rg-sections > * + *, .rg-sections .wp-block-post-content > * + * { margin-block-start: 0; }
.rg-link { color: var(--wp--custom--accent-fg); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; font-weight: 500; }
@media (hover: hover) { .rg-link:hover { color: var(--wp--preset--color--electric); } }
.rg-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.rg-setting-link { display: inline-block; }
/* где купить: кнопка + модалка, или сетка карточек */
.rg-buy { display: inline-block; }
.rg-modal { max-width: 560px; width: min(560px, calc(100vw - 48px)); border: 0; border-radius: var(--wp--custom--radius-xl); padding: 0; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--fg); box-shadow: var(--wp--custom--shadow-card-hover); }
.rg-modal__inner { display: flex; flex-direction: column; gap: 16px; padding: 32px; }
.rg-modal__inner > * { margin: 0; }
.rg-modal::backdrop { background: rgba(18, 22, 63, .5); }
body.rg-modal-open { overflow: hidden; }
.rg-modal__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.rg-modal__title { margin: 0; font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; }
.rg-modal__close {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 999px; border: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--text-2);
  font-size: 20px; line-height: 1; cursor: pointer;
}
@media (hover: hover) { .rg-modal__close:hover { background: var(--wp--preset--color--border); color: var(--wp--preset--color--fg); } }
.rg-modal__lead { color: var(--wp--preset--color--text-2); }
.rg-modal__list, .rg-buy-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 480px) { .rg-modal__list, .rg-buy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 720px) { .rg-buy-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rg-shop {
  display: flex; flex-direction: column; gap: 4px; padding: 16px;
  border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l);
  text-decoration: none; color: var(--wp--preset--color--fg);
  transition: border-color .15s ease-out, background-color .15s ease-out;
}
@media (hover: hover) { .rg-shop:hover { border-color: var(--wp--custom--border-hover); background: var(--wp--preset--color--surface-2); } }
.rg-shop__name { font-weight: 700; font-size: 17px; }
.rg-shop__action { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--custom--accent-fg); }
@media (max-width: 599px) { .rg-modal { margin: auto 0 0; width: 100%; max-width: none; border-radius: 16px 16px 0 0; } }
/* заголовок страницы (страничный hero: текст + опциональное фото) */
.rg-page-hero { display: grid; grid-template-columns: 1fr; gap: 32px; padding-block: 48px 40px; }
.rg-page-hero__text { display: flex; flex-direction: column; gap: 20px; }
.rg-page-hero__text > * { margin: 0; }
.rg-page-hero__title { font-size: var(--wp--preset--font-size--h-1); line-height: 1.1; letter-spacing: -.025em; margin: 0; }
.rg-page-hero__lead { font-size: var(--wp--preset--font-size--lead); color: var(--wp--preset--color--text-2); max-width: 640px; }
.rg-page-hero__photo { order: -1; margin: 0; }
.rg-page-hero__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--wp--custom--radius-l); }
@media (min-width: 960px) {
  .rg-page-hero { grid-template-columns: 1.1fr .9fr; }
  .rg-page-hero:not(:has(img[src])) { grid-template-columns: 1fr; }
  .rg-page-hero__photo { order: 0; }
}
.rg-page-hero--plain { grid-template-columns: 1fr; }
/* все теги */
.rg-tags-all { display: flex; flex-wrap: wrap; column-gap: 18px; row-gap: 10px; }
.rg-tagchip__n { color: var(--wp--preset--color--text-3); margin-left: 4px; }
/* хаб/футер каналов карточками */
.rg-channels.is-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.rg-channels.is-cards .rg-channel { border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); padding: 14px 16px; background: var(--wp--preset--color--surface); }
/* обо мне: факты */
.rg-facts__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.rg-facts__grid > * { margin: 0; }
.rg-fact { display: flex; flex-direction: column; gap: 6px; padding-top: 20px; border-top: 1px solid var(--wp--preset--color--border); }
.rg-fact > * { margin: 0; }
.rg-fact__n { font-size: var(--wp--preset--font-size--h-1); font-weight: 800; letter-spacing: -0.02em; line-height: 1.05; color: var(--wp--custom--accent-fg); }
.rg-fact__t { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-2); }
@media (max-width: 959px) { .rg-facts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .rg-facts__grid { grid-template-columns: 1fr; } }
/* обо мне: во что я верю (полоса surface, два столбца, фото) */
.rg-belief__inner { display: flex; flex-direction: column; gap: 24px; }
.rg-belief__inner > * { margin: 0; }
.rg-belief__photo { margin-top: 8px; }
.rg-belief__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-l); }
/* обо мне: путь (таймлайн) */
.rg-path { display: grid; grid-template-columns: 1fr; gap: 40px; }
.rg-path > * { margin: 0; }
.rg-path__intro { display: flex; flex-direction: column; gap: 12px; }
.rg-path__intro > * { margin: 0; }
.rg-path__note { color: var(--wp--preset--color--text-2); }
.rg-timeline > * { margin: 0; }
.rg-timeline__row { display: grid; grid-template-columns: 72px 1fr; column-gap: 24px; row-gap: 6px; padding-block: 24px; border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-timeline__row:first-child { padding-top: 0; }
.rg-timeline__row > * { margin: 0; }
.rg-timeline__year { grid-row: 1 / 3; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--wp--custom--accent-fg); }
.rg-timeline__title { grid-column: 2; font-size: var(--wp--preset--font-size--h-4); line-height: 1.3; }
.rg-timeline__text { grid-column: 2; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-2); }
@media (min-width: 960px) {
  .rg-path { grid-template-columns: 1fr 2fr; gap: 64px; }
  .rg-path__intro { position: sticky; top: calc(96px + var(--rg-bar-offset)); align-self: start; height: fit-content; }
}
/* обо мне: школа мужества (полоса surface, текст/фото, ряд трёх фото) */
.rg-school__inner { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-school__inner > * { margin: 0; }
.rg-school__text { display: flex; flex-direction: column; gap: 16px; }
.rg-school__text > * { margin: 0; }
.rg-school__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-l); }
.rg-gallery-3 { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; gap: 16px; }
.rg-gallery-3 > * { margin: 0; }
.rg-gallery-3 img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-l); }
@media (min-width: 720px) { .rg-gallery-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 960px) { .rg-school__inner { grid-template-columns: 1.1fr .9fr; gap: 64px; } }
/* обо мне: книга (обложка узкой колонкой + текст) */
.rg-about-book { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-about-book__cover { margin: 0; }
.rg-about-book__cover img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-l); box-shadow: var(--wp--custom--shadow-card); }
.rg-about-book__text { display: flex; flex-direction: column; gap: 16px; }
.rg-about-book__text > * { margin: 0; }
.rg-about-book__rating { margin: 0 0 0 8px; } /* оценка книги — в ряду с кнопками, справа */
@media (max-width: 959px) { .rg-about-book__cover { max-width: 200px; } }
@media (min-width: 960px) {
  .rg-about-book { grid-template-columns: 220px 1fr; gap: 64px; }
  .rg-about-book:not(:has(img[src])) { grid-template-columns: 1fr; }
}
/* обо мне: как я работаю (интро sticky + шесть тезисов нумерованным списком) */
.rg-method { display: grid; grid-template-columns: 1fr; gap: 40px; }
.rg-method > * { margin: 0; }
.rg-method__intro { display: flex; flex-direction: column; gap: 12px; }
.rg-method__intro > * { margin: 0; }
.rg-method__note { color: var(--wp--preset--color--text-2); }
.rg-theses { list-style: none; margin: 0; padding: 0; counter-reset: thesis; }
.rg-theses > li { counter-increment: thesis; position: relative; padding: 20px 0 20px 56px; border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-theses > li:first-child { padding-top: 0; }
.rg-theses > li:first-child::before { top: 0; }
.rg-theses > li:last-child { border-bottom: 0; }
.rg-theses > li::before { content: counter(thesis, decimal-leading-zero); position: absolute; left: 0; top: 20px; width: 40px; font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.4; color: var(--wp--custom--accent-fg); }
.rg-theses > li strong { display: block; font-size: var(--wp--preset--font-size--h-4); font-weight: 600; line-height: 1.3; margin-bottom: 4px; }
@media (min-width: 960px) {
  .rg-method { grid-template-columns: 1fr 2fr; gap: 64px; }
  .rg-method__intro { position: sticky; top: calc(96px + var(--rg-bar-offset)); align-self: start; height: fit-content; }
}
/* обо мне: лично (текст + цитата-выноска) */
.rg-personal { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-personal > * { margin: 0; }
.rg-personal__text { display: flex; flex-direction: column; gap: 16px; }
.rg-personal__text > * { margin: 0; }
.rg-quote-aside { border-left: 3px solid var(--wp--custom--accent-fg); padding-left: 24px; }
.rg-quote-aside p { margin: 0; font-size: var(--wp--preset--font-size--h-3); font-weight: 500; line-height: 1.35; }
@media (min-width: 960px) { .rg-personal { grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; } }
/* обо мне: выступления и публикации (карточки-интервью + фото/таблица «где выступаю») */
.rg-talks__inner { display: flex; flex-direction: column; gap: 24px; }
.rg-talks__inner > * { margin: 0; }
.rg-talks__more { margin: 0; font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.rg-talks__venues { display: grid; grid-template-columns: 1fr; gap: 24px 40px; margin-top: 32px; align-items: start; }
.rg-talks__photo { margin: 0; }
.rg-talks__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-l); }
.rg-talks__caption { margin-top: 8px; }
.rg-talks__venues .rg-kv__k { white-space: normal; }
@media (min-width: 600px) {
  .rg-talks__venues .rg-kv__row { grid-template-columns: minmax(260px, max-content) 1fr; padding: 14px 0; border-bottom: 1px solid var(--wp--preset--color--border); }
  .rg-talks__venues .rg-kv__v { text-align: right; }
}
@media (min-width: 960px) { .rg-talks__venues { grid-template-columns: 280px 1fr; } }
/* компонент rg-kv: строки ключ/значение (переиспользуется в «Обо мне» и книге) */
.rg-kv { display: flex; flex-direction: column; }
.rg-kv__row { display: grid; grid-template-columns: 1fr; gap: 4px; padding-block: 16px; border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-kv__row:first-child { padding-top: 0; }
.rg-kv__row:last-child { border-bottom: 0; }
.rg-kv__row > * { margin: 0; }
.rg-kv__k { font-weight: 600; }
.rg-kv__v { color: var(--wp--preset--color--text-2); }
@media (min-width: 600px) { .rg-kv__row { grid-template-columns: 200px 1fr; gap: 24px; } }
/* обо мне: контакты (три аудитории колонками + email-плашка) */
.rg-doors__inner .wp-block-columns { gap: 32px; }
.rg-doors__inner .wp-block-column { padding-top: 24px; border-top: 1px solid var(--wp--preset--color--border); }
.rg-doors__inner .wp-block-column > * + * { margin-top: 12px; }
.rg-doors__email { margin: 0; }
.rg-doors__email a { display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border-radius: 999px; background: var(--wp--preset--color--tint); color: var(--wp--custom--tint-fg); font-weight: 600; text-decoration: none; }
@media (hover: hover) { .rg-doors__email a:hover { background: var(--wp--preset--color--surface-2); } }
/* контакты: три двери под H1 — заголовки дверей H2 кеглем h-4; каналы карточками в одну колонку на узком */
.rg-doors__title { font-size: var(--wp--preset--font-size--h-4); }
@media (max-width: 599px) { .rg-doors .rg-channels.is-cards { grid-template-columns: 1fr; } }
/* проекты: школа мужества (полоса, текст/фото, факты колонками, ряд трёх фото) */
.rg-project-main__inner { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-project-main__inner > * { margin: 0; }
.rg-project-main__text { display: flex; flex-direction: column; gap: 16px; }
.rg-project-main__text > * { margin: 0; }
.rg-project-main__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-l); }
@media (min-width: 960px) { .rg-project-main__inner { grid-template-columns: 1.1fr .9fr; gap: 64px; } }
/* компонент rg-kv--cols: строки rg-kv колонками (факты Школы мужества) */
.rg-kv--cols { grid-column: 1 / -1; }
@media (min-width: 960px) {
  .rg-kv--cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 20px 24px; padding-top: 24px; border-top: 1px solid var(--wp--preset--color--border); align-items: start; }
  .rg-kv--cols .rg-kv__row { display: flex; flex-direction: column; justify-content: flex-start; gap: 6px; margin: 0; padding: 0; border-bottom: 0; align-content: start; }
  .rg-kv--cols .rg-kv__k { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; color: var(--wp--preset--color--text-3); min-height: 1.4em; }
  .rg-kv--cols .rg-kv__v { font-weight: 500; color: var(--wp--preset--color--fg); }
}
/* проекты: клубы на паузе */
.rg-club-card { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-xl); padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.rg-club-card > * { margin: 0; }
.rg-club-card__top { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.rg-club-card__top > * { margin: 0; }
/* проекты: что готовится (полоса, интро слева, список строк справа) */
.rg-upcoming__inner { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-upcoming__inner > * { margin: 0; }
.rg-upcoming__intro { display: flex; flex-direction: column; gap: 16px; }
.rg-upcoming__intro > * { margin: 0; }
.rg-dev-list > * { margin: 0; }
.rg-dev-list__row { padding-block: 20px; border-top: 1px dashed var(--wp--preset--color--border-strong); display: flex; flex-direction: column; gap: 6px; }
.rg-dev-list__row:last-child { border-bottom: 1px dashed var(--wp--preset--color--border-strong); }
.rg-dev-list__row > * { margin: 0; }
.rg-dev-list__row h3 { font-size: var(--wp--preset--font-size--h-4); }
.rg-dev-list__row p { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-2); }
@media (min-width: 960px) { .rg-upcoming__inner { grid-template-columns: 1fr 1.4fr; gap: 64px; align-items: start; } }
/* проекты: консультации (текст/фото) */
.rg-project-consult { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-project-consult > * { margin: 0; }
.rg-project-consult__text { display: flex; flex-direction: column; gap: 16px; }
.rg-project-consult__text > * { margin: 0; }
.rg-project-consult__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-l); }
@media (min-width: 960px) { .rg-project-consult { grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; } }
/* книги: основная книга (полоса, обложка/текст) */
.rg-book-card__inner { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-book-card__inner > * { margin: 0; }
.rg-book-card__cover img { box-shadow: var(--wp--custom--shadow-card); border-radius: var(--wp--custom--radius-l); }
.rg-book-card__text { display: flex; flex-direction: column; gap: 16px; }
.rg-book-card__text > * { margin: 0; }
@media (min-width: 960px) { .rg-book-card__inner { grid-template-columns: 260px 1fr; gap: 64px; align-items: center; } }
.rg-rating { display: flex; gap: 8px; align-items: center; }
.rg-stars { color: var(--wp--preset--color--electric); letter-spacing: .05em; }
/* книги: аудиокниги (карточки с обложкой, плеером и своей кнопкой) */
.rg-audio .wp-block-columns { align-items: stretch; }
.rg-audio .wp-block-column > .rg-audio-card { height: 100%; }
.rg-audio-card { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-xl); padding: 24px; display: grid; grid-template-columns: 200px 1fr; gap: 24px; align-items: stretch; height: 100%; }
/* align-self: start — грид-строка тянет медиа-колонку по высоте (align-items: stretch), что делает высоту «определённой» и отключает aspect-ratio (спека CSS); без align-self квадратная обложка растягивалась бы в прямоугольник и object-fit: cover обрезал бы текст на картинке по бокам */
.rg-audio-card__media { position: relative; aspect-ratio: 1 / 1; width: 100%; min-width: 0; align-self: start; border-radius: var(--wp--custom--radius-l); overflow: hidden; background: var(--wp--preset--color--ink); margin: 0; }
.rg-audio-card__cover { margin: 0; width: 100%; height: 100%; }
.rg-audio-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rg-audio-card__tile { position: absolute; inset: 0; background: radial-gradient(circle at 80% 0%, rgba(58,75,214,.7), transparent 60%), var(--wp--preset--color--ink); padding: 16px; display: flex; flex-direction: column; justify-content: space-between; margin: 0; }
.rg-audio-card__tile > * { margin: 0; }
.rg-audio-card__tile .rg-label { color: rgba(255,255,255,.7); }
.rg-audio-card__tile-title { font-size: var(--wp--preset--font-size--h-3); font-weight: 700; color: #fff; line-height: 1.2; }
.rg-audio-card__media:has(img[src]) .rg-audio-card__tile { display: none; }
.rg-audio-card__media > * + * { margin-top: 0; }
.rg-audio-card__text { display: flex; flex-direction: column; gap: 8px; margin: 0; height: 100%; }
.rg-audio-card__text > * { margin: 0; }
.rg-audio-card__meta::before { content: ""; display: inline-block; width: 16px; height: 16px; margin-right: 6px; vertical-align: -3px; background-color: var(--wp--custom--accent-fg); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 14v-2a8 8 0 0 1 16 0v2' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3Crect x='4' y='14' width='4' height='6' rx='1.5' fill='none' stroke='black' stroke-width='1.75'/%3E%3Crect x='16' y='14' width='4' height='6' rx='1.5' fill='none' stroke='black' stroke-width='1.75'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 14v-2a8 8 0 0 1 16 0v2' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3Crect x='4' y='14' width='4' height='6' rx='1.5' fill='none' stroke='black' stroke-width='1.75'/%3E%3Crect x='16' y='14' width='4' height='6' rx='1.5' fill='none' stroke='black' stroke-width='1.75'/%3E%3C/svg%3E"); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.rg-audio-card__cta { display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; margin-top: auto; }
@media (max-width: 599px) { .rg-audio-card { grid-template-columns: 1fr; } .rg-audio-card__media { max-width: 240px; } }
/* книги: что пишу сейчас */
.rg-dev-card { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-xl); padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.rg-dev-card > * { margin: 0; }
/* страница книги: крошка + hero (обложка/текст с фактами) */
.rg-breadcrumb { grid-column: 1 / -1; margin: 0 0 8px; font-size: 14px; color: var(--wp--preset--color--text-3); }
.rg-breadcrumb a { color: var(--wp--preset--color--text-2); text-decoration: none; }
@media (hover: hover) { .rg-breadcrumb a:hover { text-decoration: underline; } }
.rg-book-hero { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-book-hero > * { margin: 0; }
.rg-book-hero__cover { margin: 0; }
.rg-book-hero__cover img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-l); box-shadow: var(--wp--custom--shadow-card); }
.rg-book-hero__text { display: flex; flex-direction: column; gap: 16px; }
.rg-book-hero__text > * { margin: 0; }
.rg-book-hero__sub { font-size: var(--wp--preset--font-size--h-3); font-weight: 500; color: var(--wp--preset--color--text-2); }
@media (min-width: 960px) { .rg-book-hero { grid-template-columns: 300px 1fr; gap: 64px; align-items: start; } }
/* страница книги: история (полоса, интро слева, текст справа) */
.rg-origin__inner { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-origin__inner > * { margin: 0; }
.rg-origin__intro { display: flex; flex-direction: column; gap: 12px; }
.rg-origin__intro > * { margin: 0; }
.rg-origin__text { display: flex; flex-direction: column; gap: 16px; }
.rg-origin__text > * { margin: 0; }
@media (min-width: 960px) { .rg-origin__inner { grid-template-columns: 1fr 2fr; gap: 64px; } }
/* страница книги: о чём (карточки-темы 2×2) */
.rg-topic { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); padding: 24px; display: flex; flex-direction: column; gap: 8px; height: 100%; }
.rg-topic > * { margin: 0; }
.rg-topic h3 { font-size: var(--wp--preset--font-size--h-4); }
/* страница книги: отзывы (полоса, заголовок+рейтинг, три карточки) */
.rg-reviews__head { flex-wrap: wrap; justify-content: space-between; align-items: baseline; }
.rg-reviews__head > * { margin: 0; }
.rg-review { border-top: 2px solid var(--wp--preset--color--ink); padding-top: 20px; display: flex; flex-direction: column; gap: 8px; }
.rg-review > * { margin: 0; }
.rg-review .rg-stars { font-size: 14px; }
/* страница книги: после книги (полоса, текст/фото) */
.rg-bridge__inner { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-bridge__inner > * { margin: 0; }
.rg-bridge__text { display: flex; flex-direction: column; gap: 16px; }
.rg-bridge__text > * { margin: 0; }
.rg-bridge__photo { margin: 0; }
.rg-bridge__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-l); }
@media (min-width: 960px) { .rg-bridge__inner { grid-template-columns: 1.1fr .9fr; gap: 64px; align-items: center; } }

/* ---------- 13. Формы ---------- */
.rg-form { position: relative; display: flex; flex-direction: column; gap: 16px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-xl); padding: 28px; }
.rg-form > * { margin: 0; }
.rg-form__row--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 599px) { .rg-form { padding: 20px; } .rg-form__row--2 { grid-template-columns: 1fr; } }
.rg-field { display: flex; flex-direction: column; gap: 6px; position: relative; }
.rg-field__label { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--text-3); }
.rg-form .rg-input { background-color: var(--wp--preset--color--bg); }
.rg-textarea { height: auto; padding: 12px 14px; resize: vertical; }
.rg-select { -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%238A90A0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 20px 20px; padding-right: 44px; }
.rg-select--enhanced { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.rg-dd { position: relative; }
.rg-dd__btn { display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; cursor: pointer; background: var(--wp--preset--color--bg); }
.rg-dd__btn svg { flex: none; color: var(--wp--preset--color--text-3); transition: transform .15s; }
.rg-dd.is-open .rg-dd__btn { border-color: var(--wp--preset--color--electric); box-shadow: 0 0 0 3px var(--wp--custom--ring); }
.rg-dd.is-open .rg-dd__btn svg { transform: rotate(180deg); }
.rg-dd__text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rg-dd__list { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 6px); margin: 0; padding: 6px 0; list-style: none; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border-strong); border-radius: 10px; box-shadow: var(--wp--custom--shadow-card-hover); max-height: 320px; overflow-y: auto; }
.rg-dd__opt { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; font-size: 15px; cursor: pointer; color: var(--wp--preset--color--fg); }
.rg-dd__opt svg { flex: none; visibility: hidden; color: var(--wp--preset--color--electric); }
.rg-dd__opt[aria-selected="true"] { font-weight: 600; }
.rg-dd__opt[aria-selected="true"] svg { visibility: visible; }
.rg-dd__opt.is-active { background: var(--wp--preset--color--tint); color: var(--wp--custom--tint-fg); }
.is-invalid .rg-dd__btn { border-color: var(--wp--preset--color--error); }
.is-invalid .rg-input { border-color: var(--wp--preset--color--error); }
.rg-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--wp--preset--color--text-2); }
.rg-check.is-invalid { color: var(--wp--preset--color--error); }
.rg-check a { text-decoration: underline; text-underline-offset: 2px; }
/* Ошибка у обязательного списка с кастомной кнопкой (view.js): нативной подсказки у скрытого select не видно. */
.rg-field__error { font-size: 13px; line-height: 1.5; color: var(--wp--preset--color--error); }
/* Подсказка под полем (заявка на консультацию, спека ПДн §2.1). */
.rg-field__hint { font-size: 13px; line-height: 1.5; color: var(--wp--preset--color--text-3); }
/* Пустая строка «Выберите» у обязательного списка (select.js) — бледная, как placeholder. */
.rg-dd__btn.is-placeholder .rg-dd__text { color: var(--wp--preset--color--text-3); }
.rg-form__actions { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
@media (max-width: 599px) { .rg-form__actions { flex-direction: column; align-items: stretch; gap: 12px; } .rg-form__actions .rg-btn { width: 100%; justify-content: center; } .rg-select { font-size: 14px; } }
.rg-form__alert { background: var(--wp--preset--color--error-bg); color: var(--wp--preset--color--error); border-radius: 12px; padding: 12px 16px; font-size: 15px; }
.rg-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rg-form-sent { background: var(--wp--preset--color--ok-bg); border-radius: var(--wp--custom--radius-xl); padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.rg-form-sent > * { margin: 0; }
.rg-form-sent__title { color: var(--wp--preset--color--ok); font-size: var(--wp--preset--font-size--h-3); font-weight: 700; }

.rg-formats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 959px) { .rg-formats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 599px) { .rg-formats { grid-template-columns: 1fr; } }
.rg-format-card { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-xl); padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.rg-format-card > * { margin: 0; }
.rg-format-card__head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.rg-format-card__title { font-size: var(--wp--preset--font-size--h-4); }
.rg-format-card__price { font-weight: 700; white-space: nowrap; }
/* «Подходит, если» / «Что получаете» (14.10.2026): подпись мелкой капителью, текст — вторым цветом; отделено линией от описания. */
.rg-format-card__facts { display: flex; flex-direction: column; gap: 12px; margin: 4px 0 0; padding-top: 14px; border-top: 1px solid var(--wp--preset--color--border); }
.rg-format-card__facts > div { display: flex; flex-direction: column; gap: 2px; }
.rg-format-card__facts dt { font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--text-3); }
.rg-format-card__facts dd { margin: 0; font-size: 15px; line-height: 1.45; color: var(--wp--preset--color--text-2); }
.rg-format-card__cta { margin-top: auto; align-self: flex-start; }

/* ---------- 14. Консультации ---------- */
/* hero консультаций: прямые дети — текст, aside (фото + мета), кнопки. Мобильный: фото первым, мета между лидом и кнопками (макет 56, aside раскрыт через display: contents); десктоп: текст 1.2fr | фото с метой справа внизу, кнопки под текстом */
.rg-page-hero--consult { gap: 20px; }
.rg-page-hero--consult > * { margin: 0; }
.rg-page-hero__actions { gap: 12px; }
.rg-page-hero__aside { display: flex; flex-direction: column; gap: 12px; }
.rg-page-hero__aside > * { margin: 0; }
.rg-page-hero__aside .rg-meta + .rg-meta { margin-top: -6px; }
.rg-page-hero--consult .rg-page-hero__photo img { aspect-ratio: 4 / 3; object-position: 40% center; }
@media (max-width: 959px) {
  .rg-page-hero--consult { display: flex; flex-direction: column; }
  .rg-page-hero--consult .rg-page-hero__aside { display: contents; }
  .rg-page-hero--consult .rg-page-hero__photo { order: 0; margin-bottom: 8px; }
  .rg-page-hero--consult .rg-page-hero__text { order: 1; }
  .rg-page-hero--consult .rg-page-hero__aside .rg-meta { order: 2; }
  .rg-page-hero--consult .rg-page-hero__aside .rg-meta + .rg-meta { margin-top: -12px; }
  .rg-page-hero--consult .rg-page-hero__actions { order: 3; margin-top: 4px; }
}
@media (max-width: 599px) {
  .rg-page-hero--consult .rg-page-hero__actions { flex-direction: column; align-items: stretch; }
  .rg-page-hero--consult .rg-page-hero__actions .wp-block-button__link { width: 100%; justify-content: center; }
}
@media (min-width: 960px) {
  .rg-page-hero--consult { grid-template-columns: 1.2fr .8fr; grid-template-areas: "text aside" "actions aside"; row-gap: 28px; column-gap: 64px; align-items: start; }
  .rg-page-hero--consult .rg-page-hero__text { grid-area: text; }
  .rg-page-hero--consult .rg-page-hero__aside { grid-area: aside; align-self: end; padding-bottom: 8px; }
  .rg-page-hero--consult .rg-page-hero__actions { grid-area: actions; }
}
/* с чем приходят: интро + две колонки строк с линиями */
.rg-asks__inner > * { margin: 0; }
.rg-asks__intro { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; }
.rg-asks__intro > * { margin: 0; }
.rg-asks__lead { color: var(--wp--preset--color--text-2); max-width: 640px; }
.rg-asks .wp-block-columns { gap: 0 48px; }
.rg-asks__list { list-style: none; margin: 0; padding: 0; }
.rg-asks__list li { padding: 12px 0; border-top: 1px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--body); line-height: 1.45; }
.rg-asks__list li:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
@media (max-width: 781px) { .rg-asks .wp-block-column + .wp-block-column .rg-asks__list li:first-child { border-top: 0; } .rg-asks .wp-block-column:first-child .rg-asks__list li:last-child { border-bottom: 0; } }
/* кому подходит: две колонки с верхней линией */
.rg-fit > * { margin: 0; }
.rg-fit__intro { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; }
.rg-fit__intro > * { margin: 0; }
.rg-fit .wp-block-columns { gap: 32px 40px; }
.rg-fit__col { padding-top: 24px; border-top: 2px solid var(--wp--preset--color--ink); }
.rg-fit__col--no { border-top-color: var(--wp--preset--color--border-strong); }
.rg-fit__col > * { margin: 0; }
.rg-fit__col h3 { font-size: var(--wp--preset--font-size--h-4); line-height: 1.3; margin-bottom: 12px; }
.rg-fit__col--no h3 { color: var(--wp--preset--color--text-2); }
.rg-fit__list { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--text-2); }
/* как проходит работа: интро sticky | четыре шага */
.rg-process__inner { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-process__inner > * { margin: 0; }
.rg-process__intro { display: flex; flex-direction: column; gap: 12px; }
.rg-process__intro > * { margin: 0; }
.rg-steps > * { margin: 0; }
.rg-step { display: grid; grid-template-columns: 1fr; row-gap: 6px; padding-block: 20px; border-top: 1px solid var(--wp--preset--color--border); }
.rg-step:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-step > * { margin: 0; }
.rg-step__n { font-size: var(--wp--preset--font-size--label); letter-spacing: .08em; text-transform: uppercase; font-weight: 600; line-height: 1.2; color: var(--wp--preset--color--electric); }
.rg-step__title { font-size: var(--wp--preset--font-size--h-4); line-height: 1.3; }
.rg-step__text { font-size: var(--wp--preset--font-size--small); line-height: 1.55; color: var(--wp--preset--color--text-2); }
@media (min-width: 600px) {
  .rg-step { grid-template-columns: 72px 1fr; column-gap: 20px; padding-block: 24px; }
  .rg-step__n { grid-row: 1 / 3; padding-top: 4px; }
  .rg-step__title, .rg-step__text { grid-column: 2; }
}
@media (min-width: 960px) {
  .rg-process__inner { grid-template-columns: 1fr 2fr; gap: 64px; }
  .rg-process__intro { position: sticky; top: calc(96px + var(--rg-bar-offset)); align-self: start; height: fit-content; }
}
/* пять форматов: интро + карточки блока */
.rg-formats-section > * { margin: 0; }
.rg-formats-section__intro { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; }
.rg-formats-section__intro > * { margin: 0; }
.rg-formats-section__lead { color: var(--wp--preset--color--text-2); max-width: 640px; }
/* отзывы консультаций — без звёзд, цитата крупнее */
.rg-reviews--consult .rg-review__text { font-size: var(--wp--preset--font-size--body); line-height: 1.5; }
/* написать мне: интро sticky | форма */
.rg-consult-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.rg-consult-form > * { margin: 0; }
.rg-consult-form__intro { display: flex; flex-direction: column; gap: 12px; }
.rg-consult-form__intro > * { margin: 0; }
.rg-consult-form__intro p:not(.rg-label) { color: var(--wp--preset--color--text-2); }
.rg-consult-form__intro h2 { margin-bottom: 8px; }
.rg-consult-form .rg-form-wrap { margin: 0; }
@media (min-width: 960px) {
  .rg-consult-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 64px; align-items: start; }
  .rg-consult-form__intro { position: sticky; top: calc(96px + var(--rg-bar-offset)); height: fit-content; }
}
/* контакты, написать с сайта: интро с реквизитами sticky | форма письма */
.rg-contact-form { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rg-contact-form > * { margin: 0; }
.rg-contact-form__intro { display: flex; flex-direction: column; gap: 12px; }
.rg-contact-form__intro > * { margin: 0; }
.rg-contact-form__intro p:not(.rg-label) { color: var(--wp--preset--color--text-2); }
.rg-contact-form__intro h2 { margin-bottom: 8px; }
.rg-contact-form__intro > p:not(.rg-label):not(.rg-meta) + .rg-meta { margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--wp--preset--color--border); }
.rg-contact-form__intro > .rg-meta + .rg-meta { margin-top: -6px; }
.rg-contact-form .rg-form-wrap { margin: 0; }
@media (min-width: 960px) {
  .rg-contact-form { grid-template-columns: 1fr 1.4fr; gap: 64px; align-items: start; }
  .rg-contact-form__intro { position: sticky; top: calc(96px + var(--rg-bar-offset)); height: fit-content; }
}

/* ---------- 15. Материал ---------- */
/* Четыре зоны шаблона single: A шапка (.rg-entry__head), B медиа (.rg-entry__mediazone, раздел 17), C сетка тела и боковой колонки
   (.rg-entry__grid: 680 / 220, gap 40 — блок 940 по центру контейнера, на 1280 отступ 130 от края контейнера,
   текст начинается на x≈170; решение Руслана 20.09.2026), D полоса «По теме» (rg/related).
   Ядро печатает :where(.is-layout-flow) > * { margin-block-start } — внутри зон расстояния задают gap и явные отступы. */
.rg-entry { display: block; padding-block-start: 32px; } /* к крошкам — ближе, чем секционные 64/96 (макет: 40 под шапкой) */
@media (min-width: 1024px) { .rg-entry { padding-block-start: 40px; } }
.rg-entry > *, .rg-entry__head > *, .rg-entry__grid > *, .rg-entry__main > *, .rg-entry__side > * { margin-block: 0; }
.rg-entry__head { max-width: 760px; margin: 0 0 32px; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.rg-entry__head .rg-private-notice { margin: 0; align-self: stretch; }
.rg-entry__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.rg-entry__main { min-width: 0; display: flex; flex-direction: column; gap: 32px; }
.rg-entry__side { display: none; }
.rg-toc--side { display: none; }
/* Внутри .rg-entry__main всё узкое — 680; корневые поля ядра (.has-global-padding) не нужны: поля даёт .rg-container. */
.rg-entry__content.has-global-padding { padding-inline: 0; }
@media (max-width: 1023px) {
  .rg-entry__head, .rg-entry__main, .rg-entry__mediazone { max-width: 680px; margin-inline: auto; width: 100%; }
}
/* ≥1024: блок 940 (текст 680 + 40 + колонка 220) по центру контейнера, внутри — две колонки от левого края блока */
@media (min-width: 1024px) {
  .rg-entry__head, .rg-entry__grid { width: min(100%, 940px); margin-inline: auto; }
  .rg-entry__grid { grid-template-columns: minmax(0, 680px) 220px; column-gap: 40px; justify-content: start; }
  .rg-entry__main { grid-column: 1; }
  .rg-entry__side { grid-column: 2; display: flex; flex-direction: column; gap: 24px; align-self: start; position: sticky; top: calc(var(--wp--custom--header-height) + 24px + var(--rg-bar-offset)); }
  .rg-toc--side { display: block; }
  .rg-toc--inline { display: none; }
  /* широкий блок в теле выезжает вправо на 260 (gap 40 + колонка 220) — боковая колонка тогда не липкая, чтобы не наехать */
  .rg-entry:has(.alignwide, .alignfull) .rg-entry__side { position: static; }
  /* Ядро ставит детям constrained-контейнера margin-inline: auto !important — сдвиг задаём не отступами, а шириной:
     ширина колонки текста + 40 (gap) + 220 (боковая колонка); авто-поля схлопываются в 0, блок выезжает вправо.
     Не 940 жёстко: при окне 1024 с полосой прокрутки доступная ширина 929 (vw считает полосу), колонка ужимается —
     от фиксированных 940 получалась горизонтальная прокрутка на 11px. .alignfull — страховка: ведёт себя как wide. */
  .rg-entry .rg-entry__content > :is(.alignwide, .alignfull) { width: calc(100% + 260px); max-width: none; }
  .rg-entry__head { max-width: none; } /* сама зона — 940 по центру; 760 — у содержимого от левого края блока */
  .rg-entry__head > * { max-width: 760px; }
}
/* Хлебные крошки: 14/500 text-3, ссылки text-2, шеврон 14 между (.rg-ico--14 — раздел 1) */
.rg-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: var(--wp--preset--font-size--small); font-weight: 500; color: var(--wp--preset--color--text-3); }
.rg-crumbs li { display: inline-flex; align-items: center; gap: 6px; }
.rg-crumbs a { color: var(--wp--preset--color--text-2); text-decoration: none; }
.rg-crumbs .rg-ico { flex: none; }
@media (hover: hover) { .rg-crumbs a:hover { color: var(--wp--preset--color--electric); } }
/* Мета материала: аватар 32 + имя, части через · */
.rg-entry-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; line-height: 1.4; }
.rg-entry-meta__item { display: inline-flex; align-items: baseline; gap: 8px; } /* flex без переноса: точка остаётся при своей части, длинная часть переносится внутри себя */
.rg-entry-meta__avatar { width: 32px; height: 32px; border-radius: 999px; object-fit: cover; object-position: 50% 20%; flex: none; margin-right: 2px; }
.rg-entry-meta__name { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--preset--color--fg); }
.rg-entry-meta__series { color: inherit; text-decoration: underline; text-decoration-color: var(--wp--preset--color--border-strong); text-underline-offset: 3px; }
@media (hover: hover) { .rg-entry-meta__series:hover { color: var(--wp--preset--color--electric); text-decoration-color: currentColor; } }
/* Оглавление: боковое (nav) и встроенное (details) */
.rg-toc__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rg-toc__item a { display: block; font-size: var(--wp--preset--font-size--small); font-weight: 500; line-height: 1.4; color: var(--wp--preset--color--text-2); text-decoration: none; }
.rg-toc__item--sub a { padding-left: 12px; }
.rg-toc__item a.is-current { color: var(--wp--custom--accent-fg); font-weight: 600; }
@media (hover: hover) { .rg-toc__item a:hover { color: var(--wp--preset--color--electric); } }
/* Линия слева — на заголовке и на каждой ссылке (не на списке): список прокручивается при длинном оглавлении,
   и метка активного пункта не должна обрезаться overflow. Высота списка — чтобы вся липкая колонка помещалась в экран;
   тонкая полоса прокрутки в токенах темы, снизу затухание — только когда список действительно прокручивается (.is-scrollable ставит view.js). */
.rg-toc--side .rg-toc__title { margin: 0; padding: 0 0 12px 16px; border-left: 2px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; color: var(--wp--preset--color--text-3); }
.rg-toc--side .rg-toc__list { gap: 0; max-height: max(200px, calc(100vh - var(--wp--custom--header-height) - 360px)); overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--wp--preset--color--border-strong) transparent; }
.rg-toc--side .rg-toc__list::-webkit-scrollbar { width: 4px; }
.rg-toc--side .rg-toc__list::-webkit-scrollbar-thumb { background: var(--wp--preset--color--border-strong); border-radius: 2px; }
.rg-toc--side .rg-toc__list::-webkit-scrollbar-track { background: transparent; }
.rg-toc--side .rg-toc__list.is-scrollable { mask-image: linear-gradient(to bottom, #000 calc(100% - 32px), transparent); -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 32px), transparent); }
.rg-toc--side .rg-toc__item a { padding: 5px 0 5px 16px; border-left: 2px solid var(--wp--preset--color--border); }
.rg-toc--side .rg-toc__item--sub a { padding-left: 28px; }
.rg-toc--side .rg-toc__item a.is-current { border-left-color: var(--wp--preset--color--electric); }
.rg-toc--side .rg-toc__item a:focus-visible { outline-offset: -2px; } /* список с overflow-y: auto не должен резать кольцо фокуса */
.rg-toc--inline { border-top: 1px solid var(--wp--preset--color--border); border-bottom: 1px solid var(--wp--preset--color--border); padding: 14px 0; }
.rg-toc--inline summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: var(--wp--preset--font-size--label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; color: var(--wp--preset--color--text-3); }
.rg-toc--inline summary::-webkit-details-marker { display: none; }
.rg-toc--inline summary::after { content: ""; width: 8px; height: 8px; border-right: 1.75px solid currentColor; border-bottom: 1.75px solid currentColor; transform: rotate(45deg); margin-right: 4px; transition: transform .15s ease-out; }
.rg-toc--inline[open] summary::after { transform: rotate(225deg); margin-top: 4px; }
.rg-toc--inline .rg-toc__list { margin-top: 12px; }
.rg-toc--inline .rg-toc__item a { font-size: 15px; }
/* «Поделиться»: лейбл + круглые ghost-кнопки 36 */
.rg-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rg-share--side .rg-share__label { flex-basis: 100%; }
.rg-share__btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; min-width: 36px; padding: 0; border-radius: 999px; border: 1.5px solid var(--wp--preset--color--border-strong); background: transparent; color: var(--wp--custom--accent-fg); font: inherit; font-size: 13px; font-weight: 600; line-height: 1; cursor: pointer; text-decoration: none; transition: border-color .15s ease-out, background-color .15s ease-out; }
.rg-share__btn .rg-ico { width: 18px; height: 18px; }
.rg-share__btn.is-copied { padding: 0 12px; border-color: var(--wp--preset--color--ok); color: var(--wp--preset--color--ok); }
@media (hover: hover) { .rg-share__btn:hover { border-color: var(--wp--custom--border-hover); background: var(--wp--preset--color--surface-2); } }
/* «Было полезно?»: строка с линиями сверху и снизу */
.rg-helpful { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 20px 0; border-top: 1px solid var(--wp--preset--color--border); border-bottom: 1px solid var(--wp--preset--color--border); margin-top: 8px; }
.rg-helpful__q { margin: 0; font-size: var(--wp--preset--font-size--body); font-weight: 600; }
.rg-helpful__actions { display: flex; gap: 8px; }
.rg-helpful__btn { display: inline-flex; align-items: center; height: 40px; padding: 0 18px; border-radius: 999px; border: 1.5px solid var(--wp--preset--color--border-strong); background: transparent; color: var(--wp--preset--color--fg); font: inherit; font-size: 14px; font-weight: 600; line-height: 1; cursor: pointer; transition: border-color .15s ease-out, background-color .15s ease-out, color .15s ease-out; }
.rg-helpful__btn:disabled { cursor: default; opacity: .55; }
@media (hover: hover) { .rg-helpful__btn:not(:disabled):hover { border-color: var(--wp--custom--border-hover); background: var(--wp--preset--color--surface-2); } }
.rg-helpful__btn:not(:disabled):active { background: var(--wp--custom--accent-surface); border-color: transparent; color: #fff; }
/* Лайк / дизлайк вместо «Да / Не очень» (владелец, 25.09.2026): значки 32px без обводки, при наведении — светлый круг.
   Так же — кнопки «Поделиться» внутри панели низа материала: панель ниже (64px вместо 72). В боковой колонке «Поделиться» — прежний вид. */
.rg-helpful__btn--yes, .rg-helpful__btn--no, .rg-entry__foot .rg-share__btn:not(.is-copied) { width: 32px; height: 32px; min-width: 32px; padding: 0; justify-content: center; border-color: transparent; }
.rg-helpful__btn .rg-ico { width: 20px; height: 20px; display: block; }
.rg-entry__foot .rg-share { gap: 4px; }
.rg-entry__foot .rg-share__label { margin-right: 6px; }
.rg-helpful__actions { gap: 4px; }
@media (hover: hover) {
  .rg-helpful__btn--yes:not(:disabled):hover, .rg-helpful__btn--no:not(:disabled):hover, .rg-entry__foot .rg-share__btn:not(.is-copied):hover { border-color: transparent; background: var(--wp--preset--color--surface-2); }
  .rg-helpful__btn--yes:not(:disabled):hover { color: var(--wp--preset--color--electric); }
}
.rg-helpful__thanks { margin: 0; font-size: 15px; font-weight: 600; color: var(--wp--preset--color--ok); }
/* Низ материала (владелец, 25.09.2026, по образцу Medium, «Т—Ж», Meduza): хэштеги сразу под текстом, затем одна светлая
   панель действий — «Было полезно?» слева, «Поделиться» справа, — без разделительных линий; дальше карточка автора. */
.rg-entry__main > .rg-entry__tags { margin: 0; padding: 0; border: 0; } /* отступы даёт gap колонки (32px) */
.rg-entry__foot { display: flex; justify-content: space-between; align-items: center; gap: 16px 24px; flex-wrap: wrap; margin-top: -12px; padding: 16px 20px; border-radius: var(--wp--custom--radius-l); background: var(--wp--preset--color--surface); }
.rg-entry__foot > * { margin: 0; }
.rg-entry__foot .rg-helpful { padding: 0; border: 0; margin: 0; }
.rg-entry__foot .rg-share--inline { margin-left: auto; } /* без «Было полезно?» — «Поделиться» остаётся справа */
/* На телефоне — вариант «В2» (владелец, 25.09.2026; `design/components/niz-materiala-mobile-varianty.png`): две равные
   половины через тонкую линию, в каждой по центру подпись мелкими заглавными и значки под ней. Прежний столбик от левого
   края рассыпался: значки двух строк начинались с разных мест. Десктоп и планшет не меняются. Если «Было полезно?»
   скрыт (скрипт ещё не показал), «Поделиться» занимает всю ширину и линии нет. */
@media (max-width: 599px) {
  .rg-entry__foot { flex-wrap: nowrap; align-items: stretch; gap: 0; padding: 16px 0; }
  .rg-entry__foot > .rg-helpful, .rg-entry__foot > .rg-share { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 8px; padding: 0 4px; }
  .rg-entry__foot > .rg-share { flex-direction: row; flex-wrap: wrap; justify-content: center; align-content: flex-start; column-gap: 4px; row-gap: 8px; margin-left: 0; }
  .rg-entry__foot > .rg-helpful:not([hidden]) + .rg-share { border-left: 1px solid var(--wp--preset--color--border); }
  .rg-entry__foot > .rg-helpful { flex-wrap: nowrap; } /* с переносом в столбце значки уезжали во вторую колонку, на линию */
  .rg-entry__foot .rg-share__label { flex-basis: 100%; }
  .rg-entry__foot .rg-helpful__q, .rg-entry__foot .rg-share__label { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .08em; line-height: 16px; text-transform: uppercase; color: var(--wp--preset--color--text-2); text-align: center; white-space: nowrap; }
  .rg-entry__foot .rg-helpful__thanks { text-align: center; font-size: 14px; }
}
@media (max-width: 359px) { .rg-entry__foot > .rg-share { column-gap: 0; } .rg-entry__foot .rg-helpful__q, .rg-entry__foot .rg-share__label { letter-spacing: .04em; } }
/* Автор: 72 + 1fr */
.rg-author { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 20px; align-items: center; }
.rg-author__avatar { width: 72px; height: 72px; border-radius: 999px; object-fit: cover; object-position: 50% 20%; }
.rg-author__body { display: flex; flex-direction: column; gap: 4px; }
.rg-author__body > * { margin: 0; }
.rg-author__name { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; }
.rg-author__body .rg-link-quiet { margin-top: 4px; font-size: 14px; align-self: flex-start; }
.rg-author:not(:has(.rg-author__avatar)) { grid-template-columns: minmax(0, 1fr); }
/* Боковая карточка консультации */
.rg-aside-card { display: flex; flex-direction: column; gap: 6px; padding: 16px; border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--color--surface); }
.rg-aside-card > * { margin: 0; }
.rg-aside-card__title { font-size: 15px; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
.rg-aside-card .rg-btn { align-self: flex-start; margin-top: 8px; }
/* Полоса «По теме»: .rg-band + шапка секции как в хабе (rg_theme_section_head, .rg-section__head) — своих правил не требует */
/* Стили блоков ядра (спека §6.1, register_block_style в functions.php). Классы is-style-* ставит панель «Стили» редактора;
   выноска — core/group с лейблом-абзацем .rg-callout__label (ставят паттерны). Ядро печатает :root :where(.is-layout-flow) > * { margin-block }
   (в редакторе — после стилей темы) — внутри выноски отступы детей сбрасываем селектором выше по специфичности, расстояние задаёт gap.
   Кегли 34/800 (крупная мысль) и 19/600 (формула) — вне шкалы theme.json. */
/* Абзацы тела материала — body-l с .entry-content (спека §4.2): :root :where(p) из theme.json ставит body; стилевые абзацы
   (p.is-style-*) и абзацы выносок (> p на группе, выше по специфичности) не трогаем; страницы (.rg-page) — тоже нет */
.rg-entry__content p:where(:not([class*="is-style-"])) { font-size: inherit; }
.is-style-callout-fact, .is-style-callout-important, .is-style-callout-practice, .is-style-callout-rule, .is-style-callout-source, .is-style-callout-question {
  display: flex; flex-direction: column; gap: 8px; padding: 20px 24px; border-radius: var(--wp--custom--radius-m);
  background: var(--wp--preset--color--tint); color: var(--wp--preset--color--fg); font-size: var(--wp--preset--font-size--body); line-height: 1.55;
}
.wp-block-group[class*="is-style-callout-"] > * { margin: 0; }
.wp-block-group[class*="is-style-callout-"] > p { font-size: inherit; line-height: inherit; } /* :root :where(p) ядра ставит body — у «Источника» текст мельче */
.wp-block-group[class*="is-style-callout-"] > :is(ul, ol) { padding-left: 20px; }
.wp-block-group[class*="is-style-callout-"] > .rg-callout__label { font-size: var(--wp--preset--font-size--label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; }
.is-style-callout-fact .rg-callout__label { color: var(--wp--custom--tint-fg); }
.is-style-callout-important { background: var(--wp--preset--color--warn-bg); }
.is-style-callout-important .rg-callout__label { color: var(--wp--preset--color--warn); }
.is-style-callout-practice { background: var(--wp--preset--color--ok-bg); }
.is-style-callout-practice .rg-callout__label { color: var(--wp--preset--color--ok); }
.is-style-callout-rule { background: var(--wp--preset--gradient--ink-glow); color: #fff; font-weight: 500; }
.is-style-callout-rule .rg-callout__label { color: var(--wp--preset--color--ink-text); }
.wp-block-group.is-style-callout-rule a { color: #fff; text-decoration-color: var(--wp--preset--color--ink-text); } /* ссылки на чернилах — белые и в редакторе */
@media (hover: hover) { .wp-block-group.is-style-callout-rule a:hover { color: #fff; } }
.is-style-callout-source { background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--text-2); font-size: 14px; line-height: 1.5; }
.is-style-callout-source .rg-callout__label { color: var(--wp--preset--color--text-2); }
/* «Вопрос вам» (25.09.2026): финальный вопрос автора читателю. Комментариев на сайте нет — вопрос для размышления,
   а обсуждение ведёт тихая ссылка на исходный пост в Telegram (абзац .rg-callout__more). */
.is-style-callout-question { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border-strong); font-size: var(--wp--preset--font-size--lead); font-weight: 500; line-height: 1.45; }
.is-style-callout-question .rg-callout__label { color: var(--wp--preset--color--electric); }
.wp-block-group.is-style-callout-question > p.rg-callout__more { font-size: 15px; font-weight: 600; line-height: 1.4; margin-top: 6px; }
.wp-block-group.is-style-callout-question > p.rg-callout__more a { color: var(--wp--custom--accent-fg); text-decoration: none; }
@media (hover: hover) { .wp-block-group.is-style-callout-question > p.rg-callout__more a:hover { color: var(--wp--preset--color--electric); } }
/* Цитата (стиль по умолчанию, theme.json core/quote: линия 3px electric, lead/500, cite — мета): :root :where(p) ядра ставит абзацу body —
   внутри цитаты кегль и интерлиньяж наследуются от blockquote */
.wp-block-quote > p { font-size: inherit; line-height: inherit; }
.wp-block-quote cite { display: block; margin-top: 8px; }
/* Абзацы: крупная мысль (accent-fg: ink в светлой, fg в тёмной), формула, примечание */
/* Крупная мысль: 28/700 ink со штрихом 40×3 electric сверху — не путается с H2 (решение Руслана 20.09.2026: 34/800 рядом с H2 читалась
   как два заголовка); ближе к предыдущему абзацу (32), дальше от следующего H2 (56). Без автопереносов на крупном кегле. */
p.is-style-pull { font-size: 28px; line-height: 1.2; font-weight: 700; letter-spacing: -0.02em; color: var(--wp--custom--accent-fg); text-wrap: balance; hyphens: manual; }
p.is-style-pull::before { content: ''; display: block; width: 40px; height: 3px; background: var(--wp--preset--color--electric); border-radius: 2px; margin-bottom: 14px; }
.entry-content > .is-style-pull { margin: 32px 0 56px; }
/* Заголовки тела материала — фиксированные отступы (страницы .rg-page остаются на em-ритме раздела 1; специфичность как у раздела 1) */
.rg-entry .rg-entry__content h2 { margin-block: 56px 16px; }
.rg-entry .rg-entry__content h3 { margin-block: 40px 12px; }
p.is-style-formula { font-size: 19px; line-height: 1.5; font-weight: 600; color: var(--wp--custom--accent-fg); text-align: center; text-wrap: balance;
  background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-m); padding: 16px 20px; }
p.is-style-note { font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--text-3); }
@media (max-width: 767px) { p.is-style-pull { font-size: 24px; } }
/* Обычные списки в теле материала: зазор между пунктами (у стилизованных — свои линии/gap) */
.rg-entry__content .wp-block-list:not([class*="is-style-"]) > li + li { margin-top: 10px; }
.rg-entry__content .wp-block-list:not([class*="is-style-"]) > li { padding-left: 4px; }
/* Списки: строками (левая линия), вопросы (линии, последний — акцент), тезисы подкаста (линии). .wp-block-list — чтобы перебить
   :root :where(.wp-block-list) { padding-left } из theme.json и в редакторе тоже */
.wp-block-list.is-style-lines, .wp-block-list.is-style-questions, .wp-block-list.is-style-theses { list-style: none; margin-block-start: 0; margin-inline: 0; padding: 0; } /* нижний отступ — ритм .entry-content > * */
.wp-block-list.is-style-lines { display: flex; flex-direction: column; gap: 10px; padding: 6px 0 6px 20px; border-left: 2px solid var(--wp--preset--color--border-strong); font-size: var(--wp--preset--font-size--body-l); line-height: 1.5; }
.wp-block-list.is-style-lines > li { margin: 0; }
.wp-block-list.is-style-questions > li { padding: 12px 0; border-top: 1px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--lead); font-weight: 600; line-height: 1.4; letter-spacing: -0.01em; text-wrap: balance; }
.wp-block-list.is-style-questions > li:last-child { border-bottom: 1px solid var(--wp--preset--color--border); color: var(--wp--custom--accent-fg); }
.wp-block-list.is-style-theses > li { padding: 14px 0; border-top: 1px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--body-l); line-height: 1.45; }
.wp-block-list.is-style-theses > li:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
/* Таблица «Сравнение»: без вертикальных линий, шапка лейблом с линией 2px ink, строки 15; ≤599 — карточки (3c-2), пока — прокрутка ядра.
   .wp-block-table — выше специфичности рамок ядра (.wp-block-table td) и в редакторе */
.wp-block-table.is-style-compare table { border-collapse: collapse; width: 100%; border: 0; }
.wp-block-table.is-style-compare :is(thead, tbody, tfoot, tr) { border: 0; }
.wp-block-table.is-style-compare :is(th, td) { border: 0; border-bottom: 1px solid var(--wp--preset--color--border); padding: 12px 16px; text-align: left; vertical-align: top; font-size: var(--wp--preset--font-size--small); line-height: 1.5; }
.wp-block-table.is-style-compare :is(th, td):first-child { padding-left: 0; }
.wp-block-table.is-style-compare :is(th, td):last-child { padding-right: 0; }
.wp-block-table.is-style-compare th { font-size: var(--wp--preset--font-size--label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; color: var(--wp--preset--color--text-3); border-bottom: 2px solid var(--wp--preset--color--ink); }
.wp-block-table.is-style-compare figcaption { text-align: left; }

/* ---------- 16. Памятка ---------- */
/* Стили блоков справочного материала (спека §6.3): статистика, буквенные блоки, варианты, диагностический вопрос,
   признаки и ошибки, книги, шпаргалка, подпись, полоса фактов, шаги, чек-лист. Регистрация — functions.php,
   в редакторе те же правила через add_editor_style. Заголовки внутри стилевых блоков — абзацы с классами
   (rg-letter__t, rg-opt__t, rg-subhead), а не <h3>: иначе они попадают в оглавление, которого на макете нет. */
p.rg-subhead { font-size: var(--wp--preset--font-size--body); font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
.wp-block-column > p.rg-subhead { margin-block: 0 12px; } /* подзаголовок колонки не прилипает к первому пункту списка (между пунктами 10px) */
/* Все стилевые контейнеры памятки гасят отступы детей ядра — расстояния задают gap и явные margin */
.wp-block-group:is(.is-style-letter, .is-style-diagnostic) > *,
.wp-block-columns:is(.is-style-stats, .is-style-options, .is-style-facts) .wp-block-column > * { margin: 0; }

/* Статистика: 36/800 + подпись; 4 в ряд на широком блоке, 2 на телефоне (auto-fit) */
.wp-block-columns.is-style-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.wp-block-columns.is-style-stats > .wp-block-column { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); padding: 20px 22px; display: flex; flex-direction: column; gap: 6px; }
.wp-block-columns.is-style-stats p.rg-stat__n { font-size: 36px; font-weight: 800; line-height: 1; letter-spacing: -0.03em; color: var(--wp--custom--accent-fg); font-variant-numeric: tabular-nums; }
.wp-block-columns.is-style-stats p.rg-stat__l { font-size: 14px; line-height: 1.4; color: var(--wp--preset--color--text-2); }
/* Буквенный блок (DOES): квадрат 48 ink-glow + заголовок-абзац + текст */
.wp-block-group.is-style-letter { display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: 16px; row-gap: 4px; align-items: start; }
.wp-block-group.is-style-letter > p.rg-letter__b { grid-row: 1 / span 2; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--gradient--ink-glow); color: #fff; font-size: 22px; font-weight: 800; line-height: 1; }
.wp-block-group.is-style-letter > p.rg-letter__t { grid-column: 2; font-size: var(--wp--preset--font-size--body); font-weight: 700; line-height: 1.3; }
.wp-block-group.is-style-letter > p:not(.rg-letter__b):not(.rg-letter__t) { grid-column: 2; font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--text-2); }

/* Ловушка (памятка «24 ловушки», 25.09.2026 — владелец: «суховато»): карточка — номер ink-glow (счётчиком, руками не набирается)
   + лозунг-абзац, описание, две панели «Ребёнок видит» (тон) и «Последствия» (тёплый фон) рядом; на телефоне — друг под другом.
   Лозунг — абзац rg-trap__t, а не <h3>: в оглавлении остаются только крупные разделы. */
.wp-block-group.is-style-trap { counter-increment: rg-trap; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 12px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); padding: 24px 26px; }
.wp-block-group.is-style-trap > * { grid-column: 1 / -1; margin: 0; }
.wp-block-group.is-style-trap > p.rg-trap__t { display: flex; align-items: center; gap: 14px; margin-bottom: 4px; font-size: 20px; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; text-wrap: balance; }
.wp-block-group.is-style-trap > p.rg-trap__t::before { content: counter(rg-trap); flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--gradient--ink-glow); color: #fff; font-size: 17px; font-weight: 800; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.wp-block-group.is-style-trap > p:is(.rg-trap__see, .rg-trap__res) { grid-column: auto; padding: 14px 16px; border-radius: var(--wp--custom--radius-m); font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--fg); }
.wp-block-group.is-style-trap > p.rg-trap__see { background: var(--wp--preset--color--tint); }
.wp-block-group.is-style-trap > p.rg-trap__res { background: var(--wp--preset--color--warn-bg); }
.wp-block-group.is-style-trap > p:is(.rg-trap__see, .rg-trap__res) > strong:first-child { display: block; margin-bottom: 6px; font-size: var(--wp--preset--font-size--label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; }
.wp-block-group.is-style-trap > p.rg-trap__see > strong:first-child { color: var(--wp--custom--tint-fg); }
.wp-block-group.is-style-trap > p.rg-trap__res > strong:first-child { color: var(--wp--preset--color--warn); }
.wp-block-group.is-style-trap > p.rg-trap__more { font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--text-2); }
@media (max-width: 599px) {
  .wp-block-group.is-style-trap { grid-template-columns: minmax(0, 1fr); padding: 20px; }
  .wp-block-group.is-style-trap > p.rg-trap__t { font-size: 19px; }
}

/* Шпаргалка: компактная таблица карточкой с tint-шапкой (спека §6.3; на макете шапка не tint — «Решения этого плана» п. 5) */
.wp-block-table.is-style-cheatsheet { border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-m); overflow-x: auto; overflow-y: hidden; background: var(--wp--preset--color--surface); }
.wp-block-table.is-style-cheatsheet table { border-collapse: collapse; width: 100%; border: 0; }
.wp-block-table.is-style-cheatsheet :is(thead, tbody, tr) { border: 0; }
.wp-block-table.is-style-cheatsheet th { background: var(--wp--preset--color--tint); color: var(--wp--custom--tint-fg); font-size: var(--wp--preset--font-size--label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; text-align: left; padding: 10px 14px; border: 0; }
.wp-block-table.is-style-cheatsheet td { font-size: 14px; line-height: 1.5; padding: 10px 14px; border: 0; border-top: 1px solid var(--wp--preset--color--border); vertical-align: top; }
.wp-block-table.is-style-cheatsheet td:first-child { font-weight: 600; }
.wp-block-table.is-style-cheatsheet figcaption { text-align: left; padding: 0 14px 10px; }
/* Прокрутка вбок (overflow-x: auto выше) — свойство компонента, не зависит от того, ставил ли JS is-cards:
   на 600–1023 (там entry.js уже добавил is-cards, но карточный режим ещё не включился — он только ≤599)
   длинная строка таблицы должна прокручиваться вбок сама, а не обрезаться и не толкать страницу; так же и
   без JS вовсе. На ≤599 в фактическом карточном режиме .is-cards снимает overflow в overflow: visible ниже —
   там прокрутка уже не нужна (карточки укладываются в столбик). */
/* ≤599: строки таблиц сравнения и шпаргалки — карточки; data-label и is-cards ставит entry.js, без JS остаётся таблица */
@media (max-width: 599px) {
  .rg-entry__content .wp-block-table:is(.is-style-compare, .is-style-cheatsheet).is-cards { border: 0; border-radius: 0; background: none; overflow: visible; }
  .is-cards:is(.is-style-compare, .is-style-cheatsheet) :is(table, tbody, tr, td) { display: block; }
  .is-cards:is(.is-style-compare, .is-style-cheatsheet) thead { display: none; }
  .is-cards:is(.is-style-compare, .is-style-cheatsheet) tr { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-m); padding: 16px 18px; margin-bottom: 10px; }
  .is-cards:is(.is-style-compare, .is-style-cheatsheet) td { border: 0; padding: 0; font-size: 14px; line-height: 1.5; color: var(--wp--preset--color--text-2); }
  .is-cards:is(.is-style-compare, .is-style-cheatsheet) td + td { margin-top: 10px; }
  .is-cards:is(.is-style-compare, .is-style-cheatsheet) td::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: var(--wp--preset--font-size--label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--text-3); }
  .is-cards:is(.is-style-compare, .is-style-cheatsheet) td:first-child { font-size: 15px; font-weight: 700; color: var(--wp--preset--color--fg); }
  .is-cards:is(.is-style-compare, .is-style-cheatsheet) td:first-child::before { display: none; }
}

/* Варианты 2×2: карточки с границей; выделенный вариант — граница electric (стиль колонки «Выделено») */
.wp-block-columns.is-style-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.wp-block-columns.is-style-options > .wp-block-column { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.wp-block-columns.is-style-options > .wp-block-column.is-style-highlight { border: 1.5px solid var(--wp--preset--color--electric); }
.wp-block-columns.is-style-options p.rg-opt__m { font-size: var(--wp--preset--font-size--caption); font-weight: 500; color: var(--wp--preset--color--text-3); }
.wp-block-columns.is-style-options .is-style-highlight p.rg-opt__m { color: var(--wp--preset--color--electric); }
.wp-block-columns.is-style-options p.rg-opt__t { font-size: var(--wp--preset--font-size--h-4); font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
.wp-block-columns.is-style-options p:not(.rg-opt__m):not(.rg-opt__t) { font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--text-2); }
/* Диагностический вопрос: рамка 1.5 ink, лейбл, вопрос lead/600 с ключевой фразой на tint */
.wp-block-group.is-style-diagnostic { display: flex; flex-direction: column; gap: 10px; background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--custom--accent-fg); border-radius: var(--wp--custom--radius-l); padding: 22px 26px; }
.wp-block-group.is-style-diagnostic > .rg-callout__label { font-size: var(--wp--preset--font-size--label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; color: var(--wp--custom--accent-fg); }
.wp-block-group.is-style-diagnostic > p.rg-diag__q { font-size: var(--wp--preset--font-size--lead); font-weight: 600; line-height: 1.4; letter-spacing: -0.01em; text-wrap: pretty; }
.wp-block-group.is-style-diagnostic > p.rg-diag__a { font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--text-2); }
.wp-block-group.is-style-diagnostic mark, .rg-entry__content mark { background: var(--wp--preset--color--tint); color: var(--wp--custom--tint-fg); padding: 0 4px; border-radius: var(--wp--custom--radius-s); }
@media (max-width: 599px) { .wp-block-columns.is-style-options { grid-template-columns: minmax(0, 1fr); } }

/* Признаки (галочки electric) и ошибки (крестики warn): маркер — CSS-маска, чтобы цвет шёл от токена темы */
.wp-block-list:is(.is-style-signs, .is-style-mistakes) { list-style: none; margin-block-start: 0; margin-inline: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.wp-block-list:is(.is-style-signs, .is-style-mistakes) > li { position: relative; padding-left: 28px; font-size: var(--wp--preset--font-size--body); line-height: 1.55; }
.wp-block-list:is(.is-style-signs, .is-style-mistakes) > li::before { content: ""; position: absolute; left: 0; top: .32em; width: 18px; height: 18px; -webkit-mask: var(--rg-mark) center / contain no-repeat; mask: var(--rg-mark) center / contain no-repeat; }
.wp-block-list.is-style-signs > li::before { --rg-mark: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12l5 5 9-10"/></svg>'); background-color: var(--wp--preset--color--electric); }
.wp-block-list.is-style-mistakes > li::before { --rg-mark: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12"/><path d="M18 6L6 18"/></svg>'); background-color: var(--wp--preset--color--warn); }
/* Список книг: название 17/600, аннотация мета, тихая ссылка на площадку (без миниатюр — §4.3 п. 8) */
/* Списки материалов: книги, фильмы, документы (PDF), внешние ссылки. У каждой строки значок своего вида
   в светлой плашке 36px слева (вариант «Г» из design/components/spiski-materialov-varianty.html), строки разделены воздухом, а не полосками (владелец, 25.09.2026: «много отсекающих полосок,
   не хватает значков»). Первая <strong> в пункте — название, дальше мелким — пояснение и ссылки. */
.wp-block-list:is(.is-style-books, .is-style-films, .is-style-docs, .is-style-links) { list-style: none; margin-block-start: 0; margin-inline: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.wp-block-list:is(.is-style-books, .is-style-films, .is-style-docs, .is-style-links) > li { position: relative; padding-left: 50px; min-height: 36px; font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--text-2); }
.wp-block-list:is(.is-style-books, .is-style-films, .is-style-docs, .is-style-links) > li > strong:first-child { display: block; margin-bottom: 2px; font-size: var(--wp--preset--font-size--body); font-weight: 600; line-height: 1.4; color: var(--wp--preset--color--fg); }
.wp-block-list:is(.is-style-books, .is-style-films, .is-style-docs, .is-style-links) > li a { font-size: 14px; font-weight: 600; color: var(--wp--custom--accent-fg); text-decoration: none; }
@media (hover: hover) { .wp-block-list:is(.is-style-books, .is-style-films, .is-style-docs, .is-style-links) > li a:hover { color: var(--wp--preset--color--electric); } }
.wp-block-list:is(.is-style-books, .is-style-films, .is-style-docs, .is-style-links) > li::before { content: ""; position: absolute; left: 0; top: 0; width: 36px; height: 36px; border-radius: 10px; background: var(--wp--preset--color--tint); } /* вариант «Г» (25.09.2026): значок в светлой плашке, как карточки соцсетей */
.wp-block-list:is(.is-style-books, .is-style-films, .is-style-docs, .is-style-links) > li::after { content: ""; position: absolute; left: 8px; top: 8px; width: 20px; height: 20px; background-color: var(--wp--custom--tint-fg); -webkit-mask: var(--rg-mark) center / contain no-repeat; mask: var(--rg-mark) center / contain no-repeat; }
.wp-block-list.is-style-books > li { --rg-mark: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 7v14"/><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>'); }
.wp-block-list.is-style-films > li { --rg-mark: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2"/><path d="M7 3v18M3 7.5h4M3 12h18M3 16.5h4M17 3v18M17 7.5h4M17 16.5h4"/></svg>'); }
.wp-block-list.is-style-docs > li { --rg-mark: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z"/><path d="M14 2v5h6M9 13h6M9 17h6"/></svg>'); }
.wp-block-list.is-style-links > li { --rg-mark: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 3h6v6M10 14 21 3M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/></svg>'); }

/* Подпись документа: линия сверху, мелкая мета (без кнопок — §4.3 п. 3) */
p.is-style-signature { margin-top: 32px; padding-top: 20px; border-top: 1.5px solid var(--wp--preset--color--border-strong); font-size: 14px; line-height: 1.5; color: var(--wp--preset--color--text-3); }
/* Полоса «Для кого / Что поможет сделать / Время»: три колонки, линия 2px сверху */
.wp-block-columns.is-style-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; padding: 24px 0; border-top: 2px solid var(--wp--custom--accent-fg); border-bottom: 1px solid var(--wp--preset--color--border); }
.wp-block-columns.is-style-facts > .wp-block-column { display: flex; flex-direction: column; gap: 6px; }
.wp-block-columns.is-style-facts p:not(.rg-label) { font-size: var(--wp--preset--font-size--body); font-weight: 500; line-height: 1.4; }
/* .rg-entry__content p:where(:not([class*="is-style-"])) (раздел 1) специфичнее .rg-label — без этого правила лейбл шёл кеглем тела, а не 12px */
.wp-block-columns.is-style-facts p.rg-label { font-size: var(--wp--preset--font-size--label); }
@media (max-width: 599px) { .wp-block-columns.is-style-facts { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 20px 0; } }

/* Шаги: колонка «ШАГ N» 88 + текст, «ШАГ N» счётчиком CSS, заголовок — <strong> первой строкой пункта (в оглавление не попадает).
   Не grid на <li>: в grid-контейнере каждый текстовый прогон становится отдельным элементом — <strong> и текст
   после него разъехались бы по разным ячейкам. Колонку даёт padding + абсолютный ::before (как у .rg-theses и «Признаков»). */
.wp-block-list.is-style-steps { list-style: none; margin-block-start: 0; margin-inline: 0; padding: 0; counter-reset: rg-step; }
.wp-block-list.is-style-steps > li { counter-increment: rg-step; position: relative; padding: 28px 0 28px 112px; border-top: 1px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--body-l); line-height: 1.55; }
.wp-block-list.is-style-steps > li:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
.wp-block-list.is-style-steps > li::before { content: "Шаг " counter(rg-step); position: absolute; left: 0; top: 32px; width: 88px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; color: var(--wp--preset--color--electric); }
.wp-block-list.is-style-steps > li > strong:first-child { display: block; margin-bottom: 10px; font-size: var(--wp--preset--font-size--h-3); font-weight: 700; line-height: 1.25; letter-spacing: -0.015em; }
@media (max-width: 599px) {
  .wp-block-list.is-style-steps > li { padding: 22px 0; font-size: var(--wp--preset--font-size--body); }
  .wp-block-list.is-style-steps > li::before { position: static; display: block; width: auto; margin-bottom: 8px; }
  .wp-block-list.is-style-steps > li > strong:first-child { font-size: 20px; margin-bottom: 4px; }
}

/* Чек-лист: квадрат 22 r6; отметку ставит entry.js (класс is-checked) и помнит localStorage. Без JS — обычный список с пустыми квадратами. */
/* Квадрат — абсолютный ::before, а не колонка grid: в grid-контейнере текст пункта и ссылки внутри него
   разъехались бы по ячейкам (та же причина, что у шагов). */
.wp-block-list.is-style-checklist { list-style: none; margin-block-start: 0; margin-inline: 0; padding: 0; }
.wp-block-list.is-style-checklist > li { position: relative; padding: 12px 0 12px 36px; border-top: 1px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--body-l); line-height: 1.5; }
.wp-block-list.is-style-checklist > li:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
.wp-block-list.is-style-checklist > li::before { content: ""; position: absolute; left: 0; top: 15px; width: 22px; height: 22px; box-sizing: border-box; border: 1.5px solid var(--wp--preset--color--border-strong); border-radius: 6px; /* значение макета (gen_formats.py .box), не токен — radius-s даёт 8px */ background: transparent center / 14px no-repeat; }
.wp-block-list.is-style-checklist > li.is-checked { color: var(--wp--preset--color--text-3); text-decoration: line-through; }
/* ink, а не accent-surface: в тёмной теме accent-surface — градиент, для background-color он невалиден и заливка пропадёт */
.wp-block-list.is-style-checklist > li.is-checked::before { border-color: transparent; background-color: var(--wp--preset--color--ink); background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12l5 5 9-10"/></svg>'); }
/* Интерактивность — на .rg-check (span, ставит entry.js), не на <li>: роль checkbox у <li> ломает семантику
   списка для скринридеров. Отрицательные поля + такой же padding возвращают .rg-check ровно в padding-box <li>
   (включая квадрат слева) — кликабельная область не меняется, хотя padding по-прежнему держит li (нужен и без JS). */
.wp-block-list.is-style-checklist .rg-check { display: block; margin: -12px 0 -12px -36px; padding: 12px 0 12px 36px; cursor: pointer; }
.wp-block-list.is-style-checklist .rg-check:focus-visible { outline: 2px solid var(--wp--preset--color--electric); outline-offset: 2px; border-radius: var(--wp--custom--radius-s); }

/* Каталог с выбором (26.09.2026, «100 семейных традиций»): звёздочка вместо квадрата, отмеченное не зачёркивается,
   а подсвечивается — отметка значит «хочу у нас», не «сделано». Отметки ставит entry.js (is-checked, localStorage
   rg_pick_<id>_<i>); без JS — обычный список с пустыми звёздочками. Геометрия — как у чек-листа выше. */
.wp-block-list.is-style-picks { list-style: none; margin-block-start: 0; margin-inline: 0; padding: 0; }
.wp-block-list.is-style-picks > li { position: relative; padding: 12px 12px 12px 40px; border-top: 1px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--body); line-height: 1.5; border-radius: var(--wp--custom--radius-s); transition: background-color .15s; }
.wp-block-list.is-style-picks > li:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
.wp-block-list.is-style-picks > li::before { content: ""; position: absolute; left: 8px; top: 14px; width: 22px; height: 22px; background: var(--wp--preset--color--border-strong); -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.8" stroke-linejoin="round"><path d="M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.9l-5.2 2.7 1-5.8-4.3-4.1 5.9-.9z"/></svg>') center / contain no-repeat; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.8" stroke-linejoin="round"><path d="M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.9l-5.2 2.7 1-5.8-4.3-4.1 5.9-.9z"/></svg>') center / contain no-repeat; }
.wp-block-list.is-style-picks > li.is-checked { background: var(--wp--preset--color--tint); border-top-color: transparent; }
.wp-block-list.is-style-picks > li.is-checked + li { border-top-color: transparent; }
.wp-block-list.is-style-picks > li.is-checked::before { background: var(--wp--preset--color--electric); -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" stroke="black" stroke-width="1.8" stroke-linejoin="round"><path d="M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.9l-5.2 2.7 1-5.8-4.3-4.1 5.9-.9z"/></svg>'); mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" stroke="black" stroke-width="1.8" stroke-linejoin="round"><path d="M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.9l-5.2 2.7 1-5.8-4.3-4.1 5.9-.9z"/></svg>'); }
.wp-block-list.is-style-picks .rg-check { display: block; margin: -12px -12px -12px -40px; padding: 12px 12px 12px 40px; cursor: pointer; border-radius: var(--wp--custom--radius-s); }
.wp-block-list.is-style-picks .rg-check:focus-visible { outline: 2px solid var(--wp--preset--color--electric); outline-offset: 2px; }
@media (hover: hover) { .wp-block-list.is-style-picks > li:not(.is-checked):hover::before { background: var(--wp--preset--color--electric); } }

/* «Мой список»: entry.js собирает отмеченное из всех списков «Выбор» страницы (название — жирное начало пункта,
   подпись — раздел), кнопки «Распечатать» и «Очистить». Без JS остаётся подсказка .rg-picked__empty. */
.rg-picked { padding: 24px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); box-shadow: var(--wp--custom--shadow-card); }
.rg-picked > * { margin-block: 0; }
.rg-picked__empty { color: var(--wp--preset--color--text-2); }
.rg-picked__count { margin: 0 0 12px; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-2); }
.rg-picked__list { margin: 0; padding: 0; list-style: none; counter-reset: rg-pick; }
.rg-picked__list > li { counter-increment: rg-pick; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 0 8px; padding: 10px 0; border-top: 1px solid var(--wp--preset--color--border); }
.rg-picked__list > li::before { content: counter(rg-pick) "."; color: var(--wp--preset--color--text-3); font-variant-numeric: tabular-nums; }
.rg-picked__name { font-weight: 600; }
.rg-picked__sec { grid-column: 2; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-3); }
.rg-picked__actions { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin-top: 16px; }
.rg-picked__actions button { font: inherit; cursor: pointer; }
.rg-picked__clear { padding: 0; border: 0; background: none; color: var(--wp--preset--color--text-2); text-decoration: underline; text-underline-offset: 3px; }

/* Карточки-оглавление (как на странице «100 традиций» в Тильде): вся карточка — ссылка на якорь раздела. */
.wp-block-list.is-style-tocards { list-style: none; margin-inline: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.wp-block-list.is-style-tocards > li { margin: 0; }
.wp-block-list.is-style-tocards > li > a { display: flex; flex-direction: column; gap: 4px; height: 100%; box-sizing: border-box; padding: 16px 18px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); box-shadow: var(--wp--custom--shadow-card); color: inherit; text-decoration: none; transition: box-shadow .15s, border-color .15s; }
.wp-block-list.is-style-tocards > li > a:hover { box-shadow: var(--wp--custom--shadow-card-hover); border-color: var(--wp--custom--border-hover); }
.wp-block-list.is-style-tocards > li > a:focus-visible { outline: 2px solid var(--wp--preset--color--electric); outline-offset: 2px; }
.wp-block-list.is-style-tocards .rg-tocard__i { font-size: 22px; line-height: 1; margin-bottom: 4px; }
.wp-block-list.is-style-tocards strong { font-size: var(--wp--preset--font-size--body); line-height: 1.3; }
.wp-block-list.is-style-tocards .rg-tocard__d { font-size: var(--wp--preset--font-size--small); line-height: 1.45; color: var(--wp--preset--color--text-2); }
.wp-block-list.is-style-tocards .rg-tocard__go { margin-top: auto; padding-top: 8px; font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--preset--color--electric); }
@media (max-width: 599px) { .wp-block-list.is-style-tocards { grid-template-columns: minmax(0, 1fr); } }

/* Печать «Моего списка» (по образцу чек-листа из PDF-гайда «100 традиций»): entry.js на время печати кладёт лист
   (.rg-print-sheet) прямо в <body> и ставит на <html> класс rg-print-picked — всё остальное не выводится вовсе
   (display: none, а не visibility: иначе печатались бы пустые страницы на всю длину материала). Высоты и отступы
   html/body обнулены, размер и поля листа заданы явно — в Safari и Chrome лист не тянет за собой пустую вторую
   страницу. Цвет — текстом и линиями, не заливками: фон печатается не во всех браузерах. */
.rg-print-sheet { display: none; }
.rg-picked__ptitle, .rg-picked__pnote, .rg-picked__pq { display: none; }
@media print {
  @page { size: A4; margin: 14mm 16mm; }
  html.rg-print-picked, html.rg-print-picked body { margin: 0 !important; padding: 0 !important; height: auto !important; min-height: 0 !important; background: #fff !important; }
  html.rg-print-picked body > :not(.rg-print-sheet) { display: none !important; }
  html.rg-print-picked .rg-print-sheet { display: block; color: #12163f; font: 10.5pt/1.45 Onest, system-ui, sans-serif; }
  .rg-print-sheet > :last-child { margin-bottom: 0; }
  .rg-ps__kicker { margin: 0 0 3pt; font-size: 8.5pt; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #4a5cf5; }
  .rg-ps__kicker::before { content: "★ "; }
  .rg-ps__title { margin: 0 0 3pt; font-size: 22pt; font-weight: 700; line-height: 1.15; letter-spacing: -.01em; }
  .rg-ps__from { margin: 0; font-size: 9.5pt; color: #5b5f7a; }
  .rg-ps__note { margin: 12pt 0 6pt; padding: 2pt 0 2pt 10pt; border-left: 2.5pt solid #4a5cf5; font-size: 10pt; }
  .rg-ps__list { margin: 8pt 0 0; padding: 0; list-style: none; }
  .rg-ps__list li { display: grid; grid-template-columns: 12pt minmax(0, 1fr) 42mm; gap: 0 10pt; align-items: center; padding: 7pt 0; border-bottom: .5pt solid #d3d6e6; break-inside: avoid; }
  .rg-ps__box { width: 11pt; height: 11pt; box-sizing: border-box; border: 1.2pt solid #12163f; border-radius: 2.5pt; }
  .rg-ps__name { font-weight: 600; }
  .rg-ps__name small { display: block; font-size: 8pt; font-weight: 400; color: #7a7e98; }
  .rg-ps__when { align-self: end; padding-bottom: 1pt; border-bottom: .5pt solid #9fa3bd; font-size: 8pt; color: #7a7e98; }
  .rg-ps__h { margin: 16pt 0 0; font-size: 11.5pt; font-weight: 700; break-after: avoid; }
  .rg-ps__line { height: 20pt; box-sizing: border-box; padding-top: 7pt; border-bottom: .5pt solid #9fa3bd; font-size: 8pt; color: #9fa3bd; break-inside: avoid; }
  .rg-ps__foot { display: grid; grid-template-columns: 22mm minmax(0, 1fr); gap: 0 12pt; align-items: center; margin-top: 20pt; padding-top: 10pt; border-top: 1.5pt solid #12163f; break-inside: avoid; }
  .rg-ps__qr svg { display: block; width: 22mm; height: 22mm; }
  .rg-ps__qr svg rect[fill="white"], .rg-ps__qr svg path { shape-rendering: crispEdges; }
  .rg-ps__foottext { display: flex; flex-direction: column; gap: 1pt; font-size: 8pt; color: #5b5f7a; }
  .rg-ps__foottext strong { font-size: 10pt; color: #12163f; }
  .rg-ps__sign { margin-top: 4pt; font-size: 7.5pt; letter-spacing: .06em; text-transform: uppercase; color: #9fa3bd; }
}

/* Расписание дня — блок rg/schedule (памятка «Режим дня школьника», 19.10.2026). Вёрстка вместо картинки:
   на картинке мелкий текст плыл при масштабировании. Раскладка — по ширине самого блока (container query):
   ≥ 600 — три колонки, уже — одна. Цвета видов занятий одинаковы в обеих темах, кроме школы и тона (токены). */
.rg-sched { container-type: inline-size; margin-block: var(--wp--preset--spacing--40, 32px);
  --k-school: var(--wp--preset--color--ink); --k-hw: var(--wp--preset--color--electric); --k-extra: #8FA2FF; --k-rest: #5FC3A0;
  --k-food: #F2B65A; --k-road: var(--wp--preset--color--border-strong); --k-home: var(--wp--preset--color--tint); --rest-bg: rgba(95, 195, 160, .12); }
.rg-sched__in { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-m, 16px); padding: 24px 22px 22px; }
.rg-sched p { margin: 0; }
.rg-sched .rg-sched__kicker { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--electric); }
.rg-sched .rg-sched__title { font-size: 24px; line-height: 1.2; font-weight: 700; margin-top: 6px !important; text-wrap: balance; }
.rg-sched .rg-sched__lead { font-size: 16px; line-height: 1.45; color: var(--wp--preset--color--text-2); margin-top: 8px !important; }
.rg-sched__day { margin-top: 18px; }
.rg-sched__bar { position: relative; height: 24px; border-radius: 8px; overflow: hidden; background: var(--wp--preset--color--surface-2); }
.rg-sched__bar i { position: absolute; top: 0; bottom: 0; border-right: 2px solid var(--wp--preset--color--surface); }
.rg-sched__ticks { position: relative; height: 22px; }
.rg-sched__ticks b { position: absolute; top: 4px; transform: translateX(-50%); font-size: 12px; font-weight: 600; color: var(--wp--preset--color--text-3); font-variant-numeric: tabular-nums; }
.rg-sched__legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: var(--wp--preset--color--text-2); }
.rg-sched__legend span { display: inline-flex; align-items: center; gap: 6px; }
.rg-sched__legend i { width: 12px; height: 12px; border-radius: 3px; background: var(--k); }
.rg-sched .k-school { --k: var(--k-school); } .rg-sched .k-hw { --k: var(--k-hw); } .rg-sched .k-extra { --k: var(--k-extra); }
.rg-sched .k-rest { --k: var(--k-rest); } .rg-sched .k-food { --k: var(--k-food); } .rg-sched .k-road { --k: var(--k-road); } .rg-sched .k-home { --k: var(--k-home); }
.rg-sched__bar i { background: var(--k); }
.rg-sched__cols { display: grid; grid-template-columns: 1fr; gap: 0 18px; margin-top: 16px; }
.rg-sched .rg-sched__colh { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--text-3); padding: 12px 0 6px; border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-sched ul { list-style: none; margin: 0; padding: 0; }
.rg-sched__cols li { position: relative; display: grid; padding: 9px 8px 9px 14px; border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-sched__cols li::before { content: ""; position: absolute; left: 0; top: 11px; bottom: 11px; width: 3px; border-radius: 2px; background: var(--k); }
.rg-sched__cols li.k-rest { background: var(--rest-bg); border-radius: 10px; border-bottom-color: transparent; margin: 2px 0; }
.rg-sched__t { font-size: 13px; font-weight: 700; color: var(--wp--preset--color--text-2); font-variant-numeric: tabular-nums; }
.rg-sched__n { font-size: 16px; font-weight: 700; line-height: 1.3; }
.rg-sched__d { font-size: 14px; line-height: 1.4; color: var(--wp--preset--color--text-2); }
.rg-sched__note { margin-top: 16px; background: var(--wp--preset--color--tint); border-radius: 12px; padding: 14px 16px; font-size: 15px; line-height: 1.45; }
.rg-sched .rg-sched__noteh { font-weight: 700; margin-bottom: 2px !important; }
.rg-sched__rules { display: grid; gap: 14px; margin-top: 14px; }
.rg-sched__list li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 190px); gap: 4px 16px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-sched__list li:first-child { border-top: 1px solid var(--wp--preset--color--border); }
.rg-sched__v { display: grid; justify-items: end; text-align: right; }
.rg-sched__num { font-size: 16px; font-weight: 700; color: var(--wp--preset--color--electric); white-space: nowrap; }
.rg-sched__boxes { display: grid; gap: 10px; align-content: start; }
.rg-sched__box { background: var(--rest-bg); border-radius: 12px; padding: 13px 16px; font-size: 15px; line-height: 1.4; color: var(--wp--preset--color--text-2); }
.rg-sched .rg-sched__boxh { font-size: 16px; font-weight: 700; color: var(--wp--preset--color--fg); }
.rg-sched__box.is-ink { color: rgba(255, 255, 255, .78); background: radial-gradient(120% 120% at 100% 0%, rgba(58, 75, 214, .6) 0%, rgba(58, 75, 214, 0) 60%), #12163F; }
.rg-sched__box.is-ink .rg-sched__boxh { color: #fff; }
@container (min-width: 600px) {
  .rg-sched__in { padding: 28px 28px 24px; }
  .rg-sched__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rg-sched__rules { grid-template-columns: minmax(0, 1fr) 220px; gap: 24px; }
}
@container (max-width: 599px) {
  .rg-sched__cols li { grid-template-columns: 92px 1fr; column-gap: 10px; }
  .rg-sched__cols li > :not(.rg-sched__t) { grid-column: 2; }
  .rg-sched__cols li .rg-sched__t { grid-row: 1 / span 2; padding-top: 2px; }
}

/* ---------- 17. Медиа ---------- */
/* Плеер (макет gen_formats.py .player/.bar): карточка surface + border r16, круглая ink-glow кнопка,
   название/подпись, прогресс 4px electric, время tabular, −15 / скорость / +15. Обвязка показывается
   только когда view.js снял у <audio> атрибут controls (класс is-ready) — без JS работает нативный плеер. */
.rg-player { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 20px; margin: 0; padding: 24px 28px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); }
.rg-player > * { margin: 0; }
.rg-player__play, .rg-player__step, .rg-player__rate { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
.rg-player__play { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 999px; background: var(--wp--preset--gradient--ink-glow); color: #fff; }
.rg-player__play .rg-ico { width: 24px; height: 24px; fill: currentColor; stroke: none; margin-left: 3px; }
/* play — заливка (замкнутый треугольник), pause — два прямых отрезка: заливкой они не рисуются (нулевая площадь),
   поэтому у паузы своя обводка и без оптического сдвига треугольника. */
.rg-player__play .rg-ico--pause { fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; margin-left: 0; }
.rg-player--compact { padding: 16px 20px; gap: 16px; }
.rg-player--compact .rg-player__play { width: 48px; height: 48px; }
.rg-player__body { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.rg-player__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.rg-player__titles { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rg-entry__content .rg-player__title, .rg-player__title { margin: 0; font-size: var(--wp--preset--font-size--body); font-weight: 700; line-height: 1.25; }
.rg-entry__content .rg-player__sub, .rg-player__sub { margin: 0; font-size: var(--wp--preset--font-size--caption); }
.rg-player__time { white-space: nowrap; font-variant-numeric: tabular-nums; }
/* Заливка пройденной части: view.js обновляет --rg-progress (0…100%) */
.rg-player__bar { -webkit-appearance: none; appearance: none; width: 100%; height: 4px; border-radius: 2px; cursor: pointer; background: linear-gradient(to right, var(--wp--preset--color--electric) var(--rg-progress, 0%), var(--wp--preset--color--surface-2) var(--rg-progress, 0%)); }
.rg-player__bar::-webkit-slider-thumb { -webkit-appearance: none; width: 12px; height: 12px; border-radius: 999px; background: var(--wp--preset--color--electric); }
.rg-player__bar::-moz-range-thumb { width: 12px; height: 12px; border: 0; border-radius: 999px; background: var(--wp--preset--color--electric); }
.rg-player__bar:focus-visible { outline: 2px solid var(--wp--preset--color--electric); outline-offset: 3px; }
.rg-player__tools { display: flex; align-items: center; gap: 16px; flex-shrink: 0; font-size: var(--wp--preset--font-size--caption); color: var(--wp--preset--color--text-2); }
.rg-player__rate { font-size: 13px; font-weight: 600; }
.rg-player__audio { display: block; width: 100%; grid-column: 1 / -1; }
.rg-player:not(.is-ready) :is(.rg-player__play, .rg-player__body, .rg-player__tools) { display: none; }
.rg-player.is-ready .rg-player__audio { display: none; }
.rg-player__play .rg-ico--pause, .rg-player.is-playing .rg-player__play .rg-ico:not(.rg-ico--pause) { display: none; }
.rg-player.is-playing .rg-player__play .rg-ico--pause { display: block; }
.rg-player :is(button, input):focus-visible { outline: 2px solid var(--wp--preset--color--electric); outline-offset: 2px; }
@media (max-width: 599px) {
  .rg-player { grid-template-columns: auto minmax(0, 1fr); gap: 14px; padding: 18px 20px; }
  .rg-player__play { width: 52px; height: 52px; }
  .rg-player__tools { grid-column: 1 / -1; justify-content: space-between; }
}

/* Таймкоды (макет .tc): сетка 64 + текст, время electric tabular; ссылку-перемотку ставит view.js плеера */
.wp-block-list.is-style-timecodes { list-style: none; margin-block-start: 0; margin-inline: 0; padding: 0; }
/* Не grid на <li>: в grid-контейнере текст пункта и вложенные <em>/<a> разъезжаются по ячейкам
   (та же ловушка, что у шагов и чек-листа в разделе 16). Колонка времени — padding + абсолютная кнопка. */
.wp-block-list.is-style-timecodes > li { position: relative; padding: 12px 0; border-top: 1px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--body); line-height: 1.4; }
.wp-block-list.is-style-timecodes > li:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
/* Отступ под кнопку времени даёт класс is-tc-ready, который view.js ставит на <li> вместе с кнопкой —
   не :has(.rg-tc): на части сборок движка стиль по :has() не пересчитывается корректно после того, как
   страница восстановлена из bfcache (возврат «Назад») — отступ остаётся нулевым, хотя кнопка в DOM уже есть,
   и время из абсолютно спозиционированной кнопки рисуется поверх текста, у которого нет места под него
   (баг Руслана 21.09.2026). Класс — обычная мутация classList, её пересчёт стилей не подводит нигде.
   Без JS класса нет — пункт остаётся обычным текстом без отступа, колонка не нужна. */
.wp-block-list.is-style-timecodes > li.is-tc-ready { padding-left: 80px; }
.wp-block-list.is-style-timecodes .rg-tc { position: absolute; left: 0; top: 12px; width: 64px; color: var(--wp--preset--color--electric); font-weight: 600; font-variant-numeric: tabular-nums; background: none; border: 0; padding: 0; font-family: inherit; font-size: inherit; cursor: pointer; text-align: left; }
.wp-block-list.is-style-timecodes .rg-tc:focus-visible { outline: 2px solid var(--wp--preset--color--electric); outline-offset: 2px; border-radius: var(--wp--custom--radius-s); }
@media (max-width: 599px) {
  .wp-block-list.is-style-timecodes > li { font-size: var(--wp--preset--font-size--small); }
  .wp-block-list.is-style-timecodes > li.is-tc-ready { padding-left: 68px; }
  .wp-block-list.is-style-timecodes .rg-tc { width: 56px; }
}

/* Видео: постер 16:9 r16 на #111318, play 72 белый, подпись и плашка площадки поверх; iframe подставляет view.js */
.rg-video-wrap { margin: 0; display: flex; flex-direction: column; gap: 12px; }
.rg-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--wp--custom--radius-l); background: #111318; overflow: hidden; }
.rg-video__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rg-video__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 999px; background: #fff; border: 0; cursor: pointer; }
.rg-video__play .rg-ico { width: 28px; height: 28px; fill: var(--wp--preset--color--ink); stroke: none; margin-left: 3px; }
/* right: 100px и обрезка многоточием — на случай, если подпись когда-нибудь станет длинной: не должна заходить
   под бейдж длительности справа (.rg-video__dur, ниже). Сейчас caption в разметке не передаётся — защита на будущее. */
.rg-video__cap { position: absolute; left: 20px; right: 100px; bottom: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--wp--preset--font-size--caption); font-weight: 500; color: rgba(255,255,255,.75); }
.rg-video__venue { position: absolute; left: 20px; top: 16px; padding: 5px 9px; border-radius: var(--wp--custom--radius-s); background: rgba(0,0,0,.45); font-size: var(--wp--preset--font-size--label); font-weight: 600; color: rgba(255,255,255,.9); }
/* Длительность — тот же бейдж, что на карточке (.rg-card__dur, раздел 4): радиус 6px, padding 3/8, белый текст
   на rgba(0,0,0,.45). Отступы от края — 20/16, по ритму соседних .rg-video__venue и .rg-video__cap на этом постере
   (у карточки поменьше — 12/12), угол тот же — низ-право. Печатается только когда есть rg_duration (render.php). */
.rg-video__dur { position: absolute; right: 20px; bottom: 16px; padding: 3px 8px; border-radius: 6px; background: rgba(0,0,0,.45); font-size: var(--wp--preset--font-size--label); font-weight: 600; color: #fff; }
.rg-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rg-video__links { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* Медиа-зона: свои классы rg-media__*, изначально — чтобы не наследовать ограничения зоны B из раздела 15
   (тогда она называлась .rg-entry__media: обложка 940 и overflow: hidden — видео 1200 и кольцо фокуса плеера
   от этого страдали бы); класс .rg-entry__media с тех пор убран из раздела 15 как мёртвый (фикс финального
   ревью 3c-2b) — зона B теперь целиком описана здесь, под именем .rg-entry__mediazone.
   Видео — во всю ширину контейнера, плеер, обложка, «Слушать также» и «Где вышло» — 940 по центру. */
.rg-entry__mediazone { display: flex; flex-direction: column; gap: 16px; margin-bottom: 40px; }
.rg-entry__mediazone > * { margin: 0; }
.rg-media__video { width: 100%; }
.rg-media__cover img, .rg-entry__cover { display: block; width: 100%; border-radius: var(--wp--custom--radius-l); } /* .rg-entry__cover продолжается ниже в этом же разделе (aspect-ratio/object-fit/filter) */
.rg-listen { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* Начало колонки текста (slot=main у rg/entry-media): узкая обложка и под ней аудиоверсия статьи — одна ширина 680,
   «Содержание» справа стоит с самого верха (вариант А, 27.09.2026). */
.rg-media__main { display: flex; flex-direction: column; gap: 16px; }
.rg-media__main > * { margin: 0; }
.rg-where { display: grid; gap: 0; padding-top: 16px; border-top: 1px solid var(--wp--preset--color--border); }
.rg-where__row { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 12px 24px; padding: 8px 0; font-size: var(--wp--preset--font-size--body); line-height: 1.45; }
.rg-where__k { color: var(--wp--preset--color--text-3); font-weight: 500; }
@media (min-width: 1024px) {
  .rg-entry__mediazone > :not(.rg-media__video) { width: min(100%, 940px); margin-inline: auto; }
}
@media (max-width: 599px) { .rg-where__row { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 10px 0; } }

/* Список выпусков серии (макет .ep): номер 02d, название, длительность справа; текущий — 700 и номер electric */
.rg-series { display: flex; flex-direction: column; gap: 16px; }
.rg-series__title { font-size: var(--wp--preset--font-size--h-3); line-height: 1.25; font-weight: 700; letter-spacing: -0.015em; margin: 0; }
.rg-series__list { list-style: none; margin: 0; padding: 0; }
.rg-series__item { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--body); }
.rg-series__item:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-series__n { color: var(--wp--preset--color--text-3); font-weight: 600; font-variant-numeric: tabular-nums; }
.rg-series__name { color: inherit; text-decoration: none; }
.rg-series__item.is-current { font-weight: 700; }
.rg-series__item.is-current .rg-series__n { color: var(--wp--preset--color--electric); }
@media (hover: hover) { a.rg-series__name:hover { color: var(--wp--preset--color--electric); } }
@media (max-width: 599px) {
  .rg-series__item { grid-template-columns: 24px minmax(0, 1fr) auto; gap: 10px; }
}

/* Материалы к выпуску: строки 44 + 1fr + действие; иконка типа в квадрате 44 r12 */
.rg-atts { display: flex; flex-direction: column; gap: 0; }
.rg-atts__title { font-size: var(--wp--preset--font-size--h-3); font-weight: 700; line-height: 1.25; margin: 0 0 8px; }
.rg-att { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px solid var(--wp--preset--color--border); color: inherit; text-decoration: none; }
.rg-att:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-att__ico { width: 44px; height: 44px; border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--color--tint); position: relative; }
.rg-att__ico::before { content: ""; position: absolute; inset: 11px; background-color: var(--wp--custom--tint-fg); -webkit-mask: var(--rg-att-ico) center / contain no-repeat; mask: var(--rg-att-ico) center / contain no-repeat; }
.rg-att--file .rg-att__ico::before { --rg-att-ico: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/><path d="M14 3v5h5"/></svg>'); }
.rg-att--link .rg-att__ico::before { --rg-att-ico: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M10 14a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1 1"/><path d="M14 10a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1-1"/></svg>'); }
.rg-att--book .rg-att__ico::before { --rg-att-ico: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5a2 2 0 0 1 2-2h12v18H6a2 2 0 0 1-2-2z"/><path d="M8 3v18"/></svg>'); }
.rg-att__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rg-entry__content .rg-att__title, .rg-att__title { font-size: var(--wp--preset--font-size--body); font-weight: 600; line-height: 1.3; hyphens: manual; -webkit-hyphens: manual; text-wrap: balance; } /* название файла — без переносов по слогам (владелец, 25.09.2026) */
.rg-att__act { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--custom--accent-fg); white-space: nowrap; }
/* Ссылки в теле материала подчёркиваются правилом .rg-entry .entry-content a (0,2,1) — строку вложения перебиваем (0,2,2) */
.rg-entry .entry-content a.rg-att { text-decoration: none; }
@media (hover: hover) { .rg-att:hover .rg-att__act { color: var(--wp--preset--color--electric); } }
@media (max-width: 599px) { .rg-att { grid-template-columns: 44px minmax(0, 1fr); } .rg-att__act { grid-column: 2; } }
/* «Материалы к выпуску» — стиль «Карточка» (25.09.2026): для файла посреди текста — тихая строка между линиями
   там пролистывается. Акцентная плашка ink-glow (в тёмной теме — кобальт), белая кнопка-пилюля «Скачать». */
.rg-atts.is-style-card { gap: 14px; padding: 22px 24px; border-radius: var(--wp--custom--radius-l); background: var(--wp--preset--gradient--ink-glow); color: #fff; }
.rg-atts.is-style-card .rg-atts__title { margin: 0; font-size: var(--wp--preset--font-size--label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; color: rgba(255, 255, 255, .72); }
.rg-atts.is-style-card .rg-att, .rg-atts.is-style-card .rg-att:last-child { padding: 0; border: 0; }
.rg-atts.is-style-card .rg-att__ico { background: rgba(255, 255, 255, .14); }
.rg-atts.is-style-card .rg-att__ico::before { background-color: #fff; }
.rg-atts.is-style-card .rg-att__title { font-size: 18px; font-weight: 700; color: #fff; }
.rg-atts.is-style-card .rg-att__note { color: rgba(255, 255, 255, .72); }
.rg-atts.is-style-card .rg-att__act { padding: 11px 20px; border-radius: var(--wp--custom--radius-pill); background: #fff; color: #12163F; }
@media (hover: hover) { .rg-atts.is-style-card .rg-att:hover .rg-att__act { background: var(--wp--preset--color--tint); color: #12163F; } }
@media (max-width: 599px) { .rg-atts.is-style-card { padding: 20px; } .rg-atts.is-style-card .rg-att__act { justify-self: start; margin-top: 6px; } }

/* CTA продукта внутри материала (макет gen_cta.py): 680, r12, padding 24×28, горизонтально; mobile — в столбик */
.rg-cta { display: flex; align-items: center; gap: 20px; padding: 24px 28px; border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--color--tint); }
.rg-cta--flat { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); }
.rg-cta__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; flex: 1; }
.rg-cta > *, .rg-cta__body > * { margin: 0; }
.rg-entry__content .rg-cta__label, .rg-cta__label { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; color: var(--wp--custom--accent-fg); }
.rg-entry__content .rg-cta__title, .rg-cta__title { font-size: var(--wp--preset--font-size--h-4); font-weight: 700; line-height: 1.3; letter-spacing: -0.015em; }
.rg-entry__content .rg-cta__text, .rg-cta__text { font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--text-2); }
.rg-cta__actions { display: flex; flex-direction: column; gap: 8px; align-items: center; flex-shrink: 0; } /* ссылка «Сайт школы» — по центру под кнопкой, без «ступеньки» (владелец 19.10.2026) */
.rg-cta__cover { width: 56px; height: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: var(--wp--custom--radius-s); box-shadow: var(--wp--custom--shadow-card); flex-shrink: 0; }
.rg-cta__ico { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 999px; background: var(--wp--preset--gradient--ink-glow); color: #fff; flex-shrink: 0; }
.rg-cta__ico .rg-ico { width: 24px; height: 24px; }
/* Ссылки CTA не должны получать подчёркивание от правила тела (0,2,1) */
.rg-entry .entry-content .rg-cta a, .rg-entry__content .rg-cta a { text-decoration: none; }
@media (max-width: 599px) { .rg-cta { flex-direction: column; align-items: flex-start; padding: 20px; } }

/* Изображения материала: r12 с подписью; широкая — 940 (правило раздела 15); галерея — 2–3 колонки, gap 16 */
.rg-entry__content :is(.wp-block-image img, .wp-block-gallery img) { border-radius: var(--wp--custom--radius-m); }
.rg-entry__content .wp-block-image figcaption, .rg-entry__content .wp-block-gallery figcaption { font-size: var(--wp--preset--font-size--caption); color: var(--wp--preset--color--text-3); text-align: left; margin-top: 8px; }
/* Пара картинок «компьютер / телефон» (карточки памяток): одна и та же карточка в двух раскладках.
   Граница — 1024, там же, где у статьи появляется широкий блок (раздел 15). В редакторе видны обе. */
.rg-entry__content .wp-block-image.is-style-only-desktop { display: none; }
@media (min-width: 1024px) {
  .rg-entry__content .wp-block-image.is-style-only-desktop { display: block; }
  .rg-entry__content .wp-block-image.is-style-only-mobile { display: none; }
}
/* Ядро (has-nested-images) красит подпись внутри галереи как белый текст поверх фото — своё правило на самом
   figcaption (0,3,2: position: absolute; text-align: center; color: #fff; margin: 0; padding: 1em; background: градиент)
   и отдельная псевдо-плашка figure::before с блюром под текстом. Подпись в галерее должна выглядеть как у одиночного
   изображения (мелкий серый текст под фото, слева) — перебиваем прицельным селектором на .rg-entry__content (0,4,2 —
   выше ядра без !important) и гасим фоновую плашку. */
.rg-entry__content .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
  position: static;
  background: none;
  text-shadow: none;
  padding: 0;
  margin: 8px 0 0;
  overflow: visible;
  max-height: none;
  color: var(--wp--preset--color--text-3);
  text-align: left;
}
.rg-entry__content .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before { content: none; }
.rg-entry__content .wp-block-gallery { gap: 16px; }
/* Ядро (has-nested-images) держит фигуры на 50% без media-query до 600px — при узком тексте статьи (680) это
   превращается в тесные полуколонки; на 390 (проверка DoD) — одна колонка. Брейкпоинт 599 — как у остальной темы. */
@media (max-width: 599px) {
  .rg-entry__content .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: 100%; }
}
/* Карточки из Telegram (25.09.2026): два стиля галереи. «Карусель» — листается в тексте (свайп, на компьютере стрелки,
   точки — assets/js/entry.js оборачивает галерею в .rg-carousel); «Альбом» — сетка как альбом Telegram: 2 в первом ряду,
   дальше по 3. Только на сайте (.rg-entry__content) — в редакторе галерея остаётся обычной сеткой, её удобно править.
   Ширину фигур ядро задаёт с :not(#individual-image) — повторяем, чтобы перебить.
   «Карусель» встречается и на лендинге гайда (.rg-landing, план 3b-3 §5, страницы гайда) — тот же
   набор правил, «Альбом» лендингу не нужен и здесь не расширяется. */
:is(.rg-entry__content, .rg-landing) .wp-block-gallery.is-style-carousel { display: flex; flex-wrap: nowrap; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
:is(.rg-entry__content, .rg-landing) .wp-block-gallery.is-style-carousel::-webkit-scrollbar { display: none; }
:is(.rg-entry__content, .rg-landing) .wp-block-gallery.is-style-carousel.has-nested-images figure.wp-block-image:not(#individual-image) { flex: 0 0 calc(50% - 7px); width: auto; max-width: calc(50% - 7px); margin: 0; scroll-snap-align: start; }
:is(.rg-entry__content, .rg-landing) .wp-block-gallery.is-style-carousel > .blocks-gallery-caption { display: none; } /* подпись галереи скрипт выносит под управление */
:is(.rg-entry__content, .rg-landing) .wp-block-gallery.is-style-carousel img { aspect-ratio: 1; object-fit: cover; }
.rg-carousel { display: flex; flex-direction: column; gap: 12px; }
.rg-carousel > * { margin: 0; }
.rg-carousel__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 36px; }
.rg-carousel__dots { display: flex; gap: 6px; justify-content: center; }
.rg-carousel__hint { margin: 0; font-size: 14px; font-weight: 600; color: var(--wp--custom--accent-fg); }
.rg-carousel__dots span { width: 6px; height: 6px; border-radius: 3px; background: var(--wp--preset--color--border-strong); transition: width .15s ease-out, background-color .15s ease-out; }
.rg-carousel__dots span.is-on { width: 18px; background: var(--wp--preset--color--electric); }
.rg-carousel__arrows { display: flex; gap: 8px; }
.rg-carousel__arrows button { width: 36px; height: 36px; border-radius: 999px; border: 1.5px solid var(--wp--preset--color--border-strong); background: transparent; color: var(--wp--preset--color--fg); font: inherit; font-size: 16px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.rg-carousel__arrows button:disabled { opacity: .35; cursor: default; }
@media (hover: hover) { .rg-carousel__arrows button:not(:disabled):hover { border-color: var(--wp--custom--border-hover); background: var(--wp--preset--color--surface-2); } }
@media (hover: none) { .rg-carousel__arrows { display: none; } }
.rg-carousel__caption { font-size: var(--wp--preset--font-size--caption); color: var(--wp--preset--color--text-3); }
@media (max-width: 599px) { /* на телефоне — карточка почти во всю ширину, край следующей подсказывает, что можно листать */
  :is(.rg-entry__content, .rg-landing) .wp-block-gallery.is-style-carousel { gap: 10px; }
  :is(.rg-entry__content, .rg-landing) .wp-block-gallery.is-style-carousel.has-nested-images figure.wp-block-image:not(#individual-image) { flex-basis: 86%; max-width: 86%; }
}
}
.rg-entry__content .wp-block-gallery.is-style-album { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; border-radius: var(--wp--custom--radius-m); overflow: hidden; }
.rg-entry__content .wp-block-gallery.is-style-album.has-nested-images figure.wp-block-image:not(#individual-image) { width: auto; margin: 0; grid-column: span 2; }
.rg-entry__content .wp-block-gallery.is-style-album.has-nested-images figure.wp-block-image:not(#individual-image):nth-child(-n+2) { grid-column: span 3; }
.rg-entry__content .wp-block-gallery.is-style-album.has-nested-images figure.wp-block-image:not(#individual-image):only-child { grid-column: 1 / -1; }
.rg-entry__content .wp-block-gallery.is-style-album.has-nested-images:has(> figure:nth-child(3):last-of-type) figure.wp-block-image:not(#individual-image) { grid-column: span 2; } /* три — в один ряд */
.rg-entry__content .wp-block-gallery.is-style-album.has-nested-images:has(> figure:nth-child(4):last-of-type) figure.wp-block-image:not(#individual-image) { grid-column: span 3; } /* четыре — 2×2 */
.rg-entry__content .wp-block-gallery.is-style-album.has-nested-images:has(> figure:nth-child(6):last-of-type) figure.wp-block-image:not(#individual-image) { grid-column: span 2; } /* шесть — 3+3 */
.rg-entry__content .wp-block-gallery.is-style-album img { aspect-ratio: 1; object-fit: cover; border-radius: 0; height: 100%; }
.rg-entry__content .wp-block-gallery.is-style-album > .blocks-gallery-caption { grid-column: 1 / -1; }
/* Свёрнутый блок («Текст карточек» и любой другой «Подробнее») */
.rg-entry__content .wp-block-details { border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--color--surface); padding: 0; }
.rg-entry__content .wp-block-details > summary { cursor: pointer; padding: 14px 18px; font-size: 15px; font-weight: 600; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.rg-entry__content .wp-block-details > summary::-webkit-details-marker { display: none; }
.rg-entry__content .wp-block-details > summary::after { content: ""; flex: none; width: 8px; height: 8px; border-right: 1.75px solid currentColor; border-bottom: 1.75px solid currentColor; transform: rotate(45deg); margin-top: -4px; transition: transform .15s ease-out; }
.rg-entry__content .wp-block-details[open] > summary::after { transform: rotate(225deg); margin-top: 4px; }
.rg-entry__content .wp-block-details > :not(summary) { margin: 0 18px 12px; font-size: var(--wp--preset--font-size--small); line-height: 1.55; color: var(--wp--preset--color--text-2); }
.rg-entry__content .wp-block-details > :last-child { margin-bottom: 16px; }
/* Обложка материала — рамка системы: 16:9, r16, лёгкая тонировка разнородных картинок.
   display/width/border-radius у .rg-entry__cover — выше в этом разделе (.rg-media__cover img, .rg-entry__cover) */
.rg-entry__cover { aspect-ratio: 16 / 9; object-fit: cover; filter: saturate(.95); }
.rg-media__cover { margin: 0; }
/* По умолчанию обложка — в ширину текста и от его левого края; .is-wide — во всю ширину блока 940 (выбор в панели «Материал», 25.09.2026).
   Сама фигура остаётся в зоне B (940 по центру, как шапка), ужимаются картинка и подпись — поэтому левый край совпадает с текстом. */
.rg-media__cover:not(.is-wide) > :is(img, figcaption) { max-width: 680px; }
.rg-media__caption { margin-top: 8px; font-size: var(--wp--preset--font-size--caption); color: var(--wp--preset--color--text-3); }
.rg-media__caption a { color: inherit; }

/* ---------- 18. Аудиокниги ---------- */
/* Страница /audioknigi/ — та, куда человек приходит по ссылке из письма. Своего артборда у неё нет:
   вид собран из того, что в системе уже есть — чернильная панель подписки (раздел 8) в закрытом
   состоянии, карточка на surface (разделы 4 и 13) в состояниях отписки, плеер (раздел 17) и строки
   выпусков серии (.rg-series, раздел 17), по образцу которых сделан список глав.
   Гейт печатает одно из четырёх состояний: книги (.rg-gate--books), объяснение с формой
   (--closed), «вы отписались» (--off), вопрос об отписке (--ask). */

/* Гейт: состояния. Книги — обычный поток (между ними линия), отписка — карточка 640. */
.rg-gate__done { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 32px; padding: 12px 16px; border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--color--ok-bg); color: var(--wp--preset--color--ok); font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.rg-gate__foot { margin: 48px 0 0; padding-top: 24px; border-top: 1px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-2); }
.rg-gate__foot a { color: var(--wp--custom--accent-fg); }
.rg-gate--off, .rg-gate--ask { display: flex; flex-direction: column; gap: 16px; max-width: 640px; padding: 32px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-xl); }
.rg-gate--off > *, .rg-gate--ask > * { margin: 0; }
/* .rg-gate__done внутри карточки отписки — без нижнего отступа: расстояние держит gap карточки */
.rg-gate--off .rg-gate__done, .rg-gate--ask .rg-gate__done { margin-bottom: 0; align-self: flex-start; }
.rg-gate__title { font-size: var(--wp--preset--font-size--h-2); line-height: 1.15; letter-spacing: -0.02em; font-weight: 700; }
.rg-gate__text { font-size: var(--wp--preset--font-size--body); line-height: 1.55; color: var(--wp--preset--color--text-2); }
.rg-gate__form { margin: 8px 0 0; }
.rg-gate__back { font-size: var(--wp--preset--font-size--small); }
.rg-gate__back a { color: var(--wp--preset--color--text-2); }
@media (hover: hover) { .rg-gate__back a:hover { color: var(--wp--preset--color--electric); } }
@media (max-width: 599px) { .rg-gate--off, .rg-gate--ask { padding: 24px 20px; } }

/* Книга: обложка слева, главы справа; на телефоне обложка сверху. Вторая книга отделяется линией. */
.rg-audiobook { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; }
.rg-audiobook + .rg-audiobook { margin-top: 56px; padding-top: 56px; border-top: 1px solid var(--wp--preset--color--border); }
.rg-audiobook__cover { margin: 0; max-width: 280px; }
.rg-audiobook__img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--wp--custom--radius-l); box-shadow: var(--wp--custom--shadow-card); }
.rg-audiobook__main { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.rg-audiobook__intro { display: flex; flex-direction: column; gap: 8px; }
.rg-audiobook__intro > * { margin: 0; }
.rg-audiobook__name { font-size: var(--wp--preset--font-size--h-2); line-height: 1.15; letter-spacing: -0.02em; font-weight: 700; }
.rg-audiobook__note { font-size: var(--wp--preset--font-size--body); line-height: 1.5; color: var(--wp--preset--color--text-2); }
.rg-audiobook__count { display: flex; align-items: center; gap: 6px; }
.rg-audiobook__count .rg-ico { color: var(--wp--preset--color--electric); flex: none; }
.rg-audiobook__soon { margin: 0; font-size: var(--wp--preset--font-size--body); color: var(--wp--preset--color--text-2); }
@media (min-width: 768px) {
  .rg-audiobook { grid-template-columns: 240px minmax(0, 1fr); gap: 32px; }
  .rg-audiobook__cover { max-width: none; }
}
@media (min-width: 1024px) { .rg-audiobook { grid-template-columns: 300px minmax(0, 1fr); gap: 48px; } }
/* Книга без обложки (вложение не загружено) — одна колонка на любой ширине */
.rg-audiobook:not(:has(.rg-audiobook__cover)) { grid-template-columns: minmax(0, 1fr); }

/* Плеер книги в узкой колонке (до 1024 правый столбец — около 500): −15 / скорость / +15 уходят
   на свою строку, как в плеере материала на телефоне, иначе название главы ломается на три строки. */
@media (max-width: 1023px) {
  .rg-audiobook__player { grid-template-columns: auto minmax(0, 1fr); }
  .rg-audiobook__player .rg-player__tools { grid-column: 1 / -1; justify-content: space-between; }
}

/* Панель плеера — только когда управление взял скрипт (класс is-ready на корне книги, задача 14):
   без скриптов главы слушают их собственными <audio controls>, а в панели нет ни src, ни смысла.
   Класс, а не :has(): состояние ставит скрипт (правило проекта, раздел 17). */
.rg-audiobook:not(.is-ready) .rg-audiobook__player { display: none; }

/* «Продолжить: глава 4. От 3 до 6 лет, 0:06» — кнопку печатает скрипт; вид ghost-кнопки (раздел 2)
   с треугольником. Название главы — переменной длины (в некоторых книгах длинное), поэтому высота
   не зафиксирована: min-height держит форму однострочной пилюли на коротких названиях, но кнопка
   свободно растёт вниз на длинных, а не обрезает текст и не вылезает за колонку. */
.rg-audiobook__resume { align-self: flex-start; display: inline-flex; align-items: flex-start; gap: 10px; min-height: 40px; max-width: 100%; padding: 10px 18px; border-radius: var(--wp--custom--radius-pill); border: 1.5px solid var(--wp--preset--color--border-strong); background: transparent; color: var(--wp--custom--accent-fg); font: inherit; font-size: 14px; font-weight: 600; line-height: 1.3; text-align: left; cursor: pointer; }
.rg-audiobook__resume::before { content: ""; flex: none; margin-top: 4px; border-left: 8px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
@media (hover: hover) { .rg-audiobook__resume:hover { background: var(--wp--preset--color--surface-2); border-color: var(--wp--custom--border-hover); } }

/* Список глав — по образцу выпусков серии (.rg-series__item, раздел 17): строки с линиями,
   название слева, длительность справа; вместо номера — круглая кнопка воспроизведения. */
.rg-audiobook__list { list-style: none; margin: 0; padding: 0; }
.rg-audiobook__item { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 8px 0; border-top: 1px solid var(--wp--preset--color--border); }
.rg-audiobook__item:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-audiobook__title { font-size: var(--wp--preset--font-size--body); line-height: 1.35; }
.rg-audiobook__dur { font-variant-numeric: tabular-nums; white-space: nowrap; }
.rg-audiobook__play { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 999px; background: var(--wp--preset--color--tint); color: var(--wp--custom--tint-fg); cursor: pointer; }
/* play — заливка (замкнутый треугольник), pause — два отрезка обводкой: тот же приём, что в разделе 17 */
.rg-audiobook__play .rg-ico { width: 16px; height: 16px; fill: currentColor; stroke: none; margin-left: 2px; }
.rg-audiobook__play .rg-ico--pause { fill: none; stroke: currentColor; stroke-width: 2.5; margin-left: 0; }
.rg-audiobook__play .rg-ico--pause, .rg-audiobook__item.is-playing .rg-audiobook__play .rg-ico:not(.rg-ico--pause) { display: none; }
.rg-audiobook__item.is-playing .rg-audiobook__play .rg-ico--pause { display: block; }
/* Текущая глава: название полужирным, время — electric, кнопка чернильная (как в плеере) */
.rg-audiobook__item.is-current .rg-audiobook__title { font-weight: 700; }
.rg-audiobook__item.is-current .rg-audiobook__dur { color: var(--wp--preset--color--electric); }
.rg-audiobook__item.is-current .rg-audiobook__play { background: var(--wp--custom--accent-surface); color: #fff; }
.rg-audiobook.is-ready .rg-audiobook__item { cursor: pointer; }
@media (hover: hover) {
  .rg-audiobook.is-ready .rg-audiobook__item:hover .rg-audiobook__play { background: var(--wp--custom--tint-hover); }
  .rg-audiobook.is-ready .rg-audiobook__item.is-current:hover .rg-audiobook__play { background: var(--wp--custom--accent-surface-hover); }
}
/* Без скриптов: кнопки нет, каждую главу слушают её собственным проигрывателем во всю строку */
.rg-audiobook:not(.is-ready) .rg-audiobook__play { display: none; }
.rg-audiobook:not(.is-ready) .rg-audiobook__item { grid-template-columns: minmax(0, 1fr) auto; padding: 14px 0; }
.rg-audiobook__audio { grid-column: 1 / -1; width: 100%; margin-top: 10px; }
.rg-audiobook.is-ready .rg-audiobook__audio { display: none; }
@media (max-width: 599px) { .rg-audiobook__item { gap: 12px; } .rg-audiobook__title { font-size: var(--wp--preset--font-size--small); } }

/* ---------- 19. Лендинг аудиокниги ---------- */
/* Посадочные страницы /rol-mamy/ и /rol-otca/ (шаблон landing.html, без меню). Своего артборда
   нет: вид собран из того, что в системе уже есть — шапка страницы «Консультации» (раздел 12:
   фото рядом с текстом, кнопки под текстом), список глав по образцу выпусков книги у подписчика
   (раздел 18) и чернильная панель подписки (раздел 8). Секции печатают паттерны
   landing-<книга>-*, корневая группа каждой — rg-landing rg-landing--<часть> rg-section rg-container. */

/* Шапка лендинга ниже обычной: на странице нет ни меню, ни кнопки «Связаться» — только имя и
   переключатель темы. Высоту меняем ПЕРЕМЕННОЙ, а не жёстким значением у .rg-header__inner:
   от неё же <html> считает scroll-padding-top, то есть где остановится прокрутка к якорю
   #podpiska, к которому ведёт кнопка первого экрана. Зашитая высота увела бы форму под шапку.
   Переменную ставим на <html>, потому что scroll-padding-top живёт там же, а класс шаблона —
   на <body>; :has() здесь того же рода, что у body.admin-bar в разделе 5: класс приходит из
   разметки PHP и не меняется, скрипт к нему не прикасается. В браузере без :has() шапка просто
   остаётся обычной высоты — вместе со своим отступом прокрутки, то есть согласованно. */
html:has(body.page-template-landing) { --wp--custom--header-height: 56px; }
/* Ниже 960 базовая высота .rg-header__inner зашита (60px) — на лендинге берём переменную на
   любой ширине, иначе отступ прокрутки на телефоне разойдётся с фактической шапкой. */
.rg-header--landing .rg-header__inner { height: var(--wp--custom--header-height); }
/* Подвал лендинга — сокращённый (часть landing-footer: только соцсети и нижняя строка).
   Линия между ними тут лишняя: полос всего две, и они читаются как один блок. */
.rg-footer--landing .rg-footer__bottom { border-top: 0; padding-top: 0; }
/* Шапка и подвал держат ту же колонку, что и секции (см. max-width у .rg-landing ниже): иначе имя
   в шапке и реквизиты в подвале стоят у краёв страницы, а весь текст — на 130px правее. */
.rg-header--landing .rg-header__inner, .rg-footer--landing .rg-container { max-width: 1020px; }

/* Ритм секций: у лендинга их семь подряд, и обычные 96 сверху и снизу (раздел 1) растягивают
   страницу пустотой. Свои значения — меньше, но той же природы.
   Колонка уже страничной: 940 против 1200 (max-width 1020 минус padding контейнера 40+40 на
   широком экране). 940 — та же ширина, что у тела материала с боковой колонкой (раздел 15,
   решение владельца 20.09.2026): у лендинга одна дорога сверху вниз, и на 1200 текст остался бы
   узкой полосой у левого края с пустой правой половиной. */
.rg-landing { display: flex; flex-direction: column; gap: 16px; padding-block: 48px; max-width: 1020px; }
.rg-landing > * { margin: 0; }
@media (min-width: 1024px) { .rg-landing { padding-block: 64px; } }
/* Лейбл и следующий за ним заголовок — одна связка: гасим половину общего gap отрицательным
   отступом (в flex-колонке это работает так же, как в потоке). */
.rg-landing .rg-label + :is(.rg-landing__h2, .rg-landing__title) { margin-top: -8px; }
.rg-landing__h2 { font-size: var(--wp--preset--font-size--h-2); line-height: 1.15; letter-spacing: -0.02em; }
/* Ссылки внутри текста лендинга: шаблон landing.html не оборачивает содержимое в .rg-page,
   поэтому общее правило ссылок из раздела 1 сюда не достаёт. Перечисляем абзацы поимённо, а не
   ставим правило на все .rg-landing a: внутри чернильной панели у формы и подписи свои цвета. */
:is(.rg-landing__next-lead, .rg-landing__next-link, .rg-landing__quiet, .rg-landing__author-origin) a { color: var(--wp--custom--accent-fg); font-weight: 600; text-decoration: underline; text-decoration-color: var(--wp--preset--color--electric); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
@media (hover: hover) { :is(.rg-landing__next-lead, .rg-landing__next-link, .rg-landing__quiet, .rg-landing__author-origin) a:hover { color: var(--wp--preset--color--electric); } }

/* Первый экран: обложка и текст рядом с 960 (та же граница, что у шапки «Консультаций»), ниже —
   обложка сверху, она первой идёт и в разметке. Обложка крупная — 400 на широком экране и 340 на
   960–1199 (решение владельца 23.09.2026: на 300 она мельче, чем стоит главному предмету страницы).
   Замыливания нет: паттерн печатает файл large (1024), а не medium (300) — размер в паттерне и
   ширина здесь ходят парой, одно без другого даст мягкую картинку. На странице подписчика
   (раздел 18) обложка осталась 300 — там она иллюстрация к списку глав, а не предмет страницы. */
.rg-landing--hero { padding-block: 32px 56px; gap: 24px; }
@media (min-width: 1024px) { .rg-landing--hero { padding-block: 40px 72px; } }
.rg-landing__cover { width: 100%; max-width: 400px; }
.rg-landing__cover img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--wp--custom--radius-l); box-shadow: var(--wp--custom--shadow-card); }
.rg-landing__hero-text { display: flex; flex-direction: column; gap: 16px; }
.rg-landing__hero-text > * { margin: 0; }
.rg-landing__title { font-size: var(--wp--preset--font-size--h-1); line-height: 1.1; letter-spacing: -0.025em; }
.rg-landing__lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.45; color: var(--wp--preset--color--text-2); max-width: 620px; }
/* Сильное место книги — не выноска материала и не плашка с числом: светлый тон (раздел 3), тот же,
   что у плашек формата. Заметно, но голос не повышает. */
.rg-landing__hero-note { max-width: 620px; padding: 14px 18px; border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--color--tint); color: var(--wp--custom--tint-fg); font-size: var(--wp--preset--font-size--small); line-height: 1.5; }
.rg-landing__actions { margin-top: 4px; }
@media (min-width: 960px) {
  .rg-landing--hero { display: grid; grid-template-columns: 340px minmax(0, 1fr); column-gap: 48px; align-items: start; }
  .rg-landing__hero-text { gap: 18px; }
}
/* С 1200 колонка страницы перестаёт сжиматься (940 при max-width 1020), и обложке хватает 400,
   не отбирая у заголовка меру строки. */
@media (min-width: 1200px) { .rg-landing--hero { grid-template-columns: 400px minmax(0, 1fr); column-gap: 64px; } }
@media (max-width: 599px) {
  .rg-landing__cover { max-width: 260px; }
  .rg-landing__actions .wp-block-button, .rg-landing__actions .wp-block-button__link { width: 100%; }
}

/* О чём книга: текстовая колонка в меру строки. Абзацы перечислены через :not(.rg-label) —
   лейблы в этой же секции тоже <p>, и без исключения они получили бы кегль тела. */
.rg-landing--about > p:not(.rg-label) { max-width: 720px; font-size: var(--wp--preset--font-size--body-l); line-height: 1.6; }
.rg-landing--about > .rg-label:not(:first-child) { margin-top: 16px; }
.rg-landing__for { list-style: none; margin: 0; padding: 0; max-width: 720px; display: flex; flex-direction: column; gap: 10px; font-size: var(--wp--preset--font-size--body); line-height: 1.5; color: var(--wp--preset--color--text-2); }
.rg-landing__for li { margin: 0; position: relative; padding-left: 20px; }
.rg-landing__for li::before { content: ""; position: absolute; left: 2px; top: calc(0.75em - 3px); width: 6px; height: 6px; border-radius: 999px; background: var(--wp--preset--color--electric); }

/* Оглавление (блок rg/audiobook-toc, классы rg-btoc*) — строки с линиями по образцу выпусков
   книги у подписчика (.rg-audiobook__item, раздел 18). Номер главы — счётчик CSS: маркеры <ol>
   сняты, а номер нужен отдельной колонкой, иначе длинное название и время съезжают друг к другу.
   Время — своя колонка auto с tabular-nums и nowrap: девять строк держат общую правую границу
   и не разъезжаются, как бы ни переносилось название.

   Блок оглавления динамический (читает главы на каждом показе страницы, не только при создании)
   и без глав не печатает ничего — но группа-секция вокруг него в паттерне статична, и без этого
   правила пустая секция всё равно давала бы полосу высотой в свой padding-block (боевое
   состояние до первой загрузки книги). Состояние приходит с сервера и не меняется скриптом —
   как у body.page-template-landing выше, :has() здесь безопасен и пересчитывается на каждом
   показе вместе с самим блоком. */
.rg-landing--toc:not(:has(.rg-btoc)) { display: none; }
.rg-landing--toc { gap: 6px; }
.rg-btoc { display: flex; flex-direction: column; gap: 6px; }
.rg-btoc > * { margin: 0; }
.rg-btoc__title { font-size: var(--wp--preset--font-size--h-2); line-height: 1.15; letter-spacing: -0.02em; }
.rg-btoc__list { list-style: none; margin: 16px 0 0; padding: 0; max-width: 720px; counter-reset: rg-btoc; }
.rg-btoc__item { margin: 0; counter-increment: rg-btoc; display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: baseline; gap: 12px; padding: 12px 0; border-top: 1px solid var(--wp--preset--color--border); }
.rg-btoc__item:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-btoc__item::before { content: counter(rg-btoc); font-size: var(--wp--preset--font-size--caption); font-weight: 600; font-variant-numeric: tabular-nums; color: var(--wp--preset--color--text-3); }
.rg-btoc__name { font-size: var(--wp--preset--font-size--body); line-height: 1.35; }
.rg-btoc__time { font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 599px) {
  .rg-btoc__item { grid-template-columns: 20px minmax(0, 1fr) auto; gap: 10px; }
  .rg-btoc__name { font-size: var(--wp--preset--font-size--small); }
}

/* Увеличение по клику (лайтбокс ядра). По умолчанию выключено (theme.json, core/image), но
   остаётся возможность включить его у отдельной картинки — например, в фотогалерее «Обо мне».

   Ядро переносит в оверлей всю обёртку картинки вместе с её классами, а наши картинки стоят
   в рамке системы: своя ширина, единое соотношение сторон и object-fit: cover, которыми мы
   приводим разнородные фото к общему виду. В увеличении рамка продолжала действовать: обёртка
   оставалась шириной 400px, изображение ядро растягивало до 820px, и всё, что не поместилось,
   срезал контейнер оверлея — на обложке аудиокниги пропадала первая буква заголовка (найдено
   владельцем 23.09.2026, воспроизведено в браузере). В оверлее рамка не нужна: там изображение
   показывают целиком, поэтому снимаем и ограничение ширины, и соотношение с обрезкой.
   !important — потому что ширину и соотношение задают компонентные правила разделов выше,
   а размеры самой картинки ядро пишет инлайновым стилем. */
.wp-lightbox-overlay figure,
.wp-lightbox-overlay .wp-block-image { max-width: none !important; width: auto !important; margin: 0 !important; }
.wp-lightbox-overlay img { aspect-ratio: auto !important; object-fit: contain !important; }
/* Увеличение по нажатию (решение владельца 25.09.2026): по умолчанию выключено (theme.json), включается у отдельного
   фото переключателем «Увеличивать при нажатии» в редакторе — и срабатывает только с мышью: на касание оно не отвечает,
   чтобы случайное касание при прокрутке не открывало фото. Проверено CDP: касание — не открылось, клик мышью — открылось. */
@media (hover: none) and (pointer: coarse) {
  .wp-lightbox-container img { pointer-events: none; }
  .wp-lightbox-container .lightbox-trigger { display: none; }
}

/* Отклик: поле плиток — отзывы и число пересылок (блок rg/forwards) вперемешку.

   Почему плитка, а не ряд и не лента. Отзывы приходят разной длины: от «Спасибо! Очень ценно!»
   до абзаца в десять строк, и их разное число на каждой книге. В ряду одинаковых карточек
   длинный отзыв задирал высоту всем, а под короткими оставалась пустота; лента с прокруткой
   показывала один-два отзыва, остальные прятала за краем. В плитке длинный отзыв
   уравновешивается двумя короткими, и поле заполняется без дыр (решение владельца 23.09.2026,
   вариант «Д» из показанных).
   Число пересылок стоит последней плиткой того же поля — оно не заголовок секции, а один из
   голосов в ней, только не читательский.

   Раскладывает плитки скрипт (theme.js, раздел 4), а не многоколоночный CSS. На колонках CSS
   это уже было сделано и откачено: на машине владельца карточку рвало между колонками, наверху
   следующей колонки оставался осколок её рамки — тонкая линия, из-за которой соседние плитки
   выглядели съехавшими (23.09.2026). Ни break-inside: avoid, ни его вебкитовский префикс, ни
   строчные боксы этого не убрали, а в headless на тех же ширинах разрыва не было вовсе —
   чинить вслепую поведение, которое зависит от браузера, дороже, чем разложить плитки самому.
   Скрипт кладёт каждую следующую плитку в самую короткую колонку: мозаика собирается при любом
   числе и любой длине отзывов, и добавленный отзыв ничего не ломает.
   Без скриптов плитки идут столбиком в порядке разметки — это и есть запасная раскладка,
   ничего не пропадает и не наезжает. Число колонок ставит скрипт классом (раздел 4), состояние
   отражено классом, а не :has(): на :has() тема уже обжигалась (раздел 17). */
.rg-landing__tiles { margin-top: 32px; display: flex; flex-direction: column; gap: 16px; }
.rg-landing__tiles > * { margin: 0; }
.rg-landing__tiles.is-masonry { flex-direction: row; align-items: flex-start; }
.rg-landing__col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.rg-landing__col > * { margin: 0; }

/* Отзыв в плитке — карточка, а не «газетный» отзыв раздела 12 с линией сверху: в поле из
   разноцветных плиток линии выстроились бы лесенкой и поле рассыпалось. Подпись отделена
   от текста зазором, а не кеглем линии. */
.rg-landing--proof .rg-review {
  border: 1px solid var(--wp--preset--color--border); border-top-width: 1px; border-radius: var(--wp--custom--radius-l);
  background: var(--wp--preset--color--surface); padding: 22px; gap: 14px;
  box-shadow: var(--wp--custom--shadow-tile);
}
.rg-landing--proof .rg-review__text { font-size: var(--wp--preset--font-size--body); line-height: 1.5; }

/* Число пересылок — тёмная плитка: единственная в поле, поэтому её видно сразу, а плиточная
   форма не даёт ей звучать как плашка достижения. Блик в углу — тот же приём, что у обложки
   аудиокниги (раздел 18): тёмная поверхность сайта всегда со светом в углу.
   Цифра точная, не округлённая — это сумма пересылок двух постов канала.
   tabular-nums — чтобы при досчёте (theme.js, раздел 3) число не дёргалось по ширине.
   Текст здесь белый при любой теме: под ним своя тёмная поверхность, а не фон страницы,
   поэтому в dark.css у плитки правил нет. */
.rg-forwards {
  position: relative; overflow: hidden;
  background: var(--wp--preset--gradient--ink-glow);
  border-radius: var(--wp--custom--radius-l); padding: 26px;
  display: flex; flex-direction: column; gap: 12px;
}
.rg-forwards > * { margin: 0; position: relative; }
.rg-forwards__value { display: flex; align-items: center; gap: 14px; color: #fff; }
.rg-forwards__ico { width: .5em; height: .5em; font-size: 52px; stroke-width: 1.75; flex: none; color: var(--wp--preset--color--ink-text); }
.rg-forwards__n { font-size: 52px; font-weight: 800; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.rg-forwards__label { font-size: var(--wp--preset--font-size--small); line-height: 1.45; color: rgba(255, 255, 255, .78); }
@media (max-width: 599px) { .rg-forwards__ico, .rg-forwards__n { font-size: 44px; } }

/* Автор: портрет и текст рядом с 768. Колонка 225 — ширина файла medium, который печатает
   хелпер (inc/landing.php); шире портрет растянулся бы. */
.rg-landing--author { gap: 24px; }
.rg-landing__portrait { width: 100%; max-width: 225px; }
.rg-landing__portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--wp--custom--radius-l); }
.rg-landing__author-text { display: flex; flex-direction: column; gap: 16px; }
.rg-landing__author-text > * { margin: 0; }
.rg-landing__author-text .rg-label + .rg-landing__h2 { margin-top: -8px; }
.rg-landing__author-title { font-size: var(--wp--preset--font-size--body-l); font-weight: 600; line-height: 1.45; }
.rg-landing__author-text > p:not(.rg-label):not(.rg-landing__author-title) { max-width: 640px; font-size: var(--wp--preset--font-size--body); line-height: 1.6; color: var(--wp--preset--color--text-2); }
.rg-landing__author-origin { padding-top: 16px; border-top: 1px solid var(--wp--preset--color--border); }
@media (min-width: 768px) {
  .rg-landing--author { display: grid; grid-template-columns: 225px minmax(0, 1fr); column-gap: 40px; align-items: start; }
}
@media (min-width: 1024px) { .rg-landing--author { column-gap: 56px; } }
@media (max-width: 599px) { .rg-landing__portrait { max-width: 180px; } }

/* Подписка: панель целиком из раздела 8, здесь — только список условий на чернильном фоне.
   Цвет на акцентной заливке в теме отдельной переменной не имеет, поэтому белый с прозрачностью —
   так же, как у .rg-subscribe__desc и .rg-subscribe__note выше. */
.rg-landing__facts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.78); }
.rg-landing__facts li { margin: 0; position: relative; padding-left: 22px; }
.rg-landing__facts li::before { content: ""; position: absolute; left: 0; top: calc(0.75em - 1px); width: 10px; height: 2px; border-radius: 1px; background: rgba(255,255,255,.45); }

/* Что дальше: после формы, поэтому побуждений нет — материалы, каналы и тихая строка.
   Группа каналов в разметке — flex с переносом (лейбл и блок в строку): на лендинге лейбл стоит
   НАД карточками, иначе сетка каналов сжимается в узкую колонку сбоку от подписи.
   Два класса в селекторе — чтобы перебить раскладку, которую ядро печатает своим правилом
   .wp-container-core-group-layout-N той же специфичности.
   flex-wrap: nowrap здесь обязателен, и это не формальность: ядро печатает flex-wrap: wrap, а
   колонка с переносом раскладывается по флекс-линиям, и сетка каналов внутри неё растягивалась
   по высоте — карточки каналов выходили 238px вместо 73 (замерено в браузере). Меняем направление
   — снимаем и перенос. */
.rg-landing__next-lead { max-width: 760px; font-size: var(--wp--preset--font-size--body-l); line-height: 1.6; color: var(--wp--preset--color--text-2); }
/* «Все материалы →» — отдельный абзац (ссылка рвалась посреди фразы, правка по замечанию владельца
   после задачи 7). Это продолжение той же мысли, поэтому отступ до неё меньше общего шага секции. */
.rg-landing__next-link { margin-top: -6px; font-size: var(--wp--preset--font-size--body); line-height: 1.5; }
.rg-landing .rg-landing__channels { display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 12px; margin-top: 16px; }
.rg-landing__channels > * { margin: 0; }
.rg-landing__quiet { margin-top: 16px; padding-top: 20px; border-top: 1px solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--small); line-height: 1.55; color: var(--wp--preset--color--text-2); }

/* ---------- 20. Материалы за подписку и гайд (план 3b-3) ---------- */
/* Страница «Ваши материалы»: аудиокниги (раздел 18) и карточки файлов идут одной лентой с тем же
   разделителем. Крупная карточка (.is-featured) — материал из письма (m), на surface-карточке. */
.rg-gate--books > :is(.rg-audiobook, .rg-sub-file) + :is(.rg-audiobook, .rg-sub-file) { margin-top: 56px; padding-top: 56px; border-top: 1px solid var(--wp--preset--color--border); }
.rg-gate__more { margin: 56px 0 24px; font-size: var(--wp--preset--font-size--h-3); line-height: 1.25; letter-spacing: -0.015em; }
.rg-gate__more + :is(.rg-audiobook, .rg-sub-file) { margin-top: 0; padding-top: 0; border-top: 0; }
.rg-sub-file { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; }
.rg-sub-file__cover { max-width: 240px; }
.rg-sub-file__img { display: block; width: 100%; height: auto; aspect-ratio: 210 / 297; object-fit: cover; border-radius: var(--wp--custom--radius-m); box-shadow: var(--wp--custom--shadow-card); }
.rg-sub-file__main { display: flex; flex-direction: column; gap: 12px; }
.rg-sub-file__main > * { margin: 0; }
.rg-sub-file__name { font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; letter-spacing: -0.02em; }
.rg-sub-file__actions { margin-top: 4px; }
.rg-sub-file__note { font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--text-2); max-width: 520px; }
.rg-sub-file__soon { padding: 12px 16px; border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--color--tint); color: var(--wp--custom--tint-fg); font-size: var(--wp--preset--font-size--small); }
.rg-sub-file.is-featured { padding: 24px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-xl); }
.rg-sub-file.is-featured .rg-sub-file__name { font-size: var(--wp--preset--font-size--h-2); }
@media (min-width: 768px) {
  .rg-sub-file { grid-template-columns: 180px minmax(0, 1fr); gap: 32px; }
  .rg-sub-file.is-featured { grid-template-columns: 240px minmax(0, 1fr); padding: 32px; }
}
@media (min-width: 1024px) { .rg-sub-file.is-featured { grid-template-columns: 300px minmax(0, 1fr); gap: 48px; padding: 40px; } }
@media (max-width: 599px) { .rg-sub-file__actions .rg-btn { width: 100%; justify-content: center; } }

/* Форма гайда в тексте материала (паттерн material-subscribe). Правила — со специфичностью не ниже
   0,2,1: иначе .rg-entry__content p:where(…) (раздел 1) и .rg-entry .rg-entry__content h2 (раздел 15)
   перебивают кегль и отступы чернильной панели. */
.rg-entry__content .rg-subscribe.rg-subscribe--entry { display: flex; flex-direction: column; gap: 18px; padding: 28px 24px; margin-block: 48px; }
.rg-entry__content .rg-subscribe--entry p.rg-subscribe__title { font-size: 26px; line-height: 1.1; font-weight: 800; letter-spacing: -0.028em; }
.rg-entry__content .rg-subscribe--entry p.rg-subscribe__desc { font-size: 15px; line-height: 1.55; }
.rg-entry__content .rg-subscribe--entry p:is(.rg-subscribe__promise, .rg-subscribe__soon) { font-size: 15px; }
.rg-entry__content .rg-subscribe--entry p.rg-subscribe__hint { font-size: 13px; }
.rg-entry__content .rg-subscribe--entry p.rg-subscribe__note { font-size: 12px; }
.rg-entry__content .rg-subscribe--entry .rg-subscribe__sent > p { font-size: 15px; }
.rg-entry__content .rg-subscribe--entry .rg-subscribe__sent > p.rg-subscribe__sent-title { font-size: 18px; }
.rg-entry__content .rg-subscribe--entry a { text-decoration: underline; }
@media (min-width: 600px) {
  .rg-entry__content .rg-subscribe.rg-subscribe--entry { padding: 36px 40px; }
  .rg-entry__content .rg-subscribe--entry .rg-subscribe__form { flex-direction: row; }
  .rg-entry__content .rg-subscribe--entry .rg-subscribe__input { flex: 1; min-width: 0; }
}

/* Лендинг гайда /tradicii/ (спека 3b-3 §5). Раскладка первого экрана, автор и «что дальше» — из раздела 19. */
/* Обложка гайда — портретная A4, а не квадрат аудиокниги. */
.rg-landing__cover.rg-landing__cover--page img { aspect-ratio: 210 / 297; }
/* Форма на первом экране — компактная чернильная панель в колонке текста: раскладка панели в две
   колонки с 960 (раздел 8) здесь не нужна — у колонки нет места на вторую. */
.rg-landing .rg-subscribe.rg-landing__hero-form { display: block; padding: 24px; margin-top: 4px; }
@media (min-width: 600px) {
  .rg-landing__hero-form .rg-subscribe__form { flex-direction: row; }
  .rg-landing__hero-form .rg-subscribe__input { flex: 1; min-width: 0; }
}
/* Что внутри: плашки-цифры и разделы карточками без ссылок (у памятки карточки ведут к якорям). */
.rg-landing--inside { display: flex; flex-direction: column; gap: 20px; }
.rg-landing--inside > * { margin: 0; }
.wp-block-list.is-style-tocards.rg-tocards-static > li { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); }
@media (min-width: 960px) { .wp-block-list.is-style-tocards.rg-tocards-static { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
/* Страницы гайда: портретные, целиком, без кадрирования под квадрат. */
.rg-landing--pages { display: flex; flex-direction: column; gap: 20px; }
.rg-landing--pages > * { margin: 0; }
.rg-landing .wp-block-gallery.is-style-carousel.rg-carousel--pages img { aspect-ratio: 210 / 297; object-fit: cover; border-radius: var(--wp--custom--radius-m); border: 1px solid var(--wp--preset--color--border); }
@media (min-width: 960px) {
  .rg-landing .wp-block-gallery.is-style-carousel.rg-carousel--pages.has-nested-images figure.wp-block-image:not(#individual-image) { flex-basis: calc(33.333% - 10px); max-width: calc(33.333% - 10px); }
}
@media (max-width: 599px) {
  .rg-landing .wp-block-gallery.is-style-carousel.rg-carousel--pages.has-nested-images figure.wp-block-image:not(#individual-image) { flex-basis: 72%; max-width: 72%; }
}
.rg-landing--how { display: flex; flex-direction: column; gap: 20px; }
.rg-landing--how > * { margin: 0; }
.rg-landing--cta { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding-block: 32px; }
.rg-landing--cta > * { margin: 0; }
.rg-landing__cta-text { font-size: var(--wp--preset--font-size--lead); line-height: 1.45; }
.rg-landing__cta-lead { max-width: 720px; font-size: var(--wp--preset--font-size--h-3); font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; text-wrap: balance; }
/* Печатная версия: текст и форма заявки (светлая карточка .rg-form, раздел 13). */
.rg-landing--print { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.rg-landing__print-text { display: flex; flex-direction: column; gap: 12px; }
.rg-landing__print-text > * { margin: 0; }
@media (min-width: 960px) { .rg-landing--print { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: start; } }

/* ---------- 20. Гайд на «Книгах» ---------- */
/* rg/sub-offer: карточка во всю ширину под аудиокнигами, тот же вид, что у .rg-audio-card (раздел 12). */
.rg-sub-offer { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 24px; padding: 24px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); box-shadow: var(--wp--custom--shadow-card); }
.rg-sub-offer__cover { max-width: 180px; }
.rg-sub-offer__img { display: block; width: 100%; height: auto; aspect-ratio: 210 / 297; object-fit: cover; border-radius: var(--wp--custom--radius-s); }
.rg-sub-offer__text { display: flex; flex-direction: column; gap: 10px; }
.rg-sub-offer__text > * { margin: 0; }
.rg-sub-offer__title { font-size: var(--wp--preset--font-size--h-4); line-height: 1.3; }
.rg-sub-offer__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
@media (min-width: 768px) { .rg-sub-offer { grid-template-columns: 160px minmax(0, 1fr); gap: 32px; padding: 28px 32px; align-items: start; } }

/* Таблица политики (спека ПДн §4) на телефоне — карточками: пять колонок в 390 px не читаются.
   Страница политики — обычный шаблон page.html, без .rg-entry__content, поэтому карточки таблиц из
   entry.js (data-label) сюда не доходят; подписи — из CSS, по номеру колонки (те же, что в шапке таблицы). */
@media (max-width: 599px) {
  .wp-block-table.rg-policy-table.is-style-cheatsheet { border: 0; border-radius: 0; background: none; overflow: visible; }
  .wp-block-table.rg-policy-table.is-style-cheatsheet :is(table, tbody, tr, td) { display: block; width: 100%; }
  .wp-block-table.rg-policy-table.is-style-cheatsheet thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .wp-block-table.rg-policy-table.is-style-cheatsheet tr { margin: 0 0 12px; padding: 14px 16px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-m); }
  .wp-block-table.rg-policy-table.is-style-cheatsheet td { padding: 6px 0 0; border: 0; }
  .wp-block-table.rg-policy-table.is-style-cheatsheet td:first-child { padding: 0 0 4px; font-size: 16px; }
  .wp-block-table.rg-policy-table.is-style-cheatsheet td:not(:first-child)::before { display: block; font-size: var(--wp--preset--font-size--label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.4; color: var(--wp--preset--color--text-3); }
  .wp-block-table.rg-policy-table.is-style-cheatsheet td:nth-child(2)::before { content: "Цель"; }
  .wp-block-table.rg-policy-table.is-style-cheatsheet td:nth-child(3)::before { content: "Данные"; }
  .wp-block-table.rg-policy-table.is-style-cheatsheet td:nth-child(4)::before { content: "Основание"; }
  .wp-block-table.rg-policy-table.is-style-cheatsheet td:nth-child(5)::before { content: "Срок хранения"; }
}

/* ---------- 21. Баннер cookies (спека ПДн §5) ---------- */
/* Появляется только из assets/js/consent.js (без JavaScript нет ни баннера, ни Метрики). Карточка внизу
   экрана, не на весь экран; z-index ниже липкой шапки (50) и мобильного меню (60–61) — открытое меню
   закрывает баннер, а не наоборот. Поверхность и цвета — переменные темы: в тёмной теме сами переходят
   на тёмную поверхность. */
.rg-consent { position: fixed; z-index: 40; left: 16px; right: 16px; bottom: 16px; max-width: 640px; margin: 0 auto; box-sizing: border-box; display: flex; flex-direction: column; gap: 12px; padding: 16px; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--fg); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); box-shadow: var(--wp--custom--shadow-card-hover); }
.rg-consent__text { margin: 0; font-size: 14px; line-height: 1.5; color: var(--wp--preset--color--text-2); }
.rg-consent__text a { color: var(--wp--custom--accent-fg); text-decoration: underline; text-underline-offset: 2px; }
.rg-consent__actions { display: flex; gap: 8px; }
.rg-consent__actions .rg-btn { flex: 1 1 0; justify-content: center; min-width: 0; }
@media (min-width: 600px) {
  .rg-consent { flex-direction: row; align-items: center; gap: 20px; padding: 16px 20px; }
  .rg-consent__actions { flex: none; }
  .rg-consent__actions .rg-btn { flex: none; }
}

/* ---------- 22. Выступления и интервью (/vystupleniya/, паттерны talks-*) ---------- */
/* Макет — design/directions/gen_vystupleniya.py. Кегли — шкала сайта (h1/h2 темы), не крупные значения макета.
   Метка «черновик» и квадратные скобки в текстах видны, пока владелец не согласовал тексты (страница noindex). */
.rg-page-hero--vy .rg-page-hero__photo img { aspect-ratio: 3 / 2; }
.rg-page-hero--vy .rg-page-hero__photo { order: 0; }
@media (min-width: 960px) { .rg-page-hero--vy { align-items: center; gap: 56px; } }
.rg-vy-title { margin: 0; }
.rg-vy-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 4px; }
.rg-vy-actions > *, .rg-vy-actions .wp-block-buttons { margin: 0; }
@media (max-width: 599px) {
  .rg-vy-actions { flex-direction: column; align-items: stretch; text-align: center; }
  .rg-vy-actions .wp-block-button, .rg-vy-actions .wp-block-button__link { width: 100%; }
}

.rg-vy-head { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; }
.rg-vy-head > * { margin: 0; }
.rg-vy-head__sub { font-size: var(--wp--preset--font-size--lead); color: var(--wp--preset--color--text-2); max-width: 720px; }
.rg-vy-draft { display: inline-flex; align-items: center; height: 22px; margin-left: 10px; padding: 0 9px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; vertical-align: middle; } /* цвета — .rg-pill-status--dev */
@media (max-width: 599px) { .rg-vy-head { margin-bottom: 20px; } .rg-vy-head__sub { font-size: 16px; } }

.rg-vy-grid { display: grid; grid-template-columns: 1fr; gap: 20px; align-items: stretch; }
/* блоки ядра ставят соседям margin-block-start (flow-раскладка) — в сетках, строках и колонках раздела он лишний */
.rg-vy-grid > *, .rg-vy-rows > *, .rg-vy-kv > *, .rg-vy-terms > *, .rg-vy-portraits > *, .rg-vy-faq__list > * { margin-block: 0; }
@media (min-width: 900px) { .rg-vy-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rg-vy-door, .rg-vy-topic { display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: var(--wp--custom--radius-l); background: var(--wp--preset--color--surface); box-sizing: border-box; }
.rg-vy-door > *, .rg-vy-topic > * { margin: 0; }
.rg-vy-door { border: 1px solid var(--wp--preset--color--border); }
.rg-vy-door p, .rg-vy-topic p { font-size: 15px; line-height: 1.55; color: var(--wp--preset--color--text-2); }
.rg-vy-door .wp-block-buttons { margin-top: auto; padding-top: 4px; }
.rg-vy-door__title, .rg-vy-topic__title { font-size: var(--wp--preset--font-size--h-4); line-height: 1.25; }
.rg-vy-topic { box-shadow: var(--wp--custom--shadow-card); }
.rg-vy-topic p.rg-vy-topic__n { font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--wp--preset--color--electric); }
.rg-vy-topic p.rg-vy-topic__who { font-size: 14px; font-weight: 500; color: var(--wp--preset--color--text-3); }
.rg-vy-topic p.rg-vy-topic__more { font-size: 14px; line-height: 1.45; font-weight: 600; color: var(--wp--preset--color--electric); }
.rg-vy-topic__more a { color: inherit; text-decoration: none; }
@media (hover: hover) { .rg-vy-topic__more a:hover { color: var(--wp--preset--color--electric); text-decoration: underline; text-underline-offset: 3px; } }
.rg-vy-topic p.rg-vy-topic__fmt { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--wp--preset--color--border); font-size: 14px; font-weight: 600; color: var(--wp--preset--color--fg); }
@media (max-width: 599px) { .rg-vy-door, .rg-vy-topic { padding: 20px; border-radius: var(--wp--custom--radius-m); } }

.rg-vy-rows { display: flex; flex-direction: column; }
.rg-vy-row { display: grid; grid-template-columns: 1fr; gap: 4px; padding: 14px 0; border-top: 1px solid var(--wp--preset--color--border); }
.rg-vy-row:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-vy-row > * { margin: 0; }
.rg-vy-row__k { font-weight: 700; }
.rg-vy-row__v { color: var(--wp--preset--color--text-2); }
@media (min-width: 900px) { .rg-vy-row { grid-template-columns: 280px 200px 1fr; gap: 24px; padding: 18px 0; } }
.rg-vy-terms { display: flex; flex-direction: column; gap: 8px; margin-top: 24px; }
.rg-vy-terms > * { margin: 0; }
.rg-vy-terms__geo { font-weight: 600; }
.rg-vy-terms__price { color: var(--wp--preset--color--text-2); }

.rg-vy-records__more { margin: 24px 0 0; }
.rg-vy-records .rg-post-grid > .rg-section, .rg-vy-records .rg-section { padding: 0; }

@media (min-width: 900px) { .rg-vy-kv .rg-kv__row { grid-template-columns: 280px 1fr; } }

.rg-vy-press__cols { display: flex; flex-direction: column; gap: 24px; }
.rg-vy-press__cols > * { margin: 0; }
@media (min-width: 960px) { .rg-vy-press__cols { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; align-items: start; } }
.rg-vy-portraits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rg-vy-portraits > * { margin: 0; }
@media (max-width: 599px) { .rg-vy-portraits { gap: 10px; } }
.rg-vy-portrait { display: flex; flex-direction: column; gap: 8px; }
.rg-vy-portrait > * { margin: 0; }
.rg-vy-portrait__img img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--wp--custom--radius-l); display: block; }
.rg-vy-portrait__dl { font-size: 14px; }
.rg-vy-portrait__dl a { white-space: normal; }
.rg-vy-press__text { display: flex; flex-direction: column; gap: 20px; }
.rg-vy-press__text > * { margin: 0; }
.rg-vy-bio { display: flex; flex-direction: column; gap: 16px; padding: 28px; border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-l); background: var(--wp--preset--color--surface); }
.rg-vy-bio > *, .rg-vy-bio__item > * { margin: 0; }
.rg-vy-bio__head { color: var(--wp--preset--color--fg); }
.rg-vy-bio__item { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.rg-vy-bio__text { line-height: 1.6; }
.rg-vy-copy { margin-top: 4px; padding: 0; border: 0; background: none; font: inherit; font-size: 14px; font-weight: 600; color: var(--wp--custom--accent-fg); cursor: pointer; }
@media (hover: hover) { .rg-vy-copy:hover { color: var(--wp--preset--color--electric); } }
.rg-vy-copy.is-done { color: var(--wp--preset--color--ok); }
/* Готовое сообщение в материале (21.10.2026, «Как включить папу»): карточка с подписью «когда отправлять»,
   текстом и кнопкой «Скопировать» (theme.js, раздел N). Абзацы внутри перебивают правило тела (0,2,1). */
.rg-entry__content .rg-msg { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px; border-radius: var(--wp--custom--radius-m); background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); }
.rg-entry__content .rg-msg > * { margin: 0; }
.rg-entry__content .rg-msg p.rg-msg__label { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--custom--accent-fg); }
.rg-entry__content .rg-msg p.rg-msg__text { padding-left: 14px; border-left: 3px solid var(--wp--preset--color--tint); }
.rg-entry__content .rg-msg .rg-vy-copy { align-self: flex-start; }
.rg-vy-sign { display: flex; flex-direction: column; gap: 14px; padding: 22px 24px; border-radius: var(--wp--custom--radius-l); background: var(--wp--preset--color--tint); }
.rg-vy-sign > *, .rg-vy-sign__item > * { margin: 0; }
.rg-vy-sign__item { display: flex; flex-direction: column; gap: 2px; }
.rg-vy-sign__k { font-size: 14px; line-height: 1.5; color: var(--wp--preset--color--text-2); }
.rg-vy-sign__v { font-size: 17px; font-weight: 700; line-height: 1.4; }
@media (max-width: 599px) { .rg-vy-bio { padding: 20px; border-radius: var(--wp--custom--radius-m); } }

.rg-vy-faq__list { display: flex; flex-direction: column; }
.rg-vy-faq__list > * { margin: 0; }
.rg-vy-faq__item { padding: 20px 0; border-top: 1px solid var(--wp--preset--color--border); }
.rg-vy-faq__item:last-child { border-bottom: 1px solid var(--wp--preset--color--border); }
.rg-vy-faq__item > summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; font-size: 18px; font-weight: 700; line-height: 1.35; }
.rg-vy-faq__item > summary::-webkit-details-marker { display: none; }
.rg-vy-faq__item > summary::after { content: ""; flex: none; width: 8px; height: 8px; border-right: 1.75px solid currentColor; border-bottom: 1.75px solid currentColor; transform: rotate(45deg); margin: -4px 4px 0 0; color: var(--wp--preset--color--text-2); transition: transform .15s ease-out; }
.rg-vy-faq__item[open] > summary::after { transform: rotate(225deg); margin-top: 4px; }
.rg-vy-faq__item > :not(summary) { margin: 12px 0 0; max-width: 760px; color: var(--wp--preset--color--text-2); line-height: 1.55; }
@media (max-width: 599px) { .rg-vy-faq__item > summary { font-size: 17px; } }
