/* Pavlova — правки вёрстки по аудиту layout-audit-20260906-001 (F02–F16).
   Подключается mu-плагином pavlova-layout-audit-fixes.php на всех шаблонах
   (wp_head, после стилей темы). Селекторы усилены префиксом html body, чтобы
   выигрывать у правил темы и встроенных <style> шаблонов независимо от порядка.
   Каждый блок помечен номером замечания аудита. Откат — удалить плагин и файл. */

/* ---------- F10. Токены типографики ---------- */
:root {
	--pb-font: Montserrat, Arial, sans-serif;
	--pb-h1-mobile: 30px;
	--pb-h2-mobile: 26px;
	--pb-text: 16px;
	--pb-lh: 1.5;
	--pb-text-muted: #575757;
}

/* ---------- F03 / F04 / F08 / F13. Контейнеры ----------
   Общий .container имел ступенчатые фиксированные ширины 480/420/380/320 px
   (main.min.css, встроенные стили seo-шаблонов). При 375 px он был 320 px, а в
   hero seo-шаблона 414 px, и не учитывал отступы родителя: край текста уходил
   за экран, а overflow-x:hidden на body это скрывал. На телефоне контейнер
   резиновый. */
@media (max-width: 640px) {
	html body .container { width: 100%; max-width: 100%; }
}
/* Статья нового шаблона блога (F13). Аудит предлагал вернуть ширину чтения
   860 px из темы; 06.09 владелец посмотрел на широком мониторе и решил иначе:
   статьи должны быть такой же ширины, как страницы услуг. Оставлена ширина
   общего контейнера: 1240 px на ≥1200, 1130 на 992–1199, ниже — 100 %. */
@media (min-width: 1200px) {
	html body .container.x_blog_container { max-width: 1240px; }
}
@media (min-width: 992px) and (max-width: 1199px) {
	html body .container.x_blog_container { max-width: 1130px; }
}
@media (max-width: 767px) {
	html body .container.x_blog_container { padding: 0 5px; }
	html body .x_blog_content { max-width: 100%; }
}

/* ---------- F04 / F08. Страницы политики, внешних отзывов и другие с
   section.service-name: вложенные ограничения (max-width 90% + боковые
   margin + фиксированный контейнер) оставляли тексту 145–180 px. ---------- */
@media (max-width: 767px) {
	html body .service-name__description { max-width: 100%; margin-left: 0; margin-right: 0; }
	html body .service-name__title h1 { margin-left: 0; overflow-wrap: anywhere; hyphens: auto; }
	html body .service-name__text { max-width: 100%; margin-left: 0; margin-right: 0; }
	html body section.service-name h2 { margin-left: 0 !important; margin-right: 0 !important; }
	/* вложенный .content (max-width 380 px, padding 30 px) и колонка с padding 15 px
	   внутри уже ограниченной колонки — на телефоне лишние */
	html body .tl_block .content { max-width: 100%; padding-left: 0; padding-right: 0; }
	html body .tl_block .col-xs-12 { padding-left: 0; padding-right: 0; }
	/* блок Tilda (t696) на странице отзовиков был шириной 8/12 колонки */
	html body .t-container,
	html body .t-width,
	html body .t696__mainblock { width: 100%; max-width: 100%; }
	/* H1 страниц на шаблоне default («ПОЛИТИКА КОНФИДЕНЦИАЛЬНОСТИ»): размер под ширину */
	html body.page-template-default .service-name__title h1 { font-size: clamp(19px, 5.9vw, 24px); }
}
@media (max-width: 360px) {
	html body.page-template-default section.service-name h2 { font-size: 22px; }
}
/* логотип Zoon в списке площадок отдавался в 900 px и рисовался гигантской «Z» */
html body img.zoon { width: 28px; max-width: 100%; height: auto; vertical-align: middle; }

/* ---------- F04. Нутрициологический чекап: колонки flex-column с
   min-width:auto не сжимались уже длинного слова в H1. ---------- */
