/**
 * NUDALURE product cards — the single shared storefront component.
 * Grids and carousels own their columns; every card shares this presentation.
 * !important is limited to properties also declared by Shoptimizer/CommerceKit
 * and the homepage sections plugin. No route-specific card skins remain here.
 */

/* Native grids outside the homepage plugin and product-page carousels.
 * Those two containers retain their existing responsive column/scroll layout. */
body.theme-shoptimizer ul.products:where(:not(.nuda-home-products *, .related-wrapper *)),
body.theme-shoptimizer ul.wc-block-grid__products {
	display: grid !important;
	grid-template-columns: repeat(var(--nuda-product-columns, 4), minmax(0, 1fr));
	gap: 24px;
}

body.theme-shoptimizer ul.products.columns-1 { --nuda-product-columns: 1; --nuda-product-tablet-columns: 1; --nuda-product-mobile-columns: 1; }
body.theme-shoptimizer ul.products.columns-2 { --nuda-product-columns: 2; --nuda-product-tablet-columns: 2; }
body.theme-shoptimizer ul.products.columns-3 { --nuda-product-columns: 3; }
body.theme-shoptimizer ul.products.columns-5 { --nuda-product-columns: 5; }
body.theme-shoptimizer ul.products.columns-6 { --nuda-product-columns: 6; }
body.theme-shoptimizer .wc-block-grid.has-1-columns { --nuda-product-columns: 1; --nuda-product-tablet-columns: 1; --nuda-product-mobile-columns: 1; }
body.theme-shoptimizer .wc-block-grid.has-2-columns { --nuda-product-columns: 2; --nuda-product-tablet-columns: 2; }
body.theme-shoptimizer .wc-block-grid.has-3-columns { --nuda-product-columns: 3; }
body.theme-shoptimizer .wc-block-grid.has-5-columns { --nuda-product-columns: 5; }
body.theme-shoptimizer .wc-block-grid.has-6-columns { --nuda-product-columns: 6; }

body.theme-shoptimizer ul.products:where(:not(.nuda-home-products *, .related-wrapper *)) > li.product:not(.product-category):not(.cg-grid-feature),
body.theme-shoptimizer ul.wc-block-grid__products > li.product {
	width: auto !important;
	max-width: none;
	margin: 0 !important;
}

body.theme-shoptimizer ul.products:where(:not(.nuda-home-products *, .related-wrapper *))::before,
body.theme-shoptimizer ul.products:where(:not(.nuda-home-products *, .related-wrapper *))::after {
	display: none !important;
}

@media (max-width: 1024px) {
	body.theme-shoptimizer ul.products:where(:not(.nuda-home-products *, .related-wrapper *)),
	body.theme-shoptimizer ul.wc-block-grid__products {
		grid-template-columns: repeat(var(--nuda-product-tablet-columns, 3), minmax(0, 1fr));
		gap: 20px;
	}
}

@media (max-width: 767px) {
	body.theme-shoptimizer ul.products:where(:not(.nuda-home-products *, .related-wrapper *)),
	body.theme-shoptimizer ul.wc-block-grid__products {
		grid-template-columns: repeat(var(--nuda-product-mobile-columns, 2), minmax(0, 1fr));
		gap: 10px;
	}
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) {
	align-items: stretch !important;
	grid-auto-rows: 1fr;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) {
	--nuda-card-radius: clamp(20px, 2vw, 28px);
	--nuda-card-image-inset: clamp(6px, 0.6vw, 8px);
	--nuda-card-inner-radius: calc(var(--nuda-card-radius) - var(--nuda-card-image-inset) - 1px);
	--nuda-card-text-inset: 21px;
	--nuda-card-brand-space: 40px;
	position: relative;
	isolation: isolate;
	float: none !important;
	display: flex !important;
	flex-direction: column;
	align-self: stretch !important;
	height: auto !important;
	min-width: 0;
	min-height: 0;
	margin-block: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	color: #f4ebdd;
	background: var(--nuda-glass-background) !important;
	border: var(--nuda-glass-border) !important;
	border-radius: var(--nuda-card-radius) !important;
	box-shadow: var(--nuda-glass-shadow) !important;
	-webkit-backdrop-filter: var(--nuda-glass-filter);
	backdrop-filter: var(--nuda-glass-filter);
	cursor: pointer;
	transition: border-color 180ms ease;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature)::before,
