/**
 * product-archive.css
 * -------------------
 * Shop / category / search catalog: header, toolbar, filters, grid, pagination.
 */

/* ==========================================================================
   Page shell
   ========================================================================== */

.wrb-product-archive {
	width: min(100%, var(--wrb-container-width));
	margin-inline: auto;
}

.wrb-catalog-breadcrumb {
	margin-bottom: var(--wrb-spacing-md);
}

/* ==========================================================================
   Archive header (title, description, optional banner)
   ========================================================================== */

.wrb-archive-header {
	display: grid;
	gap: var(--wrb-spacing-sm);
	margin-bottom: var(--wrb-spacing-lg);
}

.wrb-archive-header__banner:empty {
	display: none;
}

.wrb-archive-header__banner:not(:empty) {
	margin-bottom: var(--wrb-spacing-md);
	overflow: hidden;
	border-radius: var(--wrb-radius-md);
}

.wrb-archive-header__title {
	margin: 0;
}

.wrb-archive-header__description {
	max-width: 48rem;
	color: var(--wrb-color-muted);
}

/* ==========================================================================
   Catalog toolbar
   ========================================================================== */

.wrb-catalog-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wrb-spacing-sm);
	width: 100%;
	margin-bottom: var(--wrb-spacing-md);
	padding-bottom: var(--wrb-spacing-sm);
	border-bottom: 1px solid var(--wrb-color-border);
}

.wrb-catalog-toolbar__left,
.wrb-catalog-toolbar__right {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wrb-spacing-sm);
}

/* Mobile filter entry — shown in responsive.css */
.wrb-catalog-toolbar__filters-trigger {
	display: none;
}

.wrb-catalog-toolbar__columns:empty {
	display: none;
}

.wrb-catalog-toolbar__columns:not(:empty) {
	display: flex;
	gap: 0.25rem;
	min-height: 2rem;
}

/* ==========================================================================
   Filters + main layout
   Desktop: CSS grid on our semantic class (avoids fighting column flex-basis).
   ========================================================================== */

.wrb-catalog-layout.wp-block-columns {
	display: grid;
	grid-template-columns: minmax(14rem, 1fr) minmax(0, 3fr);
	align-items: start;
	gap: var(--wrb-spacing-lg);
	width: 100%;
}

.wrb-catalog-filters.is-target {
	outline: 2px solid var(--wrb-color-accent);
	outline-offset: 2px;
}

.wrb-catalog-filters__title {
	margin: 0 0 var(--wrb-spacing-md);
	font-size: var(--wp--preset--font-size--base);
}

.wrb-filter {
	margin-bottom: var(--wrb-spacing-md);
	padding-bottom: var(--wrb-spacing-md);
	border-bottom: 1px solid var(--wrb-color-border);
}

.wrb-filter:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: 0;
}

/* Toggle visibility via Site Editor class `wrb-is-hidden` or `is-hidden` */
.wrb-filter.is-hidden,
.wrb-filter.wrb-is-hidden {
	display: none;
}

.wrb-catalog-filters__plugin-slot:empty {
	display: none;
}

.wrb-catalog-filters__plugin-slot:not(:empty) {
	margin-top: var(--wrb-spacing-md);
	padding-top: var(--wrb-spacing-md);
	border-top: 1px solid var(--wrb-color-border);
}

.wrb-catalog-main {
	min-width: 0;
}

/* ==========================================================================
   Product grid
   Column count via --wrb-grid-columns (set in :root / responsive.css).
   ========================================================================== */

.wrb-product-grid {
	width: 100%;
}

/* Prefer direct child list from Product Collection */
.wrb-product-grid > ul {
	display: grid;
	grid-template-columns: repeat(var(--wrb-grid-columns), minmax(0, 1fr));
	gap: var(--wrb-spacing-md);
	margin: 0;
	padding: 0;
	list-style: none;
}

.wrb-catalog-pagination {
	display: flex;
	justify-content: center;
	width: 100%;
	margin-top: var(--wrb-spacing-lg);
}

.wrb-catalog-no-results {
	padding-block: var(--wrb-spacing-xl);
	text-align: center;
}