@media (max-width: 767px) {
	html body.services-template-x_checkup_dynamic .row > *,
	html body.services-template-x_checkup_dynamic .row-top > *,
	html body.services-template-x_checkup_dynamic .left,
	html body.services-template-x_checkup_dynamic .right { min-width: 0; max-width: 100%; }
	html body.services-template-x_checkup_dynamic h1,
	html body.services-template-x_checkup_dynamic h2 { overflow-wrap: anywhere; hyphens: auto; }
}
@media (max-width: 360px) {
	html body #x_checkup_main .row-top h1 { font-size: 22px; }
}
/* Второй блок чекапа: колонка .right 50 % и плитки .right-item 120 px с
   заголовками 36 px — на телефоне одна колонка. */
@media (max-width: 480px) {
	html body.services-template-x_checkup_dynamic #x_checkup_diagnostics .row { flex-direction: column; }
	html body.services-template-x_checkup_dynamic #x_checkup_diagnostics .left,
	html body.services-template-x_checkup_dynamic #x_checkup_diagnostics .right,
	html body.services-template-x_checkup_dynamic #x_checkup_diagnostics .right-item { width: 100%; max-width: 100%; flex: 0 0 auto; }
	html body.services-template-x_checkup_dynamic #x_checkup_diagnostics h4 { font-size: 28px; }
	/* плитки результатов: 3–4 в ряд по 87 px с заголовками 20 px */
	html body.services-template-x_checkup_dynamic #x_checkup_results .item { flex: 0 0 100%; width: 100%; max-width: 100%; }
	html body.services-template-x_checkup_dynamic #x_checkup_results h3 { overflow-wrap: anywhere; }
}

/* ---------- F04. Коммерческие seo-шаблоны (BBI, RSL, эпиляция…): hero-main
   с max-width 650 px внутри контейнера 414 px, длинное слово в H1. ---------- */
body.services-template-seo-test .hero-shell > *,
body.services-template-seo-test .hero-main,
body.services-template-seo-test .hero-side { min-width: 0; max-width: 100%; }
body.services-template-seo-test .hero-kicker { flex-wrap: wrap; overflow: visible; row-gap: 6px; }
/* Сетки без явных колонок (.hero-main, .section-head) брали ширину колонки по
   min-content самого длинного слова заголовка и выходили за контейнер. */
body.services-template-seo-test .hero-main,
body.services-template-seo-test .section-head { grid-template-columns: minmax(0, 1fr); }
body.services-template-seo-test .hero-main > *,
body.services-template-seo-test .section-head > * { min-width: 0; max-width: 100%; }
@media (max-width: 480px) {
	body.services-template-seo-test h2 { font-size: clamp(20px, 6vw, 28px); overflow-wrap: anywhere; }
}
@media (max-width: 767px) {
	body.services-template-seo-test .hero-main h1 { overflow-wrap: anywhere; hyphens: auto; }
}
/* Сетки seo-шаблона с колонками 1fr: min-content содержимого (карта, карточки
   с длинными словами) раздвигал колонку за контейнер — minmax(0,1fr). При
   768–991 px вложенная сетка карточек давала карточки 165 px. */
@media (min-width: 768px) {
	body.services-template-seo-test .contacts-grid,
	body.services-template-seo-test .course-grid,
	body.services-template-seo-test .aftercare-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	body.services-template-seo-test .map-visual { min-width: 0; max-width: 100%; }
}
@media (min-width: 768px) and (max-width: 991px) {
	/* правая колонка hero не уже 360 px оставляла левой 322 px */
	body.services-template-seo-test .hero-shell { grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr); }
	body.services-template-seo-test .cards-2 .cards-2 { grid-template-columns: minmax(0, 1fr); }
	body.services-template-seo-test .cards-3,
	body.services-template-seo-test .cards-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.services-template-seo-test .complex-top { flex-wrap: wrap; }
	body.services-template-seo-test h2 { font-size: clamp(24px, 3.4vw, 38px); }
}
/* Размер H1 hero подобран под реальную ширину колонки: слово «ФОТООМОЛОЖЕНИЕ»
   в Montserrat 700 занимает ≈11,6 × размер шрифта; колонка hero-main —
   248 px при 320, 303 px при 375, ~370 px при 768, ~424 px при 1024,
   ~660 px при 1440. Родные 48/62 px в колонку не помещались. */
