/* MoSeven + · Taxonomie-Filter */

.msp-tf {
	--msp-tf-gap: 28px;
	--msp-tf-fade: 56px;
	--msp-tf-arrow-icon: 22px;
	--msp-tf-arrow-box: 40px;
	--msp-tf-arrow-gap: 8px;
	--msp-tf-select-pad: 16px;
	--msp-tf-select-gap: 16px;
	--msp-tf-select-color: #fff;

	/* Sichtbarkeit je Gerät: Elementor überschreibt diese Variablen pro Breakpoint. */
	--msp-tf-bar: block;
	--msp-tf-dd: none;
	--msp-tf-a: block;
	--msp-tf-b: none;

	position: relative;
	width: 100%;
}

.msp-tf .msp-tf__view--bar {
	display: var(--msp-tf-bar);
}

.msp-tf .msp-tf__view--dd {
	display: var(--msp-tf-dd);
}

.msp-tf .msp-tf__li--a,
.msp-tf .msp-tf__select-wrap--a {
	display: var(--msp-tf-a);
}

.msp-tf .msp-tf__li--b,
.msp-tf .msp-tf__select-wrap--b {
	display: var(--msp-tf-b);
}

.msp-tf__notice {
	margin: 0 0 8px;
	padding: 8px 12px;
	border: 1px dashed currentColor;
	font-size: 13px;
	opacity: 0.8;
}

/* ------------------------------------------------ Horizontale Leiste */

.msp-tf__bar {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--msp-tf-arrow-gap);
}

.msp-tf__viewport {
	--msp-fl: 0px;
	--msp-fr: 0px;

	flex: 1 1 auto;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
	-ms-overflow-style: none;
	-webkit-overflow-scrolling: touch;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--msp-fl), #000 calc(100% - var(--msp-fr)), transparent 100%);
	mask-image: linear-gradient(to right, transparent 0, #000 var(--msp-fl), #000 calc(100% - var(--msp-fr)), transparent 100%);
}

.msp-tf__viewport {
	cursor: grab;
	overscroll-behavior-x: contain;
}

.msp-tf__viewport.is-dragging {
	cursor: grabbing;
	user-select: none;
	-webkit-user-select: none;
}

.msp-tf__viewport.is-dragging .msp-tf__item {
	cursor: grabbing;
	pointer-events: none;
}

.msp-tf__viewport::-webkit-scrollbar {
	display: none;
}

.msp-tf.has-left .msp-tf__viewport {
	--msp-fl: var(--msp-tf-fade);
}

.msp-tf.has-right .msp-tf__viewport {
	--msp-fr: var(--msp-tf-fade);
}

.msp-tf .msp-tf__list {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--msp-tf-gap);
	width: max-content;
	min-width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.msp-tf .msp-tf__list > li {
	flex: none;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Buttons gegen Theme-/Kit-Stile abhärten */
.msp-tf .msp-tf__item,
.msp-tf .msp-tf__item:hover,
.msp-tf .msp-tf__item:focus,
.msp-tf .msp-tf__item:active,
.msp-tf .msp-tf__arrow,
.msp-tf .msp-tf__arrow:hover,
.msp-tf .msp-tf__arrow:focus,
.msp-tf .msp-tf__arrow:active,
.msp-tf .msp-tf__clear,
.msp-tf .msp-tf__clear:hover,
.msp-tf .msp-tf__clear:focus,
.msp-tf .msp-tf__clear:active {
	box-sizing: border-box;
	min-width: 0;
	min-height: 0;
	margin: 0;
	box-shadow: none;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}

.msp-tf .msp-tf__item {
	display: inline-block;
	padding: 0.4em 0;
	border: 0 solid transparent;
	border-radius: 0;
	background: transparent;
	color: #fff;
	font: inherit;
	font-size: clamp(1.125rem, 2vw, 1.75rem);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: 0;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
	transition: color 0.2s ease, background-color 0.2s ease;
}

.msp-tf .msp-tf__item:hover,
.msp-tf .msp-tf__item:focus-visible {
	background: transparent;
	color: #ff8a3d;
}

.msp-tf .msp-tf__item.is-active,
.msp-tf .msp-tf__item.is-active:hover {
	color: #ff7a2b;
}

.msp-tf .msp-tf__item:focus-visible,
.msp-tf .msp-tf__arrow:focus-visible,
.msp-tf .msp-tf__clear:focus-visible,
.msp-tf .msp-tf__select:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.msp-tf .msp-tf__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: var(--msp-tf-arrow-box);
	height: var(--msp-tf-arrow-box);
	padding: 0;
	border: 0 none;
	border-radius: 50%;
	background: transparent;
	color: #fff;
	line-height: 1;
	cursor: pointer;
	transition: color 0.2s ease, opacity 0.2s ease, visibility 0.2s ease;
}

