/* pbn-enhance.css — дополнения к style.css макета anionweb.ru под токен-движок BablO$.
   Статичная часть: сид страниц (bin/pbn/anionweb_2_pages.php) копирует этот файл в
   public/sites/anionweb-ru/assets/a/de213ec03a42.css и дописывает в конец маски иконок i[data-ic="<ключ>"].
   Только переменные и классы макета; своих классов нет — кроме служебных классов движка (.bf-msg, .bf-ok, .bf-err,
   .pdo-pagenav, .pdo-pagebtn, .active) и атрибутов схемы (data-ic — ключ иконки строки данных, data-prose — контейнер
   «Текста» страницы). */

/* Иконки соцсетей подвала (строки набора «Настроек» st_social): значения MIGX экранируются, SVG туда нельзя. В строке —
   ключ icon() макета: <i data-ic="<ключ>" style="width:20px;height:20px">; форма — маской из того же SVG (правила
   i[data-ic="<ключ>"]{--ic:url("data:…")} дописывает сид страниц), цвет — currentColor ссылки (.footer-col__social a:
   кремовый, при наведении — чернила), как fill="currentColor" у svg макета; display:block — как 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}
/* ключ не задан — без маски <i> залился бы сплошным квадратом цвета иконки */
i[data-ic=""]{display:none}

/* Необязательные строки: пустое значение — элемента нет (у макета все заполнены, пустыми их делает только админка):
   надзаголовок, лид первого экрана, абзац над метками технологий, текст карточки услуги на главной, описание строки карты
   сайта, дата и анонс карточки записи */
.eyebrow:empty,.lede:empty,.offer-card__text:empty,.service-card__text:empty{display:none}
/* «Контакты»: пункт без значения (юрлицо не задано) — пункта нет */
.contact-block__item:has(> .contact-block__item-value:empty){display:none}
/* «Кому подойдёт»: колонка без пунктов — колонки нет (всю секцию без пунктов «Подойдёт, если» не выводит обёртка набора) */
.fit-column:has(> .fit-column__list:empty){display:none}
/* «Контакты»: карта не задана в «Настройках» — блока карты нет (иначе пустая рамка iframe и ссылка «Открыть карту» в никуда) */
.map-block:has(iframe[src=""]){display:none}
/* Первый экран без фото (у главной и услуг макета фото всегда есть): текст — на всю ширину, а не в колонку 0.75fr сетки .split */
.hero .split:not(:has(> .hero__media)){grid-template-columns:minmax(0,1fr)}
/* Подвал без колонки «Соцсети»: набор st_social «Настроек» пуст — migx не выводит ни строк, ни обёртки, и колонки в DOM нет.
   Сетка макета на широком экране жёстко расписана на 4 трека (1.6fr 1fr 1fr 1fr), поэтому три колонки съезжали влево, а
   справа оставалась пустая четверть. Владелец впишет соцсети — правило само перестанет действовать */
@media (min-width:1024px){.site-footer__grid:not(:has(.footer-col__social)){grid-template-columns:1.6fr 1fr 1fr}}

/* «Текст» страницы ([[*content]] вплотную к тегам: пустой «Текст» — пустой контейнер). На главной, услуге и контактах —
   своя секция, без текста секции нет; у текстовой страницы, ленты и записи — колонка под заголовком, пустая скрыта */
.section:has(> .container > [data-prose]:only-child:empty){display:none}
[data-prose]:empty{display:none}
/* своя секция «Текста» начинается тонкой линией, как .section-head остальных секций макета */
.section > .container > [data-prose]:only-child{border-top:1px solid var(--color-hairline);padding-top:40px}

/* Тексты из админки (перенос с живого сайта, генерация воркфлоу) в [data-prose]: сброс style.css обнуляет поля абзацев и
   заголовков и снимает маркеры списков — возвращаем в тоне макета: строка до 68ch (как .hero__lede 56ch и
   .accordion-row__panel-inner 60ch), заголовки — шрифты макета, ссылка — как .link-arrow, маркеры и черта цитаты —
   перванш, таблица — линиями hairline с подписями колонок как .contact-block__item-label */
