/* ==========================================================================
   HAM Embroidery — Shop filters sidebar
   ========================================================================== */

:root {
	--ham-brand: #a62658;
	--ham-brand-dark: #7d1a42;
	--ham-accent: #d0473e;
	--ham-ink: #241b2e;
	--ham-muted: #7b7286;
	--ham-line: #ece7ef;
	--ham-tint: #fbf6f8;
}

/* --- Card shell ---------------------------------------------------------- */
.products-filter-widget {
	background: #fff;
	border: 1px solid var(--ham-line);
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba(36, 27, 46, .04), 0 12px 32px -20px rgba(36, 27, 46, .22);
	overflow: hidden;
	padding: 0 !important;
	margin-bottom: 28px;
}

/* --- Sidebar heading (printed by the child theme) ----------------------- */
.ham-filter-head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 15px 18px;
	background: linear-gradient(135deg, var(--ham-brand) 0%, var(--ham-brand-dark) 100%);
	color: #fff;
	border-radius: 14px;
	box-shadow: 0 10px 24px -18px rgba(166, 38, 88, .9);
	margin-bottom: 12px;
}

.ham-filter-head__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	flex: 0 0 30px;
	border-radius: 9px;
	background: rgba(255, 255, 255, .16);
}

.ham-filter-head__icon svg { width: 17px; height: 17px; }

.ham-filter-head__text { min-width: 0; }

.ham-filter-head__label {
	display: block;
	font-size: 10px;
	line-height: 1.2;
	letter-spacing: .14em;
	text-transform: uppercase;
	opacity: .72;
}

.ham-filter-head__title {
	display: block;
	margin: 2px 0 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.25;
	color: #fff;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* --- Active filter chips ("Refine by") ---------------------------------- */
.products-filter-widget .products-filter__activated {
	padding: 16px 18px 4px;
	margin: 0;
	border-bottom: 1px solid var(--ham-line);
	background: var(--ham-tint);
}

.products-filter-widget .products-filter__activated.hidden { display: none; }

.products-filter-widget .products-filter__activated-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}

.products-filter-widget .products-filter__activated-heading h6 {
	margin: 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ham-muted);
}

.products-filter-widget .products-filter__activated-heading .reset-button {
	padding: 0;
	border: 0;
	background: none;
	font-size: 12px;
	font-weight: 600;
	color: var(--ham-accent);
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
}

.products-filter-widget .products-filter__activated-heading .reset-button:hover { text-decoration: underline; }

.products-filter-widget .products-filter__activated-items {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding-bottom: 12px;
}

.products-filter-widget .products-filter__activated-items .remove-filtered {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	max-width: 100%;
	padding: 5px 10px 5px 11px;
	border: 1px solid rgba(166, 38, 88, .22);
	border-radius: 999px;
	background: #fff;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--ham-brand);
	text-decoration: none;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.products-filter-widget .products-filter__activated-items .remove-filtered::after {
	content: "";
	width: 12px;
	height: 12px;
	flex: 0 0 12px;
	background-color: currentColor;
	-webkit-mask-image: var(--ham-icon-close);
	mask-image: var(--ham-icon-close);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 12px 12px;
	mask-size: 12px 12px;
	opacity: .65;
}

.products-filter-widget .products-filter__activated-items .remove-filtered:hover {
	background: var(--ham-brand);
	border-color: var(--ham-brand);
	color: #fff;
}

.products-filter-widget .products-filter__activated-items .remove-filtered:hover::after { opacity: 1; }

/* --- Section (accordion) ------------------------------------------------ */
.products-filter-widget .products-filter__filters { padding: 0; }

.products-filter-widget .products-filter__filter {
	padding: 0 18px !important;
	margin: 0;
	border: 0;
	border-bottom: 1px solid var(--ham-line);
}

.products-filter-widget .products-filter__filter:last-child { border-bottom: 0; }

.products-filter-widget .products-filter__filter-name {
	display: flex !important;
	align-items: center;
	gap: 10px;
	padding: 16px 0 !important;
	margin: 0 !important;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--ham-ink);
	cursor: pointer;
	user-select: none;
	transition: color .18s ease;
}

.products-filter-widget .products-filter__filter-name:hover { color: var(--ham-brand); }

