/* Вся психология — дополнения к style.css макета, без которых интеграция в BablO$ не собирается 1:1.
   Статичная часть — этот файл (bin/pbn/data/vsya-psihologiya-rf/pbn-enhance.css, пишется вместе со схемой
   bin/pbn/vsya-psihologiya-rf_1_schema.php). Сид страниц bin/pbn/vsya-psihologiya-rf_2_pages.php копирует его КАК ЕСТЬ
   в public/sites/vsya-psihologiya-rf/assets/css/pbn-enhance.css. Масок иконок дописывать не нужно: иконки макета
   стоят в чанках (SVG), в значениях строк MIGX их нет. Правило файла: только переменные, классы и id макета (плюс
   классы, которые рисует сам движок: .bf-msg/.bf-ok/.bf-err, .pdo-pagenav/.pdo-pagebtn); руками в public/ не
   править — перезапишется. */

/* ── Условные блоки макета (if в его PHP): пустое значение — блока нет. Токен в чанках стоит вплотную к тегам,
      иначе пробелы не дали бы сработать :empty ── */
/* описание под H1 (rubrika.php: $pageDescription), лид статьи первым абзацем ($article['excerpt'] — у живых
   записей он и есть первый абзац «Текста», поэтому TV пуст), подпись героя главной */
.page-title-intro__desc:empty,
.hero-lead__text:empty,
.article-body p:empty { display: none; }
/* «Текст» страницы (секция ch_sec_text): пусто — секции нет целиком */
.article-body:has(> .container:empty) { display: none; }
/* биография «О журнале» и списки без строк: комментариев ещё нет, теги не заданы, пунктов героя нет */
.bio-text:empty,
.comments__list:empty,
.tags-list:empty,
.hero-lead__list:empty,
.credentials-list ul:empty { display: none; }
/* у блока комментариев пустой список не должен оставлять отступ перед формой */
.comments__list:empty { margin-bottom: 0; }

/* ── «В этой рубрике пока нет статей» ($cardGridEmpty макета): у движка пустая выборка не выводит НИЧЕГО,
      поэтому строка .lede стоит в разметке всегда и гасится, когда сетка карточек непуста ── */
.article-card-grid:empty { display: none; }
.article-card-grid:not(:empty) + .lede { display: none; }

/* ── Листание лент: движок рисует свою навигацию (кнопки с инлайн-стилями) после карточек — причёсываем её
      под <nav class="pagination"> макета: пилюли 38px с рамкой --c-hairline, текущая — тёмная, недоступная —
      бледная. Сама навигация лежит внутри .article-card-grid (токен стоит там) — отдельной строкой на всю ширину ── */
.pdo-pagenav {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
  margin: 48px 0 0 !important;
}
.article-card-grid > .pdo-pagenav { grid-column: 1 / -1; }
.pdo-pagenav .pdo-pagebtn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px !important;
  border: 1px solid var(--c-hairline) !important;
  border-radius: var(--radius-btn) !important;
  background: var(--c-bg) !important;
  color: var(--c-body) !important;
  font-family: var(--f-sans);
  font-size: 14px;
  cursor: pointer;
}
.pdo-pagenav .pdo-pagebtn:hover,
.pdo-pagenav .pdo-pagebtn:focus-visible {
  border-color: var(--c-accent) !important;
  color: var(--c-accent) !important;
}
.pdo-pagenav .pdo-pagebtn.active {
  background: var(--c-ink) !important;
  border-color: var(--c-ink) !important;
  color: var(--c-white) !important;
}
.pdo-pagenav .pdo-pagebtn[disabled] {
  color: var(--c-hairline) !important;
  border-color: var(--c-hairline) !important;
  pointer-events: none;
}

/* ── Ответ формы комментария: движок выводит свой .bf-msg на месте p.comment-form__success макета ── */
.bf-msg {
  margin: 14px 0 0;
  padding: 12px 14px;
  border-left: 3px solid var(--c-accent);
  background: var(--c-bg-cream);
  color: var(--c-body);
  font-size: 15px;
}
.bf-err { border-left-color: var(--c-muted); }

/* ── Тексты страниц («Текст»: живые записи WordPress и будущая генерация) в .article-body макета. Макет стилизует
      только h2, p, ul и blockquote — у живых текстов есть ещё h3, нумерованные списки, ссылки, картинки, видео и
      таблицы. Значения — только переменные макета ── */
.article-body h3 {
  font-size: 20px;
  margin: 32px 0 12px;
}
.article-body ol {
  margin: 0 0 20px;
  padding-left: 22px;
  list-style: decimal;
}
.article-body ol li {
  font-size: 18px;
  line-height: 1.6;
  color: var(--c-body);
  margin-bottom: 10px;
}
.article-body a {
  color: var(--c-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.article-body img {
  height: auto;
  margin: 28px 0;
}
.article-body figure { margin: 28px 0; }
.article-body figcaption {
  font-size: 13px;
  color: var(--c-muted);
  margin-top: 10px;
}
.article-body iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 0;
  margin: 28px 0;
}
.article-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 24px;
}
.article-body th,
.article-body td {
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid var(--c-hairline);
  font-size: 15px;
}
.article-body th {
  font-weight: 700;
  color: var(--c-heading);
}
@media (max-width: 639px) {
  .article-body ol li { font-size: 16px; }
}
