/* pbn-enhance.css — дополнения к style.css макета avtotranskont.ru под токен-движок BablO$.
   Статичная часть: сид страниц (bin/pbn/avtotranskont_2_pages.php) копирует этот файл в
   public/sites/avtotranskont-ru/assets/css/pbn-enhance.css и дописывает в конец маски иконок.
   Только переменные и классы макета; своих классов нет — кроме служебных классов движка
   (.bf-msg, .bf-err, .pdo-pagenav, .pdo-pagebtn, .active). */

/* Иконки строк MIGX (преимущества главной, «Полезные материалы»): значения MIGX экранируются, SVG туда нельзя.
   В строке — ключ: <i data-ic="<ключ>"> без класса (у макета нет подходящего), форма — маской
   i[data-ic="<ключ>"]{--ic:url("data:image/svg+xml,…")} из того же SVG, что рисует icon() макета (маски по ключам
   дописывает сид страниц), цвет — currentColor обёртки (.advantage-card__icon, .article-card__icon — акцент).
   display:block — как у svg в сбросе макета (svg {display:block}) */
i[data-ic]{display:block;flex:0 0 auto;background-color:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}

/* Условные блоки: пустое значение — блока нет (подзаголовок героя, дата статьи) */
.hero__subtitle:empty,.legal-text .section-lead:empty{display:none}

/* «Текст» страницы (поле, куда пишет воркфлоу генерации и перенос с живого сайта): [[*content]] стоит вплотную
   к тегам контейнера, поэтому пустой «Текст» даёт пустой .container — секции нет, иначе пустая полоса с
   отступами main > section. У статьи в контейнере есть строка даты — её секцию правило не трогает */
.legal-text:has(> .container:empty),.services-intro:has(> .container:empty){display:none}

/* Тексты из админки в колонках макета: у макета сброшены отступы заголовков (h1–h6 {margin:0}) и маркеры
   списков (ul, ol {list-style:none}) — в перенесённых и сгенерированных текстах они нужны */
.legal-text h2,.legal-text h3,.services-intro h2,.services-intro h3,.about-text__content h2,.about-text__content h3{margin:1.4em 0 .6em}
.legal-text h2:first-child,.services-intro h2:first-child,.about-text__content h2:first-child{margin-top:0}
.legal-text h2,.services-intro h2,.about-text__content h2{font-size:clamp(22px,2vw,28px)}
.legal-text h3,.services-intro h3,.about-text__content h3{font-size:19px}
.legal-text ul,.services-intro ul,.about-text__content ul{list-style:disc;padding-left:1.4em;margin:0 0 18px}
.legal-text ol,.services-intro ol,.about-text__content ol{list-style:decimal;padding-left:1.4em;margin:0 0 18px}
.legal-text li,.services-intro li,.about-text__content li{color:var(--color-text-muted);margin-bottom:6px}
.legal-text img,.services-intro img,.about-text__content img{height:auto;border-radius:var(--radius-card);margin:1.2em 0}
.legal-text iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:var(--radius-card);margin:1.4em 0}
.legal-text table{display:block;overflow-x:auto;border-collapse:collapse;margin:0 0 18px;font-size:14px}
.legal-text th,.legal-text td{border:1px solid var(--color-border);padding:8px 12px;text-align:left}

/* Ссылка на страницу услуги в заголовке карточки (у макета карточки без своих страниц): цвет — как у текста
   вокруг (a {color:inherit} макета), наведение — как у .link-arrow; то же у заголовка карточки статьи */
.service-card__title a:hover,.service-card__title a:focus-visible,.article-card__title a:hover,.article-card__title a:focus-visible{color:var(--color-accent)}

/* Ответ формы движка стоит первым в форме (калькулятор, заявка): у макета плашки ответа нет — цвета его
   бейджей .badge--success / .badge--status; скрытое состояние держит [hidden]{display:none!important} style.css */
