@charset "UTF-8";
/* =============================================================
   Лесной Регион — слой дизайн-системы
   Загружается последним. Не переписывает legacy-CSS, а задаёт
   единые токены, типографику и компоненты поверх него.
   ============================================================= */

/* -------------------------------------------------------------
   1. ТОКЕНЫ
   ------------------------------------------------------------- */
:root {
	/* Палитра. Фирменный лаймовый сохранён, но выведен из текста:
	   на белом он даёт контраст 2.2:1 и нечитаем. Для текста и
	   ссылок используется затемнённый вариант (4.6:1). */
	--lr-brand:        #98c324;
	--lr-brand-dark:   #5f8010;
	--lr-brand-deep:   #2f4016;
	--lr-brand-tint:   #f2f6e6;

	--lr-ink:          #1a211c;
	--lr-ink-2:        #454f48;
	/* На светлой подложке --lr-surface прежний #6b756e давал 4.48:1 —
	   чуть ниже порога 4.5 для мелкого текста (подписи в таблицах,
	   каталоге, шапках блоков). Затемнён до 4.61:1. */
	--lr-ink-3:        #69736c;
	--lr-ink-inv:      #ffffff;

	--lr-paper:        #ffffff;
	--lr-surface:      #f7f8f4;
	--lr-surface-2:    #eef1e8;
	--lr-footer:       #171c18;

	--lr-line:         #e2e6dd;
	--lr-line-soft:    #eef0ea;
	--lr-line-strong:  #cdd4c6;

	--lr-error:        #b3261e;
	--lr-success:      #2e7d32;
	--lr-warning:      #a15c00;

	/* Типографика */
	--lr-font-display: "Literata", Georgia, "Times New Roman", serif;
	--lr-font-sans:    "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;

	/* Шкала отступов */
	--lr-s1: 4px;
	--lr-s2: 8px;
	--lr-s3: 12px;
	--lr-s4: 16px;
	--lr-s5: 24px;
	--lr-s6: 32px;
	--lr-s7: 48px;
	--lr-s8: 64px;
	--lr-s9: 80px;
	--lr-s10: 96px;

	/* Радиусы — намеренно сдержанные */
	--lr-radius-sm: 4px;
	--lr-radius-md: 6px;
	--lr-radius-lg: 10px;

	/* Движение */
	--lr-t-fast: 150ms cubic-bezier(.2,.6,.3,1);
	--lr-t-base: 220ms cubic-bezier(.2,.6,.3,1);
	/* Сильный ease-out для появления накладных панелей: встроенный
	   и .2,.6,.3,1 для них слишком вялые. */
	--lr-ease-out: cubic-bezier(0.23, 1, 0.32, 1);

	/* Полоса навигации. Размеры пунктов заданы переменными, потому
	   что само правило приходится писать с высокой специфичностью
	   (в style.css есть `.navigation-wrapper .sf-menu .current-menu-item a
	   { padding: 0 10px !important }`). Медиазапросы меняют переменную,
	   а не переписывают правило — иначе адаптив глушится специфичностью. */
	--lr-nav-pad-x: 11px;
	--lr-nav-font: 14.5px;
	--lr-nav-search-w: 150px;

	/* Сетка */
	--lr-container: 1240px;
	--lr-gutter: clamp(16px, 4vw, 32px);

	/* Тени — только две, обе мягкие */
	--lr-shadow-sm: 0 1px 2px rgba(26,33,28,.06);
	--lr-shadow-md: 0 6px 24px -12px rgba(26,33,28,.28);
}

/* -------------------------------------------------------------
   2. БАЗА
   ------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

body {
	font-family: var(--lr-font-sans);
	font-size: 16px;
	line-height: 1.65;
	color: var(--lr-ink-2);
	background: var(--lr-paper);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-variant-numeric: lining-nums;
	overflow-x: hidden;
}
/* `clip` не создаёт скролл-контейнер и не ломает position: sticky */
@supports (overflow-x: clip) {
	body { overflow-x: clip; }
}

/* Ссылка «к содержимому» для клавиатуры */
.lr-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 10000;
	padding: 12px 20px;
	background: var(--lr-ink);
	color: #fff;
	font: 500 15px/1 var(--lr-font-sans);
	text-decoration: none;
	border-radius: 0 0 var(--lr-radius-md) 0;
}
.lr-skip-link:focus {
	left: 0;
	outline: 2px solid var(--lr-brand);
	outline-offset: -4px;
}

/* Единое состояние фокуса */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid var(--lr-brand-dark);
	outline-offset: 2px;
	border-radius: 2px;
}
:focus:not(:focus-visible) { outline: none; }

img, svg, video { max-width: 100%; height: auto; }
img { border: 0; }

/* -------------------------------------------------------------
   3. ТИПОГРАФИКА
   ------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6,
.gdl-title, .tit_pages, .like_h2 {
	color: var(--lr-ink);
	margin: 0 0 var(--lr-s4);
	text-wrap: balance;
}

h1, .gdl-page-title {
	font-family: var(--lr-font-display);
	font-size: clamp(27px, 1.4rem + 1.5vw, 40px);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -.015em;
	margin-bottom: var(--lr-s5);
}

h2 {
	font-family: var(--lr-font-display);
	font-size: clamp(22px, 1.15rem + .9vw, 30px);
	font-weight: 500;
	line-height: 1.22;
	letter-spacing: -.01em;
	margin-top: var(--lr-s8);
}

h3 {
	font-family: var(--lr-font-display);
	font-size: clamp(19px, 1.05rem + .5vw, 24px);
	font-weight: 500;
	line-height: 1.3;
	margin-top: var(--lr-s7);
}

h4 {
	font-family: var(--lr-font-sans);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -.005em;
	margin-top: var(--lr-s6);
}

h5, h6 {
	font-family: var(--lr-font-sans);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
	margin-top: var(--lr-s6);
}

/* Первый заголовок в колонке не должен отбиваться сверху */
.gdl-page-content > h2:first-child,
.gdl-page-content > h3:first-child,
.gdl-page-content > h4:first-child { margin-top: 0; }

p { margin: 0 0 var(--lr-s4); }

/* Комфортная длина строки. К таблицам и картинкам не применяется. */
.gdl-page-content p,
.gdl-page-content ul,
.gdl-page-content ol,
.entry-content p {
	max-width: 68ch;
}

/* Выключка по формату без переносов даёт «реки» в русском тексте */
.text_just, p.text_just, .gdl-page-content p {
	text-align: left;
	hyphens: auto;
	-webkit-hyphens: auto;
}

.tit_pages, .like_h2 {
	font-family: var(--lr-font-display);
	font-size: clamp(20px, 1.1rem + .6vw, 26px);
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: -.01em;
	color: var(--lr-ink);
	margin: var(--lr-s8) 0 var(--lr-s4);
}
.t_a_c { text-align: center; }

/* Ссылки в контенте.
   Исключения перечислены внутри :where() — он не добавляет
   специфичности. Раньше три подряд :not() поднимали правило до (0,4,1),
   и перебить его точечно (например, для заголовков в списке статей)
   можно было только цепочкой из четырёх классов. */
.gdl-page-content a:not(:where(.button, .mform, [class*="btn"], .moar)) {
	color: var(--lr-brand-dark);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
	text-decoration-color: rgba(95,128,16,.35);
	transition: color var(--lr-t-fast), text-decoration-color var(--lr-t-fast);
}
.gdl-page-content a:not(:where(.button, .mform, [class*="btn"], .moar)):hover {
	color: var(--lr-brand-deep);
	text-decoration-color: currentColor;
}
/* Ссылка-заголовок остаётся заголовком: цвет и подчёркивание
   обычной ссылки в тексте здесь только мешают. */
.gdl-page-content h1 a,
.gdl-page-content h2 a,
.gdl-page-content h3 a,
.gdl-page-content h4 a {
	color: inherit;
	text-decoration: none;
}

strong, b { font-weight: 600; color: var(--lr-ink); }
small { font-size: 13px; color: var(--lr-ink-3); }
hr {
	border: 0;
	border-top: 1px solid var(--lr-line);
	margin: var(--lr-s7) 0;
}

/* Списки */
.gdl-page-content ul,
.gdl-page-content ol { padding-left: 1.25em; margin: 0 0 var(--lr-s5); }
.gdl-page-content li { margin-bottom: var(--lr-s2); }
.gdl-page-content ul li::marker { color: var(--lr-brand-dark); }

/* Маркированный список-«стрелки» на главной: убираем растровые иконки */
ul.strelka { list-style: none; padding-left: 0 !important; }
ul.strelka li {
	position: relative;
	padding-left: 26px;
	background: none !important;
	margin-bottom: var(--lr-s3);
	line-height: 1.55;
}
ul.strelka li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .62em;
	width: 12px;
	height: 1px;
	background: var(--lr-brand-dark);
}
ul.strelka li img { display: none; }

/* -------------------------------------------------------------
   4. СЕТКА И КОНТЕЙНЕРЫ
   Legacy skeleton задаёт .container-wrapper фиксированной шириной
   1240px, из-за чего на экранах 1025–1240px появлялся
   горизонтальный скролл. Здесь ширины становятся текучими.
   ------------------------------------------------------------- */
.container,
div.container {
	width: 100%;
	max-width: var(--lr-container);
	margin-inline: auto;
	padding-inline: var(--lr-gutter);
	position: relative;
}
.container-wrapper,
.all-container-wrapper.boxed-layout,
.all-container-wrapper.no-boxed-layout {
	width: 100%;
	max-width: none;
	margin: 0 auto;
}
.header-container-wrapper,
.navigation-container-wrapper {
	width: 100%;
	max-width: var(--lr-container);
	margin-inline: auto;
	padding-inline: var(--lr-gutter);
}
div.top-navigation-wrapper { min-width: 0; }

.content-container.main {
	padding-block: var(--lr-s7) var(--lr-s9);
}

/* Контент + левая колонка */
@media (min-width: 981px) {
	div.gdl-page-float-left {
		float: none;
		display: flex;
		align-items: flex-start;
		gap: clamp(28px, 3vw, 56px);
		width: 100%;
	}
	div.gdl-page-float-left > .gdl-page-item {
		float: none;
		order: 2;
		flex: 1 1 auto;
		min-width: 0;
		width: auto !important;
		max-width: none !important;
	}
	div.gdl-page-float-left > .gdl-left-sidebar {
		float: none;
		order: 1;
		flex: 0 0 244px;
		width: 244px !important;
		margin: 0 !important;
		position: sticky;
		top: 80px;
	}
	.container .both-sidebar-included .gdl-page-item .sixteen.columns,
	.container .both-sidebar-included .gdl-page-item .twelve.columns,
	.container .both-sidebar-included .gdl-page-item .two-thirds.column,
	.container .sixteen.columns {
		width: 100% !important;
		max-width: none !important;
		margin-inline: 0;
	}
}
.gdl-page-item .columns,
.gdl-page-item .column { margin-inline: 0; }

br.clear, .clear { clear: both; }

/* -------------------------------------------------------------
   5. ШАПКА
   ------------------------------------------------------------- */
.header-outer-wrapper {
	background: var(--lr-paper);
	border-bottom: 1px solid var(--lr-line-soft);
}
.header-wrapper {
	display: flex;
	align-items: center;
	gap: clamp(16px, 2.5vw, 40px);
	min-height: 96px;
	height: auto;
	padding-block: var(--lr-s4);
}
.logo-wrapper {
	flex: 0 0 auto;
	width: auto;
	margin: 0;
	padding: 0;
}
.logo-wrapper a { display: block; line-height: 0; }
.logo-wrapper img {
	display: block;
	width: auto;
	max-height: 56px;
	max-width: 260px;
}

.lr-tagline {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding-left: clamp(16px, 2vw, 32px);
	border-left: 1px solid var(--lr-line);
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--lr-ink-3);
	letter-spacing: .005em;
	max-width: 34ch;
	text-transform: none;
	text-wrap: balance;
}

/* Правый край блока контактов должен совпадать с правым краем поля
   поиска в полосе навигации: без margin-left:auto остаток свободного
   места оставался справа, и шапка выглядела сдвинутой влево
   относительно строки меню под ней. */
.lr-header-contacts {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: clamp(16px, 2vw, 28px);
	margin: 0 0 0 auto;
	width: auto;
	text-align: left;
}
.lr-header-contacts .lr-contact-lines { display: block; }
.lr-header-address {
	margin: 0 0 2px;
	font-size: 12.5px;
	line-height: 1.4;
	color: var(--lr-ink-3);
	max-width: 22ch;
}
.lr-phone {
	display: block;
	font-family: var(--lr-font-sans);
	font-size: 19px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -.01em;
	color: var(--lr-ink);
	text-decoration: none;
	white-space: nowrap;
	transition: color var(--lr-t-fast);
}
.lr-phone:hover { color: var(--lr-brand-dark); }
.lr-phone--sec {
	font-size: 14px;
	font-weight: 500;
	color: var(--lr-ink-3);
}
.lr-header-actions {
	display: flex;
	align-items: center;
	gap: var(--lr-s3);
	margin: 0;
}

/* Иконочная ссылка (соцсети, телефон на мобильном) */
.lr-icon-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
	color: var(--lr-ink-2);
	background: var(--lr-paper);
	transition: border-color var(--lr-t-fast), color var(--lr-t-fast), background var(--lr-t-fast);
}
.lr-icon-link svg { width: 19px; height: 19px; display: block; }
.lr-icon-link:hover {
	border-color: var(--lr-ink);
	color: var(--lr-ink);
	background: var(--lr-surface);
}

/* Иконки соцсетей из панели темы выкладываются flex-строкой:
   legacy давал им float и отступы вразнобой. */
.outer-social-wrapper .social-wrapper { margin: 0; }
.social-icon-wrapper { display: flex; align-items: center; gap: var(--lr-s2); }
.social-icon-wrapper .social-icon { margin: 0; padding: 0; float: none; }

/* Компактный мобильный блок шапки */
.lr-header-mobile {
	display: none;
	margin-left: auto;
	align-items: center;
	gap: var(--lr-s2);
}
.lr-burger {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	/* Ровно как у .lr-icon-link рядом: две кнопки в шапке должны
	   читаться парой, а не разнобоем 40 и 44. */
	width: 40px;
	height: 40px;
	padding: 0 10px;
	background: var(--lr-paper);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
	cursor: pointer;
	transition: border-color var(--lr-t-fast), background var(--lr-t-fast);
}
.lr-burger span {
	display: block;
	height: 2px;
	width: 100%;
	border-radius: 2px;
	background: var(--lr-ink);
	transform-origin: center;
	transition: transform .34s cubic-bezier(.68,-0.35,.27,1.35),
	            opacity .18s ease,
	            width .34s cubic-bezier(.68,-0.35,.27,1.35),
	            background .15s ease;
}
/* Средняя полоска чуть короче — «стрелочный» акцент в покое */
.lr-burger span:nth-child(2) { width: 72%; margin-left: auto; }
.lr-burger:hover span { background: var(--lr-brand-dark); }
.lr-burger[aria-expanded="true"] span { background: var(--lr-brand-dark); }
.lr-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.lr-burger[aria-expanded="true"] span:nth-child(2) { width: 100%; transform: scaleX(0); opacity: 0; }
.lr-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.lr-burger:hover { border-color: var(--lr-brand); background: var(--lr-brand-tint); }
.lr-burger:active { transform: scale(.94); }

/* Старые дубли телефона в шапке скрываем — они дублируют #headerTel */
.logo_text { display: none; }
.outer-social-wrapper { margin: 0; }
.block_resp { display: none !important; }

/* -------------------------------------------------------------
   6. ОСНОВНАЯ НАВИГАЦИЯ
   ------------------------------------------------------------- */
.main-navigation-wrapper {
	background: var(--lr-paper);
	border-bottom: 1px solid var(--lr-line);
	box-shadow: none;
	position: sticky;
	top: 0;
	z-index: 300;
	transition: box-shadow var(--lr-t-base);
}
.main-navigation-wrapper.is-stuck { box-shadow: 0 1px 0 var(--lr-line), 0 8px 24px -20px rgba(26,33,28,.45); }
.navigation-wrapper { background: none; border: 0; box-shadow: none; }
.navigation-container-wrapper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--lr-s5);
	min-height: 56px;
}

.menu-wrapper { flex: 1 1 auto; min-width: 0; }

ul.sf-menu,
.navigation-wrapper ul.sf-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
	float: none;
	background: none;
}
ul.sf-menu > li,
.navigation-wrapper ul.sf-menu > li {
	float: none;
	position: relative;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	font-size: 15px;
}
ul.sf-menu > li > a,
.navigation-wrapper .sf-menu li a,
.navigation-wrapper .sf-menu .current-menu-item a,
.navigation-wrapper .sf-menu .current-menu-ancestor a {
	display: block;
	position: relative;
	margin: 0 !important;
	padding: 17px var(--lr-nav-pad-x) !important;
	font-family: var(--lr-font-sans);
	font-size: var(--lr-nav-font);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -.005em;
	color: var(--lr-ink-2);
	text-decoration: none;
	text-transform: none;
	background: none !important;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none;
	transition: color var(--lr-t-fast);
}
ul.sf-menu > li > a::after {
	content: "";
	position: absolute;
	left: var(--lr-nav-pad-x);
	right: var(--lr-nav-pad-x);
	bottom: 12px;
	height: 2px;
	background: var(--lr-brand);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--lr-t-base);
}
ul.sf-menu > li > a:hover,
ul.sf-menu > li.sfHover > a { color: var(--lr-ink); }
ul.sf-menu > li > a:hover::after,
ul.sf-menu > li.sfHover > a::after { transform: scaleX(1); }

ul.sf-menu > li.current-menu-item > a,
ul.sf-menu > li.current-menu-ancestor > a,
ul.sf-menu > li.current_page_item > a,
ul.sf-menu > li.current-page-ancestor > a { color: var(--lr-ink); font-weight: 600; }
ul.sf-menu > li.current-menu-item > a::after,
ul.sf-menu > li.current-menu-ancestor > a::after,
ul.sf-menu > li.current_page_item > a::after,
ul.sf-menu > li.current-page-ancestor > a::after { transform: scaleX(1); }

/* Выпадающие подменю.
   Superfish прячет их через top:-999em, поэтому переопределять top
   безусловно нельзя — иначе меню будет раскрыто всегда. */
.navigation-wrapper ul.sf-menu ul {
	position: absolute;
	right: auto;
	width: auto;
	min-width: 250px;
	margin: 0;
	padding: var(--lr-s2) 0 !important;
	list-style: none;
	background: var(--lr-paper);
	border: 1px solid var(--lr-line) !important;
	border-radius: var(--lr-radius-md);
	box-shadow: var(--lr-shadow-md) !important;
	z-index: 400;
}
.navigation-wrapper ul.sf-menu ul li { float: none; width: auto; font-size: 14.5px; }
.navigation-wrapper ul.sf-menu ul li a,
.navigation-wrapper ul.sf-menu ul li a:hover {
	padding: 9px 18px !important;
	font-size: 14.5px;
	font-weight: 400;
	color: var(--lr-ink-2);
	white-space: normal;
	transition: background var(--lr-t-fast), color var(--lr-t-fast);
}
.navigation-wrapper ul.sf-menu ul li > a::after { display: none; }
.navigation-wrapper ul.sf-menu ul li a:hover {
	background: var(--lr-surface);
	color: var(--lr-ink);
}
.navigation-wrapper ul.sf-menu ul ul { top: -9px; left: 100% !important; }

/* Поиск в шапке */
.main-navigation-wrapper #searchform,
.lr-search {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
}
.main-navigation-wrapper #search-text { margin: 0; padding: 0; background: none; border: 0; }
.main-navigation-wrapper #searchform input[type="text"],
.main-navigation-wrapper #searchform #s {
	width: var(--lr-nav-search-w);
	height: 38px;
	margin: 0;
	padding: 0 12px;
	font-family: var(--lr-font-sans);
	font-size: 14px;
	color: var(--lr-ink);
	background: var(--lr-paper);
	border: 1px solid var(--lr-line);
	border-right: 0;
	border-radius: var(--lr-radius-md) 0 0 var(--lr-radius-md);
	box-shadow: none;
	transition: border-color var(--lr-t-fast);
}
.main-navigation-wrapper #searchform #searchsubmit {
	width: 38px;
	height: 38px;
	margin: 0;
	padding: 0;
	font-size: 0;
	background: var(--lr-surface) center/16px 16px no-repeat;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2377817a' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.6-3.6'/%3E%3C/svg%3E");
	border: 1px solid var(--lr-line);
	border-radius: 0 var(--lr-radius-md) var(--lr-radius-md) 0;
	cursor: pointer;
	transition: background-color var(--lr-t-fast);
}
.main-navigation-wrapper #searchform #searchsubmit:hover { background-color: var(--lr-surface-2); }
/* Поиск в шапке: аккуратный единый фокус на всей группе «поле + кнопка»,
   без оливковой рамки от глобального input:focus (поле «срослось» с кнопкой,
   и обводка вокруг него выглядела криво). */
.main-navigation-wrapper #searchform #s:focus,
.main-navigation-wrapper #searchform input[type="text"]:focus { outline: none; }
.main-navigation-wrapper #searchform { border-radius: var(--lr-radius-md); }
.main-navigation-wrapper #searchform:focus-within { box-shadow: 0 0 0 2px rgba(152, 195, 36, .45); }
/* Legacy-CSS держал кнопку поиска на position:absolute (left:110px;right:2px),
   из-за чего она ложилась ПОВЕРХ поля и из-под неё торчали лишние линии.
   Возвращаем кнопку в поток, поле растягиваем на остаток. Общая ширина
   блока не меняется, поэтому раскладка шапки остаётся прежней. */
.main-navigation-wrapper #searchform { width: var(--lr-nav-search-w); }
/* Инпут лежит внутри обёртки <div id="search-text">, поэтому flex-элементом
   является именно она — растягиваем обёртку (basis 0%, чтобы она заняла
   ровно остаток после кнопки), а поле внутри тянем на 100%. */
.main-navigation-wrapper #searchform #search-text {
	flex: 1 1 0%;
	min-width: 0;
	display: block;
	margin: 0;
	padding: 0;
}
.main-navigation-wrapper #searchform input[type="text"],
.main-navigation-wrapper #searchform input[type="search"],
.main-navigation-wrapper #searchform #s {
	display: block;
	width: 100%;
	min-width: 0;
}
/* Скрытая подпись не должна занимать место в строке flex */
.main-navigation-wrapper #searchform .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}
.main-navigation-wrapper #searchform #searchsubmit {
	position: static;
	top: auto;
	right: auto;
	left: auto;
	bottom: auto;
	flex: 0 0 auto;
}
.search-wrapper { display: none; }

/* Плюсики, которые старый top-menu.js вставлял в десктопное меню */
.sf-menu .par_pluses { display: none; }

/* -------------------------------------------------------------
   7. КНОПКИ
   Растровые кнопки-картинки (callback.png, knopca.png) заменены
   настоящими текстовыми кнопками: доступность, вес, чёткость.
   ------------------------------------------------------------- */
.lr-btn,
a.mform,
a.lr-order-btn,
a.product-cb,
.green_input a,
.blok-tel_1 a,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wpcf7 input[type="submit"],
.exform input[type="submit"],
.exform button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--lr-s2);
	min-height: 46px;
	padding: 12px 22px;
	font-family: var(--lr-font-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -.005em;
	text-align: center;
	text-decoration: none;
	color: var(--lr-ink);
	background: var(--lr-brand);
	background-image: none;
	border: 1px solid var(--lr-brand);
	border-radius: var(--lr-radius-md);
	box-shadow: none;
	text-shadow: none;
	cursor: pointer;
	transition: background-color var(--lr-t-fast), border-color var(--lr-t-fast), color var(--lr-t-fast), transform var(--lr-t-fast);
	-webkit-appearance: none;
	appearance: none;
}
.lr-btn:hover,
a.mform:hover,
a.lr-order-btn:hover,
a.product-cb:hover,
.green_input a:hover,
.blok-tel_1 a:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wpcf7 input[type="submit"]:hover,
.exform input[type="submit"]:hover {
	background: #8ab31f;
	border-color: #8ab31f;
	color: var(--lr-ink);
}
.lr-btn:active,
a.mform:active,
.woocommerce a.button:active { transform: translateY(1px); }

.lr-btn--secondary {
	color: var(--lr-ink);
	background: transparent;
	border-color: var(--lr-line-strong);
}
.lr-btn--secondary:hover {
	background: var(--lr-surface);
	border-color: var(--lr-ink);
	color: var(--lr-ink);
}
.lr-btn--ghost {
	min-height: 0;
	padding: 0;
	background: none;
	border: 0;
	color: var(--lr-brand-dark);
	font-weight: 500;
	border-radius: 0;
}
.lr-btn--ghost:hover { background: none; border: 0; color: var(--lr-brand-deep); }
.lr-btn[disabled], .lr-btn:disabled,
button[disabled], input[disabled] {
	opacity: .45;
	cursor: not-allowed;
	transform: none;
}
.lr-btn--block { display: flex; width: 100%; }

/* Растровые кнопки-картинки заменяются текстом скриптом lr-ui.js;
   без JavaScript изображение остаётся и ссылка продолжает работать. */
a.mform,
a.product-cb,
.blok-tel_1 a { float: none !important; margin: 0 !important; padding: 12px 22px !important; }

/* Тяжёлая декоративная иллюстрация «трубка» (283 КБ) не несёт смысла */
.info_block img.Call { display: none !important; }

/* -------------------------------------------------------------
   8. ФОРМЫ
   ------------------------------------------------------------- */