@media (max-width: 480px) {
	body.services-template-seo-test .hero-main h1 { font-size: clamp(21px, 6.6vw, 34px); }
	body.services-template-seo-test .hero-main,
	body.services-template-seo-test .hero-side { padding: 16px; }
	body.services-template-seo-test .license-table:not(.pb-table--autostack) { display: block; width: 100%; max-width: 100%; overflow-x: auto; }
	body.services-template-seo-test .docs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.services-template-seo-test .doc-thumb p { overflow-wrap: anywhere; }
}
@media (min-width: 768px) {
	body.services-template-seo-test .hero-main h1 { font-size: clamp(24px, 3.3vw, 48px); }
}

/* ---------- F02. Трихология (шаблон pb-theme-new, блоки txtImg/txtPht):
   flex-колонка, дочерние блоки с min-width:auto растягивались до min-content
   цепочек неразрывных пробелов и уезжали за оба края. Сами цепочки убраны из
   текста; CSS страхует остальные страницы шаблона. ---------- */
@media (max-width: 767px) {
	html body .txtImg__container > *,
	html body .txtPht__container > * { min-width: 0; max-width: 100%; }
	html body .txtImg__left,
	html body .txtImg__right,
	html body .txtImg__txt,
	html body .txtPht__txt { width: 100%; overflow-wrap: break-word; }
}

/* ---------- F12. Поясняющий текст старых услуг был #959595 (контраст ~3:1). */
html body .txtImg__txt p,
html body .txtPht__txt p { color: var(--pb-text-muted); }

/* ---------- F05. Форма «Золушки» (шаблон dropper): кнопка с фиксированной
   шириной и сдвигом, блок .itsModal с min-width 290 px и отрицательным
   margin внутри колонки 194 px. ---------- */
@media (max-width: 767px) {
	html body .wrapper.dropper .consultation-form { width: 100%; margin: 0; padding: 20px 12px; }
	html body .wrapper.dropper .consultation-form > div,
	html body .wrapper.dropper .consultation-form .wpcf7,
	html body .wrapper.dropper .consultation-form .wpcf7-form,
	html body .wrapper.dropper .consultation-form__info { width: 100%; max-width: 100%; }
	html body .wrapper.dropper .consultation-form .itsModal {
		width: 100%; min-width: 0; height: auto; margin: 24px 0 0;
	}
	html body .wrapper.dropper .consultation-form .itsModal input { width: 100%; max-width: 100%; }
	html body .wrapper.dropper .consultation-form__btn,
	html body .wrapper.dropper .consultation-form__btn.error,
	html body .consultation-form__btn {
		width: 100%; max-width: 100%; height: auto; min-height: 45px;
		margin: 20px 0 0; padding: 10px 14px; white-space: normal; line-height: 1.25;
	}
}

@media (max-width: 360px) {
	html body .reviews-row__element-surname,
	html body .reviews-row__element-name { min-width: 0; font-size: 90%; overflow-wrap: anywhere; }
}

/* ---------- F06. Прайс: стрелки слайдера стояли на фиксированной высоте
   350 px и накрывали кнопку «Подробнее» (высота текста слайда меняется).
   На телефоне картинка слайда всегда внизу (300 px) — стрелки закреплены
   от низа, посередине картинки. ---------- */
@media (max-width: 767px) {
	html body.page-template-new-prices #slider_new.promo__slider .swiper-button-prev,
	html body.page-template-new-prices #slider_new.promo__slider .swiper-button-next {
		top: auto !important; bottom: 128px !important;
		width: 44px !important; height: 44px !important;
		border-radius: 50%; background: #fff; color: #816867;
		box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
	}
}