.calculator__form .bf-msg,.contacts-form .bf-msg{display:block;background:var(--color-success-bg);color:var(--color-success-text);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:16px;font-size:14px;font-weight:600}
.calculator__form .bf-msg.bf-err,.contacts-form .bf-msg.bf-err{background:var(--color-badge-bg);color:var(--color-badge-text)}

/* Лента статей: движок ставит навигацию листания последним элементом списка .articles-grid — растягиваем её на
   всю ширину сетки. Пустая лента — абзац .section-lead за списком (у непустой он скрыт) */
.articles-grid > .pdo-pagenav{grid-column:1/-1}
.articles-grid:not(:empty) + .section-lead{display:none}

/* Пагинация движка (кнопки с инлайн-стилями, поэтому !important) — в тоне кнопок фильтра марок .brand-filter__btn */
.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;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 14px!important;border:1px solid var(--color-chip-border)!important;border-radius:var(--radius-pill)!important;background:#fff!important;color:var(--color-text)!important;font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}
.pdo-pagenav .pdo-pagebtn:hover{border-color:var(--color-dark)!important}
.pdo-pagenav .pdo-pagebtn.active{background:var(--color-dark)!important;border-color:var(--color-dark)!important;color:#fff!important}
.pdo-pagenav .pdo-pagebtn[disabled]{opacity:.4;cursor:default}

/* Маски иконок i[data-ic="<ключ>"] по icon() макета — дописывает bin/pbn/avtotranskont_2_pages.php при каждом прогоне.
   Этот файл перезаписывается целиком: правьте статичную часть в bin/pbn/data/avtotranskont/pbn-enhance.css */
i[data-ic="route"]{--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%3E%3Ccircle%20cx%3D%225.5%22%20cy%3D%226%22%20r%3D%222.2%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%2F%3E%3Ccircle%20cx%3D%2218.5%22%20cy%3D%2218%22%20r%3D%222.2%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%2F%3E%3Cpath%20d%3D%22M5.5%208.2v4.3a3%203%200%20003%203h5a3%203%200%20013%203%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E")}
i[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%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20rx%3D%222.3%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M3%209.5h18M8%203v4M16%203v4%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E")}
i[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%3E%3Cpath%20d%3D%22M12%203l7%202.7v5.4c0%205-3%208.6-7%2010-4-1.4-7-5-7-10V5.7z%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M8.5%2012.2l2.5%202.5%204.5-4.8%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E")}
i[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%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229.2%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M12%207v5.3l3.6%202.1%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="document"]{--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%3E%3Cpath%20d%3D%22M6%202.8h8.4L19%207.4V21a1%201%200%2001-1%201H6a1%201%200%2001-1-1V3.8a1%201%200%20011-1z%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M14%202.8V7.4h5%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M8%2012h8M8%2015.5h8M8%208.5h3%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="coins"]{--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%3E%3Cellipse%20cx%3D%229%22%20cy%3D%228%22%20rx%3D%226.2%22%20ry%3D%223%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%2F%3E%3Cpath%20d%3D%22M2.8%208v4c0%201.7%202.8%203%206.2%203s6.2-1.3%206.2-3V8%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M2.8%2012v4c0%201.7%202.8%203%206.2%203%202.2%200%204.1-.5%205.3-1.4%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%2F%3E%3Cellipse%20cx%3D%2217.5%22%20cy%3D%2213.2%22%20rx%3D%224.3%22%20ry%3D%222.1%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.4%22%2F%3E%3C%2Fsvg%3E")}
/* phone modal */
.modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; }
.modal[hidden] { display: none; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.55); }
.modal__dialog { position: relative; background: #fff; border-radius: 12px; padding: 24px; max-width: 420px; width: calc(100% - 32px); max-height: 90vh; overflow: auto; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.modal__close { position: absolute; top: 8px; right: 12px; border: 0; background: transparent; font-size: 24px; cursor: pointer; }
.modal__title { margin: 0 0 8px; }
.modal__lead { margin: 0 0 16px; color: #555; }
