/* pbn-enhance.css — дополнения к style.css макета kollegia-uristov.ru под токен-движок BablO$.
   Статичная часть: сид страниц (bin/pbn/kollegia-uristov_2_pages.php) копирует этот файл в
   public/sites/kollegia-uristov-ru/assets/css/pbn-enhance.css и дописывает в конец маски иконок.
   Только переменные и классы макета; новых классов нет — кроме служебных классов движка (.bf-msg, .pdo-*),
   класса иконки-маски .ic и мегаменю «Услуги» (модификаторы --mega/--group, .mega-group*, .submenu__foot,
   .mobile-nav__group-link, .mobile-nav__leaves — мегаменю в макете нет, правила в конце файла). */

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

/* Условные блоки макета (if в его PHP): пустое значение — блока нет.
   Лид героя ($heroLead), текст карточек и направлений, SEO-текст и лиды секций без значения */
.page-hero__lead:empty,.hero-main__lead:empty,.hero-main__note-text:empty,.section__lead:empty,
.num-grid__num:empty,.num-grid__text:empty,.news-card__excerpt:empty,.news-card__cat:empty,
.price-card__list:empty,.quote:empty{display:none}
.seo-text:has(.prose:empty){display:none}
/* карточка цены услуги — только если у услуги есть цена («от 25 000 ₽» макета) */
.price-card:has(> .price-card__value:empty){display:none}
/* пункты практики — три фиксированные колонки MIGX (tasks макета); пустой пункт не выводится */
.practice-card__tasks li:has(> span:empty){display:none}
/* мета статьи: у записей прежнего сайта может не быть рубрики или времени чтения — пустой пункт не рисуем */
.article-meta__item:has(> strong:empty),.article-meta__item:has(> time:empty){display:none}

/* Рубрики над лентой: первая вкладка «Все …» есть всегда, поэтому блок прячется, когда рубрик нет */
.news-categories:not(:has(.filter-chip + .filter-chip)){display:none}
/* Лента: пустая рубрика — сообщение вместо сетки карточек */
.news-section .cards-grid + .muted{display:none}
.news-section .cards-grid:empty + .muted{display:block}