/* ---------- F09. Старый шаблон статьи: полоса формы .x_blog_CTA1 имела
   width calc(100vw + 4px) и margin-left −22px под другой контейнер — левый
   край и поля уходили за экран. Полноширинная полоса через 50%/50vw не
   зависит от отступов контейнера. Палитра полос сохранена по решению
   владельца 06.09 (CTA-полосы будут перерабатываться постатейно). ---------- */
@media (max-width: 568px) {
	html body .x_blog_CTA1 {
		width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: 0;
		padding: 32px 20px; border-radius: 0;
	}
	html body .x_blog_CTA11_row > * { min-width: 0; max-width: 100%; }
	html body .x_blog_CTA-form .wpcf7-form,
	html body .x_blog_CTA-form input,
	html body .x_blog_CTA-form textarea { max-width: 100%; }
	html body .x_blog_CTA-form input.wpcf7-submit {
		white-space: normal; height: auto; min-height: 56px; padding: 12px 16px; line-height: 1.25;
	}
}

/* ---------- F10. Типографика между шаблонами ----------
   1) Новый шаблон блога: заголовки и таблицы были Inter при тексте Montserrat.
   2) seo-шаблоны услуг (BBI, RSL, эпиляция): встроенный body main * задавал
      Segoe UI/Arial — страница выглядела как другой сайт.
   3) Старый шаблон статьи: H1 24 px при внутренних H2 32 px, списки 14,4 px
      с интерлиньяжем 16 px. */
@media (max-width: 568px) {
	html body .x_blog_container h1 { font-size: var(--pb-h1-mobile); }
}
@media (max-width: 360px) {
	html body .x_blog_container h1 { font-size: 26px; }
}
/* Вкладки микролендинга («Пигментация» и др.): 4 вкладки по 65 px в узкой
   колонке резали подпись на 4–7 px; вкладки по содержимому с переносом ряда. */
html body .pbbi .pbbi__gallery { flex-wrap: wrap; }
html body .pbbi .pbbi__view { flex: 1 1 auto; min-width: 0; padding-left: 8px; padding-right: 8px; }
/* Микролендинг статьи: <br> в заголовке прятался на телефоне (display:none)
   и слова склеивались («кожиза один курс»). */
@media (max-width: 640px) {
	html body .pbbi .pbbi__title br { display: inline; }
}
html body .x_blog_container h1,
html body .x_blog_table_content .x_blog_title_table_content,
html body .x_blog_CTA1_title,
html body .x_blog_main-content h2,
html body .x_blog_main-content h3,
html body .x_blog_main-content table { font-family: var(--pb-font); }
body.services-template-seo-test main,
body.services-template-seo-test main :not(i):not(svg):not([class*="icon"]) { font-family: var(--pb-font); }
@media (max-width: 767px) {
	html body .blog-name__title h1,
	html body .blog-name__description h1 { font-size: var(--pb-h1-mobile); line-height: 1.2; }
	html body .blog-name__description h2 { font-size: var(--pb-h2-mobile); line-height: 1.25; }
	html body .blog-name__text ul li,
	html body .blog-name__text ol li { font-size: var(--pb-text); line-height: var(--pb-lh); }
}

/* ---------- F11. Форма главной: введённый текст 11 px при подсказке 14 px. */
html body .consult-dialog input,
html body .consult-dialog textarea,
html body .consult-dialog select,
html body .pb-home26 .pb-patform textarea.pbLead__textarea,
html body .pb-home26 .consult-dialog textarea,
html body .pb-home26 .pb-patform input[type="text"],
html body .pb-home26 .pb-patform input[type="tel"],
html body .pb-home26 .pb-patform input[type="email"],
html body .pb-home26 .consult-dialog input[type="text"],
html body .pb-home26 .consult-dialog input[type="tel"] { font-size: 16px; line-height: 1.3; }
html body .consult-dialog input::placeholder,
html body .consult-dialog textarea::placeholder { font-size: 16px; }

/* ---------- F14. Главная на планшете: заголовок и курсив ложились на лицо
   врача. Кадр сдвинут (фигура уходит вправо), подложка плотнее, текст
   ограничен левой частью. ---------- */
