
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-pu{margin:40px 0}.ccp-pu__sub{margin:-6px 0 18px;font-size:15px;line-height:1.5;color:#5f6368}html[data-theme="night"] .ccp-pu__sub{color:#9AA0A6}
/*# sourceURL=ccp-pu-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 */


.ccp-cpt-gallery-shortcode {
    --ccp-gallery-gap: 14px;
    --ccp-gallery-radius: 18px;
    --ccp-gallery-row-height: 150px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: var(--ccp-gallery-row-height);
    grid-auto-flow: dense;
    gap: var(--ccp-gallery-gap);
    width: 100%;
    margin: 0;
}

.ccp-cpt-gallery-shortcode-item {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
    border-radius: var(--ccp-gallery-radius);
    background: #f3f4f6;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
    isolation: isolate;
    line-height: 0;
}

.ccp-cpt-gallery-shortcode-single {
    grid-template-columns: 1fr;
    grid-auto-rows: minmax(320px, 560px);
}

.ccp-cpt-gallery-shortcode-single .ccp-cpt-gallery-shortcode-item {
    grid-column: auto;
    grid-row: auto;
}

.ccp-cpt-gallery-shortcode-link {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    text-decoration: none;
    color: inherit;
    line-height: 0;
}

.ccp-cpt-gallery-shortcode-image,
.ccp-cpt-gallery-shortcode img.ccp-cpt-gallery-shortcode-image {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    min-height: 100%;
    object-fit: cover;
    object-position: center center;
    transform: scale(1.001);
    transition: transform 0.45s ease, filter 0.45s ease;
    will-change: transform;
}

.ccp-cpt-gallery-shortcode-item > img.ccp-cpt-gallery-shortcode-image {
    height: 100% !important;
}

.ccp-cpt-gallery-shortcode-item::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0.16) 100%);
    opacity: 0;
    transition: opacity 0.35s ease;
    z-index: 1;
}

.ccp-cpt-gallery-shortcode-item:hover .ccp-cpt-gallery-shortcode-image {
    transform: scale(1.045);
    filter: saturate(1.04) contrast(1.02);
}

.ccp-cpt-gallery-shortcode-item:hover::after {
    opacity: 1;
}

.ccp-cpt-gallery-multiple .ccp-cpt-gallery-shortcode-item:first-child {
    grid-column: span 2;
    grid-row: span 2;
}

.ccp-cpt-gallery-count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(260px, 420px);
}

.ccp-cpt-gallery-count-2 .ccp-cpt-gallery-shortcode-item:first-child {
    grid-column: span 1;
    grid-row: span 1;
}

.ccp-cpt-gallery-count-3 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 170px;
}

.ccp-cpt-gallery-count-3 .ccp-cpt-gallery-shortcode-item:first-child {
    grid-column: span 2;
    grid-row: span 2;
}

.ccp-cpt-gallery-count-3 .ccp-cpt-gallery-shortcode-item:nth-child(2),
.ccp-cpt-gallery-count-3 .ccp-cpt-gallery-shortcode-item:nth-child(3) {
    grid-column: span 2;
    grid-row: span 1;
}

.ccp-cpt-gallery-count-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 170px;
}

.ccp-cpt-gallery-count-4 .ccp-cpt-gallery-shortcode-item:first-child {
    grid-column: span 2;
    grid-row: span 2;
}

.ccp-cpt-gallery-count-4 .ccp-cpt-gallery-shortcode-item:nth-child(2),
.ccp-cpt-gallery-count-4 .ccp-cpt-gallery-shortcode-item:nth-child(3),
.ccp-cpt-gallery-count-4 .ccp-cpt-gallery-shortcode-item:nth-child(4) {
    grid-column: span 1;
    grid-row: span 1;
}

.ccp-cpt-gallery-shortcode:not(.ccp-cpt-gallery-count-1):not(.ccp-cpt-gallery-count-2):not(.ccp-cpt-gallery-count-3):not(.ccp-cpt-gallery-count-4) .ccp-cpt-gallery-shortcode-item:nth-child(7n) {
    grid-row: span 2;
}

.ccp-cpt-gallery-shortcode:not(.ccp-cpt-gallery-count-1):not(.ccp-cpt-gallery-count-2):not(.ccp-cpt-gallery-count-3):not(.ccp-cpt-gallery-count-4) .ccp-cpt-gallery-shortcode-item:nth-child(11n) {
    grid-column: span 2;
}

@media (max-width: 1024px) {
    .ccp-cpt-gallery-shortcode {
        --ccp-gallery-row-height: 140px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ccp-cpt-gallery-count-2,
    .ccp-cpt-gallery-count-3,
    .ccp-cpt-gallery-count-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 180px;
    }

    .ccp-cpt-gallery-count-3 .ccp-cpt-gallery-shortcode-item:first-child,
    .ccp-cpt-gallery-count-4 .ccp-cpt-gallery-shortcode-item:first-child {
        grid-column: span 2;
        grid-row: span 2;
    }
}

@media (max-width: 767px) {
    .ccp-cpt-gallery-shortcode {
        --ccp-gallery-gap: 10px;
        --ccp-gallery-radius: 14px;
        --ccp-gallery-row-height: 120px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ccp-cpt-gallery-shortcode-single {
        grid-template-columns: 1fr;
        grid-auto-rows: minmax(240px, 420px);
    }

    .ccp-cpt-gallery-multiple .ccp-cpt-gallery-shortcode-item:first-child,
    .ccp-cpt-gallery-count-3 .ccp-cpt-gallery-shortcode-item:first-child,
    .ccp-cpt-gallery-count-4 .ccp-cpt-gallery-shortcode-item:first-child {
        grid-column: span 2;
        grid-row: span 2;
    }

    .ccp-cpt-gallery-count-2 {
        grid-template-columns: 1fr;
        grid-auto-rows: 240px;
    }

    .ccp-cpt-gallery-count-2 .ccp-cpt-gallery-shortcode-item:first-child {
        grid-column: auto;
        grid-row: auto;
    }

    .ccp-cpt-gallery-count-3 .ccp-cpt-gallery-shortcode-item:nth-child(2),
    .ccp-cpt-gallery-count-3 .ccp-cpt-gallery-shortcode-item:nth-child(3) {
        grid-column: span 1;
        grid-row: span 1;
    }

    .ccp-cpt-gallery-shortcode:not(.ccp-cpt-gallery-count-1):not(.ccp-cpt-gallery-count-2):not(.ccp-cpt-gallery-count-3):not(.ccp-cpt-gallery-count-4) .ccp-cpt-gallery-shortcode-item:nth-child(11n) {
        grid-column: span 1;
    }
}
/*# sourceURL=ccp-cpt-gallery-frontend-inline-css */