/* Section icon */
.products-filter-widget .products-filter__filter-name::before {
	content: "";
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	background-color: var(--ham-brand);
	-webkit-mask-image: var(--ham-icon, var(--ham-icon-tag));
	mask-image: var(--ham-icon, var(--ham-icon-tag));
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 16px 16px;
	mask-size: 16px 16px;
}

/* Chevron */
.products-filter-widget .products-filter__filter-name::after {
	content: "";
	width: 10px;
	height: 10px;
	flex: 0 0 10px;
	margin-left: auto;
	background-color: var(--ham-muted);
	-webkit-mask-image: var(--ham-icon-chevron);
	mask-image: var(--ham-icon-chevron);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 10px 10px;
	mask-size: 10px 10px;
	transform: rotate(0deg);
	transition: transform .22s ease, background-color .18s ease;
}

.products-filter-widget .products-filter__filter.glozin-active > .products-filter__filter-name::after { transform: rotate(180deg); }
.products-filter-widget .products-filter__filter-name:hover::after { background-color: var(--ham-brand); }

.products-filter-widget .products-filter__filter-control { padding-bottom: 18px; }

/* Per-section icons */
.products-filter-widget .products-filter__filter.product_cat  { --ham-icon: var(--ham-icon-grid); }
.products-filter-widget .products-filter__filter.concept      { --ham-icon: var(--ham-icon-bulb); }
.products-filter-widget .products-filter__filter.colour       { --ham-icon: var(--ham-icon-palette); }
.products-filter-widget .products-filter__filter.format       { --ham-icon: var(--ham-icon-file); }
.products-filter-widget .products-filter__filter.price        { --ham-icon: var(--ham-icon-tag); }

/* --- Option rows (shared) ---------------------------------------------- */
.products-filter-widget .products-filter__options li,
.products-filter-widget .filter-list li,
.products-filter-widget .products-filter--checkboxes .filter-checkboxes-item {
	align-items: center;
	justify-content: space-between;
	padding: 7px 10px !important;
	margin: 1px 0;
	border-radius: 9px;
	font-size: 14px;
	line-height: 1.5;
	color: #4a4256;
	transition: background-color .16s ease, color .16s ease;
}

.products-filter-widget .products-filter__options li:hover { background: var(--ham-tint); }

.products-filter-widget .products-filter__option-name {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 14px;
	color: #4a4256;
	transition: color .16s ease;
}

.products-filter-widget .products-filter__options li:hover > .products-filter__option-name { color: var(--ham-brand); }

.products-filter-widget .products-filter__options li.selected {
	background: rgba(166, 38, 88, .07);
}

.products-filter-widget .products-filter__options .selected > .products-filter__option-name {
	color: var(--ham-brand) !important;
	font-weight: 600;
}

/* Count pill */
.products-filter-widget .products-filter__count {
	flex: 0 0 auto;
	min-width: 26px;
	margin-inline-start: 8px;
	padding: 1px 7px;
	border-radius: 999px;
	background: #f3f0f5;
	font-size: 11px;
	font-weight: 600;
	line-height: 18px;
	text-align: center;
	color: var(--ham-muted);
	transition: background-color .16s ease, color .16s ease;
}

.products-filter-widget .products-filter__options li:hover > .products-filter__count,
.products-filter-widget .products-filter__options li.selected > .products-filter__count {
	background: rgba(166, 38, 88, .12);
	color: var(--ham-brand) !important;
}

/* A top-level ".children" list has no parent row: never indent it, never hide it
   (the theme keeps nested lists closed until their parent row is activated). */
.products-filter-widget .products-filter__options > .children {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
}

/* Nested children */
.products-filter-widget .products-filter__options .children {
	width: 100%;
	margin: 4px 0 2px !important;
	padding: 0 0 0 12px !important;
	border-inline-start: 1px solid var(--ham-line);
}

/* Expand/collapse toggler for parent terms */
.products-filter-widget .products-filter--collapsible .products-filter__option-toggler {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	border-radius: 6px;
	transition: background-color .16s ease;
}

.products-filter-widget .products-filter--collapsible .products-filter__option-toggler:hover { background: rgba(166, 38, 88, .1); }

