:root{
	--rf-filter-accent:#c9a24b;
	--rf-filter-bg:#fff;
	--rf-filter-border:#e5e5e5;
	--rf-filter-text:#222;
	--rf-filter-muted:#888;
	--rf-filter-radius:6px;
	--rf-filter-panel-width:260px;
}

/* ---------- layout ---------- */
.rf-filter-panel{ box-sizing:border-box; }
.rf-filter-panel--top{ display:block; width:100%; }

/* Left/right: JS moves the panel and the theme's own .products into this flex
   wrapper (see rf-filter.js initLayout) so positioning never depends on guessing
   the theme's DOM structure or fighting its own grid/masonry width calculations. */
.rf-filter-flex-layout{ display:flex; align-items:flex-start; gap:24px; }
.rf-filter-flex-layout--left .rf-filter-panel{ order:1; flex:0 0 var(--rf-filter-panel-width); }
.rf-filter-flex-layout--left .products{ order:2; flex:1 1 0; min-width:0; }
.rf-filter-flex-layout--right .rf-filter-panel{ order:2; flex:0 0 var(--rf-filter-panel-width); }
.rf-filter-flex-layout--right .products{ order:1; flex:1 1 0; min-width:0; }

.rf-filter-mobile-toggle{
	display:none;
	align-items:center;
	gap:8px;
	padding:10px 16px;
	background:var(--rf-filter-bg);
	border:1px solid var(--rf-filter-border);
	border-radius:var(--rf-filter-radius);
	font-size:14px;
	cursor:pointer;
	margin-bottom:12px;
}

.rf-filter-overlay{
	display:none;
	position:fixed;inset:0;
	background:rgba(0,0,0,.4);
	z-index:99998;
}

.rf-filter-panel{
	background:var(--rf-filter-bg);
	border:1px solid var(--rf-filter-border);
	border-radius:var(--rf-filter-radius);
	padding:16px;
	margin-bottom:24px;
}

.rf-filter-panel-header{display:none;align-items:center;justify-content:space-between;margin-bottom:12px;}
.rf-filter-close{background:none;border:0;font-size:22px;line-height:1;cursor:pointer;color:var(--rf-filter-text);}

/* ---------- groups (collapsible) ---------- */
.rf-filter-group{border-bottom:1px solid var(--rf-filter-border);padding:12px 0;}
.rf-filter-group:last-child{border-bottom:0;}
.rf-filter-group-title{margin:0;font-size:14px;font-weight:600;color:var(--rf-filter-text);display:flex;align-items:center;justify-content:space-between;}
.rf-filter-group-title[data-rf-group-toggle]{cursor:pointer;user-select:none;}
.rf-filter-group-caret{transition:transform .15s;transform:rotate(-90deg);}
.rf-filter-group--open .rf-filter-group-caret{transform:rotate(0deg);}
.rf-filter-group-body{display:none;margin-top:10px;}
.rf-filter-group--open .rf-filter-group-body{display:block;}

/* ---------- taxonomy options ---------- */
.rf-filter-options{display:flex;flex-wrap:wrap;gap:8px;}
.rf-filter-option{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;color:var(--rf-filter-text);}
.rf-filter-option input{margin:0;}
.rf-filter-option-count{color:var(--rf-filter-muted);font-size:12px;}
.rf-filter-option--swatch .rf-filter-swatch{width:20px;height:20px;border-radius:50%;border:1px solid var(--rf-filter-border);display:inline-block;}
.rf-filter-option--button{border:1px solid var(--rf-filter-border);border-radius:20px;padding:5px 12px;}
.rf-filter-option--button input{display:none;}
.rf-filter-option--button:has(input:checked){border-color:var(--rf-filter-accent);color:var(--rf-filter-accent);}
.rf-filter-option.rf-filter-option--disabled{opacity:.35;pointer-events:none;}

/* ---------- range field (price / dimension) ---------- */
.rf-filter-range{display:flex;align-items:center;gap:8px;}
.rf-filter-range input{width:100%;padding:8px;border:1px solid var(--rf-filter-border);border-radius:var(--rf-filter-radius);font-size:13px;}