label,
.wpcf7 label { display: block; margin-bottom: 6px; font-size: 13.5px; font-weight: 500; color: var(--lr-ink-2); }

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="date"],
select,
textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	width: 100%;
	min-height: 46px;
	padding: 11px 14px;
	font-family: var(--lr-font-sans);
	font-size: 15px;
	line-height: 1.45;
	color: var(--lr-ink);
	background: var(--lr-paper);
	background-image: none;
	border: 1px solid var(--lr-line-strong);
	border-radius: var(--lr-radius-md);
	box-shadow: none;
	transition: border-color var(--lr-t-fast), background var(--lr-t-fast);
	-webkit-appearance: none;
	appearance: none;
}
textarea { min-height: 132px; resize: vertical; }
select {
	padding-right: 38px;
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 14px 14px;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23454f48' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
input:hover, select:hover, textarea:hover { border-color: var(--lr-ink-3); }
input:focus, select:focus, textarea:focus {
	border-color: var(--lr-ink);
	outline: 2px solid rgba(95,128,16,.28);
	outline-offset: 0;
}
input::placeholder, textarea::placeholder { color: var(--lr-ink-3); opacity: 1; }
input[aria-invalid="true"],
.wpcf7-not-valid { border-color: var(--lr-error) !important; }
.wpcf7-not-valid-tip { margin-top: 6px; font-size: 13px; color: var(--lr-error); }
.wpcf7-response-output {
	margin: var(--lr-s4) 0 0 !important;
	padding: 12px 16px !important;
	font-size: 14px;
	border-width: 1px !important;
	border-radius: var(--lr-radius-md);
}
input[type="checkbox"], input[type="radio"] {
	width: 18px;
	height: 18px;
	min-height: 0;
	margin-right: 8px;
	accent-color: var(--lr-brand-dark);
	vertical-align: -3px;
}
fieldset { margin: 0 0 var(--lr-s5); padding: 0; border: 0; }

/* -------------------------------------------------------------
   9. ЛЕВАЯ КОЛОНКА (каталог)
   Вместо зелёных «плашек» — спокойный типографский список.
   ------------------------------------------------------------- */
.gdl-left-sidebar .left-sidebar-wrapper { padding: 0; border: 0; background: none; }
.gdl-left-sidebar .custom-sidebar,
.gdl-left-sidebar .widget_nav_menu {
	margin-bottom: var(--lr-s7);
	padding: 0;
	background: none;
	border: 0;
}
.gdl-left-sidebar .custom-sidebar-title,
.gdl-left-sidebar .sidebar-title-color,
.gdl-left-sidebar p.gdl-title {
	margin: 0 0 var(--lr-s3) !important;
	padding: 0 0 var(--lr-s3);
	font-family: var(--lr-font-sans);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
	background: none !important;
	border: 0;
	border-bottom: 1px solid var(--lr-line);
	border-radius: 0;
	box-shadow: none;
	text-align: left;
}
.gdl-left-sidebar ul,
.gdl-left-sidebar ul.menu { margin: 0; padding: 0; list-style: none; }
.gdl-left-sidebar ul li {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-bottom: 1px solid var(--lr-line-soft);
	font-size: 15px;
	position: relative;
}
.gdl-left-sidebar ul li:last-child { border-bottom: 0; }
.gdl-left-sidebar ul li a {
	display: block;
	padding: 11px 30px 11px 0 !important;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--lr-ink-2);
	text-decoration: none;
	background: none;
	transition: color var(--lr-t-fast), padding-left var(--lr-t-fast);
}
.gdl-left-sidebar ul li a:hover {
	color: var(--lr-ink);
	padding-left: 6px !important;
}
.gdl-left-sidebar ul li.current-menu-item > a,
.gdl-left-sidebar ul li.current_page_item > a,
.gdl-left-sidebar ul li > a.active {
	color: var(--lr-ink);
	font-weight: 600;
}
.gdl-left-sidebar ul li.current-menu-item > a::before,
.gdl-left-sidebar ul li.current_page_item > a::before,
.gdl-left-sidebar ul li > a.active::before {
	content: "";
	position: absolute;
	left: -12px;
	top: 14px;
	bottom: 14px;
	width: 2px;
	background: var(--lr-brand);
}
.gdl-left-sidebar ul ul.sub-menu {
	margin: 0 0 var(--lr-s2);
	padding: 0 0 0 var(--lr-s3);
	border-left: 1px solid var(--lr-line);
}
.gdl-left-sidebar ul ul.sub-menu li { border-bottom: 0; }
.gdl-left-sidebar ul ul.sub-menu li a {
	padding: 7px 0 !important;
	font-size: 14px;
	color: var(--lr-ink-3);
}
.gdl-left-sidebar ul ul.sub-menu li a:hover { color: var(--lr-ink); }

/* Кнопка «развернуть подменю» */
.lr-submenu-toggle {
	position: absolute;
	top: 4px;
	right: 0;
	left: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
	color: var(--lr-ink-3);
	transition: color var(--lr-t-fast), transform var(--lr-t-base);
}
.lr-submenu-toggle svg { width: 15px; height: 15px; }
.lr-submenu-toggle:hover { color: var(--lr-ink); }
/* Шеврон не вращается при раскрытии — по просьбе: элементы не крутятся.
   Состояние показывает само подменю и цвет иконки. */
.lr-submenu-toggle[aria-expanded="true"] { transform: none; color: var(--lr-brand-dark); }
.gdl-left-sidebar .par_pluses { display: none; }

/* Карусель в сайдбаре */
.gdl-left-sidebar .connected-carousels { margin-top: var(--lr-s6); }
.gdl-left-sidebar .connected-carousels img { border-radius: var(--lr-radius-sm); }

/* -------------------------------------------------------------
   10. КОНТЕНТНЫЕ БЛОКИ
   ------------------------------------------------------------- */

/* Полоса быстрых действий под первым экраном.
   Не три одинаковые карточки: первый пункт — основное действие,
   остальные — второстепенные текстовые ссылки. */
.form_blocks {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	width: 100%;
	height: auto;
	margin: var(--lr-s7) 0;
	padding: 0;
	background: var(--lr-surface);
	background-image: none !important;
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-lg);
	overflow: hidden;
}
.form_blocks .block_green {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--lr-s4);
	width: auto;
	height: auto;
	margin: 0;
	padding: var(--lr-s5) clamp(20px, 2vw, 28px);
	background: none;
	background-image: none !important;
	border: 0;
	border-left: 1px solid var(--lr-line);
	text-align: left;
}
.form_blocks .block_green:first-child { border-left: 0; background: var(--lr-paper); }
.form_blocks .green_txt { margin: 0; padding: 0; background: none; }
.form_blocks .green_txt p {
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
}
.form_blocks .green_input {
	margin: 0;
	padding: 0;
	background: none;
	background-image: none !important;
}
.form_blocks .green_input p { margin: 0 !important; }
.form_blocks .block_green:not(:first-child) .green_input a {
	display: inline-flex;
	min-height: 0;
	padding: 0;
	font-size: 15px;
	font-weight: 500;
	color: var(--lr-ink);
	background: none;
	border: 0;
	border-bottom: 1px solid var(--lr-brand);
	border-radius: 0;
	padding-bottom: 3px;
}
.form_blocks .block_green:not(:first-child) .green_input a:hover {
	background: none;
	color: var(--lr-brand-deep);
	border-bottom-color: var(--lr-brand-deep);
}

/* Преимущества: ровный ряд без карточек */
.preim-list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: clamp(16px, 2vw, 32px);
	width: 100%;
	margin: var(--lr-s7) 0;
	padding: var(--lr-s6) 0;
	border-top: 1px solid var(--lr-line);
	border-bottom: 1px solid var(--lr-line);
}
.preim-item {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	text-align: left;
	font-size: 14px;
	line-height: 1.5;
	color: var(--lr-ink-2);
}
.preim-item img {
	display: block;
	width: 36px;
	height: 36px;
	object-fit: contain;
	margin: 0 0 var(--lr-s3);
	float: none !important;
}
.preim-item p { margin: 0; font-size: 14px; line-height: 1.5; max-width: none; }
.preim-item p:empty { display: none; }

/* Контактный блок в конце страницы */
.info_block {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(24px, 3vw, 56px);
	align-items: start;
	width: 100%;
	height: auto;
	margin: var(--lr-s9) 0 var(--lr-s7);
	padding: clamp(28px, 3.5vw, 48px);
	background: var(--lr-footer);
	background-image: none !important;
	border: 0;
	border-radius: var(--lr-radius-lg);
	color: rgba(255,255,255,.72);
}
.info_block .parallelogram { display: none !important; }
.info_block .top_block {
	grid-column: 1 / -1;
	height: auto;
	margin: 0;
	padding: 0 0 var(--lr-s5);
	background: none;
	border-bottom: 1px solid rgba(255,255,255,.12);
}
.info_block .top_block p {
	margin: 0;
	max-width: none;
	font-family: var(--lr-font-display);
	font-size: clamp(21px, 1.1rem + .8vw, 28px);
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: -.01em;
	color: #fff;
	text-transform: none;
}
.info_block .top_block p span {
	display: block;
	margin-top: 8px;
	font-family: var(--lr-font-sans);
	font-size: 15px;
	font-weight: 400;
	color: rgba(255,255,255,.6);
}
.info_block > p { margin: 0; }
.info_block .middle_block,
.info_block .last_block {
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	background: none;
	text-align: left;
}
.info_block .middle_block p { margin: 0 0 var(--lr-s3); max-width: none; font-size: 15px; }
.info_block .middle_block p:last-child { margin-bottom: 0; }
.info_block .gr {
	display: block;
	margin-bottom: 2px;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--lr-brand);
}
.info_block .ya-phone,
.info_block .ya-phone a {
	font-size: 21px;
	font-weight: 600;
	letter-spacing: -.01em;
	color: #fff;
	text-decoration: none;
}
.info_block .ya-phone a:hover { color: var(--lr-brand); }
.info_block .last_block p.gr {
	margin-bottom: var(--lr-s4);
	font-family: var(--lr-font-sans);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: rgba(255,255,255,.72);
	max-width: 42ch;
}

/* Ссылка «Как мы работаем» и другие широкие иллюстрации */
.block-how-we-work { margin: var(--lr-s7) 0; }
.block-how-we-work img,
.main_img img,
.block-img img,
.two-img img {
	display: block;
	border-radius: var(--lr-radius-md);
}
.two-img {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--lr-s4);
	height: auto !important;
	margin: var(--lr-s6) 0;
}
.two-img img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	margin: 0 !important;
	float: none !important;
}
.block-img, .main_img {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lr-s4);
	margin: var(--lr-s6) 0;
	height: auto !important;
}
.block-img img, .main_img img {
	flex: 1 1 220px;
	min-width: 0;
	max-width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	margin: 0 !important;
	float: none !important;
}

/* Промо-блок «Воспользуйтесь предложением» */
#konsultant2 {
	display: flex;
	align-items: center;
	gap: var(--lr-s5);
	margin: var(--lr-s8) 0 0;
	padding: var(--lr-s5);
	background: var(--lr-surface);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-lg);
}
/* /img/imgo.jpg — широкая полоса 752x120: слева печать «100%
   качество» и сечения бруса, справа пустая тёмная плашка, где
   когда-то был текст. В квадрате 108x108 от картинки оставался
   один этот тёмный прямоугольник. Берём левую часть полосы. */
#konsultant2 .f-image2 {
	flex: 0 0 auto;
	width: 208px;
	height: 62px;
	object-fit: cover;
	object-position: left center;
	border-radius: var(--lr-radius-md);
	margin: 0;
}
#konsultant2 .dot { margin: 0; }
#konsultant2 .dot a {
	font-family: var(--lr-font-display);
	font-size: clamp(17px, .9rem + .5vw, 21px);
	font-weight: 500;
	line-height: 1.35;
	color: var(--lr-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--lr-brand);
	padding-bottom: 2px;
	transition: color var(--lr-t-fast);
}
#konsultant2 .dot a:hover { color: var(--lr-brand-deep); }

/* Блок телефона в статьях.
   В style.css у него жёстко заданы `width: 550px; height: 200px`
   (и `height: 38px; width: 183px` у вложенного блока с кнопкой).
   Текста туда влезало примерно вчетверо меньше, чем есть: остаток
   вываливался из рамки и наезжал на следующий блок страницы. */
.blok-tel,
.blok-tel_1 {
	width: auto;
	height: auto;
}
.blok-tel {
	/* Блок печатается после колонки с текстом, а колонка .sixteen.columns
	   из skeleton плавающая. Без clear рамка начиналась от верха статьи,
	   фон уходил под весь текст, а собственные строки блока выдавливались
	   вниз обтеканием — получалось наложение на соседние блоки. */
	clear: both;
	margin: var(--lr-s7) 0;
	padding: var(--lr-s5) clamp(20px, 2.5vw, 32px);
	background: var(--lr-surface);
	border: 1px solid var(--lr-line);
	border-left: 3px solid var(--lr-brand);
	border-radius: var(--lr-radius-md);
}
.blok-tel p { max-width: 60ch; }
.blok-tel_1 { margin-top: var(--lr-s4); }

/* Ссылки-телефоны в тексте */
.ya-phone a { color: inherit; text-decoration: none; white-space: nowrap; }

/* Декоративные разделители-картинки убираем */
img.img_dec { display: none; }

/* Списки городов */
.city-column-kleeni-brus ul.my-list_count2 {
	columns: 4;
	column-gap: var(--lr-s5);
	list-style: none;
	padding: 0;
	margin: 0 0 var(--lr-s6);
	max-width: none;
}
.city-column-kleeni-brus ul.my-list_count2 li {
	break-inside: avoid;
	margin-bottom: 6px;
	font-size: 14.5px;
}
.city-column-kleeni-brus ul.my-list_count2 li a {
	color: var(--lr-ink-2);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color var(--lr-t-fast), border-color var(--lr-t-fast);
}
.city-column-kleeni-brus ul.my-list_count2 li a:hover {
	color: var(--lr-ink);
	border-bottom-color: var(--lr-brand);
}

/* -------------------------------------------------------------
   11. ТАБЛИЦЫ (прайс-листы)
   ------------------------------------------------------------- */
.cover-table {
	max-width: 100%;
	margin: var(--lr-s5) 0 var(--lr-s7);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
}
.cover-table table,
table.tab_centr,
.gdl-page-content table {
	width: 100% !important;
	min-width: 560px;
	margin: 0;
	border-collapse: collapse;
	border: 0 !important;
	font-size: 14.5px;
	background: var(--lr-paper);
}
.cover-table table th,
.cover-table table td,
table.tab_centr th,
table.tab_centr td,
.gdl-page-content table td,
.gdl-page-content table th {
	padding: 12px 16px;
	border: 0 !important;
	border-bottom: 1px solid var(--lr-line-soft) !important;
	vertical-align: top;
	text-align: left;
	line-height: 1.45;
	color: var(--lr-ink-2);
}
.cover-table table tr:last-child td { border-bottom: 0 !important; }
.cover-table table tr:first-child td,
table.tab_centr tr:first-child td {
	background: var(--lr-surface);
	border-bottom: 1px solid var(--lr-line) !important;
	white-space: nowrap;
}
.big_name {
	font-family: var(--lr-font-sans);
	font-size: 11.5px !important;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
}
.cover-table table tr:not(:first-child) td:last-child {
	font-weight: 600;
	color: var(--lr-ink);
	white-space: nowrap;
}
.cover-table table a { color: var(--lr-ink); text-decoration: none; font-weight: 500; }
.cover-table table a[href]:hover { color: var(--lr-brand-dark); }

/* -------------------------------------------------------------
   12. WOOCOMMERCE
   ------------------------------------------------------------- */
.woo-breadcrumbs-wrapper,
.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 var(--lr-s5) !important;
	padding: 0;
	font-size: 13px;
	color: var(--lr-ink-3);
}
.woocommerce .woocommerce-breadcrumb a { color: var(--lr-ink-3); text-decoration: none; }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--lr-ink); text-decoration: underline; }

.woocommerce .woocommerce-result-count { font-size: 13.5px; color: var(--lr-ink-3); margin: 0; }
.woocommerce .woocommerce-ordering select { width: auto; min-width: 210px; min-height: 40px; }

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(216px, 1fr));
	gap: clamp(16px, 2vw, 28px);
	margin: var(--lr-s6) 0 0 !important;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
/* Раскладка карточки. Варианты с .first / .last / :nth-child(2n)
   перечислены, чтобы перебить float и margin из woocommerce-layout.css.
   Оформление (фон, рамка, внутренние поля) здесь намеренно не задаётся:
   оно живёт в разделе 29. Раньше рамка и padding стояли и там и тут, а
   специфичность у селекторов с .first / .last выше — из-за этого рамку
   карточки получал только каждый четвёртый товар. */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products li.product:nth-child(2n),
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last {
	display: flex;
	flex-direction: column;
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
	text-align: left;
}
.woocommerce ul.products li.product a img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	margin: 0 0 var(--lr-s3);
	background: var(--lr-surface);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
	box-shadow: none;
	transition: border-color var(--lr-t-base);
}
.woocommerce ul.products li.product:hover a img { border-color: var(--lr-line-strong); }
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0 0 var(--lr-s2) !important;
	padding: 0 !important;
	font-family: var(--lr-font-sans) !important;
	font-size: 14.5px !important;
	font-weight: 500 !important;
	line-height: 1.4;
	color: var(--lr-ink) !important;
	letter-spacing: 0;
}
.woocommerce ul.products li.product a { text-decoration: none; color: inherit; }
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: 0 0 var(--lr-s3) !important;
	font-family: var(--lr-font-sans);
	font-size: 16px;
	font-weight: 600;
	color: var(--lr-ink) !important;
}
.woocommerce ul.products li.product .button {
	margin-top: auto;
	width: 100%;
	font-size: 14px;
	min-height: 42px;
}
.woocommerce span.onsale {
	min-width: 0;
	min-height: 0;
	padding: 4px 10px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .04em;
	line-height: 1.3;
	color: #fff;
	background: var(--lr-ink);
	border-radius: var(--lr-radius-sm);
	box-shadow: none;
	top: 10px;
	left: 10px;
	right: auto;
	margin: 0;
}

.woocommerce div.product .product_title {
	font-family: var(--lr-font-display);
	font-size: clamp(24px, 1.2rem + 1vw, 34px);
	font-weight: 500;
	letter-spacing: -.015em;
	color: var(--lr-ink);
}
/* Вкладки идут сразу за кнопкой заказа — нужен воздух, иначе на
   телефоне «Отзывы» слипаются с кнопкой. */
.woocommerce div.product .woocommerce-tabs,
.gdl-woo-commerce-wrapper div.product .woocommerce-tabs { margin-top: var(--lr-s8); }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0 !important;
	margin: 0 0 var(--lr-s5);
	border-bottom: 1px solid var(--lr-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0 var(--lr-s5) -1px 0;
	padding: 0;
	background: none !important;
	border: 0 !important;
	border-bottom: 2px solid transparent !important;
	border-radius: 0;
	box-shadow: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: 12px 0 !important;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--lr-ink-3) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom-color: var(--lr-brand) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--lr-ink) !important; }

.woocommerce .quantity .qty { width: 76px; min-height: 46px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul {
	border: 0;
	display: flex;
	gap: 4px;
	justify-content: flex-start;
	margin-top: var(--lr-s6);
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	font-size: 14px;
	font-weight: 500;
	color: var(--lr-ink-2);
	background: var(--lr-paper);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--lr-ink);
	border-color: var(--lr-ink);
	color: #fff;
}
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
	padding: 14px 18px 14px 18px !important;
	background: var(--lr-surface);
	border: 1px solid var(--lr-line);
	border-top: 2px solid var(--lr-brand);
	border-radius: var(--lr-radius-md);
	font-size: 14.5px;
	color: var(--lr-ink-2);
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before { display: none; }
.woocommerce table.shop_table {
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
	border-collapse: collapse;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 14px 16px;
	border-color: var(--lr-line-soft);
	font-size: 14.5px;
}

/* -------------------------------------------------------------
   13. ПОДВАЛ
   ------------------------------------------------------------- */
.lr-footer {
	margin-top: var(--lr-s9);
	background: var(--lr-footer);
	color: rgba(255,255,255,.62);
	font-size: 14.5px;
	line-height: 1.6;
}
.lr-footer a { color: rgba(255,255,255,.72); text-decoration: none; transition: color var(--lr-t-fast); }
.lr-footer a:hover { color: #fff; }
.lr-footer p { margin: 0 0 var(--lr-s2); max-width: none; }

.lr-footer__top {
	display: grid;
	grid-template-columns: minmax(0,1.1fr) minmax(0,1fr) minmax(0,1.1fr);
	gap: clamp(28px, 4vw, 72px);
	padding-block: clamp(40px, 5vw, 72px) var(--lr-s7);
}
.lr-footer__col-title {
	margin: 0 0 var(--lr-s4);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255,255,255,.55);
}
.lr-footer__brand-name {
	margin: 0 0 var(--lr-s3);
	font-family: var(--lr-font-display);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: -.01em;
	color: #fff;
}
.lr-footer__brand p { max-width: 34ch; font-size: 14px; color: rgba(255,255,255,.62); }

.lr-footer__nav ul,
.lr-footer .top-navigation-left ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr));
	gap: 2px var(--lr-s5);
	margin: 0;
	padding: 0;
	list-style: none;
	float: none;
}
.lr-footer__nav li,
.lr-footer .top-navigation-left li {
	float: none;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 14.5px;
}
.lr-footer__nav li a,
.lr-footer .top-navigation-left li a {
	display: block;
	padding: 6px 0 !important;
	font-size: 14.5px;
	border: 0 !important;
	color: rgba(255,255,255,.72);
}
.lr-footer__nav li a:hover { color: #fff; }

.lr-footer__phone {
	display: block;
	margin-bottom: 4px;
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -.01em;
	color: #fff !important;
}
.lr-footer__phone-sec { font-size: 16px; font-weight: 500; }
.lr-footer__socials { display: flex; gap: var(--lr-s2); margin-top: var(--lr-s4); }
.lr-footer .lr-icon-link {
	background: transparent;
	border-color: rgba(255,255,255,.16);
	color: rgba(255,255,255,.72);
}
.lr-footer .lr-icon-link:hover {
	background: rgba(255,255,255,.06);
	border-color: rgba(255,255,255,.34);
	color: #fff;
}

.lr-footer__widgets {
	padding-block: var(--lr-s6);
	border-top: 1px solid rgba(255,255,255,.09);
}
.lr-footer__widgets:empty { display: none; }
.lr-footer__widgets .footer-widget-wrapper {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--lr-s6);
}
.lr-footer__widgets .columns,
.lr-footer__widgets .column {
	width: auto !important;
	float: none;
	margin: 0;
}
.lr-footer__widgets .widget-title,
.lr-footer__widgets .gdl-title {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255,255,255,.38);
	background: none;
	border: 0;
}

.lr-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--lr-s3) var(--lr-s5);
	padding-block: var(--lr-s5) var(--lr-s6);
	border-top: 1px solid rgba(255,255,255,.09);
	font-size: 13px;
	color: rgba(255,255,255,.58);
}
.lr-footer__legal { display: flex; flex-wrap: wrap; gap: var(--lr-s2) var(--lr-s5); align-items: center; }
.lr-footer__bottom p { margin: 0; }
.lr-footer__note { max-width: 62ch; font-size: 12.5px; color: rgba(255,255,255,.5); }
.lr-footer .metrika { padding: 0; text-align: left; }
.lr-footer .metrika img { display: inline-block; }

/* -------------------------------------------------------------
   14. МОБИЛЬНОЕ МЕНЮ
   ------------------------------------------------------------- */
.lr-drawer {
	position: fixed;
	inset: 0;
	z-index: 4000;
	visibility: hidden;
	pointer-events: none;
}
.lr-drawer.is-open { visibility: visible; pointer-events: auto; }
.lr-drawer__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15,20,16,.5);
	opacity: 0;
	transition: opacity var(--lr-t-base);
	cursor: pointer;
}
.lr-drawer.is-open .lr-drawer__overlay { opacity: 1; }
.lr-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(384px, 88vw);
	display: flex;
	flex-direction: column;
	background: var(--lr-paper);
	transform: translateX(100%);
	transition: transform var(--lr-t-base);
	box-shadow: -24px 0 48px -32px rgba(15,20,16,.5);
}
.lr-drawer.is-open .lr-drawer__panel { transform: translateX(0); }
.lr-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex: 0 0 auto;
	height: 64px;
	padding: 0 var(--lr-s4) 0 var(--lr-s5);
	border-bottom: 1px solid var(--lr-line);
}
.lr-drawer__title {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
}
.lr-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-right: -10px;
	padding: 0;
	background: none;
	border: 0;
	color: var(--lr-ink-2);
	cursor: pointer;
	border-radius: var(--lr-radius-md);
	transition: background var(--lr-t-fast), color var(--lr-t-fast);
}
.lr-drawer__close:hover { background: var(--lr-surface); color: var(--lr-ink); }
.lr-drawer__close svg { width: 20px; height: 20px; }
.lr-drawer__body {
	flex: 1 1 auto;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: var(--lr-s4) 0 var(--lr-s7);
}
/* Поиск в выдвижном меню: ниже 1180px это единственный вход в поиск. */
.lr-drawer__search {
	display: flex;
	/* В style.css у форм задан float: right. Внутри flex-контейнера он
	   игнорируется, а здесь форма — обычный блок, и первая строка меню
	   под ней обтекала форму сбоку: пункт «Главная» получался втрое выше
	   остальных. */
	float: none;
	clear: both;
	gap: var(--lr-s2);
	margin: 0 var(--lr-s5) var(--lr-s4);
	padding-bottom: var(--lr-s4);
	border-bottom: 1px solid var(--lr-line);
}
.lr-drawer__search input[type="search"] {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
	min-height: 44px;
	margin: 0;
}
.lr-drawer__search .lr-btn {
	flex: 0 0 auto;
	min-height: 44px;
	padding: 10px 16px;
	font-size: 14px;
}

