/**
 * Дерево категорий каталога в сайдбаре.
 * Вложенность на нативных <details> — раскрывашки без единой строки JS.
 */

.pb-cat-tree__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pb-cat-tree > .pb-cat-tree__list > .pb-cat-tree__item + .pb-cat-tree__item {
	margin-block-start: 4px;
	padding-block-start: 4px;
	border-block-start: 1px solid var(--pb-line, #e4e9e8);
}

.pb-cat-tree__link {
	display: block;
	padding-block: 7px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--pb-dark, #141c1a);
	text-decoration: none;
	transition: color .2s ease;
}

.pb-cat-tree__link:hover,
.pb-cat-tree__item.is-current > .pb-cat-tree__link,
.pb-cat-tree__item.is-current > .pb-cat-tree__node > .pb-cat-tree__summary .pb-cat-tree__link {
	color: var(--pb-accent, #007cd6);
}

.pb-cat-tree__item.is-current > .pb-cat-tree__link {
	font-weight: 600;
}

.pb-cat-tree__summary {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	list-style: none;
}

.pb-cat-tree__summary::-webkit-details-marker {
	display: none;
}

.pb-cat-tree__summary .pb-cat-tree__link {
	flex: 1 1 auto;
	min-inline-size: 0;
}

/* Шеврон из двух границ: поворачивается, когда узел открыт. */
.pb-cat-tree__toggle {
	flex: 0 0 auto;
	inline-size: 8px;
	block-size: 8px;
	margin-inline-end: 4px;
	border-inline-end: 2px solid var(--pb-muted, #8d8d8d);
	border-block-end: 2px solid var(--pb-muted, #8d8d8d);
	transform: rotate(-45deg);
	transition: transform .2s ease, border-color .2s ease;
}

.pb-cat-tree__node[open] > .pb-cat-tree__summary .pb-cat-tree__toggle {
	transform: rotate(45deg);
}

.pb-cat-tree__summary:hover .pb-cat-tree__toggle {
	border-color: var(--pb-accent, #007cd6);
}

/* Вложенные уровни: отступ и линия слева. */
.pb-cat-tree__node > .pb-cat-tree__list {
	margin-inline-start: 10px;
	padding-inline-start: 12px;
	border-inline-start: 1px solid var(--pb-line, #e4e9e8);
}

.pb-cat-tree__node > .pb-cat-tree__list .pb-cat-tree__link {
	padding-block: 5px;
	font-size: 13px;
	color: var(--pb-muted, #8d8d8d);
}

.pb-cat-tree__node > .pb-cat-tree__list .pb-cat-tree__link:hover {
	color: var(--pb-accent, #007cd6);
}

/* --------------------------------------------------------------- *
 * Фото с производства в сайдбаре
 * --------------------------------------------------------------- */

.pb-production__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pb-production__item {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pb-production__item a {
	display: block;
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 0;
	background: var(--pb-surface);
}

.pb-production__img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	display: block;
	transition: transform .45s ease;
}

.pb-production__item a:hover .pb-production__img {
	transform: scale(1.06);
}

/* --------------------------------------------------------------- *
 * Блоки под товарами категории
 * --------------------------------------------------------------- */

.pb-category-bottom {
	margin-block-start: 60px;
}

.pb-category-bottom > section + section {
	margin-block-start: 60px;
}

.pb-cat-text > :first-child {
	margin-block-start: 0;
}

@media (prefers-reduced-motion: reduce) {
	.pb-production__img {
		transition: none;
	}

	.pb-production__item a:hover .pb-production__img {
		transform: none;
	}
}


/* --------------------------------------------------------------- *
 * Карточка товара: контент и сайдбар каталога рядом
 * --------------------------------------------------------------- */

@media (min-width: 1025px) {

	.single-product .wd-content-layout {
		display: grid;
		grid-template-columns: 300px minmax(0, 1fr);
		column-gap: 40px;
		align-items: start;
		inline-size: min(1348px, calc(100% - 40px));
		margin-inline: auto;
	}

	.single-product .wd-content-layout > .wd-content-area {
		grid-column: 2;
		grid-row: 1;
		min-inline-size: 0;
	}

	.single-product .wd-content-layout > .pb-single-sidebar {
		grid-column: 1;
		grid-row: 1;
	}

	/* Родной сайдбар темы дублировал бы дерево категорий. */
	.single-product .wd-sidebar:not(.pb-single-sidebar) {
		display: none;
	}

	.single-product .wd-content-area .container {
		inline-size: 100%;
		max-inline-size: none;
		padding-inline: 0;
	}

	.single-product .wd-content-layout > .pb-prefooter {
		grid-column: 1 / -1;
	}
}

/* Сайдбар «Наших работ» едет за пользователем; в карточке товара
   он остаётся на месте — так просил заказчик. */
.pb-works__aside {
	position: sticky;
	inset-block-start: 110px;
	align-self: start;
	max-block-size: calc(100vh - 140px);
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
}

.pb-single-sidebar {
	position: static;
	align-self: start;
}

.pb-works__aside::-webkit-scrollbar {
	inline-size: 6px;
}

.pb-works__aside::-webkit-scrollbar-thumb {
	border-radius: 0;
	background: #cfd6dd;
}

@media (max-width: 1024px) {

	.pb-single-sidebar,
	.pb-works__aside {
		position: static;
		max-block-size: none;
		overflow: visible;
		margin-block-start: 40px;
	}

}

/* --------------------------------------------------------------- *
 * Кнопка заказа в списках товаров
 * --------------------------------------------------------------- */

/* Кнопка наследует вид от темы (класс btn-color-primary) —
   здесь только раскладка иконки и текста. */
.pb-loop-order {
	inline-size: 100%;
	gap: 8px;
}

.pb-loop-order .btn-icon {
	display: inline-flex;
	align-items: center;
}

.pb-loop-order .btn-icon svg {
	display: block;
}

/* Заказ и опросный лист стоят рядом. */
@media (max-width: 575px) {

	.single-product form.cart > .awooc-custom-order-button,
	.single-product form.cart > .prombaki-questionnaire-btn {
		flex: 1 1 100%;
	}
}



/* --------------------------------------------------------------- *
 * Переключатель объёма в карточке товара
 * --------------------------------------------------------------- */

/* Родной переключатель темы работал только на паре товаров — свой ставим вместо него. */
.wd-swatches-product {
	display: none;
}

.pb-volumes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	margin-block: 4px 22px;
}

.pb-volumes__label {
	font-size: 14px;
	color: var(--pb-muted, #8d8d8d);
}

.pb-volumes__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pb-volumes__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: 56px;
	min-block-size: 36px;
	padding: 0 12px;
	border: 1px solid var(--pb-line, #e4e9e8);
	border-radius: 0;
	background: #fff;
	font-size: 14px;
	line-height: 1;
	color: var(--pb-dark, #141c1a);
	text-decoration: none;
	transition: border-color .2s ease, color .2s ease, background .2s ease;
}

.pb-volumes__item:hover,
.pb-volumes__item:focus-visible {
	border-color: var(--pb-accent, #007cd6);
	color: var(--pb-accent, #007cd6);
	text-decoration: none;
}

.pb-volumes__item.is-active {
	border-color: var(--pb-accent, #007cd6);
	background: var(--pb-accent, #007cd6);
	color: #fff;
	cursor: default;
}


/* --------------------------------------------------------------- *
 * Карточка товара: шапка во всю ширину контента
 * --------------------------------------------------------------- */

@media (min-width: 1025px) {

	/* Тема кладёт «галерею + название и цену» в сетку и резервирует
	   пустую вторую колонку. Сетка тут не нужна — блок занимает всю ширину. */
	.single-product .product-image-summary-wrap {
		display: block;
	}

	.single-product .product-image-summary {
		inline-size: 100%;
		max-inline-size: none;
	}
}

/* --------------------------------------------------------------- *
 * Меню: выпадашка каталога
 * --------------------------------------------------------------- */

.wd-nav-main .wd-dropdown-menu,
.wd-nav-main .sub-menu {
	min-inline-size: 320px;
}

.wd-nav-main .wd-dropdown-menu .sub-menu,
.wd-nav-main .sub-menu .sub-menu {
	min-inline-size: 300px;
}

.wd-nav-main .wd-dropdown-menu a,
.wd-nav-main .sub-menu a {
	white-space: normal;
}

/* --------------------------------------------------------------- *
 * Таблицы габаритов: один вид в карточках товаров и в категориях
 * --------------------------------------------------------------- */

.pb-spec {
	margin-block: 30px;
}

.pb-spec__title {
	margin: 0 0 14px;
	font-size: 18px;
	line-height: 1.3;
	font-weight: 600;
	color: var(--wd-title-color, #141c1a);
}

/* Широкая таблица прокручивается сама, страница вбок не едет. */
.pb-spec__scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.pb-spec__table {
	inline-size: 100%;
	min-inline-size: 420px;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.45;
	font-variant-numeric: tabular-nums;
}

.pb-spec__table th,
.pb-spec__table td {
	padding: 11px 14px;
	border: 1px solid #e2e7ec;
	text-align: start;
	vertical-align: middle;
}

.pb-spec__table th {
	background: var(--wd-primary-color, #007cd6);
	border-color: var(--wd-primary-color, #007cd6);
	color: #fff;
	font-weight: 600;
	font-size: 13px;
}

.pb-spec__table tbody tr:nth-child(even) td {
	background: #f5f7f9;
}

.pb-spec__table a {
	color: var(--wd-primary-color, #007cd6);
	text-decoration: none;
}

.pb-spec__table a:hover {
	text-decoration: underline;
}

/* Таблица «параметр — значение»: первый столбец узкий и приглушённый. */
.pb-spec--pairs .pb-spec__table {
	min-inline-size: 0;
}

.pb-spec--pairs .pb-spec__table td:first-child {
	inline-size: 55%;
	color: #5d6b78;
}

.pb-spec--pairs .pb-spec__table td:last-child {
	font-weight: 600;
}

@media (max-width: 575px) {

	.pb-spec__table th,
	.pb-spec__table td {
		padding: 9px 11px;
	}

	.pb-spec__title {
		font-size: 16px;
	}
}

/* --------------------------------------------------------------- *
 * Картинки внутри описаний категорий и товаров
 * --------------------------------------------------------------- */

.pb-figs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin-block: 30px;
}

.pb-figs .pb-figure {
	position: relative;
	margin: 0;
	overflow: hidden;
	border: 1px solid #e2e7ec;
	background: #f5f7f9;
}

.pb-figs .pb-figure__img {
	display: block;
	inline-size: 100%;
	block-size: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border: 0;
	background: none;
	transition: transform .35s ease;
}

.pb-figs .pb-figure:hover .pb-figure__img,
.pb-figs .pb-figure:focus-within .pb-figure__img {
	transform: scale(1.05);
}

/* Одиночная картинка не должна занимать треть строки и теряться */
.pb-figs .pb-figure:only-child {
	grid-column: span 2;
}

@media (prefers-reduced-motion: reduce) {

	.pb-figs .pb-figure__img {
		transition: none;
	}

	.pb-figs .pb-figure:hover .pb-figure__img {
		transform: none;
	}
}

@media (max-width: 1024px) {

	.pb-figs {
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
	}
}

@media (max-width: 575px) {

	.pb-figs {
		gap: 10px;
		margin-block: 22px;
	}

	.pb-figs .pb-figure:only-child {
		grid-column: span 2;
	}
}

/* Шапка категории: сначала хлебные крошки, потом H1, потом описание */
.tax-product_cat .wd-el-breadcrumbs {
	order: 1;
	margin-block-end: 6px;
}

.tax-product_cat .wd-woo-page-title {
	order: 2;
}

/* --------------------------------------------------------------- *
 * Лайтбокс Elementor: нижняя панель не нужна
 * --------------------------------------------------------------- */

.elementor-slideshow__footer,
.elementor-lightbox .elementor-slideshow__footer {
	display: none !important;
}

/* --------------------------------------------------------------- *
 * Быстрый просмотр в листингах отключён — у нас кнопка «Заказать»
 * --------------------------------------------------------------- */

.wd-quick-view-btn,
.quick-view-btn,
.wd-buttons .wd-action-btn.wd-quick-view-btn {
	display: none !important;
}

/* --------------------------------------------------------------- *
 * Кнопки заказа в карточке — одна строка
 * --------------------------------------------------------------- */

.pb-order-row {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	margin-block: 22px;
}

.pb-order-row > .btn,
.pb-order-row > a,
.pb-order-row > button {
	flex: 1 1 220px;
	margin: 0;
	justify-content: center;
}

/* --------------------------------------------------------------- *
 * Вводный текст категории под заголовком
 * --------------------------------------------------------------- */

.pb-cat-top {
	margin-block: 10px 4px;
	max-inline-size: none;
	color: #222;
	font-size: 16px;
	line-height: 1.65;
}

.pb-cat-top > *:first-child { margin-block-start: 0; }
.pb-cat-top > *:last-child { margin-block-end: 0; }

.pb-cat-top p { margin-block: 0 12px; }

@media (max-width: 767px) {

	.pb-cat-top {
		font-size: 15px;
		line-height: 1.6;
	}
}

/* --------------------------------------------------------------- *
 * Листинг товаров: категория в карточке не нужна
 * (на странице товара она остаётся в .product_meta)
 * --------------------------------------------------------------- */

.wd-product .wd-product-cats,
.wd-product .wd-loop-prod-meta.wd-product-cats {
	display: none !important;
}

/* --------------------------------------------------------------- *
 * Таблицы в блоках категории: цены, габариты и таблицы внутри текста.
 * Вид тот же, что у .pb-spec__table на карточке товара.
 * --------------------------------------------------------------- */

.pb-category-bottom .pb-cat-specs {
	margin-block: clamp(32px, 5vw, 56px);
}

.pb-cat-specs > .pb-section__title {
	margin-block-end: 18px;
}

.pb-cat-specs table,
.pb-category-bottom .pb-prose table {
	inline-size: 100%;
	border-collapse: collapse;
	margin-block: 20px;
	font-size: 14px;
	line-height: 1.45;
	font-variant-numeric: tabular-nums;
	background: #fff;
}

.pb-cat-specs table th,
.pb-cat-specs table td,
.pb-category-bottom .pb-prose table th,
.pb-category-bottom .pb-prose table td {
	padding: 11px 14px;
	border: 1px solid #e2e7ec;
	text-align: start;
	vertical-align: middle;
}

.pb-cat-specs table th,
.pb-category-bottom .pb-prose table th {
	background: var(--wd-primary-color, #007cd6);
	border-color: var(--wd-primary-color, #007cd6);
	color: #fff;
	font-weight: 600;
	font-size: 13px;
	position: sticky;
	inset-block-start: 0;
	z-index: 1;
}

.pb-cat-specs table tbody tr:nth-child(even) td,
.pb-category-bottom .pb-prose table tbody tr:nth-child(even) td {
	background: #f5f7f9;
}

.pb-cat-specs table a,
.pb-category-bottom .pb-prose table a {
	color: var(--wd-primary-color, #007cd6);
	text-decoration: none;
}

.pb-cat-specs table a:hover,
.pb-category-bottom .pb-prose table a:hover {
	text-decoration: underline;
}

/* На узких экранах таблица прокручивается внутри себя. */
@media (max-width: 767px) {
	.pb-cat-specs table,
	.pb-category-bottom .pb-prose table {
		display: block;
		overflow-x: auto;
		white-space: nowrap;
		-webkit-overflow-scrolling: touch;
	}

	.pb-cat-specs table th {
		position: static;
	}
}

/* Блок меню каталога — в цвете выпадающего меню шапки. */
.pb-aside-box.pb-cat-tree,
.pb-aside-box.pb-cat-cloud,
.pb-cat-cloud {
	background: var(--pb-surface, #f0f2f5);
}