/* --- Checkbox boxes ---------------------------------------------------- */
.products-filter-widget .products-filter--checkboxes .products-filter__option-name {
	padding-inline-start: 28px;
}

.products-filter-widget .products-filter--checkboxes .products-filter__option-name::before {
	width: 18px;
	height: 18px;
	top: 50%;
	transform: translateY(-50%);
	border: 1.5px solid #d7d1de;
	border-radius: 5px;
	background-color: #fff;
}

.products-filter-widget .products-filter--checkboxes li:hover > .products-filter__option-name::before {
	border-color: var(--ham-brand);
	background-color: #fff;
}

.products-filter-widget .products-filter--checkboxes .selected > .products-filter__option-name::before {
	border-color: var(--ham-brand);
	background-color: var(--ham-brand);
}

.products-filter-widget .products-filter--checkboxes .selected > .products-filter__option-name::after {
	top: 50%;
	inset-inline-start: 4px;
	width: 11px;
	height: 8px;
	margin-top: -4px;
}

/* Swatch / button style options (auto display) */
.products-filter-widget .products-filter--swatches,
.products-filter-widget .products-filter__filter .wcboost-variation-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding-inline-start: 10px;
}

/* --- Search box inside a section ---------------------------------------- */
.products-filter-widget .products-filter__search-box {
	width: 100%;
	margin-bottom: 10px;
	padding: 9px 12px 9px 34px;
	border: 1px solid var(--ham-line);
	border-radius: 10px;
	background: #fff var(--ham-icon-search) 11px center / 14px 14px no-repeat;
	font-size: 13px;
	color: var(--ham-ink);
	transition: border-color .16s ease, box-shadow .16s ease;
}

.products-filter-widget .products-filter__search-box:focus {
	border-color: var(--ham-brand);
	box-shadow: 0 0 0 3px rgba(166, 38, 88, .1);
	outline: none;
}

/* --- Scrollable / see-more --------------------------------------------- */
.products-filter-widget .products-filter--scrollable .products-filter__options {
	max-height: 232px;
	overflow-y: auto;
	padding-inline-end: 4px;
	scrollbar-width: thin;
	scrollbar-color: #d9d3e0 transparent;
}

.products-filter-widget .products-filter--scrollable .products-filter__options::-webkit-scrollbar { width: 5px; }
.products-filter-widget .products-filter--scrollable .products-filter__options::-webkit-scrollbar-track { background: transparent; }
.products-filter-widget .products-filter--scrollable .products-filter__options::-webkit-scrollbar-thumb {
	background: #d9d3e0;
	border-radius: 999px;
}

.products-filter-widget .glozin-widget-product-cats-btn {
	margin-top: 8px;
	padding-left: 10px;
}

.products-filter-widget .glozin-widget-product-cats-btn .gz-button-subtle {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--ham-brand);
	cursor: pointer;
	border-bottom: 1px solid rgba(166, 38, 88, .35);
}

/* --- Price slider ------------------------------------------------------- */
.products-filter-widget .price_slider_wrapper {
	display: flex;
	flex-direction: column;
	padding: 4px 12px 2px;
}

/* Track sits above the two amount boxes. WooCommerce ships it with an inline
   display:none and only reveals it once jQuery UI has built the handles, so the
   filter looked like plain text boxes on first paint — show the bare track from
   the start and let the handles drop in. */
.products-filter-widget .price_slider_wrapper .price_slider {
	display: block !important;
	order: -1;
	height: 6px;
	margin: 10px 9px 22px;
	border-radius: 999px;
	background: #efeaf2;
	box-shadow: inset 0 1px 2px rgba(36, 27, 46, .06);
}

.products-filter-widget .price_slider_wrapper .ui-slider {
	position: relative;
	height: 6px;
	border: 0;
	border-radius: 999px;
	background: #efeaf2;
	box-shadow: inset 0 1px 2px rgba(36, 27, 46, .06);
}

.products-filter-widget .price_slider_wrapper .ui-slider .ui-slider-range {
	position: absolute;
	top: 0;
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--ham-brand) 0%, var(--ham-accent) 100%);
}

