/* reset.css (инлайн, был @import) */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td
{margin:0;padding:0;border:0;outline:0;font-size:100%;background:transparent;}

ol, ul {list-style:none;}
blockquote, q {quotes:none;}
blockquote:before, blockquote:after, q:before, q:after {content: '';content:none;}
ins {text-decoration:none;}
del {text-decoration:line-through;}
table {border-collapse:collapse;border-spacing:0;vertical-align:top;}
strong {font-weight:bold;}
input {cursor:pointer;}
select {cursor:pointer;border:1px solid #E8E8E8;font-size:11px;}
/* ==========================================================================
   EGGER-M — тема каталога напольных покрытий
   Mobile-first. Вся разметка Simpla/Smarty сохранена, меняется только подача.
   ========================================================================== */

:root {
	--red: #DA1737;			/* фирменный красный — из логотипа ЭГГЕР (плашка) */
	--red-dark: #B0122C;
	--ink: #16181a;			/* графит, основной текст */
	--ink-2: #5c6166;		/* второстепенный текст */
	--ink-3: #656a6f;		/* подписи, мета — контраст ≥ 4.5:1 на белом и на --surface */
	--paper: #ffffff;
	--surface: #f5f5f3;		/* тёплый светлый фон секций */
	--surface-2: #ebebe7;
	--line: #e2e2dd;
	--line-2: #cfcfc8;
	--dark: #1a1c1e;		/* подвал, тёмные плашки */

	--shell: 1320px;
	--gap: 16px;
	--radius: 4px;
	--radius-lg: 8px;

	--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--shadow: 0 1px 2px rgba(22, 24, 26, .06), 0 8px 24px rgba(22, 24, 26, .06);
	--shadow-lg: 0 2px 4px rgba(22, 24, 26, .07), 0 18px 44px rgba(22, 24, 26, .12);
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font: 400 16px/1.55 var(--font);
	font-feature-settings: "kern" 1;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; border: 0; }
a { color: var(--ink); text-decoration: none; }
a:hover { color: var(--red); }

h1, h2, h3, h4 {
	margin: 0;
	font-weight: 650;
	line-height: 1.15;
	letter-spacing: -.015em;
}

:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }

/* Общая оболочка ---------------------------------------------------------- */

.shell,
#wrapper,
#footer {
	width: 100%;
	max-width: var(--shell);
	margin: 0 auto;
	padding: 0 var(--gap);
}

@media (min-width: 700px)  { :root { --gap: 24px; } }
@media (min-width: 1100px) { :root { --gap: 32px; } }

/* Утилиты, оставшиеся от старой темы -------------------------------------- */

.clear, .clear_dot { clear: both; }
.right { float: right; }
.color { color: var(--red); }
.hover_mouse { cursor: pointer; }

.eyebrow {
	display: block;
	margin-bottom: 8px;
	color: var(--red);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

/* ==========================================================================
   ШАПКА
   ========================================================================== */

#top_bg { background: var(--paper); }

/* тонкая верхняя полоса */
.topbar {
	background: var(--dark);
	color: rgba(255, 255, 255, .7);
	font-size: 13px;
}
.topbar__in {
	max-width: var(--shell);
	margin: 0 auto;
	padding: 8px var(--gap);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.topbar__geo { display: flex; align-items: center; gap: 8px; min-width: 0; }
.topbar__geo b { color: #fff; font-weight: 600; }
.topbar__geo span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar a { color: rgba(255, 255, 255, .78); }
.topbar a:hover { color: #fff; }
#user_box_top { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
#user_box_top .username { color: #fff; font-weight: 600; }
#user_box_top .sep { color: rgba(255, 255, 255, .3); }
.topbar__note { display: none; }

@media (min-width: 900px) { .topbar__note { display: block; } }

/* основной ряд шапки */
#header {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 12px;
	padding: 14px 0;
}

.burger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-left: -10px;
	border: 0;
	background: none;
	color: var(--ink);
	cursor: pointer;
}
.burger svg { display: block; }

#header > .logo {
	display: block;
	width: 116px;
	height: 40px;   /* пропорция логотипа 218:75 */
	background: url(../images/images_theme/logo.svg) no-repeat left center;
	background-size: contain;
	text-indent: -9999px;
	overflow: hidden;
}

.header__contact { display: none; }
.header__phone {
	display: block;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -.01em;
	white-space: nowrap;
}
.header__phone:hover { color: var(--red); }
.header__hours { color: var(--ink-3); font-size: 12px; }
.header__label {
	display: block;
	color: var(--red);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* поиск */
#search {
	position: relative;
	grid-column: 1 / -1;
	grid-row: 2;
	display: flex;
	margin-top: 4px;
}
.input_search {
	flex: 1 1 auto;
	min-width: 0;
	height: 46px;
	padding: 0 14px;
	border: 1px solid var(--line-2);
	border-right: 0;
	border-radius: var(--radius) 0 0 var(--radius);
	background: var(--paper);
	color: var(--ink);
	font: inherit;
	font-size: 15px;
}
.input_search::placeholder { color: var(--ink-3); }
.input_search:focus { outline: 0; border-color: var(--ink); }
.button_search {
	flex: 0 0 auto;
	width: 60px;
	height: 46px;
	border: 0;
	border-radius: 0 var(--radius) var(--radius) 0;
	background: var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4.2-4.2'/%3E%3C/svg%3E") center no-repeat;
	cursor: pointer;
	transition: background-color .15s;
}
.button_search:hover { background-color: var(--red-dark); }

/* корзина в шапке */
#cart_informer {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 14px 0 12px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius);
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}
#cart_informer::before {
	content: "";
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2316181a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2l2.4 11.2a1.6 1.6 0 001.6 1.3h8.6a1.6 1.6 0 001.6-1.2L21 8H6'/%3E%3Ccircle cx='10' cy='20' r='1.3'/%3E%3Ccircle cx='18' cy='20' r='1.3'/%3E%3C/svg%3E") center/contain no-repeat;
}
#cart_informer a { font-weight: 700; }
.cart-label { display: none; }

@media (min-width: 700px) {
	#cart_informer { height: 46px; }
	.cart-label { display: inline; }
}

@media (min-width: 1000px) {
	#header {
		grid-template-columns: auto minmax(240px, 1fr) auto auto;
		gap: 24px;
		padding: 20px 0;
	}
	.burger { display: none; }
	#header > .logo { width: 165px; height: 57px; }
	#search { grid-column: 2; grid-row: 1; margin-top: 0; }
	.header__contact { display: block; text-align: right; }
}

/* валюта */
#currencies { display: none; }
#currencies select {
	height: 36px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius);
	background: var(--paper);
	font: inherit;
	font-size: 14px;
}
@media (min-width: 1200px) { #currencies { display: block; } }

/* ==========================================================================
   ГЛАВНОЕ МЕНЮ
   ========================================================================== */

.mainnav { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.mainnav__in {
	max-width: var(--shell);
	margin: 0 auto;
	padding: 0 var(--gap);
	display: flex;
	align-items: stretch;
	gap: 4px;
}

#section_menu {
	display: flex;
	flex: 1 1 auto;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
#section_menu::-webkit-scrollbar { display: none; }
#section_menu li { flex: 0 0 auto; }
#section_menu a {
	display: flex;
	align-items: center;
	height: 50px;
	padding: 0 14px;
	border-bottom: 2px solid transparent;
	color: var(--ink);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .05em;
	text-transform: uppercase;
	white-space: nowrap;
}
#section_menu a:hover { color: var(--red); }
#section_menu li.selected a { border-bottom-color: var(--red); color: var(--red); }

.nav-catalog {
	display: none;
	align-items: center;
	gap: 8px;
	margin: 7px 0 7px 12px;
	padding: 0 20px;
	border-radius: var(--radius);
	background: var(--red);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.nav-catalog:hover { background: var(--red-dark); color: #fff; }
@media (min-width: 1000px) { .nav-catalog { display: inline-flex; } }

/* ==========================================================================
   МАКЕТ КОНТЕНТА
   ========================================================================== */

#content-container {
	max-width: var(--shell);
	margin: 0 auto;
	padding: 24px var(--gap) 56px;
}

#content_right { min-width: 0; }
#content_left { min-width: 0; }

@media (min-width: 1100px) {
	#content-container {
		display: grid;
		grid-template-columns: 264px minmax(0, 1fr);
		gap: 40px;
		align-items: start;
		padding-top: 32px;
	}
	#content_left  { grid-column: 1; grid-row: 1; position: sticky; top: 16px; }
	#content_right { grid-column: 2; grid-row: 1; }
	/* главная — во всю ширину, сайдбар уезжает вниз */
	.home #content-container { display: block; }
	.home #content_left { position: static; margin-top: 48px; }
}

/* ==========================================================================
   САЙДБАР
   ========================================================================== */

.side-card {
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}
.side-card > h2 {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ink-3);
}

/* дерево категорий */
#nav-container { margin-bottom: 24px; }
#nav { margin: 0; padding: 0; list-style: none; }
#nav li { border-bottom: 1px solid var(--line); }
#nav li:first-child { border-top: 1px solid var(--line); }
#nav > li > a {
	display: block;
	padding: 13px 0;
	font-size: 15px;
	font-weight: 600;
}
#nav li.active > a { color: var(--red); }
#nav ul { margin: 0 0 10px; padding: 0 0 0 14px; list-style: none; border-left: 2px solid var(--line); }
#nav ul li { border: 0; }
#nav ul a { display: block; padding: 6px 0; font-size: 14px; font-weight: 400; color: var(--ink-2); }
#nav ul a:hover { color: var(--red); }

/* блок с телефоном */
#info_block {
	margin: 0 0 20px;
	padding: 20px;
	border-radius: var(--radius-lg);
	background: var(--dark);
	color: rgba(255, 255, 255, .72);
	list-style: none;
	font-size: 14px;
}
#info_block h2 {
	margin: 0 0 10px;
	color: #fff;
	font-size: 18px;
}
#info_block p { margin: 0 0 10px; }
#info_block .telnumber {
	margin: 14px 0 0;
	color: #fff;
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -.01em;
}
#info_block .telnumber a { color: #fff; }

/* новости в сайдбаре */
#all_blog li { padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
#all_blog li:first-child { border-top: 1px solid var(--line); }
#all_blog .data { margin: 0 0 2px; color: var(--ink-3); font-size: 12px; }
#all_blog a { color: var(--ink); }

/* новинки и просмотренное */
#last_products li {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
	font-size: 14px;
}
#last_products .image img { width: 48px; height: 48px; object-fit: cover; border-radius: var(--radius); }
#last_products .price { color: var(--red); font-weight: 700; }

#browsed_products { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; padding: 0; list-style: none; }
#browsed_products h2 { width: 100%; }
#browsed_products img { width: 40px; height: 40px; object-fit: cover; border-radius: var(--radius); }

/* бренды */
#all_brands img { max-width: 120px; }

/* ==========================================================================
   ЗАГОЛОВКИ СТРАНИЦ И ХЛЕБНЫЕ КРОШКИ
   ========================================================================== */

#page_title { margin: 0 0 24px; }
#page_title > p {
	margin: 0 0 10px;
	color: var(--ink-3);
	font-size: 13px;
	line-height: 1.5;
}
#page_title > p a { color: var(--ink-3); }
#page_title > p a:hover { color: var(--red); }
#page_title h1 {
	font-size: clamp(26px, 5vw, 40px);
	line-height: 1.1;
}
#page_title h2 { font-size: 22px; }

/* текстовые блоки CMS */
#category_description { margin: 0 0 32px; color: var(--ink-2); }
#category_description p { margin: 0 0 14px; }
#category_description h2 { margin: 28px 0 12px; color: var(--ink); font-size: 22px; }
#category_description h3 { margin: 22px 0 10px; color: var(--ink); font-size: 18px; }
#category_description ul,
#category_description ol { margin: 0 0 16px; padding-left: 22px; }
#category_description li { margin-bottom: 6px; }
#category_description a { color: var(--red); text-decoration: underline; text-underline-offset: 2px; }
#category_description img { border-radius: var(--radius); }
#category_description table { width: 100%; border-collapse: collapse; margin-bottom: 16px; }
#category_description td,
#category_description th { padding: 10px; border: 1px solid var(--line); text-align: left; }

/* ==========================================================================
   СЕТКА ТОВАРОВ И КАРТОЧКА
   ========================================================================== */

.tiny_products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}

@media (min-width: 620px)  { .tiny_products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 1100px) { .tiny_products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 1300px) { .tiny_products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* на главной сайдбара нет — можно плотнее */
.home .tiny_products.main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 620px)  { .home .tiny_products.main { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .home .tiny_products.main { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.tiny_products > .product {
	position: relative;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--paper);
	overflow: hidden;
	transition: border-color .15s, box-shadow .15s, transform .15s;
}
.tiny_products > .product:hover {
	border-color: var(--line-2);
	box-shadow: var(--shadow);
	transform: translateY(-2px);
}

.tiny_products .image { display: block; background: var(--surface); }
.tiny_products .image a { display: block; }
.tiny_products .image img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.tiny_products .product_info {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 12px;
	gap: 8px;
}
.tiny_products .product_info h3 { font-size: 14px; font-weight: 600; line-height: 1.35; letter-spacing: 0; }
.tiny_products .annotation { display: none; }

/* цена */
.tiny_products .price {
	margin-top: auto;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px;
	font-variant-numeric: tabular-nums;
}
.tiny_products .price span { font-size: 20px; font-weight: 700; letter-spacing: -.02em; }
.tiny_products .price i { font-style: normal; font-size: 14px; color: var(--ink-2); }
.tiny_products .price .compare_price {
	float: none;
	order: 3;
	color: var(--ink-3);
	font-size: 13px;
	text-decoration: line-through;
}
.tiny_products .price .compare_price:empty { display: none; }
.tiny_products .price small { color: var(--ink-2); font-size: 14px; float: none; }
.tiny_products .price small br { display: none; }

/* форма покупки в карточке */
.tiny_products form.cart { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: auto; }  /* форма с ценой и кнопкой прижата к низу — кнопки в ряду на одной линии */
.tiny_products form.cart .price { flex: 1 1 100%; }
.tiny_products select[name=variant] {
	flex: 1 1 100%;
	order: 2;
	height: 38px;
	max-width: 100%;
	padding: 0 8px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius);
	background: var(--paper);
	font: inherit;
	font-size: 13px;
	color: var(--ink);
}

/* кнопки карточки */
.but_add {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	border-radius: var(--radius);
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s;
}
.tiny_products .but_add.to_cart {
	order: 3;
	flex: 1 1 auto;
	border: 0;
	background: var(--red);
	color: #fff;
}
.tiny_products .but_add.to_cart:hover { background: var(--red-dark); }
.tiny_products .but_add.more {
	order: 4;
	flex: 0 0 auto;
	float: none;
	width: 40px;
	padding: 0;
	border: 1px solid var(--line-2);
	background: var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2316181a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M9 7h8v8'/%3E%3C/svg%3E") center no-repeat;
	color: transparent;
}
.tiny_products .but_add.more:hover { border-color: var(--ink); }

/* значки на карточке */
.label {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	width: auto;
	height: auto;
	padding: 4px 8px;
	border-radius: 3px;
	background: var(--ink);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.label_new::after      { content: "Новинка"; }
.label_featured::after { content: "Хит"; }
.label_sale            { background: var(--red); }
.label_sale::after     { content: "Скидка"; }

/* ==========================================================================
   ФИЛЬТРЫ КАТАЛОГА
   ========================================================================== */

#features { margin: 0 0 24px; }
#features ul { margin: 0; padding: 0; list-style: none; }
#features li {
	display: grid;
	grid-template-columns: 1fr;
	gap: 4px;
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
}
#features li:first-child { border-top: 1px solid var(--line); }
#features li.even { background: none; }
#features .name {
	margin: 0;
	color: var(--ink-3);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
#features .values { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
#features .values a {
	display: inline-flex;
	align-items: center;
	height: 32px;
	padding: 0 12px;
	border: 1px solid var(--line-2);
	border-radius: 100px;
	color: var(--ink-2);
	font-size: 13px;
	line-height: 1;
	transition: border-color .12s, color .12s, background-color .12s;
}
#features .values a:hover { border-color: var(--ink); color: var(--ink); }
#features .values a.selected {
	border-color: var(--red);
	background: var(--red);
	color: #fff;
}

@media (min-width: 800px) {
	#features li { grid-template-columns: 180px minmax(0, 1fr); gap: 16px; align-items: baseline; }
	#features .name { padding-top: 6px; }
}

