/* pbn-enhance.css — дополнения к style.css макета i-groups.ru под токен-движок BablO$.
   Статичная часть: сид страниц (bin/pbn/i-groups_2_pages.php) копирует этот файл в
   public/sites/i-groups-ru/assets/a/d0ef46fd917f.css и дописывает в конец маски иконок
   i[data-ic="<ключ>"]{--ic:url("data:image/svg+xml,…")} по ключам icon() макета.
   Только переменные и классы макета; своих классов нет — кроме служебных классов движка
   (.bf-msg, .bf-err, .pdo-pagenav, .pdo-pagebtn, .active) и атрибутов схемы data-ic, data-v,
   data-rating (значения, которые в макете были PHP-условиями). */

/* ---------- Иконки в строках данных ---------- */
/* Значения MIGX и text-TV экранируются, SVG туда нельзя. В данных — ключ icon() макета:
   <i data-ic="<ключ>" style="width:40px;height:40px">; форма — маской из того же SVG (правила
   i[data-ic="<ключ>"] дописывает сид страниц), цвет — currentColor родителя (.value-strip__ic,
   .cert__ic, .ctile__ic — var(--coral) макета), как stroke="currentColor" у его svg.
   display:block — как img,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,
.lead:empty,
.badge:empty,
.page-hero__sub:empty,
.hero__lead:empty,
.photo-band__lead:empty,
.card__note:empty,
.card__text:empty,
.card__meta:empty,
.pack__lead:empty,
.pack__term:empty,
.dir__n:empty,
.mega__d:empty,
.ctile__n:empty,
.review__co:empty,
.review__head:empty,
.cert__y:empty,
.numtile__l:empty,
.steps__term:empty,
.subscribe__n:empty,
.quiz__hint:empty,
.map-note span:empty,
.prose p:empty { display: none; }
/* «от <цена>» и старая цена: без цены строка стоимости бессмысленна */
.pack__price s:empty { display: none; }
/* пункт списка без текста (в наборах тарифов и пакетов колонок больше, чем пунктов у строки) */
.pack__list li:has(> span:empty),
.branch__list li:empty,
.band-split__list li:empty { display: none; }
/* врезка без текста — врезки нет (у «Услуг» макета callout есть не всегда) */
.callout:has(> .callout__t:only-child) { display: none; }
/* строка-призыв: подпись ссылки или кнопки пуста — элемента нет, пустая строка — нет строки */
.link-arrow:has(> span:empty),
.cta-row .btn:empty { display: none; }
.cta-row:not(:has(> *)) { display: none; }
/* карта не задана в «Настройках» — блока карты нет (иначе пустая рамка iframe) */
.map-wrap:has(iframe[src=""]) { display: none; }

/* ---------- «Текст» страницы ---------- */
/* [[*content]] — текст живой страницы и воркфлоу генерации. Пустой — ни секции, ни отступов */
.section:has(> .container > .prose:empty) { display: none; }
.container > .prose:empty { display: none; }
/* Тексты из админки в .prose: у макета оформлены h2, h3, p, ul, ol, figure и a. Возвращаем в его
   тоне то, что сброс style.css обнуляет у перенесённых текстов: h4, таблицы, цитаты, медиа */