.lr-drawer__section + .lr-drawer__section {
	margin-top: var(--lr-s5);
	padding-top: var(--lr-s5);
	border-top: 1px solid var(--lr-line-soft);
}
.lr-drawer__section-title {
	margin: 0 0 var(--lr-s2);
	padding: 0 var(--lr-s5);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
}
.lr-drawer ul { margin: 0; padding: 0; list-style: none; }
.lr-drawer li { position: relative; margin: 0; border: 0; }
.lr-drawer li > a {
	display: block;
	padding: 12px var(--lr-s5) !important;
	padding-right: 56px !important;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--lr-ink);
	text-decoration: none;
	background: none;
	border: 0;
	transition: background var(--lr-t-fast);
}
.lr-drawer li > a:hover,
.lr-drawer li > a:focus-visible { background: var(--lr-surface); }
.lr-drawer li.current-menu-item > a,
.lr-drawer li.current_page_item > a { color: var(--lr-brand-deep); font-weight: 600; }
.lr-drawer .lr-submenu-toggle {
	top: 3px;
	right: 10px;
	width: 44px;
	height: 44px;
	border-radius: var(--lr-radius-md);
}
.lr-drawer .sub-menu {
	display: none;
	margin: 2px var(--lr-s5) var(--lr-s3) var(--lr-s5);
	padding: 4px 0 4px var(--lr-s3);
	border-left: 0;
	background: var(--lr-brand-tint);
	border-radius: 0 var(--lr-radius-md) var(--lr-radius-md) 0;
}
.lr-drawer .sub-menu.is-open {
	display: block;
	animation: lrSubIn .3s var(--lr-ease-out) both;
}
.lr-drawer .sub-menu li { border-radius: var(--lr-radius-sm); overflow: hidden; }
.lr-drawer .sub-menu li > a {
	position: relative;
	padding: 10px var(--lr-s4) 10px 18px !important;
	font-size: 15px;
	font-weight: 400;
	color: var(--lr-ink-2);
	transition: color var(--lr-t-fast), background var(--lr-t-fast), padding-left var(--lr-t-fast);
}
/* Маркер-точка перед каждым пунктом породы */
.lr-drawer .sub-menu li > a::before {
	content: "";
	position: absolute;
	left: 3px;
	top: 50%;
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-radius: 50%;
	background: var(--lr-brand);
	transition: background var(--lr-t-fast), transform var(--lr-t-fast);
}
.lr-drawer .sub-menu li > a { width: 100%; }
.lr-drawer .sub-menu li > a:hover,
.lr-drawer .sub-menu li > a:focus-visible {
	color: var(--lr-brand-deep);
	background: var(--lr-paper);
	padding-left: 22px !important;
}
.lr-drawer .sub-menu li > a:hover::before,
.lr-drawer .sub-menu li > a:focus-visible::before {
	background: var(--lr-brand);
	transform: scale(1.25);
}
.lr-drawer .sub-menu li.current-menu-item > a,
.lr-drawer .sub-menu li.current_page_item > a {
	color: var(--lr-brand-deep);
	font-weight: 700;
	background: var(--lr-paper);
	box-shadow: inset 2px 0 0 var(--lr-brand);
}
.lr-drawer .sub-menu li.current-menu-item > a::before,
.lr-drawer .sub-menu li.current_page_item > a::before { background: var(--lr-brand); }
/* Ступенчатое появление пунктов при раскрытии */
.lr-drawer .sub-menu.is-open li { animation: lrSubItem .34s var(--lr-ease-out) both; }
.lr-drawer .sub-menu.is-open li:nth-child(1) { animation-delay: .04s; }
.lr-drawer .sub-menu.is-open li:nth-child(2) { animation-delay: .08s; }
.lr-drawer .sub-menu.is-open li:nth-child(3) { animation-delay: .12s; }
.lr-drawer .sub-menu.is-open li:nth-child(4) { animation-delay: .16s; }
.lr-drawer .sub-menu.is-open li:nth-child(5) { animation-delay: .20s; }
.lr-drawer .sub-menu.is-open li:nth-child(6) { animation-delay: .24s; }
.lr-drawer .sub-menu.is-open li:nth-child(n+7) { animation-delay: .28s; }
.lr-drawer__contacts {
	margin-top: var(--lr-s5);
	padding: var(--lr-s5);
	border-top: 1px solid var(--lr-line-soft);
}
.lr-drawer__contacts .lr-phone { font-size: 20px; margin-bottom: var(--lr-s1); }
.lr-drawer__contacts .lr-phone--sec { font-size: 16px; }
.lr-drawer__contacts p { margin: var(--lr-s2) 0 0; font-size: 13.5px; color: var(--lr-ink-3); }
.lr-drawer__contacts .lr-btn { margin-top: var(--lr-s4); width: 100%; }

body.lr-no-scroll { overflow: hidden; }

/* -------------------------------------------------------------
   15. АДАПТИВНОСТЬ
   ------------------------------------------------------------- */
@media (max-width: 1180px) {
	.lr-phone { font-size: 17px; }
}

/* Восемь пунктов меню, поле поиска и знак-логотип в одну строку
   помещаются только на широком экране. Порядок отказа: сначала уходит
   логотип (он дублирует шапку), потом поле поиска — оно переезжает
   в выдвижное меню, где доступно на любой ширине. */
@media (max-width: 1179px) {
	:root { --lr-nav-pad-x: 10px; }
	.main-navigation-wrapper #searchform { display: none; }
}

@media (max-width: 1080px) {
	.lr-tagline { display: none; }
}

/* Планшет и ниже: бургер и выдвижное меню */
@media (max-width: 980px) {
	.header-wrapper {
		min-height: 68px;
		gap: var(--lr-s3);
		padding-block: var(--lr-s2);
	}
	.logo-wrapper { margin: 0; width: auto; }
	.logo-wrapper img { max-height: 40px; max-width: 190px; }
	.lr-tagline,
	.lr-header-contacts,
	.outer-social-wrapper { display: none !important; }
	.lr-header-mobile { display: flex; }

	.header-outer-wrapper {
		position: sticky;
		top: 0;
		z-index: 300;
		border-bottom: 1px solid var(--lr-line);
	}
	.main-navigation-wrapper { display: none; }

	.content-container.main { padding-block: var(--lr-s6) var(--lr-s7); }

	div.gdl-page-float-left { display: block; float: none; width: 100%; }
	.gdl-page-item,
	div.both-sidebar-included .gdl-page-item {
		float: none;
		width: 100% !important;
		max-width: none !important;
		margin: 0;
	}
	.gdl-left-sidebar,
	div.gdl-left-sidebar {
		float: none;
		position: static;
		width: 100% !important;
		max-width: none;
		margin: var(--lr-s8) 0 0 !important;
		padding: 0;
		background: none;
	}
	.gdl-left-sidebar .connected-carousels { display: none; }
	.menu-close-button, .adapt-menu-icon, .icon-menu-bg { display: none !important; }

	.preim-list { grid-template-columns: repeat(3, 1fr); row-gap: var(--lr-s5); }
	.city-column-kleeni-brus ul.my-list_count2 { columns: 3; }
	.lr-footer__top { grid-template-columns: 1fr 1fr; }
	.lr-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 740px) {
	.form_blocks { grid-template-columns: 1fr; }
	.form_blocks .block_green { border-left: 0; border-top: 1px solid var(--lr-line); }
	.form_blocks .block_green:first-child { border-top: 0; }

	.info_block { grid-template-columns: 1fr; padding: var(--lr-s5); }
	.two-img { grid-template-columns: 1fr; }
	.block-img img, .main_img img { flex-basis: 100%; }

	#konsultant2 { flex-direction: column; align-items: flex-start; gap: var(--lr-s4); }
	#konsultant2 .f-image2 { width: 100%; height: 56px; }

	.preim-list { grid-template-columns: repeat(2, 1fr); }
	.city-column-kleeni-brus ul.my-list_count2 { columns: 2; }

	.lr-footer__top { grid-template-columns: 1fr; gap: var(--lr-s6); }
	.lr-footer__nav ul { grid-template-columns: 1fr 1fr; }
	.lr-footer__bottom { flex-direction: column; align-items: flex-start; }

	.woocommerce ul.products { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}

@media (max-width: 480px) {
	body { font-size: 15.5px; }
	.content-container.main { padding-block: var(--lr-s5) var(--lr-s7); }
	h2 { margin-top: var(--lr-s7); }
	.tit_pages, .like_h2 { margin-top: var(--lr-s7); }

	.logo-wrapper img { max-height: 34px; max-width: 158px; }
	.header-wrapper { min-height: 60px; }

	.city-column-kleeni-brus ul.my-list_count2 { columns: 1; }
	.gdl-page-content p, .gdl-page-content ul, .gdl-page-content ol { max-width: none; }
	.cover-table table { min-width: 480px; font-size: 14px; }
	.cover-table table th, .cover-table table td { padding: 10px 12px; }
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: var(--lr-s4); }
	.woocommerce ul.products li.product h2,
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 13.5px !important; }
}

@media (max-width: 360px) {
	:root { --lr-gutter: 14px; }
	.preim-list { grid-template-columns: 1fr; }
	.woocommerce ul.products { grid-template-columns: 1fr; }
	.lr-footer__nav ul { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------
   16. ПРОЧЕЕ
   ------------------------------------------------------------- */
/* Блог, поиск, 404 */
.blog-item-holder .blog-title,
.search-result-title,
.gdl-page-item h2.blog-title {
	font-family: var(--lr-font-display);
	font-weight: 500;
	letter-spacing: -.01em;
}
.gdl-page-content img { border-radius: var(--lr-radius-sm); }
.gdl-page-content figure { margin: var(--lr-s6) 0; }
.gdl-page-content figcaption { margin-top: var(--lr-s2); font-size: 13px; color: var(--lr-ink-3); }

/* Пагинация постов */
.page-link, .gdl-pagination { margin-top: var(--lr-s6); font-size: 14px; }

/* Чат-виджет не должен перекрывать кнопки внизу экрана */
@media (max-width: 740px) {
	.content-container.main { padding-bottom: var(--lr-s9); }
}

/* Печать */
@media print {
	.main-navigation-wrapper,
	.lr-drawer,
	.lr-header-mobile,
	.lr-footer__nav,
	.metrika,
	#konsultant2 { display: none !important; }
	body { color: #000; font-size: 12pt; }
	a { text-decoration: underline; }
}

/* -------------------------------------------------------------
   17. НЕЙТРАЛИЗАЦИЯ LEGACY-ПРАВИЛ
   Старые правила написаны через `div.` и `!important`, поэтому
   выигрывают по специфичности. Здесь они гасятся точечно —
   удалять их из style.css рискованно: файл общий на все шаблоны.
   ------------------------------------------------------------- */
div.header-wrapper {
	position: relative;
	height: auto;
	min-height: 96px;
	display: flex;
	align-items: center;
	gap: clamp(16px, 2.5vw, 40px);
}
div.logo-wrapper {
	display: flex;
	align-items: center;
	width: auto;
	flex: 0 0 auto;
}
div.logo-wrapper img {
	display: block;
	width: auto;
	max-height: 56px;
	max-width: 260px;
}
div.outer-social-wrapper { float: none; text-align: left; margin-left: auto; }
div.outer-social-wrapper:empty,
div.outer-social-wrapper .social-icon-wrapper:empty { display: none; }
div.navigation-wrapper {
	font-size: 15px;
	font-weight: 400;
	text-align: left;
}
div.navigation-wrapper ul li ul li {
	font-weight: 400;
	font-size: 14.5px;
	text-align: left;
}

/* Зелёная «пилюля» активного пункта из superfish.css */
.navigation-wrapper .sf-menu .current-menu-ancestor > a,
.navigation-wrapper .sf-menu .current-menu-item > a,
.navigation-wrapper .sf-menu li a {
	background: none !important;
	border-radius: 0 !important;
	border-left: 0 !important;
	border-right: 0 !important;
	margin: 0 !important;
	padding: 17px var(--lr-nav-pad-x) !important;
	color: var(--lr-ink-2) !important;
	text-shadow: none !important;
}
.navigation-wrapper .sf-menu > li.current-menu-item > a,
.navigation-wrapper .sf-menu > li.current-menu-ancestor > a { color: var(--lr-ink) !important; }
.navigation-wrapper .sf-menu li:hover > a,
.navigation-wrapper .sf-menu li.sfHover > a { color: var(--lr-ink) !important; }
.navigation-wrapper .sf-menu ul li a { padding: 9px 18px !important; }

/* Отладочные правила, оставшиеся в superfish.css */
#menu-item-304,
#menu-item-304 a { background: none !important; color: inherit !important; }

/* Позиционирование подменю на 190px влево из style.css */
.menu-item-object-page:hover ul,
.menu-item-object-page ul {
	left: 0 !important;
	right: auto;
	padding: 8px 0 !important;
	border-top: 1px solid var(--lr-line) !important;
	border-bottom: 1px solid var(--lr-line) !important;
	box-shadow: var(--lr-shadow-md) !important;
	padding-bottom: 8px !important;
}
/* Боковое меню: гасим «плавающий» вид выпадашки всегда, не только на hover. */
.gdl-left-sidebar .menu-item-object-page ul,
.gdl-left-sidebar .menu-item-object-page:hover ul {
	position: static;
	box-shadow: none !important;
	border: 0 !important;
	border-left: 1px solid var(--lr-line) !important;
}
/* Drawer: убираем тень и лишние границы десктопной выпадашки, но
   сохраняем брендовую направляющую слева из .lr-drawer .sub-menu. */
.lr-drawer .menu-item-object-page ul,
.lr-drawer .menu-item-object-page:hover ul {
	position: static;
	box-shadow: none !important;
	border-top: 0 !important;
	border-bottom: 0 !important;
	border-right: 0 !important;
	border-left: 0 !important;
}

/* Старый мобильный сайдбар-«ящик» больше не используется */
.adapt-menu-icon,
.icon-menu-bg,
.menu-close-button { display: none !important; }
.gdl-left-sidebar.showmenu { transform: none !important; left: auto !important; position: static !important; }

/* Поле поиска вне шапки (страница результатов, виджеты) */
.lr-search {
	display: flex;
	gap: var(--lr-s2);
	align-items: stretch;
	max-width: 480px;
	margin: 0 0 var(--lr-s6);
}
.lr-search input[type="search"] { flex: 1 1 auto; min-width: 0; }
.lr-search .lr-btn { flex: 0 0 auto; }

/* Служебный текст только для скринридеров */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* Старые «шапочные» правила ширины в медиазапросах */
@media (max-width: 1024px) {
	div.logo-wrapper { width: auto; margin-top: 0; }
	div.header-wrapper { height: auto; }
}
@media (max-width: 980px) {
	div.logo-wrapper { display: flex; width: auto; margin: 0; }
	div.header-wrapper { min-height: 68px; }
	.container .both-sidebar-included .gdl-page-item .sixteen.columns,
	.container .sixteen.columns { width: 100% !important; max-width: none !important; }
	.gdl-left-sidebar li { font-size: 15px; margin: 0; }
	.gdl-left-sidebar li a { padding: 11px 30px 11px 0 !important; }
	div.custom-sidebar ul li { padding-left: 0; }
	div.left-sidebar-wrapper { padding: 0; }
	p.custom-sidebar-title.sidebar-title-color.gdl-title { margin: 0 0 12px !important; }
}
@media (max-width: 800px) {
	body { font-size: 16px !important; }
	.header-content-wrapper { padding: 0; }
	.gdl-page-item { width: 100% !important; }
	.container .sixteen.columns { width: 100% !important; }
	.gdl-page-content ul.strelka li { line-height: 1.55; }
}

/* -------------------------------------------------------------
   18. ТОЧЕЧНЫЕ ИСПРАВЛЕНИЯ ПОВЕРХ LEGACY
   ------------------------------------------------------------- */

/* --- Выпадающее меню: позиция под пунктом, а не -999em --- */
.navigation-wrapper .sf-menu li:hover > ul,
.navigation-wrapper .sf-menu li.sfHover > ul,
.navigation-wrapper .sf-menu li.sfHover:hover > ul,
div.no-boxed-layout .sf-menu li:hover > ul,
div.no-boxed-layout .sf-menu li.sfHover > ul {
	top: 100%;
	left: 0;
	z-index: 400;
}
.navigation-wrapper .sf-menu li li:hover > ul,
.navigation-wrapper .sf-menu li li.sfHover > ul,
div.no-boxed-layout .sf-menu li:hover ul ul,
div.no-boxed-layout .sf-menu li.sfHover ul ul {
	top: -9px;
	left: 100%;
}
.navigation-wrapper .sf-menu li:hover li ul,
.navigation-wrapper .sf-menu li.sfHover li ul { top: -999em; }
.navigation-wrapper .sf-menu ul {
	border: 1px solid var(--lr-line);
	box-shadow: var(--lr-shadow-md);
	border-radius: var(--lr-radius-md);
}
.navigation-wrapper .sf-menu li li { border-bottom: 0; padding: 0; }
div.no-boxed-layout .sf-menu li { padding: 0; }
div.no-boxed-layout .sf-menu li li { padding: 0; }

/* --- Заголовки блоков в левой колонке ---
   Legacy-правило p.custom-sidebar-title.sidebar-title-color.gdl-title
   красило их белым по зелёной «таблетке». */
.gdl-left-sidebar p.custom-sidebar-title.sidebar-title-color.gdl-title,
.gdl-left-sidebar .custom-sidebar-title,
div.left-sidebar-wrapper .custom-sidebar-title,
.lr-drawer .lr-drawer__section-title {
	width: auto;
	height: auto;
	margin: 0 0 12px !important;
	padding: 0 0 12px;
	font-family: var(--lr-font-sans);
	font-size: 12px !important;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-align: left;
	color: var(--lr-ink-3) !important;
	background: none !important;
	border: 0;
	border-bottom: 1px solid var(--lr-line);
	border-radius: 0 !important;
}
.lr-drawer .lr-drawer__section-title {
	padding: 0 var(--lr-s5) var(--lr-s2);
	border-bottom: 0;
	margin-bottom: 4px !important;
}
div.left-sidebar-wrapper { padding: 0; height: auto !important; }
.gdl-left-sidebar div.custom-sidebar { margin-bottom: var(--lr-s7); position: relative; }
.gdl-left-sidebar div.custom-sidebar ul li {
	padding: 0 !important;
	background: none;
	border-bottom: 1px solid var(--lr-line-soft);
}
.gdl-left-sidebar div.custom-sidebar ul li li:last-child { border-bottom: 0; }
.gdl-left-sidebar div.custom-sidebar ul { margin-left: 0; }

/* --- Полоса быстрых действий: снимаем абсолютное позиционирование --- */
.form_blocks .green_input,
.form_blocks .green_txt {
	position: static;
	width: auto;
	height: auto;
	background: none;
	background-image: none !important;
}
.form_blocks .green_txt p { padding-top: 0; text-align: left; }
.form_blocks .green_input p { text-align: left; font-weight: 400; font-size: inherit; }
/* Главное действие занимает всю ширину ячейки. Подпись длинная и
   в одну строку не помещается, а кнопка «по содержимому» получалась
   то в две строки, то в три — высота ячейки скакала.
   !important здесь обязателен: в style.css у `.green_input a`
   задан `font-size: 16px !important`. */
.form_blocks .block_green:first-child .green_input,
.form_blocks .block_green:first-child .green_input p { display: block; width: 100%; }
.form_blocks .green_input a.mform {
	display: flex;
	width: 100%;
	min-height: 0;
	font-size: 14px !important;
	line-height: 1.35;
	padding: 12px 16px !important;
}
.form_blocks p { text-align: left; font-weight: 400; font-size: inherit; }

/* --- Прочее --- */
.preim-item a { display: block; }
.preim-item a[href] { color: inherit; text-decoration: none; }
.gdl-page-content ul.strelka li { padding-top: 0; padding-bottom: 0; }

/* --- Бургер: legacy #pull_menu задавал display:block по id --- */
#pull_menu.lr-burger {
	display: inline-flex;
	/* Селектор с id перебивал ширину из .lr-burger, из-за чего бургер
	   оставался 44px против 40px у кнопки звонка рядом. */
	width: 40px;
	margin: 0;
}

/* --- Внутренние отступы контейнера, снятые legacy-правилом
       `.container{padding-left:0!important}` на планшетах --- */
@media (max-width: 1024px) {
	.container,
	div.container {
		width: 100% !important;
		max-width: var(--lr-container);
		padding-left: var(--lr-gutter) !important;
		padding-right: var(--lr-gutter) !important;
	}
	.header-content-wrapper { padding: 0; }
}

/* --- Промо-блок: legacy задавал фиксированные 752px и абсолютный .dot --- */
#konsultant2 {
	width: auto;
	max-width: 100%;
	height: auto;
	position: relative;
}
#konsultant2 .dot {
	position: static;
	width: auto;
	height: auto;
	right: auto;
	top: auto;
	flex: 1 1 auto;
	min-width: 0;
}
#konsultant2 .dot > a { display: inline; }

/* --- skeleton задаёт .columns{display:inline} как хак под старый IE.
       Как только убирается float, блок «схлопывается» в строчный. --- */
.gdl-left-sidebar,
div.gdl-left-sidebar { display: block; }

@media (max-width: 980px) {
	.gdl-left-sidebar,
	div.gdl-left-sidebar,
	div.gdl-page-float-left > .gdl-left-sidebar {
		display: block;
		float: none;
		position: static;
		width: 100% !important;
		margin: var(--lr-s8) 0 0 !important;
	}
	.gdl-left-sidebar .custom-sidebar { max-width: 560px; }
}

/* --- Логотип: legacy-правило записано как div.logo-wrapper img,
       поэтому на узких экранах перебивало ограничение по ширине --- */
@media (max-width: 980px) {
	div.logo-wrapper img { max-height: 40px; max-width: 190px; }
}
@media (max-width: 480px) {
	div.logo-wrapper img { max-height: 32px; max-width: 150px; }
}
@media (max-width: 360px) {
	div.logo-wrapper img { max-height: 30px; max-width: 132px; }
	.lr-header-mobile { gap: 6px; }
	.lr-icon-link { width: 38px; height: 38px; }
}

/* -------------------------------------------------------------
   19. ПЕРЕОПРЕДЕЛЕНИЕ style-custom.css
   Этот файл генерируется панелью темы и целиком состоит из
   !important, поэтому нужные значения дублируются здесь.
   ------------------------------------------------------------- */
body { color: var(--lr-ink-2) !important; }

.navigation-wrapper {
	background-color: var(--lr-paper) !important;
	border-top: 0 !important;
	border-bottom: 0 !important;
	box-shadow: none !important;
}
.navigation-wrapper .sf-menu ul,
.navigation-wrapper .sf-menu ul li { border-color: var(--lr-line) !important; }
.navigation-wrapper .sf-menu li li { background-color: var(--lr-paper) !important; }
.navigation-wrapper .sf-menu ul a,
.navigation-wrapper .sf-menu ul .current-menu-ancestor ul a,
.navigation-wrapper .sf-menu ul .current-menu-item ul a,
.navigation-wrapper .sf-menu .current-menu-ancestor ul a,
.navigation-wrapper .sf-menu .current-menu-item ul a { color: var(--lr-ink-2) !important; }

/* Боковые меню каталога: жёстко заданные рамка и тень по id */
#menu-pravoe,
#menu-levoe,
.gdl-left-sidebar ul.menu {
	font-weight: 400 !important;
	font-size: 15px !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}

/* Лаймовый на белом даёт контраст 2.2:1 — для текста не годится */
.gdl-link-title,
.gdl-link-title a,
.port-title-color,
.port-title-color a { color: var(--lr-ink) !important; }
.gdl-link-title a:hover,
.port-title-color a:hover { color: var(--lr-brand-dark) !important; }
h1, h2, h3, h4, .gdl-page-title, .tit_pages { color: var(--lr-ink) !important; }
.title-color, .title-color a { color: var(--lr-ink) !important; }

/* Оранжевая кнопка из панели темы приводится к общей системе */
.stunning-text-button {
	color: var(--lr-ink) !important;
	background-color: var(--lr-brand) !important;
	border: 1px solid var(--lr-brand) !important;
}

/* Тёмные блоки: заголовки остаются светлыми */
.lr-footer h1, .lr-footer h2, .lr-footer h3, .lr-footer h4, .lr-footer h5, .lr-footer h6,
.lr-footer .custom-sidebar-title, .lr-footer .gdl-title,
.info_block h1, .info_block h2, .info_block h3, .info_block h4 {
	color: rgba(255, 255, 255, .82) !important;
}
.lr-footer .lr-footer__col-title,
.lr-footer .widget-title { color: rgba(255, 255, 255, .55) !important; }