.rf-filter-unit-toggle{display:flex;gap:4px;margin-bottom:8px;}
.rf-filter-unit-btn{border:1px solid var(--rf-filter-border);background:var(--rf-filter-bg);border-radius:4px;padding:3px 10px;font-size:12px;cursor:pointer;color:var(--rf-filter-text);}
.rf-filter-unit-btn--active{border-color:var(--rf-filter-accent);color:var(--rf-filter-accent);}

.rf-filter-slider{position:relative;height:32px;margin-top:12px;}
.rf-filter-slider-track{position:absolute;top:14px;left:0;right:0;height:4px;background:var(--rf-filter-border);border-radius:2px;}
.rf-filter-slider-range{position:absolute;top:0;bottom:0;background:var(--rf-filter-accent);border-radius:2px;}
.rf-filter-slider input[type=range]{
	position:absolute;top:0;left:0;width:100%;margin:0;
	-webkit-appearance:none;appearance:none;background:transparent;pointer-events:none;height:32px;
}
.rf-filter-slider input[type=range]::-webkit-slider-thumb{
	-webkit-appearance:none;pointer-events:auto;width:16px;height:16px;border-radius:50%;
	background:var(--rf-filter-accent);border:2px solid #fff;box-shadow:0 0 0 1px var(--rf-filter-border);cursor:pointer;margin-top:8px;
}
.rf-filter-slider input[type=range]::-moz-range-thumb{
	pointer-events:auto;width:16px;height:16px;border-radius:50%;
	background:var(--rf-filter-accent);border:2px solid #fff;box-shadow:0 0 0 1px var(--rf-filter-border);cursor:pointer;
}

.rf-filter-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;}
.rf-filter-dim-sub{margin-bottom:14px;}
.rf-filter-dim-sub:last-child{margin-bottom:0;}
.rf-filter-dim-sub-title{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--rf-filter-muted);}
.rf-filter-stars label{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;margin-bottom:4px;color:var(--rf-filter-accent);}

.rf-filter-group--sort select,
.rf-filter-group-body select{width:100%;padding:8px;border:1px solid var(--rf-filter-border);border-radius:var(--rf-filter-radius);font-size:13px;background:var(--rf-filter-bg);color:var(--rf-filter-text);}

.rf-filter-panel-footer{display:none;gap:10px;margin-top:16px;}
.rf-filter-clear,.rf-filter-apply{
	flex:1;padding:12px;border-radius:var(--rf-filter-radius);font-size:14px;cursor:pointer;border:1px solid var(--rf-filter-border);
	background:var(--rf-filter-bg);color:var(--rf-filter-text);
}
.rf-filter-apply{background:var(--rf-filter-accent);color:#fff;border-color:var(--rf-filter-accent);}
.rf-filter-apply-count{font-size:12px;opacity:.85;margin-inline-start:4px;}

.rf-filter-load-more{display:block;margin:24px auto 0;padding:10px 24px;border:1px solid var(--rf-filter-border);border-radius:var(--rf-filter-radius);background:var(--rf-filter-bg);cursor:pointer;}
.rf-filter-admin-badge{position:fixed;bottom:10px;inset-inline-end:10px;background:#222;color:#fff;font-size:10px;padding:3px 8px;border-radius:3px;opacity:.55;z-index:99997;pointer-events:none;}
body.rf-filter-busy .products{opacity:.5;pointer-events:none;transition:opacity .15s;}

@media (max-width:782px){
	.rf-filter-flex-layout{ display:block; }
	.rf-filter-panel--left,
	.rf-filter-panel--right{ float:none; width:auto; margin:0; }
	.rf-filter-mobile-toggle{display:flex;}
	.rf-filter-panel-header{display:flex;}
	.rf-filter-panel-footer{display:flex;}
	.rf-filter-panel{
		display:none;
		position:fixed;top:0;inset-inline-end:0;height:100%;width:86%;max-width:360px;
		z-index:99999;overflow-y:auto;border-radius:0;margin:0;
	}
	.rf-filter-panel.rf-filter-open{display:block;}
	.rf-filter-overlay.rf-filter-open{display:block;}
	body.rf-filter-drawer-open{overflow:hidden;}
}
