/* -------------------------------------------------------------------------------- */
/*	X. Shop Archive Filter Sidebar
/* -------------------------------------------------------------------------------- */

.shop-archive-sidebar {
	max-height: calc( 100vh - 48px );
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: var(--gray-300) transparent;
}

.shop-archive-sidebar .widget {
	background: #fff;
	border: 1px solid var(--gray-200);
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba( 15, 23, 42, 0.04 );
	margin-top: 16px;
	padding: 18px 18px 20px;
	transition: border-color .18s ease, box-shadow .18s ease;
}

.shop-archive-sidebar .widget:first-child {
	margin-top: 0;
}

.shop-archive-sidebar .widget-title {
	border-bottom: 1px solid var(--gray-100);
	color: var(--gray-900);
	margin: -4px 0 14px;
	padding-bottom: 10px;
}

.shop-archive-sidebar .widget-content {
	font-size: 15px;
}

.shop-archive-sidebar .widget-content ul {
	margin: 0;
}

.shop-archive-sidebar li {
	list-style: none;
	margin: 0 0 10px;
}

.shop-archive-sidebar li:last-child {
	margin-bottom: 0;
}

.shop-archive-sidebar a {
	color: var(--gray-600);
	text-decoration: none;
	transition: color .15s ease;
}

.shop-archive-sidebar a:hover {
	color: var(--gray-900);
}

/* Category / layered-nav counts as subtle pills */
.shop-archive-sidebar .count {
	background: var(--gray-100);
	border-radius: 999px;
	color: var(--gray-500);
	display: inline-block;
	font-family: Archivo, 'Helvetica Neue', Helvetica, sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	margin-left: 6px;
	padding: 3px 8px;
}

/* Chosen filter state */
.shop-archive-sidebar .chosen a,
.shop-archive-sidebar .woocommerce-widget-layered-nav-list__item--chosen a {
	color: var(--gray-900);
	font-weight: 600;
}

/* Checkboxes and radios */
.shop-archive-sidebar input[type="checkbox"],
.shop-archive-sidebar input[type="radio"] {
	accent-color: var(--gray-900);
	height: 16px;
	margin: 0 8px 2px 0;
	vertical-align: middle;
	width: 16px;
}

/* Price slider */
.shop-archive-sidebar .price_slider_wrapper {
	margin-top: 14px;
}

.shop-archive-sidebar .price_slider {
	background: var(--gray-200);
	border-radius: 999px;
	height: 4px;
	margin: 12px 0 18px;
	position: relative;
}

.shop-archive-sidebar .price_slider .ui-slider-range {
	background: var(--gray-800);
	border-radius: 999px;
	top: 0;
}

.shop-archive-sidebar .price_slider .ui-slider-handle {
	background: #fff;
	border: 2px solid var(--gray-800);
	border-radius: 50%;
	cursor: pointer;
	height: 16px;
	margin-left: -8px;
	top: -7px;
	outline: none;
	width: 16px;
}

.shop-archive-sidebar .price_slider_amount {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: space-between;
}

.shop-archive-sidebar .price_slider_amount input[type="text"] {
	background: var(--gray-50);
	border: 1px solid var(--gray-200);
	border-radius: 8px;
	font-size: 13px;
	padding: 7px 10px;
	width: 84px;
}

.shop-archive-sidebar .price_slider_amount .price_label {
	color: var(--gray-600);
	font-size: 13px;
}

/* Filter apply buttons */
.shop-archive-sidebar button[type="submit"],
.shop-archive-sidebar .woocommerce-widget-layered-nav-dropdown__submit,
.shop-archive-sidebar .price_slider_amount .button {
	background: var(--gray-900);
	border: 1px solid var(--gray-900);
	border-radius: 8px;
	color: #fff;
	cursor: pointer;
	font-family: Archivo, 'Helvetica Neue', Helvetica, sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	padding: 10px 14px;
	transition: background-color .15s ease;
}

.shop-archive-sidebar button[type="submit"]:hover,
.shop-archive-sidebar .woocommerce-widget-layered-nav-dropdown__submit:hover,
.shop-archive-sidebar .price_slider_amount .button:hover {
	background: var(--gray-800);
}

/* Keep the mobile collapsed-filter layout intact (filter toggle in wc-19/wc-21) */
@media ( max-width: 800px ) {
	.shop-archive-sidebar {
		max-height: none;
		overflow: visible;
	}

	.shop-archive-sidebar .widget {
		border-radius: 12px;
		box-shadow: none;
		margin-top: 12px;
		padding: 14px;
	}

	.shop-archive-sidebar .widget-title {
		margin: 0 0 10px;
		padding-bottom: 8px;
	}
}