.products-filter-widget .price_slider_wrapper .ui-slider .ui-slider-handle {
	position: absolute;
	top: 50%;
	width: 18px;
	height: 18px;
	margin: -9px 0 0 -9px;
	border: 2px solid var(--ham-brand);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 8px -1px rgba(166, 38, 88, .45);
	cursor: grab;
	outline: none;
	transition: transform .16s ease, box-shadow .16s ease;
	touch-action: none;
}

.products-filter-widget .price_slider_wrapper .ui-slider .ui-slider-handle:hover,
.products-filter-widget .price_slider_wrapper .ui-slider .ui-slider-handle:focus {
	transform: scale(1.1);
	box-shadow: 0 0 0 6px rgba(166, 38, 88, .12), 0 2px 8px -1px rgba(166, 38, 88, .45);
}

.products-filter-widget .price_slider_wrapper .ui-slider .ui-slider-handle:active {
	cursor: grabbing;
	transform: scale(1.14);
}

/* Min / max amount boxes */
.products-filter-widget .price_slider_amount {
	display: flex;
	align-items: center;
	gap: 8px !important;
	margin-bottom: 0 !important;
	font-size: 13px;
	color: var(--ham-muted);
}

.products-filter-widget .price_slider_amount_input {
	flex: 1 1 0;
	min-width: 0;
	gap: 3px;
	padding: 9px 10px;
	border: 1px solid var(--ham-line);
	border-radius: 10px;
	background: #fff;
	transition: border-color .16s ease, box-shadow .16s ease;
}

.products-filter-widget .price_slider_amount_input:focus-within {
	border-color: var(--ham-brand);
	box-shadow: 0 0 0 3px rgba(166, 38, 88, .1);
}

.products-filter-widget .price_slider_amount_input_currency {
	flex: 0 0 auto;
	font-size: 13px !important;
	color: var(--ham-muted);
}

.products-filter-widget .price_slider_amount_input input {
	width: 100%;
	min-width: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ham-ink);
	outline: none;
}

.products-filter-widget .price_slider_amount_separator {
	flex: 0 0 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: .5;
}

/* The two amount boxes already show the selected range — the duplicate
   "Price: ₹0 — ₹500" line only adds noise. */
.products-filter-widget .price_slider_label { display: none !important; }

.products-filter-widget .price_slider_amount .button { display: none !important; }

/* --- Price ranges + min/max box ---------------------------------------- */
.products-filter-widget .products-filter--ranges .products-filter__option-name .price,
.products-filter-widget .products-filter--ranges .products-filter__option-name bdi {
	font-size: 14px;
	color: inherit;
}

.products-filter-widget .product-filter-box {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
	padding-inline-start: 10px;
}

.products-filter-widget .product-filter-box input[type="number"] {
	flex: 1 1 0;
	width: 100%;
	min-width: 0;
	max-width: none !important;
	padding: 9px 11px;
	border: 1px solid var(--ham-line);
	border-radius: 10px;
	background: #fff;
	font-size: 13px;
	color: var(--ham-ink);
	appearance: textfield;
	-moz-appearance: textfield;
	transition: border-color .16s ease, box-shadow .16s ease;
}

.products-filter-widget .product-filter-box input[type="number"]::-webkit-outer-spin-button,
.products-filter-widget .product-filter-box input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.products-filter-widget .product-filter-box input[type="number"]:focus {
	border-color: var(--ham-brand);
	box-shadow: 0 0 0 3px rgba(166, 38, 88, .1);
	outline: none;
}

.products-filter-widget .product-filter-box .line {
	flex: 0 0 8px;
	height: 1px;
	background: #cfc8d6;
}

.products-filter-widget .product-filter-box .glozin-button-range {
	flex: 1 0 100%;
	margin-top: 2px;
	padding: 10px 15px;
	text-align: center;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--ham-brand) 0%, var(--ham-brand-dark) 100%);
	color: #fff;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.4;
	cursor: pointer;
	transition: filter .18s ease, transform .18s ease;
}

.products-filter-widget .product-filter-box .glozin-button-range:hover {
	filter: brightness(1.08);
	transform: translateY(-1px);
}

/* --- Apply / Clear buttons --------------------------------------------- */
.products-filter-widget .products-filter__button {
	align-items: center;
	gap: 10px;
	margin-top: 0 !important;
	padding: 14px 18px;
	border-top: 1px solid var(--ham-line);
	background: var(--ham-tint);
}

