/* Native WooCommerce catalog archive presentation. */

body.woocommerce-shop .site-content,
body.post-type-archive-product .site-content,
body.tax-product_cat .site-content,
body.woocommerce-shop #primary .site-main,
body.post-type-archive-product #primary .site-main,
body.tax-product_cat #primary .site-main {
	inline-size: 100%;
	max-inline-size: none;
	/* GeneratePress supplies block padding to the shared shell. Leaving that
	 * padding in place creates the unexplained nav-to-breadcrumb band. */
	padding-block: 0;
	padding-inline: 0;
	background: var(--color-canvas);
	border: 0;
	box-shadow: none;
}

/* Catalog pages expand through the wide desktop range while every shared
 * desktop landmark continues to read the same gutter/max-width token. The
 * base 90rem cap remains in place for non-catalog pages. */
body.woocommerce-shop,
body.post-type-archive-product,
body.tax-product_cat {
	--sola-layout-max: 120rem;
}

body.woocommerce-shop #primary,
body.post-type-archive-product #primary,
body.tax-product_cat #primary {
	inline-size: 100%;
	max-inline-size: none;
	margin-inline: 0;
}

/* Keep the catalog grid width stable while the mobile drawer locks body
 * scrolling. Overlay-scrollbar platforms simply ignore this reservation. */
html:has(body.woocommerce-shop, body.post-type-archive-product, body.tax-product_cat) {
	scrollbar-gutter: stable;
}

/* GeneratePress normally constrains the page shell and adds article padding.
 * Catalog archives own their single fluid landmark below, so remove only
 * that outer shell constraint here. Product detail, cart, checkout, account,
 * editorial, and homepage layouts retain the theme defaults. */
body.woocommerce-shop #page,
body.post-type-archive-product #page,
body.tax-product_cat #page {
	inline-size: 100%;
	max-inline-size: none;
	margin-inline: 0;
}

body.woocommerce-shop .inside-article,
body.post-type-archive-product .inside-article,
body.tax-product_cat .inside-article {
	padding-block: 0;
	padding-inline: 0;
}

/* Keep archive landmarks on one wide, shared canvas instead of compounding
 * the GeneratePress shell with a second max-width and inset padding. */
.woocommerce .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb,
.woocommerce .woocommerce-products-header,
.woocommerce-page .woocommerce-products-header,
.woocommerce .sola-catalog-category-rail,
.woocommerce-page .sola-catalog-category-rail,
.woocommerce .sola-catalog-results-layout,
.woocommerce-page .sola-catalog-results-layout,
.woocommerce .woocommerce-pagination,
.woocommerce-page .woocommerce-pagination {
	box-sizing: border-box;
	inline-size: min(
		calc(100% - var(--container-gutter) - var(--container-gutter)),
		var(--sola-layout-max)
	);
	max-inline-size: var(--sola-layout-max);
	min-inline-size: 0;
	margin-inline: auto;
	padding-inline: 0;
}

.woocommerce .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb {
	/* 5.13: one explicit context gap before the category rail. */
	margin-block: var(--space-3) var(--space-4);
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
	line-height: var(--line-height-ui);
	direction: rtl;
	overflow-wrap: anywhere;
	text-align: start;
}

.woocommerce .woocommerce-breadcrumb .sola-catalog-breadcrumb__separator,
.woocommerce-page .woocommerce-breadcrumb .sola-catalog-breadcrumb__separator {
	display: inline-block;
	margin-inline: var(--space-2);
	color: var(--color-ink-soft);
	direction: ltr;
	font-weight: var(--font-weight-semibold);
	unicode-bidi: isolate;
}

.woocommerce .woocommerce-products-header,
.woocommerce-page .woocommerce-products-header {
	margin: 0;
	padding-block: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	direction: rtl;
	text-align: start;
}

.woocommerce .woocommerce-products-header__title,
.woocommerce-page .woocommerce-products-header__title {
	/* A capped, auto-margined GeneratePress title can resolve its RTL line
	 * outside the shared archive landmark. Keep the title box on that same
	 * responsive gutter so its physical-right start edge cannot drift. */
	inline-size: min(
		calc(100% - var(--container-gutter) - var(--container-gutter)),
		var(--sola-layout-max)
	);
	max-inline-size: var(--sola-layout-max);
	/* Keep the title lead-out on a defined token; --space-5 is not a global token. */
	margin-block: 0 var(--space-2);
	margin-inline: auto;
	color: var(--color-ink);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-heading);
	text-wrap: balance;
	unicode-bidi: plaintext;
}

.woocommerce .term-description,
.woocommerce .page-description,
.woocommerce-page .term-description,
.woocommerce-page .page-description {
	box-sizing: border-box;
	max-inline-size: 62ch;
	max-block-size: none;
	overflow-wrap: anywhere;
	margin-block: 0 var(--space-4);
	overflow: visible;
	color: var(--color-ink-soft);
	font-size: var(--font-size-body-large);
	line-height: var(--line-height-body);
}

/* Share the title's gutters above the entire filter + product layout. */
.woocommerce .woocommerce-products-header > .term-description,
.woocommerce-page .woocommerce-products-header > .term-description {
	inline-size: min(calc(100% - var(--container-gutter) - var(--container-gutter)), var(--sola-layout-max));
	max-inline-size: var(--sola-layout-max);
	margin-inline: auto;
	margin-block-end: var(--space-6);
}

.woocommerce .term-description > :first-child,
.woocommerce .page-description > :first-child,
.woocommerce-page .term-description > :first-child,
.woocommerce-page .page-description > :first-child {
	margin-block-start: 0;
}

.woocommerce .term-description > :last-child,
.woocommerce .page-description > :last-child,
.woocommerce-page .term-description > :last-child,
.woocommerce-page .page-description > :last-child {
	margin-block-end: 0;
}

.woocommerce .sola-catalog-category-rail,
.woocommerce-page .sola-catalog-category-rail {
	position: relative;
	/* The breadcrumb owns the preceding gap; the rail owns its exit rhythm. */
	margin-block: 0 var(--space-8);
	color: var(--color-ink);
	direction: rtl;
}

.woocommerce .sola-catalog-category-rail__scroll,
.woocommerce-page .sola-catalog-category-rail__scroll {
	min-inline-size: 0;
	max-inline-size: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-inline: contain;
	scroll-padding-inline: var(--space-2);
	scrollbar-width: none;
	touch-action: pan-x;
	-webkit-overflow-scrolling: touch;
}

.woocommerce .sola-catalog-category-rail__scroll::-webkit-scrollbar,
.woocommerce-page .sola-catalog-category-rail__scroll::-webkit-scrollbar {
	display: none;
}

.woocommerce .sola-catalog-category-rail__list,
.woocommerce-page .sola-catalog-category-rail__list {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: flex-start;
	gap: var(--space-2);
	min-inline-size: max-content;
	margin: 0;
	padding: 0 0 var(--space-1);
	list-style: none;
}

.woocommerce .sola-catalog-category-rail__link,
.woocommerce-page .sola-catalog-category-rail__link {
	display: grid;
	grid-template-columns: 40% minmax(0, 1fr);
	align-items: stretch;
	inline-size: clamp(12rem, 42vw, 15rem);
	min-block-size: 5.75rem;
	padding: 0;
	border: 0;
	border-radius: 2px;
	background: transparent;
	color: var(--color-ink);
	font-size: var(--font-size-ui);
	line-height: var(--line-height-ui);
	text-decoration: none;
	text-align: start;
	unicode-bidi: plaintext;
}

.woocommerce .sola-catalog-category-rail__link:hover,
.woocommerce .sola-catalog-category-rail__link:focus-visible,
.woocommerce-page .sola-catalog-category-rail__link:hover,
.woocommerce-page .sola-catalog-category-rail__link:focus-visible {
	color: var(--color-ink);
}

