/* The shop listing (starter/shop/templates/archive-product.html, `.ub-catalog`), from theme.json:
   WooCommerce's Product Filters blocks as a panel on the left from 1024 px; below, WooCommerce's
   overlay behind the "Filtre" button (WooCommerce itself switches only under 601 px: the 601–1023 px
   block keeps the overlay). Loaded where the filters block is (shop.php). */

.ub-catalog__layout { display: grid; gap: var(--wp--preset--spacing--40); }
@media (min-width: 1024px) {
	.ub-catalog__layout { grid-template-columns: 17rem minmax(0, 1fr); align-items: start; }
}
.ub-catalog__toolbar { align-items: center; gap: var(--wp--preset--spacing--20); margin-block-end: var(--wp--preset--spacing--30); }
.ub-catalog__toolbar > * { margin: 0; }
.ub-catalog__toolbar select { min-block-size: 2.75rem; padding-inline: 0.625rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--form--radius, 10px); background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); font: inherit; }

/* ---- The filters (panel and overlay alike) ------------------------------------------------------ */
.ub-catalog__filters { --wc-product-filter-price-slider: var(--wp--preset--color--primary); font-size: 0.9375rem; }
.ub-catalog__filters .ub-catalog__filters-title { margin: 0 0 0.75rem; font-size: var(--wp--preset--font-size--medium); }
.ub-catalog__filters .wc-block-product-filters__overlay-content > * { margin: 0; }
.ub-catalog__filters .wp-block-woocommerce-product-filter-taxonomy,
.ub-catalog__filters .wp-block-woocommerce-product-filter-price,
.ub-catalog__filters .wp-block-woocommerce-product-filter-status { padding-block-start: 1rem; border-block-start: 1px solid var(--wp--preset--color--line); }
.ub-catalog__filters h3 { margin: 0 0 0.75rem; font-size: 1rem; }

.ub-catalog__filters .wc-block-product-filter-checkbox-list__label { min-block-size: 2rem; color: var(--wp--preset--color--ink); }
.ub-catalog__filters .wc-block-product-filter-chips__items { gap: 0.375rem; }
.ub-catalog__filters .wc-block-product-filter-chips__item {
	min-block-size: 2.25rem;
	padding: 0.375rem 0.875rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
	font-size: 0.875rem;
	line-height: 1.2;
}
.ub-catalog__filters .wc-block-product-filter-chips__item:hover { border-color: var(--wp--preset--color--ink); }
.ub-catalog__filters .wc-block-product-filter-chips__item[aria-checked="true"] {
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
	font-weight: 600;
}
.ub-catalog__filters .wc-block-product-filter-removable-chips__items { gap: 0.375rem; }
.ub-catalog__filters .wc-block-product-filter-removable-chips__item {
	min-block-size: 2.25rem;
	border-radius: 999px !important;
	background: var(--wp--preset--color--deep) !important;
	color: var(--wp--preset--color--on-deep);
}
.ub-catalog__filters .wc-block-product-filter-removable-chips__remove { min-inline-size: 1.5rem; min-block-size: 1.5rem; color: var(--wp--preset--color--on-deep) !important; }
.ub-catalog__filters .wc-block-product-filter-clear-button .wp-block-button__link { min-block-size: 2.5rem; font-size: 0.875rem; }
.ub-catalog__filters .wc-block-product-filter-price-slider__content { grid-template-columns: minmax(0, 1fr) 0.75rem minmax(0, 1fr); column-gap: 0; }
.ub-catalog__filters .wc-block-product-filter-price-slider .text input[type="text"] {
	box-sizing: border-box;
	inline-size: 100%;
	max-inline-size: none;
	min-block-size: 2.5rem;
	padding: 0.375rem 0.625rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 8px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
	font-size: 0.875rem;
}
/* The slider's two thumbs: a real box around each (WooCommerce's are 0 px high, so keyboard focus
   lands on something invisible), a visible focus ring, a 14 px thumb */