/* характеристики товара — тот же #features, но без ссылок */
.product.page #features .values { display: block; color: var(--ink); font-size: 15px; }

/* пиктограммы ключевых характеристик (как «Charakteristik» на egger.com) */
.pictos { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px 12px; margin: 0 0 28px; padding: 0; list-style: none; }
@media (min-width: 560px) { .pictos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; } }
.picto { display: flex; align-items: center; gap: 12px; min-width: 0; }
.picto__ico {
	position: relative;
	display: flex; flex: 0 0 auto; flex-direction: column; align-items: center; justify-content: center;
	width: 56px; height: 56px;
	border-radius: var(--radius);
	background: var(--ink);
	color: #fff;
}
.picto__ico svg { display: block; width: 40px; height: 40px; }
.picto__ico--cap svg { width: 30px; height: 30px; }
.picto__ico i { display: block; margin-top: -2px; font-style: normal; font-size: 9px; font-weight: 700; letter-spacing: .06em; line-height: 1; text-transform: uppercase; }
.picto__ico .picto__over { position: absolute; left: 0; right: 0; top: 50%; margin: 0; transform: translateY(-62%); text-align: center; font-size: 14px; letter-spacing: 0; }
.picto__ico--num { font-size: 26px; font-weight: 700; line-height: 1; letter-spacing: -.02em; }
.picto__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 13px; line-height: 1.3; }
.picto__txt b { font-weight: 600; color: var(--ink); }
.picto__txt span { color: var(--ink-2); }
@media (min-width: 800px) {
	.pictos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 24px; }
	.picto__txt { font-size: 14px; }
}

/* ==========================================================================
   ПАГИНАЦИЯ И СОРТИРОВКА
   ========================================================================== */

.pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: 0 0 24px;
}
.pagination .sort {
	margin-right: auto;
	color: var(--ink-3);
	font-size: 13px;
	white-space: nowrap;
}
.pagination .sort select {
	height: 36px;
	margin-left: 6px;
	padding: 0 8px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius);
	background: var(--paper);
	font: inherit;
	font-size: 14px;
	color: var(--ink);
}
.pagination > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	font-size: 14px;
	font-weight: 600;
}
.pagination > a:hover { border-color: var(--ink); }
.pagination > a.selected { border-color: var(--ink); background: var(--ink); color: #fff; }

/* ==========================================================================
   СТРАНИЦА ТОВАРА
   ========================================================================== */

.product.page { position: relative; margin-bottom: 40px; }

.product__main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }

@media (min-width: 900px) {
	.product__main {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
		gap: 40px;
		align-items: start;
	}
}

.block-title {
	margin: 40px 0 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--line);
	font-size: clamp(20px, 3vw, 26px);
}

.product__thumbs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.product__thumb { display: block; padding: 0; border: 2px solid transparent; border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); cursor: pointer; transition: border-color .15s; }
.product__thumb img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .25s; }
.product__thumb:hover img { transform: scale(1.03); }
.product__thumb.is-active { border-color: var(--ink); }
.product__thumb:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.product__photo { transition: opacity .2s; }
.product__help { margin: 20px 0 0; color: var(--ink-2); font-size: 14px; line-height: 1.6; }
.product__phone { display: inline-block; margin-top: 6px; font-size: 20px; font-weight: 700; }

.product.page .image {
	position: relative;
	float: none;
	width: auto;
	line-height: 0;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--surface);
}
.product.page .image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

.product.page .product_info { float: none; width: auto; }
.product.page .images { display: inline-block; }
.product.page .images img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border: 1px solid var(--line);
	border-radius: var(--radius);
}
.product.page .images img:hover { border-color: var(--red); }

.product.page form.cart {
	margin-top: 16px;
	padding: 20px;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--surface);
}
.product.page .price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	font-variant-numeric: tabular-nums;
}
.product.page .price span { font-size: 34px; font-weight: 700; letter-spacing: -.025em; color: var(--ink); }
.product.page .price i { font-style: normal; font-size: 18px; font-weight: 600; color: var(--ink); }
.product.page .price .compare_price { color: var(--ink-3); font-size: 17px; text-decoration: line-through; }
.product.page .price .compare_price:empty { display: none; }
.product.page form.cart > p { margin: 4px 0 16px; color: var(--ink-2); font-size: 14px; }
.product.page select[name=variant] {
	display: block;
	width: 100%;
	height: 46px;
	margin: 14px 0 0;
	padding: 0 12px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius);
	background: var(--paper);
	font: inherit;
	font-size: 15px;
	color: var(--ink);
}
.product.page .but_add.to_cart {
	width: 100%;
	height: 52px;
	border: 0;
	border-radius: var(--radius);
	background: var(--red);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
}
.product.page .but_add.to_cart:hover { background: var(--red-dark); }
.product.page .image > .label { top: 16px; left: 16px; padding: 8px 14px; font-size: 13px; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.25); }  /* крупнее, чем в плитке */

#back_forward {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 40px;
	padding: 16px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	font-size: 14px;
}
#back_forward a { color: var(--ink-2); }
#back_forward a:hover { color: var(--red); }
#back_forward .next_page_link { margin-left: auto; text-align: right; }

/* ==========================================================================
   КОРЗИНА И ОФОРМЛЕНИЕ
   ========================================================================== */

#purchases { width: 100%; margin: 0 0 24px; border-collapse: collapse; }
#purchases tr { display: grid; grid-template-columns: 64px 1fr auto; gap: 8px 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
#purchases td, #purchases th { padding: 0; text-align: left; vertical-align: middle; }
#purchases .image img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--radius); }
#purchases .name { font-weight: 600; }
#purchases .price { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
#purchases .amount select {
	height: 40px;
	width: auto !important;
	padding: 0 8px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius);
	background: var(--paper);
	font: inherit;
}
#purchases .remove a { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: var(--radius); }
#purchases .remove a:hover { background: var(--surface-2); }
#purchases th[colspan] { display: block; grid-column: 1 / -1; padding: 12px 0 0; text-align: right; font-size: 20px; font-weight: 700; }

@media (min-width: 760px) {
	#purchases tr { grid-template-columns: 72px minmax(0, 1fr) 120px 110px 130px 44px; }
}

#deliveries { margin: 0 0 28px; padding: 0; list-style: none; }
#deliveries li {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 4px 12px;
	padding: 14px;
	margin-bottom: 10px;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
}
#deliveries h3 { font-size: 16px; }
#deliveries .description { grid-column: 2; color: var(--ink-2); font-size: 14px; }

/* формы */
.form { max-width: 620px; }
.form label { display: block; margin: 16px 0 6px; font-size: 14px; font-weight: 600; }
.form input[type=text],
.form input[type=password],
.form input[type=email],
.form textarea {
	display: block;
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius);
	background: var(--paper);
	font: inherit;
	font-size: 15px;
	color: var(--ink);
}
.form textarea { min-height: 110px; resize: vertical; }
.form input:focus, .form textarea:focus { outline: 0; border-color: var(--ink); }
.form .captcha { margin-top: 10px; }
.form .captcha img { border-radius: var(--radius); }
.form .input_captcha { max-width: 160px; }

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	margin-top: 20px;
	padding: 0 28px;
	border: 0;
	border-radius: var(--radius);
	background: var(--red);
	color: #fff;
	font: inherit;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .15s;
}
.button:hover { background: var(--red-dark); color: #fff; }
.button.right { float: none; }

.message_error,
.message_success {
	padding: 12px 16px;
	margin: 0 0 16px;
	border-radius: var(--radius);
	border-left: 3px solid var(--red);
	background: #fdf2f3;
	color: #8c0010;
	font-size: 14px;
}
.message_success { border-left-color: #1a7f37; background: #f0f9f2; color: #14682c; }

/* ==========================================================================
   БЛОГ
   ========================================================================== */

.blog-list { margin: 0; padding: 0; list-style: none; }
.blog-list li { padding: 20px 0; border-bottom: 1px solid var(--line); }
.blog-list li:first-child { border-top: 1px solid var(--line); }
.blog-list .data { margin: 0 0 6px; color: var(--ink-3); font-size: 13px; }
.blog-list h2 { margin: 0 0 8px; font-size: 20px; }
.blog-list p { margin: 0; color: var(--ink-2); }
.blog-list li.blog-list__illustrated { display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 1fr); gap: 20px; align-items: center; }
.blog-list__image { display: block; overflow: hidden; border-radius: var(--radius); aspect-ratio: 3 / 2; }
.blog-list__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.blog-hero { margin: 8px 0 28px; }
.blog-hero img { display: block; width: 100%; height: auto; border-radius: var(--radius); }
.blog-hero figcaption { margin-top: 9px; color: var(--ink-3); font-size: 13px; line-height: 1.5; }
@media (max-width: 600px) {
	.blog-list li.blog-list__illustrated { grid-template-columns: 1fr; gap: 12px; }
	.blog-list__image { max-width: none; }
}

/* ==========================================================================
   ГЛАВНАЯ
   ========================================================================== */

/* герой-слайдер */
.hero {
	position: relative;
	margin: 0 0 40px;
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--surface);
}
.hero__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.hero__track::-webkit-scrollbar { display: none; }
.hero__slide {
	position: relative;
	flex: 0 0 100%;
	scroll-snap-align: start;
	line-height: 0;
}
.hero__slide img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
@media (min-width: 800px) { .hero__slide img { aspect-ratio: 21 / 7; } }

.hero__dots {
	position: absolute;
	left: 0; right: 0; bottom: 12px;
	display: flex;
	justify-content: center;
	gap: 6px;
}
.hero__dots button {
	width: 24px; height: 24px;   /* область нажатия 24px, видимая точка 8px */
	padding: 8px;
	background-clip: content-box;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .5);
	cursor: pointer;
}
.hero__dots button[aria-current="true"] { background: #fff; background-clip: content-box; width: 38px; border-radius: 12px; }

/* секции главной */
.section { margin: 0 0 48px; }
.section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 20px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line);
}
.section__head h2 { font-size: clamp(22px, 3.4vw, 30px); }
.text-link {
	flex: 0 0 auto;
	color: var(--ink-2);
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}
.text-link:hover { color: var(--red); }

/* табы главной */
.tabs {
	display: flex;
	gap: 4px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
	border-bottom: 1px solid var(--line);
}
.tabs::-webkit-scrollbar { display: none; }
.tabs li { flex: 0 0 auto; }
.tabs li a { display: block; padding: 0 2px; }
.tabs li h2 {
	margin: 0;
	padding: 12px 14px;
	border-bottom: 2px solid transparent;
	color: var(--ink-3);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: color .15s, border-color .15s;
}
.tabs li:hover h2 { color: var(--ink); }
.tabs li.active h2 { border-bottom-color: var(--red); color: var(--ink); }

/* преимущества */
.usp {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin: 0 0 48px;
	padding: 0;
	list-style: none;
	background: var(--line);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	overflow: hidden;
}
@media (min-width: 900px) { .usp { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.usp li { padding: 20px; background: var(--paper); }
.usp b { display: block; margin-bottom: 4px; font-size: 15px; }
.usp span { color: var(--ink-2); font-size: 13px; line-height: 1.45; }

/* оплата */
#moneyline { margin: 32px 0 0; }
#moneyline img { max-width: 100%; opacity: .75; }

/* ==========================================================================
   ПОДВАЛ
   ========================================================================== */

#footer-container {
	background: var(--dark);
	color: rgba(255, 255, 255, .62);
	font-size: 14px;
}
#footer { padding-top: 48px; padding-bottom: 40px; }
#footer a { color: rgba(255, 255, 255, .62); }
#footer a:hover { color: #fff; }

.footer__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px 24px;
	padding-bottom: 36px;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}
@media (min-width: 900px) {
	.footer__grid { grid-template-columns: 1.1fr 1.3fr 1fr; gap: 48px; }
	.footer_menu[aria-label="Разделы сайта"] ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
}

.footer__brand .footer__logo { width: 150px; height: auto; margin-bottom: 16px; }
.footer__brand .footer__pay { max-width: 220px; opacity: .6; }
.footer__brand p { margin: 0; max-width: 34ch; line-height: 1.6; }

.footer_menu { margin: 0; padding: 0; list-style: none; }
.footer_menu ul { margin: 0; padding: 0; list-style: none; }
.footer_menu h2 {
	margin: 0 0 14px;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.footer_menu li { margin-bottom: 9px; }

.footer__phone {
	display: block;
	margin-bottom: 6px;
	color: #fff !important;
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -.01em;
}

.footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	padding-top: 24px;
	color: rgba(255, 255, 255, .42);
	font-size: 12px;
	line-height: 1.6;
}
.footer__bottom p { margin: 0; }
.footer__bottom .counters { margin-left: auto; }
.footer__legal { max-width: 70ch; }

/* ==========================================================================
   МОБИЛЬНОЕ МЕНЮ
   ========================================================================== */

.drawer {
	position: fixed;
	inset: 0;
	z-index: 100;
	visibility: hidden;
}
.drawer[data-open="true"] { visibility: visible; }
.drawer__scrim {
	position: absolute;
	inset: 0;
	background: rgba(22, 24, 26, .45);
	opacity: 0;
	transition: opacity .2s;
}
.drawer[data-open="true"] .drawer__scrim { opacity: 1; }
.drawer__panel {
	position: absolute;
	inset: 0 auto 0 0;
	width: min(88vw, 340px);
	padding: 16px 20px 32px;
	background: var(--paper);
	overflow-y: auto;
	transform: translateX(-100%);
	transition: transform .22s ease;
}
.drawer[data-open="true"] .drawer__panel { transform: none; }
.drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	margin: 0 0 8px -10px;
	border: 0;
	background: none;
	cursor: pointer;
}
.drawer h2 {
	margin: 20px 0 10px;
	color: var(--ink-3);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.drawer ul { margin: 0; padding: 0; list-style: none; }
.drawer li { border-bottom: 1px solid var(--line); }
.drawer li a { display: block; padding: 12px 0; font-size: 16px; font-weight: 500; }
.drawer .drawer__phone { display: block; margin-top: 24px; font-size: 21px; font-weight: 700; }

body.is-locked { overflow: hidden; }

/* ==========================================================================
   ПРОЧЕЕ
   ========================================================================== */

/* выпадашка автодополнения поиска */
.autocomplete {
	width: auto !important;
	border: 1px solid var(--line-2) !important;
	border-radius: var(--radius);
	background: var(--paper) !important;
	box-shadow: var(--shadow-lg);
	font-size: 14px !important;
	color: var(--ink) !important;
	margin: 4px 0 0 !important;
	overflow: hidden;
}
.autocomplete div { padding: 9px 12px; cursor: pointer; }
.autocomplete div.selected { background: var(--surface); }
.autocomplete strong { color: var(--red); }

/* кнопка «наверх» */
#topcontrol { border-radius: var(--radius); }

/* анимация улёта товара в корзину */
.fly-to-cart {
	position: fixed;
	z-index: 200;
	border-radius: var(--radius);
	object-fit: cover;
	pointer-events: none;
	transition: transform .55s cubic-bezier(.4, 0, .5, 1), opacity .55s;
}

@media (prefers-reduced-motion: reduce) {
	* { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* печать */
@media print {
	.topbar, .mainnav, #search, #cart_informer, #content_left, #footer-container, .hero { display: none !important; }
}


/* ==========================================================================
   ОСТАВШИЕСЯ БЛОКИ: заказ, отзывы, таблицы, служебные страницы
   ========================================================================== */

/* заголовки уровня секции вне #page_title */
#content_right > h1,
.product.page h1:not([data-product]),
#comments h1,
.qr_block h1 {
	margin: 36px 0 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--line);
	font-size: clamp(20px, 3vw, 26px);
}

/* таблица «информация по заказу» и список заказов пользователя */
.table_info { width: 100%; margin: 0 0 28px; border-collapse: collapse; }
.table_info tr { border-bottom: 1px solid var(--line); }
.table_info tr:first-child { border-top: 1px solid var(--line); }
.table_info td { padding: 12px 0; vertical-align: top; }
.table_info td.name {
	width: 200px;
	padding-right: 20px;
	color: var(--ink-3);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
@media (max-width: 620px) {
	.table_info td { display: block; padding: 4px 0; }
	.table_info td.name { width: auto; padding-top: 12px; }
	/* сравнительные таблицы в статьях (с <th>) — не рассыпаем, а скроллим внутри, иначе вся страница шире экрана */
	.table_info:has(th) { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.table_info:has(th) td, .table_info:has(th) th { display: table-cell; min-width: 110px; padding: 10px 12px 10px 0; }
}

/* отзывы */
#comments { margin-top: 8px; }
#comments #page_title { margin: 36px 0 14px; }
#comments #page_title h1 { font-size: clamp(20px, 3vw, 26px); padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.comment_list { margin: 0 0 24px; padding: 0; list-style: none; }
.comment_list li { padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--ink-2); }
.comment_list li.even { background: none; }
.comment_header { margin-bottom: 6px; color: var(--ink); font-weight: 600; }
.comment_header i { margin-left: 8px; color: var(--ink-3); font-size: 13px; font-style: normal; font-weight: 400; }

/* радиокнопки способов доставки и оплаты */
#deliveries .checkbox { display: flex; align-items: center; padding-top: 2px; }
#deliveries input[type=radio] { width: 18px; height: 18px; accent-color: var(--red); }
#deliveries label { cursor: pointer; }
#deliveries li:hover { border-color: var(--line-2); }

/* qr-блок заказа */
.qr_block { margin-bottom: 24px; }

/* ссылка на вложение в заказе */
.download_attachment {
	display: inline-block;
	margin-left: 8px;
	color: var(--red);
	font-size: 13px;
	text-decoration: underline;
}

/* яндекс-карта на странице контактов */
#content_right iframe,
#category_description iframe { max-width: 100%; border: 0; border-radius: var(--radius-lg); }

/* формы входа и регистрации — по центру колонки, не во всю ширину */
.login_form, .register_form { max-width: 460px; }


/* сворачивание фильтров на узких экранах */
.filters-toggle {
	display: none;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	min-height: 48px;
	margin: 0 0 16px;
	padding: 0 16px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius);
	background: var(--paper);
	color: var(--ink);
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
}
.filters-toggle::after {
	content: "";
	width: 12px;
	height: 12px;
	border-right: 2px solid var(--ink-2);
	border-bottom: 2px solid var(--ink-2);
	transform: rotate(45deg) translate(-3px, -3px);
	transition: transform .18s;
}
.filters-toggle[aria-expanded="true"]::after { transform: rotate(-135deg) translate(-3px, -3px); }

@media (max-width: 799px) {
	.filters-toggle { display: flex; }
	#features[data-collapsible="true"][hidden] { display: none; }
}


/* ==========================================================================
   ПРАВКИ ПОСЛЕ РАЗБОРА ЖИВОЙ СТРАНИЦЫ
   ========================================================================== */

/* 1. Текст из CMS: ограничиваем строку по читаемости, а не по ширине экрана */
#category_description { max-width: 78ch; font-size: 17px; line-height: 1.7; }
#category_description p { margin: 0 0 16px; }
#category_description b,
#category_description strong { color: var(--ink); }
/* «МЫ СЕГОДНЯ:», «ПРИНЦИПЫ РАБОТЫ:» — редакторские подзаголовки жирным */
#category_description p > b:only-child,
#category_description p > strong:only-child {
	display: block;
	margin: 28px 0 4px;
	color: var(--ink-3);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* 2. Картинки, вставленные редактором в тело страницы, — ровной сеткой */
#category_description { --thumb: 200px; }
#category_description p:has(> img + img),
#category_description p:has(> a > img + a > img) {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(var(--thumb), 1fr));
	gap: 12px;
	max-width: none;
	width: min(100%, 1100px);
}
#category_description p:has(> img + img) img {
	width: 100%;
	height: 150px;
	object-fit: cover;
	border-radius: var(--radius);
}