.woocommerce .sola-catalog-category-rail__link:focus-visible,
.woocommerce-page .sola-catalog-category-rail__link:focus-visible {
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

.woocommerce .sola-catalog-category-rail__media,
.woocommerce-page .sola-catalog-category-rail__media {
	display: flex;
	align-items: center;
	justify-content: center;
	min-inline-size: 0;
	min-block-size: 0;
	overflow: hidden;
	border-radius: 2px;
	background: var(--color-surface);
}

.woocommerce .sola-catalog-category-rail__image,
.woocommerce-page .sola-catalog-category-rail__image {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.woocommerce .sola-catalog-category-rail__media--fallback,
.woocommerce-page .sola-catalog-category-rail__media--fallback {
	background:
		linear-gradient(135deg, var(--color-surface-strong), var(--color-surface)),
		var(--color-surface);
	color: var(--color-ink-soft);
}

.woocommerce .sola-catalog-category-rail__fallback-mark,
.woocommerce-page .sola-catalog-category-rail__fallback-mark {
	font-size: 0.7rem;
	font-weight: var(--font-weight-semibold);
	letter-spacing: 0.16em;
	line-height: 1;
	opacity: 0.7;
}

.woocommerce .sola-catalog-category-rail__name,
.woocommerce-page .sola-catalog-category-rail__name {
	display: flex;
	align-items: center;
	min-inline-size: 0;
	padding-block: var(--space-2);
	padding-inline: var(--space-3);
	overflow-wrap: anywhere;
	unicode-bidi: plaintext;
}

.woocommerce .sola-catalog-category-rail__link.is-current,
.woocommerce-page .sola-catalog-category-rail__link.is-current {
	color: var(--color-accent);
	font-weight: var(--font-weight-semibold);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
}

.woocommerce .sola-catalog-category-rail__link.is-current:hover,
.woocommerce .sola-catalog-category-rail__link.is-current:focus-visible,
.woocommerce-page .sola-catalog-category-rail__link.is-current:hover,
.woocommerce-page .sola-catalog-category-rail__link.is-current:focus-visible {
	color: var(--color-accent-hover);
}

.woocommerce .sola-catalog-category-rail__link--text-only,
.woocommerce-page .sola-catalog-category-rail__link--text-only {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-block-size: 44px;
	inline-size: auto;
	min-inline-size: 6rem;
	padding-block: var(--space-2);
	padding-inline: var(--space-4);
	border: 1px solid transparent;
	border-block-end-color: var(--color-border-strong);
	border-radius: 0;
	background: var(--color-surface);
	font-weight: var(--font-weight-semibold);
	text-align: center;
}

.woocommerce .sola-catalog-category-rail__link--text-only .sola-catalog-category-rail__name,
.woocommerce-page .sola-catalog-category-rail__link--text-only .sola-catalog-category-rail__name {
	padding: 0;
}

.woocommerce .sola-catalog-category-rail__link--text-only:hover,
.woocommerce .sola-catalog-category-rail__link--text-only:focus-visible,
.woocommerce-page .sola-catalog-category-rail__link--text-only:hover,
.woocommerce-page .sola-catalog-category-rail__link--text-only:focus-visible {
	border-color: var(--color-border-strong);
	background: var(--color-surface-strong);
}

.woocommerce .sola-catalog-toolbar,
.woocommerce-page .sola-catalog-toolbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--space-2);
	box-sizing: border-box;
	inline-size: 100%;
	min-inline-size: 0;
	max-inline-size: none;
	margin: 0;
	padding-inline: 0;
	border: 0;
}

.woocommerce .sola-catalog-results-layout,
.woocommerce-page .sola-catalog-results-layout {
	display: block;
	direction: rtl;
}

.woocommerce .sola-catalog-results-layout > #wc-column-container,
.woocommerce-page .sola-catalog-results-layout > #wc-column-container {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	/* Do not stack the mobile toolbar margin on a second wrapper row gap. */
	gap: 0 var(--space-8);
	box-sizing: border-box;
	inline-size: 100%;
	min-inline-size: 0;
	max-inline-size: none;
	margin: 0;
	padding: 0;
}

.woocommerce .sola-catalog-results-layout > #wc-column-container > .sola-catalog-toolbar,
.woocommerce-page .sola-catalog-results-layout > #wc-column-container > .sola-catalog-toolbar,
.woocommerce .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column,
.woocommerce-page .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column {
	inline-size: 100%;
	min-inline-size: 0;
	max-inline-size: none;
}

.woocommerce .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products,
.woocommerce-page .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products {
	inline-size: 100%;
	min-inline-size: 0;
	max-inline-size: none;
}

/* Match Article's measured catalog density policy: one product below 768px,
 * two from 768px, three from 1367px, and four from 1600px. These exact
 * boundaries preserve useful furniture-card widths through the normal desktop
 * range before the genuinely wide layout adds a fourth track. */
body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products {
	grid-template-columns: minmax(0, 1fr);
	column-gap: 0;
}

/* Task 5.14: keep archive card media and metadata on one measured, logical
 * axis. These rules stay in the archive bundle so homepage and related loops
 * retain their own card treatment. */
body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card .woocommerce-loop-product__link .wc-product-image,
body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card .woocommerce-loop-product__link .wc-product-image {
	display: block;
	inline-size: 100%;
	block-size: auto;
	aspect-ratio: 1 / 1;
	min-block-size: 0;
	overflow: hidden;
	border-radius: 2px;
	background: var(--color-canvas);
	line-height: 0;
}

body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card .woocommerce-loop-product__link .wc-product-image .inside-wc-product-image,
body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card .woocommerce-loop-product__link .wc-product-image .inside-wc-product-image {
	display: block;
	position: relative;
	inline-size: 100%;
	block-size: 100%;
	min-block-size: 0;
}

/* GeneratePress can emit the primary and hover images in either order. Put
 * both in the same clipped square instead of relying on DOM order or image
 * intrinsic dimensions. */
body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card .woocommerce-loop-product__link .wc-product-image .inside-wc-product-image > img,
body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card .woocommerce-loop-product__link .wc-product-image .inside-wc-product-image > img {
	position: absolute;
	z-index: 0;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	min-block-size: 0;
	margin: 0;
	border-radius: inherit;
	background: var(--color-canvas);
	object-fit: contain;
	transform: none;
}

body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card .woocommerce-loop-product__link .wc-product-image > img,
body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card .woocommerce-loop-product__link .wc-product-image > img {
	inline-size: 100%;
	block-size: 100%;
	margin: 0;
	object-fit: contain;
}

body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card.sola-product-card--missing-image .woocommerce-loop-product__link .wc-product-image,
body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card.sola-product-card--missing-image .woocommerce-loop-product__link .wc-product-image {
	background: var(--color-surface-strong);
}

body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card .woocommerce-loop-product__title,
body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card .woocommerce-loop-product__title {
	inline-size: 100%;
	min-inline-size: 0;
	min-block-size: 0;
	margin-block: var(--space-3) var(--space-2);
	margin-inline: 0;
	padding: 0;
	padding-inline-start: var(--space-3);
	padding-inline-end: calc(var(--sola-product-card-action-space) + var(--space-2));
	color: var(--color-ink);
	font-family: var(--font-family-sans);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-bold);
	line-height: 1.3;
	overflow-wrap: anywhere;
	direction: rtl;
	text-align: start;
	text-wrap: pretty;
	unicode-bidi: isolate;
}

body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card .price,
body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card .price {
	display: block;
	inline-size: 100%;
	min-inline-size: 0;
	margin-block: 0 var(--space-4);
	margin-inline: 0;
	padding: 0;
	padding-inline-start: var(--space-3);
	padding-inline-end: calc(var(--sola-product-card-action-space) + var(--space-2));
	color: var(--color-accent);
	font-family: var(--font-family-sans);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-bold);
	line-height: 1.3;
	direction: rtl;
	text-align: start;
	unicode-bidi: isolate;
}

body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card .price del,
body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card .price del {
	color: var(--color-ink);
	font-size: var(--font-size-ui);
	font-weight: var(--font-weight-regular);
	line-height: 1.4;
	text-decoration-line: line-through;
	text-decoration-thickness: 0.08em;
}

body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card .price ins,
body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card .price ins {
	color: var(--color-accent);
	font-weight: var(--font-weight-bold);
	text-decoration: none;
}

@media (min-width: 768px) {
	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products {
		grid-template-columns: repeat(2, minmax(220px, 1fr));
		column-gap: var(--space-6);
	}
}

@media (min-width: 1367px) {
	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products {
		grid-template-columns: repeat(3, minmax(240px, 1fr));
	}
}

@media (min-width: 1600px) {
	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.woocommerce .sola-catalog-toolbar__title,
.woocommerce-page .sola-catalog-toolbar__title {
	grid-column: 1;
	margin: 0;
	color: var(--color-ink);
	font-size: 1.25rem;
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-heading);
	text-align: start;
}

