/* pbn-enhance.css — дополнения к style.css макета proviant-cafe.ru под токен-движок BablO$.
   Статичная часть: сид страниц (bin/pbn/proviant-cafe_2_pages.php) копирует этот файл в
   public/sites/proviant-cafe-ru/assets/css/pbn-enhance.css и дописывает в конец маски иконок
   i.icon[data-ic="<ключ>"]{--ic:url("data:image/svg+xml,…")}. Только переменные и классы макета; своих классов нет —
   кроме служебных классов движка (.bf-msg, .pdo-*) и атрибутов схемы (data-ic, data-rating, data-prose). */

/* Иконки в строках MIGX (почему мы, шаги брони, условия меню, предложения кухни/зала): значения MIGX экранируются,
   SVG туда нельзя. В строке — ключ icon() макета в data-ic, форма — маской из того же SVG (маски дописывает сид
   страниц), цвет — currentColor обёртки (.why-us__icon, .info-block__icon — var(--color-accent)). Класс — .icon,
   тот же, что у <svg> icon() макета; display:block — как у svg по сбросу макета (img, svg {display:block}) */
i.icon[data-ic]{display:block;flex-shrink:0;background-color:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}

/* Условные блоки макета (if/?: в его PHP): пустое значение — блока нет. Плашка блюда у позиций прежнего меню
   бывает пустой; лид — у страниц без лида */
.card__badge:empty,.pill:empty,.lede:empty{display:none}

/* Звёзды render_stars() макета: закрашено round(оценки) из пяти (.stars__item--filled — цвет горчицы). В строке MIGX
   цикла нет: чанк рисует пять закрашенных, лишние гасит цветом незакрашенной звезды (.stars — var(--color-cream-border))
   по data-rating. Пустая оценка (отзыв без оценки) — звёзд нет, пятёрку не выдумываем */
.stars[data-rating="0"] .stars__item,
.stars[data-rating="1"] .stars__item:nth-child(n+2),
.stars[data-rating="2"] .stars__item:nth-child(n+3),
.stars[data-rating="3"] .stars__item:nth-child(n+4),
.stars[data-rating="4"] .stars__item:nth-child(n+5){color:var(--color-cream-border)}
.stars[data-rating=""]{display:none}

/* Секции, которых у макета нет без данных: «Похожие блюда» (if ($related)), карусель команды (if ($carouselPeople)),
   пустая категория меню (if (!$catDishes) continue), пустые «Предложения»/«Особенности» кухни или зала. Вызов списка
   в разметке стоит вплотную к тегам — пустой список даёт настоящий :empty */
.section--card:has(> .container > .cards-grid:empty){display:none}
.portrait-section:has(.portrait-carousel__media:empty){display:none}
.menu-category:has(> .cards-grid:empty){display:none}
.info-blocks:empty{display:none}
.mt-xl:has(> .bullet-list:empty){display:none}

/* Текст страницы (поле «Текст», в т. ч. перенесённый с прежнего сайта): блока статьи у макета нет — текст стоит в
   своей секции (.container[data-prose]) или блоке колонки ([data-prose] на блюде и кухне/зале). Пустой текст — блока
   нет. Сброс макета снимает маркеры и отступы списков — возвращаем; картинки, видео и таблицы — в размерах колонки */
