/**
 * Catalog / shop archive — layout and scoped component styles.
 * Loaded on is_shop() and is_product_taxonomy() pages only.
 */

/* —— Main wrapper —— */

.newgen-shop {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--layout-max);
	margin-inline: auto;
	padding-block: var(--space-10);
	padding-inline: var(--space-4);
	background: var(--color-background);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: var(--leading-body);
}

@media (min-width: 768px) {
	.newgen-shop {
		padding-block: var(--space-12);
		padding-inline: var(--space-6);
	}
}

@media (min-width: 1320px) {
	.newgen-shop {
		padding-inline: 0;
	}
}

/* —— Archive header (eyebrow rendered by newgen_theme_render_catalog_archive_header) —— */

.newgen-catalog-header {
	margin-bottom: var(--space-8);
}

.newgen-catalog-header__eyebrow {
	margin: 0 0 var(--space-3);
	font-family: var(--font-body);
	font-size: var(--text-xs);
	font-weight: var(--font-weight-medium);
	line-height: var(--leading-snug);
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
	color: var(--color-text-secondary);
}

.newgen-catalog-header__title {
	margin: 0 0 var(--space-3);
	font-family: var(--font-display);
	font-size: clamp(var(--text-xl), 3vw, var(--text-2xl));
	font-weight: var(--font-weight-semibold);
	line-height: var(--leading-snug);
	letter-spacing: var(--tracking-h1);
	color: var(--color-text);
}

.newgen-catalog-header__lede {
	margin: 0;
	max-width: 52ch;
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-weight: var(--font-weight-regular);
	line-height: var(--leading-body);
	color: var(--color-text-secondary);
}

/* —— Toolbar: result count + sort —— */

.woocommerce-products-header {
	display: none;
}

.woocommerce-result-count,
.woocommerce-ordering {
	margin: 0;
}

.woocommerce-result-count {
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
}

.woocommerce-ordering select {
	box-sizing: border-box;
	padding: var(--space-2) var(--space-3);
	border: 0.5px solid var(--color-border-card);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-regular);
	color: var(--color-text);
	cursor: pointer;
	transition: border-color var(--duration-ui) var(--ease-ui);
}

.woocommerce-ordering select:focus-visible {
	outline: var(--focus-ring);
	outline-offset: var(--focus-offset);
}

/* WooCommerce wraps count + sort in a common div — override floats */

.woocommerce-notices-wrapper {
	width: 100%;
}

/* Reset WooCommerce layout floats */

.newgen-shop::after,
.woocommerce-products-header::after {
	content: "";
	display: table;
	clear: both;
}

/* Toolbar row */

.newgen-shop > .woocommerce-result-count,
.newgen-shop > .woocommerce-ordering {
	float: none;
	display: inline-flex;
	align-items: center;
}

.newgen-shop > .woocommerce-result-count {
	margin-bottom: var(--space-2);
}

/* Use a flex row to keep count + sort side by side */

.newgen-shop {
	display: flex;
	flex-direction: column;
}

.newgen-shop > .woocommerce-result-count,
.newgen-shop > .woocommerce-ordering {
	align-self: flex-start;
}

/* Override: put result-count and ordering on one toolbar row */

.newgen-shop > .woocommerce-result-count {
	order: 2;
}

.newgen-shop > .woocommerce-ordering {
	order: 3;
	align-self: flex-end;
	margin-top: calc(-1 * var(--space-8));
	margin-bottom: var(--space-6);
}

.newgen-shop > .newgen-catalog-header {
	order: 1;
}

.newgen-shop > .woocommerce-notices-wrapper {
	order: 0;
}

.newgen-shop > ul.products {
	order: 4;
}

.newgen-shop > nav.woocommerce-pagination {
	order: 5;
}

/* —— Product grid — override WooCommerce default columns —— */

.newgen-shop ul.products::before,
.newgen-shop ul.products::after {
	content: none !important;
	display: none !important;
}

ul.products {
	list-style: none;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4) !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	float: none !important;
	clear: both;
}

@media (min-width: 768px) {
	ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--space-6) !important;
	}
}

@media (min-width: 1024px) {
	ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: var(--space-8) !important;
	}
}

/* —— Product list item —— */

li.newgen-shop__product {
	display: flex;
	min-width: 0;
}

li.newgen-shop__product > .home-featured-product-card {
	flex: 1 1 auto;
	width: 100%;
}

/* Remove WooCommerce column width floats */

li.newgen-shop__product,
ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	clear: none !important;
}

/* —— Pagination —— */

.woocommerce-pagination {
	margin-top: var(--space-10);
	text-align: center;
}

.woocommerce-pagination ul.page-numbers {
	list-style: none;
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
}

.woocommerce-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	height: 2.25rem;
	padding-inline: var(--space-2);
	border: 0.5px solid var(--color-border-card);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-medium);
	line-height: 1;
	color: var(--color-text);
	text-decoration: none;
	transition:
		background-color var(--duration-ui) var(--ease-ui),
		border-color var(--duration-ui) var(--ease-ui),
		color var(--duration-ui) var(--ease-ui);
}

.woocommerce-pagination .page-numbers:hover {
	border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border-card));
	background: var(--color-background-muted);
}

.woocommerce-pagination .page-numbers.current {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-on-primary);
}

.woocommerce-pagination .page-numbers.dots {
	border-color: transparent;
	background: transparent;
}

/* —— No products found —— */

.woocommerce-no-products-found {
	padding-block: var(--space-16);
	text-align: center;
	color: var(--color-text-secondary);
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce-ordering select,
	.woocommerce-pagination .page-numbers {
		transition: none;
	}
}