.woocommerce .sola-catalog-toolbar .woocommerce-result-count,
.woocommerce-page .sola-catalog-toolbar .woocommerce-result-count {
	float: none;
	min-inline-size: 0;
	margin: 0;
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
	line-height: var(--line-height-ui);
	text-align: start;
	unicode-bidi: plaintext;
}

.woocommerce .sola-catalog-toolbar .woocommerce-result-count,
.woocommerce-page .sola-catalog-toolbar .woocommerce-result-count {
	grid-column: 1 / -1;
	order: 3;
}

.woocommerce .sola-catalog-toolbar .woocommerce-ordering,
.woocommerce-page .sola-catalog-toolbar .woocommerce-ordering {
	grid-column: 2;
	grid-row: 1;
	float: none;
	min-inline-size: 0;
	max-inline-size: 100%;
	margin: 0;
}

.woocommerce .sola-catalog-toolbar .woocommerce-ordering select,
.woocommerce-page .sola-catalog-toolbar .woocommerce-ordering select {
	display: block;
	box-sizing: border-box;
	inline-size: 100%;
	max-inline-size: 100%;
	min-block-size: 44px;
	padding-block: var(--space-2);
	padding-inline: 0 2.75rem;
	border: 0;
	border-radius: 0;
	background-color: transparent;
	background-image: var(--sola-icon-nav-arrow-down);
	background-position: left var(--space-2) center;
	background-repeat: no-repeat;
	background-size: 1.5rem;
	color: var(--color-ink);
	font: inherit;
	font-size: var(--font-size-ui);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-ui);
	text-align: start;
	appearance: none;
	-webkit-appearance: none;
}

.woocommerce .sola-catalog-toolbar .woocommerce-ordering select:focus-visible,
.woocommerce-page .sola-catalog-toolbar .woocommerce-ordering select:focus-visible {
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

.woocommerce .woocommerce-pagination,
.woocommerce-page .woocommerce-pagination {
	clear: both;
	margin-block: var(--space-8) var(--space-12);
	text-align: center;
}

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

.woocommerce .woocommerce-pagination ul.page-numbers li,
.woocommerce-page .woocommerce-pagination ul.page-numbers li {
	display: block;
	float: none;
	min-inline-size: 0;
	margin: 0;
	padding: 0;
}

.woocommerce .woocommerce-pagination .page-numbers,
.woocommerce-page .woocommerce-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: 44px;
	min-block-size: 44px;
	padding-block: var(--space-2);
	padding-inline: var(--space-2);
	border: 1px solid transparent;
	border-radius: var(--radius-button);
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
	font-weight: var(--font-weight-semibold);
	line-height: 1;
	text-decoration: none;
	unicode-bidi: plaintext;
}

.woocommerce .woocommerce-pagination a.page-numbers:hover,
.woocommerce .woocommerce-pagination a.page-numbers:focus-visible,
.woocommerce-page .woocommerce-pagination a.page-numbers:hover,
.woocommerce-page .woocommerce-pagination a.page-numbers:focus-visible {
	border-color: var(--color-border-strong);
	background: var(--color-surface);
	color: var(--color-ink);
}

.woocommerce .woocommerce-pagination .page-numbers.current,
.woocommerce-page .woocommerce-pagination .page-numbers.current {
	border-color: var(--color-ink);
	background: var(--color-ink);
	color: var(--color-white);
}

.woocommerce .woocommerce-pagination .page-numbers.dots,
.woocommerce-page .woocommerce-pagination .page-numbers.dots {
	color: var(--color-ink-soft);
}

/* Progressive reveal is opt-in at runtime. Without the catalog script the
 * native pagination remains visible and crawlable; once JavaScript is ready,
 * the numeric links yield to one authoritative count and a bounded next-page
 * request. */
.woocommerce .sola-catalog-progressive,
.woocommerce-page .sola-catalog-progressive {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	clear: both;
	inline-size: min(
		calc(100% - var(--container-gutter) - var(--container-gutter)),
		var(--sola-layout-max)
	);
	max-inline-size: var(--sola-layout-max);
	margin-block: var(--space-8) var(--space-12);
	margin-inline: auto;
	direction: rtl;
	text-align: center;
}

html.sola-catalog-js .woocommerce .sola-catalog-progressive,
html.sola-catalog-js .woocommerce-page .sola-catalog-progressive {
	display: flex;
}

html.sola-catalog-js .woocommerce .woocommerce-pagination,
html.sola-catalog-js .woocommerce-page .woocommerce-pagination {
	display: none;
}

.woocommerce .sola-catalog-progressive__count,
.woocommerce-page .sola-catalog-progressive__count {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35em;
	margin: 0;
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
	line-height: var(--line-height-ui);
	direction: rtl;
	unicode-bidi: isolate;
}

.woocommerce .sola-catalog-progressive__count-number,
.woocommerce-page .sola-catalog-progressive__count-number {
	direction: ltr;
	unicode-bidi: isolate;
}

.woocommerce .sola-catalog-progressive__button,
.woocommerce-page .sola-catalog-progressive__button {
	margin-inline: auto;
	border-radius: 0;
	border-start-end-radius: 0;
	border-end-start-radius: 0;
}

.woocommerce .sola-catalog-progressive__button[disabled],
.woocommerce-page .sola-catalog-progressive__button[disabled] {
	opacity: 0.62;
	cursor: wait;
}

@media (min-width: 48rem) {
	.woocommerce .sola-catalog-toolbar,
	.woocommerce-page .sola-catalog-toolbar {
		grid-template-columns: minmax(0, 1fr) minmax(16rem, 18rem);
		gap: var(--space-3) var(--space-4);
	}

	.woocommerce .sola-catalog-toolbar .woocommerce-result-count,
	.woocommerce-page .sola-catalog-toolbar .woocommerce-result-count {
		grid-column: 1;
	}

	.woocommerce .sola-catalog-toolbar .woocommerce-ordering,
	.woocommerce-page .sola-catalog-toolbar .woocommerce-ordering {
		grid-column: 2;
	}

	.woocommerce .woocommerce-products-header__title,
	.woocommerce-page .woocommerce-products-header__title {
		/* 8px title lead-out + 24px results lead-in = --space-8. */
		margin-block-end: var(--space-2);
	}

	.woocommerce .sola-catalog-category-rail__scroll,
	.woocommerce-page .sola-catalog-category-rail__scroll {
		overflow-x: auto;
		overflow-y: hidden;
	}

	.woocommerce .sola-catalog-category-rail__list,
	.woocommerce-page .sola-catalog-category-rail__list {
		flex-wrap: nowrap;
		min-inline-size: max-content;
		padding-block-end: 0;
	}

	.woocommerce .sola-catalog-category-rail__link,
	.woocommerce-page .sola-catalog-category-rail__link {
		inline-size: clamp(10rem, 14vw, 11rem);
	}

	.woocommerce .sola-catalog-category-rail::after,
	.woocommerce-page .sola-catalog-category-rail::after {
		display: none;
	}

	.woocommerce .sola-catalog-toolbar .woocommerce-ordering,
	.woocommerce-page .sola-catalog-toolbar .woocommerce-ordering {
		grid-column: 2;
		max-inline-size: 18rem;
	}

	.woocommerce .sola-catalog-toolbar .woocommerce-ordering select,
	.woocommerce-page .sola-catalog-toolbar .woocommerce-ordering select {
		inline-size: auto;
		min-inline-size: 16rem;
	}
}

@media (min-width: 64rem) {
	.woocommerce .sola-catalog-category-rail,
	.woocommerce-page .sola-catalog-category-rail {
		/* Desktop keeps one small, intentional gap before the archive title. */
		margin-block-end: var(--space-4);
	}
}

@media (max-width: 47.99rem) {
	.woocommerce .sola-catalog-category-rail,
	.woocommerce-page .sola-catalog-category-rail {
		/* Keep the list's 4px focus-clip safety padding inside the 32px rhythm. */
		margin-block-end: calc(var(--space-8) - var(--space-1));
	}
}