/* Ответ формы движка — как .form__status макета (цвета успеха и ошибки — его же) */
.bf-msg{margin:0;font-family:var(--font-ui);font-size:var(--fs-small);min-height:18px}
.bf-msg.bf-ok{color:var(--brand)}
.form--dark .bf-msg.bf-ok{color:var(--accent)}
.bf-msg.bf-err{color:#B4341C}
.form--dark .bf-msg.bf-err{color:#FFB4A2}

/* Пагинация движка (кнопки с инлайн-стилями) — в стиле .pagination / .pagination__link макета;
   кнопки встают внутрь сетки карточек и реестра дел — на всю ширину сетки */
.cards-grid > .pdo-pagenav,.trial-list > .pdo-pagenav{grid-column:1 / -1}
.pdo-pagenav{display:flex!important;flex-wrap:wrap!important;gap:6px!important;align-items:center!important;margin:var(--sp-5) 0 0!important;padding-top:var(--sp-3);border-top:1px solid var(--border)}
.pdo-pagenav .pdo-pagebtn{display:inline-flex!important;align-items:center;justify-content:center;min-width:40px!important;height:40px!important;padding:0 10px!important;border:1px solid var(--border)!important;border-radius:var(--r-sm)!important;background:transparent!important;font-family:var(--font-ui);font-size:var(--fs-ui);font-weight:500;color:var(--ink)!important;font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.pdo-pagenav .pdo-pagebtn:hover{background:var(--brand)!important;border-color:var(--brand)!important;color:var(--base)!important}
.pdo-pagenav .pdo-pagebtn.active{background:var(--ink)!important;border-color:var(--ink)!important;color:var(--base)!important}
.pdo-pagenav .pdo-pagebtn[disabled]{opacity:.4;cursor:default}

/* Тексты, перенесённые с прежнего сайта (.prose статьи, услуги и текстовой страницы): картинки, видео, таблицы */
.prose img{max-width:100%;height:auto;border-radius:var(--r-sm)}
.prose iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;margin:0 0 1.2em}
.prose table{width:100%;border-collapse:collapse;margin:0 0 1.2em;font-size:15px}
.prose td,.prose th{padding:10px 12px;border:1px solid var(--border);vertical-align:top;text-align:left}
.prose th{background:var(--surface);color:var(--ink);font-weight:600}
/* Строка прайса макета на телефоне: самое длинное слово услуги («медосвидетельствования»), цена без переноса и кнопка
   с зазорами 16px выходили на 2px за колонку (/services/, /pictures/ при 375). Зазоры — 8px; слово длиннее колонки
   (узкий телефон, новая услуга) переносится, а не раздвигает страницу */
@media (max-width: 479px) {
  .catalog__row{gap:var(--sp-1)}
  .catalog__name{min-width:0;overflow-wrap:anywhere}
}
/* Таблицы цен прежнего сайта (5 колонок) шире телефона: у одноколоночной сетки статьи макета колонка 1fr, и её
   распирала ширина таблицы — правый край («Стоимость») уходил под overflow-x:hidden body. Колонке — minmax(0,1fr),
   как у двухколоночной сетки макета от 1024, а таблица на телефоне листается сама, страница — нет */
@media (max-width: 1023px) {
  .article-layout{grid-template-columns:minmax(0,1fr)}
}
@media (max-width: 767px) {
  .prose table{display:block;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
}

/* Отзывы без сканов благодарностей (просьба владельца убрать из отзывов SVG-изображения letter-*.svg): карточка
   review-card.php макета держалась на скане в рамке — без него это рамка карточки практики макета (.practice-card)
   с жёлтой линией-акцентом вместо фирменной: текст с первой строки, автор и дело прижаты к низу */
.review-card{background:var(--base);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--r-sm);padding:var(--sp-3)}
.section:not(.section--surface) .review-card{background:var(--surface)}
.review-card__text{margin-top:0}

/* Мегаменю «Услуги» (просьба владельца): весь каталог услуг группами, подписи — поле «Пункт меню». Макетный
   .submenu выпадает от пункта шириной 520–560px — мегаменю раскрыто во всю строку меню: пункт static, отсчёт панели —
   от .main-nav. Верх панели совпадает с низом пункта (строка меню одна, пункты одной высоты) — зазора, в котором
   курсор по дороге к панели терял бы :hover пункта, нет. Группы не рвутся между колонками (break-inside макета у li) */
@media (min-width: 1024px) {
  .main-nav{position:relative}
  .main-nav__item--mega{position:static}
  /* 1024–1279: четыре колонки и плотные отступы — панель укладывается в экран 1024×768 без своей прокрутки.
     Заголовки групп 14px (как пункты) и колонки не уже ~215px: самый длинный заголовок первого ряда («Независимая
     автоэкспертиза», 208px) встаёт в одну строку — иначе линии под заголовками первого ряда стояли на разной высоте */
  .submenu.submenu--mega{left:0;right:0;min-width:0;padding:var(--sp-3) var(--sp-3) var(--sp-2);
    max-height:calc(100vh - var(--header-top-h) - var(--header-nav-h));overflow-y:auto;overscroll-behavior:contain}
  .submenu__list--mega{columns:4;column-gap:var(--sp-2)}
  .submenu__list--mega > li{margin-bottom:20px}
  .submenu__list .mega-group__title{display:block;padding-bottom:8px;margin-bottom:6px;border-bottom:1px solid var(--border);font-size:14px;font-weight:600}
  .mega-group__list li,.mega-group__sub li{margin-bottom:0}
  .mega-group__list a{display:inline-block;padding:3px 0;font-size:14px;color:var(--body)}
  .mega-group__sub{margin:2px 0 6px;padding-left:12px;border-left:1px solid var(--border)}
  .submenu__foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-4);padding-top:var(--sp-2);border-top:1px solid var(--border)}
}
@media (min-width: 1280px) {
  .submenu.submenu--mega{padding:var(--sp-4) var(--sp-4) var(--sp-3)}
  .submenu__list--mega{column-gap:var(--sp-4)}
  .submenu__list--mega > li{margin-bottom:var(--sp-3)}
  .mega-group__list a{padding:4px 0}
  .submenu__foot{padding-top:var(--sp-3)}
}
/* пять колонок — только от 1440: при 1280–1439 колонка пятиколоночной панели ~205px, и заголовки «Возврат водительских
   прав», «Независимая автоэкспертиза» переносились на вторую строку */
