
:root{--page-title-display:block}
/*# sourceURL=ccp-hfl-bare-inline-css */


/* 1. Контент по ширине шапки и подвала — ОДНИМ правилом на все экраны.
   Тема Hello ведёт свою лесенку 500/600/800/1140 px по точкам перелома, и на
   планшете это давало 600 px контента при экране 834: треть ширины пустовала,
   тогда как шапка и подвал занимали её целиком. Лесенку снимаем: на широком
   экране упираемся в 1296, на узком значение просто не срабатывает и контент
   занимает всю доступную ширину за вычетом боковых полей.

   Селектор повторяет форму темы, иначе не перебить: у Hello стоит
   body:not([class*="elementor-page-"]) .site-main, и он весомее простого
   main.site-main. Обходимся без !important. */
body:not([class*="elementor-page-"]) main.site-main{max-width:1296px}

/* 2. Единая колонка текста. Одно значение в пикселях для ВСЕГО, что лежит в
   потоке статьи, — поэтому у заголовков, абзацев и наших блоков общий левый
   край. Колонку центрируем: иначе она прижата влево и справа остаётся пустота
   во всю ширину контейнера. */
.page-content > p,
.page-content > ul,
.page-content > ol,
.page-content > dl,
.page-content > blockquote,
.page-content > h1,
.page-content > h2,
.page-content > h3,
.page-content > h4,
.page-content > .ccp-steps,
.page-content > .ccp-ai-cta,
.page-content > .ccp-note,
.page-content > .ccp-verified,
.page-content > .ccp-faq,
.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > dl,
.entry-content > blockquote,
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.entry-content > .ccp-steps,
.entry-content > .ccp-ai-cta,
.entry-content > .ccp-note,
.entry-content > .ccp-verified,
.entry-content > .ccp-faq,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > p,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > ul,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > ol,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > dl,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > blockquote,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > h1,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > h2,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > h3,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > h4,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > .ccp-steps,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > .ccp-ai-cta,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > .ccp-note,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > .ccp-verified,
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container > .ccp-faq,
body.single-post .elementor-location-single .elementor-widget-heading h1.elementor-heading-title,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > p,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > ul,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > ol,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > dl,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > blockquote,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > h1,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > h2,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > h3,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > h4,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > .ccp-steps,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > .ccp-ai-cta,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > .ccp-note,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > .ccp-verified,
body.single-articles .elementor-widget-theme-post-content > .elementor-widget-container > .ccp-faq,
body.single-articles .elementor-location-single .elementor-widget-heading h1.elementor-heading-title,
.page-header h1.entry-title,
.elementor-widget-theme-post-content > .elementor-widget-container > p,
.elementor-widget-theme-post-content > .elementor-widget-container > ul,
.elementor-widget-theme-post-content > .elementor-widget-container > ol,
.elementor-widget-theme-post-content > .elementor-widget-container > dl,
.elementor-widget-theme-post-content > .elementor-widget-container > blockquote,
.elementor-widget-theme-post-content > .elementor-widget-container > h1,
.elementor-widget-theme-post-content > .elementor-widget-container > h2,
.elementor-widget-theme-post-content > .elementor-widget-container > h3,
.elementor-widget-theme-post-content > .elementor-widget-container > h4,
.elementor-widget-theme-post-content > .elementor-widget-container > .ccp-steps,
.elementor-widget-theme-post-content > .elementor-widget-container > .ccp-ai-cta,
.elementor-widget-theme-post-content > .elementor-widget-container > .ccp-note,
.elementor-widget-theme-post-content > .elementor-widget-container > .ccp-verified,
.elementor-widget-theme-post-content > .elementor-widget-container > .ccp-faq,
.elementor-widget-text-editor > .elementor-widget-container > p,
.elementor-widget-text-editor > .elementor-widget-container > ul,
.elementor-widget-text-editor > .elementor-widget-container > ol,
.elementor-widget-text-editor > .elementor-widget-container > dl,
.elementor-widget-text-editor > .elementor-widget-container > blockquote,
.elementor-widget-text-editor > .elementor-widget-container > h1,
.elementor-widget-text-editor > .elementor-widget-container > h2,
.elementor-widget-text-editor > .elementor-widget-container > h3,
.elementor-widget-text-editor > .elementor-widget-container > h4,
.elementor-widget-text-editor > .elementor-widget-container > .ccp-steps,
.elementor-widget-text-editor > .elementor-widget-container > .ccp-ai-cta,
.elementor-widget-text-editor > .elementor-widget-container > .ccp-note,
.elementor-widget-text-editor > .elementor-widget-container > .ccp-verified,
.elementor-widget-text-editor > .elementor-widget-container > .ccp-faq{
  max-width:840px;
  margin-inline:auto;
  /* Длинные строки без пробелов — ссылки на документы, номера, адреса — не
     переносятся сами и вылезают за экран, давая горизонтальную прокрутку всей
     странице. Одна ссылка в 1386 px в колонке 720 растягивала страницу до
     1793 при экране 1512. */
  overflow-wrap:anywhere}

/* Случай 2: та же колонка, но прижатая к левому краю страницы. Сейчас список
   селекторов пуст — левое прижатие отменено 10.08: на длинном описании локации
   текст висел в левой половине, а правая половина страницы пустовала. Правило
   оставлено, чтобы вернуть к левому краю отдельный блок, если понадобится. */
.ccp-layout-none{
  max-width:840px;
  margin-inline:0;
  overflow-wrap:anywhere}

/* Абзацы и списки — по левому краю, без переносов по слогам. 14.09.2026:
   владелец выбрал вид статей (/ru/dubai-tbilisi-yerevan-relocation-costs-ru/),
   а там текст не растянут. Растяжка с переносами была нужна колонке 720, где
   строка короткая; в 840 рваный правый край читается спокойнее и совпадает
   со статьями. */
.page-content > p,
.page-content > ul,
.page-content > ol,
.page-content > dl,
.page-content > blockquote,
.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > dl,
.entry-content > blockquote,
.elementor-widget-theme-post-content > .elementor-widget-container > p,
.elementor-widget-theme-post-content > .elementor-widget-container > ul,
.elementor-widget-theme-post-content > .elementor-widget-container > ol,
.elementor-widget-theme-post-content > .elementor-widget-container > dl,
.elementor-widget-theme-post-content > .elementor-widget-container > blockquote,
.elementor-widget-text-editor > .elementor-widget-container > p,
.elementor-widget-text-editor > .elementor-widget-container > ul,
.elementor-widget-text-editor > .elementor-widget-container > ol,
.elementor-widget-text-editor > .elementor-widget-container > dl,
.elementor-widget-text-editor > .elementor-widget-container > blockquote{
  text-align:left;hyphens:manual}

/* Заголовки по ширине не растягиваем: перенос по слогам в них выглядит
   неряшливо, а строк там одна-две. */
.page-header h1.entry-title,
.page-content > h1,
.page-content > h2,
.page-content > h3,
.page-content > h4,
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.elementor-widget-theme-post-content > .elementor-widget-container > h1,
.elementor-widget-theme-post-content > .elementor-widget-container > h2,
.elementor-widget-theme-post-content > .elementor-widget-container > h3,
.elementor-widget-theme-post-content > .elementor-widget-container > h4,
.elementor-widget-text-editor > .elementor-widget-container > h1,
.elementor-widget-text-editor > .elementor-widget-container > h2,
.elementor-widget-text-editor > .elementor-widget-container > h3,
.elementor-widget-text-editor > .elementor-widget-container > h4{
  text-align:left;hyphens:manual}

/* 2.1 Шкала заголовков чтения — одна на сайт (14.09.2026). Значения взяты у
   статей (.ccp-ar-body), их владелец выбрал эталоном. Обычные страницы темы
   (/ru/upravlenie-nedvizhimostyu-v-dubae/) брали H2/H3 у кита — 30/22 против
   27/21 у статей. Токены — чтобы новые шаблоны ссылались на них, а не
   заводили свои цифры. Прямые дети .page-content: заголовки внутри наших
   виджетов (карточки дашбордов и т. п.) остаются со своими размерами.
   Вес 0,2,1 больше кита (0,1,1), без !important. */
:root{
  --ccp-h1:clamp(24px,2.6vw,34px);
  --ccp-h2:clamp(21px,2.3vw,27px);
  --ccp-h3:clamp(18px,1.9vw,21px);
  /* H1 в hero-карточке лендинга (метро, YoloStay/ccp-pg, sell, legal, academy,
     careers, vacancies, flat-extras). Было три значения: 42/44/52 px. Главная и
     карточка товара с фото во весь экран — отдельно, их не трогали. */
  --ccp-hero-h1:clamp(28px,3.6vw,44px);
  --ccp-measure:840px}
.site-main .page-content>h2{font-size:var(--ccp-h2)}
.site-main .page-content>h3{font-size:var(--ccp-h3)}

/* 2.2 Компонент «сообщение системы» — дословный текст уведомления из кабинета
   DLD/девелопера (блок Цитата с классом ccp-msg). Первый случай 14.09.2026:
   /ru/articles/chto-oznachaet-property-termination-procedure-v-dubae/, где три
   примера уведомлений стояли жирными абзацами и сливались с текстом. Моно-шрифт
   (системный, см. ccp-mono-numerics) — чтобы читалось как текст с экрана, а не
   наша речь. Цвета — токены палитры, ночная тема их подменяет сама. */