/* 3. Главная без сайдбара — блок «о компании» и финальный призыв */
.home #content-container { display: block; }

.home-cta {
	display: grid;
	gap: 20px;
	margin: 48px 0 0;
	padding: 32px;
	border-radius: var(--radius-lg);
	background: var(--dark);
	color: rgba(255, 255, 255, .72);
}
@media (min-width: 800px) {
	.home-cta { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 40px; padding: 40px; }
}
.home-cta h2 { margin-bottom: 8px; color: #fff; font-size: clamp(22px, 3vw, 28px); }
.home-cta p { margin: 0; max-width: 60ch; line-height: 1.6; }
.home-cta__phone {
	display: block;
	color: #fff;
	font-size: clamp(26px, 4vw, 34px);
	font-weight: 700;
	letter-spacing: -.02em;
	white-space: nowrap;
}
.home-cta__phone:hover { color: #fff; opacity: .85; }
.home-cta__hours { display: block; margin-top: 4px; font-size: 13px; }

/* 4. Подвал: легалка ограничена, копирайт отдельной строкой */
.footer__bottom { display: block; }
.footer__legal { max-width: 78ch; margin: 0 0 10px; }
.footer__copy { margin: 0; color: rgba(255, 255, 255, .6); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; }
.footer__dev { margin-left: auto; color: rgba(255, 255, 255, .45); font-weight: 400; }
.footer__dev a { color: rgba(255, 255, 255, .7); text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .25); }
.footer__dev a:hover { color: #fff; border-color: #fff; }
.footer__bottom .counters { margin: 0; }

/* 5. На мобильных горизонтальное меню дублирует бургер — убираем */
@media (max-width: 999px) {
	.mainnav { display: none; }
}

/* 6. Плитки преимуществ: выравниваем по сетке, без рваных высот */
.usp li { display: flex; flex-direction: column; gap: 4px; padding: 18px; }
.usp b { font-size: 15px; line-height: 1.3; }
.usp span { font-size: 13px; }

/* 7. Заголовок секции на узких экранах — в две строки, без сдавливания */
@media (max-width: 560px) {
	.section__head { flex-direction: column; align-items: flex-start; gap: 8px; }
}


/* кнопка корзины кликабельна целиком, а не только цифра */
a#cart_informer { color: var(--ink); text-decoration: none; transition: border-color .15s, background-color .15s; }
a#cart_informer:hover { border-color: var(--ink); background: var(--surface); color: var(--ink); }
a#cart_informer b { font-weight: 700; }


/* ==========================================================================
   «ГДЕ КУПИТЬ»: карта + карточки магазинов
   Данные магазинов — в теле страницы (админка), карта строится в theme.js
   по ссылкам «На карте» (координаты pt=lon,lat в href). Новый магазин =
   ещё один <div class="store"> с такой же ссылкой.
   ========================================================================== */

#category_description.has-stores { max-width: none; }
#stores-map {
	width: 100%;
	margin: 0 0 28px;
	aspect-ratio: 16 / 7;
	min-height: 320px;
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--surface);
}
#stores-map iframe { display: block; width: 100%; height: 100%; border: 0; border-radius: 0; }

.stores {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--gap);
	counter-reset: store;
	margin: 0 0 32px;
}
.store {
	position: relative;
	padding: 22px 22px 22px 62px;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--paper);
	font-size: 15px;
	line-height: 1.55;
}
/* номер карточки = номер метки на карте */
.store::before {
	counter-increment: store;
	content: counter(store);
	position: absolute;
	left: 20px; top: 22px;
	width: 26px; height: 26px;
	border-radius: 50%;
	background: var(--red);
	color: #fff;
	font-size: 13px; font-weight: 700; line-height: 26px; text-align: center;
}
#category_description .store h3 { margin: 0 0 6px; font-size: 17px; line-height: 1.3; }
#category_description .store p { margin: 0 0 4px; }
#category_description .store .store__addr { color: var(--ink); }
#category_description .store .store__meta { color: var(--ink-2); font-size: 14px; }
#category_description .store a[href^="tel:"] { color: var(--ink); font-weight: 600; text-decoration: none; }
#category_description .store a.store__map { display: inline-block; margin-top: 8px; font-size: 14px; }

/* «Контакты»: карта офис + склад */
#contacts-map { width: 100%; margin: 8px 0 32px; aspect-ratio: 16 / 7; min-height: 320px; border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); }
#contacts-map iframe { display: block; width: 100%; height: 100%; border: 0; }


/* ==========================================================================
   «СЕРВИСНЫЕ УСЛУГИ»: блоки фото + текст, шаги монтажа, CTA
   ========================================================================== */

#category_description.has-svc { max-width: none; }
#category_description .svc-lead { max-width: 78ch; font-size: 18px; margin-bottom: 36px; }

.svc {
	display: grid;
	gap: 24px;
	align-items: start;
	margin: 0 0 40px;
}
.svc__img img { display: block; width: 100%; height: auto; border-radius: var(--radius-lg); }
#category_description .svc__txt { max-width: 62ch; font-size: 16px; }
#category_description .svc__txt h2 { margin: 0 0 12px; }
#category_description .svc__txt p:last-child { margin-bottom: 0; }

@media (min-width: 900px) {
	.svc { grid-template-columns: 5fr 6fr; gap: var(--gap); }
	.svc--reverse { grid-template-columns: 6fr 5fr; }
	.svc--reverse .svc__img { order: 2; }
	.svc__img { position: sticky; top: 24px; }
}

/* шаги монтажа: нумерация красным кружком */
#category_description .svc-steps { list-style: none; counter-reset: step; padding: 0; margin: 0 0 16px; }
#category_description .svc-steps li {
	position: relative;
	padding-left: 40px;
	margin-bottom: 10px;
}
.svc-steps li::before {
	counter-increment: step;
	content: counter(step);
	position: absolute; left: 0; top: 1px;
	width: 26px; height: 26px;
	border-radius: 50%;
	background: var(--red); color: #fff;
	font-size: 13px; font-weight: 700; line-height: 26px; text-align: center;
}

.svc-cta {
	padding: 28px 28px 24px;
	border-left: 4px solid var(--red);
	background: var(--surface);
	border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
	margin: 8px 0 32px;
}
#category_description .svc-cta h2 { margin: 0 0 8px; }
#category_description .svc-cta p { margin: 0; max-width: 70ch; }
#category_description .svc-cta a[href^="tel:"] { font-weight: 700; text-decoration: none; }


/* ==========================================================================
   152-ФЗ: согласие в формах, cookie-уведомление, юридические страницы
   ========================================================================== */

.form label.consent,
.cart_form label.consent {
	display: flex; gap: 10px; align-items: flex-start;
	margin: 18px 0 8px;
	font-size: 13px; font-weight: 400; line-height: 1.45; color: var(--ink-2);
}
label.consent input { margin: 3px 0 0; flex: 0 0 auto; width: 16px; height: 16px; accent-color: var(--red); }
label.consent a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }

.cookie-bar {
	position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 900;
	display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between;
	max-width: 960px; margin: 0 auto;
	padding: 16px 20px;
	background: var(--dark); color: #fff;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg);
	font-size: 14px; line-height: 1.5;
}
.cookie-bar[hidden] { display: none; }
.cookie-bar p { margin: 0; flex: 1 1 420px; }
.cookie-bar a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.cookie-bar .button { flex: 0 0 auto; padding: 10px 22px; }

.footer__legal-links { margin: 0 0 8px; font-size: 13px; }
.footer__legal-links a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.footer__legal-links a + a { margin-left: 14px; }

#category_description .legal-meta { color: var(--ink-3, var(--ink-2)); font-size: 14px; margin-bottom: 24px; }


/* ==========================================================================
   ОФОРМЛЕНИЕ ЗАКАЗА: две колонки, шаги, поля с иконками, липкая сводка
   ========================================================================== */

.checkout { display: grid; gap: 28px; align-items: start; }
@media (min-width: 1000px) {
	.checkout { grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; }
	.checkout__side { position: sticky; top: 24px; }
}

.checkout__step {
	display: flex; align-items: center; gap: 10px;
	margin: 0 0 14px; font-size: 18px; font-weight: 700;
}
.checkout__step span {
	display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center;
	border-radius: 50%; background: var(--ink); color: #fff; font-size: 13px;
}
.checkout__step small { font-size: 13px; font-weight: 400; color: var(--ink-3); margin-left: 4px; }

/* товары — компактнее */
.checkout #purchases { margin-bottom: 28px; }
.checkout #purchases tr { grid-template-columns: 56px 1fr auto; padding: 10px 0; }
.checkout #purchases .image img { width: 56px; height: 56px; }
.checkout #purchases .name { font-size: 14px; line-height: 1.35; }
.checkout #purchases .name .unit { font-weight: 400; font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.checkout #purchases .amount select { height: 36px; font-size: 14px; }
.checkout #purchases .remove a { color: var(--ink-3); }
.checkout #purchases .remove a:hover { color: var(--red); }
@media (min-width: 760px) {
	.checkout #purchases tr { grid-template-columns: 56px minmax(0, 1fr) 110px 110px 36px; }
	.checkout #purchases .price { text-align: right; }
}

.checkout__coupon { margin: -8px 0 28px; max-width: 420px; }
.checkout__coupon .hint { margin: 8px 0 0; font-size: 13px; color: var(--ink-2); }
.field--tag { display: flex; gap: 8px; }
.field--tag input[type=text] { flex: 1; }
.field--tag .button { flex: 0 0 auto; }

/* доставка — плотные карточки в ряд */
.checkout #deliveries { display: grid; gap: 10px; margin-bottom: 28px; }
@media (min-width: 640px) { .checkout #deliveries { grid-template-columns: 1fr 1fr; } }
.checkout #deliveries li { display: block; position: relative; padding: 0; margin: 0; border: 0; }
.checkout #deliveries input[type=radio] { position: absolute; left: 14px; top: 16px; margin: 0; }
.checkout #deliveries label {
	display: block; height: 100%; padding: 13px 14px 12px 40px;
	border: 1px solid var(--line); border-radius: var(--radius-lg);
	cursor: pointer; transition: border-color .15s, background-color .15s;
}
.checkout #deliveries label b { font-size: 15px; }
.checkout #deliveries label em { font-style: normal; font-weight: 700; color: var(--red); margin-left: 6px; font-size: 14px; }
.checkout #deliveries label .description { display: block; margin-top: 4px; font-size: 13px; line-height: 1.45; color: var(--ink-2); }
.checkout #deliveries input:checked + label { border-color: var(--ink); background: var(--surface); }
.checkout #deliveries input:focus-visible + label { outline: 2px solid var(--red); outline-offset: 2px; }

/* поля с иконками */
.cart_form { max-width: none; }
.cart_form .fields { display: grid; gap: 14px 16px; }
@media (min-width: 640px) { .cart_form .fields { grid-template-columns: 1fr 1fr; } .cart_form .field--wide { grid-column: 1 / -1; } }
.field { position: relative; }
.cart_form .field > label { margin: 0 0 6px; font-size: 13px; }
.field > svg {
	position: absolute; left: 13px; bottom: 13px;
	width: 18px; height: 18px;
	fill: none; stroke: var(--ink-3); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
	pointer-events: none; transition: stroke .15s;
}
.field > input, .field > textarea { padding-left: 42px !important; }
.field > textarea ~ svg, .field textarea + svg { bottom: auto; top: 36px; }
.field--wide > svg { bottom: auto; top: 36px; }
.field:focus-within > svg { stroke: var(--ink); }
.cart_form input[type=tel] {
	display: block; width: 100%; padding: 12px 14px;
	border: 1px solid var(--line-2); border-radius: var(--radius);
	background: var(--paper); font: inherit; font-size: 15px; color: var(--ink);
}
.cart_form input[type=tel]:focus { outline: 0; border-color: var(--ink); }
.cart_form textarea { min-height: 88px; }
.cart_form ::placeholder { color: var(--ink-3); opacity: 1; }

.captcha-row { display: flex; gap: 10px; align-items: center; }
.captcha-row img.captcha { height: 46px; width: auto; border-radius: var(--radius); border: 1px solid var(--line); }
.captcha-row .field { display: block; width: 150px; }
.captcha-row .field > svg { bottom: 14px; }
.cart_form .input_captcha { max-width: none; }

