/* ===========================================================================
   STROM 17.08.2026 — карточка товара: первый экран и секция «Описание|Характеристики».
   Handle: strom-product-card (deps: child-style). Грузится ТОЛЬКО на карточке товара
   (гейт в inc/strom-product-card.php), поэтому селекторы короткие.

   ПОРЯДОК ЗАГРУЗКИ. Наш <link> идёт РАНЬШЕ частей темы (замерено на листинге: 23-й из 79),
   то есть «побить порядком» нельзя — каждое правило, спорящее с темой или с Elementor,
   бьёт их СПЕЦИФИЧНОСТЬЮ. У правил Elementor для элемента шаблона счёт 0,3,0
   (`.elementor-1055 .elementor-element.elementor-element-XXX`), поэтому там, где мы их
   перекрываем, добавлен четвёртый класс (`.e-con` / `.single-product`).

   Разметка, под которую написан файл (её печатает inc/strom-product-card.php):
     div.strom-pd-eyebrow > a.strom-pd-eyebrow__link + span.strom-pd-eyebrow__sep
     dl.strom-pd-passport > div.strom-pd-passport__cell > dt.__k + dd.__v > span.__u
     nav.strom-pd-jump > a.strom-pd-jump__link
     dl.strom-pd-terms > div.strom-pd-terms__row > dt.__k + dd.__v
   Цена приходит из inc/strom-price-format.php (span.strom-price > __main > __now/__unit/__was
   + __pack) и из фильтра вариаций (span.strom-price--var).
   =========================================================================== */

/* Числа набираем шрифтом страницы с ТАБЛИЧНЫМИ цифрами, без моношрифта.
   Причина: в IBM Plex Mono каждый глиф занимает одинаковую ширину, и «12,12» читалось как
   «12 , 12» — запятая висела в своей клетке (замечено Романом на паспорте товара). Плюс
   моно-файл (15 КБ) на этой странице больше не нужен — ровно тот же вывод, что в laying.css. */

.single-product {
	--pd-green: #0e7e50;
	--pd-green-h: #0b6a43;
	--pd-ink: #232624;
	--pd-sub: #5c5c5c;
	--pd-muted: #767676;
	--pd-line: rgba(35, 38, 36, .13);
	--pd-line-soft: rgba(35, 38, 36, .08);
	/* Пропорция кадра галереи приезжает инлайном из PHP (по реальному фото товара). */
	--strom-pd-ar: 1.3333;
}

/* ---------------------------------------------------------------------------
   1. Геометрия первого экрана: галерея крупнее саммари (было 50/50)
   --------------------------------------------------------------------------- */

@media (min-width: 1025px) {
	.single-product .elementor-element.elementor-element-6ae2d25.e-con {
		row-gap: 16px;
	}

	/* Воздух между фото и правой колонкой: у Elementor тут 20px, а на ряду 1370px это
	   читалось «блоки стоят вплотную» (правка Романа 17.08.2026).
	   Правило именно на `.e-con-inner`: контейнер `e-con-boxed` держит детей во внутренней
	   обёртке, и gap у самого контейнера на них не действует (проверено замером). */
	.single-product .elementor-element.elementor-element-c7c2108.e-con > .e-con-inner {
		column-gap: 52px;
	}
}

/* Плашка «Нажмите, чтобы увеличить» / кнопки поверх кадра — убрана навсегда
   (правка Романа 17.08.2026). Зум по самому фото у темы остаётся. */
.single-product .product-additional-galleries {
	display: none;
}

/* Хлебные крошки в карточке — мельче (правка Романа 17.08.2026): было 15px, то есть в один
   кегль с текстом страницы, и строка навигации спорила с H1. Только на карточке товара:
   общие стили крошек (inc/strom-breadcrumbs.php) не трогаем. */
.single-product .elementor-element-dd627b9 .wd-breadcrumbs {
	font-size: 12.5px;
	line-height: 1.4;
}

/* Кадр галереи — по фактической пропорции фото, а не жёстким квадратом темы: у плитки
   (1500×1000) в квадрате оставалось по 90px пустоты сверху и снизу. object-fit:contain
   тема уже ставит сама, поэтому «нестандартное» фото в общем кадре не искажается.
   max-height держит кадр в разумных границах: без него у квадратных фото водоотвода
   первый экран уезжал под 760px (правка Романа «ограничить размеры фото»). */