/* -------------------------------------------------------------
   20. WOOCOMMERCE БЕЗ КЛАССА-ПРЕДКА
   Часть шаблонов темы выводит каталог вне контейнера .woocommerce,
   поэтому сетка дублируется на «голых» селекторах.
   ------------------------------------------------------------- */
ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(216px, 1fr));
	gap: clamp(16px, 2vw, 28px);
	margin: var(--lr-s6) 0 0 !important;
	padding: 0;
	list-style: none;
}
ul.products::before, ul.products::after { display: none; }
ul.products > li.product {
	display: flex;
	flex-direction: column;
	width: 100% !important;
	margin: 0 !important;
	padding: 0;
	float: none !important;
	clear: none !important;
	list-style: none;
	background: none;
	border: 0;
	text-align: left;
}
ul.products > li.product > a img,
ul.products > li.product img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: 0 0 var(--lr-s3);
	background: var(--lr-surface);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
	box-shadow: none;
	transition: border-color var(--lr-t-base);
}
ul.products > li.product:hover img { border-color: var(--lr-line-strong); }
ul.products > li.product h2,
ul.products > li.product h3,
ul.products > li.product .woocommerce-loop-product__title {
	margin: 0 0 var(--lr-s2) !important;
	padding: 0 !important;
	font-family: var(--lr-font-sans) !important;
	font-size: 14.5px !important;
	font-weight: 500 !important;
	line-height: 1.4;
	color: var(--lr-ink) !important;
	letter-spacing: 0;
}
ul.products > li.product .price {
	margin: 0 0 var(--lr-s3) !important;
	font-size: 16px;
	font-weight: 600;
	color: var(--lr-ink) !important;
}
ul.products > li.product .button { margin-top: auto; width: 100%; font-size: 14px; min-height: 42px; }

@media (max-width: 740px) {
	ul.products { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}
@media (max-width: 480px) {
	ul.products { grid-template-columns: repeat(2, 1fr); gap: var(--lr-s4); }
	ul.products > li.product h2,
	ul.products > li.product .woocommerce-loop-product__title { font-size: 13.5px !important; }
}
@media (max-width: 360px) {
	ul.products { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------
   21. РИТМ ДЛИННЫХ СТРАНИЦ
   Страницы каталога — это длинные простыни текста, таблиц и
   картинок. Тонкая линия над H2 задаёт членение без лишних
   рамок и карточек.
   ------------------------------------------------------------- */
.gdl-page-content h2 {
	padding-top: var(--lr-s6);
	border-top: 1px solid var(--lr-line);
}
.gdl-page-content h2:first-child {
	padding-top: 0;
	border-top: 0;
}
.gdl-page-content .tit_pages::before {
	content: "";
	display: block;
	width: 28px;
	height: 2px;
	margin-bottom: var(--lr-s3);
	background: var(--lr-brand);
}
.gdl-page-content .tit_pages.t_a_c::before,
.gdl-page-content .like_h2.t_a_c::before { margin-inline: auto; }

/* -------------------------------------------------------------
   22. ВСТРАИВАЕМЫЕ ЭЛЕМЕНТЫ
   preloader.js отключён, поэтому картинки больше не прячутся
   инлайновыми стилями; здесь остаётся страховка на случай, если
   такие стили сохранились в контенте.
   ------------------------------------------------------------- */
.gdl-page-content img[style*="visibility"],
.gdl-page-content img[style*="opacity"] {
	visibility: visible !important;
	opacity: 1 !important;
}
a.preloader { display: block; }

iframe, embed, object, video {
	max-width: 100%;
	border: 0;
}
.my_map,
.gdl-page-content iframe[src*="yandex"],
.gdl-page-content iframe[src*="youtube"] {
	width: 100%;
	max-width: 100%;
	border-radius: var(--lr-radius-md);
	overflow: hidden;
}
.gdl-page-content iframe[src*="youtube"] { aspect-ratio: 16 / 9; height: auto; }
.product-img-small img { border-radius: var(--lr-radius-md); }

/* -------------------------------------------------------------
   23. БЛОГ, ПОИСК, АРХИВ
   ------------------------------------------------------------- */
.blog-item-holder { display: block; }
.blog-item-holder .blog-item,
.blog-item-holder .blog-item1,
.blog-item-holder > .columns {
	width: 100% !important;
	margin: 0 0 var(--lr-s6) !important;
	padding: 0 0 var(--lr-s6);
	float: none !important;
	border-bottom: 1px solid var(--lr-line-soft);
	background: none;
}
.blog-item-holder .blog-item-holder-inner { display: block; }
.blog-thumbnail-title,
.blog-thumbnail-title a {
	font-family: var(--lr-font-display) !important;
	font-size: clamp(19px, 1rem + .5vw, 23px) !important;
	font-weight: 500 !important;
	line-height: 1.3;
	letter-spacing: -.01em;
	color: var(--lr-ink) !important;
	text-decoration: none;
}
.blog-thumbnail-title a:hover { color: var(--lr-brand-dark) !important; }
.blog-thumbnail-date,
.blog-thumbnail-info {
	font-size: 12.5px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--lr-ink-3) !important;
	border: 0 !important;
}
.blog-thumbnail-content { font-size: 15.5px; line-height: 1.65; max-width: 68ch; }
.blog-thumbnail-image img,
.blog-thumbnail-video iframe {
	width: 100%;
	border-radius: var(--lr-radius-md);
}
.blog-thumbnail-image { background: none !important; border: 0 !important; padding: 0 !important; }
.archive-wrapper .gdl-page-title { margin-bottom: var(--lr-s6); }

/* -------------------------------------------------------------
   24. ТАБЛИЦЫ БЕЗ JS
   Обёртку .cover-table ставит lr-ui.js. Если скрипт не выполнился,
   таблица всё равно не должна разрывать страницу.
   ------------------------------------------------------------- */
.gdl-page-item table:not(.shop_table),
.gdl-page-content table:not(.shop_table) {
	max-width: 100%;
}
@media (max-width: 740px) {
	.gdl-page-item > .columns > table.tab_centr,
	.gdl-page-content > table.tab_centr {
		display: block;
		width: 100% !important;
		min-width: 0;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* Телефоны в выдвижном меню: комфортная зона нажатия */
.lr-drawer__contacts .lr-phone {
	padding: 8px 0;
	min-height: 44px;
	display: flex;
	align-items: center;
}
.lr-drawer__contacts .lr-phone--sec { min-height: 40px; }

/* Контактный блок: flex вместо grid — пустой абзац от скрытой
   иллюстрации больше не занимает целую ячейку сетки */
.info_block {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
}
.info_block > .top_block { flex: 1 1 100%; }
.info_block > .middle_block { flex: 1 1 260px; }
.info_block > .last_block { flex: 1 1 320px; }
.info_block > p:empty { display: none; }

.info_block,
.info_block .top_block,
.info_block .top_block p,
.info_block .middle_block,
.info_block .middle_block p,
.info_block .last_block,
.info_block .last_block p { text-align: left; }
/* legacy задавал курсив всему тексту блока заявки — вместе с кнопкой. */
.info_block .last_block p,
.info_block .last_block p.gr,
.info_block .last_block a { font-style: normal; }

/* -------------------------------------------------------------
   25. КОНТАКТНЫЙ БЛОК
   Верхняя строка — телефон, почта и адрес. Ниже, за разделителем,
   приглашение оставить заявку с кнопкой: текст страницы «Контакты»
   обещает форму обратной связи ниже, и это единственная кнопка,
   которая её открывает.
   ------------------------------------------------------------- */
.info_block > .last_block {
	flex: 1 1 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--lr-s4) clamp(24px, 4vw, 48px);
	margin-top: var(--lr-s5);
	padding-top: var(--lr-s5);
	border-top: 1px solid rgba(255,255,255,.12);
}
.info_block .last_block p { margin: 0; }
.info_block .last_block p.gr { flex: 1 1 280px; margin: 0; }
.info_block .last_block p:last-child { flex: 0 0 auto; }
.info_block > .middle_block {
	flex: 1 1 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: var(--lr-s5) clamp(32px, 5vw, 72px);
}
.info_block > .middle_block p { margin: 0; }
.info_block .ya-phone,
.info_block .ya-phone a { font-size: 24px; }

@media (max-width: 560px) {
	.info_block > .middle_block { gap: var(--lr-s4); }
	.info_block > .middle_block p { flex: 1 1 100%; }
	.info_block .ya-phone,
	.info_block .ya-phone a { font-size: 21px; }
}

/* -------------------------------------------------------------
   26. ПОЛОСА БЫСТРЫХ ДЕЙСТВИЙ НА МОБИЛЬНЫХ
   В столбик блок занимал почти весь экран. Уплотняем отступы,
   уменьшаем подписи и разворачиваем кнопку на всю ширину, чтобы
   текст ложился в две строки вместо трёх.
   ------------------------------------------------------------- */
@media (max-width: 740px) {
	.form_blocks {
		margin: var(--lr-s6) 0;
		border-radius: var(--lr-radius-md);
	}
	.form_blocks .block_green {
		gap: 10px;
		padding: 14px 16px;
	}
	.form_blocks .green_txt p {
		font-size: 10.5px;
		line-height: 1.3;
		letter-spacing: .08em;
	}
	.form_blocks .green_input a,
	.form_blocks .green_input a.mform {
		width: 100%;
		min-height: 44px;
		padding: 10px 16px !important;
		font-size: 14px !important;
		line-height: 1.3;
		border-radius: var(--lr-radius-sm);
		box-shadow: none !important;
	}
	.form_blocks .block_green:not(:first-child) .green_input a {
		width: auto;
		min-height: 0;
		padding: 0 0 3px !important;
		font-size: 14.5px !important;
		border-radius: 0;
	}
}

@media (max-width: 480px) {
	.form_blocks .block_green { padding: 12px 14px; gap: 8px; }
	.form_blocks .green_txt p { font-size: 10px; }
	.form_blocks .green_input a,
	.form_blocks .green_input a.mform {
		font-size: 13.5px !important;
		padding: 9px 14px !important;
	}
	.form_blocks .block_green:not(:first-child) .green_input a {
		font-size: 14px !important;
		padding: 0 0 3px !important;
	}
}

/* =============================================================
   27. МОБИЛЬНАЯ АДАПТАЦИЯ
   ============================================================= */

/* --- 27.1 Раскладка ---
   Legacy-правило div.gdl-page-item{float:right} перебивало сброс
   по классу, из-за чего боковая колонка обтекала контент и её
   блок растягивался на всю страницу. */
@media (max-width: 980px) {
	div.gdl-page-item,
	div.both-sidebar-included .gdl-page-item,
	div.gdl-page-float-left > .gdl-page-item {
		float: none !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0;
	}
	div.gdl-page-float-left { display: block; float: none; width: 100%; }
}

/* --- 27.2 Плотность ---
   На телефоне вертикальный ритм рабочего стола читается как пустота:
   до следующего блока приходится долго листать. */
@media (max-width: 740px) {
	:root {
		--lr-s7: 36px;
		--lr-s8: 44px;
		--lr-s9: 56px;
		--lr-s10: 64px;
	}
	body { font-size: 16px; line-height: 1.6; }
	.content-container.main { padding-block: var(--lr-s5) var(--lr-s7); }
	h1, .gdl-page-title { margin-bottom: var(--lr-s4); }
	.gdl-page-content h2 { padding-top: var(--lr-s5); }
	.gdl-page-content p,
	.gdl-page-content ul,
	.gdl-page-content ol { margin-bottom: var(--lr-s4); }
	.gdl-page-content li { margin-bottom: 6px; }
	ul.strelka li { margin-bottom: 10px; }
}

/* --- 27.3 Галереи в две колонки ---
   В один столбец блок с восемью фото занимал полторы тысячи пикселей. */
@media (max-width: 740px) {
	.two-img,
	.main_img,
	.block-img {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
		margin: var(--lr-s5) 0;
	}
	.two-img img,
	.main_img img,
	.block-img img {
		width: 100%;
		height: 100%;
		aspect-ratio: 4 / 3;
		object-fit: cover;
		margin: 0 !important;
		flex: none;
	}
	.block-how-we-work { margin: var(--lr-s5) 0; }
	.preim-list {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--lr-s4);
		padding: var(--lr-s5) 0;
		margin: var(--lr-s6) 0;
	}
	.preim-item img { width: 30px; height: 30px; margin-bottom: 8px; }
	.preim-item p { font-size: 13.5px; }
}

/* --- 27.4 Прайсы карточками ---
   Горизонтальная прокрутка таблицы на телефоне — худший способ
   читать цены. Скрипт размечает ячейки, а строка становится
   карточкой «параметр — значение». */
@media (max-width: 900px) {
	.cover-table.lr-has-cards {
		border: 0;
		overflow: visible;
	}
	table.lr-table-cards {
		display: block;
		width: 100% !important;
		min-width: 0 !important;
	}
	table.lr-table-cards tbody { display: block; }
	table.lr-table-cards tr {
		display: block;
		margin-bottom: 12px;
		padding: 4px 14px;
		background: var(--lr-paper);
		border: 1px solid var(--lr-line);
		border-radius: var(--lr-radius-md);
	}
	table.lr-table-cards tr:last-child { margin-bottom: 0; }
	table.lr-table-cards tr.lr-table-head { display: none; }
	table.lr-table-cards td {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 16px;
		width: auto !important;
		padding: 9px 0 !important;
		border: 0 !important;
		border-bottom: 1px solid var(--lr-line-soft) !important;
		background: none !important;
		text-align: right;
		font-size: 14.5px;
		white-space: normal !important;
	}
	table.lr-table-cards td:last-child { border-bottom: 0 !important; }
	table.lr-table-cards td::before {
		content: attr(data-label);
		flex: 0 0 auto;
		max-width: 45%;
		font-size: 11px;
		font-weight: 600;
		letter-spacing: .07em;
		text-transform: uppercase;
		color: var(--lr-ink-3);
		text-align: left;
	}
	table.lr-table-cards td:not([data-label])::before { content: none; }
	table.lr-table-cards td.lr-cell-title {
		display: block;
		text-align: left;
		font-family: var(--lr-font-sans);
		font-size: 15.5px;
		font-weight: 600;
		color: var(--lr-ink);
		padding-top: 12px !important;
	}
	table.lr-table-cards td.lr-cell-title::before { content: none; }
	table.lr-table-cards td.lr-cell-price {
		font-size: 16px;
		font-weight: 600;
		color: var(--lr-ink);
	}
}

/* --- 27.5 Нижняя панель действий ---
   Страницы каталога длинные: чтобы позвонить, приходилось листать
   до самого верха. Панель держит главные действия под пальцем. */
.lr-tabbar { display: none; }
.lr-to-top { display: none; }

@media (max-width: 980px) {
	.lr-tabbar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 3500;
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		background: var(--lr-paper);
		border-top: 1px solid var(--lr-line);
		box-shadow: 0 -8px 24px -20px rgba(26, 33, 28, .5);
		padding-bottom: env(safe-area-inset-bottom, 0px);
	}
	.lr-tabbar__item {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
		min-height: 58px;
		padding: 8px 4px;
		margin: 0;
		font-family: var(--lr-font-sans);
		font-size: 11px;
		font-weight: 500;
		line-height: 1.2;
		letter-spacing: .01em;
		color: var(--lr-ink-2);
		text-decoration: none;
		background: none;
		border: 0;
		border-radius: 0;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
		transition: color var(--lr-t-fast), background var(--lr-t-fast);
	}
	.lr-tabbar__item svg { width: 22px; height: 22px; }
	.lr-tabbar__item:active { background: var(--lr-surface); }
	.lr-tabbar__item:hover { color: var(--lr-ink); }
	.lr-tabbar__item--call { color: var(--lr-brand-deep); font-weight: 600; }
	.lr-tabbar__item--call svg { stroke-width: 1.8; }
	.lr-tabbar__item + .lr-tabbar__item { border-left: 1px solid var(--lr-line-soft); }

	/* Панель не должна перекрывать конец страницы */
	body { padding-bottom: 58px; }

	.lr-to-top {
		position: fixed;
		right: 14px;
		bottom: 72px;
		z-index: 3400;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		padding: 0;
		color: var(--lr-ink-2);
		background: var(--lr-paper);
		border: 1px solid var(--lr-line);
		border-radius: 50%;
		box-shadow: var(--lr-shadow-md);
		cursor: pointer;
		opacity: 0;
		transform: translateY(6px);
		transition: opacity var(--lr-t-base), transform var(--lr-t-base);
	}
	.lr-to-top[hidden] { display: none; }
	.lr-to-top.is-visible { opacity: 1; transform: translateY(0); }

	/*
	 * Чат-виджет поднимаем над нижней панелью, чтобы он не закрывал
	 * кнопки. Круглую кнопку поднимало правило для `wrap`, а вот широкую
	 * подпись «Отправьте нам сообщение» — нет: она лежит в отдельном
	 * контейнере и наезжала на панель.
	 *
	 * Классы у Jivo генерируются сборщиком (`wrap__YO3mG`), устойчива
	 * только их приставка — по ней и целимся. Полноэкранные контейнеры
	 * (`container__`, `zoomPane__`, `jv-pseudo-height`) трогать нельзя:
	 * это раскрытое окно чата, ему место с самого низа.
	 *
	 * Надёжнее задать отступ в самой панели Jivo: «Внешний вид →
	 * отступы виджета». Тогда правка переживёт обновление виджета.
	 */
	body.lr-has-tabbar jdiv[class*="wrap__"],
	body.lr-has-tabbar jdiv[class*="label__"],
	body.lr-has-tabbar jdiv[class*="Label__"],
	body.lr-has-tabbar #jvlabelWrap,
	body.lr-has-tabbar #jivo-iframe-container {
		bottom: calc(66px + env(safe-area-inset-bottom, 0px)) !important;
	}
	/* Подпись не должна распирать себя на всю ширину поверх панели. */
	body.lr-has-tabbar jdiv[class*="label__"],
	body.lr-has-tabbar jdiv[class*="Label__"] {
		max-width: calc(100vw - 24px) !important;
	}
}

/* --- 27.6 Зоны нажатия --- */
@media (max-width: 980px) {
	.lr-submenu-toggle { width: 44px; height: 44px; top: 0; }
	.gdl-left-sidebar ul li a { padding: 13px 46px 13px 0 !important; }
	.lr-footer__nav li a,
	.lr-footer .top-navigation-left li a { padding: 10px 0 !important; }
	.lr-footer__legal a { padding: 6px 0; display: inline-block; }
	.form_blocks .block_green:not(:first-child) .green_input a { padding: 6px 0 !important; }
}

/* --- 27.7 Каталог в боковой колонке на телефоне ---
   Ниже подвала он никому не нужен: даём компактный блок с рамкой,
   тот же список продублирован в выдвижном меню. */
@media (max-width: 980px) {
	.gdl-left-sidebar,
	div.gdl-left-sidebar {
		margin-top: var(--lr-s7) !important;
		padding: 0;
		background: none;
		border: 0;
		border-top: 1px solid var(--lr-line);
		padding-top: var(--lr-s6);
		border-radius: 0;
	}
	.gdl-left-sidebar .custom-sidebar { margin-bottom: var(--lr-s5); max-width: none; }
	.gdl-left-sidebar .custom-sidebar:last-child { margin-bottom: 0; }
	.gdl-left-sidebar ul li { border-bottom-color: var(--lr-line); }
	.gdl-left-sidebar .connected-carousels { display: none; }
}

/* --- 27.8 Схлопывание контейнера контента ---
   Колонки skeleton плавающие. Пока .gdl-page-item был float:right,
   он их удерживал; после сброса float высота контейнера обнулялась,
   и контент «вываливался» в область боковой колонки. */
@media (max-width: 980px) {
	div.gdl-page-item,
	div.gdl-page-float-left { display: flow-root; }
	.gdl-page-item > .columns,
	.gdl-page-item > .column,
	.gdl-page-item > .sixteen.columns {
		float: none;
		display: block;
		width: 100% !important;
		max-width: none !important;
		margin: 0;
	}
}

/* --- 27.9 Панель действий не наследует стиль кнопок ---
   Пункт «Заявка» помечен классом .mform (его слушает модалка
   обратного звонка), из-за чего к нему прилипал вид кнопки. */
.lr-tabbar a.mform,
.lr-tabbar a.mform:hover,
.lr-tabbar .lr-tabbar__item {
	min-height: 58px;
	padding: 8px 4px !important;
	margin: 0 !important;
	font-size: 11px !important;
	font-weight: 500;
	color: var(--lr-ink-2);
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	transform: none;
}
.lr-tabbar .lr-tabbar__item + .lr-tabbar__item { border-left: 1px solid var(--lr-line-soft) !important; }
.lr-tabbar .lr-tabbar__item--call,
.lr-tabbar a.lr-tabbar__item--call:hover { color: var(--lr-brand-deep); font-weight: 600; }
.lr-tabbar a.mform::after { content: none; }
.lr-tabbar span { display: block; }

/* Цена в карточке: инлайновые стили из базы (лаймовый 25px)
   не читаются на белом и ломают ритм карточки. */
table.lr-table-cards .lr-cell-price p,
table.lr-table-cards .lr-cell-price span,
table.lr-table-cards .lr-cell-price div {
	display: inline;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	color: var(--lr-ink) !important;
}
table.lr-table-cards td[width] { width: auto !important; }

/* Таблица, которую не удалось разложить на карточки, прокручивается
   внутри своей рамки и не вылезает за неё. */
.cover-table:not(.lr-has-cards) {
	overflow-x: auto;
	max-width: 100%;
}
.cover-table:not(.lr-has-cards) > table { min-width: 520px; }

/* Значения в карточке не должны наследовать микро-капс от .big_name —
   этот класс в разметке используется и для заголовков, и для цены. */
table.lr-table-cards tr:not(.lr-table-head) .big_name {
	font-size: inherit !important;
	font-weight: inherit;
	letter-spacing: normal;
	text-transform: none;
	color: inherit;
}

/* --- 27.10 Таблицы, которые нельзя разложить на карточки ---
   На страницах цен ячейки объединены по вертикали, поэтому
   построчная раскладка там неприменима. Такие таблицы просто
   ужимаются под ширину экрана: текст переносится, инлайновый
   размер 25px у цены (из редактора) сбрасывается. */
@media (max-width: 900px) {
	.cover-table:not(.lr-has-cards) {
		overflow-x: visible;
	}
	.cover-table:not(.lr-has-cards) > table {
		width: 100% !important;
		min-width: 0 !important;
		font-size: 13px;
	}
	.cover-table:not(.lr-has-cards) td,
	.cover-table:not(.lr-has-cards) th {
		padding: 9px 6px !important;
		white-space: normal !important;
		overflow-wrap: break-word;
		hyphens: none;
		width: auto !important;
	}
	/* Подписи столбцов не режем посреди слова — они короткие
	   и должны читаться целиком. */
	.cover-table:not(.lr-has-cards) tr:first-child td,
	.cover-table:not(.lr-has-cards) tr:first-child th {
		overflow-wrap: normal;
		word-break: keep-all;
		padding: 8px 6px !important;
	}
	.cover-table:not(.lr-has-cards) td p,
	.cover-table:not(.lr-has-cards) td div,
	.cover-table:not(.lr-has-cards) td span,
	.cover-table:not(.lr-has-cards) td strong {
		font-size: 14px !important;
		line-height: 1.35 !important;
		margin: 0 !important;
		color: var(--lr-ink) !important;
	}
	.cover-table:not(.lr-has-cards) tr:first-child td strong {
		font-size: 11.5px !important;
		font-weight: 600 !important;
		letter-spacing: .05em;
		text-transform: uppercase;
		color: var(--lr-ink-3) !important;
	}
	.cover-table:not(.lr-has-cards) td[align="center"],
	.cover-table:not(.lr-has-cards) td[style*="center"] { text-align: center !important; }
}
@media (max-width: 480px) {
	.cover-table:not(.lr-has-cards) > table { font-size: 12.5px; }
	.cover-table:not(.lr-has-cards) td { padding: 8px 5px !important; }
	.cover-table:not(.lr-has-cards) td p,
	.cover-table:not(.lr-has-cards) td strong { font-size: 13px !important; }
}

/* =============================================================
   28. КАТАЛОГ
   ============================================================= */

/* Clearfix-псевдоэлементы WooCommerce занимали первую ячейку сетки,
   из-за чего первый товар оказывался во второй колонке. */
ul.products::before,
ul.products::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
	display: none !important;
	content: none !important;
}

/* Карточка товара */
ul.products > li.product {
	position: relative;
	padding: 0 0 var(--lr-s4);
	border-bottom: 1px solid var(--lr-line-soft);
}
ul.products > li.product > a:first-child {
	display: block;
	margin-bottom: var(--lr-s3);
}
ul.products > li.product img,
.woocommerce ul.products li.product a img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: 0;
	background: var(--lr-surface);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
	transition: border-color var(--lr-t-base);
}
ul.products > li.product:hover img { border-color: var(--lr-line-strong); }

ul.products > li.product h2,
ul.products > li.product .woocommerce-loop-product__title {
	margin: 0 0 4px !important;
	font-family: var(--lr-font-sans) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.3;
	color: var(--lr-ink) !important;
}
.lr-product-specs {
	margin: 0 0 var(--lr-s3) !important;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--lr-ink-3);
	max-width: none;
}
ul.products > li.product .price,
.woocommerce ul.products li.product .price {
	display: block;
	margin: 0 0 var(--lr-s3) !important;
	font-size: 17px !important;
	font-weight: 600;
	color: var(--lr-ink) !important;
}
ul.products > li.product .price del { font-size: 14px; color: var(--lr-ink-3); }
ul.products > li.product .button {
	margin-top: auto;
	width: 100%;
	min-height: 44px;
	font-size: 14px;
}

/* Заголовок и служебные строки каталога */
.woocommerce .woocommerce-result-count,
.woocommerce-result-count {
	float: none;
	margin: 0 0 var(--lr-s4) !important;
	font-size: 13px;
	font-style: normal;
	color: var(--lr-ink-3);
}
.woocommerce .woocommerce-ordering,
.woocommerce-ordering { float: none; margin: 0 0 var(--lr-s5) !important; }
.term-description:empty { display: none; }