/* -------------------------------------------------------------------------------- */
/*	XI. Shop Sidebar WooCommerce Block Widgets
/* -------------------------------------------------------------------------------- */

/* Product Categories block -------------------------------------- */

.shop-archive-sidebar .wc-block-product-categories {
	margin: 0;
}

.shop-archive-sidebar .wc-block-product-categories ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.shop-archive-sidebar .wc-block-product-categories-list-item {
	display: flex;
	align-items: baseline;
	gap: 10px;
	justify-content: space-between;
	list-style: none;
	margin: 0;
	padding: 9px 2px;
}

.shop-archive-sidebar .wc-block-product-categories-list li + li {
	border-top: 1px solid var(--gray-100);
}

/* Nested categories indent under their parent */
.shop-archive-sidebar .wc-block-product-categories-list-item ul {
	padding-left: 14px;
}

.shop-archive-sidebar .wc-block-product-categories-list-item__name {
	font-size: 15px;
}

/* Replace the default "(34)" count with a pill */
.shop-archive-sidebar .wc-block-product-categories-list-item-count:before,
.shop-archive-sidebar .wc-block-product-categories-list-item-count:after {
	content: none;
}

.shop-archive-sidebar .wc-block-product-categories-list-item-count {
	background: var(--gray-100);
	border-radius: 999px;
	color: var(--gray-500);
	flex-shrink: 0;
	font-family: Archivo, 'Helvetica Neue', Helvetica, sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	padding: 3px 8px;
	white-space: nowrap;
}

.shop-archive-sidebar .wc-block-product-categories-list-item:hover .wc-block-product-categories-list-item-count {
	background: var(--gray-200);
	color: var(--gray-700);
}

/* Product Filters block ----------------------------------------- */

.shop-archive-sidebar .wc-block-product-filters {
	--wc-product-filter-block-spacing: 18px;
	color: var(--text-color);
}

/* "Filters" heading and per-group headings ("Price", "Stock status", …) */
.shop-archive-sidebar .wc-block-product-filters .wp-block-heading {
	color: var(--gray-900);
	font-family: Archivo, 'Helvetica Neue', Helvetica, sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .02em;
	margin: 0 0 2px;
}

/* Active-filter chips */
.shop-archive-sidebar .wc-block-product-filter-removable-chips__items .wc-block-product-filter-removable-chips__item {
	background: var(--gray-100);
	border-color: var(--gray-200);
	border-radius: 999px;
}

/* Checkbox lists (taxonomy, stock status, rating, attribute) */
.shop-archive-sidebar .wc-block-product-filter-checkbox-list {
	--wc-product-filter-checkbox-list-option-element: #fff;
	--wc-product-filter-checkbox-list-option-element-border: var(--gray-300);
	--wc-product-filter-checkbox-list-option-element-selected: var(--gray-900);
	--wc-product-filter-checkbox-list-label-element: var(--text-color);
}

.shop-archive-sidebar .wc-block-product-filter-checkbox-list__item {
	padding: 6px 0;
}

.shop-archive-sidebar .wc-block-product-filter-checkbox-list__label:hover {
	color: var(--gray-900);
}

.shop-archive-sidebar .wc-block-product-filter-checkbox-list__label:hover .wc-block-product-filter-checkbox-list__input {
	border-color: var(--gray-500);
}

/* Price slider */
.shop-archive-sidebar .wc-block-product-filter-price-slider {
	--wc-product-filter-price-slider: var(--gray-900);
	--wc-product-filter-price-slider-handle: #fff;
	--wc-product-filter-price-slider-handle-border: var(--gray-900);
}

.shop-archive-sidebar .wc-block-product-filter-price-slider .text input[type=text] {
	background: var(--gray-50);
	border: 1px solid var(--gray-200);
	border-radius: 8px;
	font-size: 13px;
	padding: 7px 10px;
	transition: border-color .15s ease;
}

.shop-archive-sidebar .wc-block-product-filter-price-slider .text input[type=text]:focus {
	border-color: var(--gray-500);
	outline: none;
}

/* -------------------------------------------------------------------------------- */
/*	XII. Shop Sidebar Collapsible Cards (mobile only)
/* -------------------------------------------------------------------------------- */

/* The generated header row is mobile-only; on desktop the markup stays neutral. */
.shop-archive-sidebar .sullivan-m-widget__head {
	display: none;
}

