/* =========================================================
   nk-catalog.css — слой группы «catalog»
   Каталог: /catalog/ (разделы, списки, фильтр, карточка в списке), /brands/ — группа catalog
   Подключается в header.php после css/nk-base.css (прямой <link> с ?v=filemtime).
   Правила писать ТОЛЬКО здесь и только под скоупом body.nk-inner + своя обёртка страницы
   (например body.nk-inner .nk-catalog-...). Токены (--nk-*) и компоненты (.nk-btn, .nk-field,
   .nk-check, .nk-card, .nk-tile, .nk-panel ...) — из nk-base.css, не переопределять глобально.

   Содержание:
    1. Плитки разделов .nk-ctile (корень /catalog/ — news.list/catalog-banners-main;
       подразделы — catalog/catalog/bitrix/catalog.section.list/.default)
    2. [устарело с 29.09.2026] картинки-баннеры .nk-cbanner и .s-podbor — больше не выводятся (см. п. 10)
    3. Листинг .nk-listing: колонки, тулбар (сортировка select2, «Подборки», чипы фильтра)
    4. Смарт-фильтр (catalog.smart.filter/filter — только стили) + #modef
    5. Карточка товара .product-item (catalog.item/.default) и сетка .products-list —
       общая для каталога, /favorites/, /search/, брендов, «похожих товаров», catalog.top
    6. «Показать ещё» .custom-show-more-btn, пагинатор под списком
    7. Плавающая панель .catalog-section-fix
    8. Мобильный фильтр: #toggleBtn + шторка #sideWindow (порог 768 — как в script.js)
    9. Адаптив 1260 / 1024 / 900 / 640
   10. Баннер раздела (HTML) .nk-cban — news.list/catalog-banners и catalog-banners-main (свой адаптив внутри блока)
   ========================================================= */

/* ---------- 1. Плитки разделов (как «Наши направления» главной) ---------- */
body.nk-inner .nk-catroot { margin-top: 0; }
body.nk-inner .nk-subsecs { margin-top: 40px; }
.nk-ctiles {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 32px 30px;
}
/* 15.10.2026 (просьба владельца, «Мульти сплит-системы»): если в последнем ряду сетки из 4 плиток остаются две — они по центру
   (первая из двух начинает со 2-й колонки); на ≤1000 px сетка из 2 колонок — правило снимается ниже */