@media (max-width: 980px) {
	ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: var(--lr-s5) var(--lr-s4) !important;
	}
	ul.products > li.product h2,
	ul.products > li.product .woocommerce-loop-product__title { font-size: 14.5px !important; }
	.lr-product-specs { font-size: 12px; }
	ul.products > li.product .price { font-size: 16px !important; }
	.woocommerce-ordering select { width: 100%; }
}

@media (max-width: 400px) {
	/* Две колонки и на узких экранах: карточка во всю ширину
	   растягивает каталог на десятки экранов прокрутки. */
	ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: var(--lr-s3) !important; }
	ul.products > li.product img { aspect-ratio: 1 / 1; }
	ul.products > li.product h2,
	ul.products > li.product .woocommerce-loop-product__title { font-size: 13px !important; }
	.lr-product-specs { font-size: 11.5px; }
	ul.products > li.product .price { font-size: 16px !important; }
}

/* --- 28.1 Правки поверх реальной разметки каталога --- */

/* Слово «Цена:» выводится дважды: обычным текстом и внутри
   .price_text. Оставляем один. */
ul.products .price .price_text,
.woocommerce ul.products li.product .price .price_text { display: none; }
ul.products li.product p:empty { display: none; }

/* Характеристики выводит скрипт внутрь заголовка карточки. */
.woocommerce-loop-product__title .lr-product-specs,
.lr-product-specs {
	display: block;
	margin-top: 4px;
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: 0;
	color: var(--lr-ink-3);
}

/* Пропорции превью задаются в одном месте: правило из раздела 12
   было записано с более высокой специфичностью и перебивало новое. */
.woocommerce ul.products li.product a img,
ul.products > li.product > a img,
ul.products > li.product img {
	aspect-ratio: 1 / 1;
}
@media (max-width: 400px) {
	.woocommerce ul.products li.product a img,
	ul.products > li.product > a img,
	ul.products > li.product img { aspect-ratio: 1 / 1; }
	.woocommerce-loop-product__title .lr-product-specs,
	.lr-product-specs { font-size: 11.5px; }
}

/* Ссылка-обёртка карточки: картинка, название, цена — одним блоком */
ul.products > li.product > a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	margin-bottom: var(--lr-s3);
	color: inherit;
	text-decoration: none;
}
ul.products > li.product > a.woocommerce-LoopProduct-link .price { margin-bottom: 0 !important; }

/* Кнопка заказа в карточке: в этой сборке у неё класс .mform,
   а не .button, поэтому целимся по позиции внутри карточки.
   В style.css у `.product a.mform` задан свой зелёный (#72C500),
   шрифт Open Sans и line-height 40px — цвет не совпадал с фирменным
   даже с собственной рамкой кнопки. Приводим к общей системе. */
ul.products > li.product > a.mform,
ul.products > li.product > a:not(.woocommerce-LoopProduct-link) {
	display: flex;
	width: 100%;
	margin-top: auto !important;
	min-height: 44px;
	font-family: var(--lr-font-sans);
	font-size: 14px;
	line-height: 1.2;
	color: var(--lr-ink);
	background: var(--lr-brand);
	border: 1px solid var(--lr-brand);
	border-radius: var(--lr-radius-md);
	text-align: center;
}
ul.products > li.product > a.mform:hover,
ul.products > li.product > a:not(.woocommerce-LoopProduct-link):hover {
	background: #8ab31f;
	border-color: #8ab31f;
	color: var(--lr-ink);
}
ul.products > li.product { justify-content: flex-start; }

/* =============================================================
   29. КАРТОЧКА ТОВАРА
   Структура повторяет привычную по маркетплейсам: фото, статус
   наличия, название, характеристики со строками-выносками,
   крупная цена и кнопка во всю ширину.
   ============================================================= */
.woocommerce-page ul.products > li.product,
.woocommerce ul.products > li.product,
.woocommerce ul.products > li.product.first,
.woocommerce ul.products > li.product.last,
.woocommerce ul.products > li.product:nth-child(2n),
ul.products > li.product {
	display: flex;
	flex-direction: column;
	padding: var(--lr-s4);
	background: var(--lr-paper);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-lg);
	transition: border-color var(--lr-t-base), box-shadow var(--lr-t-base);
}
ul.products > li.product:hover {
	border-color: var(--lr-line-strong);
	box-shadow: var(--lr-shadow-md);
}

ul.products > li.product > a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	margin: 0 0 var(--lr-s4);
}

/* Фото */
ul.products > li.product > a img,
ul.products > li.product img {
	margin: 0 0 var(--lr-s3);
	border: 0;
	border-radius: var(--lr-radius-md);
	background: var(--lr-surface);
}

/* Название */
ul.products > li.product .woocommerce-loop-product__title {
	margin: 0 0 var(--lr-s3) !important;
	font-size: 15.5px !important;
	font-weight: 600 !important;
	line-height: 1.35;
	color: var(--lr-ink) !important;
}

/* Характеристики со строками-выносками */
.lr-specs {
	margin: 0 0 var(--lr-s4) !important;
	padding: var(--lr-s3) 0 0 !important;
	list-style: none;
	border-top: 1px solid var(--lr-line-soft);
	max-width: none;
}
/*
 * Раньше между подписью и значением шла точечная выноска
 * (`border-bottom: 1px dotted` со сдвигом на -3px). Сдвиг был задан
 * жёстко, а кегль строки на телефоне меньше — полоса переставала
 * попадать в межстрочье и налезала на текст. Выноску убрали: строка
 * и так читается за счёт выравнивания подписи влево, значения вправо.
 */
.lr-specs li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0 12px;
	margin: 0 0 6px !important;
	font-size: 13px;
	line-height: 1.5;
}
.lr-specs li:last-child { margin-bottom: 0 !important; }
.lr-specs__key { flex: 0 0 auto; color: var(--lr-ink-3); }
.lr-specs__val {
	flex: 0 1 auto;
	min-width: 0;
	font-weight: 600;
	color: var(--lr-ink);
	text-align: right;
}

/* Цена */
ul.products > li.product .price,
.woocommerce ul.products li.product .price {
	display: flex !important;
	flex-direction: column;
	gap: 2px;
	margin: auto 0 0 !important;
	padding-top: var(--lr-s3);
	border-top: 1px solid var(--lr-line-soft);
	font-size: inherit !important;
}
.lr-price__label {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
}
.lr-price__value {
	font-family: var(--lr-font-sans);
	font-size: 21px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.01em;
	color: var(--lr-ink);
}

/* Кнопка */
ul.products > li.product > a.mform,
ul.products > li.product > a:not(.woocommerce-LoopProduct-link) {
	display: flex;
	width: 100%;
	margin: 0 !important;
	min-height: 46px;
	font-size: 15px;
	font-weight: 600;
}

@media (max-width: 980px) {
	.woocommerce-page ul.products > li.product,
	ul.products > li.product { padding: var(--lr-s3); border-radius: var(--lr-radius-md); }
	ul.products > li.product .woocommerce-loop-product__title { font-size: 14.5px !important; }
	.lr-specs li { font-size: 12.5px; }
	.lr-price__value { font-size: 19px; }
	ul.products > li.product > a.mform { min-height: 44px; font-size: 14px; }
}

@media (max-width: 400px) {
	.woocommerce-page ul.products > li.product,
	ul.products > li.product { padding: 10px; border-radius: var(--lr-radius-md); }
	ul.products > li.product .woocommerce-loop-product__title { font-size: 13px !important; }
	.lr-specs { padding-top: var(--lr-s2) !important; margin-bottom: var(--lr-s3) !important; }
	.lr-specs li { font-size: 11.5px; margin-bottom: 3px !important; }
	.lr-price__label { font-size: 10px; letter-spacing: .05em; }
	.lr-price__value { font-size: 16px; }
	ul.products > li.product > a.mform { min-height: 40px; font-size: 13px !important; padding: 9px 10px !important; }
}

/* Совсем узкие экраны — одна колонка, иначе текст не помещается */
@media (max-width: 340px) {
	ul.products { grid-template-columns: 1fr !important; }
	ul.products > li.product .woocommerce-loop-product__title { font-size: 15px !important; }
	.lr-specs li { font-size: 13px; }
	.lr-price__value { font-size: 20px; }
}

/* =============================================================
   30. ЗАЩИТА ОТ /exform/css/mform.css
   Этот файл задаёт .mform { color: white !important; width: 240px;
   border-radius: 35px; font-size: 20px } — белый текст на светлой
   кнопке и жёсткая ширина. Подключается он не всегда, но если
   подключится, кнопки и пункт «Заявка» станут нечитаемыми.
   ============================================================= */
a.mform,
.lr-btn.mform,
a.lr-order-btn,
ul.products > li.product > a.mform {
	width: auto !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	border-radius: var(--lr-radius-md) !important;
	color: var(--lr-ink) !important;
	text-align: center;
}
ul.products > li.product > a.mform,
ul.products > li.product > a.lr-order-btn { width: 100% !important; font-size: 14px !important; }

.lr-tabbar a.mform,
.lr-tabbar .lr-tabbar__item {
	width: auto !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	border-radius: 0 !important;
	color: var(--lr-ink-2) !important;
	text-align: center;
}
.lr-tabbar a.mform svg { color: var(--lr-ink-2); }
.lr-tabbar .lr-tabbar__item--call,
.lr-tabbar a.lr-tabbar__item--call { color: var(--lr-brand-deep) !important; }

.info_block .last_block a.mform,
.blok-tel_1 a.mform { color: var(--lr-ink) !important; }

/* =============================================================
   31. МОДАЛКА ОБРАТНОГО ЗВОНКА (ing_modal.js)
   Скрипт расставляет оформление инлайновыми стилями через
   jQuery.css(), поэтому здесь без !important не обойтись:
   инлайн проигрывает только ему.
   ============================================================= */
#win_bg {
	position: fixed !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	padding: var(--lr-s4) !important;
	background: rgba(15, 20, 16, .55) !important;
	z-index: 5000 !important;
	overflow-y: auto !important;
}

#win_frame {
	/*
	 * Скрипт модалки считает top/left в пикселях один раз при открытии
	 * и больше не пересчитывает. Перебиваем его: центрируем по обеим
	 * осям средствами CSS, тогда положение верно при любом размере
	 * экрана, повороте и появлении экранной клавиатуры.
	 *
	 * Раньше здесь стоял margin сверху — окно прижималось к верхнему
	 * краю, и снизу оставалась пустота.
	 */
	position: fixed !important;
	top: 50% !important;
	left: 50% !important;
	right: auto !important;
	bottom: auto !important;
	transform: translate(-50%, -50%) !important;
	margin: 0 !important;
	width: min(430px, calc(100% - 2 * var(--lr-s4))) !important;
	max-width: none !important;
	height: auto !important;
	/* Длинная форма на невысоком экране прокручивается внутри окна,
	   а не уезжает за край. svh учитывает панели мобильного браузера. */
	max-height: calc(100vh - 2 * var(--lr-s4)) !important;
	max-height: calc(100svh - 2 * var(--lr-s4)) !important;
	/* По горизонтали окно не прокручивается: поля шире окна ровно на
	   долю пикселя, и браузер рисовал внизу горизонтальную полосу. */
	overflow-x: hidden !important;
	overflow-y: auto !important;
	padding: 0 !important;
	background: var(--lr-paper) !important;
	border: 0 !important;
	border-radius: var(--lr-radius-lg) !important;
	box-shadow: 0 24px 64px -24px rgba(15, 20, 16, .5) !important;
}

#win_frame > #title {
	height: auto !important;
	padding: var(--lr-s5) var(--lr-s5) 0 !important;
	font: 600 12px/1.3 var(--lr-font-sans) !important;
	letter-spacing: .12em !important;
	text-transform: uppercase !important;
	color: var(--lr-ink-3) !important;
	background: transparent !important;
	text-align: left !important;
}

#win_frame > #close {
	position: absolute !important;
	top: 10px !important;
	right: 10px !important;
	width: 44px !important;
	height: 44px !important;
	padding: 0 !important;
	background: transparent !important;
	border-radius: var(--lr-radius-md) !important;
	cursor: pointer !important;
	transition: background var(--lr-t-fast) !important;
}
#win_frame > #close:hover { background: var(--lr-surface) !important; }
#win_frame > #close::before,
#win_frame > #close::after {
	content: "";
	position: absolute;
	left: 14px;
	top: 21px;
	width: 16px;
	height: 1.6px;
	background: var(--lr-ink-2);
}
#win_frame > #close::before { transform: rotate(45deg); }
#win_frame > #close::after { transform: rotate(-45deg); }

#win_frame > #content {
	padding: 0 var(--lr-s5) var(--lr-s5) !important;
	background: transparent !important;
}
#win_frame > #content > .ing_h2 {
	margin: 4px 0 var(--lr-s5) !important;
	font-family: var(--lr-font-display) !important;
	font-size: 22px !important;
	font-weight: 500 !important;
	line-height: 1.25 !important;
	letter-spacing: -.01em !important;
	color: var(--lr-ink) !important;
	text-align: left !important;
}

#imd_form, #imd_form form.imd { width: 100% !important; margin: 0 !important; }
#win_frame #content input[type="text"],
#win_frame #content textarea {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	min-height: 46px !important;
	margin: 0 0 var(--lr-s3) !important;
	padding: 11px 14px !important;
	font: 400 15px/1.45 var(--lr-font-sans) !important;
	color: var(--lr-ink) !important;
	background: var(--lr-paper) !important;
	border: 1px solid var(--lr-line-strong) !important;
	border-radius: var(--lr-radius-md) !important;
	box-shadow: none !important;
}
#win_frame #content textarea { min-height: 92px !important; resize: vertical !important; }
#win_frame #content input[type="file"] {
	width: 100% !important;
	margin: 0 0 var(--lr-s3) !important;
	font-family: var(--lr-font-sans) !important;
	font-size: 13px !important;
	color: var(--lr-ink-3) !important;
}
/*
 * Системная кнопка «Выберите файл» рисуется движком браузера и рядом
 * со скруглёнными полями выглядела чужеродно. Приводим её к тем же
 * рамке, радиусу и шрифту.
 */
#win_frame #content input[type="file"]::file-selector-button {
	margin: 0 10px 0 0;
	padding: 9px 14px;
	font: 500 13.5px/1 var(--lr-font-sans);
	color: var(--lr-ink);
	background: var(--lr-surface);
	border: 1px solid var(--lr-line-strong);
	border-radius: var(--lr-radius-md);
	cursor: pointer;
	transition: background-color var(--lr-t-fast), border-color var(--lr-t-fast);
}
#win_frame #content input[type="file"]::file-selector-button:hover {
	background: var(--lr-paper);
	border-color: var(--lr-ink-3);
}
/* Поле-ловушка для ботов не должно быть видно */
#win_frame #content input[name="email"] { display: none !important; }

#win_frame #content .policy {
	margin: 0 0 var(--lr-s4) !important;
	font-size: 12px !important;
	line-height: 1.5 !important;
	color: var(--lr-ink-3) !important;
	max-width: none !important;
}
#win_frame #content .policy a { color: var(--lr-brand-dark) !important; text-decoration: underline !important; }

#win_frame #content input[type="submit"] {
	display: block !important;
	width: 100% !important;
	min-height: 48px !important;
	margin: 0 !important;
	padding: 13px 22px !important;
	font: 600 15px/1.2 var(--lr-font-sans) !important;
	color: var(--lr-ink) !important;
	background: var(--lr-brand) !important;
	border: 1px solid var(--lr-brand) !important;
	border-radius: var(--lr-radius-md) !important;
	box-shadow: none !important;
	text-shadow: none !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
#win_frame #content input[type="submit"]:hover {
	background: #8ab31f !important;
	border-color: #8ab31f !important;
}

@media (max-width: 480px) {
	/* Окно центрируется трансформацией, отступ здесь только сдвигал
	   его вниз на 16px мимо центра. */
	#win_frame { margin: 0 !important; }
	#win_frame > #title { padding: var(--lr-s4) var(--lr-s4) 0 !important; }
	#win_frame > #content { padding: 0 var(--lr-s4) var(--lr-s4) !important; }
	#win_frame > #content > .ing_h2 { font-size: 20px !important; }
}

/* Текст согласия набирался по формату — рваные пробелы на узком экране */
#win_frame #content .policy { text-align: left !important; hyphens: none !important; }

/* =============================================================
   32. ПАНЕЛЬ ИЗ ПЯТИ ПУНКТОВ И ШТОРКА ЦЕН
   ============================================================= */
@media (max-width: 980px) {
	.lr-tabbar {
		grid-template-columns: repeat(5, 1fr) !important;
		overflow: visible !important;
	}
	.lr-tabbar .lr-tabbar__item + .lr-tabbar__item { border-left: 0 !important; }
	.lr-tabbar__item span { font-size: 10.5px; }

	/* Приподнятая центральная кнопка */
	.lr-tabbar__item--center {
		position: relative;
		overflow: visible;
		justify-content: flex-end !important;
		padding-bottom: 8px !important;
	}
	.lr-tabbar__circle {
		position: absolute;
		left: 50%;
		top: -24px;
		transform: translateX(-50%);
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 56px;
		height: 56px;
		border-radius: 50%;
		background: var(--lr-brand);
		color: var(--lr-ink);
		box-shadow: 0 0 0 6px rgba(152, 195, 36, .16),
					0 10px 22px -10px rgba(26, 33, 28, .55);
		transition: transform var(--lr-t-fast), box-shadow var(--lr-t-base);
	}
	.lr-tabbar__circle svg { width: 24px; height: 24px; }
	.lr-tabbar__item--center:active .lr-tabbar__circle { transform: translateX(-50%) scale(.94); }
	.lr-tabbar__item--center[aria-expanded="true"] .lr-tabbar__circle {
		box-shadow: 0 0 0 9px rgba(152, 195, 36, .22),
					0 10px 22px -10px rgba(26, 33, 28, .55);
	}
	.lr-tabbar__item--center > span:last-child { margin-top: 28px; }
}

@media (max-width: 360px) {
	.lr-tabbar__item span { font-size: 9.5px; }
	.lr-tabbar__circle { width: 50px; height: 50px; top: -20px; }
	.lr-tabbar__item--center > span:last-child { margin-top: 24px; }
}

/* --- Шторка с ценами --- */
.lr-sheet {
	position: fixed;
	inset: 0;
	z-index: 4200;
	visibility: hidden;
	pointer-events: none;
}
.lr-sheet.is-open { visibility: visible; pointer-events: auto; }
.lr-sheet__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 20, 16, .5);
	opacity: 0;
	transition: opacity var(--lr-t-base);
	cursor: pointer;
}
.lr-sheet.is-open .lr-sheet__overlay { opacity: 1; }
.lr-sheet__panel {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	max-height: min(80vh, 640px);
	background: var(--lr-paper);
	border-radius: var(--lr-radius-lg) var(--lr-radius-lg) 0 0;
	box-shadow: 0 -20px 48px -24px rgba(15, 20, 16, .5);
	transform: translateY(100%);
	transition: transform var(--lr-t-base);
}
.lr-sheet.is-open .lr-sheet__panel { transform: translateY(0); }
.lr-sheet__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--lr-s3);
	flex: 0 0 auto;
	padding: var(--lr-s4) var(--lr-s5) var(--lr-s3);
	border-bottom: 1px solid var(--lr-line-soft);
}
.lr-sheet__title {
	font-family: var(--lr-font-display);
	font-size: 19px;
	font-weight: 500;
	letter-spacing: -.01em;
	color: var(--lr-ink);
}
.lr-sheet__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-right: -10px;
	padding: 0;
	background: none;
	border: 0;
	border-radius: var(--lr-radius-md);
	color: var(--lr-ink-2);
	cursor: pointer;
}
.lr-sheet__close:hover { background: var(--lr-surface); color: var(--lr-ink); }
.lr-sheet__close svg { width: 20px; height: 20px; }
.lr-sheet__body {
	flex: 1 1 auto;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: var(--lr-s2) 0 calc(var(--lr-s6) + env(safe-area-inset-bottom, 0px));
}
.lr-sheet__group {
	margin: 0;
	padding: var(--lr-s3) var(--lr-s5) 4px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
}
.lr-sheet__list { margin: 0; padding: 0; list-style: none; }
.lr-sheet__list li { margin: 0; border: 0; }
.lr-sheet__link {
	display: flex;
	align-items: center;
	gap: var(--lr-s3);
	min-height: 52px;
	padding: 12px var(--lr-s5);
	font-size: 15.5px;
	line-height: 1.35;
	color: var(--lr-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--lr-line-soft);
	transition: background var(--lr-t-fast);
}
.lr-sheet__link:hover,
.lr-sheet__link:focus-visible { background: var(--lr-surface); }
/* Растягивается только подпись. Правило `.lr-sheet__link span`
   действовало и на значок формата: у него специфичность (0,1,1)
   против (0,1,0) у `.lr-sheet__badge`, поэтому плашка PDF растягивалась
   на всю свободную ширину, и правый край списка получался рваным. */
.lr-sheet__link > span:first-child { flex: 1 1 auto; min-width: 0; }
.lr-sheet__badge {
	flex: 0 0 auto;
	padding: 3px 8px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .06em;
	color: var(--lr-brand-deep);
	background: var(--lr-brand-tint);
	border-radius: var(--lr-radius-sm);
}
.lr-sheet__arrow { flex: 0 0 auto; color: var(--lr-ink-3); }
.lr-sheet__arrow svg { width: 16px; height: 16px; display: block; }

/* =============================================================
   33. ПОИСК И РАЗДЕЛЫ КАТАЛОГА
   ============================================================= */
.lr-catalog-tools {
	margin: 0 0 var(--lr-s6);
	padding: 0 0 var(--lr-s5);
	border-bottom: 1px solid var(--lr-line);
}

.lr-catalog-search {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--lr-s2);
	max-width: 620px;
	margin: 0 0 var(--lr-s4);
}
.lr-catalog-search input[type="search"] {
	flex: 1 1 220px;
	min-width: 0;
	min-height: 48px;
	margin: 0;
	padding: 12px 16px;
	font-size: 15.5px;
	border-radius: var(--lr-radius-md);
}
.lr-catalog-search .lr-btn {
	flex: 0 0 auto;
	min-height: 48px;
	padding: 12px 24px;
}
.lr-catalog-search__reset {
	flex: 0 0 auto;
	padding: 0 var(--lr-s2);
	font-size: 14px;
	color: var(--lr-ink-3);
	text-decoration: none;
	border-bottom: 1px solid transparent;
}
.lr-catalog-search__reset:hover { color: var(--lr-ink); border-bottom-color: var(--lr-line-strong); }

.lr-catalog-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lr-s2);
	margin: 0;
	padding: 0;
}
.lr-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--lr-ink-2);
	text-decoration: none;
	background: var(--lr-paper);
	border: 1px solid var(--lr-line);
	border-radius: 100px;
	transition: border-color var(--lr-t-fast), color var(--lr-t-fast), background var(--lr-t-fast);
}
.lr-chip:hover { border-color: var(--lr-line-strong); color: var(--lr-ink); }
.lr-chip.is-active {
	color: var(--lr-ink);
	background: var(--lr-brand-tint);
	border-color: var(--lr-brand);
	font-weight: 600;
}
.lr-chip__count {
	font-size: 12px;
	font-weight: 600;
	color: var(--lr-ink-3);
	font-variant-numeric: tabular-nums;
}
.lr-chip.is-active .lr-chip__count { color: var(--lr-brand-deep); }

@media (max-width: 740px) {
	.lr-catalog-tools { margin-bottom: var(--lr-s5); padding-bottom: var(--lr-s4); }
	.lr-catalog-search { gap: var(--lr-s2); }
	.lr-catalog-search input[type="search"] { flex: 1 1 100%; }
	.lr-catalog-search .lr-btn { flex: 1 1 auto; }
	.lr-catalog-chips {
		flex-wrap: nowrap;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		margin-inline: calc(var(--lr-gutter) * -1);
		padding-inline: var(--lr-gutter);
	}
	.lr-catalog-chips::-webkit-scrollbar { display: none; }
	.lr-chip { flex: 0 0 auto; }
}

/* --- 33.1 Счётчик и сортировка над каталогом ---
   WooCommerce пускает их во float, из-за чего панель поиска
   налезала сверху. Правила продублированы под .woocommerce-page:
   на этом сайте у <body> именно этот класс, а не .woocommerce. */
.woocommerce-result-count,
.woocommerce-ordering,
.woocommerce-page .woocommerce-result-count,
.woocommerce-page .woocommerce-ordering,
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	float: none !important;
	display: block !important;
	width: auto !important;
	margin: 0 0 var(--lr-s3) !important;
}
.lr-catalog-tools { clear: both; }
.woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
	width: auto;
	min-width: 230px;
	max-width: 100%;
	min-height: 44px;
}
ul.products { clear: both; }

@media (max-width: 740px) {
	.woocommerce-ordering select,
	.woocommerce-page .woocommerce-ordering select { width: 100%; min-width: 0; }
	.woocommerce-result-count,
	.woocommerce-page .woocommerce-result-count { margin-bottom: var(--lr-s2) !important; }
}

/* --- 33.2 Сброс legacy-float у панели каталога ---
   Тема пускает формы внутри каталога во float: right, из-за чего
   поиск наезжал на плитки разделов. */
