/* pbn-enhance.css — дополнения к style.css макета eda-dom.ru под токен-движок BablO$.
   Статичная часть: сид страниц (bin/pbn/eda-dom_2_pages.php) копирует этот файл в
   public/sites/eda-dom-ru/assets/css/pbn-enhance.css как есть. Иконок в строках MIGX у схемы нет — масок не нужно.
   Только переменные и классы макета; своих классов нет — кроме служебных классов движка (.pdo-*) и атрибутов схемы
   (data-rating, data-prose). */

/* Условные блоки макета (if/?: в его PHP): пустое значение — элемента нет. Старая цена и плашка «Акция» — только у
   позиций со скидкой (у макета оба выводятся при непустом 'old'); пустые лиды, подзаголовки и текстовые блоки */
.hero__price-old:empty,.hero__badge:empty,.product-card__price-old:empty,.product-detail__price-old:empty{display:none}
.product-card:has(.product-card__price-old:empty) .product-card__badge{display:none}
.text-muted:empty,.content-block:empty,.hero__subtitle:empty,.section__head p:empty,.footer__about:empty{display:none}
.photo-caption figcaption:empty{display:none}

/* Пустые наборы. Вызов списка в разметке стоит вплотную к тегам — пустой список даёт настоящий :empty.
   Пилюли подборок (нет строк — полосы нет); сетки карточек: пустая категория и пустая лента — абзац .product-grid-empty
   макета (у макета он выводится ВМЕСТО сетки, здесь стоит сразу за ней и прячется, когда сетка не пуста); у «Хитов
   продаж» и «С этим заказывают» абзаца нет (у макета они никогда не пусты — добор из других категорий) — пустая
   сетка прячет всю секцию */
.promo-pills:has(.promo-pills__list:empty){display:none}
.product-grid:empty,.category-grid:empty{display:none}
.product-grid:not(:empty) + .product-grid-empty,.category-grid:not(:empty) + .product-grid-empty{display:none}
.product-grid-section:not(:has(.product-grid-empty)):has(.product-grid:empty){display:none}

/* Раскрывающийся текст главной (поле «Текст»): пустой — секции нет. Текст прежнего сайта длиннее четырёх абзацев
   макета, а раскрытый блок у макета ограничен max-height 2000px — длинный текст обрезался бы */
.section:has(.expand-block__content:empty){display:none}
.expand-block__content.is-open{max-height:none}

/* Секция «Текст» (ch_text): пустой текст — секции нет. Только когда текстовый блок — единственный в контейнере: у
   «Доставки и оплаты», «О нас», статьи и текстовой страницы он соседствует с H1 и другими блоками */
.section:has(> .container > .content-block[data-prose]:only-child:empty){display:none}

/* Звёзды отзыва: у макета незакрашенная звезда — <span class="icon--empty"> (цвет --c-line). В строке MIGX цикла нет:
   чанк рисует пять звёзд, лишние гасит этим же цветом по data-rating. Пустая оценка — звёзд нет */
.review-card__stars[data-rating="0"] > span,
.review-card__stars[data-rating="1"] > span:nth-child(n+2),
.review-card__stars[data-rating="2"] > span:nth-child(n+3),
.review-card__stars[data-rating="3"] > span:nth-child(n+4),
.review-card__stars[data-rating="4"] > span:nth-child(n+5){color:var(--c-line)}
.review-card__stars[data-rating=""]{display:none}

/* Текст страницы (поле «Текст», в т. ч. перенесённый с прежнего сайта): сброс макета снимает маркеры и отступы
   списков — возвращаем; ссылки — цветом ссылок макета; картинки, видео и таблицы — в ширину колонки */
[data-prose] > :first-child{margin-top:0}
[data-prose] h2,[data-prose] h3,[data-prose] h4{margin-top:1.4em}
[data-prose] ul,[data-prose] ol{margin:0 0 1em;padding-left:1.4em}
[data-prose] ul{list-style:disc}
[data-prose] ol{list-style:decimal}
[data-prose] li + li{margin-top:.35em}
[data-prose] a,.expand-block__content a{color:var(--c-link);text-decoration:underline}
[data-prose] a:hover,.expand-block__content a:hover{color:var(--c-navy)}
[data-prose] blockquote{margin:0 0 1em;padding:4px 0 4px 20px;border-left:3px solid var(--c-grad-end);color:var(--c-navy-soft)}
[data-prose] img{height:auto;border-radius:var(--radius-card);margin:0 0 1em}
[data-prose] iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:var(--radius-card);margin:0 0 1em}
[data-prose] table{width:100%;border-collapse:collapse;margin:0 0 1.2em;font-size:14.5px;background:var(--c-white)}
[data-prose] td,[data-prose] th{padding:10px 14px;border:1px solid var(--c-line);vertical-align:top;text-align:left}
[data-prose] th{background:var(--c-pastel-sky);font-weight:700}
@media (max-width: 640px){[data-prose] table{display:block;overflow-x:auto}}

/* Пагинация движка (&paginate: кнопки с инлайн-стилями дописываются ВНУТРЬ сетки карточек) — на всю ширину сетки,
   в стиле пилюль-подборок макета (.promo-pills__list a: белая пилюля с рамкой, активная — градиент) */
.product-grid > .pdo-pagenav,.category-grid > .pdo-pagenav{grid-column:1 / -1}
.pdo-pagenav{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:10px!important;margin:8px 0 0!important}
.pdo-pagenav .pdo-pagebtn{display:inline-flex!important;align-items:center;justify-content:center;min-width:44px;padding:10px 18px!important;border:1.5px solid var(--c-line)!important;border-radius:var(--radius-pill)!important;background:var(--c-white)!important;color:var(--c-navy)!important;font-family:var(--font-heading);font-size:14px;font-weight:700;box-shadow:var(--shadow-card);cursor:pointer}
.pdo-pagenav .pdo-pagebtn:hover{border-color:var(--c-grad-end)!important}
.pdo-pagenav .pdo-pagebtn.active{background:var(--grad-primary)!important;border-color:transparent!important;color:#fff!important}
.pdo-pagenav .pdo-pagebtn[disabled]{opacity:.4;cursor:default}
