/* =========================================================
   «Нужный климат» — БАЗОВЫЙ СЛОЙ нового дизайна для внутренних страниц (шаблон nclimate).
   Подключается в header.php прямым <link> ПОСЛЕ бандла template_styles.css, затем идут
   слои групп: nk-catalog.css, nk-product.css, nk-content.css, nk-info.css, nk-commerce.css.
   Scope: body.nk-inner. Значения компонентов скопированы с главной (nclimate_home/template_styles.css).
   Этот файл — общий: группы в него НЕ пишут, только в свой css/nk-<группа>.css.

   Содержание:
    1. Токены и база (фон, цвет текста, шрифт)
    2. Общие компоненты главной: .nk-wrap .nk-panel .nk-h2 .nk-sub .nk-btn .nk-field .nk-check
       .nk-card .nk-tile .nk-arrow .nk-dots .nk-badge .nk-sq-btn .nk-stars
    3. Шапка-баннер .nk-top + шапка .nk-hdr (+ липкое состояние .is-stuck)
    4. Хлебные крошки и H1 баннера
    5. Выпадающий поиск .header-search
    6. Мобильное меню .mobile-menu
    7. Подвал .nk-footer, cookie .nk-cookie
    8. Модалки SVModal (.modal) и попап .popup, формы в них, .alert
    9. Пагинация .modern-page-navigation / .nk-pager
   10. Общие инклуды: инлайн-форма .nk-lead, соцсети .nk-soc-panel, услуги .nk-srv
   11. Мелочи: .site-btn, .scroll-to-top, .basket-tooltip
   12. Адаптив 1480 / 1260 / 1024 / 900 / 640
   ========================================================= */