@media (min-width: 970px) {
	/* Task 5.16: the desktop filter rail is an intentional IKEA-inspired
	 * sticky exception. Keep it below the actual Sola header/search offset at
	 * the 970px boundary, and below the desktop header/menu from 1024px. The
	 * grid wrapper remains the containing block, so sticky naturally releases
	 * before the catalog boundary/pagination and the footer. */
	.woocommerce .sola-catalog-results-layout,
	.woocommerce-page .sola-catalog-results-layout {
		--sola-catalog-rail-offset: calc(3.75rem + 2.75rem + var(--space-3) + 1px);
	}

	.woocommerce .sola-catalog-results-layout > #wc-column-container,
	.woocommerce-page .sola-catalog-results-layout > #wc-column-container {
		padding-block-start: var(--space-6);
	}

	.woocommerce .sola-catalog-results-layout > #wc-column-container > .sola-catalog-toolbar,
	.woocommerce-page .sola-catalog-results-layout > #wc-column-container > .sola-catalog-toolbar {
		grid-column: 1;
		grid-row: 1;
		position: sticky;
		inset-block-start: var(--sola-catalog-rail-offset);
		align-self: start;
		z-index: 10;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: var(--space-3);
		/* Intentional Article-compatible exception: the rail heading is 4px
		 * below the product image row and therefore 36px below the H1; the
		 * decision border/grid itself remains 32px below the H1. */
		padding-block-start: var(--space-1);
		padding-inline-end: var(--space-6);
		/* Keep long, expanded filter sets inside the visible sticky rail instead
		 * of letting the controls run past the viewport and product boundary. */
		max-block-size: calc(100dvh - var(--sola-catalog-rail-offset) - var(--space-6));
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-gutter: stable;
		scrollbar-width: thin;
		scrollbar-color: var(--color-border-strong) transparent;
	}

	.woocommerce .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column,
	.woocommerce-page .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column {
		grid-column: 1;
		grid-row: 1;
	}

	.woocommerce .sola-catalog-toolbar .woocommerce-result-count,
	.woocommerce-page .sola-catalog-toolbar .woocommerce-result-count {
		order: 2;
	}

	.woocommerce .sola-catalog-toolbar .woocommerce-ordering,
	.woocommerce-page .sola-catalog-toolbar .woocommerce-ordering {
		order: 3;
		max-inline-size: none;
	}

	.woocommerce .sola-catalog-toolbar .woocommerce-ordering select,
	.woocommerce-page .sola-catalog-toolbar .woocommerce-ordering select {
		inline-size: 100%;
		min-inline-size: 0;
		padding-inline: 0 2.75rem;
		border-block-end: 1px solid var(--color-border);
	}
}

@media (min-width: 64rem) {
	/* Header source measurement: 24px top-row padding + 44px top row +
	 * 44px primary menu + 1px on each header boundary = 114px. */
	.woocommerce .sola-catalog-results-layout,
	.woocommerce-page .sola-catalog-results-layout {
		--sola-catalog-rail-offset: calc((var(--space-3) * 2) + (2.75rem * 2) + 2px);
	}
}

@media (min-width: 783px) {
	body.admin-bar.woocommerce .sola-catalog-results-layout > #wc-column-container > .sola-catalog-toolbar,
	body.admin-bar.woocommerce-page .sola-catalog-results-layout > #wc-column-container > .sola-catalog-toolbar {
		inset-block-start: calc(var(--sola-catalog-rail-offset, 0px) + 32px);
		max-block-size: calc(100dvh - var(--sola-catalog-rail-offset, 0px) - 32px - var(--space-6));
	}
}

/* Native catalog filters: physical-right desktop rail and compact mobile
 * drawer. The visual hierarchy follows the Article reference while all
 * choices remain Sola/WooCommerce data and query semantics. */
.woocommerce .sola-catalog-toolbar__mobile-bar,
.woocommerce-page .sola-catalog-toolbar__mobile-bar {
	display: none;
}

.woocommerce .sola-catalog-filter-form,
.woocommerce-page .sola-catalog-filter-form {
	display: block;
	inline-size: 100%;
	min-inline-size: 0;
}

.woocommerce .sola-catalog-filter-panel,
.woocommerce-page .sola-catalog-filter-panel {
	box-sizing: border-box;
	direction: rtl;
	min-inline-size: 0;
	max-inline-size: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-ink);
}

.woocommerce .sola-catalog-filter-panel__header,
.woocommerce-page .sola-catalog-filter-panel__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--space-3);
	padding-block: 0 var(--space-4);
	border-block-end: 1px solid var(--color-border);
}

.woocommerce .sola-catalog-filter-panel__header h2,
.woocommerce-page .sola-catalog-filter-panel__header h2 {
	margin: 0;
	font-size: 1.25rem;
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-heading);
}

.woocommerce .sola-catalog-filter-panel__selected,
.woocommerce-page .sola-catalog-filter-panel__selected {
	margin: var(--space-1) 0 0;
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
}

.woocommerce .sola-catalog-filter-panel__close,
.woocommerce-page .sola-catalog-filter-panel__close {
	display: none;
	align-items: center;
	justify-content: center;
	inline-size: 44px;
	block-size: 44px;
	margin: -0.5rem -0.5rem 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-ink);
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}

.woocommerce .sola-catalog-filter-panel__close:focus-visible,
.woocommerce .sola-catalog-filter-panel__close:hover,
.woocommerce-page .sola-catalog-filter-panel__close:focus-visible,
.woocommerce-page .sola-catalog-filter-panel__close:hover {
	color: var(--color-accent);
}

.woocommerce .sola-catalog-filter-group,
.woocommerce-page .sola-catalog-filter-group {
	margin: 0;
	padding: var(--space-4) 0;
	border-block-end: 1px solid var(--color-border);
}

.woocommerce .sola-catalog-filter-group > summary,
.woocommerce-page .sola-catalog-filter-group > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-2);
	min-block-size: 44px;
	margin: calc(-1 * var(--space-2)) 0;
	padding-block: var(--space-2);
	color: var(--color-ink);
	font-size: 1rem;
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-ui);
	cursor: pointer;
	list-style: none;
}

.woocommerce .sola-catalog-filter-group > summary::-webkit-details-marker,
.woocommerce-page .sola-catalog-filter-group > summary::-webkit-details-marker {
	display: none;
}