blockquote.wp-block-quote.ccp-msg{
  margin:16px 0 20px;padding:14px 18px;
  background:var(--e-global-color-e262747,#F7F7F7);
  border:1px solid var(--e-global-color-ccpline,#EEEEEE);
  border-left:4px solid var(--e-global-color-primary,#1D5AD2);
  border-radius:12px;font-style:normal}
blockquote.wp-block-quote.ccp-msg p{
  margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:15px;line-height:1.6;text-align:left;hyphens:manual;overflow-wrap:anywhere;
  color:var(--e-global-color-text,#202124)}
blockquote.wp-block-quote.ccp-msg p[dir="rtl"]{
  direction:rtl;text-align:right;font-family:Tahoma,"Segoe UI",Arial,sans-serif;font-size:18px}

/* 3. Боковые поля на узких экранах.
   Задаём ПИКСЕЛЯМИ, а не процентами: 2% это 6 px на экране 320 и почти 9 на
   430 — текст то липнет к краю, то нет. Мировая практика единодушна:
   Material Design 16dp, Apple HIG 16pt, Bootstrap 12px, Tailwind 16px.
   Отступ вешаем на область ТЕКСТА, а не на внешний контейнер: обложки,
   слайдеры и карты должны оставаться во всю ширину экрана. */
/* Заголовок страницы лежит в СОСЕДНЕМ блоке .page-header, а не в .page-content.
   Без него он на телефоне торчал левее остального текста на все 16 px. */
@media (max-width:767px){
  .page-header,.page-content,.entry-content,
  .elementor-widget-theme-post-content>.elementor-widget-container{padding-inline:16px}
}
@media (min-width:768px) and (max-width:1024px){
  .page-header,.page-content,.entry-content,
  .elementor-widget-theme-post-content>.elementor-widget-container{padding-inline:24px}
}

/* 3.1 ДЫРА МЕЖДУ ПЛАНШЕТОМ И 1296 (найдено замером 12.08 по жалобе владельца:
   «сжимаю окно до 85% — текст липнет к краю браузера»).

   Замер ширины внутреннего контейнера по ширине окна:
     1440 → 1296 (поле 72)   1360 → 1296 (поле 32)
     1300 → 1296 (поле 2)    1280 → 1280 (поле 0)
     1200 → 1200 (поле 0)    1100 → 1100 (поле 0)
     1024 → 984  (поле 20, сработала планшетная настройка)

   Причина: у контейнеров ширина задана ЖЁСТКО `width:1296px`, а не max-width.
   При окне 1200 контейнер всё равно требует 1296 — отсюда и нулевое поле, и
   горизонтальное переполнение в 10 px в том же диапазоне.

   Поле вешаем на .e-con-inner (внутреннюю обёртку), а не на .e-con: сам
   контейнер должен оставаться во всю ширину, иначе обложки, слайдеры и карты
   перестанут быть полноэкранными. */
@media (min-width:1025px) and (max-width:1360px){
  .e-con,.e-con>.e-con-inner{max-width:100%}
  .e-con>.e-con-inner{padding-inline:24px}
}

/* 3.2 ШАПКА НА ТЕЛЕФОНЕ ЛОМАЛАСЬ В ДВЕ СТРОКИ (жалоба владельца 12.08:
   «кнопки ночного режима и языка встают над бургером, причём не на всех
   устройствах»).

   Замер правой группы шапки: тема 26 + язык 37 + бургер 33 = 96 px,
   плюс ДВА ЗАЗОРА ПО 20 = 136 px нужно. А сам контейнер сжимается вместе с
   экраном: при 500 он 183 (влезает), при 360 — 127, при 320 — 111.
   Отсюда и «не на всех устройствах»: на 390–430 ещё держится, на 360 рвётся
   в две строки, на 320 — в три.

   Лечим тремя правилами сразу: запрещаем перенос, ужимаем зазор и не даём
   группе сжиматься — свободную ширину пусть отдаёт логотип, ему есть куда.

   Селектор без номера элемента: у русской и английской шапки (#11252 и #66)
   номера РАЗНЫЕ, а вот «контейнер, у которого прямым потомком лежит бургер» —
   признак общий. :has() поддержан во всех текущих браузерах (проверено). */
@media (max-width:880px){
  .elementor-location-header .e-con:has(> .elementor-widget-nav-menu){
    flex-wrap:nowrap !important;
    gap:12px !important;
    flex:0 0 auto !important}
}
/* На 320 (iPhone SE и подобные) бургер всё ещё вылезал на 2 px за экран:
   правый край 322 при ширине 320. Зазора 8 хватает с запасом. */
@media (max-width:360px){
  .elementor-location-header .e-con:has(> .elementor-widget-nav-menu){gap:8px !important}
}

/* 3.3 ПЕРЕКЛЮЧАТЕЛЬ ВАЛЮТ НАКРЫВАЛ КОНТЕНТ (замер 12.08 на экране 430:
   `.woocs_auto_switcher` — fixed, right:0, высота 220, столбиком по центру
   правого края, z-index 99999. Он лежал прямо поверх полей фильтра).

   Не прячем — валюта нужна. Кладём компактной полоской в нижний угол:
   это привычное место для таких виджетов и середину экрана оно не трогает. */
@media (max-width:767px){
  .woocs_auto_switcher{
    top:auto !important;bottom:12px !important;right:12px !important;left:auto !important;
    width:auto !important;height:auto !important;
    display:flex !important;flex-direction:row !important;
    border-radius:10px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.18)}
  .woocs_auto_switcher li{
    width:auto !important;min-width:48px;height:34px !important;margin:0 !important;
    display:flex !important;align-items:center;justify-content:center;font-size:12px}
}

/* На узком экране выравнивание по ширине вредит: строка короткая, дыры между
   словами становятся заметными. Возвращаем обычное выравнивание. */
@media (max-width:767px){
  .page-content > p,
.page-content > ul,
.page-content > ol,
.page-content > dl,
.page-content > blockquote,
.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > dl,
.entry-content > blockquote,
.elementor-widget-theme-post-content > .elementor-widget-container > p,
.elementor-widget-theme-post-content > .elementor-widget-container > ul,
.elementor-widget-theme-post-content > .elementor-widget-container > ol,
.elementor-widget-theme-post-content > .elementor-widget-container > dl,
.elementor-widget-theme-post-content > .elementor-widget-container > blockquote,
.elementor-widget-text-editor > .elementor-widget-container > p,
.elementor-widget-text-editor > .elementor-widget-container > ul,
.elementor-widget-text-editor > .elementor-widget-container > ol,
.elementor-widget-text-editor > .elementor-widget-container > dl,
.elementor-widget-text-editor > .elementor-widget-container > blockquote{text-align:left}
}

/* Текстовые строки ВНУТРИ широких блоков.
   Сам блок — таблица, плитки, график — занимает всю ширину, это правильно. Но
   лид и сноски внутри него это обычный текст, и на 1296 px они шли строкой в
   140 символов. Ограничиваем их той же колонкой, но НЕ центрируем: у блока
   свой левый край, и текст должен начинаться вместе с ним. */
.ccp-am__lead,.ccp-am__note,.ccp-am__src,
.ccp-pm__lead,.ccp-pm__note,.ccp-pm__src,
.ccp-rl-note,.ccp-rl__note,
.ccp-faq__q,.ccp-faq__a,.ccp-faq__a>p,
.ccp-nearby__head,.ccp-steps>p,.ccp-note{max-width:840px}

/* Замер 11.08 нашёл ещё три таких подписи, которых в списке не было. Они и
   давали самые длинные строки на типовых страницах: 1161 px у источника под
   ходом строительства (страница проекта), 943 px у лида блока мест (локация),
   839 px у сноски ипотечного блока (карточка товара). */
.ccp-ps-note,.ccp-ps-source,.ccp-plb__lead,.ccp-mc-note,
.ccp-am__growth,.ccp-pm__growth,
.ccp-pb__lead,.ccp-pb__byline{max-width:840px}

/* 5. ПЛОТНОСТЬ КОНТЕНТА. Аудит 11.08 замерил: на 21 странице из 41 содержимое
   занимает меньше половины ширины 1296 — то есть страница шириной 1296
   используется как 600-700, а остальное пустует по всей высоте. Причина не в
   самой ширине, а в том, что блоки не научились её ЗАНИМАТЬ: одни остались
   узкими, другие, наоборот, растянулись до бессмысленного.

   Всё, что ниже, сделано только стилями — в данных Elementor не меняется
   ничего, поэтому редактор шаблонов эти правки задеть не могут.

   ⚠️ Селекторы намеренно тяжелее исходных (ТЕГ + класс против одного класса).
   Плагины печатают свой <style> на wp_head, то есть ПОЗЖЕ этого файла, и при
   равном весе побеждали бы они. Обходимся без !important. */

/* 5.1 Плитки фактов у локаций и мест.
   Было display:flex без flex:1 — плитки держали «естественную» ширину и жались
   влево: на странице района четыре плитки занимали 516 px из 1296, справа
   оставалось 670 px пустоты. Именно это читается как «сайт стал пустой».
   Приём взят у соседних блоков (.ccp-am__tiles, .ccp-pm__tiles,
   .ccp-dev-facts__tiles), где он уже работает: сетка растягивает плитки по
   ширине, но не даёт им стать уже 150 px и переносит лишние на новую строку.
   Затронуто 3922 локации и 636 мест. */
div.ccp-plb__facts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px}

/* 5.2 Таблицы данных на посадочных.
   width:100% на 1296 растягивал таблицу из трёх колонок в три плашки по 430 px
   с одним числом в каждой. width:auto возвращает таблице ширину ПО
   СОДЕРЖИМОМУ: узкая остаётся узкой, широкая занимает всё, что нужно.
   Обёртка .ccp-rl-scroll с overflow-x у этих таблиц уже есть, поэтому на узком
   экране прокрутка не потеряется. */
table.ccp-rl-table{width:auto;max-width:100%}

/* 5.3 Страница «О компании» — тоже страница чтения, а вела себя как две разные.
   Таблица «показатель → значение» шла в две колонки на все 1296 (490 px под
   название строки и 800 под значение), список вопросов — на все 1296 при
   длине вопроса в 600 px, а текст между ними — колонкой от 396. На одном
   экране было видно два левых края.
   ⚠️ Ширину задаём потолком, а не width:auto: у th карточки стоит доля 38%,
   а доля считается ОТ ШИРИНЫ ТАБЛИЦЫ — с auto она поплывёт. */
table.ccp-about-facts,
.ccp-about-stats,.ccp-about-stats__note,.ccp-about-faq{
  max-width:840px;margin-inline:auto}

/* 5.4 Блоки данных на посадочных — в ту же колонку, что и текст.
   Прямое следствие 5.2: таблица сжалась с 1296 до 500-700 px, но осталась на
   левом краю СТРАНИЦЫ (108), тогда как весь текст посадочной идёт колонкой от
   396. Узкая таблица у чужого края читается как обронённая.
   Посадочная — страница ЧТЕНИЯ: текст, таблица и подпись под ней должны иметь
   ОДИН левый край. Уводим блоки в ту же колонку 720 и центрируем так же.
   ⚠️ Это отменяет прежнее решение «не центрировать .ccp-rl-note» (правило 3
   ниже): оно было верным, пока таблица рядом занимала все 1296 и задавала
   левый край сама. Теперь край задаёт колонка. */
.ccp-rl-scroll,.ccp-rl-cards{max-width:840px;margin-inline:auto}
.ccp-rl-note{margin-inline:auto}

/* 5.5 Карточка товара: заголовки секций смотрели в разные стороны.
   Замер 11.08 нашёл на одной странице 11 разных левых краёв у заголовков.
   Причина не в ширинах, а в выравнивании: шесть заголовков секций стоят по
   левому краю («Характеристики», «О проекте», «Ход строительства», «Удобства»,
   «О районе», «Расположение на карте»), а четыре — по ЦЕНТРУ («Описание»,
   «Галерея», «Больше вариантов», «Получить презентацию»). Блок у всех
   одинаковый, 1296 px от края 108, но у центрированных видимый край текста
   уезжает на 511-672 px. Это не замысел, а расхождение настроек виджетов,
   накопленное правками.

   Правим стилем, а НЕ данными Elementor: правило снимается одной строкой, а
   шаблон остаётся ровно тем же, что открывается в редакторе.
   ⚠️ Значение задаём на самом заголовке. Elementor вешает выравнивание на
   контейнер виджета, а заголовок его НАСЛЕДУЕТ — любое прямое объявление
   наследование перебивает, поэтому гонка за весом селектора здесь не нужна. */
body.single-product .elementor-widget-heading .elementor-heading-title{text-align:left}

/* 4. Выпадающее меню: скругление и тень, чтобы список читался поверх страницы. */
.elementor-nav-menu--dropdown,.elementor-nav-menu .sub-menu{
  border-radius:12px;overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.14),0 2px 6px rgba(0,0,0,.06)}
html[data-theme="night"] .elementor-nav-menu--dropdown,
html[data-theme="night"] .elementor-nav-menu .sub-menu{
  box-shadow:0 10px 30px rgba(0,0,0,.5),0 2px 6px rgba(0,0,0,.35)}
/* Скругление у контейнера обрежет углы первого и последнего пункта само,
   но у ссылок бывает своя заливка — снимаем её радиус, иначе видны уголки. */
.elementor-nav-menu--dropdown a,.elementor-nav-menu .sub-menu a{border-radius:0}
/*# sourceURL=ccp-layout-inline-css */


.ccp-faq{margin:0 0 8px}.ccp-faq__item{border-bottom:1px solid var(--e-global-color-ccpline,#e0e0e0);padding:14px 0}.ccp-faq__q{cursor:pointer;font-weight:600;line-height:1.4;list-style:none;display:flex;justify-content:space-between;gap:16px;color:var(--e-global-color-text,#222)}.ccp-faq__q::-webkit-details-marker{display:none}.ccp-faq__q::after{content:"+";flex:0 0 auto;font-weight:400;font-size:22px;line-height:1}.ccp-faq__item[open] .ccp-faq__q::after{content:"\2212"}.ccp-faq__a{padding-top:8px;color:var(--e-global-color-secondary,#555);line-height:1.6}.ccp-faq__a p{margin:0}
/*# sourceURL=ccp-faq-landing-inline-css */


.ccp-photo-credit{display:block;margin-top:2px;font-size:10px;line-height:1.3;color:var(--e-global-color-secondary,#777);opacity:.75}.ccp-photo-credit a{color:inherit;text-decoration:none}.ccp-photo-credit a:hover{text-decoration:underline}
/*# sourceURL=ccp-photo-credit-inline-css */


.elementor-471 .elementor-element-c20d341{overflow-wrap:anywhere}.elementor-471 .elementor-element-8af38a9 .elementor-heading-title{text-wrap:balance}
/*# sourceURL=ccp-team-card-inline-css */


[data-elementor-type]:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"]) > .e-con:first-child > .elementor-widget-spacer:first-child .elementor-spacer-inner,[data-elementor-type]:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"]) > .e-con:first-child > .e-con-inner > .elementor-widget-spacer:first-child .elementor-spacer-inner,[data-elementor-type]:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"]) > .elementor-section:first-child .elementor-widget-spacer:first-child .elementor-spacer-inner{min-height:calc(var(--ccp-hd-h,131px) + 19px)}@media(max-width:767px){[data-elementor-type]:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"]) > .e-con:first-child > .elementor-widget-spacer:first-child .elementor-spacer-inner,[data-elementor-type]:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"]) > .e-con:first-child > .e-con-inner > .elementor-widget-spacer:first-child .elementor-spacer-inner,[data-elementor-type]:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"]) > .elementor-section:first-child .elementor-widget-spacer:first-child .elementor-spacer-inner{min-height:80px}}main.site-main{padding-top:calc(var(--ccp-hd-h,131px) + 19px)}@media(max-width:767px){main.site-main{padding-top:80px}}
/*# sourceURL=ccp-top-gap-inline-css */