.single-product .woocommerce-product-gallery__image img {
	aspect-ratio: var(--strom-pd-ar);
	max-height: 470px;
}

/* Миниатюры — вертикальным столбиком СЛЕВА (нативная позиция темы, правка Романа 17.08.2026).
   Ширину столбика тема резервирует переменной --wd-thumbs-width (дефолт 132px, из неё же
   считается max-width главного кадра): 132 − внутренние отступы давало полоску ~84px, из-за
   чего миниатюры читались «узкими полосками». Ставим 128px → миниатюра 112×75 при кадре 3:2. */
.single-product .woocommerce-product-gallery.thumbs-position-left {
	--wd-thumbs-width: 128px;
	/*
	 * Высота столбика — ФИКСИРОВАННАЯ, а не «сколько дала высота ряда».
	 * Иначе ячейку считает тема: `.wd-gallery-thumb{height:var(--wd-thumbs-height, auto)}` →
	 * столбик тянулся на всю высоту первого экрана, а её JS темы делил на число слотов и писал
	 * результат ИНЛАЙНОМ в каждую ячейку (проверено CDP: `style="height:110px"`). Отсюда и
	 * «полоски», и «огромные отступы», и схлопывание зазора: своим CSS высоту ячейки не
	 * перебить, а ломать её !important нельзя — на товарах с 6-7 кадрами по этим же числам
	 * работает вертикальный Swiper.
	 * 470 = 5 слотов × 88 + 30 (тема резервирует 30px под стрелки). При любом числе кадров
	 * ячейка выходит 88px, а зазор даёт САМА тема: у миниатюры height:calc(100% - --wd-gap)
	 * и margin-bottom:--wd-gap. Нам остаётся только не мешать ей.
	 */
	--wd-thumbs-height: 470px;
}

/*
 * Пропорции миниатюры задаются ЧИСЛОМ СЛОТОВ, а не своей высотой.
 *
 * Механика темы (css/parts/woo-single-prod-gallery-*.css): высота столбика = высота главного
 * кадра, `.wd-carousel-item{height:calc(100%/var(--wd-col))}`,
 * `img{height:calc(100% - var(--wd-gap));object-fit:cover}`. При 3 слотах ячейка выходила
 * 156px под ширину 118px — миниатюра обрезалась в вертикальную полоску (правка Романа:
 * «почему они такие узкие как полоски»). Своим `height:auto` это НЕ лечится: тема пишет
 * высоту ячейки ИНЛАЙНОМ из JS (проверено CDP — `style="height:110px"`), и любой селектор
 * проигрывает инлайну; ломать её `!important` нельзя, иначе поедет вертикальный Swiper,
 * который включается на товарах с 6-7 кадрами (в базе такие есть).
 * Поэтому слотов 5 (настройка виджета, strom_pd_layout_patch): 470px кадра дают ячейку 88px
 * и миниатюру 118×78 — ровно 3:2. Кадров больше пяти — тема сама включает Swiper и стрелки.
 */
/*
 * Рамка и обрезка — на ЯЧЕЙКЕ (правка Романа), фото внутри без своей рамки.
 *
 * `height: 78px !important` — единственный !important в файле, и он вынужденный: высоту ячейки
 * тема пишет ИНЛАЙНОМ из JS (88px = 440 / 5 слотов, проверено CDP), а инлайн бьёт любой
 * селектор. Важно, что ШАГ остаётся прежним: 78px рамки + 10px маргина = те же 88px, на
 * которые рассчитывает вертикальный Swiper у товаров с 6-7 кадрами. Поэтому правка меняет
 * только вид, а не геометрию карусели.
 */
.single-product .thumbs-position-left .wd-gallery-thumb .wd-carousel-item {
	box-sizing: border-box;
	height: 78px !important;
	margin-bottom: 10px;
	overflow: hidden;
	border: 1px solid var(--pd-line-soft);
	border-radius: 4px;
	background: #fff;
	transition: border-color .18s ease;
}

.single-product .thumbs-position-left .wd-gallery-thumb .wd-carousel-item:hover,
.single-product .thumbs-position-left .wd-gallery-thumb .wd-carousel-item.wd-active {
	border-color: rgba(14, 126, 80, .45);
}

/* Фото вписывается ЦЕЛИКОМ и стоит по центру: низкое фото не режется, а получает поля
   на белом. Своей рамки и отступов у него нет — рамка на ячейке. */
