/*
 * Deuton-X UI 0.8.6
 * One shared product-card system for Shop, empty-cart recommendations,
 * related products and future WooCommerce up-sells.
 */

.deuton-x-design-v2 {
	--dx-product-card-background: linear-gradient(155deg, #edf8f1, #f5eee5);
	--dx-product-card-border: #c9ddcf;
	--dx-product-card-radius: 16px;
	--dx-product-card-shadow: 0 9px 24px rgba(38, 63, 48, 0.08);
	--dx-product-card-media-background: #f7f6f0;
	--dx-product-card-gap: 18px;
	--dx-product-card-max-width: 330px;
}

/* Shared visual shell. The page-specific markup stays intact. */
.deuton-x-design-v2 :is(
	.deuton-x-soot-info__card,
	.wp-block-woocommerce-empty-cart-block .wc-block-grid__product,
	.related.products ul.products li.product,
	.up-sells ul.products li.product
) {
	background: var(--dx-product-card-background) !important;
	border: 1px solid var(--dx-product-card-border) !important;
	border-radius: var(--dx-product-card-radius) !important;
	box-shadow: var(--dx-product-card-shadow) !important;
	box-sizing: border-box;
	overflow: hidden;
}

.deuton-x-design-v2 :is(
	.deuton-x-soot-info__media,
	.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image,
	.related.products ul.products li.product figure .ct-media-container,
	.up-sells ul.products li.product figure .ct-media-container
) {
	aspect-ratio: 1;
	background: var(--dx-product-card-media-background) !important;
	display: block;
	overflow: hidden;
	width: 100%;
}

.deuton-x-design-v2 :is(
	.deuton-x-soot-info__media,
	.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image,
	.related.products ul.products li.product figure .ct-media-container,
	.up-sells ul.products li.product figure .ct-media-container
) img {
	aspect-ratio: 1 !important;
	display: block;
	filter: none !important;
	height: 100% !important;
	margin: 0 !important;
	object-fit: cover;
	object-position: center !important;
	transform: none !important;
	width: 100% !important;
}

/* The same clear green action treatment is used in every card variant. */
.deuton-x-design-v2 :is(
	.deuton-x-soot-info__details,
	.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link,
	.related.products ul.products li.product .button,
	.up-sells ul.products li.product .button
) {
	align-items: center;
	background: linear-gradient(135deg, #0a8f3d, #087d32) !important;
	border: 0 !important;
	border-radius: 10px !important;
	color: #fff !important;
	display: inline-flex;
	font-size: 0.86rem;
	font-weight: 800;
	justify-content: center;
	line-height: 1.2;
	min-height: 46px;
	padding: 0.78rem 1.05rem;
	text-decoration: none !important;
}

.deuton-x-design-v2 :is(
	.deuton-x-soot-info__details,
	.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link,
	.related.products ul.products li.product .button,
	.up-sells ul.products li.product .button
):is(:hover, :focus-visible) {
	background: linear-gradient(135deg, #087d32, #055f28) !important;
	color: #fff !important;
}

/* WooCommerce related/up-sell cards use the same component at every width. */
body.deuton-x-design-v2.single-product :is(.related.products, .up-sells) {
	display: block !important;
	grid-column: 1 / -1;
	margin-top: clamp(1.5rem, 4vw, 2.5rem);
	width: 100%;
}

.deuton-x-design-v2.single-product :is(.related.products, .up-sells) > .ct-module-title {
	font-size: clamp(1.55rem, 3vw, 2.25rem);
	margin: 0 0 1.25rem;
	text-align: center;
}

.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products {
	display: grid !important;
	float: none;
	gap: var(--dx-product-card-gap) !important;
	grid-template-columns: repeat(auto-fit, minmax(0, var(--dx-product-card-max-width))) !important;
	justify-content: center;
	margin: 0 auto !important;
	max-width: calc((3 * var(--dx-product-card-max-width)) + (2 * var(--dx-product-card-gap)));
	width: 100%;
}

.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products::before,
.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products::after,
.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products li.product::after {
	display: none !important;
}

.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products li.product {
	display: flex;
	float: none !important;
	flex-direction: column;
	margin: 0 !important;
	max-width: var(--dx-product-card-max-width);
	min-height: 100%;
	padding: 0 0 19px !important;
	width: 100% !important;
}

.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products li.product figure {
	margin: 0 !important;
	overflow: hidden;
}

/* Keep the component clean while preserving the visible category metadata. */
.deuton-x-design-v2.single-product :is(.related.products, .up-sells) .deuton-x-catalog-label {
	display: none !important;
}

.deuton-x-design-v2.single-product :is(.related.products, .up-sells) .woocommerce-loop-product__title {
	font-size: 17px !important;
	line-height: 1.35;
	margin: 0;
	padding: 16px 17px 7px !important;
}

.deuton-x-design-v2.single-product :is(.related.products, .up-sells) .entry-meta {
	color: #526c72;
	font-size: 0.82rem;
	margin: 0 0 12px;
	padding: 0 17px !important;
}

.deuton-x-design-v2.single-product :is(.related.products, .up-sells) .ct-woo-card-actions {
	margin-top: auto;
	padding: 0 17px !important;
}

.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products li.product .button {
	margin: 0 !important;
	min-width: 0 !important;
}

@media (min-width: 651px) and (max-width: 850px) {
	.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		max-width: calc(100vw - 140px);
	}

	.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products:has(> li.product:only-child) {
		grid-template-columns: clamp(274px, calc((100vw - 158px) / 2), 330px) !important;
	}
}

@media (max-width: 650px) {
	.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products {
		grid-template-columns: minmax(0, 1fr) !important;
		max-width: min(430px, calc(100vw - 116px));
	}

	.deuton-x-design-v2.single-product :is(.related.products, .up-sells) ul.products li.product {
		max-width: none;
	}
}