/* Крупные действия: сохраняем их текущие цвета, добавляем единый размер и отклик. */
:where(a.elementor-button,.ccp-hf-btn,.wp-element-button,button.ccp-form__btn,button[type="submit"],input[type="submit"]){
  min-height:44px;
  border-radius:12px;
  font-weight:650;
  transition:filter .16s ease,box-shadow .16s ease,transform .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease
}
@media (hover:hover) and (pointer:fine){
  :where(a.elementor-button,.ccp-hf-btn,.wp-element-button,button.ccp-form__btn,button[type="submit"],input[type="submit"]):not([disabled]):not([aria-disabled="true"]):hover{
    filter:brightness(.9);
    transform:translateY(-1px);
    box-shadow:0 8px 18px rgba(36,88,197,.22)
  }
}
:where(button,input[type="submit"],[role="button"])[disabled],
:where(button,input[type="submit"],[role="button"])[aria-disabled="true"]{
  cursor:not-allowed!important;
  opacity:.58!important;
  box-shadow:none!important;
  transform:none!important
}

/* Внутритекстовую ссылку теперь можно узнать не только по цвету. */
:where(.entry-content,.elementor-widget-text-editor,.elementor-widget-theme-post-content,.ccp-faq__a,.woocommerce-product-details__short-description) :is(p,li) a:not(.elementor-button):not(.wp-element-button):not([class*="btn"]):not([class*="button"]){
  text-decoration:underline!important;
  text-decoration-thickness:1.5px!important;
  text-underline-offset:3px;
  text-decoration-skip-ink:auto
}
:where(.entry-content,.elementor-widget-text-editor,.elementor-widget-theme-post-content,.ccp-faq__a,.woocommerce-product-details__short-description) :is(p,li) a:not(.elementor-button):not(.wp-element-button):not([class*="btn"]):not([class*="button"]):hover{
  text-decoration-thickness:2.5px!important
}

