/* pbn-enhance.css — дополнения к style.css макета avto-advokat77.ru под токен-движок BablO$.
   Статичная часть: сид страниц (bin/pbn/avto-advokat77_2_pages.php) копирует этот файл в
   public/sites/avto-advokat77-ru/assets/css/pbn-enhance.css и дописывает в конец маски иконок (i.ic--<ключ>).
   Только переменные и классы макета; новых классов нет — кроме служебных классов движка (.bf-msg, .pdo-*),
   маски .ic и точек карусели .slider__dots/.slider__dot (их создаёт pbn-enhance.js). */

/* Иконки в строках MIGX: значения MIGX экранируются, SVG туда нельзя. В строке — ключ:
   <i class="ico ic ic--<ключ>">, форма — маской i.ic--<ключ>{--ic:url("data:image/svg+xml,…")} из того же SVG,
   что рисует icon() макета (маски по ключам дописывает сид страниц). .ico — класс самого icon() макета: так
   действуют его контекстные правила (.doclist__row .ico — зелёный), цвет — currentColor обёртки (.why__glyph) */
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): пустое значение — блока нет */
.page-hero__sub:empty,.prose__lead:empty{display:none}
/* «Типовые задачи» и пункты направлений — фиксированные колонки MIGX (task1…task3, item1…item3); пустой пункт не выводится */
.pract__list li:has(> span:empty){display:none}
/* «Текст» страницы там, где прозы в макете нет (главная, команда, отзывы, контакты, ленты): пустой — секции нет */
.section:has(> .container > .prose:empty){display:none}
/* Блок «Стоимость и условия» остался без скана благодарственного письма — текст на всю ширину */
.thanks:not(:has(.thanks__letter)){grid-template-columns:minmax(0,1fr)}
.thanks:not(:has(.thanks__letter)) .thanks__text{max-width:860px}
/* Второй абзац лида на главной — ближе к первому */
.hero__lead + .hero__lead{margin-top:-16px}
/* Ссылка во втором абзаце лида — акцентная, чтобы не терялась в тексте */
.hero__link{color:var(--green);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.hero__link:hover{text-decoration-thickness:2px}

/* Ленты статей: пустая лента (рубрика без записей, архив без списка) — сообщение вместо списка */
.alist + .empty{display:none}
.alist:empty + .empty{display:block}

/* Ответ формы движка ([[+msg]] → .bf-msg) — на месте и в стиле .form__ok макета; ошибка — цветом .form__error */
.bf-msg{margin:16px 0 0;padding:14px 18px;border-left:3px solid var(--green);background:var(--green-pale);font-size:14px;line-height:1.6;color:var(--ink)}
.bf-msg.bf-err{border-left-color:#A32A20;background:var(--bg-alt);color:#A32A20}

/* Пагинация движка (&paginate, кнопки с инлайн-стилями) — в стиле .pager / .pager__btn макета.
   display навигации не трогаем: движок сам прячет её инлайн-стилем, когда страница одна */
.pdo-pagenav{gap:8px!important;margin:36px 0 0!important}
.pdo-pagenav .pdo-pagebtn{display:grid!important;place-items:center;min-width:44px;height:44px;padding:0 12px!important;border:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;font:400 14px/1 var(--ff-text);color:var(--ink)!important;cursor:pointer;transition:background-color var(--t),color var(--t),border-color var(--t)}
.pdo-pagenav .pdo-pagebtn:hover{border-color:var(--ink)!important}
.pdo-pagenav .pdo-pagebtn.active{background:var(--ink)!important;border-color:var(--ink)!important;color:#F4F1EA!important}
.pdo-pagenav .pdo-pagebtn[disabled]{opacity:.35;cursor:default}
.pdo-pagenav > span{color:var(--muted)}

/* Тексты, перенесённые с прежнего сайта (uCoz), внутри .prose: картинки, видео, таблицы.
   Таблицы — в стиле .stages макета (сама .stages из текста услуги не затрагивается) */
.prose img{max-width:100%;height:auto}
.prose iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;margin:28px 0}
.prose table:not(.stages){width:100%;margin:28px 0;border:1px solid var(--line)}
.prose table:not(.stages) th,.prose table:not(.stages) td{padding:14px 20px;border-top:1px solid var(--line);font-size:15px;line-height:1.6;vertical-align:top;text-align:left;overflow-wrap:anywhere}
.prose table:not(.stages) th{background:var(--ink);font-family:var(--ff-text);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light)}
.prose table:not(.stages) tbody tr:nth-child(odd){background:var(--surface)}

/* Окна с формами («Бесплатная консультация», «Отправить документы») — компонент .modal макета, форма .miniform
   внутри .modal__box: рамка у окна уже есть — вторую рамку формы убираем; заголовок не заходит под крестик */
.modal__content .miniform{border:0}
.modal__content .miniform__title{padding-right:36px}
.modal__content .form__note a{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.modal__content .form__note a:hover{color:var(--green)}
/* на тач-экране фокус окна встаёт на заголовок (tabindex=-1, не в порядке Tab) — рамка фокуса ему не нужна */
.modal__content .miniform__title:focus{outline:0}

/* Карусель отзывов: полосу прокрутки трека прячем, листают стрелки макета, точки, свайп и клавиатура.
   [data-pbn-slider] ставит pbn-enhance.js — без скрипта полоса остаётся, иначе карточки за краем не достать */
[data-pbn-slider] .slider__track{scrollbar-width:none;overscroll-behavior-x:contain}
[data-pbn-slider] .slider__track::-webkit-scrollbar{display:none}
/* точки — штрихи в духе линий макета; кнопка 32×32 — удобная цель для пальца. Цвет неактивной — --muted,
   а не --line: у --line на фоне контраст 1,3:1, точку не видно (элементу управления нужно ≥3:1, у --muted 5,1:1).
   Текущая отличается и цветом, и толщиной: --ink к --muted даёт только 2,9:1 */
.slider__dots{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;margin-top:16px}
.slider__dot{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;background:transparent;cursor:pointer}
.slider__dot::before{content:"";width:22px;height:2px;background:var(--muted);transition:background-color var(--t),height var(--t)}
.slider__dot:hover::before{background:var(--gold)}
.slider__dot[aria-current="true"]::before{height:4px;background:var(--ink)}

/* Последние две цифры телефона — в прозрачность: номер не показываем целиком, но клик по нему открывает
   окно обратного звонка. aria-label у ссылки хранит полный номер для скринридеров (pbn-enhance.js). */
.phone-tail{opacity:.1}

/* Маски иконок строк MIGX — дописывает bin/pbn/avto-advokat77_2_pages.php */
i.ic--car{--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.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22M4%2016.5v2.2h2.6v-2.2M17.4%2016.5v2.2H20v-2.2%22%2F%3E%3Cpath%20d%3D%22M3.4%2016.5h17.2v-4.2l-1.8-.6-2-4.2H7.2l-2%204.2-1.8.6v4.2Z%22%2F%3E%3Cpath%20d%3D%22M5.4%2011.7h13.2%22%2F%3E%3Ccircle%20cx%3D%227.4%22%20cy%3D%2214.2%22%20r%3D%22.9%22%2F%3E%3Ccircle%20cx%3D%2216.6%22%20cy%3D%2214.2%22%20r%3D%22.9%22%2F%3E%3C%2Fsvg%3E")}
i.ic--clipboard{--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.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22M8.5%204.6H6.4v16.2h11.2V4.6h-2.1%22%2F%3E%3Crect%20x%3D%228.5%22%20y%3D%223%22%2F%3E%3Cpath%20d%3D%22M9.4%2011h5.2M9.4%2014.6h5.2%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%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22M14%203.2H6.5v17.6h11V6.7L14%203.2Z%22%2F%3E%3Cpath%20d%3D%22M13.8%203.4v3.4h3.5%22%2F%3E%3Cpath%20d%3D%22M9%2012h6M9%2015.4h6M9%208.6h2.5%22%2F%3E%3C%2Fsvg%3E")}
i.ic--file-search{--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.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22M13.6%203.2H6.5v17.6h11V7.1L13.6%203.2Z%22%2F%3E%3Cpath%20d%3D%22M13.4%203.4v3.6H17%22%2F%3E%3Ccircle%20cx%3D%2211.6%22%20cy%3D%2213.4%22%20r%3D%222.6%22%2F%3E%3Cpath%20d%3D%22m13.5%2015.4%202.2%202.2%22%2F%3E%3C%2Fsvg%3E")}
i.ic--gavel{--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.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22m3.5%2020.5%207-7%22%2F%3E%3Cpath%20d%3D%22m9.5%209.5%205%205%202.5-2.5-5-5-2.5%202.5Z%22%2F%3E%3Cpath%20d%3D%22m13%206%205%205%202.5-2.5-5-5L13%206Z%22%2F%3E%3Cpath%20d%3D%22M12.5%2021h8%22%2F%3E%3C%2Fsvg%3E")}
i.ic--headset{--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.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22M4.5%2015v-3a7.5%207.5%200%200%201%2015%200v3%22%2F%3E%3Cpath%20d%3D%22M4.5%2013.5h2.6V19H6a1.5%201.5%200%200%201-1.5-1.5v-4ZM19.5%2013.5h-2.6V19H18a1.5%201.5%200%200%200%201.5-1.5v-4Z%22%2F%3E%3Cpath%20d%3D%22M16.9%2019c0%201.1-1.4%202-3.4%202%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%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22M3.5%207.5h17v11.5h-17z%22%2F%3E%3Cpath%20d%3D%22M3.5%207.5%2015%204.6v2.9%22%2F%3E%3Ccircle%20cx%3D%2216.6%22%20cy%3D%2213.2%22%20r%3D%221.2%22%2F%3E%3C%2Fsvg%3E")}