[data-prose]{max-width:68ch}
[data-prose] > :first-child{margin-top:0}
[data-prose] > :is(p,ul,ol,table,blockquote,figure,img,iframe){margin:0 0 18px}
[data-prose] > h2{font-size:clamp(1.5rem,2.6vw,2rem);margin:44px 0 16px}
[data-prose] > :is(h3,h4){margin:32px 0 12px}
[data-prose] :is(ul,ol){padding-left:1.3em}
[data-prose] ul{list-style:disc}
[data-prose] ol{list-style:decimal}
[data-prose] li + li{margin-top:6px}
[data-prose] li::marker{color:var(--color-periwinkle-d)}
[data-prose] a{color:var(--color-eggplant);border-bottom:1px solid currentColor;transition:color var(--transition)}
[data-prose] a:hover{color:var(--color-periwinkle-d)}
[data-prose] :is(strong,b){font-weight:700}
[data-prose] img{height:auto;border-radius:var(--radius-card)}
[data-prose] iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:var(--radius-card)}
[data-prose] table{width:100%;border-collapse:collapse;font-size:.95rem}
[data-prose] :is(th,td){padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-hairline)}
[data-prose] th{font-family:var(--font-display);font-weight:600;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}
[data-prose] blockquote{padding-left:20px;border-left:2px solid var(--color-periwinkle);font-size:clamp(1.15rem,2vw,1.4rem)}
@media (max-width: 699px){[data-prose] table{display:block;overflow-x:auto}}

/* Колонка под заголовком ленты и записи: отступ до сетки карточек (как .section-head 40px); фото записи — между заголовком
   и текстом с тем же отступом */
.section-head ~ [data-prose]:not(:empty):not(:last-child){margin-bottom:40px}
.section-head + .media-frame{margin-bottom:40px}
/* Карточка записи (лента, «Читайте также») — карточка .service-card webdevelop.php; дата над заголовком — надзаголовок */
.service-card > .eyebrow{margin-bottom:10px}

/* Листание движка (&paginate у ленты; кнопки встают после сетки карточек) — в тоне .btn--pill-nav макета: капсула с рамкой
   hairline, Oswald капсом; наведённая и активная — чернила с кремовым текстом, как .btn--pill-nav.is-active. !important —
   поверх инлайн-стилей кнопок движка; display панели не трогаем: его выставляет скрипт листания */
.pdo-pagenav{gap:10px!important;margin:48px 0 0!important}
.pdo-pagenav .pdo-pagebtn{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 14px!important;border:1px solid var(--color-hairline)!important;border-radius:19px!important;background:transparent!important;color:var(--color-ink)!important;font-family:var(--font-display);font-weight:600;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background-color var(--transition),color var(--transition),border-color var(--transition)}
.pdo-pagenav .pdo-pagebtn:not([disabled]):hover,.pdo-pagenav .pdo-pagebtn.active{background:var(--color-ink)!important;border-color:var(--color-ink)!important;color:var(--color-cream)!important}
.pdo-pagenav .pdo-pagebtn[disabled]{opacity:.35;cursor:default}

/* Ответ формы заявки ([[+msg]] движка после подписи p.form__note; у макета демо-обработчик initCtaForm() main.js писал
   «Спасибо! Заявка отправлена…» в саму подпись — его вырезает сид страниц): строка на тёмном блоке .cta-form — кремовым,
   как текст .form--dark, ошибка — янтарём палитры. Скрытое состояние держит [hidden]{display:none!important} из style.css */
.cta-form .bf-msg{margin-top:12px;font-size:.95rem;font-weight:500;color:var(--color-cream)}
.cta-form .bf-msg.bf-err{color:var(--color-amber)}
i[data-ic="vk"]{--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%3E%3Cpath%20d%3D%22M12.8%2017.2c-6%200-9.4-4.1-9.5-11h3.1c.1%204.9%202.3%207%204%207.4V6.2h2.9v4.4c1.7-.2%203.5-2.2%204.1-4.4h2.9c-.5%202.7-2.5%204.7-3.9%205.5%201.4.6%203.7%202.4%204.5%205.5h-3.2c-.7-2.1-2.3-3.7-4.4-3.9v3.9h-.5z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="telegram"]{--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%3E%3Cpath%20d%3D%22M21%204.5L18.2%2019c-.2%201-.8%201.2-1.6.8l-4.4-3.2-2.1%202c-.2.2-.4.4-.9.4l.3-4.6L18%207.1c.4-.3-.1-.5-.6-.2L7.6%2012.8l-4.4-1.4c-1-.3-1-1%20.2-1.5L19.6%203.6c.8-.3%201.6.2%201.4.9z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E")}