.products-filter-widget .products-filter__button .filter-button {
	flex: 1 1 auto;
	padding: 11px 18px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--ham-brand) 0%, var(--ham-brand-dark) 100%);
	color: #fff;
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: .02em;
	cursor: pointer;
	transition: filter .18s ease, transform .18s ease, box-shadow .18s ease;
}

.products-filter-widget .products-filter__button .filter-button:hover {
	filter: brightness(1.08);
	transform: translateY(-1px);
	box-shadow: 0 8px 18px -10px rgba(166, 38, 88, .7);
}

.products-filter-widget .products-filter__button .reset-button {
	flex: 0 0 auto;
	padding: 10px 16px;
	border: 1px solid rgba(166, 38, 88, .28);
	border-radius: 999px;
	background: #fff;
	font-size: 13px !important;
	font-weight: 600;
	color: var(--ham-brand);
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease;
}

.products-filter-widget .products-filter__button .reset-button:hover {
	background: var(--ham-brand);
	border-color: var(--ham-brand);
	color: #fff;
}

/* Instant filtering: the Apply button is redundant, keep Clear All full width */
.products-filter-widget form.instant-filter .products-filter__button .filter-button { display: none; }
.products-filter-widget form.instant-filter .products-filter__button .reset-button {
	flex: 1 1 auto;
	text-align: center;
}

/* --- Loader ------------------------------------------------------------- */
.products-filter-widget .products-loader .spinner { border-top-color: var(--ham-brand); }

/* Branded overlay while an AJAX filter request is in flight. The theme adds
   .loading to the product list and appends li.loading-screen > .gz-loading-spin,
   then removes them when the new products arrive. */
ul.products.loading {
	position: relative;
	min-height: 260px;
}

ul.products.loading > li.product {
	opacity: .55;
	pointer-events: none;
	transition: opacity .2s ease;
}

/* The theme's in-grid loader is replaced by our full-screen one. */
li.loading-screen { display: none !important; }

/* Full-screen scrim, attached to <body> so nothing can paint over it. */
.ham-loader {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(18, 10, 26, .58);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	animation: ham-loader-fade .15s ease both;
}

.ham-loader__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	padding: 34px 46px 30px;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 34px 80px -26px rgba(0, 0, 0, .6);
	animation: ham-loader-pop .22s cubic-bezier(.2, .8, .3, 1) both;
}

.ham-loader__logo {
	display: block;
	width: 190px;
	max-width: 60vw;
	height: auto;
	image-rendering: -webkit-optimize-contrast;
}

.ham-loader__spinner {
	width: 30px;
	height: 30px;
	border: 3px solid rgba(166, 38, 88, .18);
	border-top-color: var(--ham-brand);
	border-radius: 50%;
	animation: ham-loader-spin .7s linear infinite;
}

.ham-loader__text {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ham-ink);
	opacity: .7;
}

body.ham-loading { overflow: hidden; }

@keyframes ham-loader-pop {
	from { transform: scale(.94); opacity: 0; }
	to   { transform: scale(1); opacity: 1; }
}

@keyframes ham-loader-spin {
	to { transform: rotate(360deg); }
}

@keyframes ham-loader-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* Sidebar spinner shown next to the filters while filtering. */
.products-filter-widget form.filtering .products-loader {
	margin-top: 12px;
	opacity: 1;
}

/* --- Sticky on desktop -------------------------------------------------- */
@media (min-width: 992px) {
	.catalog-filters-sidebar .ham-filter-head { position: relative; z-index: 1; }
}

/* --- Mobile drawer ----------------------------------------------------- */
@media (max-width: 991px) {
	.products-filter-widget {
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}
	.products-filter-widget .products-filter__filter-name { padding: 15px 0 !important; }
}

/* Below XL the sidebar turns into an off-canvas panel with its own "Filter"
   heading, and ours would strand itself at the top of the page. */
@media (max-width: 1199px) {
	.ham-filter-head { display: none; }
	.products-filter-widget .products-filter__filter-name { padding: 15px 0 !important; }
}

/* ==========================================================================
   Overrides for parent-theme rules that win on specificity
   ========================================================================== */