.lr-catalog-tools {
	display: flow-root;
	float: none !important;
	width: 100%;
}
.lr-catalog-tools .lr-catalog-search,
.lr-catalog-tools .lr-catalog-chips {
	float: none !important;
	position: static !important;
	width: 100%;
}
.lr-catalog-tools .lr-catalog-search { max-width: 620px; }

/* =============================================================
   34. ПЛИТКИ РАЗДЕЛОВ (портфолио темы)
   Четыре карточки «Клееный конструкционный брус», «…балка
   увеличенного сечения» и т.д. верстались флоатами по 220px:
   на узких экранах три вставали в ряд, а четвёртая падала вниз
   с рваным отступом. Переводим на сетку.
   ============================================================= */
.portfolio-item-holder {
	display: grid;
	/* Не «ровно четыре», а «сколько влезет по 190px»: рядом с боковой
	   колонкой четыре плитки сжимались до 152px, и подпись в три строки
	   закрывала почти всю фотографию. */
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: clamp(16px, 2vw, 28px);
	margin: var(--lr-s6) 0;
	text-align: left;
}
.portfolio-item-holder::before,
.portfolio-item-holder::after { display: none; }

/*
 * Подпись лежит поверх фотографии. Раньше она стояла отдельным белым
 * блоком под снимком: плитки в ряду выравниваются по высоте, а
 * названия бывают в одну строку и в две — под короткими оставалось
 * пустое белое поле, и низ ряда выглядел рваным.
 */
.portfolio-item-holder > .portfolio-item,
.portfolio-item-holder > .columns.portfolio-item {
	position: relative;
	display: block !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	background: var(--lr-surface);
	border: 0;
	border-radius: var(--lr-radius-lg);
	overflow: hidden;
	/* Переносы строк в разметке создавали внутри плитки пустую строку
	   высотой в кегль — под фотографией оставалась полоска фона. */
	font-size: 0;
	line-height: 0;
	transition: box-shadow var(--lr-t-base);
}
.portfolio-item-holder > .portfolio-item:hover {
	box-shadow: var(--lr-shadow-md);
}

.portfolio-item .portfolio-thumbnail-image,
.portfolio-item .gdl-image-frame {
	margin: 0 !important;
	padding: 0 !important;
	background: var(--lr-surface) !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	line-height: 0;
}
.portfolio-item .portfolio-thumbnail-image img,
.portfolio-item .gdl-image-frame img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
}

.portfolio-item .portfolio-thumbnail-context {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0 !important;
	padding: 34px var(--lr-s3) var(--lr-s3);
	background: linear-gradient(
		to top,
		rgba(12, 16, 13, .88) 0%,
		rgba(12, 16, 13, .64) 46%,
		rgba(12, 16, 13, 0) 100%
	);
	text-align: left;
	pointer-events: none;
}
.portfolio-item .portfolio-thumbnail-context a { pointer-events: auto; }
.portfolio-item .portfolio-thumbnail-title,
.portfolio-item .portfolio-thumbnail-title a {
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--lr-font-sans) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	letter-spacing: 0;
	color: #fff !important;
	text-align: left !important;
	text-decoration: none;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .4);
	background: none;
	border: 0;
	/* Не больше двух строк: длинное название иначе закрывает снимок. */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.portfolio-item .portfolio-thumbnail-title a:hover { color: var(--lr-brand) !important; }

/* Снимок чуть приближается — знак, что плитка кликабельна. */
@media (hover: hover) {
	.portfolio-item .portfolio-thumbnail-image img,
	.portfolio-item .gdl-image-frame img {
		transition: transform 420ms var(--lr-ease-out);
	}
	.portfolio-item-holder > .portfolio-item:hover .portfolio-thumbnail-image img,
	.portfolio-item-holder > .portfolio-item:hover .gdl-image-frame img {
		transform: scale(1.04);
	}
}
.portfolio-item .portfolio-thumbnail-info,
.portfolio-item .portfolio-thumbnail-date,
/* Пустой разделитель старой темы высотой 15px: из-за него фотография
   не доходила до низа плитки. */
.portfolio-item .portfolio-bottom { display: none; }

@media (max-width: 480px) {
	.portfolio-item-holder {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--lr-s3);
	}
	.portfolio-item .portfolio-thumbnail-context { padding: 28px 10px 10px; }
	.portfolio-item .portfolio-thumbnail-title,
	.portfolio-item .portfolio-thumbnail-title a { font-size: 13px !important; }
}

/* =============================================================
   35. СТРОКА ПОИСКА И СОРТИРОВКИ
   Поиск, счётчик и сортировка стояли тремя разрозненными
   блоками разной высоты. Собираем их в одну аккуратную полосу.
   ============================================================= */
@media (min-width: 741px) {
	.lr-catalog-tools { display: flow-root; }
	.lr-catalog-tools .lr-catalog-search {
		float: left !important;
		width: min(430px, 55%);
		margin-bottom: var(--lr-s4);
	}
	.lr-catalog-tools .lr-catalog-chips {
		clear: both;
		width: 100%;
	}
}

/* Счётчик и сортировка — одной строкой, по краям */
.woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
	font-size: 13.5px;
	color: var(--lr-ink-3);
}

@media (min-width: 741px) {
	.lr-sortbar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: var(--lr-s4);
		margin-bottom: var(--lr-s5);
	}
	.lr-sortbar .woocommerce-result-count,
	.lr-sortbar .woocommerce-ordering { margin: 0 !important; }
}


/* Селект сортировки в общем стиле полей */
.woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
	font-family: var(--lr-font-sans);
	font-size: 14.5px;
	font-weight: 500;
	color: var(--lr-ink);
	border-color: var(--lr-line-strong);
	border-radius: var(--lr-radius-md);
	padding-block: 10px;
}
.woocommerce-ordering select:hover { border-color: var(--lr-ink-3); }

/* =============================================================
   36. КОНТЕНТНЫЕ БЛОКИ С ЖЁСТКОЙ ШИРИНОЙ
   В контенте остались блоки, свёрстанные под колонку 960px.
   Колонка с боковым меню уже — блоки вылезали за экран, и на
   странице появлялся горизонтальный скролл.
   ============================================================= */
.size-brus-li,
.premKleyBrus,
.premKleyeniyBrus,
.size-brus-kleeni,
.city-column-kleeni-brus,
.les_price_2,
.prev-blk,
.block-img-1,
.block-img-2 {
	width: auto !important;
	max-width: 100% !important;
	box-sizing: border-box;
}
.gdl-page-content img,
.gdl-page-content iframe,
.gdl-page-content table { max-width: 100%; }
.gdl-page-content > * { max-width: 100%; }

/* --- 36.1 Список городов ---
   Вёрстка на CSS-колонках: у пунктов padding-left 2.5em, и при
   узкой колонке названия городов вылезали за край страницы.
   Сетка считает ширину предсказуемо и не переполняется. */
.city-column-kleeni-brus,
.photo-column-kleeni-brus {
	columns: auto !important;
	column-count: auto !important;
}
.city-column-kleeni-brus ul.my-list_count2 {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
	gap: 2px clamp(16px, 2vw, 32px);
	columns: auto !important;
	column-count: auto !important;
	max-width: none;
	margin: 0 0 var(--lr-s6);
	padding: 0;
}
.city-column-kleeni-brus ul.my-list_count2 li {
	position: relative;
	min-width: 0;
	margin: 3px 0 !important;
	padding-left: 16px !important;
	font-size: 14.5px;
	line-height: 1.5;
	overflow-wrap: anywhere;
}
.city-column-kleeni-brus ul.my-list_count2 li::before {
	top: .58em;
	width: 5px;
	height: 5px;
	background: var(--lr-brand-dark);
}

/* --- 36.2 Размеры бруса ---
   Ссылки на сечения лежали в <p> с column-count:3 и разделялись
   <br>. Колонка получалась уже ссылки, и строки вылезали за экран.
   Делаем ряд плашек с переносом — и надёжнее, и читается лучше. */
.size-brus-li {
	display: flex !important;
	flex-wrap: wrap;
	gap: var(--lr-s2);
	columns: auto !important;
	column-count: auto !important;
	max-width: none !important;
	margin: 0 0 var(--lr-s5);
	padding: 0;
}
.size-brus-li br { display: none; }
.size-brus-kleeni {
	display: inline-flex !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}
.size-brus-kleeni a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 6px 14px;
	font-family: var(--lr-font-sans);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	color: var(--lr-ink) !important;
	text-decoration: none !important;
	background: var(--lr-paper);
	border: 1px solid var(--lr-line);
	border-radius: 100px;
	white-space: nowrap;
	transition: border-color var(--lr-t-fast), background var(--lr-t-fast), color var(--lr-t-fast);
}
.size-brus-kleeni a:hover {
	color: var(--lr-brand-deep) !important;
	background: var(--lr-brand-tint);
	border-color: var(--lr-brand);
}

/* =============================================================
   37. ЛОГОТИП В ПОЛОСЕ НАВИГАЦИИ
   Полоса липкая: при прокрутке большой логотип уходит вместе с
   шапкой, и слева оставалось пустое место.
   ============================================================= */
.lr-nav-logo {
	display: none;
	flex: 0 0 auto;
	align-items: center;
	margin-right: var(--lr-s5);
	padding: 4px 0;
	line-height: 0;
	opacity: .92;
	transition: opacity var(--lr-t-fast);
}
.lr-nav-logo:hover { opacity: 1; }
.lr-nav-logo img {
	display: block;
	width: auto;
	height: 24px;
	max-width: 108px;
}

/* Место в полосе ограничено: логотип показываем там, где он
   помещается вместе с меню и поиском в одну строку. */
@media (min-width: 1280px) {
	.lr-nav-logo { display: inline-flex; margin-right: var(--lr-s4); }
}

/* =============================================================
   38. МИКРО-АНИМАЦИИ
   Только отклик на действие: наведение, нажатие, фокус,
   раскрытие. Ничего не появляется при прокрутке и не двигается
   само по себе. Всё выключается при prefers-reduced-motion —
   правило задано в самом начале файла.
   ============================================================= */

/* Карточка товара чуть приподнимается — сигнал, что она кликабельна */
ul.products > li.product {
	transition: border-color var(--lr-t-base), box-shadow var(--lr-t-base), transform var(--lr-t-base);
	will-change: transform;
}
@media (hover: hover) {
	ul.products > li.product:hover { transform: translateY(-2px); }
	ul.products > li.product:hover img { filter: saturate(1.04); }
}
ul.products > li.product img { transition: filter var(--lr-t-base), border-color var(--lr-t-base); }

/* То же у плиток разделов */
.portfolio-item-holder > .portfolio-item { transition: border-color var(--lr-t-base), box-shadow var(--lr-t-base), transform var(--lr-t-base); }
@media (hover: hover) {
	.portfolio-item-holder > .portfolio-item:hover { transform: translateY(-2px); }
}

/* Кнопки: заметное нажатие вместо «мёртвого» клика */
.lr-btn, a.mform, .green_input a, .woocommerce a.button,
.wpcf7 input[type="submit"], #win_frame #content input[type="submit"] {
	transition: background-color var(--lr-t-fast), border-color var(--lr-t-fast),
				color var(--lr-t-fast), transform 90ms ease-out, box-shadow var(--lr-t-fast);
}
.lr-btn:active, a.mform:active, .green_input a:active,
.woocommerce a.button:active, #win_frame #content input[type="submit"]:active {
	transform: translateY(1px) scale(.995);
}

/* Плашки размеров и разделов */
.lr-chip, .size-brus-kleeni a { transition: background var(--lr-t-fast), border-color var(--lr-t-fast), color var(--lr-t-fast), transform 90ms ease-out; }
.lr-chip:active, .size-brus-kleeni a:active { transform: translateY(1px); }

/* Иконочные кнопки в шапке и подвале */
.lr-icon-link { transition: border-color var(--lr-t-fast), color var(--lr-t-fast), background var(--lr-t-fast), transform 90ms ease-out; }
.lr-icon-link:active { transform: scale(.94); }

/* Строки в списке каталога и в шторке цен */
.lr-sheet__link, .lr-drawer li > a, .gdl-left-sidebar ul li a {
	transition: background var(--lr-t-fast), color var(--lr-t-fast), padding-left var(--lr-t-fast);
}

/* Раскрытие подменю: плавная стрелка */
.lr-submenu-toggle svg { transition: transform var(--lr-t-base); }

/* Поля ввода: мягкое появление рамки фокуса */
input, select, textarea {
	transition: border-color var(--lr-t-fast), background var(--lr-t-fast), box-shadow var(--lr-t-fast);
}

/* Ссылки в тексте — подчёркивание проявляется, а не прыгает */
.gdl-page-content a:not(.button):not(.mform):not([class*="btn"]) {
	transition: color var(--lr-t-fast), text-decoration-color var(--lr-t-base);
}

/* Кнопка «Наверх» и центральная кнопка панели */
.lr-to-top { transition: opacity var(--lr-t-base), transform var(--lr-t-base), visibility var(--lr-t-base); }
.lr-to-top:active { transform: translateY(2px); }

/* Логотип в шапке — лёгкий отклик */
.logo-wrapper a { display: inline-block; transition: opacity var(--lr-t-fast); }
.logo-wrapper a:active { opacity: .8; }

/* --- 37.1 Полоса навигации с логотипом ---
   Логотип, восемь пунктов меню и поиск помещаются в строку впритык.
   Контейнер ограничен 1240px и на широких экранах шире не становится,
   поэтому места больше не появляется никогда — верхней границы у
   медиазапроса быть не должно: с ней на 1421px и шире меню
   возвращалось к крупному кеглю и переносилось на вторую строку. */
@media (min-width: 1280px) {
	.lr-nav-logo { margin-right: var(--lr-s3); }
	.lr-nav-logo img { height: 22px; max-width: 96px; }
}
.navigation-container-wrapper { flex-wrap: nowrap; }
.menu-wrapper { min-width: 0; }
ul.sf-menu > li > a { white-space: nowrap; }

/* --- Похожие товары и допродажи --------------------------------------
 * В style.css остались медиазапросы прежней раскладки: они задавали
 * li.product ширину 20% / 29% / 45% / 95% с !important — тогда карточки
 * лежали флоатами по пять в ряд, и процент считался от всей строки.
 * Здесь ul.products — грид, и та же ширина считается уже от колонки,
 * из-за чего карточка сжималась примерно до 56px, а текст переносился
 * по одному слову. Ширину и раскладку целиком отдаём гриду.
 *
 * Селекторы повторяют старые один в один: у тех правил специфичность
 * (0,4,3) и !important, поэтому короткой записью их не перебить.
 */
.woocommerce .related ul.products li.product,
.woocommerce .related ul li.product,
.woocommerce .upsells.products ul.products li.product,
.woocommerce .upsells.products ul li.product,
.woocommerce-page .related ul.products li.product,
.woocommerce-page .related ul li.product,
.woocommerce-page .upsells.products ul.products li.product,
.woocommerce-page .upsells.products ul li.product,
.gdl-woo-commerce-wrapper section.related ul.products li.product,
.gdl-woo-commerce-wrapper section.related ul.products li.product:nth-child(2n),
.gdl-woo-commerce-wrapper section.upsells ul.products li.product,
.gdl-woo-commerce-wrapper section.upsells ul.products li.product:nth-child(2n) {
	display: flex !important;
	flex-direction: column;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
	vertical-align: top;
}

/* --- Выпадающие подменю верхнего меню ---------------------------------
 * Скрытое состояние раньше задавал superfish.css (`.sf-menu ul { top:
 * -999em }`), а здесь описывалось только раскрытое. После отказа от
 * superfish тот файл ушёл, и подменю остались раскрытыми всегда.
 * Теперь оба состояния живут здесь и не зависят от внешних файлов.
 *
 * Прячем через visibility + opacity, а не display: none — так работает
 * плавное появление, и подменю остаётся вне дерева доступности, пока
 * закрыто. :focus-within добавляет управление с клавиатуры, которого у
 * superfish не было.
 *
 * top/left намеренно не трогаем: они уже расставлены выше отдельно для
 * второго и третьего уровня.
 */
.navigation-wrapper ul.sf-menu ul {
	visibility: hidden;
	opacity: 0;
	transform: translateY(-4px);
	pointer-events: none;
	/* Задержка на visibility даёт затуханию доиграть перед скрытием. */
	transition: opacity 0.14s ease, transform 0.14s ease,
		visibility 0s linear 0.14s;
}
.navigation-wrapper ul.sf-menu li:hover > ul,
.navigation-wrapper ul.sf-menu li:focus-within > ul {
	visibility: visible;
	opacity: 1;
	transform: none;
	pointer-events: auto;
	transition-delay: 0s;
}

/* Закрытое подменю остаётся в потоке (visibility, а не display), поэтому
   его положение по горизонтали учитывается при расчёте ширины документа.
   Без явного left оно вставало от правого края своего пункта и на узких
   десктопах вылезало за окно — появлялась горизонтальная прокрутка всей
   страницы. Задаём положение явно, а у двух последних пунктов
   разворачиваем меню влево: там до правого края окна места нет. */
.navigation-wrapper ul.sf-menu > li > ul {
	top: 100%;
	left: 0;
	right: auto;
}
.navigation-wrapper ul.sf-menu > li:nth-last-child(-n+2) > ul,
.navigation-wrapper .sf-menu > li:nth-last-child(-n+2):hover > ul,
.navigation-wrapper .sf-menu > li:nth-last-child(-n+2).sfHover > ul {
	left: auto;
	right: 0;
}

@media (prefers-reduced-motion: reduce) {
	.navigation-wrapper ul.sf-menu ul {
		transform: none;
		transition: none;
	}
	.navigation-wrapper ul.sf-menu li:hover > ul,
	.navigation-wrapper ul.sf-menu li:focus-within > ul { transform: none; }
}

/* --- Пагинация каталога -----------------------------------------------
 * Правила выше написаны как `.woocommerce nav.woocommerce-pagination`,
 * но обёртка страницы товаров называется `.gdl-woo-commerce-wrapper` —
 * класса `.woocommerce` в предках нет, и ни одно из тех правил не
 * применялось. Пагинация выводилась голым текстом, и текущая страница
 * ничем не отличалась от остальных.
 *
 * Здесь то же оформление, но без требования к предку.
 */
nav.woocommerce-pagination ul,
nav.woocommerce-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: var(--lr-s6) 0 0;
	padding: 0;
	border: 0;
	list-style: none;
}
nav.woocommerce-pagination ul li {
	margin: 0;
	padding: 0;
	border: 0;
	overflow: visible;
	list-style: none;
	background: none;
}
nav.woocommerce-pagination ul li a,
nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	color: var(--lr-ink-2);
	text-decoration: none;
	background-color: var(--lr-paper);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
	transition: background-color var(--lr-t-fast), border-color var(--lr-t-fast),
		color var(--lr-t-fast);
}
nav.woocommerce-pagination ul li a:hover {
	color: var(--lr-ink);
	border-color: var(--lr-ink-3);
	background-color: var(--lr-surface);
}
/* Текущая страница: залитая, некликабельная. */
nav.woocommerce-pagination ul li span.current {
	color: #fff;
	background: var(--lr-ink);
	border-color: var(--lr-ink);
	font-weight: 600;
	cursor: default;
}
/* Многоточие между диапазонами — не кнопка, рамка ему не нужна. */
nav.woocommerce-pagination ul li span.dots {
	min-width: 24px;
	padding: 0 4px;
	color: var(--lr-ink-3);
	background: none;
	border-color: transparent;
}

/* --- Поиск в шапке: выровнять поле и кнопку ---------------------------
 * Общее правило полей ввода задаёт `min-height: 46px`, и оно побеждало
 * `height: 38px` из стилей поиска: поле выходило на 46px, кнопка
 * оставалась 38px, и правый край получался ступенькой.
 */
.main-navigation-wrapper #searchform input[type="text"],
.main-navigation-wrapper #searchform #s,
.main-navigation-wrapper #searchform #searchsubmit {
	height: 38px;
	min-height: 38px;
	align-self: center;
}

/* --- Логотип в липкой шапке: только домик -----------------------------
 * В Logo.png (500x73) домик занимает левые 91px, дальше идёт надпись
 * «Лесной Регион». В компактной шапке надпись дублирует название из
 * основной шапки и съедает место, из-за чего меню переносилось на
 * вторую строку. Обрезаем картинку по домику средствами CSS, чтобы не
 * заводить отдельный файл: object-fit масштабирует по высоте, а
 * object-position прижимает к левому краю.
 */
.lr-nav-logo img {
	--lr-nav-logo-h: 24px;
	width: calc(var(--lr-nav-logo-h) * 91 / 73);
	height: var(--lr-nav-logo-h);
	max-width: none;
	object-fit: cover;
	object-position: left center;
}
@media (min-width: 1280px) {
	.lr-nav-logo img { --lr-nav-logo-h: 22px; }
}

/* Стрелки «назад/вперёд».
 *
 * WooCommerce выводит их символами ← и →. В кегле 14px глиф получается
 * заметно мельче соседних цифр, а по вертикали шрифт сажает стрелку на
 * математическую ось, а не по центру строчных знаков — поэтому она
 * выглядела мелкой и чуть съехавшей.
 *
 * Рисуем вместо символа шеврон: размер и центровка заданы геометрией и
 * от шрифта уже не зависят. Сам символ остаётся в разметке — скринридер
 * читает ссылку как раньше.
 */
nav.woocommerce-pagination ul li a.prev,
nav.woocommerce-pagination ul li a.next {
	font-size: 0;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 18px 18px;
}
nav.woocommerce-pagination ul li a.prev {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23454f48' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 5.5 8 12l6.5 6.5'/%3E%3C/svg%3E");
}
nav.woocommerce-pagination ul li a.next {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23454f48' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 5.5 16 12l-6.5 6.5'/%3E%3C/svg%3E");
}

/* --- Фильтр каталога по высоте и ширине -------------------------------
 * Кнопка с раскрывающимся меню вместо системного списка: рядом с каждым
 * значением видно, сколько за ним товаров, а выбранное значение читается
 * прямо на кнопке.
 *
 * Пункты меню — обычные ссылки, раскрытие сделано на :hover и
 * :focus-within. Поэтому фильтр полностью работает без JavaScript;
 * скрипт добавляет только раскрытие по касанию и закрытие по Escape.
 */
.lr-dim-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--lr-s3);
	margin: var(--lr-s4) 0;
}
.lr-dim {
	position: relative;
}

/* --- кнопка --- */
.lr-dim__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin: 0;
	padding: 0 14px;
	font-family: var(--lr-font-sans);
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1;
	color: var(--lr-ink);
	background: var(--lr-paper);
	border: 1px solid var(--lr-line-strong);
	border-radius: var(--lr-radius-md);
	cursor: pointer;
	transition: background-color var(--lr-t-fast), border-color var(--lr-t-fast),
		color var(--lr-t-fast);
}
.lr-dim__name { white-space: nowrap; }
.lr-dim__icon {
	flex: 0 0 auto;
	color: var(--lr-brand);
	transition: color var(--lr-t-fast);
}
.lr-dim__caret {
	flex: 0 0 auto;
	margin-left: 2px;
	color: var(--lr-ink-3);
	transition: transform 190ms var(--lr-ease-out), color var(--lr-t-fast);
}
.lr-dim__btn:hover { border-color: var(--lr-ink-3); }

/* Раскрыто — стрелка вверх. */
.lr-dim:focus-within .lr-dim__caret,
.lr-dim__btn[aria-expanded="true"] .lr-dim__caret { transform: rotate(180deg); }
@media (hover: hover) and (pointer: fine) {
	.lr-dim:hover .lr-dim__caret { transform: rotate(180deg); }
}

/*
 * Заданный фильтр не перекрашивает кнопку: обе читаются одинаково, а
 * выбранное значение видно прямо в подписи («Ширина: 200 мм»).
 */

/* --- меню --- */
.lr-dim__menu {
	position: absolute;
	z-index: 500;
	top: calc(100% + 8px);
	left: 0;
	min-width: 100%;
	width: max-content;
	max-width: 280px;
	max-height: 320px;
	overflow-y: auto;
	padding: 6px;
	background: var(--lr-paper);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
	box-shadow: var(--lr-shadow-md);
	visibility: hidden;
	opacity: 0;
	/*
	 * Растёт от кнопки, а не выезжает ниоткуда: небольшой масштаб плюс
	 * сдвиг вверх, начало координат — у самого триггера. scale(0) не
	 * используем, из ничего в жизни ничего не появляется.
	 */
	transform: translateY(-6px) scale(0.97);
	transform-origin: top left;
	pointer-events: none;
	/* Закрытие быстрее открытия: решение уже принято, ждать нечего. */
	transition: opacity 130ms var(--lr-ease-out),
		transform 130ms var(--lr-ease-out),
		visibility 0s linear 130ms;
}
/*
 * Мостик через зазор между кнопкой и меню. Без него курсор по дороге
 * покидает .lr-dim и меню успевает закрыться. Блок лежит вне видимой
 * рамки меню, но остаётся его потомком — а :hover поднимается по
 * дереву, а не по расположению на экране.
 */
.lr-dim__menu::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: -9px;
	height: 9px;
}
.lr-dim:focus-within .lr-dim__menu,
.lr-dim__btn[aria-expanded="true"] + .lr-dim__menu {
	visibility: visible;
	opacity: 1;
	transform: none;
	pointer-events: auto;
	transition: opacity 190ms var(--lr-ease-out),
		transform 190ms var(--lr-ease-out),
		visibility 0s;
}
/*
 * Раскрытие по наведению — только там, где есть настоящий курсор.
 * На тач-экранах касание порождает ложный hover, и меню открывалось бы
 * само; там за это отвечает кнопка (aria-expanded) и :focus-within.
 */