.woocommerce .sola-catalog-filter-group > summary:focus-visible,
.woocommerce-page .sola-catalog-filter-group > summary:focus-visible {
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

.woocommerce .sola-catalog-filter-group__chevron,
.woocommerce-page .sola-catalog-filter-group__chevron {
	display: block;
	flex: 0 0 1.5rem;
	inline-size: 1.5rem;
	block-size: 1.5rem;
	color: var(--color-ink-soft);
	background-color: currentColor;
	-webkit-mask-image: var(--sola-icon-nav-arrow-down);
	mask-image: var(--sola-icon-nav-arrow-down);
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 1.5rem;
	mask-size: 1.5rem;
	transition: transform 160ms ease;
}

.woocommerce .sola-catalog-filter-group:not([open]) .sola-catalog-filter-group__chevron,
.woocommerce-page .sola-catalog-filter-group:not([open]) .sola-catalog-filter-group__chevron {
	transform: rotate(90deg);
}

.woocommerce .sola-catalog-filter-group--sort,
.woocommerce-page .sola-catalog-filter-group--sort {
	padding-block-start: var(--space-4);
}

.woocommerce .sola-catalog-filter-group--sort,
.woocommerce-page .sola-catalog-filter-group--sort {
	margin-inline: 0;
	padding-inline: 0;
	border: 0;
}

.woocommerce .sola-catalog-filter-group--sort legend,
.woocommerce-page .sola-catalog-filter-group--sort legend {
	margin: 0 0 var(--space-2);
	padding: 0;
	font-size: 1rem;
	font-weight: var(--font-weight-semibold);
}

.woocommerce .sola-catalog-orderby-option,
.woocommerce-page .sola-catalog-orderby-option {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	min-block-size: 44px;
	padding-block: var(--space-2);
	color: var(--color-ink);
	font-size: var(--font-size-ui);
	line-height: var(--line-height-ui);
	cursor: pointer;
}

.woocommerce .sola-catalog-orderby-option input,
.woocommerce-page .sola-catalog-orderby-option input {
	flex: 0 0 auto;
	inline-size: 1.25rem;
	block-size: 1.25rem;
	margin: 0;
	accent-color: var(--color-accent);
}

.woocommerce .sola-catalog-orderby-option input:focus-visible,
.woocommerce-page .sola-catalog-orderby-option input:focus-visible {
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

.woocommerce .sola-catalog-filter-panel__header .woocommerce-result-count,
.woocommerce-page .sola-catalog-filter-panel__header .woocommerce-result-count {
	float: none;
	display: inline-flex;
	align-items: baseline;
	gap: 0.35em;
	margin: var(--space-1) 0 0;
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
	line-height: var(--line-height-ui);
	direction: rtl;
	text-align: right;
	unicode-bidi: isolate;
}

.woocommerce .sola-catalog-result-count__number,
.woocommerce-page .sola-catalog-result-count__number {
	direction: ltr;
	unicode-bidi: isolate;
}

.woocommerce .sola-catalog-result-count__label,
.woocommerce-page .sola-catalog-result-count__label {
	direction: rtl;
	unicode-bidi: isolate;
}

.woocommerce .sola-catalog-filter-summary,
.woocommerce-page .sola-catalog-filter-summary {
	display: grid;
	gap: var(--space-2);
	margin-block-start: var(--space-3);
	direction: rtl;
}

.woocommerce .sola-catalog-filter-summary__clear,
.woocommerce-page .sola-catalog-filter-summary__clear {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	min-block-size: 44px;
	color: var(--color-ink);
	font-size: var(--font-size-ui);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.woocommerce .sola-catalog-filter-summary__clear:hover,
.woocommerce .sola-catalog-filter-summary__clear:focus-visible,
.woocommerce-page .sola-catalog-filter-summary__clear:hover,
.woocommerce-page .sola-catalog-filter-summary__clear:focus-visible {
	color: var(--color-accent);
}

.woocommerce .sola-catalog-filter-summary__chips,
.woocommerce-page .sola-catalog-filter-summary__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce .sola-catalog-filter-chip,
.woocommerce-page .sola-catalog-filter-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	min-block-size: 44px;
	padding-block: var(--space-2);
	padding-inline: var(--space-2);
	border-radius: var(--radius-button);
	background: var(--color-surface);
	color: var(--color-ink);
	font-size: var(--font-size-ui);
	line-height: var(--line-height-ui);
	text-decoration: none;
	unicode-bidi: plaintext;
}

.woocommerce .sola-catalog-filter-chip:hover,
.woocommerce .sola-catalog-filter-chip:focus-visible,
.woocommerce-page .sola-catalog-filter-chip:hover,
.woocommerce-page .sola-catalog-filter-chip:focus-visible {
	background: var(--color-surface-strong);
	color: var(--color-ink);
}

.woocommerce .sola-catalog-filter-chip__remove,
.woocommerce-page .sola-catalog-filter-chip__remove {
	font-size: 1.25rem;
	font-weight: var(--font-weight-regular);
	line-height: 1;
}

.woocommerce .sola-catalog-filter-group__links,
.woocommerce-page .sola-catalog-filter-group__links {
	display: grid;
	gap: var(--space-1);
	margin: var(--space-2) 0 0;
	padding: 0;
	list-style: none;
}

.woocommerce .sola-catalog-filter-group__links a,
.woocommerce-page .sola-catalog-filter-group__links a {
	display: flex;
	align-items: center;
	min-block-size: 44px;
	padding-block: var(--space-2);
	padding-inline: var(--space-2);
	border-radius: var(--radius-button);
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
	text-decoration: none;
}

.woocommerce .sola-catalog-filter-group__links a:hover,
.woocommerce .sola-catalog-filter-group__links a:focus-visible,
.woocommerce-page .sola-catalog-filter-group__links a:hover,
.woocommerce-page .sola-catalog-filter-group__links a:focus-visible {
	background: var(--color-surface);
	color: var(--color-ink);
}

.woocommerce .sola-catalog-filter-group__options,
.woocommerce-page .sola-catalog-filter-group__options {
	display: grid;
	gap: var(--space-1);
	margin-block-start: var(--space-2);
}

.woocommerce .sola-catalog-filter-option,
.woocommerce-page .sola-catalog-filter-option {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	min-block-size: 44px;
	padding-block: var(--space-2);
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
	cursor: pointer;
}

/* Color terms keep the native checkbox as the semantic control, but present
 * the option in the compact, image-led language of the Article reference. The
 * term label stays visible so an unknown term is never represented by a made-
 * up hue, and selected state is a visible ring rather than color alone. */
.woocommerce .sola-catalog-filter-option--color,
.woocommerce-page .sola-catalog-filter-option--color {
	gap: var(--space-2);
	min-inline-size: 0;
	min-block-size: 44px;
	padding-block: 0;
	color: var(--color-ink-soft);
}

.woocommerce .sola-catalog-filter-option__input,
.woocommerce-page .sola-catalog-filter-option__input {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.woocommerce .sola-catalog-filter-option__swatch,
.woocommerce-page .sola-catalog-filter-option__swatch {
	display: inline-block;
	flex: 0 0 28px;
	inline-size: 28px;
	block-size: 28px;
	border: 1px solid var(--color-border-strong);
	border-radius: 50%;
	background: var(--sola-swatch-color, var(--color-surface-strong));
	box-shadow: 0 0 0 1px var(--color-canvas);
}

.woocommerce .sola-catalog-filter-option__text,
.woocommerce-page .sola-catalog-filter-option__text {
	min-inline-size: 0;
	overflow-wrap: anywhere;
}

.woocommerce .sola-catalog-filter-option__swatch.is-neutral,
.woocommerce-page .sola-catalog-filter-option__swatch.is-neutral {
	background: var(--color-surface-strong);
	background-image: linear-gradient(135deg, transparent 0 45%, var(--color-border-strong) 45% 55%, transparent 55% 100%);
}

.woocommerce .sola-catalog-filter-option__input:checked + .sola-catalog-filter-option__swatch,
.woocommerce-page .sola-catalog-filter-option__input:checked + .sola-catalog-filter-option__swatch {
	box-shadow: 0 0 0 2px var(--color-canvas), 0 0 0 4px var(--color-accent);
}

.woocommerce .sola-catalog-filter-option__input:focus-visible + .sola-catalog-filter-option__swatch,
.woocommerce-page .sola-catalog-filter-option__input:focus-visible + .sola-catalog-filter-option__swatch {
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

.woocommerce .sola-catalog-filter-option__input:checked ~ .sola-catalog-filter-option__text,
.woocommerce-page .sola-catalog-filter-option__input:checked ~ .sola-catalog-filter-option__text {
	color: var(--color-ink);
	font-weight: var(--font-weight-semibold);
}

.woocommerce .sola-catalog-filter-option--color:hover .sola-catalog-filter-option__input:not(:checked) + .sola-catalog-filter-option__swatch,
.woocommerce-page .sola-catalog-filter-option--color:hover .sola-catalog-filter-option__input:not(:checked) + .sola-catalog-filter-option__swatch {
	/* Keep hover visible without overriding the stronger selected ring. */
	box-shadow: 0 0 0 2px var(--color-canvas), 0 0 0 3px var(--color-ink-soft);
}

.woocommerce .sola-catalog-filter-option:not(.sola-catalog-filter-option--color) input,
.woocommerce-page .sola-catalog-filter-option:not(.sola-catalog-filter-option--color) input {
	inline-size: 1.1rem;
	block-size: 1.1rem;
	margin: 0;
	accent-color: var(--color-accent);
}

.woocommerce .sola-catalog-filter-group__empty,
.woocommerce-page .sola-catalog-filter-group__empty {
	margin: var(--space-2) 0 0;
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
	line-height: var(--line-height-body);
}

.woocommerce .sola-catalog-filter-price-fields,
.woocommerce-page .sola-catalog-filter-price-fields {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: end;
	gap: var(--space-2);
	margin-block-start: var(--space-2);
	direction: rtl;
}

.woocommerce .sola-catalog-filter-price-fields label,
.woocommerce-page .sola-catalog-filter-price-fields label {
	display: grid;
	gap: var(--space-1);
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
}

.woocommerce .sola-catalog-filter-price-field__control,
.woocommerce-page .sola-catalog-filter-price-field__control {
	display: block;
	position: relative;
	min-inline-size: 0;
}

.woocommerce .sola-catalog-filter-price-fields input,
.woocommerce-page .sola-catalog-filter-price-fields input {
	box-sizing: border-box;
	inline-size: 100%;
	min-block-size: 44px;
	padding-block: var(--space-2);
	/* The input itself is LTR for numeric readability: leave the extra room
	 * on its physical-left inline-start where the RTL shekel suffix sits. */
	padding-inline: calc(var(--space-2) + 1.5rem) var(--space-2);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-button);
	background: var(--color-canvas);
	color: var(--color-ink);
	direction: ltr;
	font: inherit;
	text-align: end;
}

.woocommerce .sola-catalog-filter-price-field__currency,
.woocommerce-page .sola-catalog-filter-price-field__currency {
	position: absolute;
	inset-block-start: 50%;
	inset-inline-end: var(--space-2);
	color: var(--color-ink-soft);
	direction: ltr;
	font-weight: var(--font-weight-semibold);
	line-height: 1;
	pointer-events: none;
	transform: translateY(-50%);
}

.woocommerce .sola-catalog-filter-price-fields input:focus-visible,
.woocommerce-page .sola-catalog-filter-price-fields input:focus-visible {
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

.woocommerce .sola-catalog-filter-price-separator,
.woocommerce-page .sola-catalog-filter-price-separator {
	padding-block-end: 0.7rem;
	color: var(--color-ink-soft);
}

.woocommerce .sola-catalog-filter-overlay,
.woocommerce-page .sola-catalog-filter-overlay {
	display: none;
}

.woocommerce .sola-catalog-filter-panel__actions,
.woocommerce-page .sola-catalog-filter-panel__actions {
	display: none;
}

@media (min-width: 970px) {
	.woocommerce .sola-catalog-results-layout > #wc-column-container,
	.woocommerce-page .sola-catalog-results-layout > #wc-column-container {
		/* Article switches from its drawer to desktop controls at 970px. Keep
		 * the physical-right rail at Article's explicit 235px large-desktop
		 * width, with the existing bounded Sola inter-column gap. */
		grid-template-columns: minmax(0, 1fr) 14.6875rem;
		column-gap: clamp(var(--space-6), 4vw, var(--space-12));
		direction: ltr;
	}

	.woocommerce .sola-catalog-results-layout > #wc-column-container > .sola-catalog-toolbar,
	.woocommerce-page .sola-catalog-results-layout > #wc-column-container > .sola-catalog-toolbar {
		grid-column: 2;
		grid-row: 1;
		padding-inline: 0 0;
		direction: rtl;
	}

	.woocommerce .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column,
	.woocommerce-page .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column {
		grid-column: 1;
		grid-row: 1;
		direction: rtl;
	}

}

/* Fallback for installations where the outer WooCommerce column wrapper is
 * an ancestor rather than a child of the owned layout. The hook stream still
 * gives the child layout direct access to the toolbar, product list, and
 * controls column, so the same rail/results geometry remains deterministic. */
@media (min-width: 970px) {
	.woocommerce .sola-catalog-results-layout,
	.woocommerce-page .sola-catalog-results-layout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 14.6875rem;
		column-gap: clamp(var(--space-6), 4vw, var(--space-12));
		direction: ltr;
	}

	.woocommerce .sola-catalog-results-layout > #wc-column-container,
	.woocommerce-page .sola-catalog-results-layout > #wc-column-container {
		grid-column: 1 / -1;
		grid-row: 1 / span 2;
	}

	.woocommerce .sola-catalog-results-layout > .sola-catalog-toolbar,
	.woocommerce-page .sola-catalog-results-layout > .sola-catalog-toolbar {
		grid-column: 2;
		grid-row: 1;
	}

	.woocommerce .sola-catalog-results-layout > .sola-catalog-product-results-column,
	.woocommerce-page .sola-catalog-results-layout > .sola-catalog-product-results-column {
		grid-column: 1;
		grid-row: 1;
	}

}

