/* Стили, которых нет в вёрстке прототипа: блоки, появившиеся при переносе в CMS.
   Лежат отдельно от assets/css — ту папку импортёр вёрстки перезаписывает целиком. */
:root {
  --bv-bg-hero: #f0e9dd;
  --bv-bg-warm: #eee5d6;
  --bv-bg-sage: #dce9df;
  --bv-bg-blue: #d2e5ee;
}
/* Команда: отдельная страница и общий компактный блок посадочных страниц. */
.bv-team-page, .bv-team-teaser { color: #17313d; font-family: Inter, Arial, sans-serif; }
.bv-team-page *, .bv-team-teaser * { box-sizing: border-box; }
.bv-team-page h1, .bv-team-page h2, .bv-team-page h3, .bv-team-teaser h2, .bv-team-teaser h3 { font-family: Lora, Georgia, serif; font-weight: 600; letter-spacing: -.035em; overflow-wrap: anywhere; }
.bv-team-eyebrow { margin: 0 0 12px; color: #76521d; font-size: 11px; font-weight: 800; letter-spacing: .15em; line-height: 1.4; text-transform: uppercase; }
.bv-team-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 44px; color: #1d5b74; font-size: 14px; font-weight: 750; text-decoration: underline; text-underline-offset: 5px; }
.bv-team-link:hover { color: #123f54; }
.bv-team-link:focus-visible { outline: 3px solid #1b5f7a; outline-offset: 3px; }
.bv-team-hero { padding: clamp(28px, 4vw, 52px) 0 clamp(42px, 5vw, 64px); background: radial-gradient(circle at 84% 0, #d6e9e6, transparent 38%), var(--bv-bg-hero); }
.bv-team-hero .lp-crumb { margin-bottom: clamp(28px, 4vw, 48px); }
.bv-team-hero h1 { margin: 0; max-width: 900px; font-size: clamp(40px, 5vw, 66px); line-height: 1.08; }
.bv-team-hero__lead { max-width: 720px; margin: 18px 0 14px; color: #466067; font-size: clamp(16px, 1.35vw, 19px); line-height: 1.6; }
.bv-team-roles { padding: clamp(42px, 5vw, 64px) 0; background: #fff; }
.bv-team-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 385px); gap: 30px; align-items: end; margin-bottom: 24px; }
.bv-team-section-head h2, .bv-team-flow h2, .bv-team-next h2 { margin: 0; font-size: clamp(30px, 3vw, 42px); line-height: 1.17; }
.bv-team-section-head > p, .bv-team-flow__inner > div > p:last-child, .bv-team-next__inner > div > p:last-child { margin: 0; color: #50666d; font-size: 15px; line-height: 1.6; }
.bv-team-role-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.bv-team-role { min-width: 0; overflow: hidden; border: 1px solid #dce5df; border-radius: 14px; background: #f7faf7; }
.bv-team-role[id] { scroll-margin-top: 132px; }
.bv-team-role__media { position: relative; aspect-ratio: 3 / 2; background: #dbe9e4; }
.bv-team-role__media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.bv-team-role__body { padding: 19px 20px 22px; }
.bv-team-role__body > span { color: #86601f; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.bv-team-role h3 { margin: 10px 0 4px; font-size: clamp(22px, 1.8vw, 26px); line-height: 1.22; }
.bv-team-role p { margin: 0; color: #51666d; font-size: 14px; line-height: 1.55; }
.bv-team-role p.bv-team-role__position { color: #17313d; font-size: 14px; font-weight: 750; }
.bv-team-role p.bv-team-role__experience { margin: 6px 0 12px; color: #86601f; font-size: 12px; font-weight: 700; }
.bv-team-flow { padding: clamp(42px, 5vw, 64px) 0; background: var(--bv-bg-sage); }
.bv-team-flow__inner { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 5vw, 70px); align-items: center; }
.bv-team-flow__inner > div > p:last-child { max-width: 530px; margin-top: 15px; }
.bv-team-flow ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.bv-team-flow li { display: flex; align-items: center; gap: 13px; min-height: 62px; padding: 12px 16px; border: 1px solid #d1dfd9; border-radius: 12px; background: #fff; font-size: 14px; font-weight: 700; }
.bv-team-flow li span { color: #86601f; font: 600 20px/1 Lora, Georgia, serif; }
.bv-team-next { padding: 38px 0 44px; background: #fff; }
.bv-team-next__inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; }
.bv-team-next__inner > div > p:last-child { margin-top: 10px; }
.bv-team-teaser { padding: clamp(34px, 4vw, 50px) 0; background: var(--bv-bg-blue); }
.bv-team-teaser__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 14px 28px; margin-bottom: 20px; }
.bv-team-teaser h2 { margin: 0; font-size: clamp(27px, 2.8vw, 38px); line-height: 1.16; }
.bv-team-teaser__head p:not(.bv-team-eyebrow) { max-width: 600px; margin: 9px 0 0; color: #50666d; font-size: 14px; line-height: 1.55; }
.bv-team-teaser__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.bv-team-teaser__card { display: block; min-width: 0; overflow: hidden; border: 1px solid #d1dfd9; border-radius: 13px; background: #fff; color: #17313d; text-decoration: none; }
.bv-team-teaser__card:hover { border-color: #8bb7b6; background: #f9fcfa; }
.bv-team-teaser__card:focus-visible { outline: 3px solid #1b5f7a; outline-offset: 3px; }
.bv-team-teaser__card img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.bv-team-teaser__card > div { padding: 13px 15px 16px; }
.bv-team-teaser__card h3 { margin: 0; font-size: 21px; line-height: 1.2; }
.bv-team-teaser__card small { display: block; margin-top: 5px; color: #50666d; font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
@media (max-width: 950px) {
  .bv-team-role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .bv-team-section-head, .bv-team-flow__inner { grid-template-columns: 1fr; gap: 14px; }
  .bv-team-teaser__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .bv-team-teaser__card > div { padding: 11px 12px 14px; }
  .bv-team-teaser__card h3 { font-size: 19px; }
  .bv-team-teaser__card small { font-size: 12px; }
}

/* Единый компактный каталог цен; числовые данные приходят из service-prices.json. */
.price-index { color: #173640; background: #f7f8f5; }
.price-index__hero { padding: 36px 0 30px; background: #edf3f2; border-bottom: 1px solid #dce5e3; }
.price-index__hero .pg-crumb { margin-bottom: 22px; }
.price-index__hero h1 { margin: 0 0 12px; font: 600 clamp(38px, 5vw, 62px)/1.08 Lora, Georgia, serif; }
.price-index__hero > div > p:last-child { max-width: 760px; margin: 0; color: #4d6268; font-size: 17px; line-height: 1.55; }
.price-index__nav { background: #fff; border-bottom: 1px solid #dce5e3; }
.price-index__nav > div { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: thin; }
.price-index__nav a { flex: none; padding: 14px 13px; border-bottom: 2px solid transparent; color: #31545f; font-size: 13px; font-weight: 700; white-space: nowrap; }
.price-index__nav a:hover, .price-index__nav a:focus-visible { color: #0c3341; border-bottom-color: #ad783e; }
.price-index__body { padding-top: 28px; padding-bottom: 0; }
.price-index__footer { padding-top: 24px; padding-bottom: 54px; }
.price-index__footer .price-index__explain { margin-top: 0; }
.price-index__group { margin-bottom: 32px; scroll-margin-top: 125px; }
.price-index__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.price-index__heading h2 { margin: 0; font: 600 clamp(24px, 3vw, 32px)/1.2 Lora, Georgia, serif; }
.price-index__heading span { color: #678087; font-size: 13px; white-space: nowrap; }
.price-index__list { overflow: hidden; border: 1px solid #dce5e3; border-radius: 16px; background: #fff; }
.price-index__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; padding: 15px 20px; }
.price-index__row + .price-index__row { border-top: 1px solid #e8edeb; }
.price-index__row h3 { margin: 0 0 4px; font-size: 16px; line-height: 1.3; }
.price-index__row h3 a { color: #153c4a; text-decoration: none; }
.price-index__row h3 a:hover, .price-index__row h3 a:focus-visible { text-decoration: underline; }
.price-index__row h3 span { color: #a8743a; font-size: 13px; }
.price-index__row p { margin: 0; color: #64777b; font-size: 13px; line-height: 1.4; }
.price-index__row > strong { color: #153c4a; font-size: 18px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.price-index__row > strong small { color: #697e83; font-size: 12px; font-weight: 500; }
.price-index__explain { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin-top: 8px; padding: 26px 30px; border-radius: 16px; background: #e6efed; }
.price-index__explain h2, .price-index__explain h3 { margin: 0 0 9px; font: 600 22px/1.25 Lora, Georgia, serif; }
.price-index__explain p { margin: 0; color: #425d64; line-height: 1.55; }
.price-index__explain a { display: inline-block; margin-top: 12px; color: #154a5b; font-weight: 700; }
@media (max-width: 700px) {
  .price-index__hero { padding: 23px 0 25px; }
  .price-index__hero > div > p:last-child { font-size: 15px; }
  .price-index__nav a { padding: 11px 9px; font-size: 12px; }
  .price-index__body { padding-top: 23px; }
  .price-index__group { margin-bottom: 27px; scroll-margin-top: 90px; }
  .price-index__row { display: block; padding: 13px 15px; }
  .price-index__row > strong { display: block; margin-top: 8px; font-size: 17px; }
  .price-index__explain { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
}
@media (max-width: 480px) {
  .bv-team-role-grid, .bv-team-flow ol { grid-template-columns: 1fr; }
  .bv-team-role__body { padding: 16px 18px 19px; }
}
.bv-map-neutral__list { display: grid; gap: 12px; margin-top: 28px; counter-reset: bvstep; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.bv-map-neutral__list li { counter-increment: bvstep; padding: 18px 18px 20px; border: 1px solid rgba(255,255,255,.18); border-radius: 16px; background: rgba(255,255,255,.04); }
.bv-map-neutral__list li::before { content: counter(bvstep, decimal-leading-zero); display: block; margin-bottom: 10px; color: #d6bd6a; font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.bv-map-neutral__list strong { display: block; font-size: 16px; font-weight: 700; color: #fff; }
.bv-map-neutral__list span { display: block; margin-top: 6px; color: #b9ccd6; font-size: 14px; line-height: 1.5; }

/* Блок отправки заявки под формами прототипа (assets/cms/leads.js). Цвета от окружения:
   блок стоит и на светлых секциях, и на тёмной (#form на главной). */
.bv-lead { grid-column: 1 / -1; margin-top: 18px; text-align: left; padding: 18px; border: 1px solid color-mix(in srgb, currentColor 22%, transparent); border-radius: 16px; background: color-mix(in srgb, currentColor 4%, transparent); }
.bv-lead__title { margin: 0 0 14px !important; display: block; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.bv-lead__row { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.bv-lead__field { display: flex; flex: 1 1 220px; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; }
.bv-lead__field input { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid #c9d6dd; border-radius: 12px; background: #fff; color: #163a52; font-size: 16px; }
.bv-lead__field input:focus { outline: 2px solid #d6bd6a; outline-offset: 1px; }
.bv-lead__send { min-height: 48px; flex: 0 0 auto; justify-content: center; }
@media (max-width: 520px) { .bv-lead__send { width: 100%; } }
.bv-lead__send[disabled] { opacity: .6; cursor: progress; }
.bv-lead__agree { display: flex; gap: 8px; align-items: flex-start; margin-top: 12px; font-size: 13px; line-height: 1.45; opacity: .85; }
/* формы прототипа делают каждый label сеткой (.lp-brief label и др.) — галочка уезжала на отдельную строку */
.bv-lead label.bv-lead__agree { display: flex !important; grid-template-columns: none; flex-direction: row; align-items: flex-start; }
.bv-lead__agree > span { flex: 1 1 auto; min-width: 0; padding-top: 2px; }
.bv-lead label, .bv-lead label span { color: inherit !important; text-transform: none; letter-spacing: normal; }
.bv-lead__agree input { appearance: auto; -webkit-appearance: checkbox; width: 18px !important; height: 18px !important; min-height: 0 !important; margin: 2px 0 0; padding: 0; flex: 0 0 18px; accent-color: #d6bd6a; }
.bv-lead__agree a { text-decoration: underline; color: inherit; }
.bv-lead__status { margin: 10px 0 0; font-size: 14px; font-weight: 600; min-height: 1em; }
.bv-lead.is-error .bv-lead__status { color: #c2410c; }
.bv-lead.is-sent { border-color: #3f8f6b; }
.bv-lead.is-sent .bv-lead__field, .bv-lead.is-sent .bv-lead__agree, .bv-lead.is-sent .bv-lead__send { display: none; }
.bv-lead__field.is-invalid input { border-color: #c2410c; box-shadow: 0 0 0 2px rgba(194, 65, 12, .18); }
.bv-lead__agree.is-invalid span { color: #c2410c !important; }
.bv-lead .bv-lead__send { margin-top: 14px; }

/* Исправления вёрстки прототипа (найдены scripts/qa/visual.py; сообщить дизайнеру) */
/* /otzyvy/ 700–820px: «Конфиденциальность» 22px не влезала в колонку — горизонтальная прокрутка */
.lp-system-grid h3 { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: anywhere; }
/* 320–360px (iPhone SE 1, маленькие Android) — горизонтальная прокрутка 15–20px: */
@media (max-width: 360px) {
  /* главная, карточки типов скважин: заголовок и плашка цены не помещались в строку */
  article.card > .flex.justify-between { flex-wrap: wrap; }
  /* 4 страницы типов скважин: «Глубина неизвестна» 48px шире экрана */
  .sv-local-no-data strong { font-size: 38px; overflow-wrap: anywhere; }
}

/* Страница 404 (pages/_404.htm) */
.bv-404-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin-top: 22px; }
.bv-404-links a { display: block; padding: 16px 18px; border: 1px solid #dce5df; border-radius: 14px; background: #fff; color: #163a52; font-weight: 600; text-decoration: none; }
.bv-404-links a:hover { border-color: #d6bd6a; }

/* Доступность (docs/audit/2026-09-24/a11y.md) */
.bv-skip { position: absolute; left: 8px; top: -60px; z-index: 100; padding: 10px 16px; border-radius: 8px; background: #102d39; color: #fff; font-weight: 700; }
.bv-skip:focus { top: 8px; }
main:focus { outline: none; }
/* выпадашка «Услуги» на внутренних страницах: не открывается от одного фокуса, закрывается по Esc */
.bv-inner-header .nav-item:not(.is-open) > .drop { visibility: hidden; opacity: 0; pointer-events: none; }
/* фокус не уходит под липкую шапку */
html { scroll-padding-top: 130px; }
@media (min-width: 1200px) { html { scroll-padding-top: 180px; } }
/* фокус на светлом фоне: жёлтая обводка давала 1.5–1.8:1 */
.sp-page :is(a, button, summary, input, select, textarea):focus-visible,
.v2 .bv-footer a:focus-visible,
.v2 :is(.home-scenario, .home-access-brief) :is(input, select):focus-visible { outline: 3px solid #1b5f7a; outline-offset: 2px; }
.qc-options input:focus-visible + span { outline-color: #1b5f7a; }
.bv-lead__field input:focus-visible { outline: 3px solid #1b5f7a; outline-offset: 1px; }
#form .bv-lead__field input:focus-visible, .bg-water-950 .bv-lead__field input:focus-visible { outline-color: #efc75f; }
/* тёмные секции внутренних страниц — оставляем жёлтый фокус */
.sp-page :is(.wl-request-grid, .rp-check-result, .pg-next, .lp-section--navy) :is(a, button, summary, input, select, textarea):focus-visible { outline-color: #efc75f; }
input::placeholder, textarea::placeholder { color: #6a7479; opacity: 1; }
/* блок заявки: заголовок без прозрачности, чекбокс 24px, рамка поля контрастнее */
.bv-lead__title { opacity: 1; }
.bv-lead__agree { gap: 10px; }
.bv-lead__agree input { width: 24px !important; height: 24px !important; flex: 0 0 24px; margin: 0; }
.bv-lead__field input { border-color: #758890; }

/* Кнопки «Скопировать» прототипа: заявку теперь отправляет leads.js (телефон + «Отправить заявку»),
   копирование текста только сбивало с главного действия (аудит текстов 2026-09-24). Кнопки не
   удаляем из разметки — на них завязаны скрипты прототипа. */
[data-brief-copy], [data-copy-brief], #newWellCopy, #leadCopy, #accessBriefCopy, #rpCopy,
.sv-preview-copy, .wl-preview-copy { display: none !important; }

/* Выполненные работы (partials/site/works.htm, /raboty/) */
.bv-works__list { display: grid; gap: 16px; }
.bv-work { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 20px; padding: 18px; border: 1px solid #dfe6e2; border-radius: 16px; background: #fff; }
.bv-work__photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-content: start; min-width: 0; }
.bv-work__body { min-width: 0; }
.bv-work__photos img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
.bv-work__photos img:first-child { grid-column: 1 / -1; }
.bv-work__photos .bv-work__thumb { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.bv-work__meta { color: #86601f; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.bv-work h3 { margin: 6px 0 10px; color: #17313d; font-size: clamp(21px, 2vw, 26px); line-height: 1.2; }
.bv-work__specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 14px; margin: 0 0 12px; padding: 10px 0; border-block: 1px solid #e6ece8; }
.bv-work__specs dt { color: #666a66; font-size: 12px; }
.bv-work__specs dd { margin: 2px 0 0; color: #17313d; font-size: 14px; font-weight: 650; }
.bv-work p, .bv-work__done { color: #466067; font-size: 14px; line-height: 1.5; }
.bv-work p b { color: #17313d; }
.bv-work__done { margin: 7px 0 10px; padding-left: 18px; list-style: disc; }
.bv-work__done li + li { margin-top: 4px; }
.bv-work__cost { margin: 14px 0; border: 1px solid #e6ece8; border-radius: 14px; background: #f7f9f8; }
.bv-work__cost summary { cursor: pointer; padding: 12px 16px; color: #17313d; font-weight: 750; }
.bv-work__cost table { width: calc(100% - 32px); margin: 0 16px; border-collapse: collapse; font-size: 14px; }
.bv-work__cost th { padding: 7px 0; color: #466067; font-weight: 400; text-align: left; border-top: 1px solid #e6ece8; }
.bv-work__cost td { padding: 7px 0 7px 12px; color: #17313d; text-align: right; white-space: nowrap; border-top: 1px solid #e6ece8; font-variant-numeric: tabular-nums; }
.bv-work__total th, .bv-work__total td { font-weight: 800; color: #17313d; }
.bv-work__cost p { margin: 10px 16px 14px; font-size: 13px; }
@media (max-width: 900px) {
  .bv-work { grid-template-columns: minmax(0, 1fr); padding: 14px; gap: 14px; }
  .bv-work__photos img:first-child, .bv-work__photos .bv-work__thumb { grid-column: auto; aspect-ratio: 4 / 3; }
}
@media (max-width: 390px) { .bv-work__specs { grid-template-columns: 1fr; } }

/* Липкая панель на телефоне (partials/site/mobile-bar.htm): контент не прячется под ней */
@media (max-width: 1023px) { body:has(#bvMobileBar:not([hidden])) { padding-bottom: 68px; } }
#bvMobileBar[hidden] { display: none !important; }

/* Формы в один шаг: текст обращения собирает leads.js по «Отправить заявку» (родной сборкой формы),
   поэтому кнопки сборки прототипа («Собрать заявку», «Составить запрос», «Продолжить», «Показать»)
   скрыты. Калькулятор и проверка проезда на главной — со своими кнопками: там результат виден сразу. */
form[data-local-brief] button[type=submit], #newWellForm button[type=submit], #leadForm button[type=submit],
form[data-contact-brief] button[type=submit], [data-service-preview-button],
[data-water-preview] [data-preview-button] { display: none !important; }

/* Текущий раздел в липком меню страницы (assets/cms/section-nav.js) */
:is(.lp-jump, .pg-jump, .sv-inpage, .wl-subnav, .rp-subnav) a[aria-current] { color: #17313d; box-shadow: inset 0 -2px 0 #e0ae38; }

/* На промежуточных экранах шапка уже компактная: липкие подменю прилегают к ней. */
@media (min-width: 701px) and (max-width: 1199px) {
  :is(.lp-jump, .pg-jump, .sv-inpage, .wl-subnav, .rp-subnav) { top: 68px; }
  :is(.lp section[id], .pg-section, .sv-section, .wl-section, .rp-page section[id]) { scroll-margin-top: 124px; }
}

/* Общий ритм секций всех семейств страниц; текст и размеры интерактивных элементов не уменьшаем. */
:root { --bv-section-space: clamp(42px, 4vw, 62px); }
:is(.v2 .section, .lp-section, .pg-section, .sv-section, .wl-section, .rp-section, .qc-section) { padding-block: var(--bv-section-space); }
:is(.lp-section-head, .pg-section-head, .sv-section-intro) { margin-bottom: 22px; }
.v2 :is(.home-section-head, .final-process-head) { margin-bottom: 20px; }

/* Различимые фоновые главы: белые карточки и тёмные CTA остаются без изменений. */
:is(.v2 .home-signature-hero, .lp-hero, .lp-system-hero, .pg-hero) { background-color: var(--bv-bg-hero); }
:is(.sv-page .sv-hero, .wl-page .wl-hero, .rp-page .rp-hero, .sv-page .sv-catalog-hero) { background-color: var(--bv-bg-hero); }
:is(.lp-section--cream, .pg-section--paper, .sv-cream, .sv-related, .wl-cream, .rp-cream, .cp-contact-section) { background-color: var(--bv-bg-warm); }
:is(.lp-section--sage, .pg-section--sage, .pg-section--faq, .ls-hub, .rp-request, .cp-next) { background-color: var(--bv-bg-sage); }
:is(.qc-section, .rp-check-section, .sv-route) { background-color: var(--bv-bg-blue); }
.v2 :is(#price, #kits, #faq) { background-color: var(--bv-bg-warm); }
.v2 :is(.home-scenario, .final-process) { background-color: var(--bv-bg-sage); }
.v2 #calc { background-color: var(--bv-bg-blue); }
main.lp:not(.lp-system) > #fit.lp-section { background-color: var(--bv-bg-sage); }
main.lp:not(.lp-system) > #composition.lp-section { background-color: var(--bv-bg-warm); }
main.lp-system > .lp-related { background-color: var(--bv-bg-sage); }
.sv-page main > #catalogWater.sv-section { background-color: var(--bv-bg-warm); }
.sv-page main > .sv-engineering--deep { background-color: var(--bv-bg-blue); }
:is(.lp-section--cream, .lp-section--sage) .lp-section-head > p,
:is(.pg-section--paper, .pg-section--sage, .pg-section--faq) .pg-section-head > p,
:is(.wl-light, .wl-cream) .wl-intro > p,
.ls-hub-head > p, .v2 .home-scenario-copy small { color: #455b60; }
:is(.lp-kicker, .pg-kicker, .ls-hub-head > span) { color: #805027; }
:is(.sv-cream, .sv-paper, .sv-related, .sv-route) :is(.sv-overline, .sv-label) { color: #805027; }
:is(.wl-light, .wl-cream) :is(.wl-overline, .wl-mini-label) { color: #805027; }
:is(.rp-white, .rp-cream, .rp-check-section, .rp-request) .rp-overline { color: #805027; }
.v2 #price { padding-bottom: var(--bv-section-space); }
.v2 #form { padding-bottom: var(--bv-section-space); }
.pg-hero { padding-block: 38px 44px; }
.pg-crumb { margin-bottom: 20px; }
.pg-hero__actions { margin-top: 22px; }
.lp-hero { padding-block: 34px 42px; }
.lp-crumb { margin-bottom: 24px; }
.sv-hero-grid { padding-block: 22px 34px; }
.sv-hero-photo, .sv-hero-photo img { min-height: 420px; }
.lp-photo, .lp-photo img { min-height: 360px; }
.qc-questions fieldset { padding-block: 17px; }
.cp-brief-section { padding-block: var(--bv-section-space); }
.cp-contact-section { padding-bottom: var(--bv-section-space); }
/* Закрытые комплекты не должны показывать содержимое на телефоне: базовая тема
   принудительно задаёт ::details-content { display: contents } для desktop-карточек. */
@media (max-width: 1023px) {
  .v2 #kits details[data-kit]:not([open]) > div { display: none; }
}
@media (max-width: 700px) {
  :root { --bv-section-space: 38px; }
  .pg-hero { padding-block: 26px 34px; }
  .pg-hero__panel { padding: 18px; }
  .pg-hero__panel > div { padding-block: 11px; }
  .lp-hero { padding-block: 25px 34px; }
  .sv-hero-photo, .sv-hero-photo img { min-height: 230px; height: 230px; }
  .lp-photo, .lp-photo img { min-height: 220px; height: 220px; }
  .qc-questions fieldset { padding-block: 15px; }
}

/* Узкая поднавигация остаётся одной строкой: на 320 px сетка из трёх
   колонок занимала до трети короткого экрана под липкой шапкой. */
.wl-subnav .sp-shell {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 18px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
}
@media (max-width: 700px) {
  .wl-subnav a { flex: none; min-height: 44px; padding-block: 12px; white-space: nowrap; }

  /* Факты и фото на типовых страницах скважин не задерживают первый раздел. */
  .sv-hero-grid { padding-bottom: 22px; }
  .sv-hero-photo, .sv-hero-photo img { min-height: 190px; height: 190px; }
  .sv-hero-contract { padding-top: 13px; }
  .sv-hero-rail > div { padding-block: 12px; }
  .sv-hero-rail p { padding-block: 12px; }
}

/* При небольшой высоте экрана липкая поднавигация закрывала контент. */
@media (max-height: 600px) {
  :is(.lp-jump, .pg-jump, .sv-inpage, .wl-subnav, .rp-subnav) { position: static; }
}
@media (max-height: 600px) and (max-width: 1199px) {
  html { scroll-padding-top: 76px; }
  :is(.lp section[id], .pg-section, .sv-section, .wl-section, .rp-page section[id]) { scroll-margin-top: 76px; }
}

/* Длинное название города и технические термины не расширяют колонки. */
main :is(h1, h2, h3) { overflow-wrap: break-word; hyphens: auto; }

/* Раздел начинается с основного заголовка: декоративные надписи и номера
   над ним убраны на всех шаблонах. Общее правило переживает импорт темы
   и региональные тексты CMS; номера этапов и подписи полей остаются. */
main :is(
  .drill-kicker, .lp-kicker, .home-kicker, .sv-overline, .wl-overline,
  .rp-overline, .gw-kicker, .ab-kicker, .cp-kicker, .pg-kicker,
  .bv-team-eyebrow, .bv-reviews__eyebrow, .qc-eyebrow,
  .map-v2__eyebrow, .sv-hero-kicker, .ush-hero__eyebrow,
  .home-signature-hero__eyebrow, .method-compare__eyebrow,
  .home-service-body > span,
  .method-fit__grid > article > span,
  .method-scope__grid > article > span,
  .setup-handover__card > span,
  .repair-paths__grid > article > span,
  .rp-method-grid > article > span,
  .ls-hub-head > span,
  .complex-depth-head > div > span,
  .repair-paths__head > div > span,
  .repair-scope__head > div > span,
  .depth-fit__head > div > span,
  .depth-guide__head > div > span,
  .depth-process__head > div > span,
  .setup-bridge__head > div > span,
  .setup-next__head > div > span
) {
  display: none !important;
}


/* Contacts keep one page grid, independent of the compact request defaults. */
body main.cp .cp-hero { min-height: 0; padding-bottom: clamp(32px, 4vw, 56px); }
body main.cp .cp-contact-grid,
body main.cp .cp-brief-grid {
  width: min(calc(100% - var(--bv-gutter) * 2), var(--bv-content-width));
  max-width: var(--bv-content-width);
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 24px;
  margin: 0 auto;
  transform: none;
}
body main.cp :is(.cp-contact-card, .cp-map-card, .cp-brief-intro, .cp-brief-form, .cp-fields > label, .cp-map-caption > div) { min-width: 0; }
body main.cp :is(.cp-contact-card, .cp-brief-form) { padding: 24px; }
body main.cp .cp-brief-form { max-width: none; margin: 0; }
body main.cp .cp-map-caption { padding: 20px 24px; }
body main.cp .cp-fields :is(input, select, textarea) { font-size: 16px; }
body main.cp .cp-task-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
body main.cp .cp-brief-form > .bv-lead.bv-lead { grid-template-columns: minmax(0, 1fr); align-items: start; }
body main.cp .cp-brief-form > .bv-lead .bv-lead__agree { grid-column: 1; align-self: start; }
body main.cp .cp-form-bottom:has(> .cp-button[hidden]) { display: none; }
@media (max-width: 1000px) {
  body main.cp :is(.cp-contact-grid, .cp-brief-grid) { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  body main.cp .cp-fields { grid-template-columns: minmax(0, 1fr); }
  body main.cp .cp-fields-wide { grid-column: 1; }
}
@media (max-width: 600px) {
  body main.cp :is(.cp-contact-card, .cp-brief-form) { padding: 18px; }
  body main.cp .cp-map-caption { padding: 18px; }
  body main.cp .cp-task-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body main.cp .cp-task-options button { min-width: 0; min-height: 44px; padding-inline: 8px; }
}

/* Office map uses the city's current address and company_coords from the CMS. */
.bv-office-map-marker { position:absolute; z-index:3; width:32px; height:40px; transform:translate(-50%,-100%); pointer-events:none; }
.bv-office-map-marker span { display:block; width:30px; height:30px; background:#d94b38; border:3px solid #fff; border-radius:50% 50% 50% 0; transform:rotate(-45deg); box-shadow:0 2px 8px #0005; }
.bv-office-map-marker span::after { content:''; position:absolute; width:8px; height:8px; border-radius:50%; background:#fff; top:8px; left:8px; }
.bv-office-map__layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr); gap:32px; margin-top:28px; }
.bv-office-map .cp-map-frame { position:relative; min-width:0; height:400px; overflow:hidden; border-radius:18px; background:#e6edf0; touch-action:pan-y; }
.bv-office-map .cp-map-tiles { position:absolute; inset:0; }
.bv-office-map .cp-map-tiles img { position:absolute; width:256px; height:256px; max-width:none; user-select:none; }
.bv-office-map .cp-map-controls { position:absolute; z-index:4; top:16px; right:16px; display:grid; gap:4px; }
.bv-office-map .cp-map-controls button { width:44px; height:44px; background:#fff; color:#12364a; border:1px solid #cad7dd; border-radius:8px; font-size:26px; cursor:pointer; }
.bv-office-map .cp-map-attribution { position:absolute; right:0; bottom:0; z-index:4; padding:3px 7px; background:#fffe; color:#12364a; font-size:11px; }
.bv-office-map .cp-map-error { position:absolute; z-index:4; inset:30% 20px auto; padding:20px; background:#fff; color:#12364a; border-radius:12px; }
.bv-office-map__details { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:18px; min-width:0; }
.bv-office-map__details h3 { font-size:24px; line-height:1.3; overflow-wrap:anywhere; }
.bv-office-map__details > span { color:#bed2df; }
.bv-office-map__details .btn-primary { text-align:center; }
@media(max-width:760px) { .bv-office-map__layout { grid-template-columns:1fr; gap:24px; } .bv-office-map .cp-map-frame { height:320px; } }
