
html[data-theme="night"] body{background-color:#202124;}
/* Шаблоны Elementor задают фон страницы селектором `body.elementor-page-<id>`,
   а он сильнее, чем `html[data-theme="night"] body` — на страницах проекта и
   локации фон оставался белым, тогда как текст уже становился светлым, и
   страница читалась как пустая. Поэтому в ночной теме фон подложки забираем
   себе принудительно: ночью фон страницы задаёт тема, а не шаблон. */
html[data-theme="night"] body[class*="elementor-page-"]{background-color:#202124 !important;}
html[data-theme="night"] body.elementor-kit-9{--e-global-color-accent:#202124;--e-global-color-text:#E8EAED;--e-global-color-secondary:#9AA0A6;--e-global-color-primary:#8AB4F8;--e-global-color-e262747:#303134;--e-global-color-ccpdark:#171718;--e-global-color-ccpfield:#303134;--e-global-color-ccpline:#3C4043;--e-global-color-ccpmute:#80868B;--e-global-color-8501981:#E8EAED;}
/* Подложка под прозрачной шапкой — ТОЛЬКО в ночной теме.
   В ночной теме пункты меню светлые, и над светлой фотографией их не видно.
   Мягкий градиент сверху решает это над любым фото. Днём подложка не нужна
   (тёмный текст над фото читается), а на странице без фотографии тёмный
   градиент дал бы полосу поверх белого — поэтому и делаем только ночью:
   поверх графита он попросту незаметен. */
/* ВАЖНО: подложку делаем ФОНОВЫМ ГРАДИЕНТОМ, а не псевдоэлементом.
   Псевдоэлемент требует position:relative на шапке, а это ломает раскладку:
   шапка перестаёт накладываться на первый экран и отодвигает фото вниз
   (проверено — так и произошло). Фоновая картинка на раскладку не влияет. */
html[data-theme="night"] .sticky-header:not(.scrolled){
  background-image:linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,0));
}
html[data-theme="night"] .sticky-header.scrolled{background-image:none;}

/* Белый логотип в ночной теме — CSS-фильтром от ОРИГИНАЛА, как в новом
   подвале (ccp-footer): brightness(0) делает картинку чёрной с сохранением
   прозрачности, invert(1) переворачивает в белый. Раньше тут была подмена
   файлом logo_white.webp через content:url — файл был хуже качеством и
   больше не нужен (16.08.2026, сам файл в медиатеке не тронут). */
html[data-theme="night"] .elementor-widget-theme-site-logo img,
html[data-theme="night"] .elementor-location-footer .elementor-image-box-img img{
  filter:brightness(0) invert(1);
}

/* ------------------------------------------------------------------ *
 *  СТРАХОВКА: места, которые ночная тема не достаёт через глобальные цвета
 *
 *  Тема перекрашивает палитру Elementor, и всё, что покрашено ГЛОБАЛЬНЫМИ
 *  цветами, темнеет само. Но часть блоков задаёт цвет мимо палитры: прямым
 *  hex в стилях виджета, инлайн-стилем в тексте, встроенным CSS Elementor.
 *  Такие места ночью остаются светлыми — текст светлеет, фон нет, и блок
 *  читается как пустой. Проверено обходом контраста 03.08.2026 по страницам
 *  товара, каталога, «О компании», статей, карты и статусов проектов.
 *
 *  Здесь чиним следствие. Правильное лечение причины — красить новые блоки
 *  глобальными цветами (__globals__), см. памятку night-theme-mechanics.
 * ------------------------------------------------------------------ */

/* 1. Поля ввода. Часть страниц красит фон поля глобальным цветом «текст на
      тёмном» — днём он белый и выглядит как надо, а ночью остаётся светлым,
      и получается светлое поле среди тёмной страницы. Нужен !important:
      правило страницы (.page-id-57 input) по весу сильнее. */
html[data-theme="night"] body input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="range"]),
html[data-theme="night"] body textarea,
html[data-theme="night"] body select{
  background-color:#202124 !important;color:#E8EAED !important;border-color:#5F6368 !important;
}
html[data-theme="night"] body ::placeholder{color:#80868B !important;}

/* 2. Текст, вставленный из документа вместе с инлайн-цветом. На «О компании»
      абзацы несут style="color: rgb(0, 0, 0)" — чёрным по тёмному. Инлайн-стиль
      перебивается только !important. */
html[data-theme="night"] [style*="color: rgb(0, 0, 0)"],
html[data-theme="night"] [style*="color:rgb(0,0,0)"],
html[data-theme="night"] [style*="color: #000"],
html[data-theme="night"] [style*="color:#000"]{color:#E8EAED !important;}

/* 3. Карточки записей Elementor (лента статей) — белый фон из его же стилей. */
html[data-theme="night"] .elementor-post__card{background-color:#303134;border-color:#3C4043;}
html[data-theme="night"] .elementor-post__card .elementor-post__title,
html[data-theme="night"] .elementor-post__card .elementor-post__title a,
html[data-theme="night"] .elementor-post__card .elementor-post__excerpt p,
html[data-theme="night"] .elementor-post__card .elementor-post__meta-data{color:#E8EAED;}

/* 4. Всплывающие окна Elementor. Белый фон прописан селектором с ИДЕНТИФИКАТОРОМ
      (#elementor-popup-modal-3935 .dialog-widget-content), а он по весу сильнее
      любого нашего — поэтому только !important. */
html[data-theme="night"] .dialog-widget-content,
html[data-theme="night"] .elementor-popup-modal .dialog-message{background-color:#303134 !important;color:#E8EAED;}

/* 4а. Карточка на маркере Google-карты: её подложку рисует сам Google. */
html[data-theme="night"] .gm-style-iw,
html[data-theme="night"] .gm-style-iw-c,
html[data-theme="night"] .gm-style-iw-d{background-color:#303134 !important;color:#E8EAED !important;}
html[data-theme="night"] .gm-style-iw-tc::after{background:#303134 !important;}
html[data-theme="night"] .gm-style-iw a{color:#8AB4F8 !important;}

/* 4б. Кнопка, залитая акцентом. Ночью акцент светлеет (#8AB4F8), а текст на
       ней остаётся белым — белым по голубому, контраст 2.1. Решение владельца
       от 12.09.2026: кнопку НЕ осветлять, а держать тёмно-синей #1D5AD2 с белым
       текстом (6,10) — как «Call Back» в шапке. Светло-голубая кнопка с тёмным
       текстом владельцу не нравится. */
html[data-theme="night"] .ccp-pdf-button-brochure{background:#1D5AD2;border-color:#1D5AD2;color:#fff;}
/* У кнопки в блоке фактов цвет задан селектором с большим весом — !important. */
html[data-theme="night"] .ccp-ai-cta__btn{background:#1D5AD2 !important;color:#fff !important;}

/* 4в. Хлебные крошки локаций: цвета #666 и #222 зашиты в самом блоке. */
html[data-theme="night"] .location-breadcrumbs a{color:#9AA0A6;}
/* Текущий пункт крошек покрашен селектором с большим весом — нужен !important. */
html[data-theme="night"] .location-breadcrumbs span,
html[data-theme="night"] .location-breadcrumbs li span{color:#E8EAED !important;}

/* 4г. Приглушённый текст в таблице сделок DLD — серый по тёмному, контраст 1.5. */
html[data-theme="night"] .ccp-pf-muted{color:#9AA0A6 !important;}

/* 5. Наш блок вопросов-ответов: карточка белая, а вопрос уже светлый. */
html[data-theme="night"] .ccp-faq__item{background:#303134;border-color:#3C4043;}
html[data-theme="night"] .ccp-faq__a{color:rgba(232,234,237,.78);}

/* Переключатель в подвале — выглядит как обычная ссылка блока Services,
   намеренно приглушён, чтобы не тянуть на себя внимание. */
.ccp-theme-switch{cursor:pointer;opacity:.65;transition:opacity .2s;}
.ccp-theme-switch:hover{opacity:1;}

:root{--e-global-color-primary:#1D5AD2;--e-global-color-secondary:#5E5E5E;--e-global-color-text:#202124;--e-global-color-accent:#FFFFFF;--e-global-color-8501981:#FFFFFF;--e-global-color-e262747:#F7F7F7;--e-global-color-ccpdark:#000000;--e-global-color-ccpfield:#F2F2F2;--e-global-color-ccpline:#EEEEEE;--e-global-color-ccpveil:rgba(0,0,0,0.5);--e-global-color-ccpfill:#1D5AD2;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-weight:500;--e-global-typography-ccph1-font-family:"Montserrat";--e-global-typography-ccph1-font-size:52px;--e-global-typography-ccph1-font-weight:800;--e-global-typography-ccph1-line-height:1.1em;--e-global-typography-ccph2-font-family:"Montserrat";--e-global-typography-ccph2-font-size:38px;--e-global-typography-ccph2-font-weight:700;--e-global-typography-ccph2-line-height:1.2em;--e-global-typography-ccph3-font-family:"Montserrat";--e-global-typography-ccph3-font-size:30px;--e-global-typography-ccph3-font-weight:700;--e-global-typography-ccph3-line-height:1.25em;--e-global-typography-ccptxt-font-family:"Montserrat";--e-global-typography-ccptxt-font-size:17px;--e-global-typography-ccptxt-font-weight:400;--e-global-typography-ccptxt-line-height:1.6em;--e-global-typography-ccpcap-font-family:"Montserrat";--e-global-typography-ccpcap-font-size:14px;--e-global-typography-ccpcap-font-weight:400;--e-global-typography-ccpcap-line-height:1.5em;}@media(max-width:1024px){:root{--e-global-typography-ccph1-font-size:40px;--e-global-typography-ccph2-font-size:31px;--e-global-typography-ccph3-font-size:26px;--e-global-typography-ccptxt-font-size:16px;--e-global-typography-ccpcap-font-size:14px;}}@media(max-width:767px){:root{--e-global-typography-ccph1-font-size:32px;--e-global-typography-ccph2-font-size:27px;--e-global-typography-ccph3-font-size:23px;--e-global-typography-ccptxt-font-size:16px;--e-global-typography-ccpcap-font-size:13px;}}

/* Кнопка должна выглядеть ровно как переключатель языка: только иконка,
   без фона, рамки и тени. !important — иначе кит Elementor красит <button>. */
.ccp-theme-btn,
.elementor-location-header .ccp-theme-btn{
    display:inline-flex !important;align-items:center;justify-content:center;
    width:auto !important;height:auto !important;min-width:0 !important;min-height:0 !important;
    padding:4px !important;margin:0 10px 0 0 !important;
    border:0 !important;border-radius:0 !important;outline:none !important;
    background:none !important;background-color:transparent !important;background-image:none !important;
    box-shadow:none !important;text-shadow:none !important;cursor:pointer;
    color:inherit !important;opacity:.85;
    line-height:1;flex:0 0 auto;vertical-align:middle;
    -webkit-appearance:none;appearance:none;
}
.ccp-theme-btn:hover,.ccp-theme-btn:focus,.ccp-theme-btn:active{
    background:none !important;background-color:transparent !important;
    border:0 !important;box-shadow:none !important;opacity:1;
}
.ccp-theme-btn svg{width:19px;height:19px;display:block;fill:none;
    stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
@media (max-width:1024px){ .ccp-theme-btn{margin:0 8px 0 0 !important;} .ccp-theme-btn svg{width:18px;height:18px;} }
/* ⚠️ 10.09.2026, владелец: «добавь в шапку рядом с переключением ночной темы
   значок лупы со ссылкой на поиск». Та же кнопка визуально, но это <a>, а не
   <button> — просто переход на страницу поиска, без своего JS-состояния. */
.ccp-search-btn,
.elementor-location-header .ccp-search-btn{
    display:inline-flex !important;align-items:center;justify-content:center;
    width:auto !important;height:auto !important;min-width:0 !important;min-height:0 !important;
    padding:4px !important;margin:0 10px 0 0 !important;
    border:0 !important;border-radius:0 !important;outline:none !important;
    background:none !important;background-color:transparent !important;background-image:none !important;
    box-shadow:none !important;text-shadow:none !important;cursor:pointer;
    color:inherit !important;opacity:.85;text-decoration:none !important;
    line-height:1;flex:0 0 auto;vertical-align:middle;
    -webkit-appearance:none;appearance:none;
}
.ccp-search-btn:hover,.ccp-search-btn:focus,.ccp-search-btn:active{
    background:none !important;background-color:transparent !important;
    border:0 !important;box-shadow:none !important;opacity:1;
}
.ccp-search-btn svg{width:19px;height:19px;display:block;fill:none;
    stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
@media (max-width:1024px){ .ccp-search-btn{margin:0 8px 0 0 !important;} .ccp-search-btn svg{width:18px;height:18px;} }


/* Выглядит как соседний переключатель языка: только буквы, без фона и рамки.
   !important — иначе кит Elementor красит ссылку как кнопку. */
.ccp-lang-btn,
.elementor-location-header .ccp-lang-btn{
    display:inline-flex !important;align-items:center;justify-content:center;
    width:auto !important;height:auto !important;min-width:0 !important;min-height:0 !important;
    padding:4px 6px !important;margin:0 4px 0 0 !important;
    border:0 !important;border-radius:0 !important;outline:none !important;
    background:none !important;background-color:transparent !important;background-image:none !important;
    box-shadow:none !important;text-decoration:none !important;cursor:pointer;
    color:inherit !important;opacity:.85;
    /* один в один как у переключателя Polylang: Montserrat 400, 17px, без caps */
    font-family:"Montserrat",sans-serif;font-weight:400 !important;font-size:17px !important;
    line-height:1;letter-spacing:normal !important;text-transform:none !important;
    flex:0 0 auto;vertical-align:middle;
}

/* Старый выпадающий список Polylang скрыт, а не удалён: плагин продолжает
   работать (и остаётся источником ссылок), вернуть — убрать это правило. */
.elementor-location-header .elementor-widget-polylang-language-switcher{
    display:none !important;
}
.ccp-lang-btn:hover,.ccp-lang-btn:focus{
    background:none !important;opacity:1;color:inherit !important;text-decoration:none !important;
}
@media (max-width:1024px){ .ccp-lang-btn{font-size:16px !important;padding:4px !important;} }


.ccp-map-deferred{background:var(--e-global-color-ccpfield,#f2f2f2);border:0}
/* z-index:0 заводит собственный слой: поднятый снимок (z-index:1 ниже) остаётся
   внутри блока карты и не залезает поверх соседней карточки с адресом. */
.ccp-map-facade{position:relative;z-index:0;height:100%;width:100%;line-height:0;cursor:pointer}
/* Специфичность выше, чем у элементоровского «.elementor img{height:auto}»,
   иначе снимок получает нулевую высоту и его просто не видно. */
/* z-index обязателен: кадр карты Elementor тоже позиционирован абсолютно и стоит
   в разметке ПОСЛЕ снимка, поэтому без слоя он закрывает снимок собой — блок
   выглядит пустым, хотя снимок загружен. Когда карту подняли, снимок прячется
   правилом .is-live ниже и кадр открывается. */
.ccp-map-facade .ccp-map-facade__img{
  position:absolute;inset:0;width:100%;height:100%;max-width:none;z-index:1;
  object-fit:cover;border-radius:inherit;display:block;
  transition:filter .18s ease;
}
.ccp-map-facade:hover .ccp-map-facade__img{filter:brightness(1.04) saturate(1.05)}
.ccp-map-facade:focus-visible{outline:2px solid var(--e-global-color-ccpfill,#1D5AD2);outline-offset:3px}
.ccp-map-facade.is-live .ccp-map-facade__img{display:none}
.ccp-map-facade.is-live{cursor:default}


img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */



	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
/*# sourceURL=wp-emoji-styles-inline-css */


:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */


:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the block styles printed at wp_footer." }
/*# sourceURL=wp-block-styles-placeholder-inline-css */


:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the global-styles printed at wp_footer." }
/*# sourceURL=wp-global-styles-placeholder-inline-css */


/* Плоская главная. Поверхности и ритм — как у боевой карточки товара. */
.ccp-hf{--hf-max:1296px;--hf-pad:max(22px,calc((100% - var(--hf-max)) / 2))}

/* ---------- hero-слайдер ---------- */
/* ⚠️ Высота ЖЁСТКАЯ (height, не min-height): раньше секцию тянул текст
   активного слайда, и на каждом слайде фото было разной высоты — владелец
   это поймал 14.08. Теперь все слайды абсолютные в фиксированной рамке,
   высота одна на все три. */
.ccp-hf-hero{position:relative;isolation:isolate;height:min(88vh,760px);
  overflow:hidden}
/* Слайды лежат стопкой, листание кросс-фейдом прозрачности: без сдвигов,
   спокойно работает и при системном «уменьшении движения». */
.ccp-hf-slide{position:absolute;inset:0;display:flex;align-items:flex-end;
  padding:56px var(--hf-pad) 170px;opacity:0;transition:opacity .8s ease;
  pointer-events:none}
.ccp-hf-slide.is-on{opacity:1;pointer-events:auto}
.ccp-hf-slide::before{content:"";position:absolute;inset:0;z-index:-2;
  background-image:var(--hf-hero);background-size:cover;
  background-position:var(--hf-pos,center)}
/* ⚠️ РОВНАЯ тонировка по всему кадру + градиент снизу — приём владельца:
   белый текст читается на ЛЮБОЙ фотографии, светлое небо не съедает заголовок. */
.ccp-hf-slide::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(rgba(10,14,22,.38),rgba(10,14,22,.38)),
    linear-gradient(200deg,rgba(10,14,22,0) 40%,rgba(10,14,22,.6) 100%)}
.ccp-hf-hero__inner{max-width:760px}
/* ⚠️ Белый цвет с ЗАПАСОМ ВЕСА и !important: кит красит h1/p своим
   `.elementor-kit-9 h1` (класс+тег) — заголовок выходил тёмным и тонул в фото.
   Девятый случай этой грабли. */
.ccp-hf .ccp-hf-hero__inner,
.ccp-hf .ccp-hf-hero__inner .ccp-hf-hero__kicker,
.ccp-hf .ccp-hf-hero__inner .ccp-hf-hero__title,
.ccp-hf .ccp-hf-hero__inner .ccp-hf-hero__sub{color:#fff !important}
.ccp-hf-hero__kicker{font-size:13px;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.ccp-hf-hero__title{font-size:clamp(30px,4.4vw,54px);line-height:1.08;font-weight:750;
  letter-spacing:-.02em;margin:10px 0 14px;max-width:none;margin-inline:0}
.ccp-hf-hero__sub{font-size:clamp(15px,1.5vw,18px);line-height:1.55;opacity:.92;
  margin:0 0 22px;max-width:640px;margin-inline:0}
.ccp-hf-hero__cta{display:flex;flex-wrap:wrap;gap:10px}
/* Нижняя полоса: точки слайдера + живые счётчики, общие для всех слайдов. */
.ccp-hf-hero__bottom{position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:0 var(--hf-pad) 26px;color:#fff}
.ccp-hf-hero__dots{display:flex;gap:8px;margin-bottom:14px}
/* Кнопка выше видимой полоски: в 5px мышью не попасть. */
.ccp-hf-dot{position:relative;width:26px !important;height:16px !important;min-height:0 !important;
  padding:0 !important;border:0 !important;cursor:pointer;
  background:transparent !important;box-shadow:none !important}
.ccp-hf-dot::before{content:"";position:absolute;left:0;right:0;top:50%;height:5px;
  transform:translateY(-50%);border-radius:3px;background:rgba(255,255,255,.35);
  transition:background .3s ease}
.ccp-hf-dot.is-on::before{background:#fff}
.ccp-hf-btn{display:inline-block;padding:13px 22px;border-radius:12px;font-size:15px;
  font-weight:600;text-decoration:none !important;cursor:pointer}
.ccp-hf-btn--primary{background:var(--e-global-color-primary,#2458c5);color:#fff !important}
/* Ночью тема подменяет primary на светло-голубой #8ab4f8 — белый текст на нём
   терял контраст. Кнопка слайдера держит ДНЕВНОЙ синий круглосуточно
   (владелец, 14.08). */
html[data-theme="night"] .ccp-hf .ccp-hf-btn--primary{background:#1D5AD2 !important;color:#fff !important}
.ccp-hf-btn--ghost{border:1px solid rgba(255,255,255,.65);color:#fff !important}
.ccp-hf-btn--ghost:hover{background:rgba(255,255,255,.12)}
.ccp-hf-hero__facts{display:flex;flex-wrap:wrap;gap:10px 26px;
  border-top:1px solid rgba(255,255,255,.28);padding-top:16px}
.ccp-hf .ccp-hf-hero__facts,.ccp-hf .ccp-hf-hero__facts *{color:#fff !important}
.ccp-hf-fact{display:flex;flex-direction:column;gap:1px}
.ccp-hf-fact b{font-size:clamp(19px,2vw,26px);font-weight:700;font-variant-numeric:tabular-nums}
.ccp-hf-fact span{font-size:12.5px;opacity:.8}

/* ---------- секции ---------- */
.ccp-hf-body{display:flex;flex-direction:column;gap:26px;
  padding:26px var(--hf-pad) 10px}
.ccp-hf-panel{background:#fff;border:1px solid #e6e8ec;border-radius:26px;
  padding:22px 24px;
  box-shadow:0 1px 2px rgba(16,24,40,.04),0 6px 18px rgba(16,24,40,.05)}
.ccp-hf-shead{display:flex;align-items:flex-end;justify-content:space-between;
  gap:16px;margin:0 0 16px}
.ccp-hf-h2{font-size:clamp(19px,1.9vw,24px);font-weight:650;line-height:1.2;
  letter-spacing:-.01em;margin:0;color:#202124;max-width:none;margin-inline:0;text-align:left}
.ccp-hf-sub{font-size:14px;line-height:1.5;color:#5f6368;margin:5px 0 0;max-width:640px;margin-inline:0}
.ccp-hf-more{flex:none;font-size:14px;font-weight:600;text-decoration:none !important;
  color:var(--e-global-color-primary,#2458c5) !important;white-space:nowrap;padding-bottom:3px}

/* Ленты ccp_listing уже плоские (glass=0) — здесь только убираем их
   собственные внешние отступы, чтобы панель сидела плотно. */
.ccp-hf-panel .ccp-lst{margin:0}

.ccp-hf-map{border-radius:16px;overflow:hidden;min-height:380px}
.ccp-hf-map iframe{display:block;width:100%;min-height:380px;border:0}

/* Лицензия + офис: две колонки в одной панели. */
.ccp-hf-trust{display:grid;grid-template-columns:1.4fr 1fr;gap:26px}
.ccp-hf-trust__txt{max-width:none;margin-top:8px}
.ccp-hf-trust__mail{font-weight:600;text-decoration:none !important;
  color:var(--e-global-color-primary,#2458c5) !important}
@media (max-width:700px){.ccp-hf-trust{grid-template-columns:1fr}}

/* Кнопка боевой формы: кит красит её чёрной, а главная кнопка страницы синяя —
   две разные «главные» кнопки на одном экране. Тот же фикс, что на карточке. */
.ccp-hf .ccp-form__btn{background:var(--e-global-color-primary,#2458c5) !important;
  color:#fff !important;border-radius:12px !important}
/* 12.09.2026, решение владельца: ночная кнопка — тёмно-синяя с белым текстом (6,10). */
html[data-theme="night"] .ccp-hf .ccp-form__btn{background:#1D5AD2 !important;color:#fff !important}

/* ---------- ночная тема ---------- */
html[data-theme="night"] .ccp-hf-panel{background:#1b1f26;border-color:#2b3038;
  box-shadow:0 1px 2px rgba(0,0,0,.3)}
html[data-theme="night"] .ccp-hf-h2{color:#E8EAED}
html[data-theme="night"] .ccp-hf-sub,
html[data-theme="night"] .ccp-hf-rera{color:#9AA0A6}

@media (max-width:700px){
  /* ⚠️ На телефоне контент слайда был ВЫШЕ отведённого места и вылезал
     под шапку (замерено на 375×667: контенту нужно ~500px при свободных
     300). Лечится компактной типографикой и счётчиками сеткой 2×2. */
  /* Бюджет высоты на iPhone 7 (hero ~535px): шапка 100 + контент ~210 +
     нижняя полоса ~140 = 450. Проверять замером top у .ccp-hf-hero__inner
     ПЕРВОГО слайда — он самый длинный. */
  /* ⚠️ ЖЕЛЕЗНАЯ защита от заезда под шапку: на телефоне активный слайд
     живёт В ПОТОКЕ (position:relative), hero тянется под контент —
     переполнение вверх невозможно в принципе. Плата — высота фото может
     чуть меняться между слайдами; на телефоне это незаметно, а vh на
     реальных телефонах врёт из-за адресной строки (в эмуляторе дефект
     не воспроизводился, на живом iPhone был). */
  .ccp-hf-hero{height:auto;min-height:min(92vh,640px)}
  /* ⚠️ Активному слайду — ТА ЖЕ min-height, что у hero: без неё слайд в
     потоке короче hero, фото кончалось выше низа, и счётчики выходили
     белым по белому на подложке страницы. */
  .ccp-hf-slide.is-on{position:relative;min-height:min(92vh,640px)}
  .ccp-hf-slide{padding:100px var(--hf-pad) 150px}
  .ccp-hf-hero__kicker{font-size:11px}
  .ccp-hf-hero__title{font-size:24px;margin:8px 0 10px}
  .ccp-hf-hero__sub{font-size:14px;margin-bottom:12px}
  .ccp-hf-btn{padding:10px 14px;font-size:13.5px}
  .ccp-hf-hero__cta{gap:8px}
  .ccp-hf-hero__bottom{padding-bottom:10px}
  .ccp-hf-hero__dots{margin-bottom:8px}
  .ccp-hf-hero__facts{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding-top:10px}
  .ccp-hf-fact b{font-size:16px}
  .ccp-hf-fact span{font-size:10.5px}
  .ccp-hf-panel{padding:16px;border-radius:18px}
  .ccp-hf-shead{flex-direction:column;align-items:flex-start;gap:6px}
}
/*# sourceURL=ccp-home-flat-inline-css */


.ccp-rl{margin:18px 0}.ccp-rl-scroll{overflow-x:auto}.ccp-rl-table{width:100%;border-collapse:collapse;font-size:15px}.ccp-rl-table th,.ccp-rl-table td{text-align:left;padding:10px 12px;border-bottom:1px solid rgba(127,127,127,.22);white-space:nowrap}.ccp-rl-table--wrap th,.ccp-rl-table--wrap td{white-space:normal}.ccp-rl-table--wrap td:first-child{white-space:nowrap}.ccp-rl-table th{font-size:13px;font-weight:600;color:var(--e-global-color-ccpmute,#6b7075)}.ccp-rl-table td b{font-weight:600}.ccp-rl-table a{color:var(--e-global-color-accent,#FFFFFF);text-decoration:none;border-bottom:1px solid rgba(127,127,127,.35)}.ccp-rl-note{font-size:13px;color:var(--e-global-color-ccpmute,#6b7075);margin:10px 0 0}.ccp-rl-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:18px 0}.ccp-rl-card{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;background:rgba(127,127,127,.07);color:inherit;transition:transform .15s;text-decoration:none !important}.ccp-rl-card *{text-decoration:none !important}.ccp-rl-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.10)}.ccp-rl-card:hover{transform:translateY(-2px)}.ccp-rl-card__img{display:block;height:150px;background-size:cover;background-position:center}.ccp-rl-card__body{display:flex;flex-direction:column;gap:4px;padding:12px 14px 14px}.ccp-rl-card__name{font-weight:600;font-size:15px;line-height:1.3;color:#202124}html[data-theme="night"] .ccp-rl-card__name{color:#E8EAED}.ccp-rl-card__loc,.ccp-rl-card__meta{font-size:12px;color:var(--e-global-color-ccpmute,#6b7075)}.ccp-rl-card__price{font-size:14px;font-weight:600;color:var(--e-global-color-primary,#1D5AD2)}
/*# sourceURL=ccp-rl-inline-css */


.woocommerce form .form-row .required { visibility: visible; }
/*# sourceURL=woocommerce-inline-inline-css */