.ub-catalog__filters .wc-block-product-filter-price-slider__range input[type="range"] { block-size: 24px; inset-block-start: -10px; }
.ub-catalog__filters .wc-block-product-filter-price-slider__range input[type="range"]:focus-visible { outline: 2px solid var(--wp--preset--color--primary) !important; outline-offset: 2px !important; border-radius: 10px; }
.ub-catalog__filters .wc-block-product-filter-price-slider__range input[type="range"]::-webkit-slider-thumb { inline-size: 14px; block-size: 14px; margin-block-start: -8.5px; border-color: var(--wp--preset--color--primary); }
.ub-catalog__filters .wc-block-product-filter-price-slider__range input[type="range"]::-moz-range-thumb { inline-size: 14px; block-size: 14px; border-color: var(--wp--preset--color--primary); }

@media (min-width: 1024px) {
	.ub-catalog__filters { padding: 1.25rem; border-radius: 16px; background: var(--wp--preset--color--surface); }
}

/* ---- Below 1024 px: the "Filtre" button and the overlay ------------------------------------------ */
@media (max-width: 1023px) {
	.ub-catalog__filters .wc-block-product-filters__open-overlay {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.375rem;
		inline-size: 100%;
		min-block-size: 2.75rem;
		padding: 0.375rem 0.75rem;
		border: 1px solid var(--wp--preset--color--line);
		border-radius: var(--wp--custom--form--radius, 10px);
		background: var(--wp--preset--color--base);
		color: var(--wp--preset--color--ink);
		font-size: 1rem;
		font-weight: 600;
	}
	.ub-catalog__filters .wc-block-product-filters__overlay-dialog { background: var(--wp--preset--color--base); }
	.ub-catalog__filters:not(.is-overlay-opened) .wc-block-product-filters__overlay-dialog { visibility: hidden; } /* nothing focusable off screen */
	.ub-catalog__filters .wc-block-product-filters__close-overlay { min-block-size: 2.75rem; padding-inline: 0.5rem; font-size: 1rem; font-weight: 600; }
	.ub-catalog__filters .wc-block-product-filters__overlay-content { padding-block-end: 1rem; }
	.ub-catalog__filters .wc-block-product-filters__apply { min-block-size: 3rem; border-radius: var(--wp--custom--form--radius, 10px); }
}
@media (min-width: 601px) and (max-width: 1023px) {
	.ub-catalog .wc-block-product-filters .wc-block-product-filters__open-overlay { display: flex; }
	.ub-catalog .wc-block-product-filters .wc-block-product-filters__overlay-header { display: flex; }
	.ub-catalog .wc-block-product-filters .wc-block-product-filters__overlay-footer { display: block; }
	.ub-catalog .wc-block-product-filters .wc-block-product-filters__overlay {
		position: fixed;
		inset: 0;
		inset-block-start: var(--top-padding, 0);
		background-color: transparent;
		pointer-events: none;
	}
	.ub-catalog .wc-block-product-filters .wc-block-product-filters__overlay-wrapper { inline-size: 100%; block-size: 100%; }
	.ub-catalog .wc-block-product-filters .wc-block-product-filters__overlay-dialog {
		position: absolute;
		inset: 0;
		inset-inline-start: auto;
		inline-size: min(26rem, 100%);
		transform: translateX(100%);
	}
	.ub-catalog .wc-block-product-filters .wc-block-product-filters__overlay-content { flex-grow: 1; overflow-y: auto; padding: 0 var(--wp--preset--spacing--40) 1rem; }
	.ub-catalog .wc-block-product-filters.is-overlay-opened .wc-block-product-filters__overlay { background-color: rgb(15 23 42 / 0.4); pointer-events: auto; z-index: 9999; }
	.ub-catalog .wc-block-product-filters.is-overlay-opened .wc-block-product-filters__overlay-dialog { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	.ub-catalog__filters .wc-block-product-filters__overlay,
	.ub-catalog__filters .wc-block-product-filters__overlay-dialog { transition: none !important; }
}
@media (prefers-reduced-motion: no-preference) and (min-width: 601px) and (max-width: 1023px) {
	.ub-catalog .wc-block-product-filters.is-overlay-opened .wc-block-product-filters__overlay-dialog { transition: transform 0.3s ease; }
}