.single-product .thumbs-position-left .wd-gallery-thumb .wd-carousel-item img {
	width: 100%;
	height: 100%;
	max-height: 78px;
	margin: 0;
	border: 0;
	border-radius: 0;
	object-fit: contain;
	object-position: center;
}

/* ---------------------------------------------------------------------------
   2. Eyebrow и заголовок
   --------------------------------------------------------------------------- */

.strom-pd-eyebrow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px;
	margin-bottom: -6px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .11em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Счёт 0,2,0 — тема красит ссылки правилами меньшей специфичности. */
.strom-pd-eyebrow .strom-pd-eyebrow__link {
	color: var(--pd-muted);
	text-decoration: none;
	transition: color .2s ease;
}

.strom-pd-eyebrow .strom-pd-eyebrow__link:hover {
	color: var(--pd-green);
}

.strom-pd-eyebrow__sep {
	color: var(--pd-line);
}

.single-product .elementor-element-8edbe86 h1 {
	margin: 0;
	color: var(--pd-ink);
	font-size: 30px;
	font-weight: 600;
	line-height: 1.22;
	letter-spacing: -.01em;
}

@media (max-width: 768px) {
	.single-product .elementor-element-8edbe86 h1 {
		font-size: 24px;
	}
}

/* ---------------------------------------------------------------------------
   3. «Паспорт» — размерная линейка из трёх чисел
   --------------------------------------------------------------------------- */

.strom-pd-passport {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--pd-line);
	border-bottom: 1px solid var(--pd-line);
}

.strom-pd-passport__cell {
	display: flex;
	flex-direction: column-reverse;
	position: relative;
	padding: 11px 14px 10px;
}

.strom-pd-passport__cell:first-child {
	padding-left: 0;
}

/* Разделитель ячеек — засечка, как на размерной линии: короткая черта сверху и снизу,
   а не сплошная линия во всю высоту (сплошная читалась бы таблицей). */
.strom-pd-passport__cell + .strom-pd-passport__cell::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 1px;
	background: linear-gradient(180deg,
		var(--pd-line) 0 7px,
		transparent 7px calc(100% - 7px),
		var(--pd-line) calc(100% - 7px) 100%);
}

.strom-pd-passport__k {
	margin: 0;
	color: var(--pd-muted);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.2;
	text-transform: uppercase;
}

.strom-pd-passport__v {
	display: flex;
	align-items: baseline;
	gap: 4px;
	margin: 0 0 4px;
	color: var(--pd-ink);
	font-variant-numeric: tabular-nums;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -.02em;
	/* Размер («360x150x180») нельзя рвать по цифрам: на мобиле получалось «360x150x1 / 80».
	   Слишком длинное значение уменьшаем кеглем ниже, а не переносом внутри числа. */
	word-break: normal;
	overflow-wrap: normal;
}

.strom-pd-passport__u {
	color: var(--pd-muted);
	font-family: inherit;
	font-size: 12px;
	letter-spacing: 0;
}

@media (max-width: 768px) {
	/* 15px: «360x150x180» — самое длинное живое значение (11 знаков) — влезает в ячейку
	   119px без переноса (замерено на 390px вьюпорта). */
	.strom-pd-passport__v {
		font-size: 15px;
	}

	.strom-pd-passport__u {
		font-size: 11px;
	}

	.strom-pd-passport__cell {
		padding: 9px 8px 8px;
	}

	.strom-pd-passport__k {
		font-size: 9.5px;
		letter-spacing: .07em;
	}
}

/* ---------------------------------------------------------------------------
   4. Касса: цена, переключатель типа цены, кнопки
   --------------------------------------------------------------------------- */

.single-product .elementor-element-308ab41 .price,
.single-product .elementor-element-84259fc .price {
	margin: 0;
	color: var(--pd-ink);
}