@media (min-width: 700px) and (max-width: 1100px) {
	html body.home .hero .hero__image { background-position: 40% 50%; }
	html body.home .hero .hero__veil {
		background: linear-gradient(90deg, rgba(248, 244, 241, .98) 0%, rgba(248, 244, 241, .94) 42%, rgba(248, 244, 241, .55) 66%, rgba(248, 244, 241, .06) 100%);
	}
	html body.home .hero h1 { max-width: 60%; }
	html body.home .hero .hero__lead { max-width: 56%; }
}

/* ---------- F15. Прайс услуг (pb-theme-new, .tables__tr): при nowrap ячейки
   с длинными значениями не сжимались, стрелка строки уходила за экран,
   соседние значения слипались. ---------- */
@media (max-width: 767px) {
	html body .tables__tr > .tables__tdWd,
	html body .tables__tr > .tables__td { min-width: 0; overflow-wrap: break-word; hyphens: auto; }
	html body .tables__tr > .tables__td { padding-left: 4px; padding-right: 4px; }
	html body .tables__tr > .tables__td.td_zap { flex: 0 0 auto; min-width: 19px; padding-left: 0; padding-right: 0; }
}

/* ---------- F16. Таблицы в статьях: overflow:hidden на table прятал правые
   столбцы. На телефоне таблица без своей мобильной раскладки прокручивается
   по горизонтали целиком, столбцы не сжимаются до нечитаемых. ---------- */
@media (max-width: 767px) {
	/* запасной вариант без JS: прокрутка; при JS таблица получает pb-table--autostack и раскладывается карточками */
	html body .x_blog_main-content table:not(.pb-table--stack):not(.pb-table--autostack):not([class*="pbl-"]) {
		display: block; width: 100%; max-width: 100%;
		overflow-x: auto; overflow-y: hidden; height: auto !important;
		-webkit-overflow-scrolling: touch;
	}
	html body .x_blog_main-content table:not(.pb-table--stack):not(.pb-table--autostack):not([class*="pbl-"]) td,
	html body .x_blog_main-content table:not(.pb-table--stack):not(.pb-table--autostack):not([class*="pbl-"]) th { min-width: 120px; }
}

/* ---------- Регрессии от резинового контейнера (найдены полной матрицей 297 страниц) ----------
   Шаблоны списков (/services/, /specialisty/) обнуляют padding контейнера и
   полагались на боковые поля центрированного 320-px контейнера: строки
   с margin −5 px и блоки с width 100 % + margin теперь выходили за край. */
@media (max-width: 640px) {
	html body.page-template-pb-theme-new:not(.home) .container,
	html body.page-template-new-specs .container { padding-left: 15px; padding-right: 15px; }
	html body .banner__list { margin-left: 0; margin-right: 0; }
	html body.tax-services_tax .circPht__itm { margin-left: 0 !important; margin-right: 0 !important; max-width: 100%; }
	html body.archive .photoTiles__btn { max-width: calc(100vw - 30px); }
	html body .tabs6-pagination { flex-wrap: wrap; justify-content: center; row-gap: 8px; }
	/* таблицы цен на страницах категорий: width calc(100% + 30px) и margin −15 px
	   рассчитаны на контейнер с отступом 30 px, у категорий отступ 5 px */
	html body.archive .tables__table { width: 100%; margin-left: 0; margin-right: 0; }
	/* таблицы старого шаблона статей и лендинга «Тело мечты» без обёртки */
	html body .blog-name__text table:not(.pb-table--autostack),
	html body table.table-bordered:not(.pb-table--autostack) { display: block; width: 100%; max-width: 100%; overflow-x: auto; }
}
/* Длинные слова в H1 статей («RSL-скульптурирование», «безинъекционной»):
   при 320 px не помещаются даже в 26 px — перенос как последняя страховка. */