/* The catalog toolbar already prints active-filter chips above the grid, so the
   sidebar copy stays hidden (parent-theme default). Instead, surface a Clear All
   at the foot of the sidebar — but only while something is actually filtered.
   (Instant filtering makes the Apply button redundant; the theme hides the whole
   row for it, we bring back just the reset.) */
.products-filter-widget form.instant-filter:has(.remove-filtered) .products-filter__button {
	display: flex;
}

/* Top-level ".children" list: no parent row, so no indent and never hidden. */
.products-filter-widget ul.products-filter__options > ul.children {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

/* Replace the theme's "+/-" marks with a section icon (left) + chevron (right). */
.products-filter-widget .has-collapse .products-filter__filter-name::before,
.products-filter-widget .has-collapse .products-filter__filter-name::after {
	content: "";
	position: static;
	top: auto;
	inset-inline-end: auto;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	transition: transform .22s ease, background-color .18s ease;
}

.products-filter-widget .has-collapse .products-filter__filter-name::before {
	flex: 0 0 17px;
	width: 17px;
	height: 17px;
	transform: none;
	background-color: var(--ham-brand);
	-webkit-mask-image: var(--ham-icon, var(--ham-icon-tag));
	mask-image: var(--ham-icon, var(--ham-icon-tag));
	-webkit-mask-size: 17px 17px;
	mask-size: 17px 17px;
}

.products-filter-widget .has-collapse .filter.glozin-active .products-filter__filter-name::before {
	transform: none;
	background-color: var(--ham-brand);
}

/* Sections render open, and the theme only adds .glozin-active once a heading has
   been clicked (i.e. once the section is collapsed) — so "no class" means open. */
.products-filter-widget .has-collapse .products-filter__filter-name::after {
	flex: 0 0 10px;
	width: 10px;
	height: 10px;
	margin-inline-start: auto;
	background-color: var(--ham-muted);
	-webkit-mask-image: var(--ham-icon-chevron);
	mask-image: var(--ham-icon-chevron);
	-webkit-mask-size: 10px 10px;
	mask-size: 10px 10px;
	transform: rotate(180deg);
}

.products-filter-widget .has-collapse .filter.glozin-active .products-filter__filter-name::after {
	transform: rotate(0deg);
	background-color: var(--ham-brand);
}

/* On phones the theme flags every section active while keeping them open. */
@media (max-width: 767px) {
	.products-filter-widget .has-collapse .products-filter__filter-name::after { transform: rotate(180deg); }
	.products-filter-widget .has-collapse .filter.glozin-active .products-filter__filter-name::after {
		transform: rotate(180deg);
		background-color: var(--ham-muted);
	}
}

.products-filter-widget .has-collapse .products-filter__filter-name:hover::after { background-color: var(--ham-brand); }

/* --- Icon tokens (inline SVG data URIs) -------------------------------- */
:root {
	--ham-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	--ham-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E");
	--ham-icon-grid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1.5'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1.5'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1.5'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1.5'/%3E%3C/svg%3E");
	--ham-icon-bulb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7V18h8v-3.3A7 7 0 0 0 12 2z'/%3E%3C/svg%3E");
	--ham-icon-palette: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a9 9 0 1 0 0 18h1.5a2.5 2.5 0 0 0 0-5H13a2 2 0 0 1 0-4h4a4 4 0 0 0 4-4 5 5 0 0 0-5-5z'/%3E%3Ccircle cx='7.5' cy='10.5' r='1.2' fill='%23000' stroke='none'/%3E%3Ccircle cx='11' cy='7' r='1.2' fill='%23000' stroke='none'/%3E%3Ccircle cx='7' cy='15' r='1.2' fill='%23000' stroke='none'/%3E%3C/svg%3E");
	--ham-icon-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7z'/%3E%3Cpath d='M14 2v5h5'/%3E%3C/svg%3E");
	--ham-icon-tag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4l-7.2 7.2a2 2 0 0 1-2.8 0l-7.2-7.2A2 2 0 0 1 3 12V4a1 1 0 0 1 1-1h8a2 2 0 0 1 1.4.6l7.2 7.2a2 2 0 0 1 0 2.6z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.4'/%3E%3C/svg%3E");
	--ham-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
	--ham-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237b7286' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6'/%3E%3C/svg%3E");
}
