.spf-filter { margin: 0 0 1.5em; font-size: 15px; }
.spf-title { margin: 0 0 .75em; font-size: 1.15em; }
.spf-group { border-top: 1px solid rgba(128,128,128,.25); padding: .6em 0; }
.spf-group summary { cursor: pointer; font-weight: 600; padding: .2em 0; }
.spf-group-body { padding-top: .5em; }
.spf-filter ul.spf-list,
.spf-filter ul.spf-list ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.spf-filter ul.spf-list { max-height: 260px; overflow-y: auto; }
.spf-filter ul.spf-list ul.spf-sub { max-height: none; overflow: visible; padding-left: 1.1em !important; }
.spf-filter ul.spf-list li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.spf-filter ul.spf-list label {
	display: flex;
	align-items: center;
	gap: .45em;
	margin: 0;
	padding: 6px 0;   /* one uniform gap for every row */
	line-height: 1.3;
	cursor: pointer;
}
.spf-list em { opacity: .6; font-style: normal; font-size: .9em; }
.spf-stars { color: #f5a623; letter-spacing: 1px; }
.spf-price { display: flex; align-items: center; gap: .4em; }
.spf-price input { width: 100%; min-width: 0; padding: .4em .5em; }
.spf-actions { display: flex; gap: .8em; align-items: center; margin-top: 1em; }
.spf-apply { cursor: pointer; padding: .55em 1.1em; }
.spf-js .spf-apply { display: none; }
.spf-reset { text-decoration: underline; font-size: .95em; }
.spf-toggle { display: none; width: 100%; padding: .7em 1em; cursor: pointer; text-align: left; }

/* Loading state */
.spf-loading ul.products { opacity: .4; pointer-events: none; transition: opacity .15s; }

/* Mobile: collapsible panel */
@media (max-width: 768px) {
	.spf-toggle { display: block; }
	.spf-title { display: none; }
	.spf-filter .spf-form { display: none; padding-top: 1em; }
	.spf-filter.spf-open .spf-form { display: block; }
}