.single-product .strom-price {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.single-product .strom-price__main {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 7px;
}

.single-product .strom-price__now {
	color: var(--pd-ink);
	font-size: 32px;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -.015em;
	font-variant-numeric: tabular-nums;
}

.single-product .strom-price__unit {
	color: var(--pd-muted);
	font-size: 15px;
	font-weight: 500;
}

.single-product .strom-price__was {
	color: #9a9a9a;
	font-size: 16px;
	font-weight: 400;
	text-decoration: line-through;
}

.single-product .strom-price__pack {
	color: var(--pd-sub);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.35;
	font-variant-numeric: tabular-nums;
}

.single-product .strom-price__pack-was {
	margin-left: 5px;
	color: #9a9a9a;
	text-decoration: line-through;
}

/* Плашка «Цена по запросу» (товар без цены) — тот же кегль, что у цены. */
.single-product .strom-on-request--single {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.single-product .strom-on-request__label {
	color: var(--pd-ink);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.15;
}

.single-product .strom-on-request__note {
	color: var(--pd-sub);
	font-size: 13px;
}

/* Переключатель «Тип цены»: подпись над пилюлей, а не сбоку (в колонке 44% сбоку тесно). */
.single-product .variations_form .variations,
.single-product .variations_form .variations tbody,
.single-product .variations_form .variations tr {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
}

.single-product .variations_form .variations th.label,
.single-product .variations_form .variations td.value {
	display: block;
	width: auto;
	padding: 0;
	border: 0;
	text-align: left;
}

/* Двоеточие после подписи тема дописывает псевдоэлементом — в капс-подписи оно лишнее. */
.single-product .variations_form .variations th.label label::after {
	content: none;
}

.single-product .variations_form .variations th.label label {
	display: block;
	margin: 0 0 7px;
	color: var(--pd-muted);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Пилюля: рамка вокруг группы, сегменты без своих рамок, активный — зелёная заливка.
   Счёт 0,3,0 против 0,2,0 у частей темы (woo-mod-swatches*). */
.single-product .variations_form .wd-swatches-single {
	display: inline-flex;
	gap: 0;
	padding: 3px;
	border: 1px solid var(--pd-line);
	border-radius: 999px;
	background: #fff;
}

.single-product .variations_form .wd-swatches-single .wd-swatch {
	min-width: 84px;
	margin: 0;
	padding: 7px 16px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	box-shadow: none;
	color: var(--pd-sub);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.1;
	text-align: center;
	transition: background-color .18s ease, color .18s ease;
}

.single-product .variations_form .wd-swatches-single .wd-swatch .wd-swatch-text {
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: 0;
	text-transform: none;
}

.single-product .variations_form .wd-swatches-single .wd-swatch:hover {
	color: var(--pd-ink);
}

.single-product .variations_form .wd-swatches-single .wd-swatch.wd-active {
	background: var(--pd-green);
	color: #fff;
}

/* Воздух между пилюлей «Тип цены» и рядом покупки: у таблицы вариаций мы сняли отступы
   темы (display:block), и single_variation_wrap прилипал к переключателю. */
.single-product .variations_form .single_variation_wrap {
	margin-top: 16px;
}

/* Ряд «количество + кнопки»: кнопка «В корзину» ведущая, консультация — второстепенная. */
.single-product .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
}

.single-product .woocommerce-variation-add-to-cart .quantity {
	margin: 0;
}

.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button {
	flex: 1 1 200px;
	min-width: 180px;
}

.single-product .woocommerce-variation-add-to-cart .strom-consult-btn,
.single-product .strom-request-btn {
	flex: 0 1 auto;
}

/* ---------------------------------------------------------------------------
   5. Якорная строка (калькулятор + схемы укладки)
   --------------------------------------------------------------------------- */

.strom-pd-jump {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 2px 0 0;
}

/* Роль и вид те же, что были у одиночного триггера «Варианты укладки» (капс + разрядка +
   зелёный, без глифа-стрелки — снят по правке Романа 10.08). Счёт 0,2,0. */
.strom-pd-jump .strom-pd-jump__link {
	display: inline-flex;
	align-items: center;
	padding-bottom: 3px;
	border-bottom: 1px solid rgba(14, 126, 80, .3);
	color: var(--pd-green);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .09em;
	line-height: 1.2;
	text-decoration: none;
	text-transform: uppercase;
	transition: color .2s ease, border-color .2s ease;
}

.strom-pd-jump .strom-pd-jump__link:hover {
	border-bottom-color: var(--pd-green-h);
	color: var(--pd-green-h);
}

/* ---------------------------------------------------------------------------
   6. Реестр условий поставки
   --------------------------------------------------------------------------- */

.strom-pd-terms {
	margin: 4px 0 0;
	padding: 0;
	border-top: 1px solid var(--pd-line);
}

.strom-pd-terms__row {
	display: grid;
	grid-template-columns: 116px minmax(0, 1fr);
	gap: 12px;
	padding: 9px 0;
	border-bottom: 1px solid var(--pd-line-soft);
}

.strom-pd-terms__k {
	margin: 0;
	color: var(--pd-muted);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.7;
	text-transform: uppercase;
}

.strom-pd-terms__v {
	margin: 0;
	color: var(--pd-sub);
	font-size: 13px;
	line-height: 1.45;
}

/* Счёт 0,2,0 — ссылка внутри реестра не должна брать общий синий цвет темы. */
.strom-pd-terms .strom-pd-terms__v a {
	border-bottom: 1px solid rgba(14, 126, 80, .35);
	color: var(--pd-green);
	text-decoration: none;
	transition: border-color .2s ease, color .2s ease;
}

.strom-pd-terms .strom-pd-terms__v a:hover {
	border-bottom-color: var(--pd-green-h);
	color: var(--pd-green-h);
}

@media (max-width: 480px) {
	.strom-pd-terms__row {
		grid-template-columns: minmax(0, 1fr);
		gap: 2px;
	}

	.strom-pd-terms__k {
		line-height: 1.3;
	}
}

/* ---------------------------------------------------------------------------
   7. Секция «Характеристики | Описание» — одна карточка с табами
   --------------------------------------------------------------------------- */

/* Каркас: ряд из двух белых панелей (58/42) превращаем в ОДНУ карточку на всю ширину.
   Все размеры Elementor раздаёт кастом-свойствами (--width, --padding-*, --border-radius),
   поэтому переопределяем свойства, а не пишем свою раскладку. Счёт 0,5,0 против 0,4,0 у
   Elementor: `:not(...)` в его селекторе фона тоже стоит один класс, а наш файл грузится
   раньше — при равном счёте выиграл бы он.
   ⚠️ Почему это в CSS, а не настройкой макета: генератор Post_CSS читает данные документа
   напрямую и фильтр `elementor/frontend/builder_content_data` не видит (см. комментарий в
   inc/strom-product-card.php). */
.single-product .elementor-element.elementor-element-ee5b9bd.e-con {
	--flex-direction: column;
	--container-widget-width: 100%;
	--container-widget-height: initial;
	--container-widget-flex-grow: 0;
	--container-widget-align-self: initial;
	--border-radius: 10px;
	--padding-top: 24px;
	--padding-right: 28px;
	--padding-bottom: 26px;
	--padding-left: 28px;
	background-color: #fff;
}

.single-product .elementor-element.elementor-element-1ee1ec8.e-con.e-child,
.single-product .elementor-element.elementor-element-ec2f083.e-con.e-child {
	--width: 100%;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--border-radius: 0px;
	background-color: transparent;
}

/* Внутренняя карточка характеристик (3b05dd4) — тоже без своего фона и отступов. */
.single-product .elementor-element.elementor-element-3b05dd4.e-con {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--border-radius: 0px;
	background-color: transparent;
}

/* Липкость колонки характеристик при табах не нужна: она «уезжала» из карточки. */
.single-product .elementor-element.elementor-element-ec2f083.e-con {
	position: static;
	--wd-sticky-offset: 0px;
}

@media (min-width: 769px) {
	.single-product .elementor-element.elementor-element-1ee1ec8.e-con.e-child,
	.single-product .elementor-element.elementor-element-ec2f083.e-con.e-child {
		--width: 100%;
	}
}

/* Полоса табов. Показывается только когда её оживил скрипт (assets/js/product-card.js):
   без JS обе панели остаются видимыми, как было до правки. */
.strom-pd-tabs {
	display: none;
	gap: 4px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--pd-line);
}

.strom-pd-tabs.is-ready {
	display: flex;
}

/* Счёт 0,2,0 — у темы свои правила на button. */
.strom-pd-tabs .strom-pd-tabs__btn {
	margin: 0 0 -1px;
	padding: 0 2px 12px;
	border: 0;
	border-bottom: 2px solid transparent;
	background: none;
	color: var(--pd-muted);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.2;
	text-transform: uppercase;
	cursor: pointer;
	transition: color .18s ease, border-color .18s ease;
}

.strom-pd-tabs .strom-pd-tabs__btn + .strom-pd-tabs__btn {
	margin-left: 26px;
}

.strom-pd-tabs .strom-pd-tabs__btn:hover {
	color: var(--pd-ink);
}

.strom-pd-tabs .strom-pd-tabs__btn.is-active {
	border-bottom-color: var(--pd-green);
	color: var(--pd-ink);
}

/* Панели: видна одна. Селектор идёт по ID контейнеров Elementor — других детей у хозяина
   нет (проверено по дереву макета 1055). */
.strom-pd-tabs-host.is-specs > .elementor-element-1ee1ec8,
.strom-pd-tabs-host.is-desc > .elementor-element-ec2f083 {
	display: none;
}

/* Описание — колонка прозы, измеримая мера строки; H2 внутри текста (у водоотвода
   «Купить лоток стандартный…») не спорит с H1 карточки. */
.single-product .elementor-element-7955ff3 {
	color: var(--pd-sub);
	font-size: 14.5px;
	line-height: 1.62;
}

/* Ограничения меры строки нет: панель теперь одна на всю ширину (табы), и колодец
   68ch оставлял справа пустое поле (правка Романа 17.08.2026). */

.single-product .elementor-element-7955ff3 h2 {
	margin: 0 0 12px;
	color: var(--pd-ink);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
}

.single-product .elementor-element-7955ff3 p {
	margin: 0 0 12px;
}

.single-product .elementor-element-7955ff3 p:last-child {
	margin-bottom: 0;
}

/* Перечисления, собранные из строк-тире (strom_pd_unbr_description). Тема даёт
   li{margin-bottom:10px} — гасим, маркер рисуем сами точкой. */
.single-product .elementor-element-7955ff3 .strom-pd-prose-list {
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
}

.single-product .elementor-element-7955ff3 .strom-pd-prose-list li {
	position: relative;
	margin: 0 0 5px;
	padding-left: 15px;
}

.single-product .elementor-element-7955ff3 .strom-pd-prose-list li::before {
	content: "";
	position: absolute;
	top: .58em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: rgba(14, 126, 80, .55);
}

/* Характеристики — две колонки пар «ключ · значение», БЕЗ подчёркиваний (правка Романа
   17.08.2026: 14 подчёркнутых строк в столбик читались забором и раздували высоту).
   Таблицу раскладываем гридом: table/tbody/tr переводим в grid — так пары встают в две
   колонки, а разметку темы (shop_attributes) не трогаем. */
.single-product .elementor-element-19275bc .shop_attributes {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
}

.single-product .elementor-element-19275bc .shop_attributes tbody {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 48px;
}

.single-product .elementor-element-19275bc .shop_attributes tr {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: baseline;
	gap: 10px;
	padding: 7px 0;
	border: 0;
}

/* Тонкая горизонталь только КАЖДОЙ ВТОРОЙ строки — ритм без «забора»: полосы помогают
   вести взгляд по паре, но не рисуют сетку. */
.single-product .elementor-element-19275bc .shop_attributes tr:nth-child(4n+1),
.single-product .elementor-element-19275bc .shop_attributes tr:nth-child(4n+2) {
	background: rgba(35, 38, 36, .022);
	box-shadow: 0 0 0 6px rgba(35, 38, 36, .022);
	border-radius: 2px;
}

.single-product .elementor-element-19275bc .shop_attributes th,
.single-product .elementor-element-19275bc .shop_attributes td {
	padding: 0;
	border: 0;
	background: none;
	font-size: 13px;
	line-height: 1.35;
	vertical-align: baseline;
}

.single-product .elementor-element-19275bc .shop_attributes th {
	color: var(--pd-muted);
	font-weight: 400;
	text-align: left;
}

.single-product .elementor-element-19275bc .shop_attributes td {
	color: var(--pd-ink);
	font-weight: 500;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.single-product .elementor-element-19275bc .shop_attributes td p {
	margin: 0;
}

@media (max-width: 768px) {
	.single-product .elementor-element-19275bc .shop_attributes tbody {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------------------------------------------------------------------------
   8. Мобильный порядок
   --------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.strom-pd-passport {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.single-product .strom-price__now {
		font-size: 28px;
	}

	/* iOS зумит поля с кеглем меньше 16px (user-scalable=no с сайта снят). */
	.single-product .quantity input.qty,
	.single-product .variations select {
		font-size: 16px;
	}
}