@media ( max-width: 800px ) {

	.shop-archive-sidebar .widget.sullivan-m-widget {
		overflow: hidden;
		padding: 0;
	}

	.shop-archive-sidebar .sullivan-m-widget__head {
		align-items: center;
		background: none;
		border: 0;
		color: var(--gray-900);
		cursor: pointer;
		display: flex;
		gap: 10px;
		justify-content: space-between;
		padding: 13px 14px;
		width: 100%;
	}

	.shop-archive-sidebar .sullivan-m-widget__label {
		font-family: Archivo, 'Helvetica Neue', Helvetica, sans-serif;
		font-size: 12px;
		font-weight: 600;
		letter-spacing: .04em;
		text-transform: uppercase;
	}

	.shop-archive-sidebar .sullivan-m-widget__head svg {
		color: var(--gray-500);
		flex-shrink: 0;
		transition: transform .25s ease;
	}

	.shop-archive-sidebar .sullivan-m-widget:not( .is-collapsed ) .sullivan-m-widget__head svg {
		transform: rotate( 180deg );
	}

	.shop-archive-sidebar .sullivan-m-widget__body {
		display: grid;
		grid-template-rows: 1fr;
		transition: grid-template-rows .3s ease;
	}

	.shop-archive-sidebar .sullivan-m-widget__body-inner {
		min-height: 0;
		overflow: hidden;
	}

	.shop-archive-sidebar .sullivan-m-widget__body .widget-content {
		padding: 0 14px 14px;
	}

	/* Classic widgets keep their title inside the content — the header replaces it. */
	.shop-archive-sidebar .sullivan-m-widget__body .widget-title {
		display: none;
	}

	.shop-archive-sidebar .sullivan-m-widget.is-collapsed .sullivan-m-widget__body {
		grid-template-rows: 0fr;
	}
}

@media ( max-width: 600px ) {

	/* WooCommerce's Product Filters block renders its own "Filter products"
	   trigger below 600px — keep the card open and drop the duplicate header. */
	.shop-archive-sidebar .widget.sullivan-m-widget--filters .sullivan-m-widget__head {
		display: none;
	}

	.shop-archive-sidebar .widget.sullivan-m-widget--filters .sullivan-m-widget__body,
	.shop-archive-sidebar .widget.sullivan-m-widget--filters.is-collapsed .sullivan-m-widget__body {
		grid-template-rows: 1fr;
	}

	/* Redesigned filter trigger — a full-width primary button (opens the modal).
	   The card chrome is dropped so the button stands on its own. */
	.shop-archive-sidebar .widget.sullivan-m-widget--filters {
		background: transparent;
		border: 0;
		box-shadow: none;
	}

	.shop-archive-sidebar .wc-block-product-filters {
		display: block;
		width: 100%;
	}

	.shop-archive-sidebar .wc-block-product-filters__open-overlay {
		background: var(--gray-900);
		border: 1px solid var(--gray-900);
		border-radius: 999px;
		box-shadow: none;
		color: #fff;
		font-weight: 600;
		justify-content: center;
		margin-bottom: 0;
		min-width: 0;
		padding: 14px 18px;
		transition: background-color .15s ease, border-color .15s ease;
		width: 100%;
	}

	.shop-archive-sidebar .wc-block-product-filters__open-overlay:hover,
	.shop-archive-sidebar .wc-block-product-filters__open-overlay:focus {
		background: var(--gray-800);
		border-color: var(--gray-800);
		box-shadow: none;
		color: #fff;
	}

	/* The down-chevron read as "collapsible"; this button opens a modal. */
	.shop-archive-sidebar .wc-block-product-filters__open-overlay:after {
		display: none;
	}

	.shop-archive-sidebar .wc-block-product-filters__open-overlay svg {
		flex-shrink: 0;
		height: 18px;
		width: 18px;
	}
}

@media ( min-width: 601px ) and ( max-width: 800px ) {

	/* The card header replaces the block's own inline "Filters" heading. */
	.shop-archive-sidebar .sullivan-m-widget--filters .wc-block-product-filters__overlay-content > .wp-block-heading:first-child {
		display: none;
	}

	/* WooCommerce switches its Product Filters block to inline rendering from
	   601px up (it hides its own trigger/close chrome there), but wc-19 styles
	   those buttons up to 800px. Hide them again so the expanded card shows a
	   clean inline filter list instead of a stretched modal trigger. */
	.shop-archive-sidebar .wc-block-product-filters__open-overlay,
	.shop-archive-sidebar .wc-block-product-filters__close-overlay,
	.shop-archive-sidebar .wc-block-product-filters__overlay-header {
		display: none;
	}
}