.pdm-category-composition {
	clear: both;
}

/* Explicit top spacing replaces Astra's archive-main top padding only while a
 * validated, enabled category composition is active. The wrapper owns the
 * configured spacing, so it is applied once; inherited mode keeps Astra. */
body.pdm-composition-top-spacing-explicit main#main.site-main {
	padding-top: 0 !important;
}

.pdm-category-composition::after {
	clear: both;
	content: "";
	display: table;
}

/* Scoped to the native main-loop UL marked by the valid composition. */
ul.products.pdm-category-catalog-custom {
	display: grid !important;
	grid-template-columns: repeat(var(--pdm-cat-cols-desktop, 3), minmax(0, 1fr)) !important;
	column-gap: var(--pdm-cat-gap-h-desktop, 28px) !important;
	row-gap: var(--pdm-cat-gap-v-desktop, 40px) !important;
	margin: 0 !important;
}
ul.products.pdm-category-catalog-custom::before,
ul.products.pdm-category-catalog-custom::after { display: none !important; content: none !important; }
ul.products.pdm-category-catalog-custom > li.product {
	box-sizing: border-box;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: var(--pdm-cat-card-padding-desktop, 18px 16px 22px) !important;
	background: var(--pdm-cat-card-bg, #fff) !important;
	border: var(--pdm-cat-card-border-width, 1px) solid var(--pdm-cat-card-border, #e2e8f0) !important;
	border-radius: var(--pdm-cat-card-radius-desktop, 14px) !important;
	box-shadow: var(--pdm-cat-shadow, 0 4px 16px rgba(15,23,42,.06)) !important;
	display: flex !important;
	flex-direction: column;
}
ul.products.pdm-category-catalog-custom > li.product a.woocommerce-LoopProduct-link { display: flex; flex: 1 0 auto; flex-direction: column; width: 100%; }
ul.products.pdm-category-catalog-custom > li.product img.attachment-woocommerce_thumbnail,
ul.products.pdm-category-catalog-custom > li.product img.woocommerce-placeholder,
ul.products.pdm-category-catalog-custom > li.product img.wp-post-image { box-sizing: border-box; width: 100%; aspect-ratio: var(--pdm-cat-image-ratio, 1 / 1); object-fit: var(--pdm-cat-image-fit, contain); background: var(--pdm-cat-image-bg, #fff); border-radius: var(--pdm-cat-image-radius, 10px); margin-bottom: var(--pdm-cat-image-gap, 18px) !important; }
ul.products.pdm-category-catalog-custom > li.product .woocommerce-loop-product__title { height: auto !important; max-height: none !important; overflow: visible !important; white-space: normal !important; }
ul.products.pdm-category-catalog-custom > li.product img.attachment-woocommerce_thumbnail,
ul.products.pdm-category-catalog-custom > li.product img.woocommerce-placeholder,
ul.products.pdm-category-catalog-custom > li.product img.wp-post-image { aspect-ratio: var(--pdm-cat-image-ratio, auto); object-fit: var(--pdm-cat-image-fit, fill); background: var(--pdm-cat-image-bg, transparent); }
ul.products.pdm-category-catalog-custom > li.product .price { margin-top: auto !important; }
ul.products.pdm-category-catalog-custom > li.product .button { align-self: flex-start; }
@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
	ul.products.pdm-category-catalog-custom[data-pdm-cat-hover="1"] > li.product { transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
	ul.products.pdm-category-catalog-custom[data-pdm-cat-hover="1"] > li.product:hover { transform: translateY(-3px); border-color: #cbd5e1 !important; box-shadow: 0 10px 26px rgba(15,23,42,.11) !important; }
}
@media (min-width: 768px) and (max-width: 1023px) {
	ul.products.pdm-category-catalog-custom { grid-template-columns: repeat(var(--pdm-cat-cols-tablet, 2), minmax(0, 1fr)) !important; column-gap: var(--pdm-cat-gap-h-tablet, 18px) !important; row-gap: var(--pdm-cat-gap-v-tablet, 32px) !important; }
}
@media (max-width: 767px) {
	ul.products.pdm-category-catalog-custom { grid-template-columns: repeat(var(--pdm-cat-cols-mobile, 2), minmax(0, 1fr)) !important; column-gap: var(--pdm-cat-gap-h-mobile, 12px) !important; row-gap: var(--pdm-cat-gap-v-mobile, 34px) !important; }
	ul.products.pdm-category-catalog-custom > li.product { padding: var(--pdm-cat-card-padding-mobile, 10px 8px 16px) !important; border-radius: var(--pdm-cat-card-radius-mobile, 10px) !important; }
}
@media (prefers-reduced-motion: reduce) {
	ul.products.pdm-category-catalog-custom > li.product { transition: none !important; transform: none !important; }
}