[data-prose]:empty{display:none}
.section:has(> .container[data-prose]:empty){display:none}
[data-prose] > :is(p,ul,ol,h2,h3,h4,blockquote,table){max-width:760px}
[data-prose] h2,[data-prose] h3,[data-prose] h4{margin-top:1.4em}
[data-prose] > :first-child{margin-top:0}
[data-prose] p,[data-prose] li{color:var(--color-ink-soft)}
[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{color:var(--color-accent);text-decoration:underline}
[data-prose] a:hover{color:var(--color-accent-dark)}
[data-prose] blockquote{margin:0 0 1em;padding:4px 0 4px 20px;border-left:3px solid var(--color-accent)}
[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}
[data-prose] td,[data-prose] th{padding:10px 14px;border:1px solid var(--color-cream-border);vertical-align:top;text-align:left}
[data-prose] th{background:var(--color-cream-card);font-weight:600}
@media (max-width: 640px){[data-prose] table{display:block;overflow-x:auto}}

/* Лента статей: пустой раздел — абзац-сообщение вместо сетки (он стоит сразу за .cards-grid только в ленте) */
.cards-grid:not(:empty) + .lede{display:none}

/* Пагинация движка (&paginate: кнопки с инлайн-стилями дописываются ВНУТРЬ сетки карточек) — на всю ширину сетки,
   в стиле табов макета (.tabs__btn: пилюля, кремовая карточка, активная — терракота) */
.cards-grid > .pdo-pagenav{grid-column:1 / -1}
.pdo-pagenav{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important;margin:8px 0 0!important}
.pdo-pagenav .pdo-pagebtn{display:inline-flex!important;align-items:center;justify-content:center;min-width:42px;padding:10px 16px!important;border:1.5px solid var(--color-cream-border)!important;border-radius:var(--radius-pill)!important;background:var(--color-cream-card)!important;color:var(--color-ink)!important;font-family:var(--font-body);font-size:14px;font-weight:500;cursor:pointer}
.pdo-pagenav .pdo-pagebtn:hover{border-color:var(--color-accent)!important}
.pdo-pagenav .pdo-pagebtn.active{background:var(--color-accent)!important;border-color:var(--color-accent)!important;color:var(--color-accent-text)!important}
.pdo-pagenav .pdo-pagebtn[disabled]{opacity:.4;cursor:default}

/* Ответ формы движка ([[+msg]] перед полями) — вместо .form-success демо-обработчика макета (его вызов вырезан из
   main.js): тон .form-note, успех — оливковым шага макета, ошибка — тёмной терракотой */
.bf-msg{margin:0 0 18px;font-size:15px;font-weight:600;color:var(--color-step-olive)}
.bf-msg.bf-err{color:var(--color-accent-dark)}

/* Маски иконок i.icon[data-ic="<ключ>"] по icon() макета — дописывает bin/pbn/proviant-cafe_2_pages.php при каждом
   прогоне. Файл перезаписывается целиком: статичную часть правьте в bin/pbn/data/proviant-cafe/pbn-enhance.css */
i.icon[data-ic="award"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%225%22%2F%3E%3Cpath%20d%3D%22m8.5%2012.5-1.5%208%205-2.5%205%202.5-1.5-8%22%2F%3E%3C%2Fsvg%3E")}
i.icon[data-ic="calendar"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%209h18M8%202v4M16%202v4%22%2F%3E%3C%2Fsvg%3E")}
i.icon[data-ic="check-circle"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22m8%2012%202.5%202.5L16%209%22%2F%3E%3C%2Fsvg%3E")}
i.icon[data-ic="chef-hat"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%2010.5A3.5%203.5%200%200%201%209.7%205c.4-1.7%201.9-3%203.8-3s3.4%201.3%203.8%203c.3-.1.6-.1.9-.1a3.5%203.5%200%200%201%201.3%206.8V17H7v-6.5Z%22%2F%3E%3Cpath%20d%3D%22M7%2020h10M8%2017v3M16%2017v3%22%2F%3E%3C%2Fsvg%3E")}
i.icon[data-ic="clock"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v5l3.5%202%22%2F%3E%3C%2Fsvg%3E")}
i.icon[data-ic="leaf"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2020c8%200%2016-6%2016-16-10%200-16%208-16%2016Z%22%2F%3E%3Cpath%20d%3D%22M4%2020c0-4%202-8%206-11%22%2F%3E%3C%2Fsvg%3E")}
i.icon[data-ic="phone"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6.6%2010.8c1.4%202.8%203.8%205.2%206.6%206.6l2.2-2.2c.3-.3.7-.4%201-.2%201.1.4%202.3.6%203.6.6.6%200%201%20.4%201%201V20c0%20.6-.4%201-1%201C11.6%2021%203%2012.4%203%202c0-.6.4-1%201-1h3.4c.6%200%201%20.4%201%201%200%201.3.2%202.5.6%203.6.1.4%200%20.8-.2%201L6.6%2010.8Z%22%2F%3E%3C%2Fsvg%3E")}
i.icon[data-ic="shield"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%202%204%205v6c0%205%203.4%208.7%208%2010%204.6-1.3%208-5%208-10V5l-8-3Z%22%2F%3E%3Cpath%20d%3D%22m8.5%2012%202.3%202.3L15.5%209%22%2F%3E%3C%2Fsvg%3E")}
i.icon[data-ic="tag"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203h6a2%202%200%200%201%202%202v6l-9%209-8-8%209-9Z%22%2F%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%227%22%20r%3D%221.5%22%2F%3E%3C%2Fsvg%3E")}
i.icon[data-ic="users"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M2%2020c0-3.3%203-6%207-6s7%202.7%207%206%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%229%22%20r%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M16%2014c2.8.3%205%202.5%205%206%22%2F%3E%3C%2Fsvg%3E")}