@media (min-width: 1440px) {
  .submenu__list--mega{columns:5}
}

/* Мобильная версия мегаменю — вложенный аккордеон макета: группа — пункт со своей кнопкой .mobile-nav__toggle
   и списком .mobile-nav__sub (их раскрывает main.js), подпункты подпунктов — отступом с линией, как .mobile-nav__sub */
.mobile-nav__item--group{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 12px;border-bottom:0}
.mobile-nav__sub .mobile-nav__group-link{flex:1 1 0;min-width:0;font-weight:600;color:var(--ink)}
.mobile-nav__item--group > .mobile-nav__toggle{width:32px;height:32px}
.mobile-nav__item--group > .mobile-nav__sub{flex:0 0 100%;padding:0 0 8px 16px}
.mobile-nav__leaves{padding-left:16px}

/* Ссылка внутри заголовка промо-ячейки «Наша специализация»: на зелёной плашке ссылка должна наследовать
   белый цвет заголовка, иначе она становится зелёной на зелёном и пропадает. */
.num-grid__cell--promo .num-grid__promo-title a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.num-grid__cell--promo .num-grid__promo-title a:hover{color:var(--accent)}
.num-grid__cell--promo .num-grid__promo-title a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* Маски иконок строк MIGX — дописывает bin/pbn/kollegia-uristov_2_pages.php */
i.ic--chat{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%2011.2c0%202.5-2.6%204.5-6%204.5-.9%200-1.7-.1-2.5-.4l-3.6%201.2%201.2-2.8A4.6%204.6%200%200%201%205%2011.2c0-2.5%202.7-4.5%206-4.5s6%202%206%204.5Z%22%2F%3E%3Cpath%20d%3D%22M5.2%208.3C4.5%207.7%204%206.9%204%206c0-2%202.5-3.5%205.5-3.5S15%204%2015%206%22%2F%3E%3C%2Fsvg%3E")}
i.ic--scales{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%203.5v13%22%2F%3E%3Cpath%20d%3D%22M5%206.5h10%22%2F%3E%3Cpath%20d%3D%22M6.5%206.8%204%2012.2h5L6.5%206.8Z%22%2F%3E%3Cpath%20d%3D%22M13.5%206.8%2011%2012.2h5l-2.5-5.4Z%22%2F%3E%3Cpath%20d%3D%22M7%2016.5h6%22%2F%3E%3C%2Fsvg%3E")}
i.ic--wallet{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225.25%22%20rx%3D%221.5%22%2F%3E%3Cpath%20d%3D%22M3%208.5h14%22%2F%3E%3Ccircle%20cx%3D%2213.6%22%20cy%3D%2211.6%22%20r%3D%221%22%2F%3E%3C%2Fsvg%3E")}
i.ic--people{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%228%22%20cy%3D%227.5%22%20r%3D%222.6%22%2F%3E%3Cpath%20d%3D%22M3.2%2016c0-2.5%202.1-4.2%204.8-4.2s4.8%201.7%204.8%204.2%22%2F%3E%3Cpath%20d%3D%22M13.4%205.4a2.6%202.6%200%200%201%20.5%205.1%22%2F%3E%3Cpath%20d%3D%22M14.4%2012.2c1.5.5%202.4%201.8%202.4%203.5%22%2F%3E%3C%2Fsvg%3E")}
i.ic--doc{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5.25%203.25h6l3.5%203.5v10h-9.5z%22%2F%3E%3Cpath%20d%3D%22M11%203.4v3.4h3.4%22%2F%3E%3Cpath%20d%3D%22M7.4%2010.2h5.2M7.4%2012.8h5.2%22%2F%3E%3C%2Fsvg%3E")}
i.ic--help{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227.25%22%2F%3E%3Cpath%20d%3D%22M8.2%208.1a1.85%201.85%200%201%201%202.5%201.8c-.5.2-.8.7-.8%201.3v.3%22%2F%3E%3Cpath%20d%3D%22M10%2014.1h.01%22%2F%3E%3C%2Fsvg%3E")}