/* сводка */
.summary {
	padding: 22px 22px 20px;
	border: 1px solid var(--line); border-radius: var(--radius-lg);
	background: var(--paper); box-shadow: var(--shadow);
}
.summary h3 { margin: 0 0 14px; font-size: 18px; }
.summary dl { margin: 0; display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; font-size: 14px; }
.summary dt { color: var(--ink-2); }
.summary dd { margin: 0; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.summary dd.muted { font-weight: 400; color: var(--ink-3); }
.summary__total {
	display: flex; justify-content: space-between; align-items: baseline;
	margin: 14px 0 16px; padding-top: 14px; border-top: 1px solid var(--line);
	font-size: 15px;
}
.summary__total b { font-size: 24px; color: var(--red); font-variant-numeric: tabular-nums; }
.summary__submit { display: block; width: 100%; padding: 14px; font-size: 16px; }
.summary__note { margin: 12px 0 0; font-size: 13px; line-height: 1.45; color: var(--ink-2); }
.summary__phone { margin: 10px 0 0; font-size: 13px; color: var(--ink-3); }
.summary__phone a { color: var(--ink); font-weight: 600; text-decoration: none; }


/* ==========================================================================
   ОПТ — главный акцент: блок на главной
   ========================================================================== */

.b2b {
	display: grid; gap: 28px; align-items: center;
	margin: 0 0 40px; padding: 28px;
	background: var(--surface); border-radius: var(--radius-lg);
}
@media (min-width: 900px) { .b2b { grid-template-columns: 7fr 5fr; gap: 40px; padding: 40px; } }
.b2b h1 { margin: 8px 0 12px; font-size: clamp(24px, 3.6vw, 36px); line-height: 1.15; letter-spacing: -.01em; }
.b2b > .b2b__text > p { margin: 0 0 18px; max-width: 60ch; color: var(--ink-2); line-height: 1.6; }
.b2b__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0 0 22px; padding: 0; list-style: none; }
.b2b__list b { display: block; font-size: 15px; }
.b2b__list span { font-size: 13px; color: var(--ink-2); line-height: 1.4; }
.b2b__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; }
.b2b__actions .button { margin-top: 0; }
.b2b__link { font-weight: 600; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line-2); }
.b2b__link:hover { color: var(--red); border-color: var(--red); }
.b2b__retail { margin: 20px 0 0 !important; font-size: 13px !important; color: var(--ink-3) !important; }
.b2b__retail a { color: var(--ink-2); text-decoration: underline; text-underline-offset: 2px; }
.b2b__photo img { display: block; width: 100%; height: auto; border-radius: var(--radius-lg); }
@media (max-width: 480px) { .b2b { padding: 22px 18px; } .b2b__list { grid-template-columns: 1fr; } }

/* иконки у ссылок входа/регистрации в верхней полосе */
#user_box_top a { display: inline-flex; align-items: center; gap: 6px; }
#user_box_top .ico { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; opacity: .85; }
#user_box_top a:hover .ico { opacity: 1; }


/* цена за м² (главная цифра) + цена за упаковку (подпись); в базе цена за упаковку */
.price .price__unit { font-style: normal; font-size: 12px; color: var(--ink-3); }
.tiny_products .price .price__pack { flex: 1 1 100%; order: 4; font-weight: 400; font-size: 12px; line-height: 1.35; color: var(--ink-2); }
.product.page .price .price__unit { font-size: 15px; }
.product.page form.cart > p.price__pack { margin: 6px 0 16px; max-width: 46ch; line-height: 1.5; }
.product.page form.cart > p.price__pack b { color: var(--ink); }
.checkout #purchases .amount .m2 { margin-top: 4px; font-size: 12px; color: var(--ink-3); white-space: nowrap; }

/* реквизиты: блок на «Контактах» и строка в подвале */
#category_description .requisites { margin: 8px 0 24px; padding: 18px 20px; background: var(--surface); border-radius: var(--radius-lg); }
#category_description .requisites h2 { margin: 0 0 10px; font-size: 18px; }
#category_description .requisites p { margin: 0; font-size: 15px; line-height: 1.7; }
.footer__requisites { margin: 0 0 6px; font-size: 12px; color: rgba(255, 255, 255, .45); }

/* honeypot для ботов — поле вне экрана, людям не видно */
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }


/* ==========================================================================
   Карточка товара: наличие, калькулятор упаковок
   ========================================================================== */