.msp-tf .msp-tf__arrow svg {
	width: var(--msp-tf-arrow-icon);
	height: var(--msp-tf-arrow-icon);
	pointer-events: none;
}

/* Linker Pfeil liegt über dem linken Rand, rechter Pfeil steht neben der Leiste. */
.msp-tf .msp-tf__arrow--prev {
	position: absolute;
	left: 0;
	z-index: 2;
}

.msp-tf:not(.has-left) .msp-tf__arrow--prev,
.msp-tf:not(.has-right) .msp-tf__arrow--next {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

/* Passt alles in die Breite: kein Pfeil, keine Ausblendung. */
.msp-tf.is-static .msp-tf__arrow {
	display: none;
}

/* ------------------------------------------------------- Dropdowns */

.msp-tf__selects {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--msp-tf-select-gap);
}

.msp-tf .msp-tf__select-wrap {
	position: relative;
	flex: 0 1 auto;
	width: 280px;
	max-width: 100%;
}

.msp-tf .msp-tf__select,
.msp-tf .msp-tf__select:hover,
.msp-tf .msp-tf__select:focus {
	box-sizing: border-box;
	box-shadow: none;
}

.msp-tf .msp-tf__select {
	display: block;
	width: 100%;
	margin: 0;
	/* Rechts Platz für Löschen-Icon und Pfeil */
	padding: 0.75em calc(var(--msp-tf-select-pad) + 56px) 0.75em var(--msp-tf-select-pad);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 999px;
	background-color: transparent;
	color: var(--msp-tf-select-color);
	font: inherit;
	font-size: 1rem;
	line-height: 1.2;
	text-overflow: ellipsis;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.msp-tf .msp-tf__select option {
	color: #111;
	background: #fff;
}

.msp-tf .msp-tf__chevron {
	position: absolute;
	top: 50%;
	right: var(--msp-tf-select-pad);
	width: 18px;
	height: 18px;
	margin-top: -9px;
	color: var(--msp-tf-select-color);
	pointer-events: none;
}

.msp-tf .msp-tf__clear {
	position: absolute;
	/* Zentrierung ohne margin: Der Reset-Block oben setzt margin in allen Zuständen auf 0. */
	top: calc(50% - 12px);
	right: calc(var(--msp-tf-select-pad) + 28px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0 none;
	border-radius: 50%;
	background: transparent;
	color: var(--msp-tf-select-color);
	line-height: 1;
	cursor: pointer;
	transition: color 0.2s ease, transform 0.2s ease;
}

.msp-tf .msp-tf__clear[hidden] {
	display: none;
}

.msp-tf .msp-tf__clear:hover,
.msp-tf .msp-tf__clear:focus-visible {
	background: transparent;
	transform: scale(1.15);
}

.msp-tf .msp-tf__clear svg {
	width: 16px;
	height: 16px;
	pointer-events: none;
}

/* ------------------------------------------- Ziel-Loop-Grid beim Laden */

.msp-tf-loading {
	opacity: 0.45;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

@media (max-width: 767px) {
	.msp-tf {
		--msp-tf-gap: 20px;
		--msp-tf-fade: 40px;
	}

	.msp-tf .msp-tf__select-wrap {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.msp-tf .msp-tf__item,
	.msp-tf .msp-tf__arrow,
	.msp-tf .msp-tf__clear,
	.msp-tf-loading {
		transition: none;
	}
}
