/* Filtry listingu. */

/*
 * Bylo: cztery grupy rozwinite na stale, razem ~40 pigulek miedzy okruszkami a siatka.
 * Jest: jeden rzad nazw grup; lista opcji wysuwa sie NAD tresc (`position: absolute`),
 * wiec otwarcie filtra nie spycha produktow w dol. Mechanika siedzi w `details/summary`,
 * czyli w przegladarce — modul nie dokłada JavaScriptu do obslugi rozwijania.
 */

.kd-filters {
	margin-bottom: var(--kd-space-3);
	position: relative;
	z-index: 3;
}

.kd-filters__toggle {
	display: none;
	align-items: center;
	gap: var(--kd-space-1);
	padding: 10px 20px;
	font-size: var(--kd-body-size);
}
.kd-filters__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: var(--kd-radius-pill);
	background: var(--kd-color-text);
	color: var(--kd-color-background);
	font-size: var(--kd-label-size);
	line-height: 1;
}

.kd-filters__panel {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--kd-space-1) var(--kd-space-2);
	border-block: 1px solid var(--kd-color-border);
	padding-block: var(--kd-space-1);
}

.kd-filters__group {
	position: relative;
}

.kd-filters__legend {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 8px 4px;
	cursor: pointer;
	list-style: none;
	color: var(--kd-color-text);
	font-family: var(--kd-label-family, inherit);
	font-size: var(--kd-label-size);
	font-weight: var(--kd-label-weight, 500);
	letter-spacing: var(--kd-label-ls, .08em);
	text-transform: var(--kd-label-transform, uppercase);
}
/* Safari rysuje wlasny trojkat i robi to poza `list-style`. */
.kd-filters__legend::-webkit-details-marker { display: none; }

.kd-filters__legend::after {
	content: '';
	width: 6px;
	height: 6px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform var(--kd-motion-fast) var(--kd-ease);
}
.kd-filters__group[open] > .kd-filters__legend::after {
	transform: translateY(1px) rotate(-135deg);
}

.kd-filters__list {
	list-style: none;
	margin: 0;
	padding: var(--kd-space-1) 0;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	max-width: min(92vw, 340px);
	max-height: 60vh;
	overflow-y: auto;
	background: var(--kd-color-background);
	border: 1px solid var(--kd-color-border);
	border-radius: var(--kd-radius-md);
	box-shadow: var(--kd-shadow-overlay, none);
	z-index: 4;
}

.kd-filters__option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--kd-space-2);
	min-height: 40px;
	padding: 9px var(--kd-space-2);
	color: var(--kd-color-text);
	font-size: var(--kd-body-sm-size);
	line-height: 1.4;
	text-decoration: none;
}
.kd-filters__option:hover {
	background: color-mix(in srgb, currentColor 7%, transparent);
	text-decoration: none;
}
/* Wybor zaznacza ptaszek i grubsze pismo, nie wypelniona plama koloru. */
.kd-filters__option.is-on {
	font-weight: 500;
	color: var(--kd-color-accent);
}
.kd-filters__option.is-on::before {
	content: '';
	width: 10px;
	height: 5px;
	margin-right: -4px;
	border-left: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(-45deg);
	flex-shrink: 0;
}
.kd-filters__count {
	font-size: var(--kd-caption-size);
	color: var(--kd-color-text-muted);
}

.kd-filters__clear {
	margin-left: auto;
	font-size: var(--kd-caption-size);
	color: var(--kd-color-text-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
}

[data-kd-filters-results] { transition: opacity var(--kd-motion-fast) var(--kd-ease); }
[data-kd-filters-results].is-loading { opacity: .5; pointer-events: none; }

/* Na telefonie filtry zajmowaly caly pierwszy ekran — chowamy je za przyciskiem.
   W srodku panelu nie ma miejsca na wysuwana warstwe, wiec lista wraca do przeplywu. */
@media (max-width: 767px) {
	.kd-filters__toggle { display: inline-flex; }
	.kd-filters__panel { display: none; }
	.kd-filters.is-open .kd-filters__panel {
		display: block;
		margin-top: var(--kd-space-2);
	}
	.kd-filters__group { border-bottom: 1px solid var(--kd-color-border); }
	.kd-filters__group:last-of-type { border-bottom: 0; }
	.kd-filters__legend {
		display: flex;
		justify-content: space-between;
		min-height: 48px;
		padding: 12px 0;
	}
	.kd-filters__list {
		position: static;
		max-width: none;
		max-height: none;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		padding: 0 0 var(--kd-space-1);
	}
	.kd-filters__option { min-height: 44px; padding: 12px 0 12px var(--kd-space-1); }
	.kd-filters__clear { display: inline-block; margin: var(--kd-space-2) 0 0; }
}