/* ---------- 1. Токены и база ---------- */
:root {
	--nk-bg: #f5f6f9;
	--nk-text: #2d2d2d;
	--nk-grey: #959595;
	--nk-light: #dadada;
	--nk-navy: #36529d;
	--nk-blue: #4bbaf9;
	--nk-cyan: #9ee9ff;
	--nk-grad: linear-gradient(90deg, #4bbaf9 0%, #55c0fa 72%, #9ee9ff 100%);
	--nk-grad-sq: linear-gradient(135deg, #4bbaf9 0%, #5cc4fa 50%, #9ee9ff 100%);
	--nk-card: linear-gradient(180deg, #ecf2f8 0%, #d9e9f7 100%);
	--nk-card-dark: linear-gradient(180deg, #3f67bd 0%, #3653a0 100%);
	--nk-shadow-panel: 0 5px 7px rgba(0, 0, 0, .12);
	--nk-shadow-tile: 0 5px 7px rgba(0, 0, 0, .06);
	--nk-shadow-tile-h: 0 6px 10px rgba(0, 0, 0, .12);
	--nk-err: #e0554b;
	--nk-err-line: #f0736a;
	--nk-ok: #2a9d5b;
	--nk-hdr-h: 160px;      /* высота шапки в баннере (строка 96 + капсула 64) */
	--nk-hdr-stuck: 64px;   /* высота липкой панели */
}

html { scroll-padding-top: 96px; }

body.nk-inner {
	background: var(--nk-bg);
	color: var(--nk-text);
	font-family: 'Geologica', 'Geologica Fallback', Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}
/* Старый шаблон красит ВСЕ ссылки в #fff. :where() держит специфичность как у тега a —
   перебиваем только этот глобальный сброс, классовые правила старых блоков не трогаем. */
:where(body.nk-inner main) a { color: inherit; }
body.nk-inner main.nk-main { flex: 1 0 auto; display: block; padding-top: 50px; overflow-x: hidden; overflow-x: clip; }
/* Страховка каркаса: контент шире экрана (например, .s-podbor-left на 390) не должен расширять layout viewport —
   иначе fixed-элементы основы (липкая шапка, меню, поиск, cookie) раскладываются шире экрана.
   clip (а не hidden) не создаёт контейнер прокрутки — position:sticky внутри main работает. */
body.nk-inner b, body.nk-inner strong { font-weight: 700; }

.nk-i { width: 1em; height: 1em; display: block; }
.nk-ui-i { width: 22px; height: 22px; display: block; flex: none; }

/* ---------- 2. Общие компоненты ---------- */
.nk-wrap { width: min(1200px, calc(100% - 40px)); margin-left: auto; margin-right: auto; }

.nk-panel {
	width: min(1440px, calc(100% - 24px));
	margin: 100px auto 0;
	background: #fff;
	border-radius: 55px;
	box-shadow: var(--nk-shadow-panel);
}
.nk-panel__in { width: min(1200px, calc(100% - 40px)); margin: 0 auto; padding: 64px 0; }
.nk-sec { margin-top: 84px; }

.nk-h2 {
	margin: 0;
	font-size: 43px;
	line-height: 1.05;
	font-weight: 400;
	color: var(--nk-text);
	letter-spacing: -.005em;
}
.nk-h2 b { color: var(--nk-navy); font-weight: 700; }
.nk-sub {
	margin: 15px 0 0;
	font-size: 22px;
	line-height: 1.22;
	font-weight: 300;
	color: var(--nk-grey);
}
.nk-text { font-size: 22px; line-height: 27px; font-weight: 300; }

/* Кнопка-капсула с кругом-стрелкой */
.nk-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border: 0;
	border-radius: 999px;
	background: var(--nk-grad);
	color: #fff;
	font-family: inherit;
	font-weight: 700;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transition: filter .2s, transform .2s, box-shadow .2s;
}
.nk-btn:hover { color: #fff; filter: brightness(1.05) saturate(1.05); box-shadow: 0 8px 22px rgba(75, 186, 249, .35); }
.nk-btn:active { transform: translateY(1px); }
.nk-btn__circle {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(158, 233, 255, .9), rgba(190, 243, 255, .75));
	font-size: 30px;
	font-style: normal;
	color: #fff;
	transition: transform .3s;
}
.nk-btn:hover .nk-btn__circle { transform: rotate(45deg); }
.nk-btn--wide { width: 100%; height: 80px; padding: 0 10px 0 26px; font-size: 18.9px; }
.nk-btn--wide .nk-btn__circle { width: 60px; height: 60px; font-size: 26px; }
.nk-btn--sm { height: 60px; padding: 0 8px 0 22px; font-size: 17px; }
.nk-btn--sm .nk-btn__circle { width: 46px; height: 46px; font-size: 22px; }
/* Вторичная — белая капсула */
.nk-btn--white { background: #fff; color: var(--nk-navy); box-shadow: var(--nk-shadow-tile); }
.nk-btn--white:hover { color: var(--nk-navy); box-shadow: var(--nk-shadow-tile-h); filter: none; }
.nk-btn--white .nk-btn__circle { background: var(--nk-grad-sq); }
/* Простая капсула без круга (для плотных мест) */
.nk-btn--plain { justify-content: center; height: 56px; padding: 0 32px; font-size: 18px; }

/* Квадратная кнопка-стрелка 61px */
.nk-sq-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 61px;
	height: 61px;
	border-radius: 18px;
	background: var(--nk-grad-sq);
	color: #fff;
	font-size: 26px;
	transition: transform .25s, box-shadow .25s;
}
.nk-sq-btn:hover { color: #fff; transform: scale(1.06); box-shadow: 0 8px 20px rgba(75, 186, 249, .4); }
.nk-sq-btn--dark { background: linear-gradient(135deg, #3653a0, #3f67bd); }

/* Бейдж-капсула */
.nk-badge {
	display: inline-flex;
	align-items: center;
	height: 34px;
	padding: 0 16px;
	border-radius: 999px;
	background: var(--nk-grad-sq);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}
.nk-badge--light { background: #e3f1fc; color: var(--nk-navy); }
.nk-badge--navy { background: var(--nk-navy); }

/* Поле ввода */
.nk-field { display: block; width: 100%; margin-top: 17px; position: relative; }
.nk-field > span { display: block; font-size: 15px; line-height: 18px; color: #000; margin-bottom: 7px; }
.nk-field__opt { margin-left: 4px; font-size: 13px; color: var(--nk-grey); } /* «необязательно» у поля «Почта» */
body.nk-inner .nk-field input,
body.nk-inner .nk-field textarea,
body.nk-inner .nk-field select {
	display: block;
	width: 100%;
	height: 58px;
	margin: 0;
	padding: 0 18px;
	border: 1.5px solid transparent;
	border-radius: 8px;
	background: var(--nk-bg);
	font: 300 20px/1.2 'Geologica', Arial, sans-serif;
	color: var(--nk-text);
	outline: none;
	box-shadow: none;
	transition: border-color .2s, background-color .2s;
}
body.nk-inner .nk-field textarea { height: 112px; padding: 14px 18px; resize: vertical; }
body.nk-inner .nk-field input::placeholder,
body.nk-inner .nk-field textarea::placeholder { color: #b9bcc4; opacity: 1; }
body.nk-inner .nk-field input:focus,
body.nk-inner .nk-field textarea:focus,
body.nk-inner .nk-field select:focus { border-color: var(--nk-blue); background-color: #fff; }
body.nk-inner .nk-field input.is-error,
body.nk-inner .nk-field textarea.is-error { border-color: var(--nk-err-line); }
/* Выпадашка «Как с вами связаться?» (label > input[readonly] + ul.dropdown-form, логика customDropdownForm) */
body.nk-inner .nk-field input[readonly] {
	cursor: pointer;
	padding-right: 48px;
	background: var(--nk-bg) 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' stroke-linecap='round'/%3E%3C/svg%3E") right 16px center / 20px no-repeat;
}
body.nk-inner .nk-field .dropdown-form {
	top: calc(100% + 6px);
	padding: 8px;
	border: 0;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(20, 38, 100, .16);
	color: var(--nk-text);
	list-style: none;
	margin: 0;
}
body.nk-inner .nk-field .dropdown-form li {
	width: auto;
	padding: 11px 14px;
	border-radius: 10px;
	font-size: 17px;
	list-style: none;
	cursor: pointer;
	transition: background .15s, color .15s;
}
body.nk-inner .nk-field .dropdown-form li:hover { opacity: 1; background: var(--nk-bg); color: var(--nk-navy); }

/* Чекбокс согласия */
/* Поле-ловушка для ботов в формах (см. /ajax/nk_guard.php): людям не видно и недоступно с клавиатуры */
.nk-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.nk-check { display: flex; align-items: center; gap: 8px; margin-top: 29px; font-size: 15px; line-height: 18px; color: #000; cursor: pointer; text-align: left; }
body.nk-inner .nk-check input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; padding: 0; border: 0; }
.nk-check i {
	flex: none;
	width: 29px;
	height: 30px;
	border-radius: 7px;
	background: var(--nk-bg);
	border: 1.5px solid #cfe3f3;
	color: #fff;
	font-size: 20px;
	font-style: normal;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s, border-color .2s;
}
.nk-check i svg { opacity: 0; }
.nk-check input:checked + i { background: linear-gradient(135deg, #4bbaf9, #7cd6fc); border-color: transparent; }
.nk-check input:checked + i svg { opacity: 1; }
.nk-check input:focus-visible + i { box-shadow: 0 0 0 3px rgba(75, 186, 249, .35); }
.nk-check.is-error i { border-color: var(--nk-err-line); }
body.nk-inner .nk-check a { color: inherit; text-decoration: underline; text-decoration-color: rgba(0, 0, 0, .25); border: 0; }
body.nk-inner .nk-check a:hover { color: var(--nk-navy); }
/* Справочная строка под галочкой согласия: кто оператор и где политика (галочкой её не подтверждают) */
.nk-check__op { display: block; margin-top: 3px; font-size: 12px; line-height: 15px; font-weight: 300; opacity: .72; }
.nk-check__op a { color: inherit; }

/* Радио-капсулы (например, «Вам понадобится доставка?») */
.nk-radios { margin-top: 17px; }
.nk-radios__label { display: block; font-size: 15px; color: #000; margin-bottom: 8px; }
.nk-radios__row { display: flex; flex-wrap: wrap; gap: 8px; }
.nk-radio { position: relative; cursor: pointer; }
body.nk-inner .nk-radio input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.nk-radio span {
	display: inline-flex;
	align-items: center;
	height: 42px;
	padding: 0 18px;
	border-radius: 999px;
	background: var(--nk-bg);
	border: 1.5px solid transparent;
	font-size: 16px;
	color: var(--nk-text);
	transition: background .2s, color .2s, border-color .2s;
}
.nk-radio:hover span { border-color: #cfe3f3; }
.nk-radio input:checked + span { background: var(--nk-grad-sq); color: #fff; font-weight: 700; }
.nk-radio input:focus-visible + span { box-shadow: 0 0 0 3px rgba(75, 186, 249, .35); }

/* Карточки */
.nk-card {
	position: relative;
	padding: 26px;
	border-radius: 30px;
	background: var(--nk-card);
	color: var(--nk-text);
	transition: transform .25s, box-shadow .25s;
}
.nk-card:hover { transform: translateY(-4px); box-shadow: 0 10px 24px rgba(54, 82, 157, .1); }
.nk-card--dark { background: var(--nk-card-dark); color: #fff; }
.nk-card__ic { display: flex; align-items: center; justify-content: center; width: 106px; height: 106px; border-radius: 50%; background: #fff; color: var(--nk-blue); }
.nk-card__title { margin: 16px 0 0; font-size: 22px; line-height: 27px; font-weight: 700; color: var(--nk-blue); }
.nk-card--dark .nk-card__title { color: #fff; }
.nk-card__text { margin: 6px 0 0; font-size: 19px; line-height: 23px; font-weight: 300; }

/* Плитка — мелкая белая карточка */
.nk-tile {
	display: block;
	padding: 20px 22px;
	border-radius: 24px;
	background: #fff;
	color: var(--nk-text);
	box-shadow: var(--nk-shadow-tile);
	transition: transform .2s, box-shadow .2s;
}
a.nk-tile:hover, .nk-tile--hover:hover { transform: translateY(-3px); box-shadow: var(--nk-shadow-tile-h); }

/* Стрелки слайдера и точки */
.nk-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 67px;
	height: 67px;
	border: 0;
	border-radius: 50%;
	background: linear-gradient(90deg, #e8f0f8, #d6e7f7);
	color: #fff;
	font-size: 28px;
	cursor: pointer;
	transition: background .2s, transform .2s;
}
.nk-arrow:hover { background: var(--nk-grad-sq); }
.nk-arrow[disabled], .nk-arrow.is-disabled { opacity: .45; pointer-events: none; }
.nk-dots { display: flex; justify-content: center; gap: 8px; margin-top: 40px; }
.nk-dots button, .nk-dots span { width: 39px; height: 5px; padding: 0; border: 0; border-radius: 3px; background: #d5e7f7; cursor: pointer; transition: background .2s; }
.nk-dots .is-active { background: var(--nk-blue); }

.nk-stars { display: inline-flex; gap: 1.5px; color: #ffc41f; }
.nk-star { width: 13px; height: 13px; }

/* ---------- 3. Шапка-баннер ---------- */
.nk-top {
	position: relative; /* без z-index: иначе баннер создаёт контекст наложения и запирает в нём липкую шапку */
	padding: calc(var(--nk-hdr-h) + 34px) 0 70px;
	border-radius: 0 0 50px 50px;
	color: #fff;
	/* Фон — три файла под ширину экрана (Л3, скорость): телефону 47 КБ, ноутбуку 108 КБ, широкому монитору — оригинал 226 КБ.
	   Те же файлы и те же условия — в <link rel="preload"> шаблона (header.php): менять вместе. */
	--nk-top-img: url(/local/templates/nclimate/images/nk-top-bg-1600.webp);
	background:
		linear-gradient(180deg, rgba(28, 52, 118, .80) 0%, rgba(44, 84, 160, .60) 46%, rgba(52, 120, 190, .66) 100%),
		linear-gradient(90deg, rgba(30, 55, 120, .35) 0%, rgba(30, 55, 120, 0) 55%),
		#3f6fae var(--nk-top-img) center 62% / cover no-repeat; /* горы главной без кондиционера */
}
@media (min-width: 1601px) { .nk-top { --nk-top-img: url(/local/templates/nclimate/images/nk-top-bg.webp); } }
@media (max-width: 640px) { .nk-top { --nk-top-img: url(/local/templates/nclimate/images/nk-top-bg-m.webp); } }
.nk-top--no-h1 { padding-bottom: 44px; }
.nk-top__body { position: relative; }

.nk-hdr {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	color: #fff;
	pointer-events: none; /* полоса header во всю ширину прозрачна — клики проходят к странице */
}
.nk-hdr__in {
	pointer-events: auto;
	width: min(1200px, calc(100% - 40px));
	margin: 0 auto;
	display: grid;
	grid-template-columns: auto 1fr auto auto auto;
	grid-template-areas: "logo . soc phone call" "glass glass glass glass glass";
	grid-template-rows: 96px 64px;
	align-items: center;
	column-gap: 29px;
}
.nk-hdr__logo { grid-area: logo; display: block; line-height: 0; }
.nk-hdr__logo img { width: 152px; height: auto; display: block; }
.nk-hdr__logo-c { display: none !important; }
.nk-hdr__soc { grid-area: soc; display: flex; align-items: center; gap: 29px; }
.nk-hdr__soc img { height: 27px; width: auto; display: block; transition: transform .2s; }
.nk-hdr__soc a:hover img { transform: scale(1.12); }
body.nk-inner .nk-hdr__phone { grid-area: phone; display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 17px; font-weight: 400; white-space: nowrap; }
.nk-hdr__phone .nk-ui-i { width: 18px; height: 18px; }
body.nk-inner .nk-hdr__call {
	grid-area: call;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 35px;
	padding: 0 24px;
	border: .6px solid #fff;
	border-radius: 18px;
	color: #fff;
	font-size: 14.4px;
	font-weight: 300;
	white-space: nowrap;
	transition: background .2s, color .2s;
}
body.nk-inner .nk-hdr__call:hover { background: #fff; color: var(--nk-navy); }

/* «Стеклянная» капсула: меню + иконки (blur — на ней, не на header) */
.nk-hdr__glass {
	grid-area: glass;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	height: 64px;
	padding: 0 10px 0 34px;
	border-radius: 32px;
	background: linear-gradient(90deg, rgba(54, 82, 157, .30), rgba(120, 170, 215, .30), rgba(54, 82, 157, .30));
	border: 1px solid rgba(255, 255, 255, .45);
	-webkit-backdrop-filter: blur(7px);
	backdrop-filter: blur(7px);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25);
}
.nk-nav { min-width: 0; }
.nk-nav__list { display: flex; align-items: center; gap: 34px; margin: 0; padding: 0; list-style: none; }
.nk-nav__item { position: relative; list-style: none; }
body.nk-inner .nk-nav__item > a {
	position: relative;
	display: block;
	padding: 8px 0;
	color: #fff;
	font-size: 17px;
	font-weight: 400;
	white-space: nowrap;
	transition: color .2s, opacity .2s;
}
.nk-nav__item > a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 1px;
	height: 2px;
	border-radius: 2px;
	background: var(--nk-cyan);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s;
}
.nk-nav__item > a:hover::after, .nk-nav__item.is-active > a::after { transform: scaleX(1); }
body.nk-inner .nk-nav__item.is-active > a { font-weight: 700; }
.nk-nav__drop { display: none; }
.nk-nav__item.has-child:hover .nk-nav__drop {
	display: flex; flex-direction: column; gap: 4px; position: absolute; left: -16px; top: 100%; min-width: 240px;
	padding: 10px; border-radius: 20px; background: #fff; box-shadow: 0 12px 30px rgba(20, 38, 100, .16); opacity: 1; visibility: visible; transform: none;
}
body.nk-inner .nk-nav__drop a { padding: 8px 12px; border-radius: 10px; color: var(--nk-text); font-size: 16px; }
body.nk-inner .nk-nav__drop a:hover { background: var(--nk-bg); color: var(--nk-navy); }

/* Иконки: поиск / избранное / корзина (+ бургер) */
.nk-hdr__icons { flex: none; }
body.nk-inner .nk-hdr__icons ul { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; list-style: none; }
body.nk-inner .nk-hdr__icons li { list-style: none; }
body.nk-inner .nk-hdr__icons .bx-basket { margin: 0; padding: 0; }
body.nk-inner .nk-ico,
body.nk-inner .nk-hdr__burger {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .16);
	background-image: none;
	border: 1px solid rgba(255, 255, 255, .55);
	color: #fff;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}
body.nk-inner .nk-ico:hover,
body.nk-inner .nk-hdr__burger:hover { background-color: #fff; border-color: #fff; color: var(--nk-navy); }
body.nk-inner .nk-ico .count {
	position: absolute;
	top: -6px;
	right: -6px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 10px;
	background: var(--nk-blue);
	box-shadow: 0 0 0 2px #fff;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}
body.nk-inner .nk-hdr__burger { grid-area: burger; display: none; }

/* Липкое состояние: белая компактная «таблетка» (класс ставит script.js) */
@keyframes nk-hdr-in { from { transform: translateY(-130%); opacity: 0; } to { transform: none; opacity: 1; } }
.nk-hdr.is-stuck { position: fixed; top: 10px; color: var(--nk-text); }
.nk-hdr.is-stuck .nk-hdr__in {
	width: min(1240px, calc(100% - 24px));
	grid-template-columns: auto 1fr auto;
	grid-template-areas: "logo glass phone";
	grid-template-rows: var(--nk-hdr-stuck);
	column-gap: 24px;
	padding: 0 12px 0 26px;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(20, 38, 100, .14);
	animation: nk-hdr-in .35s cubic-bezier(.2, .8, .2, 1);
}
.nk-hdr.is-stuck .nk-hdr__logo img { width: 124px; }
.nk-hdr.is-stuck .nk-hdr__logo-w { display: none !important; }
.nk-hdr.is-stuck .nk-hdr__logo-c { display: block !important; }
.nk-hdr.is-stuck .nk-hdr__soc,
body.nk-inner .nk-hdr.is-stuck .nk-hdr__call { display: none; }
.nk-hdr.is-stuck .nk-hdr__glass {
	height: auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	box-shadow: none;
}
body.nk-inner .nk-hdr.is-stuck .nk-nav__item > a { color: var(--nk-text); font-size: 16px; }
body.nk-inner .nk-hdr.is-stuck .nk-nav__item.is-active > a { color: var(--nk-navy); }
.nk-hdr.is-stuck .nk-nav__item > a::after { background: var(--nk-blue); }
.nk-hdr.is-stuck .nk-nav__list { gap: 28px; }
body.nk-inner .nk-hdr.is-stuck .nk-ico,
body.nk-inner .nk-hdr.is-stuck .nk-hdr__burger { background-color: var(--nk-bg); border-color: var(--nk-bg); color: var(--nk-navy); }
body.nk-inner .nk-hdr.is-stuck .nk-ico:hover,
body.nk-inner .nk-hdr.is-stuck .nk-hdr__burger:hover { background: var(--nk-grad-sq); border-color: transparent; color: #fff; }
body.nk-inner .nk-hdr.is-stuck .nk-hdr__phone { color: var(--nk-text); font-weight: 700; font-size: 16px; }
.nk-hdr.is-stuck .nk-hdr__phone .nk-ui-i { color: var(--nk-blue); }
/* При семи пунктах меню логотип, меню, значки и телефон вместе занимают около 1430 px и в «таблетку» 1240 px не помещались:
   колонка логотипа сжималась до нуля (логотип пропадал), а телефон выходил за правый край, на экране 1280 px — за экран.
   От 1480 px «таблетка» шире и вмещает всё; на более узких телефон в липкой шапке скрыт (он остаётся в баннере и подвале).
   Правила для ≤1260 px ниже по файлу уточняют это же состояние. Проверка — scripts/checks/check_sticky_header.mjs */
.nk-hdr.is-stuck .nk-hdr__logo { flex: none; min-width: 104px; }
@media (min-width: 1480px) {
	.nk-hdr.is-stuck .nk-hdr__in { width: min(1440px, calc(100% - 24px)); }
}
@media (max-width: 1479px) {
	.nk-hdr.is-stuck .nk-hdr__in { grid-template-columns: auto 1fr; grid-template-areas: "logo glass"; }
	body.nk-inner .nk-hdr.is-stuck .nk-hdr__phone { display: none; }
	.nk-hdr.is-stuck .nk-nav__list { gap: 24px; }
}
@media (prefers-reduced-motion: reduce) { .nk-hdr.is-stuck .nk-hdr__in { animation: none; } }
/* body.scroll-hidden ставит script.js, пока открыт мобильный фильтр (#sideWindow) или попап .popup:
   шапка не должна закрывать заголовок и крестик боковой панели */
body.nk-inner.scroll-hidden .nk-hdr { visibility: hidden; }
/* Выпадашка select2 (сортировка каталога) — ниже липкой шапки */
body.nk-inner .select2-dropdown { z-index: 990; }

/* ---------- 4. Хлебные крошки и H1 в баннере ---------- */
body.nk-inner .nk-crumbs { margin: 0; padding: 0; }
body.nk-inner .nk-crumbs .bx-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	margin: 0;
	padding: 0;
	border-radius: 0;
	background: none;
	font-size: 15px;
	line-height: 20px;
	color: rgba(255, 255, 255, .8);
}
body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item { display: flex; align-items: center; gap: 12px; margin: 0; }
body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item a,
body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item span { color: inherit; font-size: 15px; font-weight: 300; }
body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item a:hover span { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item.is-current span { color: #fff; }
body.nk-inner .nk-crumbs .bx-breadcrumb-item-arrow {
	display: block;
	width: 7px;
	height: 7px;
	border-top: 1.5px solid rgba(255, 255, 255, .6);
	border-right: 1.5px solid rgba(255, 255, 255, .6);
	transform: rotate(45deg);
	font-size: 0;
}
body.nk-inner .nk-top__title {
	margin: 14px 0 0;
	max-width: 1000px;
	font-size: 48px;
	line-height: 56px;
	font-weight: 700;
	color: #fff;
	text-wrap: balance;
	overflow-wrap: anywhere;
}
.nk-crumbs:empty + .nk-top__title { margin-top: 0; }

/* ---------- Области нажатия на сенсорных экранах (аудит 01.10.2026, п. 4.2; 06.10.2026) ----------
   Вид элементов не меняется, увеличивается только зона, реагирующая на палец (рекомендация — не меньше 24 px):
   значки соцсетей в шапке, ссылки «хлебных крошек», точки слайдеров Swiper. */
@media (hover: none) {
	.nk-hdr__soc a { display: block; padding: 6px; margin: -6px; }
	body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item a { display: inline-block; padding: 5px 0; margin: -5px 0; }
	.swiper-pagination-bullet { position: relative; }
	.swiper-pagination-bullet::before { content: ""; position: absolute; inset: -8px; }
	/* подвал: значки соцсетей 25×24 и ссылки на документы (18 px) — зона нажатия до 36 / 30 px */
	.nk-footer__social a { position: relative; }
	.nk-footer__social a::before { content: ""; position: absolute; inset: -6px; }
	/* у кнопки «Настройки cookie» селектор из двух классов: ниже по файлу стоит её сброс отступов (.nk-footer__cookie),
	   и с одним классом он перебивал бы это правило — зона нажатия оставалась бы в одну строку текста */
	.nk-footer__docs a, .nk-footer__docs .nk-footer__cookie { display: inline-block; padding: 6px 0; margin: -6px 0; }
}
/* Подзаголовок под H1 (через AddViewContent('nk_top', '<p class="nk-top__sub">…</p>')) */
body.nk-inner .nk-top__sub { max-width: 760px; margin: 12px 0 0; font-size: 19px; line-height: 1.3; font-weight: 300; color: rgba(255, 255, 255, .88); }
body.nk-inner .nk-top__sub a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 5. Выпадающий поиск ---------- */
/* Панель выпадает ПОД шапку (строка шапки и лупа остаются видны), ширина — по сетке 1200.
   В баннере — absolute от верха документа (уезжает вместе со страницей), при липкой шапке — fixed под панелью.
   Затемнение — box-shadow на всю страницу: оно не ловит клики, поэтому клик мимо закрывает поиск (headerSearch). */
body.nk-inner .header-search.nk-search {
	position: absolute;
	top: calc(var(--nk-hdr-h) + 12px);
	left: 0;
	right: 0;
	z-index: 1100;
	padding: 0;
	background: none;
	box-shadow: none;
}
body.nk-inner.nk-hdr-stuck .header-search.nk-search { position: fixed; top: calc(10px + var(--nk-hdr-stuck) + 10px); }
.nk-search__in {
	display: flex;
	align-items: center;
	gap: 12px;
	width: min(1200px, calc(100% - 40px));
	margin: 0 auto;
	padding: 14px;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(20, 38, 100, .2), 0 0 0 100vmax rgba(28, 38, 66, .45);
}
body.nk-inner .nk-search .nk-search__form { flex: 1; min-width: 0; }
body.nk-inner .nk-search .nk-search__close {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--nk-bg);
	color: var(--nk-grey);
	cursor: pointer;
	transition: background .2s, color .2s;
}
body.nk-inner .nk-search .nk-search__close:hover { background: var(--nk-blue); color: #fff; }
body.nk-inner .nk-search .nk-search__form {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	height: 58px;
	padding: 0 6px 0 20px;
	border: 1.5px solid transparent;
	border-radius: 999px;
	background: var(--nk-bg);
	overflow: visible;
	transition: border-color .2s, background-color .2s;
}
body.nk-inner .nk-search .nk-search__form:focus-within { border-color: var(--nk-blue); background: #fff; }
.nk-search__ic { color: var(--nk-blue); display: flex; }
body.nk-inner .nk-search .nk-search__form input {
	flex: 1;
	min-width: 0;
	width: 100%;
	height: 54px;
	padding: 0;
	border: 0;
	background: none;
	font: 300 20px 'Geologica', Arial, sans-serif;
	color: var(--nk-text);
}
body.nk-inner .nk-search .nk-search__form input::placeholder { color: #b9bcc4; }
body.nk-inner .nk-search .nk-search__form button.nk-search__btn {
	flex: none;
	height: 46px;
	padding: 0 28px;
	border: 0;
	border-radius: 999px;
	background: var(--nk-grad);
	color: #fff;
	font: 700 17px 'Geologica', Arial, sans-serif;
	cursor: pointer;
	transition: filter .2s, box-shadow .2s;
}
body.nk-inner .nk-search .nk-search__form button.nk-search__btn:hover { filter: brightness(1.05); box-shadow: 0 8px 22px rgba(75, 186, 249, .35); }
body.nk-inner .nk-search .search-suggest-dropdown {
	top: calc(100% + 10px);
	left: 0;
	right: 0;
	max-height: min(60vh, 460px);
	padding: 8px;
	border: 0;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(20, 38, 100, .18);
	z-index: 5;
}
body.nk-inner .nk-search .suggest-item { align-items: center; gap: 14px; padding: 8px 10px; border: 0; border-radius: 14px; }
body.nk-inner .nk-search .suggest-item:hover { background: var(--nk-bg); }
body.nk-inner .nk-search .suggest-image { overflow: hidden; width: 56px; height: 56px; margin: 0; padding: 4px; border-radius: 12px; background: #fff; box-shadow: var(--nk-shadow-tile); }
body.nk-inner .nk-search .suggest-name { font-size: 15px; font-weight: 400; color: var(--nk-text); }
body.nk-inner .nk-search .suggest-price { font-size: 15px; font-weight: 700; color: var(--nk-navy); }

/* ---------- 6. Мобильное меню (выезжающая панель, ≤1024) ---------- */
body.nk-inner .mobile-menu.nk-mm { display: none; }
.nk-mm__backdrop { position: absolute; inset: 0; background: rgba(28, 38, 66, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); opacity: 0; transition: opacity .3s; cursor: pointer; }
.nk-mm__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(420px, calc(100% - 28px));
	display: flex;
	flex-direction: column;
	padding: 16px 20px 24px;
	border-radius: 32px 0 0 32px;
	background: #fff;
	color: var(--nk-text);
	overflow-y: auto;
	overscroll-behavior: contain;
	transform: translateX(100%);
	transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
.nk-mm__head { display: flex; align-items: center; justify-content: space-between; min-height: 56px; }
.nk-mm__logo img { width: 124px; height: auto; display: block; }
body.nk-inner .nk-mm .nk-mm__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border-radius: 50%;
	background: var(--nk-bg);
	color: var(--nk-grey);
	font-size: 0;
	transition: background .2s, color .2s;
}
body.nk-inner .nk-mm .nk-mm__close:hover { background: var(--nk-blue); color: #fff; }
body.nk-inner .nk-mm .mobile-menu-close::before { content: none; display: none; }
.nk-mm__nav { margin-top: 18px; }
body.nk-inner .nk-mm__list { display: block; margin: 0; padding: 0; background: none; list-style: none; }
body.nk-inner .nk-mm__list li { list-style: none; margin: 0; background: none; border-bottom: 1px solid #e6e9ef; }
body.nk-inner .nk-mm__list > li > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 4px;
	color: var(--nk-text);
	font-size: 22px;
	line-height: 1.2;
	font-weight: 400;
}
body.nk-inner .nk-mm__list > li > a::after {
	content: '';
	width: 8px;
	height: 8px;
	border-top: 1.5px solid var(--nk-blue);
	border-right: 1.5px solid var(--nk-blue);
	transform: rotate(45deg);
	flex: none;
}
body.nk-inner .nk-mm__list > li > a.selected { color: var(--nk-navy); font-weight: 700; }
body.nk-inner .nk-mm__list li .dropdown { display: none; padding: 0 0 10px 12px; }
body.nk-inner .nk-mm__list li.open .dropdown { display: block; }
body.nk-inner .nk-mm__list li .dropdown ul { margin: 0; padding: 0; background: none; box-shadow: none; }
body.nk-inner .nk-mm__list li .dropdown li { border: 0; height: auto; }
body.nk-inner .nk-mm__list li .dropdown a { display: block; padding: 8px 4px; font-size: 17px; line-height: 1.3; color: var(--nk-text); }
.nk-mm__foot { margin-top: auto; padding-top: 28px; display: flex; flex-direction: column; gap: 16px; }
body.nk-inner .nk-mm__phone { color: var(--nk-navy); font-size: 24px; font-weight: 700; }
.nk-mm__soc { display: flex; gap: 10px; }
.nk-mm__soc a { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--nk-grad-sq); transition: transform .2s; }
.nk-mm__soc a:hover { transform: scale(1.06); }
.nk-mm__soc img { height: 20px; width: auto; display: block; }
body.nk-inner .nk-mm .nk-btn { display: flex; width: 100%; color: #fff; font-size: 17px; line-height: 1.2; font-weight: 700; cursor: pointer; }

/* ---------- 7. Подвал и cookie ---------- */
body.nk-inner footer.nk-footer {
	margin-top: 107px;
	padding: 56px 0 40px;
	background: #2c2c2c;
	border-radius: 50px 50px 0 0;
	color: #fff;
	text-align: center;
	font-size: 20px;
	line-height: 1.2;
}
.nk-footer__logo { display: inline-block; line-height: 0; }
.nk-footer__logo img { width: 190px; height: auto; display: block; }
/* Сетка (30.09.2026, по скрину владельца, «чуть меньше, чем был»): 3 колонки по ширине содержимого, по центру.
   Ряд 1 — ссылки, ряд 2 — соцсети · телефон и почта · город и год; subgrid выравнивает низ по тем же колонкам.
   Разделители — левая граница 2-й и 3-й колонок ссылок (посередине промежутка: отступы 64 px с обеих сторон). */
.nk-footer__grid {
	display: grid;
	grid-template-columns: repeat(3, auto);
	justify-content: center;
	row-gap: 56px;
	margin-top: 104px;
	text-align: left;
}
.nk-footer__menu, .nk-footer__bottom { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; }
.nk-footer__menu > *, .nk-footer__bottom > * { padding: 0 64px; }
.nk-footer__menu > :first-child, .nk-footer__bottom > :first-child { padding-left: 0; }
.nk-footer__menu > :last-child, .nk-footer__bottom > :last-child { padding-right: 0; }
.nk-footer__col { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; line-height: 26px; }
.nk-footer__col + .nk-footer__col { border-left: 1px solid rgba(255, 255, 255, .45); }
body.nk-inner .nk-footer__col a { color: #fff; transition: color .2s; }
body.nk-inner .nk-footer__col a:hover { color: var(--nk-cyan); }
.nk-footer__social { display: flex; align-items: center; gap: 24px; }
.nk-footer__social img { height: 24px; width: auto; display: block; transition: transform .2s; }
.nk-footer__social a:hover img { transform: scale(1.12); }
.nk-footer__info { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; font-size: 17px; line-height: 24px; color: var(--nk-grey); }
body.nk-inner .nk-footer__info a { color: var(--nk-grey); transition: color .2s; }
body.nk-inner .nk-footer__info a:hover { color: #fff; }
.nk-footer__legal { max-width: 720px; margin: 44px auto 0; font-size: 13px; line-height: 1.5; text-align: center; color: #a3a3a3; }
body.nk-inner .nk-footer__legal a { color: #cfcfcf; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .3); }
body.nk-inner .nk-footer__legal a:hover { color: #fff; }

.nk-cookie {
	position: fixed;
	left: 50%;
	bottom: 20px;
	z-index: 900;
	display: flex;
	align-items: center;
	gap: 20px;
	width: min(760px, calc(100% - 24px));
	padding: 16px 16px 16px 24px;
	background: #fff;
	border-radius: 24px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .14);
	color: var(--nk-text);
	font-size: 15px;
	line-height: 1.35;
	transform: translate(-50%, 150%);
	visibility: hidden;
	transition: transform .4s, visibility 0s .4s;
}
.nk-cookie.is-visible { transform: translate(-50%, 0); visibility: visible; transition: transform .4s; }
.nk-cookie p { margin: 0; }
body.nk-inner .nk-cookie a { color: var(--nk-blue); }
.nk-cookie__btn { flex: none; height: 44px; padding: 0 24px; border: 0; border-radius: 22px; background: var(--nk-grad); color: #fff; font: 700 15px 'Geologica', Arial, sans-serif; cursor: pointer; }

/* ---------- 8. Модалки SVModal и попап ---------- */
body.nk-inner .modal {
	inset: 0;
	width: auto;
	height: auto;
	padding: 16px;
	z-index: 9999;
}
body.nk-inner .modal-bg { background: rgba(28, 38, 66, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); cursor: pointer; }
body.nk-inner .modal .modal-container {
	width: 520px;
	max-width: 100%;
	max-height: calc(100vh - 32px);
	max-height: calc(100dvh - 32px);
	overflow: auto;
	padding: 44px 40px 36px;
	border-radius: 40px;
	background: #fff;
	color: var(--nk-text);
	font-size: 16px;
	overscroll-behavior: contain;
	transform: translateY(20px) scale(.98);
	transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
body.nk-inner .modal.open .modal-container { transform: none; }
/* фокус ставится на само окно (script.js, SVModal.show) — рамку не рисуем; visibility при открытии
   без перехода, иначе в ещё скрытое окно фокус не встаёт */
body.nk-inner .modal.open { transition: opacity .3s ease; }
body.nk-inner .modal .modal-container:focus { outline: none; }
/* Пока открыта модалка — страница под ней не прокручивается ни на телефоне, ни на компьютере (колесо над подложкой
   раньше уводило страницу). scrollbar-gutter: stable оставляет место полосы прокрутки — страница не сдвигается вбок
   там, где полоса занимает место (Windows); на тач-устройствах и в macOS полосы-места нет — сдвига нет и так */
html:has(body.nk-inner .modal.open), html:has(body.nk-inner .popup.nk-popup.open) { overflow: hidden; scrollbar-gutter: stable; }
body.nk-inner .modal .modal-container h2,
body.nk-inner .popup .popup-title h2 {
	margin: 0 0 6px;
	padding-right: 44px;
	font-size: 34px;
	line-height: 1.1;
	font-weight: 700;
	color: var(--nk-navy);
}
body.nk-inner .modal .modal-container .body_text { margin-top: 10px; font-size: 18px; color: var(--nk-text); }
.nk-modal-sub { margin: 8px 0 0; font-size: 17px; line-height: 1.3; color: var(--nk-grey); }
/* Крестик: button#close-block.close-block.modal-exit (разметку генерирует SVModal) */
body.nk-inner .modal .close-block,
body.nk-inner .popup .close-block {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 5;
	float: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--nk-bg);
	color: var(--nk-grey);
	font-size: 22px;
	cursor: pointer;
	transition: color .2s, background .2s;
}
body.nk-inner .modal .close-block:hover,
body.nk-inner .popup .close-block:hover { background: var(--nk-blue); color: #fff; }
body.nk-inner .modal .close-block span { position: absolute; left: 50%; top: 50%; width: 18px; height: 2px; margin: -1px 0 0 -9px; border-radius: 2px; background: currentColor; }
body.nk-inner .modal .close-block span:nth-child(1) { transform: rotate(45deg); }
body.nk-inner .modal .close-block span:nth-child(2) { transform: rotate(-45deg); }
body.nk-inner .modal .close-block span::before { content: none; display: none; }
/* Крестик модалки не уезжает при прокрутке длинного содержимого: он первый ребёнок .modal-container,
   sticky + float держит его в правом верхнем углу, отрицательные поля убирают его из потока */
body.nk-inner .modal .modal-container > .close-block {
	position: sticky;
	top: -26px;   /* sticky считается от content-box контейнера: -26 = 18 от края при padding-top 44 */
	right: -22px; /* 18 от края при padding-right 40 */
	float: right;
	margin: -26px -22px -44px 0;
	box-shadow: 0 0 0 4px rgba(255, 255, 255, .9);
}

/* Корзина-модалка «Ваш заказ» — шире, скругление как у остальных */
body.nk-inner #basket.modal .modal-container { width: 1100px; max-height: calc(100vh - 32px); border-radius: 40px; }
body.nk-inner #basket.modal .modal-container h2.form_title { margin-top: 28px; font-size: 24px; line-height: 1.2; white-space: normal; text-wrap: balance; }
/* старое #basket.modal form button[type=submit]{width:auto} сужало кнопку */
body.nk-inner #basket.modal .nk-mform__foot button[type=submit] { width: 320px; }
@media (max-width: 640px) { body.nk-inner #basket.modal .nk-mform__foot button[type=submit] { width: 100%; } }

/* Форма в модалке */
.nk-mform { margin-top: 10px; }
.nk-mform .nk-check { margin: 20px 0 22px; }
.nk-mform .nk-btn--wide { height: 72px; }
.nk-mform .nk-btn--wide .nk-btn__circle { width: 56px; height: 56px; }
.nk-mform__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.nk-mform__row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nk-mform--basket .nk-radios { margin-top: 20px; }
.nk-mform__foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 22px; }
.nk-mform__foot .nk-check { margin: 0; }
.nk-mform__foot .nk-btn--wide { width: 320px; flex: none; }
/* «Это заявка, а не договор» под формой корзины (п. 19 Правил продажи № 657) */
.nk-mform__note { margin: 16px 0 0; font-size: 14px; line-height: 1.4; font-weight: 300; color: var(--nk-grey); }
.nk-mform__note a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* Статичный попап .popup (открывается по #callback) */
body.nk-inner .popup.nk-popup { z-index: 9990; padding: 16px; background: rgba(28, 38, 66, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
body.nk-inner .popup.nk-popup.open { z-index: 10000; }
body.nk-inner .popup .popup-body {
	position: relative;
	width: 520px;
	max-width: 100%;
	max-height: calc(100vh - 32px);
	overflow: auto;
	padding: 44px 40px 36px;
	border-radius: 40px;
	background: #fff;
	color: var(--nk-text);
}
body.nk-inner .popup .popup-content { position: static; padding: 0; display: block; }
body.nk-inner .popup .popup-title { margin: 0; }
body.nk-inner .popup .popup-content .wrap-input { display: block; gap: 0; margin: 0; }
body.nk-inner .popup .popup-content .popup-btn { margin: 0; }

/* Сообщения форм */
body.nk-inner .alert {
	margin-top: 12px;
	padding: 10px 14px;
	border: 1.5px solid transparent;
	border-radius: 12px;
	font-size: 15px;
	line-height: 1.35;
}
body.nk-inner .alert-error { color: var(--nk-err); background: #fff6f5; border-color: var(--nk-err-line); }
body.nk-inner .alert-success { color: var(--nk-ok); background: #f1faf4; border-color: #9fd8b5; }

/* ---------- 9. Пагинация ---------- */
body.nk-inner .modern-page-navigation {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin: 40px 0 0;
	padding: 0;
	border: 0;
	font-size: 16px;
}
body.nk-inner .modern-page-navigation > a,
body.nk-inner .modern-page-navigation > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 44px;
	height: 44px;
	margin: 0;
	padding: 0 14px;
	border: 0;
	border-radius: 999px;
	background: #fff;
	box-shadow: var(--nk-shadow-tile);
	color: var(--nk-text);
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	text-decoration: none;
	transition: box-shadow .2s, transform .2s, color .2s;
}
body.nk-inner .modern-page-navigation > a:hover { color: var(--nk-navy); box-shadow: var(--nk-shadow-tile-h); transform: translateY(-2px); }
body.nk-inner .modern-page-navigation > .modern-page-current {
	background: var(--nk-grad-sq);
	color: #fff;
	font-weight: 700;
	box-shadow: 0 6px 14px rgba(75, 186, 249, .35);
}
body.nk-inner .modern-page-navigation > .modern-page-dots { background: none; box-shadow: none; color: var(--nk-grey); min-width: 28px; padding: 0 4px; }
body.nk-inner .modern-page-navigation > .modern-page-previous,
body.nk-inner .modern-page-navigation > .modern-page-next { padding: 0 20px; color: var(--nk-navy); font-weight: 700; }
body.nk-inner .modern-page-navigation .nk-i { font-size: 18px; color: var(--nk-blue); }
body.nk-inner .modern-page-navigation > a.modern-page-previous:hover .nk-i,
body.nk-inner .modern-page-navigation > a.modern-page-next:hover .nk-i { color: var(--nk-navy); }
body.nk-inner .modern-page-navigation .modern-page-title { display: none; }

/* ---------- 10. Общие инклуды ---------- */
/* Инлайн-форма заявки (/includes/inline_form/call-back.php): белая панель как «Получите бесплатную консультацию» */
.nk-lead { width: min(1440px, calc(100% - 24px)); margin: 60px auto; color: var(--nk-text); }
/* Раскладка как у «Получите бесплатную консультацию» главной: фото 383 слева во всю высоту,
   справа заголовок → подзаголовок → форма. .nk-lead__text — display:contents (h2, p, img становятся ячейками сетки). */
body.nk-inner .nk-lead .nk-lead__in {
	display: grid;
	grid-template-columns: 383px minmax(0, 1fr);
	grid-template-rows: auto auto 1fr;
	grid-template-areas: "img title" "img sub" "img form";
	gap: 0 62px;
	align-items: start;
	padding: 56px max(64px, calc((100% - 1200px) / 2)) 60px;
	border-radius: 55px;
	background: #fff;
	box-shadow: var(--nk-shadow-panel);
	justify-content: normal;
}
body.nk-inner .nk-lead .nk-lead__text { display: contents; }
body.nk-inner .nk-lead .nk-lead__text h2 { grid-area: title; margin: 0; font-size: 43px; line-height: 1.05; font-weight: 400; color: var(--nk-text); text-wrap: balance; }
body.nk-inner .nk-lead .nk-lead__text h2 b { color: var(--nk-navy); font-weight: 700; }
.nk-lead .nk-sub { grid-area: sub; }
.nk-lead__img { grid-area: img; align-self: center; display: block; width: 100%; height: auto; border-radius: 30px; }
body.nk-inner .nk-lead .nk-lead__form { grid-area: form; max-width: none; margin: 32px 0 0; }
.nk-lead__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.nk-lead__grid .nk-field:nth-child(-n+2) { margin-top: 0; }
.nk-lead__foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 22px; }
.nk-lead__foot .nk-check { margin: 0; max-width: 330px; }
.nk-lead__foot .nk-btn { flex: none; width: 300px; height: 72px; }
.nk-lead__foot .nk-btn .nk-btn__circle { width: 56px; height: 56px; }

/* Сквозной блок «Мы на связи» (/includes/contacts.php) */
.nk-soc-panel { width: min(1200px, calc(100% - 40px)); margin: 60px auto 0; color: var(--nk-text); }
.nk-soc-panel__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 32px; }
body.nk-inner .nk-soc-panel .nk-soc-tile { display: flex; align-items: center; gap: 16px; min-height: 84px; padding: 16px 20px; color: var(--nk-text); }
.nk-soc-tile__ic { flex: none; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--nk-bg); }
.nk-soc-tile__ic img { width: 30px; height: 30px; display: block; object-fit: contain; }
.nk-soc-tile__txt { flex: 1; min-width: 0; font-size: 19px; line-height: 23px; font-weight: 400; }
.nk-soc-tile__go { flex: none; font-size: 20px; color: var(--nk-blue); transition: transform .25s; }
.nk-soc-tile:hover .nk-soc-tile__go { transform: rotate(45deg); }

/* Услуги (/includes/services.php) */
.nk-srv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 32px; color: var(--nk-text); }
body.nk-inner .nk-srv__item { display: flex; flex-direction: column; min-height: 230px; padding: 22px 22px 22px 22px; }
.nk-srv__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 20px;
	background: var(--nk-grad-sq);
	color: #fff;
	font-size: 34px;
	font-weight: 700;
	letter-spacing: -.02em;
}
.nk-card--dark .nk-srv__num { background: rgba(255, 255, 255, .16); }
.nk-srv__title { margin: 18px 0 0; font-size: 22px; line-height: 27px; font-weight: 700; color: var(--nk-navy); }
.nk-card--dark .nk-srv__title { color: #fff; }
body.nk-inner .nk-srv__more { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 18px; font-size: 17px; font-weight: 700; color: var(--nk-blue); }
body.nk-inner .nk-card--dark .nk-srv__more { color: var(--nk-cyan); }
.nk-srv__more .nk-i { font-size: 18px; transition: transform .25s; }
.nk-srv__item:hover .nk-srv__more .nk-i { transform: rotate(45deg); }

/* Блок ссылок соцсетей/отзывов старой вёрстки (/contacts/): после исправления правила ≤1680 он снова виден —
   подписи не должны распирать страницу на телефоне */
body.nk-inner .social-wrap--links { max-width: min(640px, 100%); }
body.nk-inner .social-wrap--links .social-item .soc-ic { white-space: normal; height: auto; min-height: 40px; }
/* ≤1480 фон-иллюстрация .help-you-wrap (mujiki-bg.svg) сдвигается влево — ссылки в одну колонку, чтобы не лечь на неё */
@media (max-width: 1480px) { body.nk-inner .help-you-wrap .social-wrap--links { max-width: 340px; } body.nk-inner .help-you-wrap .social-wrap--links .social-item { width: 100%; } }
/* ≤900 иллюстрация уходит под ссылки (иначе ложится на текст) */
@media (max-width: 900px) {
	body.nk-inner .help-you-wrap { height: auto; background-size: 60% auto; background-position: 50% 100%; padding-top: 44px; padding-bottom: 54%; }
	body.nk-inner .help-you-wrap .help-you-content { min-height: 0; }
}
@media (max-width: 640px) {
	body.nk-inner .social-wrap--links .social-item { width: 100%; }
	body.nk-inner .help-you-wrap { background-size: 84% auto; padding-bottom: 74%; }
}

/* Совместимость старых тёмных блоков: старый шаблон красил весь текст в #fff (body и все a),
   новый каркас — #2d2d2d. Блоки на тёмном/синем фоне, которые полагались на белый по умолчанию,
   возвращаем к белому, пока их не переделают группы (content: /services/). */
body.nk-inner :is(.why-us, .services-delivery-item-polosa, .services-delivery-item-btn) { color: #fff; }

/* ---------- 11. Мелочи ---------- */
body.nk-inner .site-btn {
	border-radius: 999px;
	background: var(--nk-grad);
	color: #fff;
	font-weight: 700;
	transition: filter .2s, box-shadow .2s;
}
body.nk-inner .site-btn:hover { background: var(--nk-grad); color: #fff; filter: brightness(1.05); box-shadow: 0 8px 22px rgba(75, 186, 249, .35); }

body.nk-inner .scroll-to-top {
	width: 56px;
	height: 56px;
	border: 0;
	border-radius: 50%;
	background: var(--nk-grad-sq);
	color: #fff;
	box-shadow: 0 8px 20px rgba(75, 186, 249, .4);
	z-index: 890;
}
body.nk-inner .scroll-to-top:hover { background: var(--nk-grad-sq); filter: brightness(1.05); }

body.nk-inner .basket-tooltip {
	top: 90px;
	right: 16px;
	z-index: 1150;
	width: 340px;
	max-width: calc(100% - 32px);
	padding: 22px;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(20, 38, 100, .2);
	color: var(--nk-text);
}
body.nk-inner .basket-tooltip-close { top: 16px; right: 16px; width: 28px; height: 28px; border-radius: 50%; background: var(--nk-bg) url(/local/templates/nclimate/images/close-b.svg) no-repeat center / 10px; }
body.nk-inner .basket-tooltip-title { font-size: 18px; color: var(--nk-navy); padding-right: 34px; }
body.nk-inner .basket-tooltip-image { border-radius: 12px; background: var(--nk-bg); }
body.nk-inner .basket-tooltip-info .name { font-size: 14px; color: var(--nk-text); }
body.nk-inner .basket-tooltip-info .price { color: var(--nk-navy); }
body.nk-inner .basket-tooltip-footer .site-btn { height: 48px; }

/* ---------- 12. Адаптив ---------- */
@media (max-width: 1480px) {
	.nk-panel { width: calc(100% - 24px); }
}

@media (max-width: 1260px) {
	.nk-footer__menu > *, .nk-footer__bottom > * { padding: 0 44px; } /* подвал: колонки плотнее, чтобы влезали от 901 px */
	.nk-h2, body.nk-inner .nk-lead .nk-lead__text h2 { font-size: 36px; }
	.nk-sub, .nk-text { font-size: 19px; }
	.nk-card__title, .nk-srv__title { font-size: 19px; line-height: 23px; }
	.nk-hdr__in { column-gap: 22px; }
	.nk-nav__list { gap: 24px; }
	body.nk-inner .nk-nav__item > a { font-size: 16px; }
	.nk-hdr.is-stuck .nk-hdr__in { grid-template-columns: auto 1fr; grid-template-areas: "logo glass"; }
	body.nk-inner .nk-hdr.is-stuck .nk-hdr__phone { display: none; }
	.nk-hdr.is-stuck .nk-nav__list { gap: 20px; }
	body.nk-inner .nk-top__title { font-size: 42px; line-height: 50px; }
	body.nk-inner .nk-lead .nk-lead__in { padding: 44px 40px 48px; grid-template-columns: 280px minmax(0, 1fr); column-gap: 40px; }
	.nk-lead__foot { flex-direction: column; align-items: stretch; }
	.nk-lead__foot .nk-check { max-width: none; }
	.nk-lead__foot .nk-btn { width: 100%; }
	body.nk-inner .nk-lead .nk-lead__text h2 br { display: none; }
	body.nk-inner .nk-lead .nk-field input { font-size: 17px; }
}

@media (max-width: 1024px) {
	:root { --nk-hdr-h: 80px; --nk-hdr-stuck: 60px; }
	.nk-top { padding: calc(var(--nk-hdr-h) + 16px) 0 48px; }
	body.nk-inner main.nk-main { padding-top: 36px; }
	.nk-top--no-h1 { padding-bottom: 32px; }
	.nk-hdr__in {
		grid-template-columns: auto 1fr auto auto;
		grid-template-areas: "logo . icons burger";
		grid-template-rows: var(--nk-hdr-h);
		column-gap: 10px;
	}
	.nk-hdr__soc,
	body.nk-inner .nk-hdr__phone,
	body.nk-inner .nk-hdr__call,
	.nk-hdr .nk-nav { display: none; }
	.nk-hdr__glass,
	.nk-hdr.is-stuck .nk-hdr__glass { display: contents; }
	.nk-hdr__icons { grid-area: icons; }
	body.nk-inner .nk-hdr__burger { display: flex; }
	.nk-hdr.is-stuck { top: 8px; }
	.nk-hdr.is-stuck .nk-hdr__in {
		width: calc(100% - 16px);
		grid-template-columns: auto 1fr auto auto;
		grid-template-areas: "logo . icons burger";
		column-gap: 10px;
		padding: 0 8px 0 20px;
	}
	.nk-hdr.is-stuck .nk-hdr__logo img { width: 116px; }
	body.nk-inner .header-search.nk-search { top: calc(var(--nk-hdr-h) + 4px); }
	body.nk-inner.nk-hdr-stuck .header-search.nk-search { top: calc(8px + var(--nk-hdr-stuck) + 8px); }

	body.nk-inner .mobile-menu.nk-mm {
		display: block;
		position: fixed;
		inset: 0;
		top: 0;
		right: 0;
		width: auto;
		height: auto;
		z-index: 1200;
		overflow: hidden;
		opacity: 1;
		visibility: hidden;
		background: none;
		filter: none;
		pointer-events: none;
		transition: visibility 0s .35s;
	}
	body.nk-inner .mobile-menu.nk-mm.open { visibility: visible; pointer-events: auto; transition: visibility 0s; }
	.nk-mm.open .nk-mm__backdrop { opacity: 1; }
	.nk-mm.open .nk-mm__panel { transform: none; }

	.nk-srv { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nk-soc-panel__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	body.nk-inner .nk-top__title { font-size: 34px; line-height: 40px; }
	/* длинная последняя крошка (обычно повторяет H1) — в одну строку с многоточием */
	body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item.is-current { min-width: 0; max-width: 100%; }
	body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item.is-current span { display: block; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
	body.nk-inner .nk-lead .nk-lead__in { grid-template-columns: minmax(0, 1fr); grid-template-areas: "title" "sub" "form"; }
	.nk-lead__img { display: none; }
	body.nk-inner footer.nk-footer { font-size: 19px; }
	/* подвал: всё в один столбец по центру, без разделителей */
	.nk-footer__grid { grid-template-columns: minmax(0, 1fr); row-gap: 36px; margin-top: 48px; text-align: center; }
	.nk-footer__menu, .nk-footer__bottom { row-gap: 22px; }
	.nk-footer__menu > *, .nk-footer__bottom > * { padding: 0; }
	.nk-footer__col + .nk-footer__col { border-left: 0; }
	.nk-footer__col, .nk-footer__info { align-items: center; }
	.nk-footer__social { justify-content: center; }
	body.nk-inner #basket.modal .modal-container { padding: 40px 20px 26px; }
	body.nk-inner #basket.modal .modal-container > .close-block { top: -22px; right: -2px; margin: -22px -2px -44px 0; }
}

@media (max-width: 640px) {
	.nk-wrap { width: calc(100% - 32px); }
	.nk-panel { width: calc(100% - 16px); margin-top: 60px; border-radius: 32px; }
	.nk-panel__in { width: calc(100% - 32px); padding: 36px 0; }
	.nk-sec { margin-top: 60px; }
	.nk-h2, body.nk-inner .nk-lead .nk-lead__text h2 { font-size: 28px; line-height: 1.1; }
	.nk-h2 br, .nk-sub br, body.nk-inner .nk-lead .nk-lead__text h2 br { display: none; }
	.nk-sub, .nk-text { font-size: 16px; }
	.nk-btn--wide { height: 68px; font-size: 17px; }
	.nk-btn--wide .nk-btn__circle { width: 52px; height: 52px; }
	body.nk-inner .nk-field input, body.nk-inner .nk-field select { height: 52px; font-size: 17px; }
	body.nk-inner .nk-field textarea { font-size: 17px; }
	.nk-check { font-size: 13px; line-height: 16px; }
	.nk-check br { display: none; }
	.nk-arrow { width: 44px; height: 44px; font-size: 18px; }

	.nk-top { padding-bottom: 36px; border-radius: 0 0 32px 32px; background-position: center, center, 50% 100%; }
	body.nk-inner main.nk-main { padding-top: 28px; }
	.nk-top--no-h1 { padding-bottom: 24px; }
	.nk-hdr__in { width: calc(100% - 32px); column-gap: 6px; }
	.nk-hdr__logo img { width: 124px; }
	body.nk-inner .nk-hdr__icons ul { gap: 6px; }
	body.nk-inner .nk-ico, body.nk-inner .nk-hdr__burger { width: 40px; height: 40px; }
	.nk-ui-i { width: 20px; height: 20px; }
	.nk-hdr.is-stuck .nk-hdr__in { padding: 0 6px 0 16px; column-gap: 6px; }
	.nk-hdr.is-stuck .nk-hdr__logo img { width: 104px; }
	body.nk-inner .nk-crumbs .bx-breadcrumb { gap: 4px 10px; }
	body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item { gap: 10px; }
	body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item a,
	body.nk-inner .nk-crumbs .bx-breadcrumb .bx-breadcrumb-item span { font-size: 13px; }
	body.nk-inner .nk-top__title { margin-top: 10px; font-size: 28px; line-height: 34px; }
	body.nk-inner .nk-top__sub { font-size: 15px; }

	.nk-search__in { width: calc(100% - 16px); gap: 8px; padding: 10px; border-radius: 20px; }
	body.nk-inner .nk-search .nk-search__close { width: 40px; height: 40px; }
	body.nk-inner .nk-search .nk-search__form { height: 52px; padding: 0 5px 0 14px; }
	body.nk-inner .nk-search .nk-search__form input { font-size: 17px; height: 48px; }
	body.nk-inner .nk-search .nk-search__form button.nk-search__btn { height: 42px; padding: 0 18px; font-size: 15px; }

	body.nk-inner footer.nk-footer { margin-top: 70px; padding: 44px 0 36px; border-radius: 32px 32px 0 0; font-size: 18px; }
	.nk-footer__logo img { width: 160px; }
	.nk-footer__legal { margin-top: 32px; font-size: 12px; }
	.nk-cookie { flex-direction: column; align-items: stretch; gap: 12px; font-size: 13px; }

	body.nk-inner .modal .modal-container,
	body.nk-inner .popup .popup-body { padding: 36px 20px 26px; border-radius: 28px; }
	body.nk-inner .modal .modal-container h2,
	body.nk-inner .popup .popup-title h2,
	body.nk-inner #basket.modal .modal-container h2:not(.basket-item-info-name) { font-size: 24px; }
	body.nk-inner #basket.modal .modal-container h2.basket-item-info-name { font-size: 16px; }
	body.nk-inner #basket.modal .modal-container h2.form_title { font-size: 20px; }
	body.nk-inner .modal .modal-container > .close-block { top: -18px; right: -2px; margin: -18px -2px -44px 0; }
	.nk-mform__row, .nk-mform__row--3 { grid-template-columns: 1fr; }
	.nk-mform__foot { flex-direction: column; align-items: stretch; }
	.nk-mform__foot .nk-btn--wide { width: 100%; }

	/* пейджер в одну строку: кружки 36, дальние номера (класс .nk-pager__far из шаблона) скрыты — остаются
	   ←, первая, текущая ±1, последняя, → */
	body.nk-inner .modern-page-navigation { gap: 4px; }
	body.nk-inner .modern-page-navigation > a,
	body.nk-inner .modern-page-navigation > span { min-width: 36px; height: 36px; padding: 0 8px; font-size: 15px; }
	body.nk-inner .modern-page-navigation > .modern-page-previous,
	body.nk-inner .modern-page-navigation > .modern-page-next { padding: 0 9px; }
	body.nk-inner .modern-page-navigation > .modern-page-dots { min-width: 20px; padding: 0 2px; }
	body.nk-inner .modern-page-navigation > .nk-pager__far { display: none; }
	.nk-pager__txt { display: none; }

	/* «Наверх» на телефоне меньше и ближе к краю; поверх кнопок/ссылок не стоит — прячет script.js (initScrollToTop) */
	body.nk-inner .scroll-to-top { right: 12px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); width: 48px; height: 48px; }

	.nk-lead { margin-top: 40px; width: calc(100% - 16px); }
	.nk-soc-panel { width: calc(100% - 32px); }
	body.nk-inner .nk-lead .nk-lead__in { padding: 30px 18px 28px; border-radius: 32px; }
	body.nk-inner .nk-lead .nk-lead__form { margin-top: 22px; }
	.nk-lead__grid { grid-template-columns: 1fr; }
	.nk-lead__grid .nk-field:nth-child(2) { margin-top: 14px; }

	.nk-srv, .nk-soc-panel__grid { grid-template-columns: 1fr; gap: 12px; }
	body.nk-inner .nk-srv__item { min-height: 0; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 16px; }
	.nk-srv__num { width: 52px; height: 52px; font-size: 26px; border-radius: 16px; }
	.nk-srv__title { margin: 0; flex: 1; font-size: 17px; line-height: 21px; }
	body.nk-inner .nk-srv__more { width: 100%; margin: 0; padding: 0; font-size: 15px; }
	body.nk-inner .nk-soc-panel .nk-soc-tile { min-height: 68px; padding: 12px 16px; }
	.nk-soc-tile__txt { font-size: 16px; line-height: 20px; }
}

/* Временная кнопка «Оформить заказ» на /personal/cart/ (personal/cart/index.php, до переделки корзины группой commerce):
   открывает форму быстрого заказа — [data-modal=basket][data-form-only=1] → basket-view.php без второго sale.basket.basket. */
body.nk-inner .nk-cart-checkout { display: flex; justify-content: flex-end; margin-top: 24px; padding: 0 24px; }
@media (max-width: 640px) {
	body.nk-inner .nk-cart-checkout { padding: 0 16px; }
	body.nk-inner .nk-cart-checkout .nk-btn { width: 100%; }
}
/* Пустой /favorites/ тянется flex'ом (body flex-column, main flex:1 0 auto); старый JS-хак высоты («− 401») убран —
   страховка на случай, если класс .height вернётся в разметку */
body.nk-inner main.height { height: auto !important; }

/* ---------- Карта Яндекса: блок до клика (js/nk-maplock.js) ----------
   Пока карта не активна, её накрывает прозрачная кнопка с лёгким затемнением: колесо и палец листают страницу. */
.nk-maplock__cover {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	cursor: pointer;
	transition: background .25s, opacity .25s;
}
/* накладка не закрывает верхнюю и нижнюю полосы карты: там кнопка «Открыть в Яндекс Картах», логотип и условия Яндекса
   (условия сервиса запрещают их перекрывать), и саму карту не затемняет */
.nk-maplock__cover { inset: 48px 0 36px 0; }
.nk-maplock__cover:hover { background: rgba(24, 38, 76, .08); }
.nk-maplock__hint {
	padding: 12px 22px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 6px 18px rgba(0, 0, 0, .14);
	color: #36529d;
	font: 500 16px/1.2 'Geologica', Arial, sans-serif;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .25s, transform .25s;
	pointer-events: none;
}
.nk-maplock__cover:hover .nk-maplock__hint, .nk-maplock__cover:focus-visible .nk-maplock__hint, .nk-maplock.is-wait .nk-maplock__hint { opacity: 1; transform: none; }
@media (hover: none) { .nk-maplock__hint { opacity: 1; transform: none; font-size: 14px; padding: 10px 16px; } }
.nk-maplock.is-active .nk-maplock__cover { opacity: 0; pointer-events: none; }
.nk-maplock.is-wait .nk-maplock__cover { cursor: progress; } /* клик до загрузки iframe — ждём load */

/* ---------- Карта Яндекса по согласию (include/nk_map.php, js/nk-maplock.js; 06.10.2026) ----------
   До согласия на cookie или нажатия «Показать карту» в блоке — адрес шоурума и кнопка на светлом фоне в точку;
   iframe появляется внутри .nk-map. Размеры блока задаёт контейнер страницы (как раньше для iframe). */
.nk-map {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	min-height: 280px;
	overflow: hidden;
	border-radius: inherit;
	background: #e6e8ec radial-gradient(rgba(54, 82, 157, .16) 1.2px, transparent 1.4px) 0 0 / 22px 22px;
}
.nk-map iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; }
.nk-map__ph {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 24px;
	text-align: center;
}
.nk-map.is-loaded .nk-map__ph { display: none; }
/* 13.10.2026: виджеты отзывов открыты всегда (решение владельца); подпись под виджетом — ссылка на площадку слева,
   справа раскрывающиеся «Условия» (details/summary): что получает площадка при показе виджета. Разметка — nk_reviews_widget_caption(). */
.nk-map__ph--auto { gap: 0; }
.nk-map__ph--auto .nk-map__addr { font-weight: 400; font-size: 15px; color: #8f96a3; }
.nk-wcap { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 14px 10px; font-size: 12px; line-height: 16px; color: #8f96a3; }
.nk-wcap__link { min-width: 0; color: inherit; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nk-wcap__link:hover { color: var(--nk-navy, #36529d); text-decoration: underline; }
.nk-wterms { position: relative; flex: none; }
.nk-wterms__btn { list-style: none; cursor: pointer; color: #8f96a3; text-decoration: underline dotted; padding: 6px 0; }
.nk-wterms__btn::-webkit-details-marker { display: none; }
.nk-wterms__btn:hover, .nk-wterms[open] .nk-wterms__btn { color: var(--nk-navy, #36529d); }
.nk-wterms__btn:focus-visible { outline: 2px solid var(--nk-blue, #4bbaf9); outline-offset: 2px; border-radius: 4px; }
.nk-wterms__box { position: absolute; right: 0; bottom: calc(100% + 6px); z-index: 5; width: min(360px, 84vw); padding: 12px 14px; background: #fff; border-radius: 14px; box-shadow: 0 8px 30px rgba(20, 30, 60, .18); color: #2d2d2d; font-size: 13px; line-height: 1.45; text-align: left; }
.nk-wterms__box a { color: var(--nk-navy, #36529d); text-decoration: underline; }
.nk-map__pin { width: 46px; height: 46px; color: var(--nk-navy, #36529d); }
.nk-map__addr { margin: 0; max-width: 440px; color: #2d2d2d; font: 500 17px/1.35 'Geologica', 'Geologica Fallback', Arial, sans-serif; }
.nk-map__btn {
	margin-top: 2px;
	padding: 13px 28px;
	border: 0;
	border-radius: 999px;
	background: var(--nk-navy, #36529d);
	color: #fff;
	font: 500 16px/1.2 'Geologica', 'Geologica Fallback', Arial, sans-serif;
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(54, 82, 157, .28);
	transition: background .2s, transform .2s;
}
.nk-map__btn:hover { background: #2c4484; transform: translateY(-1px); }
.nk-map.is-loading .nk-map__btn { opacity: .6; cursor: progress; }
.nk-map__note { margin: 0; max-width: 460px; color: #767676; font-size: 13px; line-height: 1.45; }
.nk-map__note a { color: var(--nk-navy, #36529d); text-decoration: underline; }
@media (max-width: 640px) {
	.nk-map__ph { gap: 10px; padding: 18px; }
	.nk-map__pin { width: 36px; height: 36px; }
	.nk-map__addr { font-size: 15px; }
	.nk-map__btn { padding: 11px 22px; font-size: 15px; }
	.nk-map__note { font-size: 12px; }
}
/* Карта-картинка (12.10.2026, по замечанию владельца; то же в nclimate_home/template_styles.css): до нажатия — собственная
   схема района с меткой шоурума (images/map-optikov-1k3.webp, собрана из данных OpenStreetMap — подпись © обязательна),
   вся картинка — кнопка «Показать карту»; внизу полоса с адресом и ссылкой «Условия» вне кнопки. К серверам Яндекса
   до нажатия обращений нет. */
.nk-map--pic .nk-map__ph { display: block; padding: 0; }
.nk-map--pic .nk-map__btn { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: #e6e8ec; box-shadow: none; overflow: hidden; transform: none; }
.nk-map--pic .nk-map__btn:hover { background: #e6e8ec; transform: none; }
.nk-map--pic .nk-map__btn:focus-visible { outline: 3px solid var(--nk-blue, #4bbaf9); outline-offset: -3px; }
.nk-map--pic .nk-map__pic { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.85); transition: filter .25s; }
.nk-map--pic .nk-map__btn:hover .nk-map__pic { filter: saturate(1); }
.nk-map--pic .nk-map__mark { position: absolute; left: 50%; top: 50%; width: 42px; height: 52px; transform: translate(-50%, -100%); color: #e0433c; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .35)); }
.nk-map--pic .nk-map__mark svg { display: block; width: 100%; height: 100%; }
.nk-map--pic .nk-map__cta { position: absolute; left: 50%; top: 50%; transform: translate(-50%, 14px); padding: 12px 24px; border-radius: 999px; background: var(--nk-navy, #36529d); color: #fff; font: 500 16px/1.2 'Geologica', 'Geologica Fallback', Arial, sans-serif; white-space: nowrap; box-shadow: 0 8px 20px rgba(54, 82, 157, .28); transition: background .2s, transform .2s; }
.nk-map--pic .nk-map__btn:hover .nk-map__cta { background: #2c4484; transform: translate(-50%, 13px); }
.nk-map__btn:focus-visible { outline: 3px solid var(--nk-blue, #4bbaf9); outline-offset: 2px; } /* внутренние страницы сбрасывают outline у button */
/* пока после нажатия грузится iframe, поверх картинки подсказка «Карта загружается…» (nk-maplock.js) — метку и пилюлю убираем */
.nk-map--pic.is-loading .nk-map__btn { opacity: 1; cursor: progress; }
.nk-map--pic.is-loading .nk-map__cta, .nk-map--pic.is-loading .nk-map__mark { opacity: 0; }
.nk-map--pic .nk-map__foot { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0; padding: 10px 16px; background: rgba(255, 255, 255, .93); color: #2d2d2d; font-size: 13px; line-height: 1.3; text-align: left; }
.nk-map--pic .nk-map__addr { margin: 0; max-width: none; min-width: 0; font-size: 15px; }
/* подпись источника данных карты (ODbL) — в углу картинки, видна на любом экране; вне кнопки */
.nk-map--pic .nk-map__osm { position: absolute; top: 8px; right: 8px; z-index: 2; padding: 3px 7px; border-radius: 6px; background: rgba(255, 255, 255, .88); color: #555; font-size: 11px; line-height: 1.2; text-decoration: none; }
.nk-map--pic .nk-map__osm:hover { color: #222; text-decoration: underline; }
.nk-map--pic .nk-map__terms { flex: none; padding: 6px 14px; border: 1px solid rgba(54, 82, 157, .35); border-radius: 999px; color: var(--nk-navy, #36529d); font-size: 13px; line-height: 1.2; text-decoration: none; transition: background .2s, color .2s; }
.nk-map--pic .nk-map__terms:hover { background: var(--nk-navy, #36529d); color: #fff; }
@media (max-width: 640px) {
	.nk-map--pic .nk-map__pic { object-fit: none; } /* на телефоне — середина картинки в натуральную величину: улицы читаются */
	.nk-map--pic .nk-map__mark { width: 34px; height: 42px; }
	.nk-map--pic .nk-map__cta { padding: 10px 18px; font-size: 14px; }
	.nk-map--pic .nk-map__foot { padding: 8px 12px; }
	.nk-map--pic .nk-map__addr { font-size: 13px; }
	.nk-map--pic .nk-map__osm { top: 6px; right: 6px; font-size: 10px; }
	.nk-map--pic .nk-map__terms { padding: 5px 11px; font-size: 12px; }
}

/* Шапка: 7 пунктов меню (30.09.2026 «Выполненные объекты» + «Полезные статьи») — на 1025–1180 плотнее, иначе меню
   упиралось в значки справа (зазор 6 px на 1100) */
@media (min-width: 1025px) and (max-width: 1180px) {
	.nk-nav__list, .nk-hdr.is-stuck .nk-nav__list { gap: 18px; }
	body.nk-inner .nk-nav__item > a, body.nk-inner .nk-hdr.is-stuck .nk-nav__item > a { font-size: 15px; }
}
/* Липкая шапка на 1025–1210 px (планшеты в альбомной ориентации, небольшие ноутбуки): меню и значки занимали всю
   «таблетку», логотип сжимался до 0–60 px. Здесь она плотнее, логотип остаётся не уже 88 px (06.10.2026). */
@media (min-width: 1025px) and (max-width: 1210px) {
	.nk-hdr.is-stuck .nk-hdr__in { padding: 0 10px 0 18px; column-gap: 14px; }
	.nk-hdr.is-stuck .nk-hdr__glass { gap: 14px; }
	.nk-hdr.is-stuck .nk-nav__list { gap: 13px; }
	body.nk-inner .nk-hdr.is-stuck .nk-nav__item > a { font-size: 14px; }
	.nk-hdr.is-stuck .nk-hdr__logo { min-width: 88px; }
	.nk-hdr.is-stuck .nk-hdr__logo img { width: 100px; }
}

/* ---------- Увеличение на окнах шире 1920 (html.nk-zoom — include/nk_zoom.php) ----------
   Внутри CSS zoom высоты в vh/dvh тоже увеличиваются (100vh при z = 1,5 — полторы высоты окна): делим на --nk-z */
html.nk-zoom body.nk-inner .modal .modal-container,
html.nk-zoom body.nk-inner .popup .popup-body,
html.nk-zoom body.nk-inner #basket.modal .modal-container { max-height: calc(100vh / var(--nk-z) - 32px); }
html.nk-zoom body.nk-inner .nk-search .search-suggest-dropdown { max-height: min(calc(60vh / var(--nk-z)), 460px); }
html.nk-zoom body.nk-inner .nk-legal__toc { max-height: calc(100vh / var(--nk-z) - 116px); }
html.nk-zoom body.nk-inner .nk-listing .catalog-inner-left > .bx-filter #scrollFilterCatalog { max-height: max(240px, calc(100vh / var(--nk-z) - 262px)) !important; }

/* ---------- Юридические блоки (аудит 01.10.2026, задача Л2) ---------- */
/* Низ подвала: реквизиты продавца и ссылки на документы (разметка — include/nk_legal_blocks.php) */
.nk-footer__legal { max-width: 1000px; }
.nk-footer__legal p { margin: 0; }
.nk-footer__req { color: #cfcfcf; }
.nk-footer__place { margin-top: 4px !important; }
.nk-footer__docs--nav { margin-top: 12px !important; font-size: 14px; }
.nk-footer__docs { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin-top: 10px !important; }
.nk-footer__cookie { margin: 0; padding: 0; border: 0; background: none; font: inherit; color: #cfcfcf; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .3); cursor: pointer; }
.nk-footer__cookie:hover { color: #fff; }
/* Плашка cookie: короткий текст и одна кнопка «Принять» (09.10.2026); в режиме настроек — «Отключить аналитику» и
   «Закрыть» (поведение — js/nk-consent.js). Ширина — по тексту, не шире 800 px (текст режима настроек — в одну строку). */
.nk-cookie { width: max-content; max-width: min(800px, calc(100% - 24px)); font-size: 15px; }
.nk-cookie p { margin: 0; }
.nk-cookie__text { flex: 1 1 auto; min-width: 0; }
.nk-cookie__text[hidden], .nk-cookie__btn[hidden] { display: none; }
.nk-cookie__btns { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; flex: none; }
.nk-cookie__btn { border: 0; white-space: nowrap; font-family: inherit; font-size: 15px; cursor: pointer; text-align: center; }
.nk-cookie__btn--ghost { background: transparent; color: #36529d; box-shadow: inset 0 0 0 1.5px #cfe3f3; }
.nk-cookie__btn--ghost:hover { box-shadow: inset 0 0 0 1.5px #4bbaf9; }
/* общий сброс старого шаблона (button { outline: none }) убирает рамку фокуса — возвращаем её кнопкам плашки и «Настройкам cookie» */
.nk-cookie__btn:focus-visible, .nk-footer__cookie:focus-visible { outline: 3px solid rgba(75, 186, 249, .6); outline-offset: 3px; }
/* Плашку с одной кнопкой нельзя убрать без «Принять», а закреплена она над самым низом экрана. Пока она видна, подвал
   длиннее на её высоту: последние строки подвала (ссылки на документы, «Настройки cookie») прокручиваются выше плашки.
   Признак и высоту ставит js/nk-consent.js (fit). */
html[data-nk-cookie-open] body.nk-inner footer.nk-footer { padding-bottom: calc(var(--nk-cookie-h, 96px) + 44px); }
/* Вторая галочка в форме (согласие на рекламу, пользовательское соглашение) — ближе к первой */
.nk-check + .nk-check { margin-top: 12px; }
@media (max-width: 1000px) {
	/* на узком экране плашка доходит до правого края — кнопка «Наверх» встаёт над ней, а не прячется */
	html[data-nk-cookie-open] body.nk-inner .scroll-to-top { bottom: calc(var(--nk-cookie-h, 96px) + 32px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 760px) {
	/* на телефоне текст и кнопка «Принять» остаются в одну строку — плашка занимает меньше экрана; в режиме настроек
	   две кнопки рядом с текстом не помещаются и переходят под него */
	.nk-cookie { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; padding: 12px 12px 12px 16px; border-radius: 20px; font-size: 13px; }
	.nk-cookie__text { flex: 1 1 150px; }
	.nk-cookie__btns { flex: 0 1 auto; max-width: 100%; margin-left: auto; }
	.nk-cookie__btn { height: 40px; padding: 0 18px; }
	.nk-footer__docs { gap: 8px 14px; }
}

/* Ловушка для программ-сборщиков (nk_trap_link() в include/nk_legal_blocks.php): пустая ссылка вне экрана */
.nk-trap { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