/* Полные ссылки-карточки уже работают; добавляем им явный клавиатурный фокус. */
.ccp-lst-card:focus-visible{
  border-color:var(--e-global-color-primary,#2458c5)!important;
  transform:translateY(-2px)
}

@media (prefers-reduced-motion:reduce){
  :where(a,button,input,select,textarea,.ccp-lst-card){transition:none!important;scroll-behavior:auto!important}
}
/*# sourceURL=ccp-interaction-states-inline-css */


.elementor-location-header:before,.elementor-location-footer:before{content:"";display:table;clear:both}.sticky-header{background-color:transparent;transition:background-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease;box-shadow:none}.sticky-header.scrolled{background-color:var(--e-global-color-accent,#fff)!important;box-shadow:0 1px 0 var(--e-global-color-ccpline,#eee),0 6px 20px rgba(0,0,0,.1)}@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.sticky-header.scrolled{background-color:color-mix(in srgb,var(--e-global-color-accent,#fff) 82%,transparent)!important;-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px)}}@media (prefers-reduced-motion:reduce){.sticky-header{transition:none}}
/*# sourceURL=ccp-hfl-inline-css */


/* Ни одной собственной заливки: фон берётся от страницы, поэтому блок одинаково
   живёт и в дневной, и в ночной теме (html[data-theme="night"] подменяет токены). */
.ccp-about-stats{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;margin:32px 0 8px;
}
.ccp-about-stats__item{
    display:flex;flex-direction:column;gap:6px;
    padding:20px;border:1px solid var(--e-global-color-ccpline,#d9d9d9);
    text-decoration:none;transition:border-color .18s ease;
}
a.ccp-about-stats__item:hover{border-color:var(--e-global-color-primary,#1D5AD2);}
.ccp-about-stats__num{
    font-family:"Montserrat",sans-serif;font-weight:800;
    font-size:clamp(24px,2.6vw,34px);line-height:1.1;
    color:var(--e-global-color-primary,#1D5AD2);
}
.ccp-about-stats__label{
    font-family:"Montserrat",sans-serif;font-weight:500;
    font-size:clamp(12px,1.1vw,15px);line-height:1.35;
    color:var(--e-global-color-secondary,#5E5E5E);
}
.ccp-about-stats__note{
    font-size:13px;opacity:.65;margin:0 0 28px;
}
.ccp-about-facts{
    width:100%;border-collapse:collapse;margin:8px 0 28px;
    font-size:clamp(14px,1.1vw,16px);
}
.ccp-about-facts th,
.ccp-about-facts td{
    text-align:left;vertical-align:top;padding:11px 14px;
    border-bottom:1px solid var(--e-global-color-ccpline,#e4e4e4);
}
.ccp-about-facts th{
    width:38%;font-weight:600;color:var(--e-global-color-secondary,#5E5E5E);
}
.ccp-about-faq{margin:8px 0 28px;}
.ccp-about-faq__item{
    border-bottom:1px solid var(--e-global-color-ccpline,#e4e4e4);
}
.ccp-about-faq__q{
    cursor:pointer;list-style:none;padding:16px 34px 16px 0;position:relative;
    font-weight:600;font-size:clamp(15px,1.2vw,17px);
    color:var(--e-global-color-primary,#1D5AD2);
}
.ccp-about-faq__q::-webkit-details-marker{display:none;}
.ccp-about-faq__q::after{
    content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
    font-size:20px;font-weight:400;opacity:.55;
}
.ccp-about-faq__item[open] .ccp-about-faq__q::after{content:"–";}
.ccp-about-faq__a{padding:0 0 16px;}
.ccp-about-faq__a p{margin:0;}
@media (max-width:1024px){
    .ccp-about-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:600px){
    .ccp-about-stats{grid-template-columns:1fr;}
    .ccp-about-facts th{width:44%;}
}

/* ======================================================================
   ПЛОСКИЙ СКИН 14.08.2026 — дизайн-язык сайта (главная, карточка товара):
   плитки со скруглением и мягкой заливкой, панели с рамкой, ночные пары
   явно (токены темы ночью бледнеют, на них не полагаемся).
   ====================================================================== */
.ccp-about-stats__item{border-radius:14px;background:#f7f8fa;border:1px solid #e8eaee;
    transition:border-color .18s ease,box-shadow .18s ease}
a.ccp-about-stats__item:hover{border-color:#1D5AD2;
    box-shadow:0 6px 18px rgba(16,24,40,.07)}
.ccp-about-stats__num{color:#1D5AD2;font-variant-numeric:tabular-nums}
.ccp-about-stats__label{color:#5f6368}
html[data-theme="night"] .ccp-about-stats__item{background:#232830;border-color:#31363f}
html[data-theme="night"] .ccp-about-stats__num{color:#8ab4f8}
html[data-theme="night"] .ccp-about-stats__label{color:#9AA0A6}

.ccp-about-facts{background:#fff;border:1px solid #e6e8ec;border-radius:16px;
    border-collapse:separate;border-spacing:0;overflow:hidden;
    box-shadow:0 1px 2px rgba(16,24,40,.04),0 6px 18px rgba(16,24,40,.05)}
/* ⚠️ Тема рисует таблицам полную сетку — гасим всё, кроме горизонтальных
   линеек (тот же плоский вид, что у таблиц сделок и стока). */
.ccp-about-facts th,.ccp-about-facts td{border:0 !important;
    border-bottom:1px solid #eef0f3 !important;background:transparent !important}
.ccp-about-facts tr:last-child th,.ccp-about-facts tr:last-child td{border-bottom:0 !important}
.ccp-about-facts th{color:#5f6368;font-size:.92em}
html[data-theme="night"] .ccp-about-facts{background:#1b1f26;border-color:#2b3038;box-shadow:none}
html[data-theme="night"] .ccp-about-facts th{color:#9AA0A6}
html[data-theme="night"] .ccp-about-facts th,
html[data-theme="night"] .ccp-about-facts td{border-bottom-color:#2b3038 !important}

.ccp-about-faq{background:#fff;border:1px solid #e6e8ec;border-radius:16px;
    padding:4px 18px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 6px 18px rgba(16,24,40,.05)}

/* ⚠️ ВЫРАВНИВАНИЕ (владелец, 14.08). Текст страницы живёт колонкой 720 по
   центру, а у панелей есть внутренние отступы — их содержимое начиналось
   правее кромки абзацев, на экране читалось два левых края. Панели делаем
   ШИРЕ ровно на свои отступы: внутренний текст садится на кромку 720.
   (14px — паддинг ячейки таблицы, 18px+1px рамка — у FAQ.) */
table.ccp-about-facts{max-width:calc(720px + 30px) !important;margin-inline:auto !important}
.ccp-about-faq{max-width:calc(720px + 38px) !important;margin-inline:auto !important}
/* ⚠️ margin-inline:auto ЯВНО: правило плотности 09.08 центрует блок только
   частично — на десктопе плитки стояли левее колонки текста (замерено:
   left 34 при правом поле 484). */
.ccp-about-stats{max-width:calc(720px + 42px) !important;margin-inline:auto !important}
.ccp-about-stats__note{margin-inline:auto !important}
.ccp-about-stats__item{padding:20px}
.ccp-about-faq__item{border-bottom:1px solid #eef0f3}
.ccp-about-faq__item:last-child{border-bottom:0}
.ccp-about-faq__q{color:#202124}
html[data-theme="night"] .ccp-about-faq{background:#1b1f26;border-color:#2b3038;box-shadow:none}
html[data-theme="night"] .ccp-about-faq__item{border-bottom-color:#2b3038}
html[data-theme="night"] .ccp-about-faq__q{color:#E8EAED}

/* ======================================================================
   ДОПОЛНЕНИЕ 10.09.2026 — читаемость длинной страницы: акцентная вводная,
   цветные маркеры списков, карточки-шаги для «Как проходит покупка»,
   оформленный блок контактов. Колонка 720px не трогаем (решение
   владельца 14.08) — все блоки ниже живут ВНУТРИ неё, а не расширяют её.
   ====================================================================== */
.ccp-about-lead{font-size:1.08em;line-height:1.6;color:#3c4043}
html[data-theme="night"] .ccp-about-lead{color:#c8cbd0}

.ccp-about-list{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:10px}
.ccp-about-list li{position:relative;padding-left:22px}
.ccp-about-list li::before{content:"";position:absolute;left:4px;top:.65em;
    width:6px;height:6px;border-radius:50%;background:#1D5AD2}

.ccp-about-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;margin:16px 0 28px}
.ccp-about-step{background:#fff;border:1px solid #e6e8ec;border-radius:16px;
    padding:18px 20px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.ccp-about-step__n{display:inline-block;margin:0 0 10px;font-size:12px;font-weight:700;
    color:#1D5AD2;padding:3px 9px;border-radius:999px;background:rgba(29,90,210,.10)}
.ccp-about-step h3{margin:0 0 6px;font-size:15px;font-weight:700;line-height:1.3}
.ccp-about-step p{margin:0;font-size:14px;line-height:1.5;color:#5f6368}
html[data-theme="night"] .ccp-about-step{background:#1b1f26;border-color:#2b3038}
html[data-theme="night"] .ccp-about-step p{color:#9AA0A6}

.ccp-about-contact{background:#f7f8fa;border:1px solid #e8eaee;border-radius:16px;
    padding:18px 22px;margin:8px 0 0}
html[data-theme="night"] .ccp-about-contact{background:#232830;border-color:#31363f}

@media (max-width:600px){
    .ccp-about-steps{grid-template-columns:1fr}
}


.ccp-am{margin:34px 0}
.ccp-am__lead{font-size:15px;line-height:1.55;color:var(--e-global-color-ccpmute,#6b7075);margin:0 0 18px}
/* auto-fit, а не жёсткие три колонки: плиток стало четыре, и на узком экране
   они должны перестраиваться сами, не ломая ряд. */
.ccp-am__tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 18px}
.ccp-am__tile{display:flex;flex-direction:column;gap:6px;padding:20px;
    border:1px solid rgba(127,127,127,.22);border-radius:10px}
.ccp-am__num{font-weight:800;font-size:clamp(22px,2.4vw,30px);line-height:1.1;
    color:var(--e-global-color-primary,#1D5AD2)}
.ccp-am__lbl{font-size:13px;line-height:1.35;color:var(--e-global-color-ccpmute,#6b7075)}
.ccp-am__sub{margin:26px 0 12px}
.ccp-am__wrap{overflow-x:auto}
.ccp-am__table{width:100%;border-collapse:collapse;font-size:15px}
.ccp-am__table th,.ccp-am__table td{text-align:left;padding:10px 14px;
    border-bottom:1px solid rgba(127,127,127,.2)}
.ccp-am__table th{font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em;
    color:var(--e-global-color-ccpmute,#6b7075)}
.ccp-am__table td:nth-child(2),.ccp-am__table td:nth-child(3){white-space:nowrap}
.ccp-am__note--yoy{margin:0 0 22px}
.ccp-am__note,.ccp-am__src{font-size:13px;color:var(--e-global-color-ccpmute,#6b7075);margin:10px 0 0}
.ccp-am__growth{font-size:16px;margin:0 0 10px}
/* Вторая строка сравнения — тише первой: главная цифра та, что по одним домам. */
.ccp-am__growth--alt{font-size:14px;color:var(--e-global-color-ccpmute,#6b7075);margin:0 0 14px}
/* Столбики сжаты так, чтобы десять лет помещались в колонку контента без
   прокрутки. Прокрутка остаётся только на узких экранах, и там график
   прижат к ПРАВОМУ краю: свежие годы важнее давних, а браузер по
   умолчанию показывает начало ленты, то есть 2014 год. */
.ccp-am__years{display:flex;gap:6px;align-items:flex-end;margin:0 0 8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.ccp-am__years::-webkit-scrollbar{height:6px}
.ccp-am__years::-webkit-scrollbar-thumb{background:rgba(127,127,127,.35);border-radius:3px}
.ccp-am__year{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:48px;flex:1 1 48px}
.ccp-am__yv{font-size:12px;font-weight:600;color:var(--e-global-color-primary,#1D5AD2);white-space:nowrap}
.ccp-am__bar{display:block;width:100%;height:110px;display:flex;align-items:flex-end;
    background:rgba(127,127,127,.10);border-radius:6px;overflow:hidden}
.ccp-am__bar i{display:block;width:100%;background:var(--e-global-color-primary,#1D5AD2);opacity:.75;border-radius:6px 6px 0 0}
.ccp-am__yl{font-size:12px;font-weight:600}
/* Незаконченный год: столбик в штриховке, чтобы его не читали наравне с полными.
   Цвет через currentColor — ночная тема подменяет глобальные токены, и жёстко
   заданный серый на ней проваливается. */
.ccp-am__year--partial .ccp-am__bar i{opacity:.42;
    background-image:repeating-linear-gradient(45deg,transparent 0 5px,rgba(255,255,255,.35) 5px 10px)}
.ccp-am__year--partial .ccp-am__yl,.ccp-am__year--partial .ccp-am__yv{opacity:.7}
.ccp-am__yy{font-size:11px;white-space:nowrap;font-weight:600;color:var(--e-global-color-primary,#1D5AD2);opacity:.85}
.ccp-am__legend{font-size:12px;color:var(--e-global-color-ccpmute,#6b7075);margin:0 0 4px}
.ccp-am__yn{font-size:11px;white-space:nowrap;color:var(--e-global-color-ccpmute,#6b7075)}
@media (max-width:700px){.ccp-am__year{min-width:44px}.ccp-am__bar{height:80px}.ccp-am__tiles{grid-template-columns:1fr}}

.ccp-c2c{display:inline-flex;align-items:center;gap:6px;font-size:14px;text-decoration:none;color:inherit;white-space:nowrap}.ccp-c2c:hover{text-decoration:underline}.ccp-c2c__icon{font-size:15px;line-height:1}.ccp-ai-cta__call{margin:10px 0 0;font-size:14px}.ccp-c2c--inline{font-weight:600}@media (max-width:767px){.ccp-c2c{font-size:13px}}

/* Карточки. Вся карточка — ссылка, поэтому тема подчёркивала её целиком
   и красила синим и заголовок, и описание: читать было тяжело. Гасим
   подчёркивание у карточки и всего, что внутри, и возвращаем иерархию —
   тёмный заголовок, приглушённое описание, цвет только на наведении. */
.ccp-cards{
    display:grid;grid-template-columns:repeat(var(--ccp-cols,2),minmax(0,1fr));
    gap:14px;margin:22px 0 34px;
}
.ccp-card,
.ccp-card:hover,
.ccp-card:focus,
.ccp-card *{
    text-decoration:none !important;
    border-bottom:0 !important;
}
.ccp-card{
    display:flex;flex-direction:column;gap:8px;
    padding:20px 22px;
    border:1px solid var(--e-global-color-ccpline,#d9d9d9);
    border-radius:10px;                 /* скругление из кита */
    transition:border-color .18s ease, box-shadow .18s ease;
}
.ccp-card:hover{
    border-color:var(--e-global-color-primary,#1D5AD2);
    box-shadow:0 2px 14px rgba(0,0,0,.06);
}
/* Собственный display:flex перебивает браузерное правило для [hidden],
   и скрытые фильтром карточки продолжали показываться. */
.ccp-card[hidden]{display:none !important;}
.ccp-card__title{
    font-weight:600;font-size:clamp(15px,1.15vw,17px);line-height:1.35;
    color:var(--e-global-color-text,#202124) !important;
    transition:color .18s ease;
}
.ccp-card:hover .ccp-card__title{color:var(--e-global-color-primary,#1D5AD2) !important;}
.ccp-card__text{
    font-size:14px;line-height:1.5;
    color:var(--e-global-color-ccpmute,#80868B) !important;
}

/* Хаб: фильтр слева, карточки справа. */
.ccp-hub{
    display:grid;grid-template-columns:264px minmax(0,1fr);
    gap:34px;align-items:start;margin:22px 0 10px;
}
.ccp-hub__side{position:sticky;top:calc(var(--ccp-hd-h,131px) + 16px);}
/* 22.09.2026: липкая боковина — под шапку по --ccp-hd-h (ccp-header.php) и не выше экрана: была выше окна ноутбука,
   верх уходил под шапку, низ не был виден. Прокрутка внутри; только там, где она липкая. */
@media (min-width:1025px){.ccp-hub__side{max-height:calc(100vh - var(--ccp-hd-h,131px) - 32px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}
.ccp-hub__main .ccp-cards{margin-top:0;}
.ccp-hub__empty{padding:26px 0;color:var(--e-global-color-ccpmute,#80868B);}

/* Кит навязывает ВСЕМ button и input свою заливку, высоту 48px, верхний
   регистр и рамку (памятка tool-pages-compact-controls). Без !important
   пункты фильтра превращаются в чёрные плашки с невидимым текстом. */
.ccp-hub .ccp-filter__search{
    width:100% !important;padding:10px 14px !important;margin:0 0 22px !important;
    border:1px solid var(--e-global-color-ccpline,#d9d9d9) !important;
    border-radius:10px !important;background:transparent !important;
    box-shadow:none !important;min-height:0 !important;height:auto !important;
    font-family:inherit !important;font-size:14px !important;font-weight:400 !important;
    text-transform:none !important;letter-spacing:normal !important;
    color:inherit !important;
}
.ccp-hub .ccp-filter__search:focus{
    outline:none !important;border-color:var(--e-global-color-primary,#1D5AD2) !important;
}
.ccp-filter__group{margin-bottom:24px;}
.ccp-filter__label{
    font-size:12px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--e-global-color-ccpmute,#80868B);margin-bottom:8px;
}
.ccp-filter__list{list-style:none !important;margin:0 !important;padding:0 !important;}
.ccp-filter__list li{margin:0 !important;padding:0 !important;list-style:none !important;}
.ccp-filter__list li::marker{content:none;}
.ccp-hub .ccp-filter__btn{
    display:flex !important;align-items:center;justify-content:space-between;gap:10px;
    width:100% !important;min-width:0 !important;
    min-height:0 !important;height:auto !important;
    padding:8px 10px !important;margin:1px 0 !important;
    background:transparent !important;background-image:none !important;
    border:0 !important;border-radius:8px !important;box-shadow:none !important;
    font-family:inherit !important;font-size:14px !important;font-weight:400 !important;
    line-height:1.3 !important;letter-spacing:normal !important;text-transform:none !important;
    text-align:left !important;white-space:normal !important;
    color:var(--e-global-color-secondary,#5f6368) !important;
    cursor:pointer;transition:background-color .15s ease,color .15s ease;
}
.ccp-hub .ccp-filter__btn span{
    font-size:12px !important;opacity:.55;flex:none;font-weight:400 !important;
}
.ccp-hub .ccp-filter__btn:hover{
    background:rgba(127,127,127,.10) !important;
}
.ccp-hub .ccp-filter__btn.is-active{
    background:rgba(127,127,127,.14) !important;
    color:var(--e-global-color-primary,#1D5AD2) !important;font-weight:600 !important;
}

@media (max-width:1024px){
    .ccp-hub{grid-template-columns:1fr;gap:18px;}
    .ccp-hub__side{position:static;}
    .ccp-filter__list{display:flex;flex-wrap:wrap;gap:6px;}
    .ccp-filter__btn{width:auto;border:1px solid var(--e-global-color-ccpline,#d9d9d9);}
}
@media (max-width:700px){
    .ccp-cards{grid-template-columns:1fr;}
}

.ccp-verified{
    font-size:14px;line-height:1.5;padding:12px 16px;margin:20px 0;
    border-left:3px solid var(--e-global-color-primary,#1D5AD2);
    border-radius:0 10px 10px 0;
    color:var(--e-global-color-secondary,#5E5E5E);
}
.ccp-steps h3{margin-top:1.6em;}
.ccp-steps img{
    max-width:100%;height:auto;display:block;margin:14px 0;
    border:1px solid var(--e-global-color-ccpline,#d9d9d9);border-radius:10px;
}
.ccp-steps figcaption{
    font-size:13px;color:var(--e-global-color-secondary,#5E5E5E);margin:-6px 0 14px;
}


.ccp-stats__row{
    display:flex;align-items:center;justify-content:center;
    flex-wrap:wrap;gap:clamp(18px,4vw,56px);
}
.ccp-stats__item{display:flex;align-items:baseline;gap:10px;white-space:nowrap;}
.ccp-stats__num{
    font-family:"Montserrat",sans-serif;font-weight:800;
    font-size:clamp(26px,3vw,38px);line-height:1;
    color:var(--e-global-color-primary,#1D5AD2);
}
.ccp-stats__label{
    font-family:"Montserrat",sans-serif;font-weight:500;
    font-size:clamp(13px,1.2vw,16px);
    color:var(--e-global-color-secondary,#5E5E5E);
}
.ccp-stats__sep{
    width:1px;height:30px;background:var(--e-global-color-ccpline,#d9d9d9);
    opacity:.6;
}
/* Карусели: слайд получал фиксированную высоту от swiper (замер до загрузки
   картинок), и подпись карточки уезжала за пределы плитки. Пусть слайд тянется
   по содержимому, а карточки внутри равняются по самой высокой. */
/* ВАЖНО: в loop-карусели .swiper-slide и .e-loop-item — ЭТО ОДИН И ТОТ ЖЕ узел.
   Правило height:100% для карточки перебивало height:auto для слайда (одинаковая
   специфичность, побеждало последнее) — карточка получала высоту обёртки и текст
   вылезал наружу. Поэтому слайду всегда auto, а 100% — только вложенным карточкам. */
.elementor-widget-loop-carousel .swiper-slide,
.elementor-widget-loop-carousel .swiper-slide.e-loop-item{height:auto !important;}
.elementor-widget-loop-carousel .swiper-slide > .e-loop-item{height:100% !important;}
/* Elementor сам ставит `.swiper-slide > .e-con{height:100%}`. В шаблоне проектов
   (3647) корневых контейнера ДВА — картинка и подпись, — и каждый растягивался
   на всю высоту слайда: подпись оказывалась целиком ниже видимой области. */
.elementor-widget-loop-carousel .swiper-slide > .e-con{height:auto !important;}
/* Высоту держал не слайд, а обёртки: swiper замерял их до загрузки картинок и
   обрезал по overflow:hidden — подпись карточки уходила под нижний край. */
.elementor-widget-loop-carousel .swiper-wrapper{height:auto !important;align-items:stretch;}
.elementor-widget-loop-carousel .swiper,
.elementor-widget-loop-carousel .elementor-loop-container{height:auto !important;}

/* Длинный заголовок карточки обрезаем двумя строками — плитки одной высоты. */
.ccp-clamp2 .elementor-heading-title,
.ccp-clamp2{
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    overflow:hidden;
}

@media (max-width:767px){
    .ccp-stats__row{gap:14px 22px;}
    .ccp-stats__item{flex-direction:column;align-items:center;gap:2px;text-align:center;}
    .ccp-stats__sep{display:none;}
}

.woocommerce-product-gallery{ opacity: 1 !important; }

:root{--ccp-border:#e6e8ec;--ccp-card:transparent}
html[data-theme="night"]{--ccp-border:#3C4043;--ccp-card:rgba(255,255,255,.025)}


.ccp-hh .ccp-mh-twrap,.ccp-mh .ccp-mh-twrap{max-height:78vh;overflow:auto;-webkit-overflow-scrolling:touch}
.ccp-hh .ccp-mh-table td,.ccp-mh .ccp-mh-table td{font-variant-numeric:tabular-nums}
/* Липкая шапка витрин «Рынка в данных». Вес селектора намеренно выше, чем у
   `.ccp-mh .ccp-mh-table thead th` в ccp_mh_css: тот красит шапку полупрозрачным
   и печатается своим плагином, порядок относительно нас не гарантирован, а под
   полупрозрачной шапкой при прокрутке просвечивают уезжающие строки. Одного веса
   селектора мало: там стоит !important — замер показал прозрачный фон, — поэтому
   !important и здесь.
   ⚠️ И этого всё равно было мало. Настоящая причина, найденная только глазами:
   в том же правиле стоит `opacity:.65`, а opacity делает полупрозрачным ВЕСЬ
   элемент вместе с фоном. Непрозрачный background-color при этом ничего не
   решает: сквозь прилипшую шапку было видно строку, уезжающую под неё.
   Поэтому здесь `opacity:1`. Шапка и так читается как второстепенная —
   она набрана 11 px прописными. */
.ccp-mh .ccp-mh-twrap .ccp-mh-table thead th{position:sticky;top:0;z-index:2;
 background-color:var(--e-global-color-accent,#fff)!important;
 background-image:linear-gradient(rgba(120,130,140,.07),rgba(120,130,140,.07))!important;
 box-shadow:inset 0 -1px 0 var(--ccp-border,#e6e8ec);opacity:1!important}
@media(max-width:760px){.ccp-hh .ccp-mh-twrap,.ccp-mh .ccp-mh-twrap{max-height:70vh}}


/* 22.09.2026 — ВЫСОТА ШАПКИ ДЛЯ ВСЕГО САЙТА. Шапка fixed и места в потоке не занимает; раньше каждый шаблон
   зашивал её высоту сам (90…196 px), а она зависит от ширины: 53 px телефон, 177 px планшет (меню в две строки),
   131 px компьютер — якоря и липкие меню уезжали под неё. Теперь: --ccp-hd-h (запас по ширине ниже, точное
   значение ставит #ccp-hd-h-js) и один общий отступ для любых якорей и scrollIntoView. Липким меню разделов —
   top:var(--ccp-hd-h); ручные scroll-margin под шапку в шаблонах не нужны (сложились бы с этим). */
:root{--ccp-hd-h:131px}
@media (max-width:999px){:root{--ccp-hd-h:177px}}
@media (max-width:767px){:root{--ccp-hd-h:53px}}
html{scroll-padding-top:calc(var(--ccp-hd-h) + 16px)}
/* Размеры сняты с шапки Elementor #66: компьютер 1440, планшет ≤1024, телефон ≤767. */
.ccp-hd,.ccp-hd__dlg{--ccp-hd-blue:#1d5ad2;--ccp-hd-ink:#202124}
.ccp-hd{display:block;position:relative;z-index:100;font-family:"Montserrat",sans-serif}
.ccp-hd__bar{position:fixed;top:0;left:0;right:0;z-index:100;color:var(--ccp-hd-ink);background:transparent;transition:background-color .2s,box-shadow .2s}
body.admin-bar .ccp-hd__bar{top:32px}
.ccp-hd__in{width:calc(100% - 48px);max-width:1296px;margin:0 auto}
.ccp-hd__row{display:flex;align-items:center;min-height:60px}
.ccp-hd__logo{flex:0 0 auto;margin-right:auto}
.ccp-hd__logo a{display:block;line-height:0}
.ccp-hd__logo img{display:block;width:259px;max-width:100%;height:auto}
.ccp-hd__contacts{display:flex;align-items:center;gap:5px;margin-right:20px}
.ccp-hd__ico{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--ccp-hd-ink);color:#fff !important;text-decoration:none}
.ccp-hd__ico svg{width:18px;height:18px;fill:currentColor}
.ccp-hd__mail{margin-left:15px;font-size:17px;line-height:27px;white-space:nowrap}
.ccp-hd .ccp-hd__cta.elementor-button{display:inline-flex;align-items:center;height:48px;padding:14px 30px;border:0;border-radius:12px;background:var(--ccp-hd-blue);color:#fff;font:600 16px/1 "Montserrat",sans-serif;cursor:pointer;white-space:nowrap;margin:0 20px 0 0}
.ccp-hd .ccp-hd__cta.elementor-button:hover{background:#0d47c2}
.ccp-hd__tools{display:flex;align-items:center;margin-right:-10px}
.ccp-hd__tools .ccp-search-btn,.ccp-hd__tools .ccp-theme-btn{margin:0 30px 0 0 !important}
.ccp-hd__langhost a{margin:0 6px;color:inherit;text-decoration:none}
.ccp-hd button.ccp-hd__burger{display:none !important}
.ccp-hd__burger svg,.ccp-hd__x svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.ccp-hd__line{height:0;margin-top:2px;border-top:1px solid var(--ccp-hd-blue)}
.ccp-hd__nav{padding-top:22px}
.ccp-hd__menu,.ccp-hd__menu ul{list-style:none;margin:0;padding:0}
.ccp-hd__menu{display:flex;flex-wrap:wrap;gap:0 20px}
.ccp-hd__menu>li{position:relative}
.ccp-hd__menu>li>a{display:flex;align-items:center;gap:14px;padding:13px 0;font-size:17px;font-weight:600;line-height:20px;color:#000;text-decoration:none;position:relative}
.ccp-hd__menu>li>a::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:2px;background:currentColor;opacity:0;transition:opacity .2s}
.ccp-hd__menu>li:hover>a::after,.ccp-hd__menu>li>a:focus-visible::after,.ccp-hd__menu>li.current-menu-item>a::after{opacity:1}
.ccp-hd__menu .menu-item-has-children>a::before{content:"";order:2;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid currentColor;margin-right:3px}
.ccp-hd__menu .sub-menu{position:absolute;top:100%;left:0;min-width:190px;background:#fff;box-shadow:0 0 10px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .15s,visibility .15s,transform .15s;z-index:10}
.ccp-hd__menu .sub-menu .sub-menu{top:0;left:100%}
.ccp-hd__menu li:hover>.sub-menu,.ccp-hd__menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.ccp-hd__menu .sub-menu a{display:block;padding:13px 20px;font-size:13px;font-weight:400;line-height:20px;color:var(--ccp-hd-ink);text-decoration:none;white-space:nowrap}
.ccp-hd__menu .sub-menu a:hover{background:#f3f5f9;color:var(--ccp-hd-blue)}
.ccp-hd__dlg{width:min(600px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:28px 24px 24px;border:0;border-radius:16px;box-shadow:0 20px 60px rgba(16,24,40,.25);overflow:auto}
.ccp-hd__dlg::backdrop{background:rgba(6,12,22,.55)}
.ccp-hd__dlg .ccp-form{margin:0;padding:0;background:transparent}
/* Крестик: общее правило кнопок темы давало ему min-height 48px — при radius 50% выходил овал. */
.ccp-hd__dlg button.ccp-hd__x{position:absolute;z-index:2;top:10px;right:10px;display:inline-flex !important;align-items:center;justify-content:center;width:36px !important;height:36px !important;min-width:0 !important;min-height:0 !important;max-height:36px !important;line-height:1 !important;padding:0 !important;border:0 !important;border-radius:50% !important;background:transparent !important;box-shadow:none !important;outline:none !important;color:var(--ccp-hd-ink) !important;cursor:pointer}
.ccp-hd__dlg button.ccp-hd__x:hover{background:rgba(127,127,127,.14) !important}
.ccp-hd__dlg button.ccp-hd__x:focus-visible{outline:2px solid var(--ccp-hd-blue) !important;outline-offset:2px}
html[data-theme="night"] .ccp-hd__dlg{background:#12161c;color:#e8eaed}
/* Ночь: после прокрутки правило контраста (белый текст) отключается, и шапка брала
   тёмный цвет по умолчанию — значки пропадали на тёмной подложке. */
html[data-theme="night"] .ccp-hd,html[data-theme="night"] .ccp-hd__dlg{--ccp-hd-ink:#e8eaed}
html[data-theme="night"] .ccp-hd .ccp-hd__bar .ccp-hd__ico{background:rgba(255,255,255,.16)}
html[data-theme="night"] .ccp-hd button.ccp-hd__burger{background:rgba(255,255,255,.1) !important}
html[data-theme="night"] .ccp-hd__menu>li>a{color:#e8eaed}
html[data-theme="night"] .ccp-hd__menu .sub-menu{background:#1a1f27}
html[data-theme="night"] .ccp-hd__menu .sub-menu a{color:#e8eaed}
@media (max-width:1024px){
 .ccp-hd__logo img{width:178px}
 .ccp-hd__ico{width:28px;height:28px}
 .ccp-hd__ico svg{width:14px;height:14px}
 .ccp-hd__mail{font-size:16px;line-height:26px}
 .ccp-hd .ccp-hd__cta.elementor-button{margin-right:25px}
 .ccp-hd__menu>li>a{font-size:14px}
}
@media (max-width:900px){.ccp-hd__mail{display:none}}
@media (max-width:767px){
 body.admin-bar .ccp-hd__bar{top:46px}
 .ccp-hd__in{width:calc(100% - 32px)}
 .ccp-hd__row{min-height:53px;padding-top:10px}
 .ccp-hd__logo{margin-left:5px}
 .ccp-hd__logo img{width:139px}
 .ccp-hd__contacts,.ccp-hd .ccp-hd__cta.elementor-button,.ccp-hd__line{display:none}
 .ccp-hd__tools{margin-right:0}
 .ccp-hd__tools .ccp-search-btn,.ccp-hd__tools .ccp-theme-btn{margin:0 14px 0 0 !important}
 .ccp-hd button.ccp-hd__burger{display:inline-flex !important;align-items:center;justify-content:center;width:33px !important;height:33px !important;min-width:0 !important;min-height:0 !important;margin-left:6px;padding:5.5px !important;border:0 !important;border-radius:4px !important;background:rgba(0,0,0,.06) !important;color:inherit !important;box-shadow:none !important;cursor:pointer}
 .ccp-hd__nav{display:none;position:absolute;top:100%;left:0;right:0;padding:0;max-height:calc(100vh - 63px);overflow:auto;background:#fff;box-shadow:0 12px 24px rgba(16,24,40,.12)}
 .ccp-hd__bar.is-open .ccp-hd__nav{display:block}
 .ccp-hd__menu{display:block}
 .ccp-hd__menu>li>a{padding:14px 16px;font-size:15px;justify-content:space-between;border-bottom:1px solid #eef0f4}
 /* Панель меню всегда на белом — перебиваем белый текст ccp-header-contrast (его селектор весит 0,3,1). */
 .ccp-hd .ccp-hd__bar .ccp-hd__nav .ccp-hd__menu a{color:var(--ccp-hd-ink) !important;text-shadow:none !important}
 .ccp-hd__menu>li>a::after{display:none}
 .ccp-hd__menu .sub-menu,.ccp-hd__menu .sub-menu .sub-menu{position:static;display:none;min-width:0;box-shadow:none;opacity:1;visibility:visible;transform:none;background:#f7f8fa}
 .ccp-hd__menu li.is-open>.sub-menu{display:block}
 .ccp-hd__menu .sub-menu a{padding:12px 28px;white-space:normal}
 html[data-theme="night"] .ccp-hd__nav{background:#12161c}
 html[data-theme="night"] .ccp-hd .ccp-hd__bar .ccp-hd__nav .ccp-hd__menu a{color:#e8eaed !important;border-color:#2a303a}
 html[data-theme="night"] .ccp-hd__menu .sub-menu{background:#1a1f27}
}


/* --- две колонки: фильтр слева, сетка справа --- */
.ccp-lst{display:grid;grid-template-columns:262px minmax(0,1fr);gap:26px;align-items:start}
.ccp-lst > *{grid-column:2;min-width:0}
.ccp-lst > .ccp-lst__head{grid-column:1/-1}
/* ⚠️ 10.09.2026: здесь стояло grid-row:1/999 — «пусть форма тянется на всю высоту».
   Grid материализовал 998 строк; 996 из них нулевые, но зазор gap:26px между строками
   остаётся, и страница получала 996×26 = 25 922 px пустоты. /en/ready/ была высотой
   28 591 px при содержимом на 2 669 — снаружи это выглядело как бесконечный скролл.
   grid-row:1/-1 тут не работает: явной сетки строк нет, -1 схлопывается в одну строку,
   и sticky-форме некуда липнуть. В колонке 2 ровно три блока (панель, сетка, пагинатор),
   поэтому span 3 — и области формы хватает на всю высоту, и лишних строк нет. */
.ccp-lst > .ccp-lst__form{grid-column:1;grid-row:1/span 3;align-self:start;position:sticky;top:calc(var(--ccp-hd-h,131px) + 16px);
 margin:0;padding:16px;border-radius:14px}
/* 22.09.2026: липкая боковина — под шапку по --ccp-hd-h (ccp-header.php) и не выше экрана: была выше окна ноутбука,
   верх уходил под шапку, низ не был виден. Прокрутка внутри; только там, где она липкая. */
@media (min-width:1025px){.ccp-lst > .ccp-lst__form{max-height:calc(100vh - var(--ccp-hd-h,131px) - 32px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}
.ccp-lst__form .ccp-lst__row{grid-template-columns:1fr !important;gap:12px}
.ccp-lst__form .ccp-lst__field{min-width:0}
.ccp-lst__actions{display:flex;gap:8px;align-items:center}
.ccp-lst__submit{flex:1}
/* счётчик и выбор колонок переносятся сюда скриптом */
.ccp-lst__form .ccp-lst__count{order:-1;font-size:14px;margin:0 0 2px;padding:0 0 13px;
 border-bottom:1px solid var(--e-global-color-ccpline,#dfe3e9)}
.ccp-lst__form .ccp-lst__count b{display:block;font-size:21px;font-weight:700;letter-spacing:-.01em}
.ccp-lst__form .ccp-lst__view{display:flex !important;flex-wrap:wrap;align-items:center;gap:6px;
 margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--e-global-color-ccpline,#dfe3e9)}
.ccp-lst__bar:empty,.ccp-lst__bar.is-empty{display:none !important}
/* ⚠️ Контраст. Базовый плагин красит подписи полей, «Найдено» и «Сбросить»
   цветом #8b8b8b: по белому это 3,41 при норме 4,5 для текста мельче 18 px.
   Подписи фильтра набраны 11,5 px — худший случай. #5f6368 даёт 7,0. */
.ccp-lst .ccp-lst__label,.ccp-lst .ccp-lst__count,.ccp-lst .ccp-lst__reset{color:#5f6368 !important}
.ccp-lst .ccp-lst__count b{color:#202124 !important}
.ccp-lst .ccp-lst__input::placeholder{color:#70757a !important;opacity:1}
html[data-theme="night"] .ccp-lst .ccp-lst__label,
html[data-theme="night"] .ccp-lst .ccp-lst__count,
html[data-theme="night"] .ccp-lst .ccp-lst__reset{color:#BDC1C6 !important}
html[data-theme="night"] .ccp-lst .ccp-lst__count b{color:#E8EAED !important}
html[data-theme="night"] .ccp-lst .ccp-lst__input::placeholder{color:#9AA0A6 !important}

/* --- карточка: изображение целиком, текст поверх --- */
.ccp-lst .ccp-lst-card{position:relative;display:block;aspect-ratio:4/5;border-radius:14px;overflow:hidden;
 border:0;background:#202124;color:#fff}
.ccp-lst .ccp-lst-card:hover{box-shadow:0 12px 30px rgba(0,0,0,.22);transform:translateY(-3px)}
.ccp-lst .ccp-lst-card__media{position:absolute;inset:0;width:auto;min-height:0;aspect-ratio:auto;
 background:#2b2c2e;transition:transform .35s}
.ccp-lst .ccp-lst-card:hover .ccp-lst-card__media{transform:scale(1.04)}
.ccp-lst .ccp-lst-card__media::after{content:"";position:absolute;inset:0;
 background:linear-gradient(180deg,rgba(0,0,0,.40) 0%,rgba(0,0,0,0) 24%,rgba(0,0,0,.40) 52%,rgba(0,0,0,.90) 100%)}
.ccp-lst .ccp-lst-card__body{position:absolute;left:0;right:0;bottom:0;z-index:2;
 padding:14px 14px 15px;gap:3px;flex:0 0 auto;justify-content:flex-end;background:none}
.ccp-lst .ccp-lst-card__price{font-size:17px;font-weight:700;color:#fff;letter-spacing:-.01em}
/* 25.09.2026: «/ год» у аренды — белым, серый тонул на светлых фасадах */
.ccp-lst .ccp-lst-card__per{color:rgba(255,255,255,.85) !important;font-weight:500}
.ccp-lst .ccp-lst-card__title{font-size:15px;font-weight:600;color:#fff;-webkit-line-clamp:2}
.ccp-lst .ccp-lst-card__loc,.ccp-lst .ccp-lst-card__dev{font-size:12.5px;color:rgba(255,255,255,.94)}
.ccp-lst .ccp-lst-card__meta{gap:5px}
.ccp-lst .ccp-lst-card__chips{display:flex;flex-wrap:wrap;gap:5px}
/* ⚠️ Фон чипа задаёт правило стеклянного режима `[data-glass="1"] … __chip`
   (вес 0-3-0) и печатается ПОЗЖЕ нашего — стили плагина идут в теле страницы,
   а скин в head. Без !important чип остаётся светлым, и белый текст пропадает. */
.ccp-lst .ccp-lst-card__chip{background:rgba(0,0,0,.46) !important;color:#fff !important;
 border:0 !important;font-size:11px;padding:3px 8px;border-radius:99px;backdrop-filter:blur(4px)}
.ccp-lst .ccp-lst-card__noimg{background:#2b2c2e}

/* ⚠️ Пропорция обязана зависеть от числа колонок: при жёстких 4:5 и двух
   колонках карточка вырастает в башню под 700 px. */
.ccp-lst[data-cols="1"] .ccp-lst-card{flex-direction:column;aspect-ratio:24/9}
.ccp-lst[data-cols="1"] .ccp-lst-card__media{width:auto;position:absolute;inset:0}
.ccp-lst[data-cols="1"] .ccp-lst-card__body{padding:20px 22px;justify-content:flex-end}
.ccp-lst[data-cols="1"] .ccp-lst-card__price{font-size:22px}
.ccp-lst[data-cols="1"] .ccp-lst-card__title{font-size:18px}
.ccp-lst[data-cols="2"] .ccp-lst-card{aspect-ratio:4/3}
.ccp-lst[data-cols="3"] .ccp-lst-card{aspect-ratio:1/1}
.ccp-lst[data-cols="4"] .ccp-lst-card{aspect-ratio:4/5}
/* ⚠️ 10.09.2026: порог был 238 px — тот же, что у каталога проектов, и всё равно
   /en/ready/ показывала 3 плитки в ряду, а /project/ — 4. Дело не в пороге, а в
   полезной ширине: /project/ рисует Elementor во всю ширину контейнера (1008 px под
   сетку), а /en/ready/ идёт по шаблону темы, который добавляет по 24 px отступа с
   каждой стороны, и под сетку остаётся 960. При 238+16 четвёртая колонка требует
   1000 px — 1008 проходит, 960 нет. Порог 224 переводит на 4 обе: 960 → 4×228,
   1008 → 4×240. Разницу в 12 px между страницами глазом не поймать. */
.ccp-lst__grid{grid-template-columns:repeat(auto-fill,minmax(224px,1fr)) !important;gap:16px !important}
.ccp-lst[data-cols="1"] .ccp-lst__grid{grid-template-columns:1fr !important}
.ccp-lst[data-cols="2"] .ccp-lst__grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.ccp-lst[data-cols="3"] .ccp-lst__grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
.ccp-lst[data-cols="4"] .ccp-lst__grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important}

html[data-theme="night"] .ccp-lst > .ccp-lst__form{background:#171718}
html[data-theme="night"] .ccp-lst .ccp-lst-card__title{color:#fff}
html[data-theme="night"] .ccp-lst .ccp-lst-card__loc,
html[data-theme="night"] .ccp-lst .ccp-lst-card__dev{color:rgba(255,255,255,.94)}

@media(max-width:1024px){
 .ccp-lst{grid-template-columns:1fr;gap:16px}
 .ccp-lst > *{grid-column:1}
 .ccp-lst > .ccp-lst__form{grid-row:auto;position:static;padding:14px}
 .ccp-lst__form .ccp-lst__row{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
 .ccp-lst__form .ccp-lst__view{display:none !important}
}
@media(max-width:640px){
 .ccp-lst__grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important}
 .ccp-lst .ccp-lst-card{aspect-ratio:4/5 !important}
 .ccp-lst[data-cols="1"] .ccp-lst-card{aspect-ratio:16/10 !important}
 .ccp-lst .ccp-lst-card__body{padding:10px 11px 11px}
 .ccp-lst .ccp-lst-card__price{font-size:14px}
 .ccp-lst .ccp-lst-card__title{font-size:13px}
 .ccp-lst .ccp-lst-card__loc,.ccp-lst .ccp-lst-card__dev{font-size:11.5px}
 .ccp-lst__form .ccp-lst__row{grid-template-columns:1fr !important}
}

.page-header h1.entry-title{font-size:clamp(24px,2.6vw,34px);font-weight:700}

.ccp-plb{margin:24px 0;font-size:15px}
.ccp-plb h2{font-size:24px;margin:0 0 16px}
.ccp-plb__lead{font-size:16px;line-height:1.6;margin:0 0 14px}
.ccp-plb__facts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.ccp-plb__fact{background:#f5f3ef;border-radius:8px;padding:8px 14px;font-size:14px}
.ccp-plb__fact b{display:block;font-size:12px;color:#8a8781;font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.ccp-plb__chips{display:flex;flex-wrap:wrap;gap:8px}
.ccp-plb__chip{border:1px solid #e3e0da;border-radius:999px;padding:5px 12px;background:#fff;font-size:13px;white-space:nowrap}
.ccp-plb__chip a{text-decoration:none;color:inherit}

/* «Инфраструктура рядом»: карта слева, сгруппированные списки справа. */
.ccp-plb__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
/* Без minmax(0,…) колонка росла по длинному названию в одну строку: 452px на экране 390 — прокрутка вбок. */
.ccp-plb__mapcol,.ccp-plb__listcol{min-width:0}
.ccp-plb__group+.ccp-plb__group{margin-top:20px}
.ccp-plb__group h3{display:flex;align-items:baseline;gap:8px;font-size:12px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:#8a8781;margin:0 0 10px}
.ccp-plb__count{font-size:12px;font-weight:600;color:#b3aea5}
.ccp-plb__list{list-style:none;margin:0;padding:0;border:1px solid #e3e0da;border-radius:14px;
  background:#fff;overflow:hidden}
.ccp-plb__item+.ccp-plb__item{border-top:1px solid #efece7}
.ccp-plb__item a{display:flex;align-items:center;gap:12px;padding:11px 14px;
  text-decoration:none;color:inherit;transition:background .15s ease}
.ccp-plb__item a:hover{background:#f7f5f1}
.ccp-plb__ico{flex:0 0 34px;height:34px;display:grid;place-items:center;border-radius:50%;
  background:#f2efe9;font-size:16px;line-height:1}
.ccp-plb__txt{flex:1;min-width:0}
.ccp-plb__txt .t{display:block;font-weight:600;font-size:15px;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ccp-plb__txt .s{display:block;color:#6c6a66;font-size:13px;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ccp-plb__dist{flex:0 0 auto;font-size:13px;font-weight:600;color:#4a4741;
  background:#f2efe9;border-radius:999px;padding:4px 10px;white-space:nowrap}
@media(min-width:961px){
  .ccp-plb__layout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:24px;align-items:start}
  /* Карта липнет с отступом под фиксированной шапкой и подменю локации. */
  .ccp-plb__mapcol{position:sticky;top:110px}
  .ccp-plb__mapcol .ccp-plb-map{height:520px}
}
html[data-theme="night"] .ccp-plb__chip{background:#2b2c2f;border-color:#3c3d40;color:#e8eaed}
html[data-theme="night"] .ccp-plb__fact{background:#2b2c2f;color:#e8eaed}
html[data-theme="night"] .ccp-plb__fact b{color:#9aa0a6}
html[data-theme="night"] .ccp-plb-map{background:#2b2c2f}
html[data-theme="night"] .ccp-plb__list{background:#2b2c2f;border-color:#3c3d40;color:#e8eaed}
html[data-theme="night"] .ccp-plb__item+.ccp-plb__item{border-top-color:#3c3d40}
html[data-theme="night"] .ccp-plb__item a:hover{background:#35363a}
html[data-theme="night"] .ccp-plb__ico,
html[data-theme="night"] .ccp-plb__dist{background:#3c3d40;color:#e8eaed}
html[data-theme="night"] .ccp-plb__txt .s{color:#9aa0a6}
html[data-theme="night"] .ccp-plb__group h3{color:#9aa0a6}


/* Одна линия, один радиус, сплошной фон — вместо трёх теней и размытия. Поверхности: --bg шапка/панель, --pop подменю/меню валюты. */
.ccp-hd,.ccp-hd__dlg{--ccp-hd-line:#e3e6eb;--ccp-hd-bg:#fff;--ccp-hd-pop:#fff;--ccp-hd-r:8px}
html[data-theme="night"] .ccp-hd,html[data-theme="night"] .ccp-hd__dlg{--ccp-hd-line:#2a303a;--ccp-hd-bg:#12161c;--ccp-hd-pop:#1a1f27}
/* После прокрутки: сплошной фон и линия снизу. Перебивает размытие ccp-hf-lite и ccp-header-contrast (id сильнее их классов). */
#ccp-hd .ccp-hd__bar.scrolled{background-color:var(--ccp-hd-bg) !important;background-image:none !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;box-shadow:0 1px 0 var(--ccp-hd-line) !important}
/* WhatsApp и почта — значки без закрашенных кружков, как лупа и луна рядом. Над фото белые — правило контраста сильнее. */
.ccp-hd .ccp-hd__ico{width:36px;height:36px;border-radius:var(--ccp-hd-r);background:transparent;color:var(--ccp-hd-ink) !important;transition:background-color .15s}
.ccp-hd .ccp-hd__ico:hover{background:rgba(127,127,127,.12)}
.ccp-hd .ccp-hd__ico svg{width:20px;height:20px}
html[data-theme="night"] .ccp-hd .ccp-hd__bar .ccp-hd__ico{background:transparent}
html[data-theme="night"] .ccp-hd .ccp-hd__bar .ccp-hd__ico:hover{background:rgba(255,255,255,.1)}
.ccp-hd .ccp-hd__contacts{gap:2px}
.ccp-hd__mail{margin-left:8px}
.ccp-hd .ccp-hd__cta.elementor-button{height:44px;padding:0 22px;border-radius:12px;font-size:15px}
.ccp-hd .ccp-hd__cta.elementor-button:focus-visible{outline:2px solid var(--ccp-hd-blue);outline-offset:2px}
.ccp-hd__dlg{border:1px solid var(--ccp-hd-line);border-radius:var(--ccp-hd-r);box-shadow:none}
#ccp-hd .ccp-cur-menu{background:var(--ccp-hd-pop);border:1px solid var(--ccp-hd-line);border-radius:var(--ccp-hd-r);box-shadow:none}
#ccp-hd .ccp-cur-menu button{border-radius:6px}
/* Ночь: у пункта валюты в фокусе (выбранный получает его при открытии) оставалась светлая подложка дня. */
html[data-theme="night"] #ccp-hd .ccp-cur-menu button:hover,html[data-theme="night"] #ccp-hd .ccp-cur-menu button:focus-visible{background:rgba(255,255,255,.07) !important}
.ccp-hd__util{display:none}
/* Ночь: у пункта подменю под курсором был светлый фон дня при светлом тексте. */
html[data-theme="night"] .ccp-hd__menu .sub-menu a:hover{background:rgba(255,255,255,.07);color:#8ab4f8}
@media (min-width:768px){
 .ccp-hd__menu .sub-menu{padding:6px 0;background:var(--ccp-hd-pop);border:1px solid var(--ccp-hd-line);border-radius:var(--ccp-hd-r);box-shadow:none}
 html[data-theme="night"] .ccp-hd__menu .sub-menu{background:var(--ccp-hd-pop)}
 .ccp-hd__menu .sub-menu .sub-menu{top:-7px}
}
@media (max-width:1024px){
 .ccp-hd .ccp-hd__ico{width:32px;height:32px}
 .ccp-hd .ccp-hd__ico svg{width:18px;height:18px}
}
@media (max-width:767px){
 .ccp-hd button.ccp-hd__burger{width:40px !important;height:40px !important;padding:9px !important;margin-left:4px;border-radius:var(--ccp-hd-r) !important}
 .ccp-hd__burger svg+svg{display:none}
 .ccp-hd__burger[aria-expanded="true"] svg{display:none}
 .ccp-hd__burger[aria-expanded="true"] svg+svg{display:block}
 #ccp-hd .ccp-hd__nav{background:var(--ccp-hd-bg);box-shadow:none;border-bottom:1px solid var(--ccp-hd-line)}
 /* Панель всегда на своём фоне: цвет текста через id — правило контраста над фото с условием :has весит 0,4,2. */
 #ccp-hd .ccp-hd__nav .ccp-hd__menu a{color:var(--ccp-hd-ink) !important;text-shadow:none !important}
 #ccp-hd .ccp-hd__menu>li>a{border-bottom-color:var(--ccp-hd-line)}
 html[data-theme="night"] #ccp-hd .ccp-hd__menu .sub-menu{background:var(--ccp-hd-pop)}
 /* Лупа и валюта в панели бургера (переносит скрипт ccp-hd-flat-js). */
 .ccp-hd__util{display:flex;flex-direction:column;gap:6px;padding:12px 16px;border-bottom:1px solid var(--ccp-hd-line)}
 .ccp-hd__util:empty{display:none}
 #ccp-hd .ccp-hd__util a,#ccp-hd .ccp-hd__util button,#ccp-hd .ccp-hd__util span{color:var(--ccp-hd-ink) !important;text-shadow:none !important}
 #ccp-hd .ccp-hd__util .ccp-search-btn{display:flex !important;justify-content:flex-start;gap:10px;width:100% !important;height:44px !important;margin:0 !important;padding:0 14px !important;border:1px solid var(--ccp-hd-line) !important;border-radius:var(--ccp-hd-r) !important;opacity:1;font:400 15px/1 "Montserrat",sans-serif}
 #ccp-hd .ccp-hd__util .ccp-search-btn::after{content:attr(aria-label);opacity:.7}
 #ccp-hd .ccp-hd__util .ccp-cur-ui{display:block;margin:0}
 #ccp-hd .ccp-hd__util .ccp-cur-btn{display:flex;gap:6px;width:100%;height:44px !important;padding:0 2px !important;font-size:15px !important;opacity:1}
 #ccp-hd .ccp-hd__util .ccp-cur-btn::before{content:attr(aria-label);margin-right:auto;opacity:.7}
 #ccp-hd .ccp-hd__util .ccp-cur-menu{position:static;min-width:0;width:100%;margin:2px 0 6px}
}


.ccp-hd__dhead,.ccp-hd__dfoot,.ccp-hd__scrim{display:none}
@media (max-width:767px){
 /* Панель и затемнение — fixed внутри шапки: у открытой шапки не должно быть фильтров и трансформаций (иначе fixed считается от неё). */
 #ccp-hd .ccp-hd__bar.is-open{-webkit-backdrop-filter:none !important;backdrop-filter:none !important;filter:none !important;transform:none !important}
 /* Прокручивается вся панель (поиск, валюта, меню); заголовок и низ с кнопкой звонка прилипают. */
 #ccp-hd .ccp-hd__nav{display:flex;flex-direction:column;position:fixed;top:0;bottom:0;right:0;left:auto;z-index:2;width:min(360px,86vw);max-height:none;padding:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--ccp-hd-bg);border:0;border-left:1px solid var(--ccp-hd-line);transform:translateX(100%);visibility:hidden;transition:transform .25s ease,visibility 0s linear .25s}
 #ccp-hd .ccp-hd__bar.is-open .ccp-hd__nav{transform:none;visibility:visible;transition:transform .25s ease}
 body.admin-bar #ccp-hd .ccp-hd__nav{top:46px}
 .ccp-hd__scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;background:rgba(6,12,22,.45);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s linear .25s}
 .ccp-hd__bar.is-open .ccp-hd__scrim{opacity:1;visibility:visible;transition:opacity .25s}
 html.ccp-hd-lock,html.ccp-hd-lock body{overflow:hidden !important}
 .ccp-hd__dhead{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;position:sticky;top:0;z-index:1;height:56px;padding:0 8px 0 16px;background:var(--ccp-hd-bg);border-bottom:1px solid var(--ccp-hd-line)}
 #ccp-hd .ccp-hd__dtitle{font:600 16px/1 "Montserrat",sans-serif;color:var(--ccp-hd-ink) !important;text-shadow:none !important}
 #ccp-hd button.ccp-hd__dx{display:inline-flex !important;align-items:center;justify-content:center;width:40px !important;height:40px !important;min-width:0 !important;min-height:0 !important;padding:0 !important;border:0 !important;border-radius:var(--ccp-hd-r) !important;background:transparent !important;box-shadow:none !important;color:var(--ccp-hd-ink) !important;cursor:pointer}
 #ccp-hd button.ccp-hd__dx svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
 #ccp-hd button.ccp-hd__dx:focus-visible{outline:2px solid var(--ccp-hd-blue) !important;outline-offset:-2px}
 #ccp-hd .ccp-hd__nav .ccp-hd__util{flex:0 0 auto}
 #ccp-hd .ccp-hd__nav .ccp-hd__menu{flex:0 0 auto}
 /* Низ панели: «Обратный звонок» и контакты — те же узлы из ряда шапки (переносит ccp-hd-drawer-js). */
 .ccp-hd__dfoot{display:flex;flex-direction:column;gap:8px;flex:0 0 auto;position:sticky;bottom:0;z-index:1;margin-top:auto;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--ccp-hd-bg);border-top:1px solid var(--ccp-hd-line)}
 .ccp-hd__dfoot:empty{display:none}
 #ccp-hd .ccp-hd__dfoot .ccp-hd__cta.elementor-button{display:flex;justify-content:center;width:100%;height:48px;margin:0;font-size:16px}
 #ccp-hd .ccp-hd__dfoot .ccp-hd__contacts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}
 #ccp-hd .ccp-hd__dfoot .ccp-hd__ico{width:auto;height:44px;gap:8px;border:1px solid var(--ccp-hd-line);border-radius:var(--ccp-hd-r);color:var(--ccp-hd-ink) !important;text-shadow:none !important;font:500 15px/1 "Montserrat",sans-serif}
 #ccp-hd .ccp-hd__dfoot .ccp-hd__ico::after{content:attr(aria-label)}
 #ccp-hd .ccp-hd__dfoot .ccp-hd__ico svg{width:18px;height:18px}
 #ccp-hd .ccp-hd__dfoot .ccp-hd__mail{display:none}
}
@media (max-width:767px) and (prefers-reduced-motion:reduce){
 #ccp-hd .ccp-hd__nav,.ccp-hd__scrim{transition:none !important}
}

body.elementor-kit-9{--e-global-color-ccpmute:#5f6368}html[data-theme="night"] body.elementor-kit-9{--e-global-color-ccpmute:#9AA0A6}.ccp-mh-up{color:#0f7a44}html[data-theme="night"] .ccp-mh-up{color:#5bd68f}.ccp-plb__group > h3{color:#5f6368}html[data-theme="night"] .ccp-plb__group > h3{color:#BDC1C6}

.ccp-form__btn.ccp-form__btn.ccp-form__btn{background:var(--e-global-color-primary,#1D5AD2);color:var(--e-global-color-accent,#fff);border:1px solid var(--e-global-color-primary,#1D5AD2);border-radius:12px;min-height:50px;padding:0 26px;font-family:inherit;font-size:15px;font-weight:600;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:filter .12s ease}
.ccp-form__btn.ccp-form__btn.ccp-form__btn:hover{filter:brightness(1.08)}
.ccp-form__btn.ccp-form__btn.ccp-form__btn[disabled]{opacity:.55;cursor:default}
html[data-theme="night"] .ccp-form__btn.ccp-form__btn.ccp-form__btn{background:#1D5AD2;color:#fff;border-color:#1D5AD2}

:root{--ccp-mono:ui-monospace,SFMono-Regular,"SF Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono","DejaVu Sans Mono",monospace}body .ccp-mh .ccp-mh-table thead th,body .ccp-pf-wrap .ccp-pf-table th,body .ccp-pcc__t th,body .ccp-ar-tw th,body .ccp-src-table th,body .ccp-cmpa-table th,body .ccp-ab th,body .ccp-stk-t th,body .ccp-sl-table th,body .ccp-bp-area-t thead th,body .ccp-am__table th,body .ccp-pb__table th{font-family:var(--ccp-mono)}body .ccp-stk-t th,body .ccp-bp-area-t thead th,body .ccp-pcc__t th{font-size:12px}body .ccp-mh .ccp-mh-table thead th{font-size:12px!important}body .ccp-pf-wrap .ccp-pf-table th{font-size:12px!important}body .ccp-bp-area-t td.num,body .ccp-bp-area-t th.num,body .ccp-cmpa-table td.num,body .ccp-ab td.num,body .ccp-ab td.rk,body .ccp-src-num,body .ccp-stk-price,body .ccp-stki-pc,body .ccp-pcc__t td:last-child:not(.ccp-pcc__share),body .ccp-pcc__t tfoot td:last-child{font-family:var(--ccp-mono);font-variant-numeric:tabular-nums}body .ccp-mh-tile>span:first-child,body .ccp-pc-tile__k,body .ccp-pc-broker__role,body .ccp-pc-reuse .ccp-plb__fact b,body .ccp-mh-val,body .ccp-mh-lbl,body .ccp-mh-gl{font-family:var(--ccp-mono)}

/* Плоский язык сайта: поверхности #fff/#e6e8ec, радиус 26, ширина 1296 —
   те же значения, что на главной и карточке товара. */
.ccp-ft{--ft-max:1296px;--ft-bg:#f4f6f8;--ft-panel:#fff;--ft-line:#e6e8ec;
  --ft-tx:#111418;--ft-mut:#6b7280;--ft-acc:#1D5AD2;
  display:block;width:100%;box-sizing:border-box;margin-top:44px;
  background:var(--ft-bg);color:var(--ft-tx);
  border-top:1px solid var(--ft-line);
  font-size:15px;line-height:1.5}
.ccp-ft--dark{--ft-bg:#12161c;--ft-panel:#1b1f26;--ft-line:#2b3038;
  --ft-tx:#E8EAED;--ft-mut:#9AA0A6;--ft-acc:#8AB4F8}
.ccp-ft *{box-sizing:border-box}
.ccp-ft__in{max-width:var(--ft-max);margin:0 auto;padding:40px 22px 26px}

/* Сетка: бренд шире колонок, дальше четыре равные. */
.ccp-ft__grid{display:grid;gap:30px 34px;
  grid-template-columns:minmax(260px,1.5fr) repeat(4,minmax(150px,1fr))}

.ccp-ft__logo{display:inline-block;margin:0 0 14px}
.ccp-ft__logo img{height:38px;width:auto;display:block}
.ccp-ft--dark .ccp-ft__logo img{filter:brightness(0) invert(1)}
.ccp-ft__tag{margin:0 0 16px;color:var(--ft-mut);font-size:14px;max-width:34em}
.ccp-ft__contacts{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:6px}
.ccp-ft__contacts a{color:var(--ft-tx);text-decoration:none;font-weight:500}
.ccp-ft__contacts a:hover{color:var(--ft-acc)}
.ccp-ft__addr{color:var(--ft-mut);font-size:14px}

.ccp-ft__cta{display:flex;gap:10px;flex-wrap:wrap}
.ccp-ft__btn{display:inline-flex;align-items:center;gap:8px;height:42px;
  padding:0 18px;border-radius:12px;border:1px solid var(--ft-line);
  background:var(--ft-panel);color:var(--ft-tx);text-decoration:none;
  font-size:14px;font-weight:600;transition:.15s}
.ccp-ft__btn:hover{border-color:var(--ft-acc);color:var(--ft-acc)}
/* 16.08: зелёная заливка перетягивала на себя всё внимание подвала — кнопка
   WhatsApp теперь такая же нейтральная, как «Позвонить». Цвет текста прибит
   !important: глобальный цвет ссылок (особенно ночью) иначе его перекрашивает. */
.ccp-ft__btn--wa,
html[data-theme="night"] .ccp-ft__btn--wa{background:var(--ft-panel) !important;
  border-color:var(--ft-line) !important;color:var(--ft-tx) !important}
.ccp-ft__btn--wa:hover,
html[data-theme="night"] .ccp-ft__btn--wa:hover{border-color:var(--ft-acc) !important;
  color:var(--ft-acc) !important}

/* Колонки: на десктопе <details> раскрыт всегда, стрелка скрыта. */
.ccp-ft__col{min-width:0}
.ccp-ft__ch{font-size:13px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--ft-tx);margin:0 0 12px;cursor:default;
  list-style:none;display:flex;align-items:center;justify-content:space-between}
.ccp-ft__ch::-webkit-details-marker{display:none}
.ccp-ft__list{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.ccp-ft__list a{color:var(--ft-mut);text-decoration:none;font-size:14px}
.ccp-ft__list a:hover{color:var(--ft-acc)}
.ccp-ft__more{color:var(--ft-acc) !important;font-weight:600}

.ccp-ft__bar{margin-top:34px;padding-top:18px;border-top:1px solid var(--ft-line);
  display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center;
  justify-content:space-between}
.ccp-ft__legal{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--ft-mut);font-size:13px}
.ccp-ft__co{color:var(--ft-tx);font-weight:600}
.ccp-ft__mini{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}
.ccp-ft__mini a{color:var(--ft-mut);text-decoration:none;font-size:13px}
.ccp-ft__mini a:hover{color:var(--ft-acc)}
/* Кит Elementor красит и раздувает любой <button> (девятый случай тех же
   граблей) — размеры и скругление задаём с !important, иначе получаем
   48-пиксельную плашку с радиусом 10 вместо пилюли. */
.ccp-ft__theme{display:inline-flex;align-items:center;gap:7px;
  height:32px !important;min-height:0 !important;line-height:1 !important;
  padding:0 13px !important;border-radius:999px !important;
  border:1px solid var(--ft-line) !important;
  background:transparent !important;color:var(--ft-mut) !important;
  font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;
  box-shadow:none !important}
.ccp-ft__theme:hover{color:var(--ft-acc) !important;border-color:var(--ft-acc) !important}
/* Иконка показывает, КУДА переключишь: днём луна, ночью солнце. */
.ccp-ft__sun{display:none}
html[data-theme="night"] .ccp-ft__moon{display:none}
html[data-theme="night"] .ccp-ft__sun{display:inline-block}
.ccp-ft__disclaimer{margin:16px 0 0;color:var(--ft-mut);font-size:12px;line-height:1.55;
  max-width:96ch;opacity:.9}

/* Ночная тема сайта: подвал уходит в тёмный набор независимо от скина. */
html[data-theme="night"] .ccp-ft{--ft-bg:#12161c;--ft-panel:#1b1f26;--ft-line:#2b3038;
  --ft-tx:#E8EAED;--ft-mut:#9AA0A6;--ft-acc:#8AB4F8}
html[data-theme="night"] .ccp-ft__logo img{filter:brightness(0) invert(1)}

@media (max-width:1100px){
  .ccp-ft__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 30px}
  .ccp-ft__brand{grid-column:1 / -1}
}
@media (max-width:700px){
  .ccp-ft__in{padding:28px 16px 22px}
  .ccp-ft__grid{grid-template-columns:1fr;gap:0}
  .ccp-ft__brand{margin-bottom:22px}
  /* На телефоне колонки — аккордеон: пять заголовков вместо простыни ссылок. */
  .ccp-ft__col{border-top:1px solid var(--ft-line)}
  .ccp-ft__ch{padding:14px 0;margin:0;cursor:pointer}
  .ccp-ft__ch::after{content:"";width:8px;height:8px;flex:none;
    border-right:2px solid var(--ft-mut);border-bottom:2px solid var(--ft-mut);
    transform:rotate(45deg);margin-right:4px;transition:transform .15s}
  .ccp-ft__col[open] .ccp-ft__ch::after{transform:rotate(-135deg)}
  .ccp-ft__list{padding:0 0 16px}
  .ccp-ft__list a{font-size:15px}
  .ccp-ft__bar{margin-top:22px}
}


/* Серый контейнер: без него форма сливается со страницей — это первое, что
   заметил владелец. Цвет полупрозрачным серым, чтобы работать и в ночной теме,
   где кит подменяет все глобальные цвета. */
.ccp-form{background:rgba(127,127,127,.08);border-radius:14px;padding:24px 26px;margin:30px 0}
.ccp-form__title{font-size:20px;font-weight:600;line-height:1.3;margin:0 0 6px}
.ccp-form__text{font-size:15px;opacity:.8;margin:0 0 18px}
.ccp-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.ccp-form__f{display:flex;flex-direction:column;gap:5px;font-size:13px}
.ccp-form__f--wide{grid-column:1/-1}
.ccp-form__f>span{opacity:.75}
.ccp-form input,.ccp-form select,.ccp-form textarea{
    width:100%;box-sizing:border-box;font:inherit;font-size:15px;padding:11px 13px;
    border:1px solid rgba(127,127,127,.32);border-radius:9px;background:rgba(255,255,255,.65);
    color:inherit;outline:none}
/* Фон полей ночью НЕ трогаем: плагин ночной темы задаёт его всем полям сайта
   через !important, и перебивать его пришлось бы тем же !important. Форма
   должна выглядеть как остальные формы сайта, а не выделяться из них. */
.ccp-form input:focus,.ccp-form select:focus,.ccp-form textarea:focus{border-color:rgba(127,127,127,.7)}
/* Код страны и номер — ОДНО поле (владелец, 11.09.2026): общая рамка, код слева за
   тонким разделителем. С двумя отдельными рамками люди выбирали код и вбивали его ещё раз. */
.ccp-form__phone{display:flex;gap:0;align-items:stretch;border:1px solid rgba(127,127,127,.32);border-radius:9px;overflow:hidden}
.ccp-form__phone:focus-within{border-color:rgba(127,127,127,.7)}
.ccp-form .ccp-form__phone select,.ccp-form .ccp-form__phone input{border:0 !important;border-radius:0 !important;box-shadow:none !important}
.ccp-form .ccp-form__phone input{flex:1 1 auto;min-width:0;padding-left:12px}
/* Свёрнутый селект: текст ПРОЗРАЧНЫЙ, вместо него фасад .ccp-form__dialv
   (флаг + код). Раскрытый список — нативный, там полные названия из option.
   ⚠️ option задаём цвет ЯВНО: без этого браузеры, которые красят выпадающий
   список по CSS (Chrome на Windows/Linux), унаследовали бы transparent и
   список стал бы «пустым». macOS рисует список нативно и правило игнорирует. */
/* ⚠️ min-width:0 обязателен. У элемента flex минимальная ширина по умолчанию
   равна ширине СОДЕРЖИМОГО, а содержимое списка — самое длинное название
   страны. Без этого поле раздувалось до 462 px и съедало ввод номера, хотя
   flex-basis стоял 108. */
.ccp-form__dialbox{position:relative;flex:0 0 104px;min-width:0;display:flex;border-right:1px solid rgba(127,127,127,.25)}
.ccp-form__dialbox::after{content:"";position:absolute;right:10px;top:50%;margin-top:-2px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.55;pointer-events:none}
.ccp-form__phone select{width:100%;min-width:0;padding-right:6px;color:transparent}
.ccp-form__phone select option{color:#202124;background:#fff}
html[data-theme="night"] .ccp-form__phone select option{color:#E8EAED;background:#1b1f26}
/* ⚠️ Ночью прозрачность СЛЕТАЛА: страховка плагина темы красит все select
   сайта своим `color !important`, и полное название страны из свёрнутого
   селекта наползало на фасад («+971 U» поверх флага). Возвращаем прозрачность
   тем же !important — 14.08.2026. */
html[data-theme="night"] .ccp-form__phone select{color:transparent !important}
.ccp-form__dialv{position:absolute;left:11px;top:50%;transform:translateY(-50%);
  pointer-events:none;white-space:nowrap;overflow:hidden;max-width:calc(100% - 32px)}
/* Honeypot: убираем из потока и от экранных читалок, но НЕ display:none —
   часть ботов игнорирует скрытые таким образом поля. */
.ccp-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ccp-form__foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}
.ccp-form__btn{font:inherit;font-size:15px;font-weight:600;padding:12px 26px;border:0;border-radius:9px;
    cursor:pointer;background:var(--e-global-color-primary,#1d5ad2);color:#fff}
.ccp-form__btn:hover{opacity:.9}
/* На части шаблонов основной цвет кита — чёрный, и ночью кнопка становилась
   невидимой: заливка яркостью 0 на фоне яркостью 33. Ночью инвертируем. */
/* 12.09.2026, решение владельца: ночью кнопка остаётся тёмно-синей с белым текстом. Светло-голубая
   с тёмным текстом («так не нравится») жила здесь и в пяти постраничных перебивках; сводим всё к
   одному приёму, тому же, что у кнопок-призывов. Белый на #1D5AD2 — контраст 6,10 при норме 4,5.
   Это корневое правило: оно красит кнопку любой нашей формы, где нет своей перебивки. */
html[data-theme="night"] .ccp-form__btn{background:#1D5AD2;color:#fff}
.ccp-form__btn[disabled]{opacity:.55;cursor:default}
.ccp-form__note{font-size:12px;opacity:.65;flex:1 1 220px}
.ccp-form__msg{margin-top:12px;font-size:15px}
.ccp-form__msg--ok{color:#1a7f37}
.ccp-form__msg--err{color:#b3261e}
html[data-theme="night"] .ccp-form__msg--ok{color:#7ee2a8}
html[data-theme="night"] .ccp-form__msg--err{color:#f2b8b5}
@media (max-width:600px){.ccp-form{padding:18px}.ccp-form__grid{grid-template-columns:1fr}}