@media (max-width: 969.99px) {
	.woocommerce .term-description,
	.woocommerce .page-description,
	.woocommerce-page .term-description,
	.woocommerce-page .page-description {
		/* Optional admin-owned copy remains readable, without a nested scroller. */
		position: static;
		inline-size: auto;
		block-size: auto;
		max-block-size: none;
		margin-block: 0 var(--space-3);
		overflow: visible;
		clip: auto;
		white-space: normal;
		border: 0;
	}

	.woocommerce .sola-catalog-results-layout > #wc-column-container,
	.woocommerce-page .sola-catalog-results-layout > #wc-column-container {
		/* The desktop rail rule gives the results column an explicit first grid
		 * row. Return the mobile wrapper to normal flow so the DOM-order toolbar
		 * stays before product discovery instead of after the full product list. */
		display: block;
		direction: rtl;
	}

	.woocommerce .sola-catalog-toolbar,
	.woocommerce-page .sola-catalog-toolbar {
		/* Article's saved mobile toolbar is a 20px title row with 8px
		 * vertical padding. Keep the Sola row at 44px minimum: 44px +
		 * 16px padding + 1px separator = 61px, below the 64px task cap. */
		position: sticky;
		inset-block-start: 0;
		z-index: 20;
		display: block;
		box-sizing: border-box;
		inline-size: 100%;
		margin-block: 0 var(--space-4);
		padding-block: var(--space-2);
		padding-inline: 0;
		border-block-end: 1px solid rgba(32, 34, 30, 0.12);
		background-color: rgba(255, 255, 255, 0.94);
		box-shadow: 0 0.375rem 1rem rgba(32, 34, 30, 0.05);
		-webkit-backdrop-filter: blur(0.75rem) saturate(1.05);
		backdrop-filter: blur(0.75rem) saturate(1.05);
		isolation: isolate;
	}

	.woocommerce .sola-catalog-toolbar__mobile-bar,
	.woocommerce-page .sola-catalog-toolbar__mobile-bar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--space-3);
		min-block-size: 44px;
		min-inline-size: 0;
		direction: rtl;
	}

	.woocommerce .sola-catalog-toolbar__mobile-title,
	.woocommerce-page .sola-catalog-toolbar__mobile-title {
		display: block;
		flex: 1 1 auto;
		min-inline-size: 0;
		max-inline-size: 100%;
		margin: 0;
		overflow: hidden;
		color: var(--color-ink);
		font-size: 1.25rem;
		font-weight: var(--font-weight-semibold);
		line-height: 1.2;
		text-overflow: ellipsis;
		text-align: start;
		unicode-bidi: plaintext;
		white-space: nowrap;
	}

	.woocommerce .woocommerce-products-header__title,
	.woocommerce-page .woocommerce-products-header__title {
		display: none;
	}

	.woocommerce .woocommerce-products-header:has(> .term-description) .woocommerce-products-header__title,
	.woocommerce-page .woocommerce-products-header:has(> .term-description) .woocommerce-products-header__title {
		display: block;
	}

	.woocommerce .sola-catalog-toolbar__trigger,
	.woocommerce-page .sola-catalog-toolbar__trigger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		gap: var(--space-1);
		min-inline-size: 44px;
		min-block-size: 44px;
		padding-block: var(--space-2);
		padding-inline: var(--space-3);
		border: 1px solid var(--color-border);
		border-radius: var(--radius-button);
		background: transparent;
		color: var(--color-accent);
		font: inherit;
		font-size: 1rem;
		font-weight: var(--font-weight-semibold);
		line-height: 1.25;
		text-align: center;
		white-space: nowrap;
		cursor: pointer;
	}

	.woocommerce .sola-catalog-toolbar__trigger:hover,
	.woocommerce .sola-catalog-toolbar__trigger:focus-visible,
	.woocommerce-page .sola-catalog-toolbar__trigger:hover,
	.woocommerce-page .sola-catalog-toolbar__trigger:focus-visible {
		border-color: var(--color-border-strong);
		background: var(--color-surface);
		color: var(--color-accent-hover);
	}

	.woocommerce .sola-catalog-toolbar__trigger[aria-expanded="true"],
	.woocommerce-page .sola-catalog-toolbar__trigger[aria-expanded="true"] {
		border-color: var(--color-ink);
		background: var(--color-ink);
		color: var(--color-white);
	}

	.woocommerce .sola-catalog-toolbar__count,
	.woocommerce-page .sola-catalog-toolbar__count {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-inline-size: 1.35rem;
		block-size: 1.35rem;
		padding-inline: 0.2rem;
		border-radius: 50%;
		background: var(--color-ink);
		color: var(--color-white);
		font-size: 0.75rem;
		line-height: 1;
	}

	.woocommerce .sola-catalog-toolbar__trigger[aria-expanded="true"] .sola-catalog-toolbar__count,
	.woocommerce-page .sola-catalog-toolbar__trigger[aria-expanded="true"] .sola-catalog-toolbar__count {
		background: var(--color-white);
		color: var(--color-ink);
	}

	.woocommerce .sola-catalog-filter-panel,
	.woocommerce-page .sola-catalog-filter-panel {
		position: fixed;
		inset-block: 0;
		inset-inline: 0;
		z-index: 1001;
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
		/* The panel sits inside the sticky toolbar for native GET form
		 * ownership. Give it an explicit viewport block size because the
		 * toolbar's backdrop-filter otherwise becomes its fixed-position
		 * containing block and collapses the drawer to the 56px toolbar row. */
		block-size: 100vh;
		block-size: 100dvh;
		min-block-size: 0;
		max-block-size: 100dvh;
		inline-size: 100vw;
		max-inline-size: 100vw;
		padding-block: var(--space-4) 0;
		padding-block: max(var(--space-4), env(safe-area-inset-top, 0px)) 0;
		padding-inline: var(--space-4);
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--color-canvas);
		box-shadow: 0 0 2rem rgba(0, 0, 0, 0.16);
		/* Keep the invisible fixed panel inside the RTL scrollable canvas. */
		transform: none;
		visibility: hidden;
		transition: none;
	}

	.woocommerce .sola-catalog-filter-panel.is-open,
	.woocommerce-page .sola-catalog-filter-panel.is-open {
		transform: translateX(0);
		visibility: visible;
	}

	.woocommerce .sola-catalog-filter-panel__header,
	.woocommerce-page .sola-catalog-filter-panel__header {
		padding-block-end: var(--space-3);
	}

	.woocommerce .sola-catalog-filter-panel__close,
	.woocommerce-page .sola-catalog-filter-panel__close {
		display: inline-flex;
	}

	.woocommerce .sola-catalog-filter-panel__header .woocommerce-result-count,
	.woocommerce-page .sola-catalog-filter-panel__header .woocommerce-result-count {
		margin-block-start: var(--space-1);
	}

	.woocommerce .sola-catalog-filter-panel__actions,
	.woocommerce-page .sola-catalog-filter-panel__actions {
		display: grid;
		position: sticky;
		z-index: 2;
		inset-block-end: 0;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
		gap: var(--space-3);
		margin-block-start: auto;
		margin-inline: calc(-1 * var(--space-4));
		padding-block: var(--space-4) max(var(--space-4), env(safe-area-inset-bottom, 0px));
		padding-inline: var(--space-4);
		border-block-start: 1px solid var(--color-border);
		background: var(--color-canvas);
		box-shadow: 0 -0.5rem 1.25rem rgba(32, 34, 30, 0.06);
	}

	.woocommerce .sola-catalog-filter-panel__clear,
	.woocommerce-page .sola-catalog-filter-panel__clear,
	.woocommerce .sola-catalog-filter-panel__apply,
	.woocommerce-page .sola-catalog-filter-panel__apply {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-block-size: 3.5rem;
		border-radius: 0;
		font-weight: var(--font-weight-semibold);
		text-decoration: none;
	}

	.woocommerce .sola-catalog-filter-panel__clear,
	.woocommerce-page .sola-catalog-filter-panel__clear {
		border: 1px solid var(--color-border-strong);
		color: var(--color-ink);
	}

	.woocommerce .sola-catalog-filter-overlay,
	.woocommerce-page .sola-catalog-filter-overlay {
		position: fixed;
		inset: 0;
		z-index: 1000;
		display: block;
		background: rgba(18, 18, 18, 0.42);
		opacity: 0;
		pointer-events: none;
		visibility: hidden;
		transition: opacity 180ms ease, visibility 180ms ease;
	}

	.woocommerce .sola-catalog-filter-overlay.is-open,
	.woocommerce-page .sola-catalog-filter-overlay.is-open {
		opacity: 1;
		pointer-events: auto;
		visibility: visible;
	}

	body.sola-filter-drawer-open {
		overflow: hidden;
	}

	/* backdrop-filter establishes a containing block for fixed descendants in
	 * Chromium. Remove it only while the modal is open so the panel and its
	 * overlay are viewport-bound while the closed sticky bar keeps its glass
	 * treatment. */
	body.sola-filter-drawer-open .sola-catalog-toolbar {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce .sola-catalog-filter-panel,
	.woocommerce-page .sola-catalog-filter-panel,
	.woocommerce .sola-catalog-filter-overlay,
	.woocommerce-page .sola-catalog-filter-overlay {
		transition: none;
	}
}