@media (max-width: 480px) {
	html body .x_blog_container h1,
	html body .blog-name__title h1 { overflow-wrap: anywhere; hyphens: auto; }
}
@media (max-width: 360px) {
	html body .blog-name__title h1, html body .blog-name__description h1 { font-size: 26px; }
}

/* ---------- Окна «до/после» на <dialog> в статьях (микролендинг BBI, LPG):
   глобальный сброс темы *{margin:0} снимает у <dialog> встроенное центрирование
   (margin:auto), окно прижималось к левому верхнему углу. Найдено владельцем
   06.09 на широком мониторе. ---------- */
html body dialog.pbbi__dialog[open],
html body dialog.pblp__dialog[open] {
	position: fixed; inset: 0; margin: auto;
	width: fit-content; width: -moz-fit-content; max-width: calc(100vw - 32px); max-height: calc(100vh - 32px); overflow: auto;
	padding: 14px 18px 16px; background: #201a1a; color: #fff; border-radius: 14px;
}
/* Окно по размеру снимков, как в галерее на липолитиках (Fancybox): фото
   вплотную друг к другу, без белых полей от «contain» внутри широких колонок. */
html body dialog.pbbi__dialog[open]::backdrop,
html body dialog.pblp__dialog[open]::backdrop { background: rgba(20, 14, 14, .88); }
html body .pbbi__dialog-heading, html body .pblp__dialog-heading { margin-bottom: 10px; }
html body .pbbi__dialog-heading strong, html body .pblp__dialog-heading strong { color: #fff; }
html body .pbbi__dialog-photos, html body .pblp__dialog-photos {
	display: flex; gap: 8px; justify-content: center; align-items: flex-start; flex-wrap: nowrap;
}
html body .pbbi__dialog-photos figure, html body .pblp__dialog-photos figure { margin: 0; width: auto; flex: 0 1 auto; min-width: 0; }
html body .pbbi__dialog-photos img, html body .pblp__dialog-photos img {
	display: block; width: auto; height: auto;
	max-height: calc(100vh - 190px); max-width: calc(50vw - 40px); object-fit: contain; border-radius: 6px;
}
html body .pbbi__dialog-photos figcaption, html body .pblp__dialog-photos figcaption { color: #ddd; text-align: center; }
html body dialog.pbbi__dialog > p, html body dialog.pblp__dialog > p { color: #bbb; margin-top: 8px; }
html body .pbbi__close, html body .pblp__close { background: rgba(255,255,255,.12); color: #fff; }
@media (max-width: 640px) {
	html body .pbbi__dialog-photos, html body .pblp__dialog-photos { flex-direction: column; align-items: center; gap: 12px; }
	html body .pbbi__dialog-photos figure, html body .pblp__dialog-photos figure { width: 100%; }
	html body .pbbi__dialog-photos img, html body .pblp__dialog-photos img { max-width: 100%; max-height: 40vh; margin: 0 auto; }
}

/* ---------- Первый экран шаблона pb-new-tpl (услуги вроде «Удаление бородавок»):
   фото .frstScr__img позиционировано к правому краю ЭКРАНА (offsetParent —
   обёртка .frstScr) и при 900 px ширины уходило под текст и блок врача.
   Контейнер становится точкой отсчёта, фото занимает свободную правую
   часть контейнера (до 34 %) и не пересекает контент. ---------- */
@media (min-width: 1200px) {
	html body.services-template-pb-new-tpl .frstScr__container { position: relative; }
	html body.services-template-pb-new-tpl .frstScr__img { max-width: 34%; right: 0; top: 133px; height: auto; border-radius: 12px; }
}

/* ---------- Компактный CTA статей (partials/pb-laser-cta.php), 06.09.2026:
   вид как у .pblp-cta на статье об LPG-массаже; ведёт на офферный блок. */
html body .pb-cta-band{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;margin:36px 0;padding:30px 32px;border-radius:18px;background:#735a57;color:#fff;box-sizing:border-box;width:100%}
html body .pb-cta-band strong{display:block;margin:0 0 12px;color:#fff;font-size:26px;font-weight:700;line-height:1.3;font-family:var(--pb-font)}
html body .pb-cta-band p{margin:0;color:#fff;font-size:16px;line-height:1.6}
html body .pb-cta-band a{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:60px;max-width:100%;padding:16px 22px;box-sizing:border-box;border:1px solid #fff;border-radius:12px;background:#fff;color:#513f3d;font-size:16px;font-weight:700;line-height:1.4;text-align:center;text-decoration:none;white-space:normal}
html body .pb-cta-band a span{font-size:24px}
html body .pb-cta-band a:hover{background:#f5ebe6;color:#513f3d}
@media (max-width: 900px){html body .pb-cta-band{grid-template-columns:minmax(0,1fr);gap:20px}html body .pb-cta-band a{justify-self:start}}
@media (max-width: 640px){html body .pb-cta-band{padding:24px 20px;margin:28px 0}html body .pb-cta-band strong{font-size:22px}html body .pb-cta-band a{width:100%}}

/* ---------- FAQ статей карточками (07.09.2026): вид как .pblp-faq на статье об
   LPG-массаже; разметка div.pb-faq > div.pb-faq__item > h3 + p в ACF-поле блока. */
html body .pb-faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;min-width:0;width:100%;margin:8px 0 0}
html body .pb-faq__item{box-sizing:border-box;min-width:0;margin:0;padding:26px 28px;background:#faf7f5;border:1px solid #e4d9d3;border-radius:16px;text-align:left;overflow-wrap:break-word}
html body .pb-faq .pb-faq__item h3{display:block;margin:0 0 14px;padding:0;color:#513f3d;font-size:21px;font-weight:700;line-height:1.4;letter-spacing:normal;text-transform:none;font-family:var(--pb-font)}
html body .pb-faq .pb-faq__item p{display:block;margin:0;padding:0;color:#433b38;font-size:18px;font-weight:400;line-height:1.65}
html body .pb-faq .pb-faq__item p+p{margin-top:12px}
html body .pb-faq .pb-faq__item a{color:#75615a;text-decoration:underline;text-underline-offset:2px}
@media (max-width: 760px){html body .pb-faq{grid-template-columns:minmax(0,1fr);gap:14px}html body .pb-faq__item{padding:22px 20px;border-radius:14px}html body .pb-faq .pb-faq__item h3{font-size:19px;margin-bottom:12px}html body .pb-faq .pb-faq__item p{font-size:16px;line-height:1.6}}

/* ---------- Форма CF7 внутри офферных блоков статей (.pbbi микролендинг BBI,
   .pbla лазерная эпиляция): на телефоне стили модалки темы оставляли отступы
   32/45 px и фиксированную ширину кнопки — поля и кнопка были уже блока,
   надпись кнопки резалась (найдено владельцем 07.09). ---------- */
html body .pbbi .itsModal.pb-modal-lead .itsModal__formInputs, html body .pbbi .itsModal.pb-modal-lead .itsModal__formBottompart,
html body .pbbi .itsModal__formInputs, html body .pbbi .itsModal__formBottompart,
html body .pbbi .itsModal__formInputs p, html body .pbbi .itsModal__formBottompart p { padding-left: 0 !important; padding-right: 0 !important; width: 100% !important; max-width: 100% !important; }
html body .pbbi .itsModal__formBottompart input.wpcf7-submit, html body .pbbi input.wpcf7-submit { width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; height: auto; white-space: normal; }

/* ---------- Таблицы карточками на телефоне (07.09.2026, правило владельца: без
   горизонтальной прокрутки). Класс pb-table--autostack и data-label ставит
   скрипт pavlova-table-autostack (mu-plugin). ---------- */
@media (max-width: 767px) {
	html body table.pb-table--autostack { display: block; width: 100% !important; min-width: 0 !important; max-width: 100% !important; overflow: visible; border: 0; background: transparent; height: auto !important; }
	html body table.pb-table--autostack tr, html body table.pb-table--autostack td, html body table.pb-table--autostack th { min-width: 0 !important; width: 100% !important; white-space: normal !important; }
	html body table.pb-table--autostack thead, html body table.pb-table--autostack tr.pb-table__head { display: none; }
	html body table.pb-table--autostack tbody, html body table.pb-table--autostack tr, html body table.pb-table--autostack td, html body table.pb-table--autostack th { display: block; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
	html body table.pb-table--autostack tr { margin: 0 0 12px; padding: 4px 14px; border: 1px solid #e4d9d3; border-radius: 12px; background: #faf7f5; }
	html body table.pb-table--autostack td, html body table.pb-table--autostack th { padding: 9px 0; border: 0; border-bottom: 1px solid #eee3dd; text-align: left; font-size: 15px; line-height: 1.5; overflow-wrap: break-word; }
	html body table.pb-table--autostack tr > :last-child { border-bottom: 0; }
	html body table.pb-table--autostack td[data-label]::before { content: attr(data-label); display: block; margin: 0 0 3px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #8f7f79; }
	html body table.pb-table--autostack td:first-child:not([data-label]) { font-weight: 600; }
	html body .price-table-wrap { overflow: visible; }
}

/* ---------- v21, 07.09.2026: по независимой приёмке Codex layout-verify-20260906-003 (R01–R05) ---------- */
/* R01 (F06): стрелки прайса 44 px налезали друг на друга по X — разводим от центра, зазор 20 px */
@media (max-width: 767px) {
	html body.page-template-new-prices #slider_new.promo__slider .swiper-button-prev { left: calc(50% - 54px) !important; right: auto !important; }
	html body.page-template-new-prices #slider_new.promo__slider .swiper-button-next { left: calc(50% + 10px) !important; right: auto !important; }
}
/* R02 (F04): загруженная CF7-форма в hero seo-шаблона держала свою ширину и обрезалась карточкой */
@media (max-width: 767px) {
	html body.services-template-seo-test .hero-side .wpcf7-form,
	html body.services-template-seo-test .hero-side .wpcf7-form-control-wrap { display: block; min-width: 0; max-width: 100%; }
	html body.services-template-seo-test .hero-side input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
	html body.services-template-seo-test .hero-side textarea { box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; }
	html body.services-template-seo-test .hero-side input[type="submit"] { font-size: 13px; padding-left: 8px; padding-right: 8px; white-space: normal; height: auto; }
}
/* R03 (F04/F08): политики и отзовики — у описания и текста оставалось width:90% */
@media (max-width: 767px) {
	html body.page-template-default .service-name__description,
	html body.page-template-default .service-name__text { width: 100%; max-width: 100%; }
}
/* R04 (F10): блок сравнения .cards-4 на 992–1199 — две колонки, «Антицеллюлитный» не влезал в 179 px */
@media (min-width: 992px) and (max-width: 1199px) {
	html body.services-template-seo-test .cards-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* R05 (F16): таблицы статей на планшете/десктопе — не шире колонки; на ≤767 они уже карточками */
@media (min-width: 768px) {
	html body:not(.postid-23981) .x_blog_main-content table:not(.pb-table--stack):not([class*="pbl-"]) { display: block; max-width: 100%; overflow-x: auto; }
}

/* 07.09.2026 — миграция 21 статьи со старого шаблона на opa.php: внутри блоков
   остались подзаголовки h3 (у статей с h2-разбиением) — приводим к сетке статьи. */
html body .x_blog_main-content_desc h3 {
	font-family: Montserrat, sans-serif;
	font-size: 22px;
	line-height: 1.3;
	font-weight: 700;
	margin: 10px 0 0;
	color: #2B2422;
}
@media (max-width: 767px) {
	html body .x_blog_main-content_desc h3 { font-size: 19px; }
}

/* 07.09.2026: обложки статей блога — шаблон режет фото до 600px по центру
   (object-fit: cover); у 21 мигрированной статьи обложки 4:3 с портретами
   врачей, центр-кроп срезал головы. Кадр держим по верху. */
html body .x_blog_main-photo img {
	object-position: center top;
}