@media (hover: hover) and (pointer: fine) {
	.lr-dim:hover .lr-dim__menu {
		visibility: visible;
		opacity: 1;
		transform: none;
		pointer-events: auto;
		transition: opacity 190ms var(--lr-ease-out),
			transform 190ms var(--lr-ease-out),
			visibility 0s;
	}
}

/* --- пункт меню --- */
.lr-dim__opt {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--lr-s4);
	padding: 9px 12px;
	font-size: 14.5px;
	color: var(--lr-ink-2);
	text-decoration: none;
	border-radius: calc(var(--lr-radius-md) - 4px);
	white-space: nowrap;
}
.lr-dim__opt:hover {
	color: var(--lr-ink);
	background: var(--lr-surface);
}
.lr-dim__opt.is-active {
	color: var(--lr-brand-dark);
	font-weight: 600;
	background: var(--lr-brand-tint);
}
.lr-dim__count {
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	color: var(--lr-ink-3);
}
.lr-dim__opt.is-active .lr-dim__count { color: var(--lr-brand-dark); }

.lr-dim-filter__reset {
	font-size: 13.5px;
	color: var(--lr-ink-3);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.lr-dim-filter__reset:hover { color: var(--lr-ink); }

/*
 * При «уменьшить движение» оставляем проявление, убираем перемещение и
 * масштаб: плавность, помогающая заметить появление меню, сохраняется.
 */
@media (prefers-reduced-motion: reduce) {
	.lr-dim__menu {
		transform: none;
		transition: opacity 130ms var(--lr-ease-out), visibility 0s linear 130ms;
	}
	.lr-dim:focus-within .lr-dim__menu,
	.lr-dim__btn[aria-expanded="true"] + .lr-dim__menu {
		transition: opacity 190ms var(--lr-ease-out), visibility 0s;
	}
	.lr-dim__caret { transition: none; }
}

@media (max-width: 740px) {
	.lr-dim-filter { width: 100%; gap: var(--lr-s2); }
	.lr-dim { flex: 1 1 44%; }
	.lr-dim__btn { width: 100%; justify-content: flex-start; }
	.lr-dim__caret { margin-left: auto; }
	/* Меню шире кнопки — прижимаем к левому краю строки. */
	.lr-dim__menu { max-width: none; right: 0; }
}


/* Фильтр и сортировка — одной группой у правого края.
 * В .lr-sortbar три элемента и justify-content: space-between, из-за
 * чего фильтр вставал ровно посередине и между ним и сортировкой
 * зияла пустота. Автоматический отступ слева собирает оба списка
 * вместе, а счётчик оставляет у левого края. */
@media (min-width: 741px) {
	.lr-sortbar .lr-dim-filter { margin-left: auto; }
}

/*
 * На планшете счётчик, два фильтра и сортировка в одну строку не влезают:
 * кнопки «Высота» и «Ширина» вставали друг под другом, а список сортировки
 * оставался на одной строке — ряд получался рваным. Здесь счётчик уходит
 * на свою строку, а управление собирается в ровный ряд под ним.
 */
@media (min-width: 741px) and (max-width: 1099px) {
	.lr-sortbar { align-items: center; }
	.lr-sortbar .woocommerce-result-count { flex: 1 1 100%; }
	.lr-sortbar .lr-dim-filter {
		flex: 0 1 auto;
		flex-wrap: nowrap;
		margin-left: 0;
	}
	.lr-sortbar .woocommerce-ordering { margin-left: auto !important; }
}

/* =============================================================
   39. СТРАНИЦА ТОВАРА
   Кнопка заказа на сайте — не «в корзину»: корзины нет, ссылка
   открывает модальную форму заявки (класс .mform). В style.css
   у `.product a.mform` был свой зелёный (#72C500), белый текст,
   шрифт Open Sans и фиксированные 120px — кнопка не совпадала
   ни с одной другой кнопкой сайта и не проходила по контрасту.
   ============================================================= */

/* Фото товара занимает свою колонку целиком: раньше картинка
   выводилась в натуральных 300px, и половина колонки пустовала. */
.woocommerce div.product div.images img,
.gdl-woo-commerce-wrapper div.product div.images img {
	display: block;
	width: 100%;
	height: auto;
	background: var(--lr-surface);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-lg);
}

/* Цена — главный факт на странице товара. */
.woocommerce div.product .summary p.price,
.woocommerce div.product .summary span.price,
.gdl-woo-commerce-wrapper div.product .summary p.price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 var(--lr-s4) !important;
	font-size: 26px !important;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -.015em;
	color: var(--lr-ink) !important;
}
.woocommerce div.product .summary .price .price_text,
.gdl-woo-commerce-wrapper div.product .summary .price .price_text {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
}
.woocommerce div.product .product_meta,
.gdl-woo-commerce-wrapper div.product .product_meta {
	margin: 0 0 var(--lr-s5);
	font-size: 14px;
	color: var(--lr-ink-3);
}
.woocommerce div.product .product_meta a { color: var(--lr-ink-2); }
.woocommerce div.product .product_meta a:hover { color: var(--lr-brand-dark); }

/* Кнопка заказа. Селекторы перечислены с запасом: в старой разметке
   у ссылки только класс .mform, в новой — ещё и .lr-order-btn. */
.woocommerce div.product a.mform,
.gdl-woo-commerce-wrapper div.product a.mform,
.product_meta + a.mform,
.product_meta + a.lr-order-btn,
a.lr-order-btn--single {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	/* !important — потому что защитное правило против /exform/css/mform.css
	   (раздел 31) задаёт всем .mform ширину auto тоже с !important. */
	width: 100% !important;
	max-width: 320px;
	min-height: 50px;
	margin: 0;
	padding: 13px 24px !important;
	font-family: var(--lr-font-sans) !important;
	font-size: 15px !important;
	font-weight: 600;
	line-height: 1.2 !important;
	letter-spacing: -.005em;
	text-align: center;
	text-decoration: none;
	color: var(--lr-ink) !important;
	background: var(--lr-brand);
	border: 1px solid var(--lr-brand);
	border-radius: var(--lr-radius-md);
	height: auto;
}
.woocommerce div.product a.mform:hover,
.gdl-woo-commerce-wrapper div.product a.mform:hover,
.product_meta + a.mform:hover,
.product_meta + a.lr-order-btn:hover,
a.lr-order-btn--single:hover {
	background: #8ab31f;
	border-color: #8ab31f;
	color: var(--lr-ink) !important;
}

/* На телефоне фото и описание перестают делить строку пополам:
   в двух колонках по 48% от 390px фотография мельчает, а название
   и цена ломаются по слогам. */
@media (max-width: 740px) {
	.woocommerce div.product div.images,
	.woocommerce div.product div.summary,
	.gdl-woo-commerce-wrapper div.product div.images,
	.gdl-woo-commerce-wrapper div.product div.summary {
		float: none !important;
		width: 100% !important;
		margin: 0 !important;
	}
	.woocommerce div.product div.images,
	.gdl-woo-commerce-wrapper div.product div.images { margin-bottom: var(--lr-s5) !important; }
	.woocommerce div.product .summary p.price,
	.gdl-woo-commerce-wrapper div.product .summary p.price { font-size: 23px !important; }

	.woocommerce div.product a.mform,
	.gdl-woo-commerce-wrapper div.product a.mform,
	.product_meta + a.mform,
	.product_meta + a.lr-order-btn,
	a.lr-order-btn--single { max-width: none; }
}

/* Отзывов у товаров нет, поэтому единственная вкладка «Отзывы»
   читается как заголовок раздела, а не как переключатель. */
.woocommerce div.product .woocommerce-tabs ul.tabs li:only-child {
	border-bottom-color: var(--lr-brand) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li:only-child a {
	color: var(--lr-ink) !important;
	cursor: default;
}

/* =============================================================
   40. СТРАНИЦА 404
   ============================================================= */
.lr-404 {
	max-width: 46rem;
	margin: var(--lr-s7) auto var(--lr-s9);
	text-align: center;
}
/* Крупная цифра — декорация: смысл несёт заголовок под ней, поэтому
   в разметке она помечена aria-hidden. */
.lr-404__code {
	margin: 0;
	font-family: var(--lr-font-display);
	font-size: clamp(56px, 4rem + 4vw, 96px);
	font-weight: 500;
	line-height: 1;
	letter-spacing: -.03em;
	color: #b9c2b0;
}
.lr-404__title {
	margin: var(--lr-s4) 0 var(--lr-s3);
	font-family: var(--lr-font-display);
	font-size: clamp(22px, 1.2rem + 1vw, 30px);
	font-weight: 500;
	letter-spacing: -.015em;
	color: var(--lr-ink);
}
.lr-404__text {
	margin: 0 auto var(--lr-s6);
	max-width: 44ch;
	color: var(--lr-ink-3);
}
.lr-404__search {
	display: flex;
	gap: var(--lr-s2);
	justify-content: center;
	margin: 0 auto var(--lr-s6);
	max-width: 30rem;
	float: none;
}
.lr-404__search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
}
.lr-404__search .lr-btn { flex: 0 0 auto; }
.lr-404__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--lr-s3) var(--lr-s6);
}
.lr-404__links a {
	font-size: 15px;
	font-weight: 500;
	color: var(--lr-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--lr-brand);
	padding-bottom: 2px;
	transition: color var(--lr-t-fast), border-color var(--lr-t-fast);
}
.lr-404__links a:hover { color: var(--lr-brand-deep); border-bottom-color: var(--lr-brand-deep); }

@media (max-width: 480px) {
	.lr-404 { margin-top: var(--lr-s5); }
	.lr-404__search { flex-direction: column; }
	.lr-404__search .lr-btn { width: 100%; }
}

/* =============================================================
   41. СТРАНИЦА ПОИСКА
   ============================================================= */
.lr-search-count {
	margin: calc(-1 * var(--lr-s4)) 0 var(--lr-s5);
	font-size: 14px;
	color: var(--lr-ink-3);
}
.lr-search-empty { max-width: 46rem; }
.lr-search-empty .lr-search {
	display: flex;
	gap: var(--lr-s2);
	float: none;
	margin: var(--lr-s5) 0;
	max-width: 30rem;
}
.lr-search-empty .lr-search input[type="search"] { flex: 1 1 auto; min-width: 0; margin: 0; }
.lr-search-empty .lr-search .lr-btn { flex: 0 0 auto; }
.lr-search-empty__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lr-s3) var(--lr-s5);
	margin: 0;
}
.lr-search-empty__links a {
	font-weight: 500;
	color: var(--lr-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--lr-brand);
	padding-bottom: 2px;
}
.lr-search-empty__links a:hover { color: var(--lr-brand-deep); border-bottom-color: var(--lr-brand-deep); }

@media (max-width: 480px) {
	.lr-search-empty .lr-search { flex-direction: column; }
	.lr-search-empty .lr-search .lr-btn { width: 100%; }
}

/* =============================================================
   42. ОТЗЫВЫ И ИХ ПОСТРАНИЧНАЯ РАЗБИВКА
   Разметку страницы отдаёт база: блоки .z с датой, именем и
   текстом. Скрипт imtech_pager при листании пересобирает их
   в простые <div>, поэтому правила пишем на прямых потомках
   #content_pagin, а не на классе .z.
   ============================================================= */
#content_pagin {
	/* legacy: text-indent 20px и выключка по формату — на кириллице
	   выключка даёт «реки» из пробелов. */
	text-indent: 0;
	text-align: left;
}
#content_pagin > div {
	margin: 0;
	padding: var(--lr-s5) 0;
	border-top: 1px solid var(--lr-line-soft);
}
#content_pagin > div:first-child { padding-top: var(--lr-s3); border-top: 0; }
#content_pagin p { margin: 0 0 var(--lr-s2); max-width: 68ch; text-indent: 0; }
#content_pagin p:last-child { margin-bottom: 0; }
#content_pagin p:empty { display: none; }
#content_pagin .date {
	display: inline-block;
	margin-bottom: 2px;
	font-size: 12.5px;
	letter-spacing: .02em;
	color: var(--lr-ink-3);
}
#content_pagin .text_bold {
	display: block;
	margin-bottom: var(--lr-s2);
	font-size: 16px;
	font-weight: 600;
	color: var(--lr-ink);
}
#content_pagin br { line-height: 0; }

#pagingControls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--lr-s3);
	margin-top: var(--lr-s6);
	padding-top: var(--lr-s5);
	border-top: 1px solid var(--lr-line);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--lr-ink-3);
}
#pagingControls ul {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Обычный вид — контурная плашка. Текущая страница отличается заливкой:
   у её <li> нет ссылки внутри. Если браузер не знает :has(), правило
   просто не применится и текущая страница будет выглядеть как соседние —
   ничего не ломается. */
#pagingControls li {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--lr-ink-2);
	background: var(--lr-paper);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
	transition: background var(--lr-t-fast), border-color var(--lr-t-fast), color var(--lr-t-fast);
}
#pagingControls li a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 38px;
	height: 100%;
	padding: 0 10px;
	color: inherit;
	text-decoration: none;
	border-radius: inherit;
}
#pagingControls li:hover {
	border-color: var(--lr-ink-3);
	background: var(--lr-surface);
	color: var(--lr-ink);
}
#pagingControls li:not(:has(a)) {
	padding: 0 10px;
	color: var(--lr-ink-inv);
	background: var(--lr-ink);
	border-color: var(--lr-ink);
}
#pagingControls li:not(:has(a)):hover {
	color: var(--lr-ink-inv);
	background: var(--lr-ink);
	border-color: var(--lr-ink);
}

/* =============================================================
   43. ФОРМА ОБРАТНОЙ СВЯЗИ ТЕМЫ (#gdl-contact-form)
   Форма goodlayers оставалась в исходном виде: кнопка отправки —
   системная, с рамкой outset, поля разной ширины, подписи
   набраны <strong> вплотную к полю.
   ============================================================= */
#gdl-contact-form { max-width: 34rem; margin: var(--lr-s6) 0 0; }
#gdl-contact-form ol.forms {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}
#gdl-contact-form ol.forms > li {
	margin: 0 0 var(--lr-s4);
	padding: 0;
	background: none;
	list-style: none;
}
#gdl-contact-form ol.forms > li::before,
#gdl-contact-form ol.forms > li::marker { content: none; }
#gdl-contact-form ol.forms > li strong {
	display: block;
	margin-bottom: 6px;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--lr-ink-2);
}
#gdl-contact-form input[type="text"],
#gdl-contact-form input[type="email"],
#gdl-contact-form textarea {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
}
#gdl-contact-form textarea { min-height: 150px; }
#gdl-contact-form .error {
	display: none;
	margin-top: 6px;
	font-size: 13px;
	color: var(--lr-error);
}
#gdl-contact-form li.error-field .error { display: block; }
#gdl-contact-form li.error-field input,
#gdl-contact-form li.error-field textarea { border-color: var(--lr-error); }
#gdl-contact-form .contact-submit,
#gdl-contact-form button.button,
button.contact-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 12px 24px;
	font-family: var(--lr-font-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--lr-ink);
	background: var(--lr-brand);
	border: 1px solid var(--lr-brand);
	border-radius: var(--lr-radius-md);
	box-shadow: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background var(--lr-t-fast), border-color var(--lr-t-fast);
}
#gdl-contact-form .contact-submit:hover,
button.contact-submit:hover { background: #8ab31f; border-color: #8ab31f; }
#gdl-contact-form .contact-submit:active,
button.contact-submit:active { transform: translateY(1px); }
/* Согласие на обработку данных — мелким шрифтом над кнопкой. */
#gdl-contact-form + p,
.gdl-page-content > p.policy {
	margin: 0 0 var(--lr-s4);
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--lr-ink-3);
	max-width: 46ch;
}

/* =============================================================
   44. СПИСОК СТАТЕЙ («Полезные материалы»)
   Legacy рисовал слева от каждой статьи одну и ту же декоративную
   закладку (/img/green.png) и отводил под неё 150px. Семь одинаковых
   картинок подряд ничего не сообщают, а заголовки были окрашены и
   подчёркнуты как обычные ссылки в тексте — от заголовков они не
   отличались. Приводим список к общему виду сайта.
   ============================================================= */
.article-block {
	padding: 0 0 var(--lr-s5);
	margin: 0 0 var(--lr-s5);
	background: none;
	border-bottom: 1px solid var(--lr-line-soft);
}
.article-block:last-child { border-bottom: 0; margin-bottom: 0; }
.article-block h2 {
	margin: 0 0 var(--lr-s2);
	font-size: clamp(19px, 1rem + .4vw, 22px);
	line-height: 1.3;
}
.article-block h2 a,
.gdl-page-content .article-block h2 a {
	color: var(--lr-ink);
	font-size: inherit;
	text-decoration: none;
	background: none;
	border-bottom: 1px solid transparent;
	transition: color var(--lr-t-fast), border-color var(--lr-t-fast);
}
.article-block h2 a:hover,
.gdl-page-content .article-block h2 a:hover {
	color: var(--lr-brand-deep);
	border-bottom-color: var(--lr-brand);
}
.article-block p {
	margin: 0;
	max-width: 72ch;
	line-height: 1.6;
	color: var(--lr-ink-2);
}
/* «Подробнее» стояло в конце абзаца и оказывалось то в конце строки,
   то на отдельной — у каждой статьи по-разному. Ставим отдельной строкой. */
/* Ссылка лежит внутри абзаца, поэтому блочное отображение здесь
   обязательно: иначе она остаётся хвостом последней строки. */
.article-block .moar,
.gdl-page-content .article-block a.moar {
	display: flex;
	width: fit-content;
	align-items: center;
	gap: 6px;
	margin-top: var(--lr-s3);
	font-size: 14.5px;
	font-weight: 500;
	color: var(--lr-brand-dark);
	text-decoration: none;
	background: none;
	border-bottom: 1px solid transparent;
}
.article-block .moar::after {
	content: "";
	width: 14px;
	height: 14px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
	transition: transform var(--lr-t-fast);
}
.article-block .moar:hover {
	color: var(--lr-brand-deep);
	border-bottom-color: var(--lr-brand-deep);
}
.article-block .moar:hover::after { transform: translateX(2px); }

/* =============================================================
   42. ФОТОПАРЫ НА СТРАНИЦАХ ГОРОДОВ
   Разметка в базе: <div align="center"> с двумя .img-cities внутри.
   У картинок указано width="300px" — это недопустимое значение
   HTML-атрибута (там должно быть просто число), браузер его
   отбрасывал и показывал файлы в натуральную величину. Пара
   получалась разной ширины и не совпадала с колонкой текста.
   ============================================================= */
div[align="center"]:has(> .img-cities) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--lr-s4);
	margin: var(--lr-s6) 0;
	text-align: left;
}
.img-cities {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
}
.img-cities img {
	display: block;
	width: 100% !important;
	height: auto;
	max-width: none;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	margin: 0;
	border-radius: var(--lr-radius-md);
}
@media (max-width: 560px) {
	div[align="center"]:has(> .img-cities) {
		grid-template-columns: 1fr;
		gap: var(--lr-s3);
	}
}

/* =============================================================
   43. ССЫЛКИ НА ДОКУМЕНТЫ («О нас»)
   Разметка в базе — flex-контейнер, у каждого блока inline
   width:24% и background-size в процентах. Подписи в 24% не
   помещались и налезали на соседние, а значки сжимались до
   нескольких пикселей: 3% от ширины блока.
   ============================================================= */
.gdl-page-item div:has(> .pdf),
.gdl-page-item div:has(> .word) {
	/* Сетка, а не flex: при flex-grow одинокая карточка в последнем
	   ряду растягивалась во всю ширину и выбивалась из ряда. */
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	/* Одинаковая высота во всех рядах: у карточки с однострочной
	   подписью иначе получается своя, более низкая. */
	grid-auto-rows: 1fr;
	gap: var(--lr-s3);
	margin: var(--lr-s5) 0;
}
.gdl-page-item .pdf,
.gdl-page-item .word {
	width: auto !important;
	min-width: 0;
	margin: 0;
	padding: 14px 16px 14px 48px !important;
	background-position: 16px center !important;
	background-size: 22px 22px !important;
	background-repeat: no-repeat !important;
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-md);
	transition: border-color var(--lr-t-fast), background-color var(--lr-t-fast);
}
.gdl-page-item .pdf:hover,
.gdl-page-item .word:hover {
	border-color: var(--lr-line-strong);
	background-color: var(--lr-surface);
}
.gdl-page-item .pdf a,
.gdl-page-item .word a {
	display: block;
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--lr-ink);
	text-decoration: none;
	overflow-wrap: anywhere;
}
.gdl-page-item .pdf a:hover,
.gdl-page-item .word a:hover { color: var(--lr-brand-dark); }

/* =============================================================
   44. МАТРИЦА «ВЫСОТА × ШИРИНА» → КАРТОЧКА
   Скрипт (buildSpecMatrixCards) собирает из матричной таблицы
   аккуратную карточку: сетка «высота × ширина» и строки
   «Длина / Цена» того же вида, что у соседних прайс-карточек.
   На десктопе показываем исходную таблицу, на узких экранах —
   карточку (так же ведут себя двухстрочные таблицы рядом).
   ============================================================= */
.lr-spec { display: none; }

@media (max-width: 900px) {
	.cover-table.lr-spec-host {
		border: 0;
		overflow: visible;
		margin: var(--lr-s5) 0 var(--lr-s7);
	}
	/* Исходная таблица прячется — вместо неё карточка. */
	.cover-table.lr-spec-host > table { display: none; }

	.lr-spec {
		display: block;
		background: var(--lr-paper);
		border: 1px solid var(--lr-line);
		border-radius: var(--lr-radius-md);
		overflow: hidden;
	}

	/* --- сетка «высота × ширина» --- */
	.lr-spec__grid {
		display: grid;
		grid-template-columns: minmax(64px, auto) 1fr;
	}
	.lr-spec__col {
		padding: 10px 16px;
		background: var(--lr-surface);
		font-size: 11px;
		font-weight: 600;
		letter-spacing: .07em;
		text-transform: uppercase;
		color: var(--lr-ink-3);
		border-bottom: 1px solid var(--lr-line);
	}
	.lr-spec__h,
	.lr-spec__w {
		padding: 11px 16px;
		font-size: 14.5px;
		line-height: 1.4;
		border-bottom: 1px solid var(--lr-line-soft);
	}
	/* Высота — акцент, ширина — обычный текст. */
	.lr-spec__h {
		font-weight: 600;
		color: var(--lr-ink);
		white-space: nowrap;
	}
	.lr-spec__w { color: var(--lr-ink-2); }
	/* Последняя пара строк без нижней линии, если сводки нет. */
	.lr-spec:not(:has(.lr-spec__sum)) .lr-spec__grid > :nth-last-child(-n+2) {
		border-bottom: 0;
	}

	/* --- сводка «Длина / Цена» — как у соседних карточек --- */
	.lr-spec__sum {
		padding: 4px 16px 6px;
		background: var(--lr-surface);
		border-top: 1px solid var(--lr-line);
	}
	.lr-spec__row {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 16px;
		padding: 9px 0;
		border-bottom: 1px solid var(--lr-line-soft);
	}
	.lr-spec__row:last-child { border-bottom: 0; }
	.lr-spec__key {
		flex: 0 0 auto;
		font-size: 11px;
		font-weight: 600;
		letter-spacing: .07em;
		text-transform: uppercase;
		color: var(--lr-ink-3);
	}
	.lr-spec__val {
		text-align: right;
		font-size: 14.5px;
		color: var(--lr-ink);
	}
	.lr-spec__row--price .lr-spec__val {
		font-size: 16px;
		font-weight: 600;
	}
}

/* =============================================================
   45. ОКНО КОНТАКТОВ ПО КНОПКЕ «КУПИТЬ»
   Вместо формы заявки — телефон и почта: покупатель уже выбрал
   товар, ему нужно спросить про наличие и сроки, а не заполнять
   поля. Название товара уходит в тему письма.
   ============================================================= */
.lr-contact {
	position: fixed;
	inset: 0;
	z-index: 5200;
	visibility: hidden;
	pointer-events: none;
}
.lr-contact.is-open { visibility: visible; pointer-events: auto; }
.lr-contact__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 20, 16, .55);
	opacity: 0;
	transition: opacity var(--lr-t-base);
	cursor: pointer;
}
.lr-contact.is-open .lr-contact__overlay { opacity: 1; }
.lr-contact__panel {
	position: absolute;
	top: 50%;
	left: 50%;
	width: min(400px, calc(100% - 2 * var(--lr-s4)));
	max-height: calc(100svh - 2 * var(--lr-s4));
	overflow-y: auto;
	padding: var(--lr-s6) var(--lr-s5) var(--lr-s5);
	background: var(--lr-paper);
	border-radius: var(--lr-radius-lg);
	box-shadow: 0 24px 64px -24px rgba(15, 20, 16, .5);
	transform: translate(-50%, -46%) scale(.98);
	opacity: 0;
	transition: opacity var(--lr-t-base), transform var(--lr-t-base);
}
.lr-contact.is-open .lr-contact__panel {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
}
.lr-contact__close {
	position: absolute;
	top: 8px;
	right: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: none;
	border: 0;
	border-radius: var(--lr-radius-md);
	color: var(--lr-ink-2);
	cursor: pointer;
	transition: background var(--lr-t-fast);
}
.lr-contact__close:hover { background: var(--lr-surface); }
.lr-contact__close svg { width: 20px; height: 20px; }

/* Название товара — это имя, а не подпись поля: капс и разрядка
   делали из него тяжёлый трёхстрочный блок. */