body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature)::after,
body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-loop-product__title a::after {
	display: none !important;
	content: none !important;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) :is(
	.woocommerce-card__header,
	.woocommerce-card__content,
	.product-content,
	.product-details,
	.product-inner,
	.product-transition
) {
	position: relative !important;
	inset: auto !important;
	display: flex !important;
	flex: 1 1 auto;
	flex-direction: column;
	box-sizing: border-box;
	width: 100%;
	height: auto !important;
	min-width: 0;
	min-height: 0;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	opacity: 1 !important;
	visibility: visible !important;
	background: transparent !important;
	transform: none !important;
	transition: none !important;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-image__wrapper {
	position: relative;
	flex: 0 0 auto;
	box-sizing: border-box;
	width: calc(100% - 2 * var(--nuda-card-image-inset)) !important;
	height: auto !important;
	aspect-ratio: 442 / 403;
	margin: var(--nuda-card-image-inset) var(--nuda-card-image-inset) 0 !important;
	padding: 0 !important;
	overflow: hidden;
	border-radius: var(--nuda-card-inner-radius) !important;
	transform: none !important;
	transition: none !important;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-image__wrapper :is(
	.woocommerce-LoopProduct-link,
	.woocommerce-loop-product__link,
	.shoptimizer-plp-carousel-container,
	.shoptimizer-plp-image-wrapper
) {
	display: block;
	width: 100% !important;
	height: 100% !important;
	min-width: 0;
	aspect-ratio: auto;
	background: transparent !important;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-image__wrapper img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: auto !important;
	margin: 0 !important;
	object-fit: cover;
	background: var(--nuda-charcoal);
	border: 0 !important;
	border-radius: var(--nuda-card-inner-radius) !important;
	transform: none !important;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .product__brand {
	box-sizing: content-box;
	flex: 0 0 auto;
	height: 1.4em;
	margin: 0 !important;
	padding: 18px var(--nuda-card-text-inset) 8px !important;
	overflow: hidden;
	color: var(--nuda-gold) !important;
	font-size: 10px !important;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.12em;
	text-align: left;
	text-overflow: ellipsis;
	text-transform: uppercase;
	white-space: nowrap;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .product__brand a {
	color: inherit !important;
	text-decoration: none;
}

/* Normal greedy wrapping fills each line before moving a word to the next.
 * Apply it to the link too: inherited balanced headings must not shorten lines.
 * The clamp's padding is horizontal only, including in Safari. */
body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-loop-product__title {
	box-sizing: content-box;
	display: -webkit-box !important;
	flex: 0 0 auto;
	width: auto !important;
	min-width: 0;
	max-width: none !important;
	height: 2.6em;
	min-height: 2.6em;
	max-height: 2.6em;
	margin: 0 !important;
	padding: 0 var(--nuda-card-text-inset) !important;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	color: #f4ebdd !important;
	font-size: clamp(19px, 1.45vw, 23px) !important;
	font-weight: 400 !important;
	line-height: 1.3 !important;
	letter-spacing: -0.012em;
	text-align: left;
	text-transform: none;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) :is(.woocommerce-loop-product__title, .woocommerce-loop-product__title a) {
	white-space: normal !important;
	text-wrap: wrap !important;
	word-break: normal;
	overflow-wrap: anywhere;
	hyphens: manual;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-card__header > .woocommerce-loop-product__title:first-child {
	margin-top: var(--nuda-card-brand-space) !important;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-loop-product__title a {
	display: inline !important;
	color: inherit !important;
	font: inherit !important;
	text-decoration: none;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .nudalure-product-card__footer {
	order: 3;
	box-sizing: border-box;
	width: 100%;
	margin-top: auto;
	padding: 12px var(--nuda-card-text-inset) 16px;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .cgkit-as-variation-price {
	min-width: 0;
	margin: 0 !important;
	text-align: left;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .price {
	position: static !important;
	box-sizing: border-box;
	display: block;
	width: auto !important;
	min-width: 0;
	min-height: 0;
	margin: 0 !important;
	padding: 0 !important;
	color: #d8c7a3 !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 1.3;
	text-align: left;
	white-space: normal;
	transform: none !important;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .price :is(.amount, ins) {
	white-space: nowrap;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .price ins {
	display: block !important;
	background: transparent;
	text-decoration: none;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .price del {
	display: block !important;
	margin: 0 0 3px;
	color: #a99d8f !important;
	font-size: 0.8em;
	line-height: 1.2;
	opacity: 1;
}

body.theme-shoptimizer .nudalure-product-card__from {
	color: #a99d8f;
	font-size: 0.8em;
	font-weight: 400;
}

/* The existing CommerceKit control, moved by the shared storefront runtime. */

/* Keep badges; omit the native sale bubble, ratings, excerpts and swatches. */
body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) :is(
	.star-rating,
	.shoptimizer_ratingContainer,
	.product-out-of-stock,
	.sale-item.product-label,
	.onsale,
	.cgkit-as-wrap-plp,
	.woocommerce-product-details__short-description,
	.product-excerpt,
	a.added_to_cart.wc-forward
),
body.theme-shoptimizer .wc-block-grid__product-add-to-cart,
body.theme-shoptimizer .onsale {
	display: none !important;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-image__wrapper .ckit-badge_wrapper:not(.ckit-badge-summary) {
	position: absolute;
	top: 10px;
	left: 10px;
	right: auto;
	bottom: auto;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 5px;
	max-width: calc(100% - 20px);
	margin: 0;
}

body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-image__wrapper .ckit-badge_wrapper:not(.ckit-badge-summary) > .ckit-badge {
	display: block;
	box-sizing: border-box;
	max-width: 100%;
	margin: 0;
}

@media (hover: hover) and (pointer: fine) {
	body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature):is(:hover, :focus-within) {
		border-color: rgb(228 219 203 / 24%) !important;
		transform: none !important;
	}
}

@media (max-width: 767px) {
	body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) {
		--nuda-card-text-inset: 11px;
		--nuda-card-brand-space: 30.6px;
	}

	body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .product__brand {
		padding: 13px var(--nuda-card-text-inset) 5px !important;
		font-size: 9px !important;
		letter-spacing: 0.065em;
	}

	body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-loop-product__title {
		font-size: 15px !important;
	}

	body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .price {
		font-size: 15px !important;
	}
}

@media (max-width: 380px) {
	body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) .woocommerce-loop-product__title {
		font-size: 14px !important;
	}
}


@media (prefers-reduced-motion: reduce) {
	body.theme-shoptimizer :is(ul.products, ul.wc-block-grid__products) > li.product:not(.product-category):not(.cg-grid-feature) {
		transition: none;
	}
}