/*
 * Mobile catalog card geometry: keep the decision copy in the guttered rail,
 * while the one reserved media frame reaches both catalog content edges.
 * The frame owns the breakout and its clipping; primary/secondary images stay
 * stacked in that same frame, so no hover or focus state changes geometry.
 */
@media (max-width: 767px) {
	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card.sola-product-card--catalog > .wc-product-image,
	body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card.sola-product-card--catalog > .wc-product-image {
		/* Use the smaller of the layout viewport and the gutter-restored
		 * catalog width so a reserved scrollbar never creates horizontal
		 * overflow. The negative gutters then center the single media frame
		 * against the available viewport edge. */
		box-sizing: border-box;
		inline-size: min(100vw, calc(100% + var(--container-gutter) + var(--container-gutter)));
		max-inline-size: min(100vw, calc(100% + var(--container-gutter) + var(--container-gutter)));
		margin-inline: calc(-1 * var(--container-gutter));
	}

	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card.sola-product-card--catalog .woocommerce-loop-product__title,
	body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card.sola-product-card--catalog .woocommerce-loop-product__title,
	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card.sola-product-card--catalog .price,
	body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card.sola-product-card--catalog .price {
		padding-inline-start: var(--space-3);
	}

	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card.sola-product-card--catalog .onsale,
	body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card.sola-product-card--catalog .onsale,
	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product.sola-product-card.sola-product-card--catalog .sola-product-card__badge,
	body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card.sola-product-card--catalog .sola-product-card__badge {
		inset-inline-start: var(--space-3);
	}

	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > ul.products > li.product.sola-product-card.sola-product-card--catalog > a.button.sola-button.sola-product-card__action--icon,
	body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card.sola-product-card--catalog > a.button.sola-button.sola-product-card__action--icon,
	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > ul.products > li.product.sola-product-card.sola-product-card--catalog > a.added_to_cart,
	body.search #primary .site-main.sola-product-search ul.products > li.product.sola-product-card.sola-product-card--catalog > a.added_to_cart {
		inset-inline-end: var(--space-3);
	}
}

/* Catalog interaction refinements: keep the count's DOM and visual order
 * explicit in RTL, and keep every sort choice as a full-width vertical row. */
.woocommerce .sola-catalog-result-count,
.woocommerce-page .sola-catalog-result-count {
		display: inline-flex;
		align-items: baseline;
		flex-direction: row;
		gap: 0.35em;
		direction: rtl;
		unicode-bidi: isolate;
		white-space: nowrap;
}

.woocommerce .sola-catalog-result-count__number,
.woocommerce-page .sola-catalog-result-count__number,
.woocommerce .sola-catalog-result-count__label,
.woocommerce-page .sola-catalog-result-count__label {
		display: inline-block;
		unicode-bidi: isolate;
}

.woocommerce .sola-catalog-result-count__label,
.woocommerce-page .sola-catalog-result-count__label {
		direction: rtl;
}

.woocommerce .sola-catalog-filter-group--sort,
.woocommerce-page .sola-catalog-filter-group--sort {
		inline-size: 100%;
	}

.woocommerce .sola-catalog-orderby-options,
.woocommerce-page .sola-catalog-orderby-options {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-1);
		inline-size: 100%;
		min-inline-size: 0;
}

.woocommerce .sola-catalog-orderby-option,
.woocommerce-page .sola-catalog-orderby-option {
		inline-size: 100%;
		box-sizing: border-box;
		min-block-size: 44px;
		padding-inline: var(--space-1);
	}

/* The server-rendered number fields remain visible below the progressive
 * double-range enhancement. They are the only visible value owner and named
 * GET submission source. */
.woocommerce .sola-catalog-filter-price-range,
.woocommerce-page .sola-catalog-filter-price-range {
		display: none;
}

html.sola-catalog-filters-js .woocommerce .sola-catalog-filter-price-range,
html.sola-catalog-filters-js .woocommerce-page .sola-catalog-filter-price-range {
		display: grid;
		gap: var(--space-2);
		margin-block-start: var(--space-2);
}