.lr-contact__product {
	margin: 0 0 6px;
	padding-right: 40px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--lr-ink-3);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.lr-contact__title {
	margin: 0 0 var(--lr-s5);
	padding-right: 40px;
	font-family: var(--lr-font-display);
	font-size: 20px;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: -.01em;
	color: var(--lr-ink);
}
.lr-contact__phone {
	display: block;
	margin-bottom: var(--lr-s3);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -.02em;
	color: var(--lr-ink);
	text-decoration: none;
}
.lr-contact__phone:hover { color: var(--lr-brand-dark); }
.lr-contact__mail {
	display: block;
	margin-bottom: var(--lr-s4);
	font-size: 16px;
	font-weight: 500;
	color: var(--lr-brand-dark);
	text-decoration: none;
	border-bottom: 1px solid var(--lr-brand);
	padding-bottom: 2px;
	width: fit-content;
	overflow-wrap: anywhere;
}
.lr-contact__mail:hover { color: var(--lr-brand-deep); }
.lr-contact__note {
	margin: 0 0 4px;
	font-size: 13.5px;
	color: var(--lr-ink-3);
}
.lr-contact__note:last-child { margin-bottom: 0; }

@media (prefers-reduced-motion: reduce) {
	.lr-contact__panel { transition: opacity .001ms; transform: translate(-50%, -50%); }
	.lr-contact.is-open .lr-contact__panel { transform: translate(-50%, -50%); }
}

/* =============================================================
   31. АНИМАЦИИ ПОДМЕНЮ (drawer) + ПРАЙС-ТАБЛИЦЫ ТВЁРДЫХ ПОРОД
   Добавлено при доработке дизайна: аккуратное раскрытие подменю
   и выравнивание «кирпичиков» — цены свёрстаны как <h2> с
   инлайновым цветом и «ломали» сетку таблицы.
   ============================================================= */

@keyframes lrSubIn {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes lrSubItem {
	from { opacity: 0; transform: translateX(-8px); }
	to   { opacity: 1; transform: translateX(0); }
}

/* --- 31.1 Цена в ячейке: убираем гигантский h2 из редактора --- */
.cover-table td h2,
.cover-table td h3 {
	margin: 0;
	padding: 0;
	font-family: var(--lr-font-sans);
	font-size: 16px;
	line-height: 1.2;
	letter-spacing: 0;
	white-space: nowrap;
}
.cover-table td h2 strong { font-weight: 700; }
.cover-table td h2,
.cover-table td h2 strong,
.cover-table td h2 span,
.cover-table td h3,
.cover-table td h3 strong { color: var(--lr-brand-dark) !important; }
.cover-table td p { margin: 0; }

/* --- 31.2 Зебра и подсветка строки (десктоп) --- */
.cover-table table tr:not(:first-child):nth-child(even) td { background: var(--lr-surface); }
.cover-table table tr:not(:first-child):hover td { background: var(--lr-brand-tint); }
.cover-table table tr:not(:first-child) td { transition: background var(--lr-t-fast); }

/* --- 31.3 Картинка породы в ячейке-заголовке --- */
.cover-table td img,
.cover-table .img_in-table {
	display: block;
	max-width: 140px;
	height: auto;
	margin: 0 auto 6px;
	border-radius: var(--lr-radius-md);
}
/* Ячейка с объединением (картинка + название породы) — как заголовок */
.cover-table td[rowspan] {
	vertical-align: middle;
	text-align: center;
	background: var(--lr-surface);
}
.cover-table td[rowspan] strong { font-family: var(--lr-font-sans); color: var(--lr-ink); }

/* --- 31.4 Мобилка: делаем «неразложимые» таблицы компактнее --- */
@media (max-width: 900px) {
	.cover-table:not(.lr-has-cards) > table { font-size: 12px; }
	.cover-table:not(.lr-has-cards) td,
	.cover-table:not(.lr-has-cards) th { padding: 7px 5px !important; }
	.cover-table:not(.lr-has-cards) td p,
	.cover-table:not(.lr-has-cards) td div,
	.cover-table:not(.lr-has-cards) td span { font-size: 12px !important; }
	.cover-table:not(.lr-has-cards) td h2,
	.cover-table:not(.lr-has-cards) td h2 strong,
	.cover-table:not(.lr-has-cards) td h3 {
		font-size: 12.5px !important;
		white-space: nowrap;
	}
	.cover-table:not(.lr-has-cards) td img,
	.cover-table:not(.lr-has-cards) .img_in-table { max-width: 58px !important; margin-bottom: 4px; }
	.cover-table:not(.lr-has-cards) td[rowspan] { font-size: 11.5px !important; }
}

/* --- 31.5 Уважение к prefers-reduced-motion --- */
@media (prefers-reduced-motion: reduce) {
	.lr-drawer .sub-menu.is-open,
	.lr-drawer .sub-menu.is-open li { animation: none !important; }
	.lr-burger span { transition: none !important; }
}

/* --- 31.6 Карточки прайса пород (телефон) ---
   На узких экранах таблицы Толщина/Сортность/Длина/Цена рисуются
   карточками через .lr-cards (строит lr-ui.js): каждая строка —
   отдельная карточка «параметр: значение», ничего не обрезается.
   Объединённые ячейки дублируются в каждую карточку. */
.cover-table .lr-cards { display: none; }

@media (max-width: 900px) {
	.cover-table.lr-has-cards { border: 0; overflow: visible; }
	.cover-table.lr-has-cards > table { display: none; }
	.cover-table .lr-cards { display: block; }
}

.lr-card {
	background: var(--lr-paper);
	border: 1px solid var(--lr-line);
	border-radius: var(--lr-radius-lg);
	padding: 2px 16px;
	margin-bottom: 14px;
	box-shadow: var(--lr-shadow-sm);
}
.lr-card:last-child { margin-bottom: 0; }
.lr-card__title {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 0 12px;
	margin-bottom: 2px;
	border-bottom: 1px solid var(--lr-line);
	font-family: var(--lr-font-sans);
	font-weight: 700;
	font-size: 15.5px;
	line-height: 1.25;
	color: var(--lr-ink);
	text-transform: none;
	letter-spacing: 0;
}
.cover-table .lr-card__title img {
	width: 60px;
	height: 60px;
	min-width: 60px;
	object-fit: cover;
	border-radius: var(--lr-radius-md);
	margin: 0;
	flex: 0 0 auto;
}
.lr-card__title p { margin: 0; }
.lr-card__title strong { font-weight: 700; }
.lr-card__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 11px 0;
	border-bottom: 1px solid var(--lr-line-soft);
}
.lr-card__row:last-child { border-bottom: 0; }
.lr-card__k {
	flex: 0 0 auto;
	max-width: 52%;
	font-family: var(--lr-font-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
}
.lr-card__v {
	text-align: right;
	font-size: 15px;
	font-weight: 500;
	color: var(--lr-ink-2);
}
.lr-card__row--price { align-items: center; }
.lr-card__row--price .lr-card__v {
	font-size: 17px;
	font-weight: 700;
	color: var(--lr-brand-dark);
	white-space: nowrap;
}

/* --- 31.7 Главное фото в описании (страницы пород и т.п.) ---
   Картинки img-l / img-r в тексте оформляем аккуратно: скругление,
   тонкая рамка, мягкая тень. На телефоне — по центру во всю ширину
   блока, на десктопе — обтекание текстом, как и задумано классами. */
.gdl-page-content img.img-l,
.gdl-page-content img.img-r,
.gdl-page-content img.img-c {
	display: block;
	height: auto;
	max-width: 100%;
	margin: 0 auto var(--lr-s5);
	border-radius: var(--lr-radius-lg);
	border: 1px solid var(--lr-line);
	box-shadow: var(--lr-shadow-md);
	background: var(--lr-paper);
}
@media (min-width: 768px) {
	.gdl-page-content img.img-l {
		float: left;
		margin: 6px var(--lr-s6) var(--lr-s4) 0;
		max-width: 46%;
	}
	.gdl-page-content img.img-r {
		float: right;
		margin: 6px 0 var(--lr-s4) var(--lr-s6);
		max-width: 46%;
	}
}

/* -------------------------------------------------------------
   31. ГЛАВНАЯ: ПЕРВЫЙ ЭКРАН
   Собирается из уже существующего контента (lr-ui.js).
   Оформление держим в языке сайта: тонкие линии, спокойная
   плашка, малые радиусы, родной маркер-чёрточка в списке.
   Сознательно без декоративных градиентов, карточек с тенями
   и hover-подъёмов — это коммерческий сайт производителя,
   а не витрина конструктора.
   ------------------------------------------------------------- */
.lr-hero {
	display: grid;
	/* Намеренно неравные колонки: текст ведёт, фото поддерживает */
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(24px, 3.5vw, 44px);
	margin: 0 0 var(--lr-s6);
	padding: clamp(24px, 3vw, 40px);
	background: var(--lr-surface);
	border: 1px solid var(--lr-line-soft);
	border-radius: var(--lr-radius-md);
}
.lr-hero__text { min-width: 0; }

/* Надзаголовок с короткой линейкой — редакционный приём вместо бейджа */
.lr-hero__eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 var(--lr-s4);
	font-family: var(--lr-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--lr-ink-3);
}
.lr-hero__eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 26px;
	height: 1px;
	background: var(--lr-brand-dark);
}
.lr-hero h1 {
	margin: 0 0 var(--lr-s4);
	font-size: clamp(27px, 2.5vw, 35px);
	line-height: 1.15;
	letter-spacing: -.01em;
	color: var(--lr-ink);
}
/* Список сохраняет родной маркер темы (ul.strelka) — не переопределяем */
.lr-hero__list { margin: 0 0 var(--lr-s5); }
.lr-hero__list li { font-size: 15px; margin-bottom: 9px; }

.lr-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lr-s3); }

.lr-hero__media { margin: 0; }
.lr-hero__media img {
	display: block;
	width: 100%;
	max-height: 300px;
	object-fit: contain;
	/* Фон снимка совпадает с плашкой — рамка и скругление не нужны,
	   брус читается лежащим прямо на подложке. */
	border-radius: 0;
}

/* --- Полоса фактов: разделители-волосинки вместо карточек --- */
.lr-facts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0 0 var(--lr-s7);
	border-top: 1px solid var(--lr-line);
	border-bottom: 1px solid var(--lr-line);
}
.lr-fact { padding: var(--lr-s5) var(--lr-s5) var(--lr-s5) 0; }
.lr-fact + .lr-fact { padding-left: var(--lr-s5); border-left: 1px solid var(--lr-line-soft); }
.lr-fact__title {
	margin: 0 0 5px;
	font-family: var(--lr-font-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--lr-ink);
}
.lr-fact__text {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--lr-ink-3);
}

@media (max-width: 900px) {
	.lr-hero { grid-template-columns: 1fr; gap: var(--lr-s5); }
	.lr-hero__media { order: -1; }
	.lr-hero__media img { max-height: 200px; }

	.lr-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lr-fact { padding: var(--lr-s4) var(--lr-s4) var(--lr-s4) 0; }
	.lr-fact + .lr-fact { padding-left: 0; border-left: 0; }
	.lr-fact:nth-child(2n) { padding-left: var(--lr-s4); border-left: 1px solid var(--lr-line-soft); }
	.lr-fact:nth-child(n+3) { border-top: 1px solid var(--lr-line-soft); }
}
@media (max-width: 560px) {
	.lr-facts { grid-template-columns: 1fr; }
	.lr-fact { padding: var(--lr-s4) 0; }
	.lr-fact + .lr-fact { padding-left: 0; border-left: 0; border-top: 1px solid var(--lr-line-soft); }
	.lr-fact:nth-child(2n) { padding-left: 0; border-left: 0; }
	.lr-hero__actions .lr-btn { flex: 1 1 auto; justify-content: center; }
}

/* -------------------------------------------------------------
   32. ПОЛИРОВКА: ШАПКА И ПЕРВЫЙ ЭКРАН
   Финальная подгонка по месту: одна ось выравнивания, единая
   шкала размеров, меньше воздуха там, где он выглядел случайным.
   ------------------------------------------------------------- */

/* --- Шапка --- */
.lr-header-contacts { align-items: center; }
/* Кнопка была 46px, а иконка рядом 40px, и верх у них не совпадал —
   пара читалась как случайно поставленные элементы. Уравниваем. */
.lr-header-actions { align-items: center; }
.lr-header-actions .lr-icon-link { width: 46px; height: 46px; }
/* Телефон — главный контакт: табличные цифры не «пляшут» по ширине */
.lr-phone { font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.lr-header-address { line-height: 1.4; }
.lr-tagline { line-height: 1.45; }

/* --- Герой: композиция --- */
.lr-hero {
	/* Колонки были 1.15/1: снимок выходил на 120px ниже текста и
	   вокруг него зияла пустота. Отдаём фото больше ширины. */
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.22fr);
	gap: clamp(20px, 2.6vw, 36px);
	padding: clamp(22px, 2.5vw, 34px);
	margin-bottom: var(--lr-s5);
}
.lr-hero h1 { margin-bottom: var(--lr-s3); }
.lr-hero__media img { max-height: 340px; }
/* Снимок упирается в своё разрешение и всегда ниже текстовой колонки.
   Вместо симметричной пустоты сверху и снизу сажаем брус на одну
   линию с кнопками — композиция получает общее основание. */
.lr-hero__media { align-self: end; }

/* Список легче: мельче кегль, плотнее строка, короче маркер.
   Селектор с тегом — чтобы перебить родное правило ul.strelka. */
ul.lr-hero__list { margin-bottom: var(--lr-s4); }
ul.lr-hero__list li {
	margin-bottom: 7px;
	padding-left: 22px;
	font-size: 14.5px;
	line-height: 1.5;
}
ul.lr-hero__list li::before { width: 9px; top: .68em; }

/* --- Полоса фактов: плотнее, цифры в одну сетку --- */
.lr-facts { margin-bottom: var(--lr-s6); }
.lr-fact { padding-top: var(--lr-s4); padding-bottom: var(--lr-s4); }
/* Заголовки фактов набраны фирменной Literata — та же гарнитура,
   что и в H1. Полоса перестаёт быть нейтральной и звучит брендом. */
.lr-fact__title {
	font-family: var(--lr-font-display);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -.005em;
	font-variant-numeric: tabular-nums;
}
/* Типографская мелочь: строки заголовка ломаются оптически ровно */
.lr-hero h1 { text-wrap: balance; }
.lr-fact__text { text-wrap: pretty; }

/* Правки блока 32 идут после мобильных медиа-запросов блока 31 и
   перебивали их — на телефоне герой оставался двухколоночным.
   Возвращаем одноколоночную раскладку явно. */
@media (max-width: 900px) {
	.lr-hero { grid-template-columns: 1fr; }
	.lr-hero__media { align-self: auto; order: -1; }
	.lr-hero__media img { max-height: 200px; }
}

/* -------------------------------------------------------------
   33. МОБИЛЬНЫЙ ПЕРВЫЙ ЭКРАН
   Телефон получает собственную композицию, а не уменьшенный
   десктоп. Прежде герой был одной карточкой высотой 775px:
   снимок в рамке, пять длинных пунктов и две одинаковые кнопки
   во всю ширину — типовая шаблонная раскладка.
   Здесь: фото во всю ширину экрана, короткий текст, один
   основной призыв, звонок — тихой ссылкой (он уже есть в
   нижней панели, дублировать кнопкой незачем).
   ------------------------------------------------------------- */
@media (max-width: 640px) {
	/* Карточку убираем — блок живёт прямо на странице */
	.lr-hero {
		display: flex;
		flex-direction: column;
		padding: 0;
		margin-bottom: var(--lr-s6);
		background: none;
		border: 0;
		border-radius: 0;
		gap: 0;
	}

	/* Снимок от края до края: выходим за поле контейнера */
	.lr-hero__media {
		order: -1;
		align-self: auto;
		/* Вылет за поля контейнера не привязываем к --lr-gutter:
		   реальный отступ считается иначе и края не сходились.
		   Этот приём работает при любом паддинге родителя. */
		width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		margin-bottom: var(--lr-s4);
	}
	.lr-hero__media img {
		width: 100%;
		/* Кадр чуть ниже пропорций снимка — обрезка съедает его
		   собственные поля, брус заполняет полосу целиком. */
		height: 168px;
		max-height: none;
		object-fit: cover;
		object-position: center 42%;
		border-radius: 0;
	}

	/* Надзаголовок без декоративной линейки */
	.lr-hero__eyebrow {
		margin-bottom: 8px;
		font-size: 11.5px;
		letter-spacing: .07em;
	}
	.lr-hero__eyebrow::before { display: none; }

	.lr-hero h1 {
		margin-bottom: var(--lr-s3);
		font-size: 27px;
		line-height: 1.16;
	}

	/* На экране телефона хватает трёх пунктов */
	ul.lr-hero__list { margin-bottom: var(--lr-s5); }
	ul.lr-hero__list li { margin-bottom: 6px; font-size: 14px; }
	ul.lr-hero__list li:nth-child(n+4) { display: none; }

	/* Один основной призыв + звонок тихой ссылкой рядом */
	.lr-hero__actions { display: flex; align-items: center; gap: var(--lr-s4); }
	.lr-hero__actions .lr-btn:first-child { flex: 1 1 auto; justify-content: center; }
	.lr-hero__actions .lr-btn--secondary {
		flex: 0 0 auto;
		min-height: 0;
		padding: 0;
		background: none;
		border: 0;
		color: var(--lr-ink-2);
		font-size: 14.5px;
		text-decoration: underline;
		text-underline-offset: 3px;
	}
	.lr-hero__actions .lr-btn--secondary:hover,
	.lr-hero__actions .lr-btn--secondary:active {
		background: none;
		color: var(--lr-brand-deep);
	}

	/* Полоса фактов: плотнее, без лишнего воздуха */
	.lr-facts { margin-bottom: var(--lr-s6); }
	.lr-fact { padding: 14px 0; }
	.lr-fact__title { font-size: 15px; }
	.lr-fact__text { font-size: 13px; }
}

/* -------------------------------------------------------------
   34. МОБИЛЬНЫЙ ПЕРВЫЙ ЭКРАН — ФИНАЛЬНАЯ ПОДГОНКА
   Короче путь до кнопки, плотнее факты, тише второстепенное
   действие. Композиция та же — меняются только величины.
   ------------------------------------------------------------- */

/* Панель занимает 59px, а отступ под контентом был 58px —
   последняя строка пряталась под ней на один пиксель. */
@media (max-width: 980px) {
	body.lr-has-tabbar { padding-bottom: calc(62px + env(safe-area-inset-bottom, 0px)); }
}

@media (max-width: 640px) {
	/* Снимок полноценным блоком: 132px срезали брус сверху и снизу,
	   он читался узкой полосой. 200px — стопка видна целиком. */
	.lr-hero__media { margin-bottom: var(--lr-s4); }
	.lr-hero__media img { height: 200px; }

	/* Плотнее вертикальный ритм текста */
	.lr-hero__eyebrow { margin-bottom: 6px; font-size: 11px; }
	.lr-hero h1 { margin-bottom: 10px; font-size: 26px; }
	ul.lr-hero__list { margin-bottom: 18px; }
	ul.lr-hero__list li {
		margin-bottom: 5px;
		font-size: 13.5px;
		line-height: 1.45;
	}

	/* «Позвонить» — тише основного действия: приглушённый цвет и
	   тонкая светлая линия вместо жирного подчёркивания */
	.lr-hero__actions .lr-btn--secondary {
		font-size: 14px;
		color: var(--lr-ink-3);
		text-decoration-color: var(--lr-line-strong);
		text-decoration-thickness: 1px;
		text-underline-offset: 4px;
	}

	/* Полоса фактов компактнее — четыре строки подряд читались
	   как сплошной текст */
	.lr-fact { padding: 11px 0; }
	.lr-fact__title { margin-bottom: 3px; font-size: 14.5px; }
	.lr-fact__text { font-size: 12.5px; line-height: 1.45; }
}

/* Подпись «Каталог» сидела на 2.2px ниже четырёх соседних: её
   положение задаёт margin-top у самого span, а не паддинг пункта.
   Убираем эти 2px, чтобы все пять подписей стояли на одной линии. */
@media (max-width: 980px) {
	/* Соседние пункты центрируют содержимое (подпись на +35.2px от
	   верха), центральный прижимает его к низу (+37.4px). Разницу
	   в 2.2px гасим отступом снизу: 58 - 35.2 - 12.6 = 10.2px. */
	.lr-tabbar .lr-tabbar__item--center { padding-bottom: 10.2px !important; }
}

/* -------------------------------------------------------------
   35. ЦЕНА С УСЛОВИЕМ В КАРТОЧКЕ ХАРАКТЕРИСТИК
   «От 55000 руб.* цена на заводе от 20 кубов» шло одной строкой
   с white-space: nowrap и вылезало за край экрана. Страница
   получала горизонтальное переполнение — на iPhone из-за этого
   сбивался масштаб и дёргалась прокрутка.
   Сумма остаётся крупной, условие уходит мелкой сноской ниже.
   ------------------------------------------------------------- */
.lr-card__row--price { align-items: flex-start; }
.lr-card__row--price .lr-card__v {
	min-width: 0;
	white-space: normal;
	overflow-wrap: anywhere;
}
.lr-card__price {
	display: block;
	white-space: nowrap;
}
.lr-card__note {
	display: block;
	margin-top: 3px;
	font-family: var(--lr-font-sans);
	font-size: 11.5px;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: 0;
	color: var(--lr-ink-3);
}

/* -------------------------------------------------------------
   36. ГАЛЕРЕИ НА ТЕЛЕФОНЕ
   На телефоне галереи выводятся в две колонки (так блок из восьми
   фото не растягивается на полторы тысячи пикселей). Но при
   нечётном количестве последнее фото занимало половину ряда, а
   рядом зияла пустая ячейка — «2 + 1» выглядело как ошибка.
   Растягиваем последний элемент на обе колонки: ряд заполнен,
   фото крупнее и лучше читается.
   ------------------------------------------------------------- */
@media (max-width: 740px) {
	/* Работает и для ссылок с лайтбоксом, и для голых картинок */
	.block-img > *:last-child:nth-child(odd),
	.main_img  > *:last-child:nth-child(odd),
	.two-img   > *:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}

	/* Обёртка-ссылка должна вести себя как ячейка сетки, иначе
	   картинка внутри не занимает её целиком и колонки «плывут». */
	.block-img > a,
	.main_img  > a,
	.two-img   > a {
		display: block;
		min-width: 0;
	}
	.block-img > a > img,
	.main_img  > a > img,
	.two-img   > a > img {
		display: block;
		width: 100%;
		height: 100%;
		aspect-ratio: 4 / 3;
		object-fit: cover;
		margin: 0 !important;
	}

	/* В разметке у части фото проставлена инлайновая ширина 250px —
	   в ячейке сетки они не заполняли ряд и висели у левого края. */
	.two-img  > img[style],
	.main_img > img[style],
	.block-img > img[style] {
		width: 100% !important;
		height: 100% !important;
	}

	/* Галерея цеха на телефоне убрана по решению владельца: три фото
	   ложились «2 + 1» и мешали читать текст. На десктопе она
	   остаётся — там снимки идут ровным рядом. */
	.block-img { display: none; }
}

/* -------------------------------------------------------------
   37. БЛОК КОНТАКТОВ И СПИСОК СОРТИРОВКИ
   ------------------------------------------------------------- */

/* Тёмная карточка «У Вас остались вопросы» убрана из footer.php.
   Такая же вёрстка встречается внутри текста страниц (её правит
   редактор в админке) — прячем и её, чтобы блок не всплывал.
   Контакты остаются в шапке, подвале и нижней панели. */
.info_block,
.info_block + p,
.last_block { display: none !important; }

/* Выпадающий список сортировки.
   Раскрытый список <select> рисует операционная система: её фон,
   синюю подсветку и шрифт CSS не контролирует. Задаём то, что
   браузеры всё же учитывают — цвет и фон самих пунктов, чтобы они
   не выпадали из палитры сайта. */
.woocommerce-ordering select option,
.woocommerce-page .woocommerce-ordering select option {
	color: var(--lr-ink);
	background: var(--lr-paper);
}
.woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
	font-family: var(--lr-font-sans);
	font-size: 14.5px;
	color: var(--lr-ink);
	cursor: pointer;
}
.woocommerce-ordering select:focus,
.woocommerce-page .woocommerce-ordering select:focus {
	outline: none;
	border-color: var(--lr-brand-dark);
	box-shadow: 0 0 0 2px rgba(152, 195, 36, .35);
}

/* -------------------------------------------------------------
   38. КНОПКА-ШЕВРОН В ВЫДВИЖНОМ МЕНЮ
   Кольцо фокуса рисовалось снаружи (outline-offset: 2px) тёмно-
   зелёным и после касания оставалось висеть — читалось как свечение,
   выходящее за край панели, тем более рядом с полосой прокрутки.
   Прячем кольцо внутрь кнопки: для клавиатуры индикация сохраняется
   (это требование доступности), но наружу ничего не выступает.
   Саму кнопку слегка уменьшаем и отодвигаем от края.
   ------------------------------------------------------------- */
.lr-drawer .lr-submenu-toggle {
	top: 5px;
	right: 14px;
	width: 40px;
	height: 40px;
}
.lr-drawer .lr-submenu-toggle:focus-visible {
	outline: 2px solid var(--lr-brand-dark);
	outline-offset: -2px;
	border-radius: var(--lr-radius-md);
}
/* Указателем и касанием кольцо не показываем — только с клавиатуры */
.lr-drawer .lr-submenu-toggle:focus:not(:focus-visible) { outline: none; }