.nk-ctiles:not(.nk-ctiles--root):not(.nk-ctiles--n2):not(.nk-ctiles--n3) > .nk-ctile:nth-child(4n+1):nth-last-child(2) { grid-column: 2; }
body.nk-inner .nk-ctile {
	--nk-cut: var(--nk-bg);      /* цвет «выреза» под кнопкой = фон, на котором лежит плитка */
	--nk-notch: 67px;
	--nk-notch-r: 24px;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	min-height: 400px;
	padding: 11px 10px calc(var(--nk-notch) + 12px);
	border-radius: 36px;
	background: linear-gradient(180deg, #9ee9ff 0%, #4fbcf9 42%, #53bff9 100%);
	color: #fff;
	text-decoration: none;
	isolation: isolate;
}
body.nk-inner .nk-ctile--dark,
body.nk-inner .nk-ctile--promo { background: var(--nk-card-dark); }
/* корень /catalog/: три плитки (30.09.2026 убрали «весь каталог») — ряд из трёх, без пустой четвёртой колонки */
@media (min-width: 641px) {
	.nk-ctiles.nk-ctiles--root { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* на телефоне 2 + 1: третья плитка (заявка) — во всю ширину, фото слева, текст справа */
@media (max-width: 640px) {
	body.nk-inner .nk-ctiles--root .nk-ctile:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		flex-direction: row;
		align-items: flex-start;
		gap: 12px;
		padding-bottom: 7px;
	}
	.nk-ctiles--root .nk-ctile:last-child:nth-child(odd) .nk-ctile__img { flex: 0 0 48%; width: 48%; }
	body.nk-inner .nk-ctiles--root .nk-ctile:last-child:nth-child(odd) .nk-ctile__title { flex: 1 1 auto; width: auto; margin-top: 8px; padding-right: 6px; }
}
.nk-ctile__img {
	display: block;
	width: 100%;
	aspect-ratio: 268 / 225;
	border-radius: 26px;
	overflow: hidden;
	background: rgba(255, 255, 255, .18);
}
.nk-ctile__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.nk-ctile--promo .nk-ctile__img img { object-position: 50% 18%; }
/* фото разделов — вырезанные товары на прозрачном фоне: белая «лунка», contain */
.nk-ctile__img--product { background: #fff; }
.nk-ctile__img--product img { object-fit: contain; padding: 14px 18px; }
body.nk-inner .nk-ctile__title {
	display: block;
	width: 100%;
	margin-top: 17px;
	padding: 0 4px;
	overflow-wrap: anywhere;
	font-size: 22px;
	line-height: 26.7px;
	font-weight: 300;
	color: #fff;
}
body.nk-inner .nk-ctile__title b { font-weight: 700; color: #fff; }
body.nk-inner .nk-subsecs .nk-ctile__title { font-weight: 700; }
body.nk-inner .nk-ctile__title--sm { font-size: 19px; line-height: 23px; font-weight: 400; }
/* Вырез под кнопку-стрелку (замена data-notch/landing.js главной): квадрат цвета фона + два «обратных» скругления */
.nk-ctile__notch {
	position: absolute;
	right: 0;
	bottom: 0;
	width: var(--nk-notch);
	height: var(--nk-notch);
	border-top-left-radius: var(--nk-notch-r);
	background: var(--nk-cut);
}
.nk-ctile__notch::before,
.nk-ctile__notch::after {
	content: '';
	position: absolute;
	width: var(--nk-notch-r);
	height: var(--nk-notch-r);
	background: radial-gradient(circle at 0 0, transparent calc(var(--nk-notch-r) - .5px), var(--nk-cut) var(--nk-notch-r));
}
.nk-ctile__notch::before { right: 0; bottom: 100%; }
.nk-ctile__notch::after { right: 100%; bottom: 0; }
.nk-ctile__btn {
	position: absolute;
	right: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(var(--nk-notch) - 6px);
	height: calc(var(--nk-notch) - 6px);
	border-radius: 18px;
	background: var(--nk-grad-sq);
	color: #fff;
	font-size: 26px;
	transition: transform .25s;
}
.nk-ctile--dark .nk-ctile__btn,
.nk-ctile--promo .nk-ctile__btn { background: linear-gradient(135deg, #3653a0, #3f67bd); }
.nk-ctile:hover .nk-ctile__btn { transform: scale(1.08) rotate(45deg); }
.nk-ctile:hover .nk-ctile__img img { transform: translateY(-3px); }
.nk-ctile:hover .nk-ctile__img--product img { transform: scale(1.04); }
.nk-ctile:focus-visible { outline: 3px solid rgba(75, 186, 249, .6); outline-offset: 3px; }

/* два подраздела (/catalog/konditsionery/): широкие горизонтальные плитки на всю строку 1200 */
@media (min-width: 901px) {
	.nk-ctiles.nk-ctiles--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.nk-inner .nk-ctiles--n2 .nk-ctile {
		flex-direction: row;
		align-items: center;
		gap: 26px;
		min-height: 0;
		padding: 11px 11px 11px;
	}
	.nk-ctiles--n2 .nk-ctile__img { flex: 0 0 46%; width: 46%; }
	body.nk-inner .nk-ctiles--n2 .nk-ctile__title {
		flex: 1 1 auto;
		align-self: flex-start;
		width: auto;
		min-width: 0;
		margin-top: 22px;
		padding: 0 6px 0 0;
		overflow-wrap: normal;
		hyphens: auto;
		font-size: 26px;
		line-height: 1.15;
	}
}
@media (min-width: 901px) and (max-width: 1100px) {
	body.nk-inner .nk-ctiles--n2 .nk-ctile__title { font-size: 21px; }
}

/* ---------- 2. Баннер раздела и «подбор» ---------- */
body.nk-inner .nk-cbanner { margin-top: 0; }
body.nk-inner .nk-cbanner .catalog-images {
	position: relative;
	border-radius: 36px;
	overflow: hidden;
	background: #fff;
	box-shadow: var(--nk-shadow-tile);
}
.nk-cbanner__slide { position: relative; height: auto; }
.nk-cbanner__pic { aspect-ratio: 2353 / 717; }
.nk-cbanner__pic img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: left center; }
body.nk-inner .nk-cbanner__card {
	position: absolute;
	top: 50%;
	right: 32px;
	width: 430px;
	padding: 30px 32px 32px;
	border-radius: 30px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(20, 38, 100, .18);
	color: var(--nk-text);
	transform: translateY(-50%);
}
body.nk-inner .nk-cbanner__title { margin: 0; font-size: 26px; line-height: 1.15; font-weight: 700; color: var(--nk-navy); }
body.nk-inner .nk-cbanner__text { margin: 10px 0 0; font-size: 18px; line-height: 1.35; font-weight: 300; color: var(--nk-text); }
body.nk-inner .nk-cbanner__text--lead { margin-top: 0; font-size: 22px; line-height: 1.3; font-weight: 400; }
/* акцент «бесплатно» из PREVIEW_TEXT приходит с инлайн-цветом #fda54c — в палитре главной акцент синий */
body.nk-inner .nk-cbanner__text span[style] { color: var(--nk-navy) !important; font-weight: 700; }
body.nk-inner .nk-cbanner__btn { margin-top: 22px; }
body.nk-inner .nk-cbanner .swiper-button-prev,
body.nk-inner .nk-cbanner .swiper-button-next {
	width: 48px;
	height: 48px;
	margin-top: -24px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	color: var(--nk-navy);
	box-shadow: var(--nk-shadow-tile);
}
body.nk-inner .nk-cbanner .swiper-button-prev::after,
body.nk-inner .nk-cbanner .swiper-button-next::after { font-size: 18px; font-weight: 700; }

/* .s-podbor (section.php, картинка — инлайн background) */
body.nk-inner .container.s-podbor {
	position: relative;
	width: min(1200px, calc(100% - 40px));
	max-width: none;
	height: auto;
	aspect-ratio: 2353 / 718;
	margin: 0 auto;
	padding: 0;
	border-radius: 36px;
	overflow: hidden;
	background-position: left center !important;
	box-shadow: var(--nk-shadow-tile);
}
body.nk-inner .s-podbor .s-podbor-right { display: none; }
body.nk-inner .s-podbor .s-podbor-left {
	position: absolute;
	left: auto;
	right: 40px;
	top: auto;
	bottom: 36px;
	width: auto;
	height: auto;
	max-width: calc(100% - 80px);
	margin: 0;
	padding: 0;
	background: none;
	transform: none;
	color: #fff;
}
body.nk-inner .s-podbor .s-podbor-left .actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
body.nk-inner .s-podbor .s-podbor-left .actions a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: 60px;
	margin: 0;
	padding: 0 34px;
	border-radius: 999px;
	background: var(--nk-grad) !important;
	color: #fff;
	font-size: 18px;
	line-height: 1.1;
	font-weight: 700;
	white-space: normal;
	text-align: center;
	box-shadow: 0 8px 22px rgba(20, 38, 100, .25);
	transition: filter .2s, box-shadow .2s, transform .2s;
}
body.nk-inner .s-podbor .s-podbor-left .actions a:hover { color: #fff; filter: brightness(1.05); box-shadow: 0 10px 26px rgba(75, 186, 249, .45); }

/* ---------- 3. Листинг ---------- */
body.nk-inner .catalog-inner.nk-listing {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 30px;
	width: min(1200px, calc(100% - 40px));
	max-width: none;
	margin: 40px auto 0;
	padding: 0;
}
body.nk-inner .catalog-inner.nk-listing--filter { grid-template-columns: 280px minmax(0, 1fr); }
body.nk-inner main.nk-main > .catalog-inner.nk-listing:first-child { margin-top: 0; }
body.nk-inner .nk-listing .catalog-inner-left { width: auto; min-width: 0; max-width: none; margin: 0; padding: 0; }
body.nk-inner .nk-listing .catalog-inner-right {
	position: static;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-content: flex-start;
	gap: 16px;
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 0;
}
body.nk-inner .nk-listing .catalog-inner-right > * { flex: 0 0 100%; min-width: 0; margin-top: 0; }

/* Сортировка: select2 капсулой */
body.nk-inner .nk-listing .catalog-inner-right > .catalog-panel-sort {
	position: relative;
	top: auto;
	right: auto;
	flex: 0 0 auto;
	align-self: flex-start;
	margin-left: auto;
	z-index: 3;
}
/* width:auto — только самой капсуле (.select2); контейнер выпадашки select2 ставит отдельно */
body.nk-inner .catalog-panel-sort > .select2.select2-container { width: auto !important; }
body.nk-inner .catalog-panel-sort .select2-container .select2-selection--single {
	position: relative;
	display: flex;
	align-items: center;
	height: 48px;
	padding: 0 44px 0 18px;
	border: 0;
	border-radius: 999px;
	background: #fff;
	box-shadow: var(--nk-shadow-tile);
	cursor: pointer;
	transition: box-shadow .2s;
}
body.nk-inner .catalog-panel-sort .select2-container .select2-selection--single:hover,
body.nk-inner .catalog-panel-sort .select2-container--open .select2-selection--single { box-shadow: var(--nk-shadow-tile-h); }
body.nk-inner .catalog-panel-sort .select2-selection__rendered {
	display: flex;
	align-items: center;
	padding: 0;
	color: var(--nk-text);
	font-size: 15px;
	line-height: 1;
}
body.nk-inner .catalog-panel-sort .select2-selection__rendered span { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--nk-text); }
body.nk-inner .catalog-panel-sort .select2-selection__rendered img,
body.nk-inner .catalog-panel-sort .select2-results__option img { height: 16px !important; margin: 0 !important; opacity: .7; }
body.nk-inner .catalog-panel-sort .select2-selection__arrow {
	position: absolute;
	top: 0 !important;
	bottom: 0;
	right: 16px;
	width: 18px;
	height: auto !important;
	margin: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%234bbaf9' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat;
	transform: none; /* template_styles.css:1712 — translateY(-50%) */
	transition: transform .2s;
}
body.nk-inner .catalog-panel-sort .select2-selection__arrow b { display: none; }
body.nk-inner .catalog-panel-sort .select2-container--open .select2-selection__arrow { transform: scaleY(-1); }
/* выпадашка (dropdownParent = .catalog-panel-sort, select2 ставит инлайн left/width):
   контейнер = ширина капсулы, сам список выровнен по её правому краю и может быть шире влево */
body.nk-inner .catalog-panel-sort > .select2-container--open:not(.select2) { left: 0 !important; right: 0; width: 100% !important; }
body.nk-inner .catalog-panel-sort .select2-container--open .select2-dropdown { left: auto; right: 0; }
body.nk-inner .catalog-panel-sort .select2-dropdown {
	width: auto !important;
	min-width: 100%;
	max-width: calc(100vw - 32px);
	white-space: nowrap;
	margin-top: 6px;
	padding: 8px;
	border: 0;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(20, 38, 100, .16);
	overflow: hidden;
}
body.nk-inner .catalog-panel-sort .select2-container--open .select2-dropdown--below { border-radius: 18px; }
body.nk-inner .catalog-panel-sort .select2-dropdown--above { margin-top: 0; margin-bottom: 6px; }
body.nk-inner .catalog-panel-sort .select2-results__option {
	display: flex;
	align-items: center;
	padding: 11px 14px;
	border-radius: 12px;
	background: none;
	color: var(--nk-text);
	font-size: 15px;
}
body.nk-inner .catalog-panel-sort .select2-results__option span { display: flex; align-items: center; gap: 8px; font-size: 15px; }
body.nk-inner .catalog-panel-sort .select2-results__option--highlighted,
body.nk-inner .catalog-panel-sort .select2-results__option[aria-selected=true] { background: var(--nk-bg); color: var(--nk-navy); }

/* «Подборки» — ряд пилюль */
body.nk-inner .nk-listing .catalog-inner-right > .catalog-section-tags {
	order: -1;
	flex: 1 1 320px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-self: flex-start; /* раскрытые «Показать все» растут вниз, капсула сортировки остаётся в первой строке */
	min-height: 48px;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}
/* список пилюль «растворён» в ряду — «Подборки:» стоит в одной строке с пилюлями, а не отдельной строкой */
body.nk-inner .nk-listing .catalog-section-tags .catalog-section-tags-list { display: contents; }
body.nk-inner .catalog-section-tags .catalog-section-tags-title { margin: 0 6px 0 0; font-size: 15px; line-height: 1.2; font-weight: 400; color: var(--nk-grey); }
/* UI-08: активная подборка (старый слой: .catalog-section-tags-item.active { order: -1 }) после display:contents оказывалась
   перед подписью «Подборки:» — подпись всегда первая, активная подборка сразу за ней */
body.nk-inner .nk-listing .catalog-section-tags .catalog-section-tags-title { order: -2; }
body.nk-inner .catalog-section-tags .catalog-section-tags-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
body.nk-inner .catalog-section-tags .catalog-section-tags-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 40px;
	margin: 0;
	padding: 0 16px;
	border: 1.5px solid #d6e7f7;
	border-radius: 999px;
	background: #fff;
	transition: border-color .2s, background .2s;
}
body.nk-inner .catalog-section-tags .catalog-section-tags-item.hidden { display: none; }
body.nk-inner .catalog-section-tags .catalog-section-tags-item a { padding: 0; border: 0; background: none; color: var(--nk-navy); font-size: 15px; line-height: 1; white-space: nowrap; }
body.nk-inner .catalog-section-tags .catalog-section-tags-item:hover { border-color: var(--nk-blue); }
body.nk-inner .catalog-section-tags .catalog-section-tags-item.active { border-color: transparent; background: var(--nk-grad-sq); }
body.nk-inner .catalog-section-tags .catalog-section-tags-item.active a { color: #fff; font-weight: 700; }
body.nk-inner .catalog-section-tags .catalog-section-tags-item.active a + a { font-size: 20px; font-weight: 400; opacity: .9; }
body.nk-inner .catalog-section-tags .catalog-section-tags-item.show-all { border-color: transparent; background: none; padding: 0 0 0 4px; cursor: pointer; color: var(--nk-blue); font-size: 15px; }
body.nk-inner .catalog-section-tags .catalog-section-tags-item.show-all a { color: var(--nk-blue); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(75, 186, 249, .4); }

/* Чипы активных фильтров (рисует inline-скрипт section.php) */
body.nk-inner .wrapper-smart-filter-template-button { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
body.nk-inner .wrapper-smart-filter-template-button.none-block { display: none; }
body.nk-inner .wrapper-smart-filter-template-button .smart-filter-template-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 38px;
	margin: 0;
	padding: 0 6px 0 16px;
	border: 0;
	border-radius: 999px;
	background: #e3f1fc;
	color: var(--nk-navy);
	font: 400 14px/1 'Geologica', Arial, sans-serif;
	cursor: default;
}
body.nk-inner .wrapper-smart-filter-template-button .template-clear-filter {
	position: relative;
	flex: none;
	display: block;
	width: 26px;
	height: 26px;
	margin: 0;
	border-radius: 50%;
	background: #fff;
	background-image: none;
	cursor: pointer;
	transition: background .2s;
}
body.nk-inner .wrapper-smart-filter-template-button .template-clear-filter::before,
body.nk-inner .wrapper-smart-filter-template-button .template-clear-filter::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	width: 11px;
	height: 1.8px;
	margin: -.9px 0 0 -5.5px;
	border-radius: 2px;
	background: var(--nk-navy);
	transform: rotate(45deg);
}
body.nk-inner .wrapper-smart-filter-template-button .template-clear-filter::after { transform: rotate(-45deg); }
body.nk-inner .wrapper-smart-filter-template-button .template-clear-filter:hover { background: var(--nk-blue); }
body.nk-inner .wrapper-smart-filter-template-button .template-clear-filter:hover::before,
body.nk-inner .wrapper-smart-filter-template-button .template-clear-filter:hover::after { background: #fff; }

/* ---------- 4. Смарт-фильтр ---------- */
/* десктоп: белая панель. position:static здесь — только значение по умолчанию (и для низкого окна):
   от 1025px панель липкая — см. блок 4a ниже. Всплывашку #modef скрипт шаблона фильтра переносит в body
   (JS фильтра moveResultToLastChecked ставит ей position:absolute в координатах документа) и переставляет при прокрутке. */
body.nk-inner .nk-listing .catalog-inner-left > .bx-filter {
	position: static;
	margin: 0;
	padding: 22px 18px 18px 22px;
	border-radius: 30px;
	background: #fff;
	box-shadow: var(--nk-shadow-tile);
}
body.nk-inner .nk-listing .bx-filter,
body.nk-inner .nk-listing .bx-filter .bx-filter-section { width: auto; margin: 0; padding: 0; border: 0; background: none; color: var(--nk-text); font-family: 'Geologica', Arial, sans-serif; }
body.nk-inner .nk-listing .catalog-inner-left > .bx-filter { padding: 22px 18px 18px 22px; background: #fff; }
body.nk-inner .nk-listing .bx-filter .bx-filter-title-wrapper { margin: 0 0 6px !important; padding-right: 4px; }
body.nk-inner .nk-listing .bx-filter .bx-filter-title {
	margin: 0;
	padding: 0;
	font-size: 22px;
	line-height: 1.2;
	font-weight: 700;
	color: var(--nk-navy);
	text-transform: none;
	letter-spacing: 0;
	background: none;
}
body.nk-inner .nk-listing .bx-filter .bx-filter-title::before { content: none; display: none; }
body.nk-inner .nk-listing .bx-filter .reset-all-filters {
	height: auto;
	padding: 4px 0 !important;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--nk-grey);
	font-size: 13px !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: rgba(0, 0, 0, .2);
	box-shadow: none;
	cursor: pointer;
}
body.nk-inner .nk-listing .bx-filter .reset-all-filters:hover { color: var(--nk-navy); background: none; }
/* внутренний скролл (как в исходном adjustScrollFilterCatalog): список параметров не выше окна */
body.nk-inner .nk-listing .catalog-inner-left > .bx-filter #scrollFilterCatalog {
	max-height: max(420px, calc(100vh - 200px)) !important;
	margin-right: -8px;
	padding-right: 10px !important;
	scrollbar-width: thin;
	scrollbar-color: #cfe3f3 transparent;
}
body.nk-inner .nk-listing .bx-filter #scrollFilterCatalog::-webkit-scrollbar { width: 6px; }
body.nk-inner .nk-listing .bx-filter #scrollFilterCatalog::-webkit-scrollbar-track { background: transparent; }
body.nk-inner .nk-listing .bx-filter #scrollFilterCatalog::-webkit-scrollbar-thumb { border-radius: 3px; background: #cfe3f3; }
/* вложенные списки (площадь, режимы, шум): полоса прокрутки в палитре, высота = 6,5 строк — половинка строки читается как «листай» */
body.nk-inner .bx-filter .brand-checkboxes-scroll {
	max-width: none;
	max-height: 195px;
	padding-right: 6px;
	scrollbar-width: thin;
	scrollbar-color: #cfe3f3 transparent;
	overscroll-behavior: contain;
}
body.nk-inner .bx-filter .brand-checkboxes-scroll::-webkit-scrollbar { width: 6px; background: transparent; }
body.nk-inner .bx-filter .brand-checkboxes-scroll::-webkit-scrollbar-track { background: transparent; }
body.nk-inner .bx-filter .brand-checkboxes-scroll::-webkit-scrollbar-thumb,
body.nk-inner .bx-filter .brand-checkboxes-scroll::-webkit-scrollbar-thumb:hover { border-radius: 3px; background: #cfe3f3; }

body.nk-inner .bx-filter .bx-filter-parameters-box {
	position: relative;
	margin: 0;
	padding: 14px 0;
	border: 0;
	border-top: 1px solid #e6ecf3;
	background: none;
}
body.nk-inner .bx-filter .bx-filter-parameters-box:first-child { border-top: 0; }
body.nk-inner .bx-filter .bx-filter-parameters-box-title {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	cursor: pointer;
	background: none;
}
body.nk-inner .bx-filter .bx-filter-parameters-box-title > span,
body.nk-inner .bx-filter .bx-filter-parameters-box-hint.hint-custom {
	display: flex;
	align-items: center;
	gap: 6px;
	width: 100%;
	margin: 0;
	padding: 0;
	background: none;
}
body.nk-inner .bx-filter .name-property-filter-custom {
	flex: 1 1 auto;
	font-size: 15px;
	line-height: 1.25;
	font-weight: 700;
	color: var(--nk-text);
	text-transform: none;
}
body.nk-inner .bx-filter .bx-filter-parameters-box-hint.hint-custom:hover .name-property-filter-custom { color: var(--nk-navy); }
body.nk-inner .bx-filter .bx-filter-parameters-box-hint.hint-custom:hover .name-property-filter-custom::before { content: none; }
/* UI-01: старый стиль наведения (filter/style.css) менял у заголовка отступы 5–8px, размер 14px и жирность 500 — блок
   «прыгал» на 10–15px, а на телефоне после тапа по заголовку наведение «залипало»: первый тап по значению попадал между
   строк (список уезжал на 14,5px) или в соседнее значение. Заголовок при наведении/фокусе — тех же размеров, меняется цвет. */
body.nk-inner .bx-filter .bx-filter-parameters-box .bx-filter-parameters-box-hint.hint-custom:hover .name-property-filter-custom,
body.nk-inner .bx-filter .bx-filter-parameters-box .bx-filter-parameters-box-hint.hint-custom:focus-within .name-property-filter-custom {
	padding: 0;
	border-radius: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--nk-navy);
}
body.nk-inner .bx-filter .bx-filter-parameters-box .bx-filter-parameters-box-hint.hint-custom:hover,
body.nk-inner .bx-filter .bx-filter-parameters-box .bx-filter-parameters-box-hint.hint-custom:focus-within { background: none; box-shadow: none; }
body.nk-inner .bx-filter .show-hide-filter-content {
	flex: none;
	width: 20px;
	min-width: 20px;
	height: 20px;
	margin-left: auto;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%234bbaf9' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px no-repeat;
	transition: transform .2s;
}
body.nk-inner .bx-filter .bx-active .show-hide-filter-content { transform: rotate(180deg); background-position: center; }
body.nk-inner .bx-filter .bx-filter-parameters-box.bx-active .bx-filter-block { padding-top: 12px; }
body.nk-inner .bx-filter .bx-filter-parameters-box-container { margin: 0; }

/* поля «от — до» */
body.nk-inner .bx-filter .bx-filter-parameters-box-container-block { padding: 0 4px 0 0; }
body.nk-inner .bx-filter .bx-filter-parameters-box-container-block.bx-right { padding: 0 0 0 4px; }
body.nk-inner .bx-filter .bx-filter-parameters-box.bx-active .bx-filter-block i.bx-ft-sub,
body.nk-inner .bx-filter i.bx-ft-sub { display: block; margin: 0 0 5px; font-size: 13px; line-height: 1; font-style: normal; color: var(--nk-grey); }
body.nk-inner .bx-filter .bx-filter-input-container input {
	width: 100%;
	height: 42px;
	margin: 0;
	padding: 0 12px;
	border: 1.5px solid transparent;
	border-radius: 8px;
	background: var(--nk-bg);
	color: var(--nk-text);
	font: 300 16px/1.2 'Geologica', Arial, sans-serif;
	outline: none;
	box-shadow: none;
	transition: border-color .2s, background-color .2s;
}
body.nk-inner .bx-filter .bx-filter-input-container input:focus { border-color: var(--nk-blue); background: #fff; }

/* ползунок */
body.nk-inner .bx-filter .bx-ui-slider-track-container { padding: 22px 9px 26px; margin: 0; }
body.nk-inner .bx-filter .bx-ui-slider-track { height: 4px; border-radius: 2px; background: #d9e9f7; }
body.nk-inner .bx-filter .bx-ui-slider-pricebar-vd,
body.nk-inner .bx-filter .bx-ui-slider-pricebar-vn { height: 4px; border-radius: 2px; background: #d9e9f7; }
body.nk-inner .bx-filter .bx-ui-slider-pricebar-v { height: 4px; border-radius: 2px; background: var(--nk-grad); }
body.nk-inner .bx-filter .bx-ui-slider-range { height: 4px; }
body.nk-inner .bx-filter .bx-ui-slider-handle {
	top: -7px;
	width: 18px;
	height: 18px;
	margin-left: -9px;
	border: 2px solid var(--nk-blue);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 6px rgba(20, 38, 100, .2);
}
body.nk-inner .bx-filter .bx-ui-slider-handle.right { margin-left: 0; margin-right: -9px; }
body.nk-inner .bx-filter .bx-ui-slider-handle:hover,
body.nk-inner .bx-filter .bx-ui-slider-handle:active { background: #fff; border-color: var(--nk-navy); }
body.nk-inner .bx-filter .bx-ui-slider-part span { top: 10px; color: var(--nk-grey); font-size: 12px; }
body.nk-inner .bx-filter .bx-ui-slider-part { background: none; }

/* чекбоксы как .nk-check (без правки разметки: рисуем сам input) */
body.nk-inner .bx-filter .checkbox { margin: 0; padding: 4px 0; }
body.nk-inner .bx-filter .bx-filter-param-label { display: block; margin: 0; padding: 0; cursor: pointer; }
body.nk-inner .bx-filter .bx-filter-input-checkbox { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 0; } /* длинные значения (серии) в 2–4 строки: галочка у первой строки */
body.nk-inner .bx-filter .bx-filter-input-checkbox input[type=checkbox] {
	-webkit-appearance: none;
	appearance: none;
	position: static;
	flex: none;
	width: 22px;
	height: 22px;
	margin: 0;
	padding: 0;
	border: 1.5px solid #cfe3f3;
	border-radius: 6px;
	background: var(--nk-bg) center / 14px no-repeat;
	opacity: 1;
	cursor: pointer;
	transition: background-color .2s, border-color .2s;
}
body.nk-inner .bx-filter .bx-filter-input-checkbox input[type=checkbox]:hover { border-color: var(--nk-blue); }
body.nk-inner .bx-filter .bx-filter-input-checkbox input[type=checkbox]:checked {
	border-color: transparent;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat, linear-gradient(135deg, #4bbaf9, #7cd6fc);
}
body.nk-inner .bx-filter .bx-filter-input-checkbox input[type=checkbox]:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(75, 186, 249, .35); }
body.nk-inner .bx-filter .bx-filter-input-checkbox input[type=checkbox]:disabled { opacity: .45; cursor: default; }
body.nk-inner .bx-filter .bx-filter-input-checkbox .bx-filter-param-text { min-width: 0; padding-top: 1px; font-size: 15px; line-height: 1.3; font-weight: 300; color: var(--nk-text); overflow-wrap: anywhere; }
body.nk-inner .bx-filter .bx-filter-input-checkbox .bx-filter-param-text span { color: var(--nk-grey); }
body.nk-inner .bx-filter .bx-filter-param-label.disabled .bx-filter-param-text { color: #b9bcc4; }
/* пояснение под значением (Wi-Fi «Доп. Опция», filter/script.js) — отступ = галочка 22 + зазор 10 */
body.nk-inner .bx-filter .bx-filter-input-checkbox.nk-has-note { flex-wrap: wrap; row-gap: 2px; }
body.nk-inner .bx-filter .nk-flt-note { flex-basis: 100%; padding-left: 32px; font-size: 12px; line-height: 1.3; color: var(--nk-grey); }
/* поиск по брендам */
body.nk-inner .bx-filter .ui-input-search__input {
	width: 100%;
	height: 40px;
	margin: 0 0 8px;
	padding: 0 12px;
	border: 1.5px solid transparent;
	border-radius: 8px;
	background: var(--nk-bg);
	font: 300 15px/1.2 'Geologica', Arial, sans-serif;
	color: var(--nk-text);
	outline: none;
}
body.nk-inner .bx-filter .ui-input-search__input:focus { border-color: var(--nk-blue); background: #fff; }
body.nk-inner .bx-filter .ui-input-search__input::placeholder { color: #b9bcc4; }
body.nk-inner .bx-filter .show-more-btn-hidden-checkbox { color: var(--nk-blue); font-size: 14px; cursor: pointer; }

/* кнопки «Показать» / «Сбросить» */
body.nk-inner .bx-filter .bx-filter-button-box { margin: 0; padding: 14px 0 0; border-top: 1px solid #e6ecf3; background: #fff; }
body.nk-inner .bx-filter .bx-filter-button-box .bx-filter-block { padding: 0; }
body.nk-inner .bx-filter .bx-filter-button-box .bx-filter-parameters-box-container { display: flex; align-items: center; gap: 10px; }
body.nk-inner .bx-filter .bx-filter-button-box input.btn {
	height: 48px;
	margin: 0;
	border-radius: 999px;
	font: 700 16px/1 'Geologica', Arial, sans-serif;
	cursor: pointer;
	box-shadow: none;
	transition: filter .2s, box-shadow .2s, color .2s;
}
body.nk-inner .bx-filter .bx-filter-button-box #set_filter { flex: 1 1 auto; width: auto; padding: 0 22px; border: 0; background: var(--nk-grad); color: #fff; }
body.nk-inner .bx-filter .bx-filter-button-box #set_filter:hover { filter: brightness(1.05); box-shadow: 0 8px 22px rgba(75, 186, 249, .35); }
body.nk-inner .bx-filter .bx-filter-button-box #del_filter { flex: none; width: auto; padding: 0 6px; border: 0 !important; border-radius: 0; background: none; color: var(--nk-grey); font-weight: 400; font-size: 15px; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(0, 0, 0, .2); }
body.nk-inner .bx-filter .bx-filter-button-box #del_filter:hover { color: var(--nk-navy); }

/* всплывашка «Выбрано: N — Показать» (JS переносит #modef в body) */
body.nk-inner #modef.bx-filter-popup-result {
	min-width: 150px;
	padding: 12px 14px;
	border: 0;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(20, 38, 100, .2);
	color: var(--nk-text);
	font: 400 14px/1.3 'Geologica', Arial, sans-serif;
	white-space: nowrap;
}
body.nk-inner #modef.bx-filter-popup-result .arrow,
body.nk-inner #modef.bx-filter-popup-result::before,
body.nk-inner #modef.bx-filter-popup-result::after { display: none; content: none; }
body.nk-inner #modef.bx-filter-popup-result br { display: none; }
body.nk-inner #modef.bx-filter-popup-result #modef_num { font-weight: 700; color: var(--nk-navy); }
body.nk-inner #modef.bx-filter-popup-result a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 36px;
	margin: 0 0 0 12px;
	padding: 0 18px;
	border-radius: 999px;
	background: var(--nk-grad);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}
body.nk-inner #modef.bx-filter-popup-result a:hover { color: #fff; filter: brightness(1.05); }

/* ---- 4a. Колонка фильтра на десктопе (30.09.2026) ----
   • верх панели — на уровне первого ряда карточек: отступ = высота тулбара (сортировка/«Подборки»/чипы),
     его пишет в --nk-flt-offset скрипт шаблона фильтра (ResizeObserver); без JS — 64px (одна строка тулбара);
   • панель липкая под плавающей шапкой (шапка: top 10 + 64), список параметров прокручивается внутри,
     кнопки «Показать/Сбросить» всегда видны внизу панели. #modef живёт в body в координатах документа —
     при прокрутке его переставляет тот же скрипт шаблона (smartFilter.moveResultToLastChecked). */
@media (min-width: 1025px) {
	body.nk-inner .nk-listing--filter .catalog-inner-left { margin-top: var(--nk-flt-offset, 64px); }
	body.nk-inner .nk-listing .catalog-inner-left > .bx-filter { position: sticky; top: 90px; }
	body.nk-inner .nk-listing .catalog-inner-left > .bx-filter #scrollFilterCatalog { max-height: max(240px, calc(100vh - 262px)) !important; overflow-y: auto; }
}
/* низкое окно (ноутбук с панелью задач / масштаб 150%): липкость не нужна — панель прокручивается со страницей */
@media (min-width: 1025px) and (max-height: 620px) {
	body.nk-inner .nk-listing .catalog-inner-left > .bx-filter { position: static; }
}
/* после «Показать» страница прокручивается к #catalogListForFilter (script.js фильтра); отступ под шапку даёт html{scroll-padding-top:96px} из основы */
/* «Цвета внутренних блоков» в общем разделе: исходные «Белый ×2…×5» скрыты под общей галочкой «Белый» (скрипт шаблона фильтра);
   !important — поиск по значениям сбрасывает style.display у строк */
body.nk-inner .bx-filter .nk-grp-member { display: none !important; }
/* поиск по значениям длинного списка */
body.nk-inner .bx-filter .nk-flt-search { margin: 0 0 6px; }
body.nk-inner .bx-filter .nk-flt-search .ui-input-search__input {
	margin: 0;
	padding-left: 36px;
	background: var(--nk-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='6.5' fill='none' stroke='%239aa3b5' stroke-width='2'/%3E%3Cpath d='m16 16 4 4' stroke='%239aa3b5' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 12px center / 16px no-repeat;
}
body.nk-inner .bx-filter .nk-flt-search .ui-input-search__input:focus { background-color: #fff; }
body.nk-inner .bx-filter .nk-flt-search .ui-input-search__icon { display: none; }
/* пустая выдача фильтра */
body.nk-inner .nk-flt-empty {
	padding: 36px 32px;
	border-radius: 24px;
	background: #fff;
	box-shadow: var(--nk-shadow-tile);
	text-align: center;
}
body.nk-inner .nk-flt-empty__title { margin: 0; font-size: 22px; line-height: 1.25; font-weight: 700; color: var(--nk-navy); }
body.nk-inner .nk-flt-empty__text { max-width: 520px; margin: 10px auto 0; font-size: 16px; line-height: 1.45; font-weight: 300; color: var(--nk-grey); }
body.nk-inner .nk-flt-empty__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	margin-top: 20px;
	padding: 0 28px;
	border-radius: 999px;
	background: var(--nk-grad);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	transition: filter .2s, box-shadow .2s;
}
body.nk-inner .nk-flt-empty__btn:hover { color: #fff; filter: brightness(1.05); box-shadow: 0 8px 22px rgba(75, 186, 249, .35); }

/* ---------- 5. Карточка товара и сетка ---------- */
body.nk-inner .products-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
}
body.nk-inner .nk-cat-top .nk-h2 + .nk-cat-top__list { margin-top: 40px; }
body.nk-inner .nk-cat-top .products-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }

body.nk-inner .product-item.nk-pc {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	height: auto;
	margin: 0;
	padding: 10px;
	border: 0;
	border-radius: 24px;
	background: #fff;
	box-shadow: var(--nk-shadow-tile);
	color: var(--nk-text);
	transition: transform .2s, box-shadow .2s;
	container: nk-pc / inline-size; /* ширина карточки — для @container ниже (сердечко на узкой карточке) */
}
body.nk-inner .product-item.nk-pc:hover { transform: translateY(-3px); box-shadow: var(--nk-shadow-tile-h); }
body.nk-inner .product-item.nk-pc .product-item-image {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1; /* как 18.09: фото товара (почти все квадратные) во всю ширину карточки, а не 4:3 с полями */
	padding: 6px;
	border-radius: 18px;
	background: #fff;
	overflow: hidden;
}
body.nk-inner .product-item.nk-pc .product-item-image img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; transition: transform .4s; }
body.nk-inner .product-item.nk-pc:hover .product-item-image img { transform: scale(1.03); }
body.nk-inner .product-item.nk-pc .product-item-image .product-item-discount {
	position: absolute;
	top: 8px;
	left: 8px;
	width: auto;
	height: 28px;
	padding: 0 11px;
	border-radius: 999px;
	background: var(--nk-grad-sq);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
}
/* кнопка стоит в ряду .product-item-actions (catalog.item), на широкой карточке — в углу фото: от карточки
   16 = поле карточки 10 + поле фото 6 (узкая карточка — @container nk-pc после раздела 9) */
body.nk-inner .product-item.nk-pc .add2fav {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 3px 10px rgba(20, 38, 100, .12);
	cursor: pointer;
	transition: background .2s, transform .2s, box-shadow .2s;
}
body.nk-inner .product-item.nk-pc .add2fav:hover { transform: scale(1.06); box-shadow: 0 6px 14px rgba(20, 38, 100, .18); }
body.nk-inner .product-item.nk-pc .add2fav svg { width: 20px; height: auto; overflow: visible; }
body.nk-inner .product-item.nk-pc .add2fav svg path { fill: transparent; stroke: var(--nk-blue); stroke-width: 1.7; transition: fill .2s, stroke .2s; }
body.nk-inner .product-item.nk-pc .add2fav:hover svg path { fill: rgba(75, 186, 249, .18); stroke: var(--nk-blue); }
body.nk-inner .product-item.nk-pc .add2fav.active { background: var(--nk-grad-sq); }
body.nk-inner .product-item.nk-pc .add2fav.active svg path,
body.nk-inner .product-item.nk-pc .add2fav.active:hover svg path { fill: #fff; stroke: #fff; }

body.nk-inner .product-item.nk-pc .product-item-bottom {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	margin: 0;
	padding: 12px 8px 6px;
	border: 0;
	border-radius: 0;
	background: none;
}
body.nk-inner .product-item.nk-pc .product-item-name {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 10;
	font-size: 16px;
	line-height: 1.3;
	font-weight: 400;
	color: var(--nk-text);
	word-break: normal;
	overflow-wrap: anywhere;
	transition: color .2s;
}
/* Кегль названия один на все карточки (раньше длинные названия > 80 / > 120 символов получали меньший кегль —
   в одном ряду выходили разные размеры); полное название — ещё и в title ссылки. Названия комплектов мульти-сплитов (до ~160 символов) отличаются друг от друга хвостом «… (xN) + … / наружный блок»,
   поэтому обрезаться не должно ни одно: line-clamp — только предохранитель от аномально длинных. Перебор всех ~3300
   названий каталога в карточке (30.09.2026): на 1261+ до 6 строк в листинге (колонка ~245 px) и до 9 в «Похожих
   товарах» (~191 px), до 9 на 641–1260 (колонки 173–280 px), до 12 на телефоне 320 px (~119 px) — лимиты 10 / 10 / 14. */
@media (min-width: 641px) and (max-width: 1260px) {
	/* 3–4 узкие колонки планшета (~190–240 px) */
	body.nk-inner .product-item.nk-pc .product-item-name { font-size: 15px; -webkit-line-clamp: 10; }
}
body.nk-inner .product-item.nk-pc .product-item-name:hover { color: var(--nk-navy); text-decoration: none; }
body.nk-inner .product-item.nk-pc .product-item-props { display: grid; gap: 5px; margin: 10px 0 0; padding: 0; list-style: none; }
body.nk-inner .product-item.nk-pc .product-item-props li {
	position: relative;
	margin: 0;
	padding: 0 0 0 13px;
	list-style: none;
	font-size: 13.5px;
	line-height: 1.3;
	font-weight: 300;
	color: var(--nk-grey);
}
body.nk-inner .product-item.nk-pc .product-item-props li::marker { content: none; }
body.nk-inner .product-item.nk-pc .product-item-props li::before {
	content: '';
	position: absolute;
	left: 0;
	top: .5em;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--nk-blue);
}
body.nk-inner .product-item.nk-pc .product-item-props li b { font-weight: 400; color: var(--nk-text); }
body.nk-inner .product-item.nk-pc .product-item-info { margin: 8px 0 0; font-size: 14px; line-height: 1.35; color: var(--nk-grey); }
body.nk-inner .product-item.nk-pc .product-item-foot { margin-top: auto; padding-top: 16px; }
body.nk-inner .product-item.nk-pc .product-item-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: flex-start;
	gap: 2px 10px;
	margin: 0;
	padding: 0;
}
body.nk-inner .product-item.nk-pc .product-item-price-current { font-size: 25px; line-height: 1.15; font-weight: 700; color: var(--nk-navy); white-space: nowrap; }
body.nk-inner .product-item.nk-pc .product-item-price-current.is-request { font-size: 19px; font-weight: 500; white-space: normal; } /* «Цена по запросу» (lang ITEM_PRICE_NULL) — не дублирует кнопку «Под заказ» */
body.nk-inner .product-item.nk-pc .product-item-price-current.is-request::first-letter { text-transform: uppercase; }
body.nk-inner .product-item.nk-pc .product-item-price-old { order: 2; margin: 0; font-size: 14px; font-weight: 300; color: var(--nk-grey); text-decoration: line-through; white-space: nowrap; }
body.nk-inner .product-item.nk-pc .product-item-actions { display: flex; align-items: center; justify-content: stretch; gap: 8px; margin: 14px 0 0; }
body.nk-inner .product-item.nk-pc .product-item-actions .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	margin: 0;
	padding: 0 18px;
	border: 0;
	border-radius: 999px;
	font: 700 16px/1 'Geologica', Arial, sans-serif;
	text-decoration: none;
	cursor: pointer;
	transition: filter .2s, box-shadow .2s, background .2s, color .2s, transform .2s;
}
body.nk-inner .product-item.nk-pc .product-item-actions .buy { order: 1; flex: 1 1 auto; width: auto; background: var(--nk-grad); color: #fff; }
body.nk-inner .product-item.nk-pc .product-item-actions .buy:hover { background: var(--nk-grad); color: #fff; filter: brightness(1.05) saturate(1.05); box-shadow: 0 8px 22px rgba(75, 186, 249, .35); }
body.nk-inner .product-item.nk-pc .product-item-actions .buy:active { transform: translateY(1px); }
body.nk-inner .product-item.nk-pc .product-item-actions .detail {
	order: 2;
	flex: none;
	width: 48px;
	padding: 0;
	border-radius: 16px;
	background: #e8f3fc;
	color: var(--nk-blue);
	font-size: 21px;
}
body.nk-inner .product-item.nk-pc .product-item-actions .detail:hover { background: var(--nk-grad-sq); color: #fff; }
body.nk-inner .product-item.nk-pc .product-item-actions .detail .nk-i { transition: transform .25s; }
body.nk-inner .product-item.nk-pc .product-item-actions .detail:hover .nk-i { transform: rotate(45deg); }
body.nk-inner .product-item.nk-pc .product-item-actions__txt {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ---------- 6. «Показать ещё» и пагинатор ---------- */
body.nk-inner .custom-show-more-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	min-width: 260px;
	height: 56px;
	margin: 36px auto 0;
	padding: 0 36px;
	border: 0;
	border-radius: 999px;
	background: var(--nk-grad);
	color: #fff;
	font-size: 17px;
	font-weight: 700;
	text-align: center;
	cursor: pointer;
	user-select: none;
	transition: filter .2s, box-shadow .2s, transform .2s;
}
body.nk-inner .custom-show-more-btn:hover { background: var(--nk-grad); color: #fff; filter: brightness(1.05) saturate(1.05); box-shadow: 0 8px 22px rgba(75, 186, 249, .35); }
body.nk-inner .custom-show-more-btn:active { transform: translateY(1px); }
body.nk-inner .products-list-inner [data-dop-entity] { margin-top: 24px; }
body.nk-inner .products-list-inner [data-dop-entity] .modern-page-navigation { margin-top: 0; }

/* ---------- 7. Плавающая панель «Позвонить / Написать» ---------- */
body.nk-inner .catalog-section-fix {
	right: 16px;
	width: 64px;
	padding: 14px 0 12px;
	border: 0;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(20, 38, 100, .16);
	gap: 8px;
	z-index: 20;
}
/* подписи «Позвонить:/Написать:» не влезают в капсулу 64 — у ссылок есть title/aria-label; вторая подпись — разделитель */
body.nk-inner .catalog-section-fix p { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.nk-inner .catalog-section-fix p:nth-of-type(2) { position: static; width: 26px; height: 1px; margin: 2px 0; clip: auto; font-size: 0; background: #e6ecf3; }
body.nk-inner .catalog-section-fix a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	margin: 0;
	border-radius: 50%;
	background: var(--nk-bg);
	transition: background .2s, transform .2s;
}
body.nk-inner .catalog-section-fix a:hover { background: #e3f1fc; transform: scale(1.06); }
body.nk-inner .catalog-section-fix a svg { width: 26px; height: 26px; }
/* иконки в синей палитре: подложки (#B7EBF1 / #0077FF / зелёный WA) — синие, белые глифы остаются белыми */
body.nk-inner .catalog-section-fix a svg :is(path, circle):not([fill="white"]):not([fill="#FEFEFE"]):not([fill="#fff"]) { fill: var(--nk-blue); transition: fill .2s; }
body.nk-inner .catalog-section-fix a:hover svg :is(path, circle):not([fill="white"]):not([fill="#FEFEFE"]):not([fill="#fff"]) { fill: var(--nk-navy); }
/* панель помещается только в поле справа от сетки 1200 */
@media (max-width: 1379px) { body.nk-inner .catalog-section-fix { display: none !important; } }

/* ---------- 8. Мобильный фильтр (≤1024 — порог moveFilterOnMobile в js/script.js; с 30.09.2026 планшет тоже со шторкой) ---------- */
@media (max-width: 1024px) {
	body.nk-inner main .catalog-inner.nk-listing--filter { grid-template-columns: minmax(0, 1fr); gap: 16px; } /* сильнее правила ≤1024 ниже */
	/* кнопка «Фильтры» стоит в одной строке с сортировкой: левая колонка — только кнопка */
	body.nk-inner .nk-listing--filter .catalog-inner-left { height: 48px; }
	body.nk-inner .nk-listing--filter .catalog-inner-right { margin-top: -64px; }
	body.nk-inner .nk-listing--filter .catalog-inner-right > .catalog-panel-sort { margin-left: auto; }
	body.nk-inner .nk-listing .catalog-inner-right > .catalog-section-tags { order: 1; flex: 0 0 100%; }
	body.nk-inner .nk-listing .catalog-inner-right > .wrapper-smart-filter-template-button { order: 1; }
	body.nk-inner .nk-listing .catalog-inner-right > .products-list-inner,
	body.nk-inner .nk-listing .catalog-inner-right > div:not([class]) { order: 2; }

	body.nk-inner #toggleBtn.icon-btn {
		position: relative;
		z-index: 4; /* поверх пустой части строки сортировки (правая колонка сдвинута вверх) */
		display: inline-flex;
		align-items: center;
		gap: 8px;
		height: 48px;
		padding: 0 20px 0 16px;
		border: 0;
		border-radius: 999px;
		background: #fff;
		box-shadow: var(--nk-shadow-tile);
		color: var(--nk-navy);
		font: 700 15px/1 'Geologica', Arial, sans-serif;
		cursor: pointer;
	}
	body.nk-inner #toggleBtn.icon-btn::after { content: 'Фильтры'; }
	/* число выбранных условий (data-count ставит скрипт чипов в section.php) */
	body.nk-inner #toggleBtn.icon-btn[data-count]:not([data-count=""]):not([data-count="0"])::after { content: 'Фильтры · ' attr(data-count); }
	body.nk-inner #toggleBtn.icon-btn[data-count]:not([data-count=""]):not([data-count="0"]) { background: var(--nk-grad-sq); color: #fff; }
	body.nk-inner #toggleBtn.icon-btn[data-count]:not([data-count=""]):not([data-count="0"]) img { filter: brightness(0) invert(1); opacity: 1; }
	body.nk-inner #toggleBtn.icon-btn img { width: 18px; height: 18px; opacity: .75; }

	/* сортировка на мобиле: иконка + «Сортировка» (текст выбранного пункта старый слой прячет) */
	body.nk-inner .catalog-panel-sort .select2-selection__rendered span { font-size: 0; gap: 0; }
	body.nk-inner .catalog-panel-sort .select2-selection__rendered span img { display: inline-block; } /* template_styles.css прячет иконку ≥769 */
	body.nk-inner .catalog-panel-sort .select2-selection__arrow { display: none; }
	body.nk-inner .catalog-panel-sort .select2-container .select2-selection--single { padding: 0 20px 0 16px; }
	/* десктопная панель фильтра пуста (форма перенесена в шторку) */
	body.nk-inner .nk-listing .catalog-inner-left > .bx-filter { display: none; }
	body.nk-inner .catalog-panel-sort .select2-selection__rendered::after { content: 'Сортировка'; font-size: 15px; font-weight: 700; color: var(--nk-navy); margin-left: 8px; }
	/* в открытом состоянии подпись та же («Сортировка»), чтобы капсула не росла и не наезжала на «Фильтры» */

	/* шторка: JS пишет инлайн left:0 (открыть) / left:-300px (закрыть) — положение ведём transform'ом по этому атрибуту */
	body.nk-inner #sideWindow.side-window {
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0 !important;
		z-index: 1050;
		width: 100%; /* на весь экран: и телефон, и планшет */
		height: 100%;
		height: 100dvh;
		padding: 0;
		border-radius: 0;
		background: #fff;
		color: var(--nk-text);
		box-shadow: none;
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
		transform: translateX(-105%);
		/* закрытая шторка ещё и невидима (после выезда): Tab не заходит в фильтр за краем экрана */
		visibility: hidden;
		transition: transform .3s ease, box-shadow .3s ease, visibility 0s linear .3s;
	}
	body.nk-inner #sideWindow.side-window[style*="left: 0"] {
		transform: none;
		visibility: visible;
		transition: transform .3s ease, box-shadow .3s ease;
		box-shadow: 0 0 0 100vmax rgba(28, 38, 66, .55); /* затемнение страницы */
	}
	body.nk-inner #sideWindow .bx-filter { margin: 0; padding: 0; background: none; }
	body.nk-inner #sideWindow .bx-filter-section.mobile { position: relative; display: block; padding: 0 20px; } /* template_styles.css показывает .mobile только ≤768 */
	body.nk-inner #sideWindow .close-btn {
		position: sticky;
		top: 14px;
		right: 0;
		z-index: 111; /* выше ручек range-слайдеров (.bx-ui-slider-handle z=100) */
		float: right;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin: 14px 0 -58px;
		padding: 0; /* крестик — <button>: без рамки и отступов по умолчанию */
		border: 0;
		border-radius: 50%;
		background: var(--nk-bg);
		font-family: inherit;
		color: var(--nk-grey);
		font-size: 28px;
		line-height: 1;
		cursor: pointer;
		transition: background .2s, color .2s;
	}
	body.nk-inner #sideWindow .close-btn:hover { background: var(--nk-blue); color: #fff; }
	body.nk-inner #sideWindow .close-btn:focus-visible { background: var(--nk-blue); color: #fff; box-shadow: 0 0 0 3px rgba(75, 186, 249, .35); }
	body.nk-inner #sideWindow .bx-filter-section.mobile > .bx-filter-title {
		position: sticky;
		top: 0;
		z-index: 110; /* выше ручек range-слайдеров (z=100) — внутри контекста шторки */
		display: flex; /* старый слой даёт inline-flex — фон был только под словом */
		align-items: center;
		width: auto;
		margin: 0 -20px;
		padding: 22px 20px 14px;
		box-shadow: 0 1px 0 #e6ecf3;
		background: #fff;
		font-size: 24px;
		line-height: 1.2;
		font-weight: 700;
		color: var(--nk-navy);
		text-transform: none;
	}
	body.nk-inner #sideWindow .bx-filter-section.mobile > .bx-filter-title::before { content: none; display: none; }
	body.nk-inner #sideWindow #scrollFilterCatalog { max-height: none !important; overflow: visible !important; padding: 0 !important; }
	/* UI-02: плашка «Выбрано: N — Показать» висит над закреплёнными кнопками (bottom 92px, высота ~60px) — запас прокрутки под
	   последним блоком, чтобы его последние значения можно было поднять над плашкой, отметить и снять */
	body.nk-inner #sideWindow #scrollFilterCatalog { padding-bottom: 76px !important; }
	body.nk-inner #sideWindow .bx-filter-parameters-box:first-child { border-top: 1px solid #e6ecf3; }
	/* кнопки закреплены снизу шторки */
	body.nk-inner #sideWindow .bx-filter-button-box {
		position: sticky;
		bottom: 0;
		z-index: 110; /* ручки/трек слайдеров (z=100) не должны лежать на «Показать»/«Сбросить» */
		margin: 0 -20px;
		padding: 12px 20px 18px;
		box-shadow: 0 -8px 20px rgba(20, 38, 100, .08);
	}
	body.nk-inner #sideWindow .bx-filter-button-box #set_filter { height: 52px; }
	/* «Выбрано: N — Показать» над закреплёнными кнопками шторки (JS ставит инлайн top/left у кнопки фильтра) */
	body.nk-inner.scroll-hidden #modef.bx-filter-popup-result {
		position: fixed !important;
		top: auto !important;
		bottom: 92px !important;
		left: 20px !important;
		right: auto !important;
		z-index: 1060 !important;
	}
}
/* планшет: шторка на весь экран, но колонка параметров не шире 640 — по центру (фон шапки и кнопок — во всю ширину) */
@media (min-width: 641px) and (max-width: 1024px) {
	body.nk-inner #sideWindow .bx-filter-section.mobile { --nk-sw-pad: max(20px, calc((100vw - 640px) / 2)); padding: 0 var(--nk-sw-pad); }
	body.nk-inner #sideWindow .bx-filter-section.mobile > .bx-filter-title { margin: 0 calc(-1 * var(--nk-sw-pad)); padding-left: var(--nk-sw-pad); padding-right: var(--nk-sw-pad); }
	body.nk-inner #sideWindow .bx-filter-button-box { margin: 0 calc(-1 * var(--nk-sw-pad)); padding-left: var(--nk-sw-pad); padding-right: var(--nk-sw-pad); }
	body.nk-inner #sideWindow .close-btn { margin-right: calc(20px - var(--nk-sw-pad)); }
}

/* ---------- 9. Адаптив ---------- */
@media (max-width: 1260px) {
	.nk-ctiles { gap: 24px; } /* 4 колонки фиксированно (auto-fill давал 3+1) */
	body.nk-inner .nk-ctile__title { font-size: 19px; line-height: 23px; }
	body.nk-inner .nk-ctile__title--sm { font-size: 17px; line-height: 21px; }
	body.nk-inner .nk-cbanner__card { width: 380px; padding: 24px 26px 26px; }
	body.nk-inner .nk-cbanner__title { font-size: 22px; }
	body.nk-inner .nk-cbanner__text { font-size: 16px; }
	body.nk-inner .nk-cbanner__text--lead { font-size: 19px; }
	body.nk-inner .products-list { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 20px; }
}
@media (max-width: 1024px) {
	body.nk-inner .catalog-inner.nk-listing--filter { grid-template-columns: 240px minmax(0, 1fr); gap: 24px; }
	/* баннер раздела: картинка сверху, карточка текста под ней */
	body.nk-inner .nk-cbanner__card {
		position: static;
		width: auto;
		padding: 22px 24px 24px;
		border-radius: 0;
		box-shadow: none;
		transform: none;
	}
	body.nk-inner .nk-cbanner__pic { aspect-ratio: auto; height: 220px; }
	body.nk-inner .container.s-podbor .s-podbor-left { right: 24px; bottom: 20px; max-width: calc(100% - 48px); }
	body.nk-inner .s-podbor .s-podbor-left .actions a { height: 52px; padding: 0 26px; font-size: 16px; }
}
/* тулбар листинга: при узкой колонке товаров сортировка — отдельной строкой справа, «Подборки» под ней во всю ширину */
@media (max-width: 1100px) {
	body.nk-inner .nk-listing .catalog-inner-right > .catalog-panel-sort { order: -2; }
	body.nk-inner .nk-listing .catalog-inner-right > .catalog-section-tags { flex: 0 0 100%; }
}
@media (min-width: 901px) and (max-width: 1100px) {
	/* колонка товаров рядом с фильтром ~700px: 3 карточки вместо двух крупных */
	body.nk-inner .nk-listing--filter .products-list { grid-template-columns: repeat(auto-fill, minmax(205px, 1fr)); }
}
@media (min-width: 901px) and (max-width: 1024px) {
	/* ≤1024 фильтр в шторке, листинг во всю ширину: ровно 3 колонки (auto-fill давал 4 — 30 карточек = 7 рядов + «дыра») */
	body.nk-inner .nk-listing--filter .products-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
	.nk-ctiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nk-ctiles:not(.nk-ctiles--root):not(.nk-ctiles--n2):not(.nk-ctiles--n3) > .nk-ctile:nth-child(4n+1):nth-last-child(2) { grid-column: auto; }
	.nk-ctiles.nk-ctiles--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	body.nk-inner .products-list { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; }
	body.nk-inner .product-item.nk-pc .product-item-price-current { font-size: 22px; }
}
@media (max-width: 768px) {
	body.nk-inner .products-list { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
}
/* «Рекомендованные» (9 карточек): 3 колонки вплоть до телефона — 3+3+3 без «висящих» */
@media (min-width: 641px) and (max-width: 1260px) {
	body.nk-inner .nk-cat-top .products-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	body.nk-inner .nk-subsecs { margin-top: 28px; }
	body.nk-inner .catalog-inner.nk-listing { width: calc(100% - 32px); margin-top: 28px; }
	.nk-ctiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	body.nk-inner .nk-ctile { --nk-notch: 54px; --nk-notch-r: 16px; min-height: 0; padding: 7px 7px calc(var(--nk-notch) + 8px); border-radius: 24px; }
	.nk-ctile__img { border-radius: 18px; }
	.nk-ctile__img--product img { padding: 8px 10px; }
	body.nk-inner .nk-ctile__title,
	body.nk-inner .nk-ctile__title--sm { margin-top: 10px; padding: 0 3px; font-size: 14px; line-height: 17px; }
	body.nk-inner .nk-ctile__title br { display: none; }
	.nk-ctile__btn { border-radius: 14px; font-size: 20px; }

	body.nk-inner .nk-cbanner .catalog-images,
	body.nk-inner .container.s-podbor { border-radius: 24px; }
	body.nk-inner .nk-cbanner__pic { height: 150px; }
	body.nk-inner .nk-cbanner__card { padding: 18px 18px 20px; }
	body.nk-inner .nk-cbanner__title { font-size: 20px; }
	body.nk-inner .nk-cbanner__text,
	body.nk-inner .nk-cbanner__text--lead { font-size: 16px; line-height: 1.35; }
	body.nk-inner .nk-cbanner__btn { width: 100%; }

	/* .s-podbor: картинка сверху (обрезка слева, где надпись), кнопка под ней во всю ширину — ничего не выходит за экран */
	body.nk-inner .container.s-podbor {
		width: calc(100% - 32px);
		aspect-ratio: auto;
		padding-top: 160px;
		background-color: #fff !important;
		background-size: auto 160px !important;
		background-position: left top !important;
	}
	body.nk-inner .container.s-podbor .s-podbor-left { position: static; width: auto; max-width: none; padding: 14px; }
	body.nk-inner .s-podbor .s-podbor-left .actions a { width: 100%; height: 52px; padding: 0 20px; }

	/* карточки — 2 колонки, компактно */
	body.nk-inner .products-list,
	body.nk-inner .nk-cat-top .products-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	body.nk-inner .nk-cat-top .nk-h2 + .nk-cat-top__list { margin-top: 24px; }
	/* «Рекомендованные» в 2 колонки: нечётную последнюю карточку не показываем, чтобы не висела одна */
	body.nk-inner .nk-cat-top .products-list > .product-item:last-child:nth-child(odd) { display: none; }
	body.nk-inner .product-item.nk-pc { padding: 6px; border-radius: 18px; }
	body.nk-inner .product-item.nk-pc:hover { transform: none; }
	body.nk-inner .product-item.nk-pc .product-item-image { padding: 2px; border-radius: 14px; }
	body.nk-inner .product-item.nk-pc .add2fav { top: 8px; right: 8px; width: 34px; height: 34px; } /* 8 = поле карточки 6 + фото 2 */
	body.nk-inner .product-item.nk-pc .add2fav svg { width: 17px; }
	body.nk-inner .product-item.nk-pc .product-item-image .product-item-discount { height: 22px; padding: 0 8px; font-size: 11px; }
	body.nk-inner .product-item.nk-pc .product-item-bottom { padding: 8px 4px 4px; }
	/* 14 строк: на 320 (колонка ~119 px) самым длинным комплектам нужно 12, на 360 — 11 (прежние 7 резали хвост
	   у четверти комплектов на 360 и почти у всех на 320) */
	body.nk-inner .product-item.nk-pc .product-item-name { font-size: 13px; line-height: 1.3; -webkit-line-clamp: 14; }
	body.nk-inner .product-item.nk-pc .product-item-props,
	body.nk-inner .product-item.nk-pc .product-item-info { display: none; }
	body.nk-inner .product-item.nk-pc .product-item-foot { padding-top: 10px; }
	body.nk-inner .product-item.nk-pc .product-item-price { gap: 0 6px; }
	body.nk-inner .product-item.nk-pc .product-item-price-current { font-size: 17px; }
	body.nk-inner .product-item.nk-pc .product-item-price-current.is-request { font-size: 15px; }
	body.nk-inner .product-item.nk-pc .product-item-price-old { font-size: 12px; }
	body.nk-inner .product-item.nk-pc .product-item-actions { margin-top: 10px; }
	body.nk-inner .product-item.nk-pc .product-item-actions .btn { height: 40px; padding: 0 10px; font-size: 14px; }
	body.nk-inner .product-item.nk-pc .product-item-actions .detail { display: none; }

	body.nk-inner .custom-show-more-btn { width: 100%; min-width: 0; height: 52px; margin-top: 24px; font-size: 16px; }
	/* список сортировки на телефоне — во всю ширину экрана под капсулой (капсула стоит у правого края) */
	body.nk-inner .catalog-panel-sort .select2-dropdown { width: calc(100vw - 32px) !important; white-space: normal; }
	body.nk-inner .catalog-section-tags .catalog-section-tags-item { height: 36px; padding: 0 14px; }
	body.nk-inner .catalog-section-tags .catalog-section-tags-item a { font-size: 14px; }
}
body.nk-inner .product-item.nk-pc .add2fav:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(75, 186, 249, .45); }
/* Узкая карточка (внутри полей ≤ 255 px, т.е. карточка уже ~275: телефоны, планшеты, ноутбуки с фильтром сбоку;
   @container меряет ширину без полей): «В избранное» — квадратная кнопка в ряду
   кнопок вместо кружка в углу фото. Фото теперь во всю ширину, и на узком кружок закрывал конец надписи инфографики
   («НАСТЕННАЯ СПЛИТ-СИСТЕ[МА]», «МУЛЬТИ СПЛИТ-СИСТЕМ[А]»). Стрелку «Подробнее» здесь не показываем — на товар
   ведут фото и название (на телефонах её не было и раньше). Браузер без @container оставит кружок на фото. */
@container nk-pc (max-width: 255px) {
	body.nk-inner .product-item.nk-pc .add2fav {
		position: static;
		order: 3;
		flex: none;
		width: 48px;
		height: 48px;
		border-radius: 16px;
		background: #e8f3fc;
		box-shadow: none;
	}
	body.nk-inner .product-item.nk-pc .add2fav:hover { transform: none; box-shadow: none; }
	body.nk-inner .product-item.nk-pc .add2fav.active { background: var(--nk-grad-sq); }
	body.nk-inner .product-item.nk-pc .add2fav:focus-visible { box-shadow: 0 0 0 3px rgba(75, 186, 249, .45); }
	body.nk-inner .product-item.nk-pc .product-item-actions .detail { display: none; }
	body.nk-inner .product-item.nk-pc .product-item-actions .buy { padding: 0 12px; }
}
@media (max-width: 640px) {
	@container nk-pc (max-width: 255px) {
		body.nk-inner .product-item.nk-pc .add2fav { width: 40px; height: 40px; border-radius: 14px; }
		body.nk-inner .product-item.nk-pc .add2fav svg { width: 18px; }
		body.nk-inner .product-item.nk-pc .product-item-actions .buy { padding: 0 8px; }
	}
	/* экран 320–350: карточка ~140–150, на кнопку остаётся ~80 — «Под заказ» / «В корзину» помещаются кеглем 13 */
	@container nk-pc (max-width: 144px) {
		body.nk-inner .product-item.nk-pc .product-item-actions { gap: 6px; }
		body.nk-inner .product-item.nk-pc .add2fav { width: 34px; height: 34px; border-radius: 12px; }
		body.nk-inner .product-item.nk-pc .add2fav svg { width: 16px; }
		body.nk-inner .product-item.nk-pc .product-item-actions .buy { padding: 0 4px; font-size: 13px; }
	}
}

/* ---------- 10. Баннер раздела (HTML) .nk-cban — 29.09.2026 ----------
   news.list/catalog-banners (разделы, section.php) и catalog-banners-main (корень /catalog/, sections.php).
   Данные — catalog-banners/banners.php по коду раздела, фото — catalog-banners/images/.
   Заменяет картинки-баннеры .nk-cbanner / .s-podbor (правила выше больше не используются).
   Слайд: тёмный (#3653a0→#3f67bd) или светлый (#ecf2f8→#d9e9f7) — слева текст, справа фото.
   Стрелки/точки свои (.nk-cban__arr/.nk-cban__dot), не .swiper-button-*. */
body.nk-inner .nk-cban { margin-top: 0; }
body.nk-inner .nk-cban ~ .nk-catroot { margin-top: 40px; }
body.nk-inner .nk-cban__box { position: relative; }
body.nk-inner .nk-cban__swiper {
	border-radius: 30px;
	overflow: hidden;
	box-shadow: var(--nk-shadow-panel);
	/* Safari: скругление + overflow с transform-потомками */
	-webkit-mask-image: -webkit-radial-gradient(white, black);
}
body.nk-inner .nk-cban__slide {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 440px;
	gap: 0 22px;
	height: auto;
	min-height: 360px;
	padding: 16px;
	box-sizing: border-box;
	border-radius: 30px;
	overflow: hidden;
}
body.nk-inner .nk-cban__slide--dark {
	color: #fff;
	background:
		radial-gradient(520px 320px at 0% 100%, rgba(75, 186, 249, .32), rgba(75, 186, 249, 0) 70%),
		linear-gradient(135deg, #3653a0 0%, #3f67bd 100%);
}
body.nk-inner .nk-cban__slide--light {
	color: var(--nk-text);
	background:
		radial-gradient(520px 320px at 0% 100%, rgba(255, 255, 255, .75), rgba(255, 255, 255, 0) 70%),
		linear-gradient(180deg, #ecf2f8 0%, #d9e9f7 100%);
}
body.nk-inner .nk-cban__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	min-width: 0;
	padding: 16px 4px 16px 30px;
}
body.nk-inner .nk-cban__kicker {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	min-height: 32px;
	padding: 6px 14px;
	box-sizing: border-box;
	border-radius: 999px;
	font-size: 13px;
	line-height: 1.2;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
body.nk-inner .nk-cban__slide--dark .nk-cban__kicker { background: rgba(255, 255, 255, .14); color: #9ee9ff; }
body.nk-inner .nk-cban__slide--light .nk-cban__kicker { background: #fff; color: var(--nk-navy); }
body.nk-inner .nk-cban__title {
	margin: 12px 0 0;
	font-size: 34px;
	line-height: 1.14;
	font-weight: 400;
	color: inherit;
	text-wrap: balance;
}
body.nk-inner .nk-cban__title b { font-weight: 700; }
body.nk-inner .nk-cban__slide--dark .nk-cban__title b { color: #9ee9ff; }
body.nk-inner .nk-cban__slide--light .nk-cban__title b { color: var(--nk-navy); }
body.nk-inner .nk-cban__text {
	max-width: 660px;
	margin: 10px 0 0;
	font-size: 17px;
	line-height: 1.4;
	font-weight: 300;
}
body.nk-inner .nk-cban__slide--dark .nk-cban__text { color: rgba(255, 255, 255, .88); }
body.nk-inner .nk-cban__slide--light .nk-cban__text { color: #3d4250; }
body.nk-inner .nk-cban__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}
body.nk-inner .nk-cban__pills li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	margin: 0;
	padding: 5px 14px 5px 6px;
	box-sizing: border-box;
	border-radius: 999px;
	font-size: 14px;
	line-height: 1.2;
	font-weight: 400;
	list-style: none;
}
body.nk-inner .nk-cban__pills li::before { content: none; }
body.nk-inner .nk-cban__slide--dark .nk-cban__pills li { background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); color: #fff; }
body.nk-inner .nk-cban__slide--light .nk-cban__pills li { background: #fff; color: var(--nk-navy); box-shadow: var(--nk-shadow-tile); }
body.nk-inner .nk-cban__pills i {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--nk-grad-sq);
	color: #fff;
	font-size: 14px;
	font-style: normal;
}
body.nk-inner .nk-cban__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 24px;
	margin-top: 22px;
}
body.nk-inner .nk-cban__btn { flex: none; }
body.nk-inner .nk-cban__more {
	font-size: 16px;
	line-height: 1.3;
	font-weight: 400;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	transition: opacity .2s;
}
body.nk-inner .nk-cban__more:hover { opacity: .75; text-decoration: underline; }
body.nk-inner .nk-cban__slide--dark .nk-cban__more { color: #fff; }
body.nk-inner .nk-cban__slide--light .nk-cban__more { color: var(--nk-navy); }
body.nk-inner .nk-cban__pic {
	display: block;
	position: relative;
	min-height: 0;
	border-radius: 22px;
	overflow: hidden;
	background: rgba(255, 255, 255, .15);
}
body.nk-inner .nk-cban__pic img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 50%;
}
/* навигация — «таблетка» в правом нижнем углу фото */
body.nk-inner .nk-cban__nav {
	position: absolute;
	right: 32px;
	bottom: 32px;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .88);
	box-shadow: 0 4px 14px rgba(20, 38, 100, .16);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
body.nk-inner .nk-cban__arr {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--nk-grad-sq);
	color: #fff;
	font-size: 18px;
	cursor: pointer;
	transition: transform .2s, box-shadow .2s;
}
body.nk-inner .nk-cban__arr:hover { transform: scale(1.06); box-shadow: 0 6px 16px rgba(75, 186, 249, .4); }
body.nk-inner .nk-cban .nk-cban__dots {
	position: static;
	display: flex;
	align-items: center;
	gap: 6px;
	width: auto;
	transform: none;
}
body.nk-inner .nk-cban__dot {
	display: block;
	width: 22px;
	height: 5px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 3px;
	background: #c9dcef;
	cursor: pointer;
	transition: background .2s, width .2s;
}
body.nk-inner .nk-cban__dot.is-active { width: 34px; background: var(--nk-blue); }
body.nk-inner .nk-cban__arr:focus-visible,
body.nk-inner .nk-cban__dot:focus-visible,
body.nk-inner .nk-cban__more:focus-visible { outline: 2px solid var(--nk-blue); outline-offset: 3px; }

@media (max-width: 1260px) {
	body.nk-inner .nk-cban__slide { grid-template-columns: minmax(0, 1fr) 44%; min-height: 350px; }
	body.nk-inner .nk-cban__body { padding: 18px 6px 18px 22px; }
	body.nk-inner .nk-cban__title { font-size: 30px; }
	body.nk-inner .nk-cban__text { font-size: 16px; }
}
@media (max-width: 1024px) {
	body.nk-inner .nk-cban__slide { grid-template-columns: minmax(0, 1fr) 40%; gap: 0 16px; }
	body.nk-inner .nk-cban__title { font-size: 28px; }
	body.nk-inner .nk-cban__pills li { min-height: 34px; font-size: 14px; }
}
@media (max-width: 900px) {
	/* фото сверху (горизонтальный кадр <img>-m.webp), текст под ним; навигация — в правом нижнем углу фото */
	/* высота кадра = ширина рамки × 3/8 (пропорция <img>-m.webp 1600×600): кадр виден целиком, лица и надписи не срезаются */
	body.nk-inner .nk-cban { --nk-cban-ph: clamp(170px, calc((100vw - 56px) * .375), 320px); }
	body.nk-inner .nk-cban__slide {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: var(--nk-cban-ph) auto;
		min-height: 0;
		padding: 12px;
	}
	body.nk-inner .nk-cban__pic { order: -1; }
	body.nk-inner .nk-cban__body { justify-content: flex-start; padding: 20px 10px 12px; }
	body.nk-inner .nk-cban__nav { top: calc(12px + var(--nk-cban-ph) - 62px); right: 22px; bottom: auto; }
}
@media (max-width: 640px) {
	/* компактный вариант: фото ≈130 px на 390 (пропорция 8:3), без абзаца текста, не больше 2 пилюль,
	   навигация — только точки по центру под фото, не на кадре (стрелки скрыты, листается свайпом) */
	body.nk-inner .nk-cban__swiper,
	body.nk-inner .nk-cban__slide { border-radius: 24px; }
	body.nk-inner .nk-cban__pic { border-radius: 16px; }
	body.nk-inner .nk-cban { --nk-cban-ph: clamp(120px, calc((100vw - 52px) * .375), 220px); }
	body.nk-inner .nk-cban__slide { padding: 10px; }
	body.nk-inner .nk-cban__nav {
		top: calc(10px + var(--nk-cban-ph) + 7px);
		right: auto;
		left: 50%;
		gap: 0;
		padding: 6px 9px;
		transform: translateX(-50%);
	}
	body.nk-inner .nk-cban__arr { display: none; }
	body.nk-inner .nk-cban .nk-cban__dots { gap: 5px; }
	body.nk-inner .nk-cban__dot { width: 14px; height: 4px; }
	body.nk-inner .nk-cban__dot.is-active { width: 22px; }
	/* точки 14×4 px пальцем не нажать (аудит 4.2): область нажатия 24 px по высоте, вид тот же */
	body.nk-inner .nk-cban__dot { position: relative; }
	body.nk-inner .nk-cban__dot::before { content: ""; position: absolute; left: -3px; right: -3px; top: -10px; bottom: -10px; }
	body.nk-inner .nk-cban__body { padding: 14px 6px 6px; }
	body.nk-inner .nk-cban--many .nk-cban__body { padding-top: 32px; }
	body.nk-inner .nk-cban__kicker { min-height: 26px; padding: 4px 11px; font-size: 12px; } /* было 11 px — мелко на телефоне (аудит 4.2) */
	body.nk-inner .nk-cban__title { margin-top: 10px; font-size: 21px; line-height: 1.2; }
	body.nk-inner .nk-cban__text { display: none; }
	body.nk-inner .nk-cban__pills { gap: 6px; margin-top: 12px; }
	body.nk-inner .nk-cban__pills li:nth-child(n+3) { display: none; }
	body.nk-inner .nk-cban__pills li { min-height: 30px; padding: 4px 11px 4px 5px; font-size: 13px; }
	body.nk-inner .nk-cban__pills i { width: 20px; height: 20px; font-size: 12px; }
	body.nk-inner .nk-cban__foot { margin-top: 14px; gap: 10px 20px; width: 100%; justify-content: center; }
	body.nk-inner .nk-cban__btn { width: 100%; height: 50px; }
	body.nk-inner .nk-cban__btn .nk-btn__circle { width: 38px; height: 38px; }
	body.nk-inner .nk-cban__more { font-size: 14px; }
	body.nk-inner .nk-cban ~ .nk-catroot { margin-top: 24px; }
}


/* ---------- «В корзину»: состояние загрузки (add2cart в js/script.js ставит .is-loading + disabled) ----------
   Карточка списка (a.buy) — спиннер перед текстом; карточка товара (.nk-btn с кругом) — спиннер вместо иконки корзины. */
@keyframes nk-cart-spin { to { transform: rotate(360deg); } }
body.nk-inner [onclick*="add2cart"].is-loading { pointer-events: none; cursor: progress; }
body.nk-inner .product-item.nk-pc .product-item-actions .buy.is-loading { filter: saturate(.85); opacity: .92; }
body.nk-inner .product-item.nk-pc .product-item-actions .buy.is-loading::before {
	content: '';
	flex: none;
	width: 16px;
	height: 16px;
	margin-right: 8px;
	border: 2px solid rgba(255, 255, 255, .4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: nk-cart-spin .7s linear infinite;
}
body.nk-inner .nk-btn[onclick*="add2cart"].is-loading .nk-btn__circle { position: relative; transform: none; }
body.nk-inner .nk-btn[onclick*="add2cart"].is-loading .nk-btn__circle > * { opacity: 0; }
body.nk-inner .nk-btn[onclick*="add2cart"].is-loading .nk-btn__circle::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 20px;
	margin: -10px 0 0 -10px;
	/* круг кнопки — светлая подложка: спиннер фирменного тёмно-синего, иначе белая дуга сливается с фоном */
	border: 2.5px solid rgba(54, 83, 160, .22);
	border-top-color: var(--nk-navy);
	border-radius: 50%;
	animation: nk-cart-spin .7s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
	body.nk-inner [onclick*="add2cart"].is-loading::before,
	body.nk-inner [onclick*="add2cart"].is-loading .nk-btn__circle::after { animation-duration: 2s; }
}

/* ---------- 11. Комплекты мульти-сплит-систем (Л12, 14.10.2026): ссылки по брендам над списком и текст под списком ----------
   Разделы «Комплекты на N комнат» и посадочные «бренд × N комнат» (адреса фильтра по бренду) — local/php_interface/include/nk_kits.php */
body.nk-inner .nk-kits-brands { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 22px; }
body.nk-inner .nk-kits-brands__item {
	display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 16px; border-radius: 20px;
	background: var(--nk-bg); color: var(--nk-navy); font-size: 15px; font-weight: 500; line-height: 1.2; text-decoration: none;
}
body.nk-inner a.nk-kits-brands__item:hover, body.nk-inner a.nk-kits-brands__item:focus-visible { color: var(--nk-blue); }
body.nk-inner .nk-kits-brands__item span { color: var(--nk-grey); font-weight: 400; }
body.nk-inner .nk-kits-brands__item.is-active { background: var(--nk-navy); color: #fff; }
body.nk-inner .nk-kits-brands__item.is-active span { color: rgba(255, 255, 255, .75); }
body.nk-inner .nk-kits-text { margin: 48px 0 0; max-width: 980px; color: var(--nk-text); font-size: 16px; line-height: 1.6; }
body.nk-inner .nk-kits-text h2 { margin: 0 0 14px; font-size: 26px; line-height: 1.25; font-weight: 700; }
body.nk-inner .nk-kits-text h3 { margin: 28px 0 12px; font-size: 20px; line-height: 1.3; font-weight: 700; }
body.nk-inner .nk-kits-text p { margin: 0 0 12px; }
body.nk-inner .nk-kits-text ul { margin: 0 0 12px; padding-left: 20px; }
body.nk-inner .nk-kits-text li { margin: 0 0 6px; }
body.nk-inner .nk-kits-text a { color: var(--nk-blue); }
body.nk-inner .nk-kits-table { width: 100%; margin: 0 0 14px; border-collapse: collapse; font-size: 15px; }
body.nk-inner .nk-kits-table th, body.nk-inner .nk-kits-table td { padding: 9px 12px; border-bottom: 1px solid rgba(0, 0, 0, .08); text-align: left; vertical-align: top; }
body.nk-inner .nk-kits-table th { color: var(--nk-grey); font-weight: 500; font-size: 14px; }
@media (max-width: 640px) {
	body.nk-inner .nk-kits-brands { gap: 8px; margin-bottom: 16px; }
	body.nk-inner .nk-kits-brands__item { min-height: 36px; padding: 6px 12px; font-size: 14px; }
	body.nk-inner .nk-kits-text { margin-top: 32px; font-size: 15px; }
	body.nk-inner .nk-kits-text h2 { font-size: 22px; }
	body.nk-inner .nk-kits-table { display: block; overflow-x: auto; font-size: 14px; }
	body.nk-inner .nk-kits-table th, body.nk-inner .nk-kits-table td { padding: 8px; white-space: nowrap; }
}
