/**
 * Shop / product-category archive. Reuses the page-hero shell (page-shell.css)
 * and the same card language established by the homepage Shop Preview
 * section (shop-preview.css) so the real catalog matches the already
 * approved visual system exactly.
 */

.u3ds-shop__categories.wc-block-product-categories {
	margin-bottom: var(--wp--preset--spacing--2-xl);
}

.wc-block-product-categories-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--s);
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: none;
}

.wc-block-product-categories-list-item {
	margin: 0;
}

.wc-block-product-categories-list-item a {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--2-xs);
	padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--l);
	background-color: var(--wp--preset--color--surface-elevated);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	color: var(--wp--preset--color--text-primary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
	transition: border-color 200ms ease, background-color 200ms ease;
}

.wc-block-product-categories-list-item a:hover,
.wc-block-product-categories-list-item a:focus-visible {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--text-primary);
}

.wc-block-product-categories-list-item-count {
	color: var(--wp--preset--color--text-secondary);
	font-weight: 400;
}

/* Product grid — Product Collection block wrapper. */
.u3ds-shop__grid.wp-block-woocommerce-product-collection ul.wc-block-product-template,
.u3ds-shop__grid .wc-block-product-template {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--l);
	list-style: none;
	margin: 0;
	padding: 0;
}

.u3ds-product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background-color: var(--wp--preset--color--bg-secondary);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--surface);
	padding: var(--wp--preset--spacing--m);
	transition: border-color 200ms ease, transform 200ms ease, box-shadow 200ms ease;
}

.u3ds-product-card:hover,
.u3ds-product-card:focus-within {
	border-color: var(--wp--preset--color--accent);
	transform: translateY(-2px);
	box-shadow: var(--wp--custom--shadow--md);
}

.u3ds-product-card__media.wp-block-woocommerce-product-image {
	aspect-ratio: 1 / 1;
	background-color: var(--wp--preset--color--bg-primary);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--button);
	overflow: hidden;
	margin: 0 0 var(--wp--preset--spacing--m);
}

.u3ds-product-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.u3ds-product-card .u3ds-wishlist-heart--compact {
	position: absolute;
	top: calc(var(--wp--preset--spacing--m) + 12px);
	right: calc(var(--wp--preset--spacing--m) + 12px);
	z-index: 1;
}

.u3ds-product-card__title {
	margin: 0 0 var(--wp--preset--spacing--2-xs) !important;
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 700 !important;
}

.u3ds-product-card__title a {
	color: var(--wp--preset--color--text-primary);
	text-decoration: none;
}

.u3ds-product-card .u3ds-rating-summary {
	margin: 0 0 var(--wp--preset--spacing--2-xs);
}

.u3ds-product-card .u3ds-rating-summary__text {
	font-size: 0.75rem;
}

.u3ds-product-card__price {
	margin: 0 0 var(--wp--preset--spacing--m) !important;
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--small) !important;
}

.u3ds-product-card__button {
	margin-top: auto;
}

.u3ds-product-card__button .wp-block-woocommerce-product-button a,
.u3ds-product-card__button a.button {
	width: 100%;
}

.u3ds-shop__pagination {
	margin-top: var(--wp--preset--spacing--3-xl);
	gap: var(--wp--preset--spacing--s);
}

.u3ds-shop__pagination a,
.u3ds-shop__pagination span {
	color: var(--wp--preset--color--text-secondary);
}

.u3ds-shop__pagination .wp-block-query-pagination-numbers a.current {
	color: var(--wp--preset--color--accent);
}

.u3ds-shop__empty {
	color: var(--wp--preset--color--text-secondary);
	text-align: center;
	padding: var(--wp--preset--spacing--3-xl) 0;
}

@media (max-width: 1024px) {
	.u3ds-shop__grid.wp-block-woocommerce-product-collection ul.wc-block-product-template,
	.u3ds-shop__grid .wc-block-product-template {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.u3ds-shop__grid.wp-block-woocommerce-product-collection ul.wc-block-product-template,
	.u3ds-shop__grid .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--wp--preset--spacing--m);
	}
}

@media (max-width: 480px) {
	.u3ds-shop__grid.wp-block-woocommerce-product-collection ul.wc-block-product-template,
	.u3ds-shop__grid .wc-block-product-template {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.u3ds-product-card {
		transition: none;
	}
}