.woocommerce .sola-catalog-filter-price-range__sliders,
.woocommerce-page .sola-catalog-filter-price-range__sliders {
	position: relative;
	display: grid;
	align-items: center;
	min-block-size: 44px;
	isolation: isolate;
	direction: rtl;
}

.woocommerce .sola-catalog-filter-price-range__sliders::before,
.woocommerce-page .sola-catalog-filter-price-range__sliders::before {
		content: '';
		position: absolute;
		inset-inline: 0;
		block-size: 4px;
		border-radius: 999px;
		background: rgba(128, 122, 112, 0.44);
}

.woocommerce .sola-catalog-filter-price-range__sliders::after,
.woocommerce-page .sola-catalog-filter-price-range__sliders::after {
	content: '';
	position: absolute;
	inset-inline-start: var(--sola-price-range-start, 0%);
	inline-size: max(4px, var(--sola-price-range-size, 100%));
	block-size: 4px;
	border-radius: 999px;
	background: var(--color-accent);
		pointer-events: none;
}

.woocommerce .sola-catalog-filter-price-range__input,
.woocommerce-page .sola-catalog-filter-price-range__input {
		grid-area: 1 / 1;
		inline-size: 100%;
		block-size: 44px;
		margin: 0;
		padding: 0;
		appearance: none;
		-webkit-appearance: none;
	background: transparent;
	color: transparent;
	pointer-events: none;
	direction: rtl;
}

.woocommerce .sola-catalog-filter-price-range__input--min,
.woocommerce-page .sola-catalog-filter-price-range__input--min {
		z-index: 2;
}

.woocommerce .sola-catalog-filter-price-range__input--max,
.woocommerce-page .sola-catalog-filter-price-range__input--max {
		z-index: 3;
}

.woocommerce .sola-catalog-filter-price-range__input::-webkit-slider-runnable-track,
.woocommerce-page .sola-catalog-filter-price-range__input::-webkit-slider-runnable-track {
		block-size: 4px;
		background: transparent;
}

.woocommerce .sola-catalog-filter-price-range__input::-moz-range-track,
.woocommerce-page .sola-catalog-filter-price-range__input::-moz-range-track {
		block-size: 4px;
		background: transparent;
}

.woocommerce .sola-catalog-filter-price-range__input::-webkit-slider-thumb,
.woocommerce-page .sola-catalog-filter-price-range__input::-webkit-slider-thumb {
		inline-size: 24px;
		block-size: 24px;
		margin-block-start: -10px;
		appearance: none;
		-webkit-appearance: none;
		border: 2px solid var(--color-canvas);
		border-radius: 50%;
		background: var(--color-accent);
		box-shadow: 0 0 0 1px var(--color-accent), 0 2px 5px rgba(32, 34, 30, 0.18);
		pointer-events: auto;
		cursor: grab;
}

.woocommerce .sola-catalog-filter-price-range__input::-moz-range-thumb,
.woocommerce-page .sola-catalog-filter-price-range__input::-moz-range-thumb {
		inline-size: 20px;
		block-size: 20px;
		border: 2px solid var(--color-canvas);
		border-radius: 50%;
		background: var(--color-accent);
		box-shadow: 0 0 0 1px var(--color-accent), 0 2px 5px rgba(32, 34, 30, 0.18);
		pointer-events: auto;
		cursor: grab;
}

.woocommerce .sola-catalog-filter-price-range__input:active::-webkit-slider-thumb,
.woocommerce-page .sola-catalog-filter-price-range__input:active::-webkit-slider-thumb,
.woocommerce .sola-catalog-filter-price-range__input:active::-moz-range-thumb,
.woocommerce-page .sola-catalog-filter-price-range__input:active::-moz-range-thumb {
		cursor: grabbing;
}

.woocommerce .sola-catalog-filter-price-range__input:focus-visible,
.woocommerce-page .sola-catalog-filter-price-range__input:focus-visible {
		outline: var(--focus-width) solid var(--focus-color);
		outline-offset: var(--focus-offset);
	}

/* The product-results column is opened before the native product list and
 * closed after native pagination. It is therefore a single grid item beside
 * the desktop rail, with progressive controls in the list's own flow. */
.woocommerce .sola-catalog-product-results-column,
.woocommerce-page .sola-catalog-product-results-column {
		grid-column: 1;
		grid-row: 1;
		inline-size: 100%;
		min-inline-size: 0;
		margin: 0;
	}

.woocommerce .sola-catalog-product-results-column > .sola-catalog-progressive,
.woocommerce-page .sola-catalog-product-results-column > .sola-catalog-progressive {
		inline-size: 100%;
		max-inline-size: none;
		margin-inline: 0;
	}

.woocommerce .sola-catalog-product-results-column > .woocommerce-pagination,
.woocommerce-page .sola-catalog-product-results-column > .woocommerce-pagination {
		grid-column: 1;
	}

@media (max-width: 969.99px) {
	/* Break the sticky surface back out of the guttered column without using a
	 * negative viewport width. The min() cap keeps scrollbar-reserved layouts
	 * from producing a horizontal page seam or overflow. */
	.woocommerce .sola-catalog-results-layout > #wc-column-container > .sola-catalog-toolbar,
	.woocommerce-page .sola-catalog-results-layout > #wc-column-container > .sola-catalog-toolbar {
		inline-size: min(100vw, calc(100% + var(--container-gutter) + var(--container-gutter)));
		max-inline-size: min(100vw, calc(100% + var(--container-gutter) + var(--container-gutter)));
		margin-inline: calc(-1 * var(--container-gutter));
		padding-block-start: max(0.25rem, env(safe-area-inset-top, 0px));
		padding-block-end: max(0.25rem, env(safe-area-inset-bottom, 0px));
		padding-inline-start: max(var(--container-gutter), env(safe-area-inset-right, 0px));
		padding-inline-end: max(var(--container-gutter), env(safe-area-inset-left, 0px));
		border-block-end: 0;
		background-color: rgba(255, 255, 255, 0.84);
		box-shadow: 0 0.5rem 1.25rem rgba(32, 34, 30, 0.05);
	}

	.woocommerce .sola-catalog-toolbar__mobile-bar,
	.woocommerce-page .sola-catalog-toolbar__mobile-bar {
		min-block-size: 48px;
	}

	.woocommerce .sola-catalog-toolbar__mobile-title,
	.woocommerce-page .sola-catalog-toolbar__mobile-title {
		font-size: 1.25rem;
		line-height: 1.25;
	}

	.woocommerce .sola-catalog-toolbar__trigger,
	.woocommerce-page .sola-catalog-toolbar__trigger {
		min-inline-size: 48px;
		border-radius: 0;
		border-start-end-radius: 0;
		border-end-start-radius: 0;
		min-block-size: 48px;
		padding-inline: var(--space-3);
		border-color: var(--color-accent);
		background: var(--color-accent);
		color: var(--color-white);
		font-size: 1.0625rem;
		line-height: 1.25;
	}

	.woocommerce .sola-catalog-toolbar__trigger:hover,
	.woocommerce .sola-catalog-toolbar__trigger:focus-visible,
	.woocommerce-page .sola-catalog-toolbar__trigger:hover,
	.woocommerce-page .sola-catalog-toolbar__trigger:focus-visible {
		border-color: var(--color-accent-hover);
		background: var(--color-accent-hover);
		color: var(--color-white);
	}

	.woocommerce .sola-catalog-toolbar__trigger[aria-expanded="true"],
	.woocommerce-page .sola-catalog-toolbar__trigger[aria-expanded="true"] {
		border-color: var(--color-ink);
		background: var(--color-ink);
		color: var(--color-white);
	}
}

@media (max-width: 767px) {
	/* Keep every catalog/search product media frame edge-to-edge even when a
	 * product card variant omits the catalog modifier class. */
	body.woocommerce-page:not(.home) #primary .site-main .sola-catalog-results-layout > #wc-column-container > .sola-catalog-product-results-column > ul.products > li.product > .wc-product-image,
	body.search #primary .site-main.sola-product-search ul.products > li.product > .wc-product-image {
		box-sizing: border-box;
		inline-size: min(100vw, calc(100% + var(--container-gutter) + var(--container-gutter)));
		max-inline-size: min(100vw, calc(100% + var(--container-gutter) + var(--container-gutter)));
		margin-inline: calc(-1 * var(--container-gutter));
		border-radius: 0;
	}
}