.avail { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: #2e7d32; }
.avail__dot { width: 8px; height: 8px; border-radius: 50%; background: #2e7d32; }
.avail--order { color: #b26a00; }
.avail--order .avail__dot { background: #e0a100; }
.tiny_products .price .avail { flex: 1 1 100%; order: 5; font-size: 12px; }
.product.page form.cart > p.avail { margin: 0 0 8px; font-size: 14px; }

.calc { margin: 6px 0 16px; padding: 16px 18px; background: var(--surface); border-radius: var(--radius-lg); }
.calc__head { font-weight: 700; margin-bottom: 10px; }
.calc__row label { display: block; font-size: 13px; color: var(--ink-2); margin-bottom: 6px; }
.calc__input { width: 100%; max-width: 220px; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); font: inherit; font-size: 16px; }
.calc__input:focus { outline: 0; border-color: var(--ink); }
.calc__modes { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 10px 0 0; }
.calc__modes label { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; cursor: pointer; }
.calc__modes small { color: var(--ink-3); font-size: 12px; }
.calc__modes input { accent-color: var(--red); }
.calc__result { margin: 12px 0 0; font-size: 15px; line-height: 1.5; }
.calc__result b { font-size: 17px; }
.calc__meta { color: var(--ink-2); }
.calc .calc__add { margin-top: 12px; min-height: 44px; padding: 0 20px; font-size: 14px; }


/* ==========================================================================
   Сравнение декоров
   ========================================================================== */
/* кнопка сравнения: в плитке — квадрат с иконкой рядом с «В корзину», в карточке — текстовая */
.compare-toggle {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	height: 40px; padding: 0 12px;
	border: 1px solid var(--line-2); border-radius: var(--radius);
	background: var(--paper); color: var(--ink); font-size: 13px; font-weight: 600; text-decoration: none;
	transition: border-color .15s, background-color .15s, color .15s;
}
.compare-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.compare-toggle:hover { border-color: var(--ink); color: var(--ink); }
.compare-toggle.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.compare-toggle.is-on:hover { background: var(--red); border-color: var(--red); color: #fff; }
.tiny_products .compare-toggle { order: 4; flex: 0 0 40px; width: 40px; padding: 0; }
.product.page .compare-toggle--text { height: 36px; padding: 0 14px; border-radius: 999px; }
/* карточка: «Сравнить» и «Заказать образец» в одну строку, с отступом от блока калькулятора */
.product__actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 12px; }

#compare-bar {
	position: fixed; right: 16px; bottom: 16px; z-index: 850;
	padding: 12px 18px; border-radius: 999px;
	background: var(--ink); color: #fff; font-size: 14px; font-weight: 600; text-decoration: none;
	box-shadow: var(--shadow-lg);
}
#compare-bar[hidden] { display: none; }
#compare-bar:hover { background: var(--red); color: #fff; }
.cookie-bar:not([hidden]) ~ #compare-bar { bottom: 120px; }

#category_description.has-compare { max-width: none; }
.compare__scroll { overflow-x: auto; margin: 0 0 12px; }
.compare__table { width: auto; max-width: 100%; border-collapse: collapse; font-size: 14px; }  /* ширина по числу декоров, а не на весь экран */
.compare__table th, .compare__table td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.compare__table thead th { position: relative; width: 240px; min-width: 200px; vertical-align: bottom; border-bottom: 2px solid var(--line-2); }
.compare__table thead th:first-child, .compare__table tbody th { width: 160px; color: var(--ink-3); font-weight: 500; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.compare__table thead a { color: var(--ink); text-decoration: none; font-weight: 600; }
.compare__table thead img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius); margin-bottom: 8px; }
.compare__remove {
	position: absolute; top: 20px; right: 20px; z-index: 2;
	display: flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border-radius: 50%;
	background: #fff; color: var(--ink) !important; font-size: 20px; line-height: 1; font-weight: 400 !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .25); text-decoration: none !important;
	transition: background-color .15s, color .15s;
}
.compare__remove:hover { background: var(--red); color: #fff !important; }
.compare__remove svg { display: block; }
.compare__table tr.is-diff td { font-weight: 600; }
.compare__table tr.is-same td { color: var(--ink-2); }
.only-diff .compare__table tr.is-same { display: none; }
.compare__actions td { padding-top: 16px; }
.compare__actions .but_add { min-height: 40px; padding: 0 16px; font-size: 13px; margin: 0; }
.compare__hint { font-size: 13px; color: var(--ink-2); }
.compare__hint input { accent-color: var(--red); margin-right: 6px; }
.compare__empty { font-size: 16px; }


/* ==========================================================================
   Оптовый партнёр: форма заявки на /opt, статусы
   ========================================================================== */
.wh { margin: 8px 0 32px; padding: 28px; background: var(--surface); border-radius: var(--radius-lg); }
#category_description .wh h2 { margin: 0 0 10px; }
#category_description .wh__lead { max-width: 70ch; margin-bottom: 20px; }
.wh__form { max-width: 760px; }
.wh__form .fields { background: transparent; }
.wh__form .field > input, .wh__form .field > textarea { padding-left: 14px !important; background: var(--paper); }
.wh__form .field label small { font-weight: 400; color: var(--ink-3); }
.wh__form textarea { min-height: 96px; }
.wh__form .button { margin-top: 18px; }
.wh__status { max-width: 70ch; }
.wh__status--ok h2 { color: #2e7d32; }
.wh__cta { margin: 0 0 20px; padding: 12px 16px; background: var(--surface); border-radius: var(--radius); font-size: 14px; }


/* отзывы: форма и пустое состояние */
#comments #page_title h2 { font-size: clamp(20px, 3vw, 26px); padding-bottom: 12px; border-bottom: 1px solid var(--line); margin: 0; }
.comment_empty { color: var(--ink-2); margin: 0 0 20px; }
.comment_pending { margin-left: 8px; padding: 2px 8px; border-radius: 10px; background: #fff3d6; color: #8a5a00; font-size: 12px; font-weight: 500; }
.comment_form { max-width: 620px; margin-top: 8px; padding: 22px 24px; background: var(--surface); border-radius: var(--radius-lg); }
.comment_form h3 { margin: 0 0 4px; font-size: 18px; }
.comment_form textarea { min-height: 110px; }
.comment_form .captcha-row { display: flex; gap: 10px; align-items: center; }
.comment_form .captcha-row img.captcha { height: 46px; width: auto; border-radius: var(--radius); border: 1px solid var(--line); }
.comment_form .captcha-row .field { display: block; width: 150px; }
.comment_form .input_captcha { max-width: none; }
.comment_form .button { margin-top: 16px; }
.comment_note { margin: 10px 0 0; font-size: 13px; color: var(--ink-3); }

/* кнопки-ссылки внутри текста страницы: #category_description a красит текст в красный — возвращаем белый */
#category_description a.button, #category_description .wh a.button, #category_description .compare__empty + p a.button { color: #fff; text-decoration: none; }
#category_description a.button:hover { color: #fff; }


/* ==========================================================================
   Доступность (Lighthouse/axe): контраст в подвале, размер областей нажатия
   ========================================================================== */
.footer__legal { color: #9a9c9f; }
.footer__requisites { color: rgba(255, 255, 255, .62); }
.topbar a, .footer_menu li a, .mainnav a, .text-link, #page_title > p a, .drawer a { display: inline-block; min-height: 24px; line-height: 24px; }
.footer__legal-links a { display: inline-block; min-height: 24px; line-height: 24px; }
.hero__dots { gap: 2px; bottom: 4px; }
.hero__dots button { background-clip: content-box; }  /* после background-shorthand, иначе точка раздувается до 24px */

/* кнопка «Каталог» в меню: не трогать line-height из a11y-правила, иначе текст съезжает вверх */
.mainnav a.nav-catalog { display: none; min-height: 0; line-height: normal; }
@media (min-width: 1000px) { .mainnav a.nav-catalog { display: inline-flex; } }

/* артикул в карточке — правый верхний угол блока покупки */
.product.page form.cart { position: relative; }
.product__sku { position: absolute; top: 14px; right: 18px; font-size: 13px; color: var(--ink-3); }
.product__sku b { color: var(--ink); font-weight: 600; letter-spacing: .02em; }


/* ==========================================================================
   ГЛАВНАЯ: первый экран (суть + пути + быстрые действия)
   ========================================================================== */
.hh { display: grid; gap: 24px; margin: 0 0 24px; }
@media (min-width: 1000px) { .hh { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; align-items: center; margin-bottom: 28px; } }
.hh h1 { margin: 8px 0 14px; font-size: clamp(26px, 3.8vw, 40px); line-height: 1.12; letter-spacing: -.015em; }
.hh__text > p { margin: 0 0 20px; max-width: 58ch; font-size: 16px; line-height: 1.6; color: var(--ink-2); }
.hh__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.hh__btn { margin-top: 0; }
.hh__btn--ghost { background: var(--paper); color: var(--ink); border: 1px solid var(--line-2); }
.hh__btn--ghost:hover { background: var(--surface); color: var(--ink); border-color: var(--ink); }
.hh__facts { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 20px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--ink-3); }
.hh__facts b { color: var(--ink); font-size: 15px; margin-right: 4px; }
.hh__quick { display: grid; gap: 10px; }
.hh__card {
	display: flex; align-items: center; gap: 14px;
	padding: 14px 16px;
	border: 1px solid var(--line); border-radius: var(--radius-lg);
	background: var(--paper); color: var(--ink); text-decoration: none;
	transition: border-color .15s, box-shadow .15s, transform .15s;
}
.hh__card:hover { border-color: var(--ink); box-shadow: var(--shadow); transform: translateY(-1px); color: var(--ink); }
.hh__card svg { flex: 0 0 auto; width: 26px; height: 26px; fill: none; stroke: var(--red); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hh__card b { display: block; font-size: 15px; }
.hh__card small { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.4; color: var(--ink-2); }
.b2b h2 { margin: 8px 0 12px; font-size: clamp(22px, 3vw, 30px); line-height: 1.15; }
.usp { margin-bottom: 40px; }
/* SEO-подборки: текст под списком — с маркерами и подзаголовками */
.seo-copy { max-width: 860px; margin: 40px 0 24px; font-size: 15px; line-height: 1.6; color: var(--ink-2); }
.seo-copy h2 { margin: 24px 0 10px; font-size: 20px; color: var(--ink); }
.seo-copy p { margin: 0 0 12px; }
.seo-copy ul { margin: 0 0 14px; padding-left: 22px; list-style: disc; }
.seo-copy li { margin: 0 0 6px; }
.seo-copy a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
.seo-copy a:hover { color: var(--red); }
.seo-copy details { border-top: 1px solid var(--line); padding-top: 8px; }
.seo-copy summary { cursor: pointer; font-weight: 600; padding: 10px 0; list-style: none; display: flex; align-items: center; gap: 8px; }
.seo-copy summary::-webkit-details-marker { display: none; }
.seo-copy summary::after { content: "+"; margin-left: auto; font-size: 20px; color: var(--ink-3); }
.seo-copy details[open] summary::after { content: "–"; }

/* ==========================================================================
   КОНТАКТЫ: карточки, карта, реквизиты
   ========================================================================== */
#category_description .ct { margin: 0 0 24px; }
#category_description .ct h2 { margin: 0 0 10px; font-size: 18px; }
#category_description .ct p { margin: 0 0 10px; }
.ct__top, .ct__grid { display: grid; gap: 16px; margin: 0 0 16px; }
@media (min-width: 800px) { .ct__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .ct__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ct__card { padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); font-size: 15px; line-height: 1.55; }
.ct__card--dark { background: var(--dark); color: rgba(255, 255, 255, .72); border-color: var(--dark); }
.ct__card--accent { background: var(--surface); }
.ct__label { display: block; margin-bottom: 10px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.ct__card--dark .ct__label { color: rgba(255, 255, 255, .55); }
#category_description .ct__phone { display: block; color: #fff; font-size: clamp(24px, 3vw, 32px); font-weight: 700; letter-spacing: -.02em; text-decoration: none; line-height: 1.2; }
#category_description .ct__phone--sm { font-size: 20px; margin-top: 4px; opacity: .85; }
.ct__hours { display: block; margin-top: 10px; font-size: 13px; }
#category_description .ct__card a { color: var(--ink); text-decoration: none; font-weight: 600; }
#category_description .ct__card a:hover { color: var(--red); }
#category_description .ct__card small { color: var(--ink-2); font-size: 13px; }
#category_description .ct__addr { color: var(--ink); font-weight: 500; }
#category_description .ct__meta { color: var(--ink-2); font-size: 14px; }
#category_description .ct__map { font-size: 14px; }
#category_description .ct__card .button { margin-top: 6px; color: #fff; }
#contacts-map { margin: 0 0 24px; }
#category_description .requisites--compact { padding: 0; background: transparent; border: 1px solid var(--line); }
#category_description .requisites--compact summary { padding: 14px 20px; cursor: pointer; font-weight: 600; list-style: none; display: flex; }
#category_description .requisites--compact summary::-webkit-details-marker { display: none; }
#category_description .requisites--compact summary::after { content: "+"; margin-left: auto; color: var(--ink-3); }
#category_description .requisites--compact[open] summary::after { content: "–"; }
#category_description .requisites__table { margin: 0; font-size: 14px; }
#category_description .requisites__table th { width: 220px; color: var(--ink-3); font-weight: 500; }
#category_description .requisites__table th, #category_description .requisites__table td { border: 0; border-top: 1px solid var(--line); padding: 10px 20px; }

#category_description.has-contacts { max-width: none; }
#category_description .ct__card--dark a.ct__phone { color: #fff; }
#category_description .ct__card--dark a.ct__phone:hover { color: #fff; opacity: .85; }

/* иконки в карточках контактов */
.ct__ico { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; margin-right: 8px; }
.ct__label { display: flex; align-items: center; }
.ct__label .ct__ico { width: 16px; height: 16px; color: var(--red); }
.ct__card--dark .ct__label .ct__ico { color: #fff; opacity: .8; }
.ct__hours { display: flex; align-items: center; }
#category_description .ct h2 { display: flex; align-items: center; }
#category_description .ct h2 .ct__ico { width: 22px; height: 22px; color: var(--red); }


/* ==========================================================================
   Калькулятор упаковок на главной
   ========================================================================== */
.hcalc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin: 0 0 44px; padding: 24px 20px; background: var(--surface); border-radius: var(--radius-lg); scroll-margin-top: 16px; }
@media (min-width: 900px) { .hcalc { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; padding: 36px 40px; align-items: start; } }
.hcalc h2 { margin: 8px 0 10px; font-size: clamp(22px, 3vw, 28px); }
.hcalc__text p { margin: 0; color: var(--ink-2); line-height: 1.6; max-width: 44ch; }
.hcalc__form { display: grid; gap: 14px; }
@media (min-width: 640px) { .hcalc__form { grid-template-columns: 1fr 1fr; } .hcalc__form .calc__modes, .hcalc__form .hcalc__result { grid-column: 1 / -1; } }
.hcalc__row label { display: block; font-size: 13px; color: var(--ink-2); margin-bottom: 6px; }
.hcalc__row .calc__input { max-width: none; }
.hcalc__select { width: 100%; height: 44px; padding: 0 12px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); font: inherit; font-size: 15px; color: var(--ink); }
.hcalc__select:focus { outline: 0; border-color: var(--ink); }
.hcalc .calc__modes { margin: 0; }
.hcalc__result { padding-top: 6px; border-top: 1px solid var(--line); }
.hcalc__big { font-size: 17px; }
.hcalc__big b { font-size: 24px; }
.hcalc__m2 { color: var(--ink-2); }
.hcalc__price { margin: 6px 0 0; font-size: 14px; color: var(--ink-2); }
.hcalc__go { margin-top: 14px; }

/* уведомление «Добавлено в корзину» */
#cart-toast {
	position: fixed; left: 50%; bottom: 24px; z-index: 950;
	display: flex; align-items: center; gap: 16px;
	padding: 12px 18px; border-radius: 999px;
	background: var(--ink); color: #fff; font-size: 14px; box-shadow: var(--shadow-lg);
	transform: translate(-50%, 20px); opacity: 0; pointer-events: none;
	transition: transform .25s, opacity .25s;
}
#cart-toast.is-on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
#cart-toast span::before { content: "✓ "; color: #7ed48d; }
#cart-toast a { color: #fff; font-weight: 700; text-decoration: none; white-space: nowrap; }
#cart-toast a:hover { text-decoration: underline; }
@media (prefers-reduced-motion: reduce) { #cart-toast { transition: none; } }
.compare__actions .but_add.to_cart { border: 0; background: var(--red); color: #fff; }
.compare__actions .but_add.to_cart:hover { background: var(--red-dark); }

/* коллекция под названием: один декор бывает в разных коллекциях (толщина/класс) */
.tile__coll { margin: -4px 0 6px; font-size: 12px; color: var(--ink-3); letter-spacing: .02em; }
.tiny_products .product_info h3 + .tile__coll { margin-top: -4px; }
#category_description .product__coll, .product__coll { margin: -8px 0 18px; font-size: 14px; color: var(--ink-2); }
.product__coll b { color: var(--ink); }
.compare__coll { display: block; margin-top: 4px; font-size: 12px; color: var(--ink-3); font-weight: 400; }
#purchases .name .tile__coll { margin: 2px 0 2px; }

/* Мобильная корзина: сумма и «удалить» — справа в одной строке с количеством, а не под картинкой */
@media (max-width: 759px) {
	.checkout #purchases tr {
		grid-template-columns: 56px minmax(0, 1fr) auto auto;
		grid-template-areas: "img name name name" ". amount price remove";
		align-items: center; gap: 8px 12px;
	}
	.checkout #purchases td.image { grid-area: img; align-self: start; }
	.checkout #purchases td.name { grid-area: name; }
	.checkout #purchases td.amount { grid-area: amount; }
	.checkout #purchases td.price { grid-area: price; text-align: right; font-size: 16px; }
	.checkout #purchases td.remove { grid-area: remove; }
	.checkout #purchases .amount .m2 { white-space: nowrap; }
}

/* Мобильный тост «добавлено»: компактная полоса вместо большого облака */
@media (max-width: 600px) {
	#cart-toast { left: 12px; right: 12px; bottom: 12px; transform: translateY(20px); padding: 12px 16px; border-radius: var(--radius-lg); gap: 12px; justify-content: space-between; font-size: 14px; }
	#cart-toast.is-on { transform: translateY(0); }
	#cart-toast span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	#cart-toast a { flex: 0 0 auto; }
	.cookie-bar:not([hidden]) ~ #cart-toast { bottom: 190px; }
}

/* Мобильное сравнение: узкая липкая колонка подписей, карточки листаются горизонтально */
@media (max-width: 759px) {
	.compare__table { font-size: 13px; }
	.compare__table th, .compare__table td { padding: 8px 10px; }
	.compare__table thead th:first-child, .compare__table tbody th { width: 104px; min-width: 104px; font-size: 10px; letter-spacing: .02em; position: sticky; left: 0; z-index: 1; background: var(--paper); box-shadow: 1px 0 0 var(--line); }
	.compare__table thead th { width: 176px; min-width: 176px; }
	.compare__table thead th:first-child { width: 104px; min-width: 104px; }
	.compare__remove { top: 12px; right: 12px; width: 28px; height: 28px; }
}

/* превью в боковых списках не сжимаются flex-контейнером — всегда квадрат 48px */
#last_products .image { flex: 0 0 48px; width: 48px; height: 48px; }
#last_products .image a { display: block; width: 48px; height: 48px; }
#last_products .image img { display: block; width: 48px; height: 48px; max-width: none; }


/* ==========================================================================
   Живые подсказки поиска
   ========================================================================== */
#search { position: relative; }
.ss {
	position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 900;
	max-height: min(70vh, 560px); overflow-y: auto;
	background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg); padding: 6px;
}
.ss[hidden] { display: none; }
.ss__group { padding: 10px 12px 4px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.ss__item {
	display: flex; align-items: center; gap: 12px;
	padding: 8px 10px; border-radius: var(--radius);
	color: var(--ink); text-decoration: none; line-height: 1.3;
}
.ss__item:hover, .ss__item.is-active { background: var(--surface); color: var(--ink); }
.ss__item img, .ss__noimg { flex: 0 0 44px; width: 44px; height: 44px; object-fit: cover; border-radius: var(--radius); background: var(--surface); }
.ss__body { flex: 1 1 auto; min-width: 0; }
.ss__name { display: block; font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ss__name mark { background: #fff1c2; color: inherit; border-radius: 2px; padding: 0 1px; }
.ss__meta { display: block; font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.ss__price { flex: 0 0 auto; text-align: right; font-variant-numeric: tabular-nums; }
.ss__price b { display: block; font-size: 14px; }
.ss__price small { display: block; font-size: 11px; color: var(--ink-3); }
.ss__item--link { font-size: 14px; font-weight: 500; }
.ss__item--link svg { flex: 0 0 auto; width: 18px; height: 18px; fill: none; stroke: var(--red); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ss__all { display: block; margin: 6px 4px 4px; padding: 10px 12px; border-top: 1px solid var(--line); font-size: 14px; font-weight: 600; color: var(--ink); text-decoration: none; }
.ss__all:hover, .ss__all.is-active { color: var(--red); }
.ss__empty { padding: 14px 12px; font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.ss__empty a { color: var(--ink); font-weight: 600; text-decoration: none; }
@media (max-width: 599px) {
	.ss { position: fixed; left: 8px; right: 8px; top: auto; margin-top: 6px; max-height: 60vh; }
	.ss__price small { display: none; }
}
@media (max-width: 599px) {
	.ss__name { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 13px; }
	.ss__price b { font-size: 13px; }
	.ss__item img, .ss__noimg { flex-basis: 40px; width: 40px; height: 40px; }
}

/* ==========================================================================
   СТРАНИЦА РЕЗУЛЬТАТОВ ПОИСКА
   ========================================================================== */
.sr-summary { margin: 10px 0 0; color: var(--ink-2); font-size: 15px; }
.sr-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: -8px 0 24px; }
.sr-nav__item {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px;
	background: var(--paper); color: var(--ink); font-size: 14px; font-weight: 500; text-decoration: none;
}
.sr-nav__item svg { width: 16px; height: 16px; fill: none; stroke: var(--red); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sr-nav__item:hover { border-color: var(--ink); color: var(--ink); }
.sr-empty { max-width: 680px; margin: 8px 0 48px; }
.sr-empty h2 { margin: 0 0 12px; font-size: 22px; }
.sr-empty p { margin: 0 0 18px; color: var(--ink-2); line-height: 1.55; }
.sr-empty__form { display: flex; gap: 8px; margin: 0 0 20px; }
.sr-empty__form input {
	flex: 1 1 auto; min-width: 0; height: 46px; padding: 0 14px;
	border: 1px solid var(--line); border-radius: var(--radius); font: inherit; font-size: 15px; background: var(--paper);
}
.sr-empty__form input:focus { outline: none; border-color: var(--ink); }
.sr-empty__form .button { height: 46px; padding: 0 22px; flex: 0 0 auto; }
.sr-empty__links { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.sr-empty__links a {
	padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px;
	color: var(--ink); font-size: 14px; font-weight: 500; text-decoration: none; background: var(--surface);
}
.sr-empty__links a:hover { border-color: var(--ink); }
.sr-empty__help { font-size: 14px; }
.sr-empty__help a { color: var(--ink); font-weight: 600; text-decoration: none; }
.sr-empty__help a:hover { color: var(--red); }
@media (max-width: 599px) {
	.sr-empty__form { flex-direction: column; }
	.sr-empty__form .button { width: 100%; }
}

/* ==========================================================================
   КАЛЬКУЛЯТОР: вкладки площадь/размеры, схема раскладки
   ========================================================================== */
/* переключатель способа ввода: сегменты с пиктограммой; на узком экране — во всю ширину, равные ячейки, иконка над подписью */
.calc__tabs { display: inline-flex; gap: 2px; margin: 0 0 12px; padding: 3px; background: var(--paper); border: 1px solid var(--line); border-radius: 999px; }
.calc__tab { display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 0; background: transparent; padding: 6px 14px; border-radius: 999px; font: inherit; font-size: 13px; font-weight: 500; line-height: 1.2; color: var(--ink-2); cursor: pointer; transition: background-color .15s, color .15s; }
.calc__tab svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; opacity: .75; }
.calc__tab:hover { color: var(--ink); }
.calc__tab.is-active { background: var(--ink); color: #fff; }
.calc__tab.is-active svg { opacity: 1; }
@media (max-width: 639px) {
	.calc__tabs { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: 100%; border-radius: 14px; }
	.calc__tab { flex-direction: column; gap: 5px; padding: 9px 4px 8px; border-radius: 11px; font-size: 12px; white-space: nowrap; }
	.calc__tab svg { width: 20px; height: 20px; flex-basis: 20px; }
}
.calc__tab:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.calc__row--dims { display: flex; gap: 12px; }
.calc__row--dims > div { flex: 1 1 0; min-width: 0; }
.calc__row--dims .calc__input { max-width: none; }
.calc__row--l { display: grid; grid-template-columns: 1fr; gap: 12px; }
.calc__row--l .calc__input { max-width: none; }
/* Г-образная: части А и Б — два блока «Длина × Ширина» с подписью части */
.calc__part { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 10px 12px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); min-width: 0; }
.calc__part legend { padding: 0 6px; margin-left: -6px; font-size: 13px; font-weight: 600; color: var(--ink); }
.calc__part legend small { font-weight: 400; color: var(--ink-3); }
.calc__part > div { min-width: 0; }
@media (min-width: 640px) { .calc__row--l { grid-template-columns: 1fr 1fr; } .hcalc .calc__row--l { grid-column: 1 / -1; } }
.calc__lhint { grid-column: 1 / -1; margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink-2); }
.calc__row[hidden], .calc__scheme[hidden] { display: none; }
.calc__complex { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; font-size: 14px; cursor: pointer; }
.calc__complex input { accent-color: var(--red); }
.calc__complex small { color: var(--ink-3); font-size: 12px; white-space: nowrap; }
.calc__modes small { white-space: nowrap; }
@media (max-width: 380px) {
	.product.page .calc__modes label { min-width: 0; flex-wrap: wrap; }
	.product.page .calc__modes small { white-space: normal; }
}
.calc__scheme { margin: 14px 0 0; }
.calc__svg { display: block; width: 100%; height: auto; border-radius: var(--radius); background: var(--paper); --plank: #d8c2a2; }
.calc__tip { margin: 10px 0 0; font-size: 13px; line-height: 1.5; color: var(--ink-2); }
.calc__tip dt { font-weight: 600; color: var(--ink); margin: 8px 0 2px; }
.calc__tip dt:first-child { margin-top: 0; }
.calc__tip dd { margin: 0; }
.calc__warn { color: var(--red); }
.calc__modes { flex-direction: column; gap: 6px; }
@media (min-width: 900px) {
	.hcalc__scheme { grid-column: 1 / -1; grid-row: auto; display: grid; grid-template-columns: minmax(0, 11fr) minmax(0, 9fr); gap: 8px 32px; align-items: start; padding-top: 24px; border-top: 1px solid var(--line); }
	.hcalc__scheme .calc__svg { grid-column: 1; grid-row: 1 / span 2; }
	.hcalc__scheme .calc__tip { grid-column: 2; grid-row: 2; margin: 0; align-self: start; }
	.hcalc__scheme .hcalc__demo { grid-row: 1; }
	.hcalc__form { grid-row: auto; } .hcalc__text { grid-row: auto; }
}
.hcalc__scheme { margin: 0; }
.hcalc .calc__tabs { margin-bottom: 0; grid-column: 1 / -1; justify-self: start; max-width: 100%; }
.hcalc .calc__tab { white-space: nowrap; }
.hcalc .calc__row--dims { display: flex; }
.hcalc .calc__row--dims[hidden] { display: none; }
.hcalc .calc__complex { grid-column: 1 / -1; margin: 0; }
.hcalc .calc__modes { flex-direction: row; gap: 8px 18px; }

/* ==========================================================================
   ФОТООТЗЫВЫ: звёзды, фото, форма, галерея /interiors
   ========================================================================== */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.rv-stars { --rv: 0; display: inline-block; position: relative; width: 5em; height: 1em; font-size: 18px; line-height: 1; vertical-align: -2px; color: #e2e2dd; letter-spacing: 0; }
.rv-stars::before, .rv-stars::after { content: "★★★★★"; position: absolute; left: 0; top: 0; letter-spacing: .05em; width: 5.2em; }
.rv-stars::after { color: #e0a300; width: calc(var(--rv) / 5 * 5.2em); overflow: hidden; white-space: nowrap; }
.rv-stars--sm { font-size: 14px; }
.rv-stars--xs { font-size: 12px; }
.rv-badge { display: inline-flex; align-items: center; gap: 8px; margin: 6px 0 14px; color: var(--ink-2); font-size: 14px; text-decoration: none; }
.rv-badge b { color: var(--ink); }
.rv-badge:hover { color: var(--red); }
.rv-summary { display: inline-flex; align-items: center; gap: 8px; margin-left: 14px; font-size: 15px; font-weight: 500; color: var(--ink-2); vertical-align: middle; }
.rv-summary b { color: var(--ink); }
.rv-photos { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; }
.rv-photos img, .rv-gallery__item img { display: block; width: 160px; height: 120px; object-fit: cover; border-radius: var(--radius); background: var(--surface); }
.rv-gallery { margin: 0 0 22px; }
.rv-gallery__head { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 10px; font-weight: 600; }
.rv-gallery__head a { font-size: 13px; font-weight: 500; color: var(--ink-2); text-decoration: none; }
.rv-gallery__head a:hover { color: var(--red); }
.rv-gallery__strip { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.rv-gallery__item { flex: 0 0 auto; scroll-snap-align: start; }
.rv-rate { border: 0; margin: 0 0 14px; padding: 0; }
.rv-rate legend { font-size: 14px; color: var(--ink-2); margin-bottom: 6px; padding: 0; }
.rv-rate__stars { display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.rv-rate__stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rv-rate__stars label { cursor: pointer; font-size: 30px; line-height: 1; color: #d6d6d0; transition: color .12s, transform .12s; }
.rv-rate__stars label::before { content: "★"; }
.rv-rate__stars label:hover, .rv-rate__stars label:hover ~ label,
.rv-rate__stars input:checked ~ label { color: #e0a300; }
.rv-rate__stars label:hover { transform: scale(1.12); }
.rv-rate__stars input:focus-visible + label { outline: 2px solid var(--red); outline-offset: 2px; border-radius: 4px; }
.comment_form label small { display: block; font-weight: 400; color: var(--ink-3); font-size: 12px; margin-top: 2px; }
.rv-upload { margin: 0 0 14px; }
.rv-upload__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.comment_form label.rv-upload__btn, .rv-upload__btn { display: inline-flex; width: auto; margin: 0; align-items: center; gap: 8px; padding: 10px 16px; border: 1px dashed var(--line-2); border-radius: var(--radius); background: var(--paper); font-size: 14px; font-weight: 500; cursor: pointer; }
.rv-upload__btn:hover { border-color: var(--ink); }
.rv-upload__input:focus-visible + .rv-upload__btn { outline: 2px solid var(--red); outline-offset: 2px; }
.rv-upload__preview { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.rv-upload__preview:empty { display: none; }
.rv-upload__preview img { width: 88px; height: 66px; object-fit: cover; border-radius: var(--radius); border: 1px solid var(--line); }
.rv-upload__preview .rv-upload__more { display: inline-flex; align-items: center; justify-content: center; width: 88px; height: 66px; border-radius: var(--radius); background: var(--surface); font-size: 13px; color: var(--ink-2); }
.rv-upload__note { flex-basis: 100%; font-size: 13px; color: var(--ink-2); }
.int-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; margin: 8px 0 40px; }
.int-card { margin: 0; }
.int-card > a { display: block; overflow: hidden; border-radius: var(--radius-lg); background: var(--surface); }
.int-card img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s; }
.int-card a:hover img { transform: scale(1.03); }
.int-card figcaption { display: flex; flex-direction: column; gap: 2px; margin-top: 8px; font-size: 14px; }
.int-card figcaption a { color: var(--ink); font-weight: 600; text-decoration: none; }
.int-card figcaption a:hover { color: var(--red); }
.int-card figcaption span { color: var(--ink-3); font-size: 13px; }
@media (max-width: 599px) {
	.rv-summary { display: flex; margin: 8px 0 0; }
	.rv-photos img, .rv-gallery__item img { width: 128px; height: 96px; }
	.int-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* Кнопка PDF-КП в сводке корзины */
.summary__pdf { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 10px 0 0; padding: 11px 14px; border: 1px solid var(--line-2); border-radius: var(--radius); color: var(--ink); font-size: 14px; font-weight: 500; text-decoration: none; background: var(--paper); }
.summary__pdf:hover { border-color: var(--ink); color: var(--ink); }

/* ==========================================================================
   ГЛАВНАЯ: декоры в интерьере (визуализации)
   ========================================================================== */
.rooms__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 20px; }
.rooms__card { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.rooms__img { position: relative; display: block; overflow: hidden; border-radius: var(--radius-lg); background: var(--surface); }
.rooms__img img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .4s; }
.rooms__card:hover .rooms__img img { transform: scale(1.03); }
.rooms__room { position: absolute; left: 12px; top: 12px; padding: 5px 10px; border-radius: 999px; background: rgba(255,255,255,.9); color: var(--ink); font-size: 12px; font-weight: 600; letter-spacing: .02em; }
.rooms__chip { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 8px 12px 8px 8px; border: 1px solid var(--line); border-radius: var(--radius-lg); color: var(--ink); text-decoration: none; background: var(--paper); }
.rooms__chip:hover { border-color: var(--ink); color: var(--ink); }
.rooms__chip > img { flex: 0 0 48px; width: 48px; height: 48px; object-fit: cover; border-radius: var(--radius); }
.rooms__chip-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rooms__chip-body b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rooms__chip-body small { font-size: 12px; color: var(--ink-3); }
.rooms__chip svg { flex: 0 0 auto; color: var(--red); }
.rooms__note { margin: 18px 0 0; max-width: 78ch; font-size: 13px; line-height: 1.55; color: var(--ink-3); }
.rooms__note a { color: var(--ink-2); }
@media (max-width: 599px) { .rooms__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; } }

/* ==========================================================================
   ЛАЙТБОКС (.lb) — замена fancybox
   ========================================================================== */
html.lb-open { overflow: hidden; }
.lb { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; padding: 24px; opacity: 0; transition: opacity .22s ease; }
.lb[hidden] { display: none; }
.lb.is-open { opacity: 1; }
.lb__backdrop { position: absolute; inset: 0; background: rgba(12, 12, 14, .86); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.lb__figure { position: relative; margin: 0; max-width: min(92vw, 1400px); max-height: calc(100vh - 48px); display: flex; flex-direction: column; align-items: center; gap: 12px; transform: translateY(12px) scale(.97); transition: transform .26s cubic-bezier(.2,.7,.2,1); }
.lb.is-open .lb__figure { transform: none; }
.lb__img { display: block; max-width: 100%; max-height: calc(100vh - 48px - 44px); width: auto; height: auto; border-radius: 10px; box-shadow: 0 30px 80px rgba(0,0,0,.55); opacity: 0; transition: opacity .25s ease; cursor: pointer; background: #1a1a1c; }
.lb__img.is-ready { opacity: 1; }
.lb--single .lb__img { cursor: zoom-out; }
.lb__cap { max-width: 80ch; color: rgba(255,255,255,.85); font-size: 14px; line-height: 1.4; text-align: center; padding: 0 8px; }
.lb__spinner { position: absolute; left: 50%; top: 40%; width: 36px; height: 36px; margin: -18px; border: 3px solid rgba(255,255,255,.25); border-top-color: #fff; border-radius: 50%; animation: lb-spin .8s linear infinite; opacity: 0; transition: opacity .15s; }
.lb.is-loading .lb__spinner { opacity: 1; }
@keyframes lb-spin { to { transform: rotate(360deg); } }
.lb__btn { position: absolute; z-index: 2; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s, transform .15s; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.lb__btn:hover { background: rgba(255,255,255,.24); }
.lb__btn:active { transform: scale(.94); }
.lb__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.lb__btn svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.lb__close { top: 20px; right: 20px; }
.lb__prev { left: 20px; top: 50%; margin-top: -24px; }
.lb__next { right: 20px; top: 50%; margin-top: -24px; }
.lb--single .lb__prev, .lb--single .lb__next, .lb--single .lb__counter { display: none; }
.lb__counter { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); padding: 4px 12px; border-radius: 999px; background: rgba(255,255,255,.12); color: #fff; font-size: 13px; font-variant-numeric: tabular-nums; }
@media (max-width: 599px) {
	.lb { padding: 12px; }
	.lb__prev, .lb__next { display: none; }
	.lb__close { top: 12px; right: 12px; width: 42px; height: 42px; }
	.lb__img { max-height: calc(100vh - 24px - 60px); border-radius: 8px; }
	.lb__cap { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { .lb, .lb__figure, .lb__img { transition: none; } }

/* Интерьеры: примеры от магазина и подсказка «как добавить фото» */
.int-example { display: inline-block; padding: 1px 7px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); color: var(--ink-2); font-size: 11px; font-style: normal; font-weight: 500; letter-spacing: .02em; vertical-align: middle; }
.int-howto { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 28px; margin: 0 0 24px; padding: 18px 22px; background: var(--surface); border-radius: var(--radius-lg); }
.int-howto > div { flex: 1 1 420px; }
.int-howto b { display: block; margin-bottom: 4px; font-size: 16px; }
.int-howto p { margin: 0; color: var(--ink-2); line-height: 1.55; font-size: 14px; max-width: 70ch; }
.int-howto .button { flex: 0 0 auto; }

/* Калькулятор: список возможностей, демо-подпись, страница /kalkulyator-laminata */
.hcalc__list { margin: 14px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.hcalc__list li { position: relative; padding-left: 22px; font-size: 14px; line-height: 1.5; color: var(--ink-2); }
.hcalc__list li::before { content: ""; position: absolute; left: 0; top: 8px; width: 12px; height: 12px; border-radius: 3px; background: var(--red); }
.hcalc__list b { color: var(--ink); }
.hcalc__demo { margin: 0 0 10px; padding: 8px 12px; border-radius: var(--radius); background: #fff8e1; color: #6b4d00; font-size: 13px; }
.hcalc__demo[hidden] { display: none; }
@media (min-width: 900px) { .hcalc__scheme .hcalc__demo { grid-column: 2; margin-bottom: 0; } }
.calc__more { margin: 12px 0 0; font-size: 13px; }
.calc__more a { color: var(--ink-2); text-decoration: underline; text-decoration-color: var(--line-2); }
.calc__more a:hover { color: var(--red); }
.calc-faq { margin: 40px 0 8px; }
.calc-faq h2 { font-size: clamp(20px, 3vw, 26px); margin: 0 0 12px; }
.calc-faq details { border-top: 1px solid var(--line); }
.calc-faq details:last-child { border-bottom: 1px solid var(--line); }
.calc-faq summary { cursor: pointer; padding: 14px 0; font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.calc-faq summary::-webkit-details-marker { display: none; }
.calc-faq summary::after { content: "+"; color: var(--ink-3); font-size: 20px; line-height: 1; }
.calc-faq details[open] summary::after { content: "–"; }
.calc-faq p { margin: 0 0 16px; color: var(--ink-2); line-height: 1.6; max-width: 78ch; }
#page-calc .hcalc { margin-top: 8px; }
.calc-faq { max-width: 78ch; }

/* Карточка: пояснения к схеме свёрнуты, чтобы не удлинять страницу */
.calc__details { margin: 8px 0 0; }
.calc__details summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 13px; font-weight: 600; color: var(--ink-2); }
.calc__details summary::-webkit-details-marker { display: none; }
.calc__details summary::before { content: ""; width: 7px; height: 7px; border-right: 2px solid var(--ink-3); border-bottom: 2px solid var(--ink-3); transform: rotate(-45deg); transition: transform .15s; margin-left: 2px; }
.calc__details[open] summary::before { transform: rotate(45deg); }
.calc__details summary:hover { color: var(--ink); }
.calc__details .calc__tip { margin-top: 4px; }

/* ==========================================================================
   ПОДВАЛ НА ТЕЛЕФОНЕ: одна колонка, сначала контакты, разделы в две колонки, телефоны не переносятся
   ========================================================================== */
.footer__phone { white-space: nowrap; }
@media (max-width: 899px) {
	#footer { padding-top: 32px; padding-bottom: 28px; }
	.footer__grid { grid-template-columns: 1fr; gap: 26px; padding-bottom: 26px; }
	.footer__contacts { order: 1; }
	.footer_menu[aria-label="Разделы сайта"] { order: 2; }
	.footer__brand { order: 3; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .12); }
	.footer__brand .footer__logo { width: 120px; margin-bottom: 10px; }
	.footer__brand p { max-width: none; font-size: 13px; line-height: 1.55; }
	.footer_menu h2 { margin-bottom: 10px; }
	.footer_menu[aria-label="Разделы сайта"] ul { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 16px; }
	.footer_menu li { margin-bottom: 4px; }
	.footer__contacts li { margin-bottom: 6px; }
	.footer__contacts .footer__phone { display: inline-block; margin: 0 0 4px; padding: 8px 14px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; font-size: 17px; }
	.footer__bottom { padding-top: 18px; font-size: 12px; }
	.footer__legal-links { display: flex; flex-direction: column; gap: 4px; }
	.footer__legal-links a + a { margin-left: 0; }
	.footer__legal { margin-bottom: 10px; }
	.footer__copy { flex-direction: column; gap: 4px; }
	.footer__dev { margin-left: 0; }
}

/* Подвал: контакты с иконками */
.footer__ct li { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; line-height: 1.5; }
.footer__ct svg { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 3px; fill: none; stroke: var(--red); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.footer__ct .footer__phone { margin: 0; line-height: 1.3; }
.footer__ct li:has(.footer__phone) svg { margin-top: 4px; }
@media (max-width: 899px) {
	.footer__ct li { align-items: center; }
	.footer__ct .footer__phone { padding: 7px 12px; font-size: 16px; }
	.footer__ct svg { margin-top: 0; }
	.footer__ct li:has(.footer__phone) svg { margin-top: 0; }
}

/* ==========================================================================
   Заказ образцов: кнопка в карточке, модалка
   ========================================================================== */
.smp-open, .smp-open-cmp { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--paper); color: var(--ink); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.smp-open:hover, .smp-open-cmp:hover { border-color: var(--red); color: var(--red); }
.smp-open svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
.compare__hint .smp-open-cmp { margin-left: 16px; }
.smp { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; padding: 16px; opacity: 0; transition: opacity .2s ease; }
.smp.is-on { opacity: 1; }
.smp__backdrop { position: absolute; inset: 0; background: rgba(12, 12, 14, .55); }
.smp__box { position: relative; width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto; padding: 26px 26px 22px; background: #fff; border-radius: 16px; box-shadow: 0 24px 70px rgba(0,0,0,.3); transform: translateY(10px); transition: transform .22s ease; }
.smp.is-on .smp__box { transform: none; }
.smp__box h2 { margin: 0 32px 8px 0; font-size: 22px; }
.smp__lead { margin: 0 0 16px; font-size: 14px; line-height: 1.55; color: var(--ink-2); }
.smp__close { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; background: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.smp__items { display: grid; gap: 6px; margin: 0 0 14px; padding: 12px 14px; background: var(--surface); border-radius: 10px; }
.smp__item { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.4; cursor: pointer; }
.smp__item input { margin-top: 3px; accent-color: var(--red); }
.smp__more { margin: 4px 0 0; font-size: 12px; color: var(--ink-3); }
.smp__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; margin-bottom: 10px; }
.smp__box label { display: block; font-size: 13px; color: var(--ink-2); }
.smp__box label > input:not([type=checkbox]):not([type=radio]), .smp__box label > select, .smp__box label > textarea { display: block; width: 100%; margin-top: 5px; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; font: inherit; font-size: 15px; color: var(--ink); }
.smp__delivery { margin: 0 0 10px; padding: 0; border: 0; }
.smp__delivery legend { font-size: 13px; color: var(--ink-2); margin-bottom: 6px; }
.smp__delivery label { display: inline-flex; align-items: center; gap: 6px; margin: 0 16px 6px 0; font-size: 14px; color: var(--ink); }
.smp__delivery input { accent-color: var(--red); }
.smp__store, .smp__cdek { margin-bottom: 10px; }
.smp__box .consent { display: flex; gap: 8px; margin: 12px 0 10px; font-size: 12px; line-height: 1.45; }
.smp__msg { min-height: 18px; margin: 0 0 8px; font-size: 13px; color: var(--red); }
.smp__submit { width: 100%; }
.smp .hp { position: absolute; left: -9999px; }
.smp [hidden] { display: none !important; }
@media (max-width: 520px) { .smp { padding: 0; align-items: flex-end; } .smp__box { max-height: 100vh; border-radius: 16px 16px 0 0; padding: 22px 18px 18px; } .smp__grid { grid-template-columns: 1fr; } }

/* ==== Бренды: EVERSENSE в шапке, страницы брендов (changes-20260915-brands) ==== */
.mainnav .nav-eversense { display: none; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 10px; height: 50px; margin: 7px 0 7px auto; padding: 0 12px; border-radius: var(--radius); color: var(--ink); text-decoration: none; white-space: nowrap; }
.nav-eversense img { display: block; width: auto; height: 30px; opacity: .85; transition: opacity .2s; }
.nav-eversense__new { order: -1; }
.nav-eversense:hover img { opacity: 1; }
.nav-eversense__new { padding: 3px 8px; border-radius: 999px; background: var(--red); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1; }
@media (min-width: 1000px) { .mainnav .nav-eversense { display: inline-flex; } #section_menu { flex: 0 1 auto; align-items: center; } }
.drawer__eversense { display: flex; align-items: center; gap: 12px; margin: 4px 0 18px; padding: 10px 12px; border: 1px solid var(--line, #e6e6e6); border-radius: var(--radius); color: var(--ink); text-decoration: none; }
.drawer__eversense img { width: 92px; height: auto; }
.drawer__eversense span { font-size: 12px; color: var(--red); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.footer__brands { margin: 14px 0 0; font-size: 13px; }
.footer__brands span { opacity: .6; }
.footer__brands a { margin-left: 10px; color: #fff; font-weight: 700; letter-spacing: .04em; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.35); }
.footer__brands a:hover { border-bottom-color: #fff; }
.brand-hero { display: grid; grid-template-columns: minmax(180px, 260px) 1fr; gap: 32px 48px; align-items: start; margin: 0 0 40px; padding: 28px 32px; background: var(--bg-2, #f6f6f6); border-radius: var(--radius); }
.brand-hero__logo img { width: 100%; max-width: 260px; height: auto; }
.brand-hero__body { color: var(--ink-2); font-size: 15px; line-height: 1.55; }
.brand-hero__body .brand-lead { margin: 0 0 20px; font-size: 17px; color: var(--ink); }
.brand-hero__body h2 { margin: 26px 0 10px; font-size: 20px; color: var(--ink); }
.brand-hero__body p { margin: 0 0 12px; }
.brand-hero__body ul { margin: 0 0 14px 18px; padding: 0; }
.brand-hero__body li { margin: 0 0 6px; }
.brand-hero__body .brand-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin: 0 0 8px; padding: 0; list-style: none; }
.brand-hero__body .brand-facts li { margin: 0; padding: 12px 14px; background: #fff; border-radius: calc(var(--radius) - 2px); border: 1px solid var(--line, #e6e6e6); }
.brand-hero__body .brand-facts b { display: block; margin-bottom: 4px; font-size: 18px; color: var(--red); line-height: 1.1; }
.brand-hero__body .brand-facts span { font-size: 13px; line-height: 1.4; }
.brand-hero__body .brand-docs { margin: 0 0 14px; padding: 0; list-style: none; }
.brand-hero__body .brand-docs li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 0 0 8px; padding-left: 26px; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d0021b' stroke-width='2'><path d='M6 2h8l5 5v15H6z'/><path d='M14 2v5h5'/></svg>") 0 .15em / 18px no-repeat; }
.brand-hero__body .brand-docs a { font-weight: 600; }
.brand-hero__body .brand-docs small { color: var(--ink-3, #777); font-size: 12px; }
.brand-hero__body .brand-more { margin-top: 18px; font-size: 13px; color: var(--ink-3, #777); }
.brand-hero--below { margin: 40px 0 0; }
.brand-hero__title { grid-column: 1 / -1; margin: 0 0 -8px; font-size: 24px; color: var(--ink); }
@media (max-width: 799px) { .brand-hero { grid-template-columns: 1fr; gap: 18px; padding: 20px 18px; } .brand-hero__logo img { max-width: 180px; } }








/* ==== Блок «Декоры к статье» в блоге (changes-20260916-commerce) ==== */
.post-shop { margin: 36px 0 28px; padding: 24px 24px 22px; background: var(--surface); border-radius: var(--radius-lg); }
.post-shop__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; margin: 0 0 16px; }
.post-shop__head .eyebrow { flex: 1 1 100%; }
.post-shop__head h2 { flex: 1 1 320px; margin: 0; font-size: clamp(18px, 2.2vw, 22px); line-height: 1.25; }
.post-shop__all { flex: 0 1 auto; min-width: 0; font-size: 13px; font-weight: 600; color: var(--ink); border-bottom: 1px solid var(--line-2); }
.post-shop__all:hover { color: var(--red); border-color: var(--red); }
.post-shop__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 700px) { .post-shop__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.post-shop__item { display: flex; flex-direction: column; gap: 3px; padding: 8px 8px 10px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.post-shop__item:hover { border-color: var(--ink-3); box-shadow: var(--shadow); color: var(--ink); }
.post-shop__img { display: block; aspect-ratio: 4 / 3; margin: 0 0 6px; border-radius: 3px; background: var(--surface-2) center/cover no-repeat; }
.post-shop__item b { font-size: 13px; line-height: 1.25; }
.post-shop__item span { font-size: 11px; color: var(--ink-3); }
.post-shop__item em { margin-top: 2px; font-style: normal; font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.post-shop__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 18px 0 0; padding: 16px 18px; border-radius: var(--radius); background: var(--dark); color: #fff; }
.post-shop__cta-text { flex: 1 1 260px; display: flex; flex-direction: column; gap: 3px; }
.post-shop__cta-text b { font-size: 15px; }
.post-shop__cta-text span { font-size: 13px; line-height: 1.45; color: rgba(255,255,255,.7); }
.post-shop__cta .button { margin: 0; white-space: nowrap; }
.post-shop__link { font-size: 13px; color: rgba(255,255,255,.8); border-bottom: 1px solid rgba(255,255,255,.3); white-space: nowrap; }
.post-shop__link:hover { color: #fff; border-color: #fff; }
@media (max-width: 639px) { .post-shop { padding: 18px 16px; } .post-shop__cta .button { flex: 1 1 100%; text-align: center; } }
/* внутри статьи ссылки и b стилизованы глобально — перебиваем */
#category_description .post-shop a { text-decoration: none; border-bottom: 0; }
#category_description .post-shop__item, #category_description .post-shop__item b, #category_description .post-shop__item em { color: var(--ink); }
#category_description .post-shop__item span { color: var(--ink-3); }
#category_description .post-shop__all { color: var(--ink); border-bottom: 1px solid var(--line-2); }
#category_description .post-shop__all:hover { color: var(--red); border-color: var(--red); }
#category_description .post-shop__cta-text b { color: #fff; }
#category_description .post-shop__link { color: rgba(255,255,255,.85); border-bottom: 1px solid rgba(255,255,255,.3); }
#category_description .post-shop__cta .button { color: #fff; }

/* ==== Калькулятор v2/v3 «лист расчёта»: одна ось подписей, размеры на схеме, талон во всю ширину, PNG (changes-20260915-hcalc2) ==== */
.hcalc--v3 { display: block; padding: 28px 20px 24px; }
@media (min-width: 900px) { .hcalc--v3 { padding: 40px 44px 36px; } }
/* Шапка: заголовок слева, три шага справа */
.hcalc--v3 .hcalc__head { display: grid; gap: 20px; margin: 0 0 28px; padding: 0 0 24px; border-bottom: 1px solid var(--line-2); }
@media (min-width: 900px) { .hcalc--v3 .hcalc__head { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 48px; align-items: end; } }
.hcalc--v3 h2 { margin: 6px 0 0; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; letter-spacing: -.015em; max-width: 18ch; }
.hcalc--v3 .hcalc__steps { margin: 0; padding: 0; list-style: none; counter-reset: st; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 20px; }
.hcalc--v3 .hcalc__steps li { counter-increment: st; position: relative; padding: 8px 0 0 0; border-top: 1px solid var(--line-2); font-size: 13px; line-height: 1.4; color: var(--ink-2); }
.hcalc--v3 .hcalc__steps li::before { content: "0" counter(st); display: block; margin-bottom: 8px; font-size: 11px; font-weight: 700; letter-spacing: .12em; color: var(--red); font-variant-numeric: tabular-nums; }
.hcalc--v3 .hcalc__steps b { display: block; margin-bottom: 2px; font-size: 14px; color: var(--ink); }
@media (max-width: 639px) { .hcalc--v3 .hcalc__steps { grid-template-columns: 1fr; gap: 8px; } .hcalc--v3 .hcalc__steps li { display: grid; grid-template-columns: 30px 1fr; gap: 0 8px; padding-top: 8px; } .hcalc--v3 .hcalc__steps li::before { margin: 2px 0 0; } .hcalc--v3 .hcalc__steps span { grid-column: 2; } }
/* Рабочая область: форма | схема; талон — во всю ширину под ними */
.hcalc--v3 .hcalc__work { display: grid; gap: 20px; }
@media (min-width: 900px) { .hcalc--v3 .hcalc__work { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 40px; align-items: stretch; } }
.hcalc--v3 .hcalc__form { display: flex; flex-direction: column; justify-content: space-between; padding: 0; margin: 0; border: 0; background: transparent; container-type: inline-size; container-name: hcform; }
.hcalc--v3 .calc__tabs, .hcalc--v3 .calc__modes, .hcalc--v3 .calc__complex, .hcalc--v3 .calc__row--l, .hcalc--v3 .calc__row--dims { grid-column: auto; grid-row: auto; justify-self: stretch; } /* сброс старых span-правил .hcalc */
/* Поле = строка листа: подпись в узкой колонке, контрол справа, тонкая линия снизу */
.hcalc--v3 .hcalc__field { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 10px 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line); }
.hcalc--v3 .hcalc__field[hidden] { display: none; }
.hcalc--v3 .hcalc__field:first-child { padding-top: 0; }
.hcalc__label { font-size: 11px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); line-height: 1.3; }
.hcalc__label small { display: block; font-weight: 400; letter-spacing: 0; text-transform: none; font-size: 11px; color: var(--ink-3); }
@media (max-width: 639px) { .hcalc--v3 .hcalc__field { grid-template-columns: minmax(0, 1fr); gap: 6px; } }
/* Вкладки-сегменты */
.hcalc--v3 .calc__tabs { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: 100%; margin: 0; padding: 2px; gap: 2px; background: var(--surface-2); border: 0; border-radius: 6px; }
.hcalc--v3 .calc__tab { display: block; padding: 8px 6px; border-radius: 4px; font-size: 13px; font-weight: 600; line-height: 1.2; color: var(--ink-2); white-space: nowrap; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.hcalc--v3 .calc__tab:hover { color: var(--ink); }
.hcalc--v3 .calc__tab.is-active { background: var(--paper); color: var(--ink); box-shadow: 0 1px 2px rgba(22,24,26,.12); }
@media (max-width: 639px) { .hcalc--v3 .calc__tab { font-size: 12px; letter-spacing: -.02em; padding: 8px 2px; } .hcalc--v3 .calc__modes label { font-size: 12px; padding: 0 8px 0 10px; } .hcalc--v3 .calc__modes em { font-size: 11px; } }
/* Числовые поля: рамка на обёртке, единица внутри */
.hcalc__pair { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; min-width: 0; }
.hcalc__num { display: inline-flex; align-items: center; height: 40px; padding: 0 10px 0 0; border: 1px solid var(--line-2); border-radius: 4px; background: var(--paper); transition: border-color .15s, box-shadow .15s; }
.hcalc__num:focus-within { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(22,24,26,.08); }
.hcalc__num .calc__input { width: 64px; height: 38px; margin: 0; padding: 0 6px 0 10px; border: 0; background: transparent; font: inherit; font-size: 16px; font-weight: 600; color: var(--ink); text-align: right; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.hcalc__num .calc__input::-webkit-outer-spin-button, .hcalc__num .calc__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.hcalc__num .calc__input::placeholder { color: var(--line-2); font-weight: 500; }
.hcalc__num .calc__input:focus { outline: 0; }
.hcalc__num i { font-style: normal; font-size: 12px; color: var(--ink-3); }
.hcalc__x { font-size: 14px; color: var(--ink-3); }
.hcalc__hint { flex: 1 1 100%; font-size: 12px; line-height: 1.4; color: var(--ink-3); }
/* Коллекция */
.hcalc__select-wrap { position: relative; display: block; min-width: 0; }
.hcalc__select-wrap::after { content: ""; position: absolute; right: 13px; top: 50%; width: 7px; height: 7px; border: solid var(--ink-2); border-width: 0 1.5px 1.5px 0; transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.hcalc--v3 .hcalc__select { width: 100%; height: 40px; padding: 0 34px 0 12px; border: 1px solid var(--line-2); border-radius: 4px; background: var(--paper); font: inherit; font-size: 14px; font-weight: 500; color: var(--ink); -webkit-appearance: none; appearance: none; text-overflow: ellipsis; }
.hcalc--v3 .hcalc__select:focus { outline: 0; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(22,24,26,.08); }
/* Схема укладки — чипы 2×2 */
.hcalc--v3 .calc__modes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: 0; }
.hcalc--v3 .calc__modes label { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 38px; padding: 0 10px 0 12px; border: 1px solid var(--line-2); border-radius: 4px; background: var(--paper); font-size: 13px; font-weight: 500; color: var(--ink); cursor: pointer; transition: border-color .15s, background .15s; }
.hcalc--v3 .calc__modes label:hover { border-color: var(--ink-3); }
.hcalc--v3 .calc__modes input { position: absolute; opacity: 0; width: 0; height: 0; }
.hcalc--v3 .calc__modes em { font-style: normal; font-size: 12px; color: var(--ink-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.hcalc--v3 .calc__modes label:has(input:checked) { border-color: var(--ink); background: var(--ink); color: #fff; }
.hcalc--v3 .calc__modes label:has(input:checked) em { color: rgba(255,255,255,.65); }
.hcalc--v3 .calc__modes label:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(22,24,26,.15); }
/* Планировка — переключатель */
.hcalc--v3 .calc__complex { display: flex; align-items: center; gap: 10px; margin: 0; min-height: 38px; font-size: 13px; font-weight: 500; color: var(--ink); cursor: pointer; }
.hcalc--v3 .calc__complex input { position: absolute; opacity: 0; width: 0; height: 0; }
.hcalc__knob { flex: 0 0 34px; position: relative; width: 34px; height: 20px; border-radius: 10px; background: var(--line-2); transition: background .2s; }
.hcalc__knob::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: transform .2s; }
.hcalc--v3 .calc__complex input:checked + .hcalc__knob { background: var(--ink); }
.hcalc--v3 .calc__complex input:checked + .hcalc__knob::after { transform: translateX(14px); }
.hcalc--v3 .calc__complex input:focus-visible + .hcalc__knob { box-shadow: 0 0 0 3px rgba(22,24,26,.15); }
.hcalc--v3 .calc__complex em { margin-left: auto; font-style: normal; font-size: 12px; color: var(--ink-3); white-space: nowrap; }
/* Схема: чертёжный лист */
.hcalc--v3 .hcalc__scheme { display: block; grid-column: auto; grid-row: auto; margin: 0; padding: 0; border: 0; }
.hcalc__sheet { display: flex; flex-direction: column; height: 100%; scroll-margin-top: 12px; border: 1px solid var(--line-2); border-radius: 6px; background: var(--paper); overflow: hidden; }
.hcalc__sheet-bar { display: flex; align-items: center; gap: 10px; padding: 9px 14px; border-bottom: 1px solid var(--line); background: var(--surface); }
.hcalc__sheet-title { flex: 0 0 auto; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); white-space: nowrap; }
.hcalc--v3 .hcalc__demo { margin: 0; padding: 2px 8px; border-radius: 3px; background: #fff3c4; color: #6b4d00; font-size: 11px; font-weight: 600; white-space: nowrap; }
.hcalc--v3 .hcalc__demo[hidden] { display: none; }
.hcalc__canvas { flex: 1 1 auto; display: flex; align-items: center; background-color: var(--paper); background-image: linear-gradient(rgba(22,24,26,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(22,24,26,.045) 1px, transparent 1px); background-size: 24px 24px; background-position: 0 0; }
.hcalc__stage { position: relative; width: 100%; }
.hcalc--v3 .calc__svg { display: block; width: 100%; height: auto; background: transparent; border: 0; }
.hcalc--v3 .calc__svg .dimtxt { display: none; }
.hcalc__dims { position: absolute; inset: 0; pointer-events: none; }
.hcalc__dim { position: absolute; transform: translate(-50%, -100%); /* горизонтальная бирка — целиком над размерной линией, как вертикальная — слева от неё */ display: inline-flex; align-items: center; height: 26px; padding: 0 8px 0 4px; border: 1px solid var(--ink); border-radius: 3px; background: var(--paper); box-shadow: 0 1px 2px rgba(22,24,26,.15); font-size: 12px; color: var(--ink-3); pointer-events: auto; cursor: text; transition: border-color .15s, box-shadow .15s; }
.hcalc__dim--v { transform: translate(-100%, -50%); }
.hcalc__dim--approx { border-color: var(--line-2); }
.hcalc__dim--approx::before { content: "≈"; margin: 0 0 0 4px; font-size: 11px; }
.hcalc__dim:hover { border-color: var(--ink); }
.hcalc__dim:focus-within { border-color: var(--red); box-shadow: 0 0 0 3px rgba(218,23,55,.15); }
.hcalc__dim input { width: 40px; border: 0; padding: 0 3px; background: transparent; font: inherit; font-size: 13px; font-weight: 700; color: var(--ink); text-align: right; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.hcalc__dim input::-webkit-outer-spin-button, .hcalc__dim input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.hcalc__dim input:focus { outline: 0; }
.hcalc__legend { display: flex; align-items: center; gap: 8px; margin: 0; padding: 8px 14px; border-top: 1px solid var(--line); font-size: 11px; line-height: 1.4; color: var(--ink-3); }
.hcalc__legend i { flex: 0 0 18px; height: 8px; border: 2px solid var(--red); border-radius: 1px; }
/* Талон результата — тёмная полоса во всю ширину */
.hcalc--v3 .hcalc__result { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 28px; margin: 4px 0 0; padding: 16px 24px; border: 0; border-radius: 6px; background: var(--dark); color: #fff; }
.hcalc--v3 .hcalc__result[hidden] { display: none; }
.hcalc__ticket { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 28px; }
.hcalc__stat { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.hcalc__stat b { font-weight: 700; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.hcalc__stat span { font-size: 13px; color: rgba(255,255,255,.7); }
.hcalc__stat--main b { font-size: 40px; color: #fff; }
.hcalc__stat--main span { font-size: 14px; font-weight: 600; color: #fff; }
.hcalc__stat--sum b { font-size: 26px; }
.hcalc__meta { display: flex; gap: 14px; margin: 0; font-size: 13px; color: rgba(255,255,255,.7); white-space: nowrap; }
.hcalc__meta b { font-weight: 600; color: #fff; font-variant-numeric: tabular-nums; }
.hcalc__meta i { font-style: normal; }
.hcalc--v3 .hcalc__price { order: 3; flex: 1 1 100%; margin: 0; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.12); font-size: 12px; line-height: 1.45; color: rgba(255,255,255,.6); }
.hcalc--v3 .hcalc__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 0; flex: 1 0 auto; }
.hcalc__actions-tools { display: flex; flex-wrap: wrap; gap: 8px; }
.hcalc--v3 .hcalc__go { margin: 0; height: 42px; padding: 0 20px; white-space: nowrap; }
.hcalc__btn { display: inline-flex; align-items: center; gap: 7px; height: 42px; padding: 0 14px; border: 1px solid rgba(255,255,255,.25); border-radius: var(--radius); background: transparent; color: #fff; font: inherit; font-size: 13px; font-weight: 600; white-space: nowrap; cursor: pointer; transition: border-color .15s, background .15s; }
.hcalc__btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.hcalc__btn:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.hcalc__btn.is-done { border-color: #4caf50; color: #8fe29a; }
.hcalc__empty { grid-column: 1 / -1; margin: 4px 0 0; padding: 14px 20px; border: 1px dashed var(--line-2); border-radius: 6px; font-size: 13px; color: var(--ink-3); text-align: center; }
.hcalc__result:not([hidden]) + .hcalc__empty { display: none; }
@media (max-width: 899px) { .hcalc--v3 .hcalc__scheme { order: -1; } .hcalc--v3 .hcalc__result { padding: 16px 18px; gap: 12px 20px; } .hcalc--v3 .hcalc__actions { margin-left: 0; flex: 1 1 100%; } .hcalc--v3 .hcalc__go { flex: 1 1 100%; text-align: center; } }
/* Пояснения — под всем, три колонки */
.hcalc--v3 .hcalc__notes { margin: 28px 0 0; padding: 22px 0 0; border-top: 1px solid var(--line-2); font-size: 13px; line-height: 1.55; color: var(--ink-2); }
@media (min-width: 900px) { .hcalc--v3 .hcalc__notes { columns: 3 240px; column-gap: 40px; } }
.hcalc--v3 .hcalc__notes dt { margin: 0 0 4px; font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--ink); break-after: avoid; }
.hcalc--v3 .hcalc__notes dd { margin: 0 0 16px; break-inside: avoid; }
/* Узкая форма (страница с сайдбаром ≈410px): уже колонка подписей, мельче вкладки и чипы */
@media (min-width: 640px) { @container hcform (max-width: 440px) { .hcalc--v3 .hcalc__field { grid-template-columns: 84px minmax(0, 1fr); gap: 10px; } .hcalc--v3 .calc__tab { font-size: 12px; letter-spacing: -.02em; padding: 8px 2px; } .hcalc--v3 .calc__modes label { font-size: 12px; padding: 0 8px 0 10px; } .hcalc--v3 .calc__modes em { font-size: 11px; } .hcalc--v3 .calc__complex { font-size: 12px; } } }
/* ==== Калькулятор: выбор декора, «В корзину», расчёт менеджеру (changes-20260915-hcalc-order) ==== */
.hcalc__decor { position: relative; min-width: 0; }
.hcalc__decor-btn { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 5px 12px 5px 5px; border: 1px solid var(--line-2); border-radius: 4px; background: var(--paper); font: inherit; text-align: left; color: var(--ink); cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.hcalc__decor-btn:hover { border-color: var(--ink-3); }
.hcalc__decor-btn:focus-visible, .hcalc__decor.is-open .hcalc__decor-btn { outline: 0; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(22,24,26,.08); }
.hcalc__decor-thumb { flex: 0 0 48px; width: 48px; height: 36px; border-radius: 3px; background: var(--surface-2) center/cover no-repeat; position: relative; }
.hcalc__decor-btn:not(.is-set) .hcalc__decor-thumb { background-image: repeating-linear-gradient(90deg, #e3d4bc 0 14px, #d6c4a8 14px 15px); opacity: .55; }
.hcalc__decor-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.hcalc__decor-name { font-size: 13px; font-weight: 600; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hcalc__decor-sub { font-size: 11px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.hcalc__decor-caret { flex: 0 0 auto; width: 7px; height: 7px; margin: -3px 2px 0 0; border: solid var(--ink-2); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); transition: transform .15s; }
.hcalc__decor.is-open .hcalc__decor-caret { transform: rotate(225deg); margin-top: 3px; }
.hcalc__decor-list { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 30; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; max-height: 340px; overflow: auto; padding: 8px; border: 1px solid var(--line-2); border-radius: 6px; background: var(--paper); box-shadow: var(--shadow-lg); overscroll-behavior: contain; }
.hcalc__decor-list[hidden] { display: none; }
@media (min-width: 640px) { .hcalc__decor-list { left: -116px; grid-template-columns: repeat(3, minmax(0, 1fr)); } } /* шире колонки контрола — под подпись тоже */
@media (min-width: 640px) { @container hcform (max-width: 440px) { .hcalc__decor-list { left: -94px; } } }
.hcalc__tile { display: flex; flex-direction: column; gap: 3px; padding: 5px 5px 7px; border: 1px solid transparent; border-radius: 4px; background: transparent; font: inherit; text-align: left; color: var(--ink); cursor: pointer; min-width: 0; transition: border-color .15s, background .15s; }
.hcalc__tile:hover { background: var(--surface); }
.hcalc__tile.is-cur { border-color: var(--ink); }
.hcalc__tile:focus-visible { outline: 2px solid var(--red); outline-offset: 1px; }
.hcalc__tile-img { display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: 3px; background: var(--surface-2) center/cover no-repeat; }
.hcalc__tile--any .hcalc__tile-img { background-image: repeating-linear-gradient(90deg, #e3d4bc 0 14px, #d6c4a8 14px 15px); opacity: .55; }
.hcalc__tile b { font-size: 12px; font-weight: 600; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hcalc__tile span:last-child { font-size: 11px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
/* Кнопка корзины в талоне */
.hcalc--v3 .hcalc__cart { display: inline-flex; align-items: center; gap: 8px; margin: 0; height: 42px; padding: 0 20px; white-space: nowrap; }
.hcalc--v3 .hcalc__cart[hidden], .hcalc--v3 .hcalc__go[hidden] { display: none; }
.hcalc__cart svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.hcalc--v3 .hcalc__cart.is-done { background: #2f7d4a; border-color: #2f7d4a; }
.hcalc--v3 .hcalc__cart:disabled { opacity: .6; cursor: wait; }
/* Модалка «расчёт менеджеру»: сводка расчёта */
.smp__calc { display: flex; flex-direction: column; gap: 2px; margin: 0 0 14px; padding: 10px 14px; border-left: 3px solid var(--red); background: var(--surface); font-size: 13px; color: var(--ink-2); }
.smp__calc b { font-size: 15px; color: var(--ink); }
/* Липкая полоска итога на телефоне */
.hcalc__sticky { position: fixed; left: 12px; right: 92px; bottom: 12px; z-index: 900; display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 52px; padding: 8px 12px 8px 14px; border: 0; border-radius: 8px; background: var(--dark); color: #fff; box-shadow: var(--shadow-lg); font: inherit; text-align: left; cursor: pointer; transform: translateY(calc(100% + 16px)); opacity: 0; pointer-events: none; transition: transform .25s ease, opacity .25s ease; }
.hcalc__sticky.is-on { transform: none; opacity: 1; pointer-events: auto; }
.hcalc__sticky-txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.hcalc__sticky-packs { font-size: 15px; font-weight: 700; white-space: nowrap; }
.hcalc__sticky-sum { font-size: 12px; color: rgba(255,255,255,.7); white-space: nowrap; font-variant-numeric: tabular-nums; }
.hcalc__sticky-cta { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; padding: 8px 10px; border-radius: 5px; background: var(--red); font-size: 12px; font-weight: 700; white-space: nowrap; }
.hcalc__sticky-cta i { width: 7px; height: 7px; margin-top: -3px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
@media (min-width: 480px) { .hcalc__sticky { right: 140px; } }
@media (min-width: 900px) { .hcalc__sticky { display: none; } }
/* Меню стены: вход / окно */
.hcalc__wallmenu { position: absolute; z-index: 31; display: flex; gap: 2px; padding: 3px; border-radius: 6px; background: var(--dark); box-shadow: var(--shadow-lg); transform: translate(-50%, -100%) translateY(-10px); }
.hcalc__wallmenu[hidden] { display: none; }
.hcalc__wallmenu::after { content: ""; position: absolute; left: calc(50% + var(--ax, 0px)); bottom: -5px; width: 10px; height: 10px; margin-left: -5px; background: var(--dark); transform: rotate(45deg); } /* стрелка — в точку клика, даже если меню прижато к краю */
.hcalc__wallmenu.is-below { transform: translate(-50%, 0) translateY(12px); }
.hcalc__wallmenu.is-below::after { bottom: auto; top: -5px; }
.hcalc__wallmenu button { padding: 7px 11px; border: 0; border-radius: 4px; background: transparent; color: #fff; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.hcalc__wallmenu button:hover { background: rgba(255,255,255,.12); }
.hcalc__wallmenu button.is-cur { background: var(--red); }
.hcalc__legend b { font-weight: 600; color: var(--ink-2); }
.calc__svg .wall:hover { stroke: rgba(218,23,55,.12); }

/* ==== Купить в 1 клик (changes-20260919-compete) ==== */
.buy-row { display: flex; gap: 10px; }
.product.page .buy-row .but_add.to_cart { flex: 1 1 58%; width: auto; }
.product.page .buy-row .but_add.qo-open { flex: 1 1 42%; height: 52px; padding: 0 16px; border: 1.5px solid var(--ink); border-radius: var(--radius); background: transparent; color: var(--ink); font-size: 15px; font-weight: 700; white-space: nowrap; }
.product.page .buy-row .but_add.qo-open:hover { border-color: var(--red); color: var(--red); }
.qo__item { font-size: 14px; font-weight: 600; line-height: 1.4; }
.qo__packs { display: flex !important; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; color: var(--ink-2); }
.smp__box label.qo__packs > input[type=number] { width: 84px; flex: 0 0 84px; margin: 0; padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 8px; font: inherit; font-size: 14px; }
.qo__sum { font-weight: 600; color: var(--ink); }
@media (max-width: 520px) { .buy-row { flex-direction: column; } .product.page .buy-row .but_add.to_cart, .product.page .buy-row .but_add.qo-open { flex: 0 0 auto; height: 52px; } }

/* Снятый с производства декор (discontinued.tpl), 2026-09-28 */
.disc { display: grid; gap: 20px; margin-bottom: 40px; }
.disc__photo { display: block; width: 100%; height: auto; border-radius: var(--radius-lg); background: var(--surface); filter: grayscale(.35); }
.disc__info p { margin: 0 0 12px; color: var(--ink-2); line-height: 1.6; }
.disc__info b { color: var(--ink); }
.disc__info .disc__badge { display: inline-block; padding: 6px 12px; border-radius: var(--radius); background: var(--surface-2); color: var(--ink); font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.disc__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.disc__actions .button { margin-top: 8px; }
.button--ghost { background: var(--ink); }
.button--ghost:hover { background: #000; }
@media (min-width: 900px) { .disc { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: start; } }
@media (min-width: 1300px) { .tiny_products--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Подгрузка каталога при прокрутке (theme.js), 2026-09-28 */
.pagination--infinite > a { display: none; }
.more { display: flex; flex-direction: column; align-items: center; gap: 10px; margin: 8px 0 32px; text-align: center; }
.more__note { margin: 0; color: var(--ink-3); font-size: 14px; }
.more__btn { min-height: 44px; padding: 0 24px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); color: var(--ink); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; transition: border-color .15s; }
.more__btn:hover { border-color: var(--ink); }
.more.is-loading .more__btn { cursor: progress; opacity: .7; }
.more.is-done .more__btn { display: none; }
.tiny_products > li.is-new { animation: more-in .35s ease-out both; }
@keyframes more-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .tiny_products > li.is-new { animation: none; } }

/* Мобильное меню: каталог — главная кнопка, бренды на равных (2026-09-28) */
.drawer .drawer__catalog { display: flex; align-items: center; gap: 14px; min-height: 64px; margin: 4px 0 12px; padding: 12px 14px 12px 16px; border-radius: var(--radius-lg); background: var(--red); color: #fff; line-height: 1.25; text-decoration: none; }
.drawer .drawer__catalog:hover, .drawer .drawer__catalog:active { background: var(--red-dark); color: #fff; }
.drawer__catalog svg { flex: none; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.drawer__catalog span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.drawer__catalog b { font-size: 18px; font-weight: 700; }
.drawer__catalog small { font-size: 13px; opacity: .85; }
.drawer__catalog .drawer__catalog-arrow { margin-left: auto; width: 20px; height: 20px; }
.drawer__brands { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.drawer .drawer__brand { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 10px; min-height: 96px; padding: 12px; border: 1px solid var(--line-2); border-radius: var(--radius-lg); color: var(--ink); line-height: 1.3; text-decoration: none; }
.drawer .drawer__brand:hover, .drawer .drawer__brand:active { border-color: var(--ink); color: var(--ink); }
.drawer__brand img { display: block; width: auto; max-width: 100%; height: 30px; }
.drawer__brand span { color: var(--ink-2); font-size: 13px; }

/* Товары и калькулятор — на первом экране, тексты ниже (2026-09-28) */
.seo-intro--below { margin: 32px 0 0; color: var(--ink-2); }
.category-copy { margin-top: 40px; }
@media (max-width: 699px) {
	/* подборки — одна строка с горизонтальной прокруткой вместо 300px «облака» */
	.seo-links.seo-links--row { flex-wrap: nowrap; gap: 8px; margin: 4px calc(-1 * var(--gap)) 16px; padding: 0 var(--gap) 6px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.seo-links.seo-links--row::-webkit-scrollbar { display: none; }
	.seo-links.seo-links--row a { flex: none; padding: 7px 12px; border: 1px solid var(--line-2); border-radius: 999px; color: var(--ink); white-space: nowrap; line-height: 1.2; }
	/* номера страниц не нужны: следующая подгружается при прокрутке (theme.js), остаётся сортировка */
	.pagination > a { display: none; }
	/* страница калькулятора: шапка блока (надпись, заголовок, шаги) повторяет H1 — сразу схема и поля */
	.calc-page .hcalc__head { display: none; }
	.calc-page .hcalc--v3 { padding-top: 16px; }
}