.prose > :first-child { margin-top: 0; }
.prose h4 { margin: 24px 0 10px; }
.prose > :is(table, blockquote, img, iframe) { margin: 0 0 20px; }
.prose :is(strong, b) { color: var(--ink); }
.prose img { height: auto; }
.prose iframe { display: block; width: 100%; height: auto; aspect-ratio: 16/9; border: 0; }
.prose table { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
.prose :is(th, td) { padding: 12px 14px; border-bottom: 1px solid var(--hairline); text-align: left; vertical-align: top; font-size: 15px; }
.prose th { font-family: var(--f-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 500; }
.prose blockquote { padding-left: 18px; border-left: 2px solid var(--coral); color: var(--lead); }

/* ---------- Оценка отзыва ---------- */
/* stars_svg() макета подсвечивает первые N звёзд классом .stars__i--on и заливкой fill="currentColor".
   Оценка — данные строки набора, поэтому разметка всегда одинаковая (stars_svg(0)), а подсветку даёт
   data-rating: цвет — как у .stars__i--on, заливка — тем же currentColor */
.stars[data-rating="1"] > .stars__i:nth-child(-n+1),
.stars[data-rating="2"] > .stars__i:nth-child(-n+2),
.stars[data-rating="3"] > .stars__i:nth-child(-n+3),
.stars[data-rating="4"] > .stars__i:nth-child(-n+4),
.stars[data-rating="5"] > .stars__i:nth-child(-n+5) { color: var(--coral); }
.stars[data-rating="1"] > .stars__i:nth-child(-n+1) path,
.stars[data-rating="2"] > .stars__i:nth-child(-n+2) path,
.stars[data-rating="3"] > .stars__i:nth-child(-n+3) path,
.stars[data-rating="4"] > .stars__i:nth-child(-n+4) path,
.stars[data-rating="5"] > .stars__i:nth-child(-n+5) path { fill: currentColor; }

/* ---------- Таблица сравнения комплектаций ---------- */
/* У макета ячейка — true / false / строка, и PHP рисовал либо «галочку», либо «минус», либо текст.
   Условий в движке нет: оба значка стоят в разметке настоящими SVG макета, а лишний гасится
   по ключу ячейки (data-v = yes | no | пусто) */
.tbl td:not([data-v="yes"]) > .yes,
.tbl td:not([data-v="no"]) > .no { display: none; }

/* ---------- Чипы-фильтры и аккордеон вопросов ---------- */
/* Чип у макета — ссылка (?f=…), на статике — кнопка штатного фильтра main.js: возвращаем ей
   типографику и выравнивание ссылки-чипа */
button.chip { font: inherit; }
/* Скрытые фильтром вопросы уносят с собой и заголовок раздела: у макета сервер не выводил
   опустевшие группы целиком */
.faq__group:not(:has(> details:not([hidden]))) { display: none; }

/* ---------- Листание движка ---------- */
/* &paginate рисует свою навигацию (.pdo-pagenav / .pdo-pagebtn) с инлайн-стилями — перекрываем их
   оформлением .pager макета; !important обязателен: инлайн-стиль кнопки иначе сильнее */
.pdo-pagenav {
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: 8px !important;
  margin: 48px 0 0 !important;
}
.pdo-pagebtn {
  min-width: 40px; height: 40px;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0 12px !important;
  border: 1px solid var(--hairline-2) !important;
  border-radius: var(--radius) !important;
  background: transparent !important;
  font-size: 14px; font-weight: 600;
  color: var(--ink) !important;
  font-variant-numeric: tabular-nums;
  transition: background-color var(--ease), color var(--ease), border-color var(--ease);
}
.pdo-pagebtn:hover { border-color: var(--ink) !important; color: var(--coral) !important; }
.pdo-pagebtn.active {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--white) !important;
}
.pdo-pagebtn[disabled] {
  color: var(--hairline-2) !important;
  border-color: var(--hairline-3) !important;
  cursor: default;
}

/* ---------- Ответ формы ---------- */
/* Движок вставляет свой блок ответа (.bf-msg) там, где у макета стояла .form-note */
.bf-msg { margin: 12px 0 0; font-size: 12px; line-height: 1.45; color: var(--muted); }
.bf-msg.bf-err { color: var(--coral-ink); }
/* в подвале .form-note набран цветом --muted, рассчитанным на светлый фон: на тёмном ярусе
   берём светлый токен — как .ftr-sub__done макета */
.ftr-sub__form .bf-msg { color: var(--ftr-head); font-size: 13px; }

/* ---------- Маски иконок данных (дописывает сид страниц) ---------- */
/* ключи icon() макета, которые приходят строками наборов и text-TV: форма — маска из того же SVG */
i[data-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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%203.5h7.5L19%209v11.5H6z%22%2F%3E%3Cpath%20d%3D%22M13.5%203.5V9H19%22%2F%3E%3Cpath%20d%3D%22M9%2013h7M9%2016.5h5%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="chart"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2020V4%22%2F%3E%3Cpath%20d%3D%22M4%2020h16%22%2F%3E%3Cpath%20d%3D%22M8%2016v-4M12.5%2016V8M17%2016v-6%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%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l7.5%203v6c0%204.4-3%207.7-7.5%209.4C7.5%2019.7%204.5%2016.4%204.5%2012V6z%22%2F%3E%3Cpath%20d%3D%22M9%2012l2.2%202.2L15.2%2010%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="pin"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2021s7-5.6%207-11a7%207%200%2010-14%200c0%205.4%207%2011%207%2011z%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%222.6%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="award"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%229%22%20r%3D%225.5%22%2F%3E%3Cpath%20d%3D%22M8.4%2013.6L7%2021l5-2.6L17%2021l-1.4-7.4%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="star"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203.5l2.7%205.7%206.3.8-4.6%204.3%201.2%206.2-5.6-3.1-5.6%203.1L7.6%2014.3%203%2010l6.3-.8z%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="users"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228.5%22%20r%3D%223.2%22%2F%3E%3Cpath%20d%3D%22M3%2019.5c0-3%202.7-4.8%206-4.8s6%201.8%206%204.8%22%2F%3E%3Cpath%20d%3D%22M16%205.6a3%203%200%20010%205.8M17.5%2015c2.1.5%203.5%202.1%203.5%204.5%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="ruble"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2020V4h4.6a4.2%204.2%200%20010%208.4H9%22%2F%3E%3Cpath%20d%3D%22M6.5%2015.6h7%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="growth"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2017l5-5%203.5%203.5L20%208%22%2F%3E%3Cpath%20d%3D%22M15%208h5v5%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="lightbulb"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2017h6M10%2020.5h4%22%2F%3E%3Cpath%20d%3D%22M12%203.5a5.5%205.5%200%20013.3%209.9c-.6.5-.9%201-.9%201.7H9.6c0-.7-.3-1.2-.9-1.7A5.5%205.5%200%200112%203.5z%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="refresh"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2012a8%208%200%2011-2.6-5.9%22%2F%3E%3Cpath%20d%3D%22M20%204v4.5h-4.5%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="target"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.5%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%224.5%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%221%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="layout"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223.5%22%20y%3D%224.5%22%20rx%3D%221%22%2F%3E%3Cpath%20d%3D%22M3.5%209.5h17M9.5%209.5V19.5%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="share"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2212%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2218%22%20r%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M8.2%2010.9l7.6-3.8M8.2%2013.1l7.6%203.8%22%2F%3E%3C%2Fsvg%3E")}
i[data-ic="puzzle"]{--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.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%204h4v2.5a1.8%201.8%200%20103.5%200V4H20v4.4h-2.4a1.8%201.8%200%20100%203.6H20V20h-6v-2.5a1.8%201.8%200%2010-3.6%200V20H4v-6h2.5a1.8%201.8%200%20100-3.6H4V4h6z%22%2F%3E%3C%2Fsvg%3E")}
