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

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

/* Хлебные крошки своих правил не требуют: разделитель .hero-inner — параметром &outputSeparator, последний пункт —
   свой чанк (&tplLast: <span class="crumbs-current" aria-current> / <li aria-current>), как в макете. */

/* Условные блоки макета (if в его PHP): пустое значение — блока нет */
.hero-inner .kicker:empty,.hero-inner-lead:empty,.about-hero .overline:empty,.about-hero__lead:empty,
.article-meta__lead:empty,.service-lead__body p:empty,.section__lead:empty,.price-note:empty,
.contacts-split__note:empty,.contacts-split__map figcaption:empty,.filters:empty,.ratings:empty{display:none}
/* «Текст» страницы (секция .article-main с .article-body) пуст — секции нет */
.article-main:has(.article-body:empty){display:none}
/* лента: «материалов пока нет» — только когда в ленте нет ни одной записи (первая запись — плитка .featured-tile);
   в макете это сообщение показывал JS-фильтр рубрик */
.articles-page .container:has(> .featured-tile) > .filters__empty{display:none}

/* Чипы рубрик — ссылки на страницы рубрик (в макете — кнопки JS-фильтра): строчный <a> без inline-flex не держит
   min-height .filter-chip и выглядел бы ниже кнопок */
a.filter-chip{display:inline-flex;align-items:center}

/* Ответ формы движка — как .form-card__status макета */
.bf-msg{margin-top:16px;font-size:15px;line-height:1.5;color:var(--accent-ink)}

/* Пагинация движка (кнопки с инлайн-стилями) — в стиле .filter-chip / .filter-chip.is-on макета (своего пейджера
   у макета нет). display не трогаем: скрипт движка сам прячет навигацию, когда листать нечего */
.pdo-pagenav{gap:10px!important;margin:40px 0 0!important}
.article-grid > .pdo-pagenav{grid-column:1 / -1}
.pdo-pagenav .pdo-pagebtn{display:inline-flex!important;align-items:center;justify-content:center;min-width:40px!important;min-height:40px;padding:0 14px!important;border:1px solid var(--line)!important;border-radius:0!important;background:var(--surface)!important;color:var(--text)!important;font-family:var(--font);font-size:15px;font-weight:500;cursor:pointer;transition:background-color var(--t) ease,border-color var(--t) ease,color var(--t) ease}
.pdo-pagenav .pdo-pagebtn:hover{border-color:var(--accent)!important;color:var(--accent-ink)!important}
.pdo-pagenav .pdo-pagebtn.active{background:var(--accent-ink)!important;border-color:var(--accent-ink)!important;color:#FFFFFF!important}
.pdo-pagenav .pdo-pagebtn[disabled]{opacity:.4;cursor:default}

/* Тексты с прежнего сайта (.article-body статьи, направления, рубрики, текстовой страницы): картинки, видео, таблицы
   и списки из старой вёрстки Joomla. Сброс макета снимает маркеры у всех ul/ol, а оформленные списки макета
   (.marker-list, .check-list) несут свой класс — поэтому правила только для списков и таблиц БЕЗ класса */
.article-body img{max-width:100%;height:auto;margin-top:16px}
.article-body iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;margin-top:26px}
.article-body table:not([class]){display:block;max-width:100%;overflow-x:auto;margin-top:26px}
.article-body table:not([class]) th,.article-body table:not([class]) td{padding:13px 16px 13px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:16px}
.article-body ul:not([class]) > li{position:relative;padding-left:22px;margin-bottom:10px}
.article-body ul:not([class]) > li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:7px;background:var(--accent)}
.article-body ol:not([class]){margin-top:16px;padding-left:24px;list-style:decimal}
.article-body ol:not([class]) > li{margin-bottom:10px}
.article-body ol:not([class]) > li::marker{color:var(--accent-ink);font-weight:600}
.article-body blockquote:not([class]){margin-top:26px;padding-left:20px;border-left:3px solid var(--accent);color:var(--text-muted)}

/* Знакомство на главной: колонка с фактами + текст от лица бюро */
.intro-section__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:36px}
.intro-section__aside .h2{max-width:440px}
.intro-section__lead{margin-top:18px;font-size:17px;line-height:1.6;color:var(--text-muted)}
.intro-section__facts{display:grid;gap:16px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.intro-section__facts li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:baseline}
.intro-section__num{font-size:28px;font-weight:700;line-height:1;color:var(--accent)}
.intro-section__facts span:last-child{font-size:14px;line-height:1.45;color:var(--text-muted)}
.intro-section__body{max-width:720px}
.intro-section__body p + p{margin-top:16px}
.intro-section__body strong{font-weight:600;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}
.intro-section__body em{font-style:italic}
.intro-section__body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.intro-section__body a:hover{text-decoration-thickness:2px}
@media (min-width:960px){
  .intro-section__grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:72px}
  .intro-section__aside{position:sticky;top:calc(var(--header-h) + 24px);align-self:start}
}

/* Модальное окно обратного звонка (main.js: data-modal-open / data-modal) */
.modal{position:fixed;inset:0;z-index:300;display:flex;align-items:flex-start;justify-content:center;padding:24px;background:rgba(20,22,28,.74);overflow-y:auto}
.modal[hidden]{display:none}
.modal__dialog{position:relative;width:100%;max-width:560px;margin:auto;padding:34px 32px 30px;background:var(--surface);border-top:3px solid var(--accent);box-shadow:0 30px 80px rgba(0,0,0,.35)}
.modal__close{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;background:transparent;color:var(--text-muted);cursor:pointer;transition:color var(--t) ease}
.modal__close:hover,.modal__close:focus-visible{color:var(--accent)}
.lead-modal__lead{margin-top:14px;font-size:16px;line-height:1.6;color:var(--text-muted)}
.lead-form{margin-top:24px}
.lead-form .field:last-of-type{margin-bottom:0}
.lead-form .btn{margin-top:20px}
.lead-modal__note{margin-top:16px;font-size:13px;line-height:1.5;color:var(--text-muted)}
@media (max-width:640px){
  .modal{padding:12px}
  .modal__dialog{padding:30px 20px 24px}
}
