.wrs-sponsors {
	--wrs-section-gap: 56px;
	--wrs-logo-gap: 30px;
	padding: 10px 0;
}

.wrs-section + .wrs-section {
	margin-top: var(--wrs-section-gap);
}

.wrs-section-title {
	margin: 0 0 24px;
	text-align: center;
}

.wrs-grid {
	display: grid;
	align-items: center;
	justify-items: stretch;
	gap: var(--wrs-logo-gap);
	width: 100%;
}

.wrs-grid-main {
	grid-template-columns: repeat(var(--wrs-main-count, 3), minmax(0, 1fr));
	min-height: 160px;
}

.wrs-grid-main + .wrs-grid-main {
	margin-top: var(--wrs-logo-gap);
}

.wrs-main-flow {
	width: 100%;
}

.wrs-grid-premium {
	grid-template-columns: repeat(var(--wrs-premium-cols, 6), minmax(0, 1fr));
}

.wrs-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
}

.wrs-logo a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
}

/* Erste und letzte Logos einer statischen Reihe schliessen buendig mit dem Inhalt ab. */
.wrs-grid > .wrs-logo:first-child,
.wrs-grid > .wrs-logo:first-child > a {
	justify-content: flex-start;
}

.wrs-grid > .wrs-logo:last-child,
.wrs-grid > .wrs-logo:last-child > a {
	justify-content: flex-end;
}

.wrs-grid > .wrs-logo:only-child,
.wrs-grid > .wrs-logo:only-child > a {
	justify-content: center;
}

.wrs-logo-image {
	display: block;
	width: min(100%, var(--wrs-custom-width, 100%));
	max-width: 100%;
	height: auto;
	max-height: 130px;
	object-fit: contain;
	transition: transform .2s ease, opacity .2s ease, filter .2s ease;
}

.wrs-logo-main .wrs-logo-image {
	max-height: 150px;
}

.wrs-logo-premium .wrs-logo-image {
	max-height: 78px;
}

.wrs-logo-basic .wrs-logo-image {
	max-height: 64px;
}

.wrs-hover-zoom .wrs-logo a:hover .wrs-logo-image {
	transform: scale(1.04);
}

.wrs-hover-grayscale .wrs-logo-image {
	filter: grayscale(1);
}

.wrs-hover-grayscale .wrs-logo a:hover .wrs-logo-image {
	filter: grayscale(0);
}

.wrs-hover-opacity .wrs-logo a:hover .wrs-logo-image {
	opacity: .72;
}

.wrs-basic-slider {
	position: relative;
	padding: 4px 0 18px;
	overflow: visible;
}

/* Nur der eigentliche Viewport schneidet ab. Die Slide-Breiten werden in JS exakt berechnet. */
.wrs-basic-viewport {
	width: 100%;
	overflow: hidden;
}

.wrs-basic-track {
	display: flex;
	align-items: center;
	gap: var(--wrs-logo-gap);
	width: max-content;
	min-width: 100%;
	transition: transform .35s ease;
	will-change: transform;
}

.wrs-basic-slide {
	flex: 0 0 auto;
	min-width: 0;
	box-sizing: border-box;
}

/* Im Slider liegt das erste sichtbare Logo links und das letzte sichtbare rechts buendig. */
.wrs-basic-slide.is-first-visible .wrs-logo,
.wrs-basic-slide.is-first-visible .wrs-logo > a {
	justify-content: flex-start;
}

.wrs-basic-slide.is-last-visible .wrs-logo,
.wrs-basic-slide.is-last-visible .wrs-logo > a {
	justify-content: flex-end;
}

.wrs-basic-slide.is-first-visible.is-last-visible .wrs-logo,
.wrs-basic-slide.is-first-visible.is-last-visible .wrs-logo > a {
	justify-content: center;
}

.wrs-slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	border: 0;
	background: transparent;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	padding: 8px;
}

.wrs-slider-arrow:disabled {
	opacity: .25;
	cursor: default;
}

.wrs-slider-prev {
	left: -44px;
}

.wrs-slider-next {
	right: -44px;
}

.wrs-slider-dots {
	display: flex;
	justify-content: center;
	gap: 7px;
	margin-top: 12px;
}

.wrs-slider-dot {
	width: 7px;
	height: 7px;
	border: 0;
	border-radius: 999px;
	background: currentColor;
	opacity: .25;
	padding: 0;
}

.wrs-slider-dot.is-active {
	opacity: 1;
}

@media (max-width: 1024px) {
	.wrs-grid-premium {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.wrs-grid-premium > .wrs-logo:nth-child(3n + 1),
	.wrs-grid-premium > .wrs-logo:nth-child(3n + 1) > a {
		justify-content: flex-start;
	}

	.wrs-grid-premium > .wrs-logo:nth-child(3n),
	.wrs-grid-premium > .wrs-logo:nth-child(3n) > a {
		justify-content: flex-end;
	}
}

@media (max-width: 767px) {
	/* Hauptsponsoren werden mobil ueber beide Desktop-Zeilen hinweg lueckenlos einsortiert. */
	.wrs-main-flow {
		display: grid;
		grid-template-columns: repeat(var(--wrs-mobile-cols, 1), minmax(0, 1fr));
		align-items: center;
		justify-items: stretch;
		column-gap: 24px;
		row-gap: 28px;
	}

	.wrs-main-flow > .wrs-grid-main {
		display: contents;
	}

	/* Premium-Sponsoren behalten ihr eigenes mobiles Raster. */
	.wrs-grid-premium {
		grid-template-columns: repeat(var(--wrs-mobile-cols, 1), minmax(0, 1fr));
		min-height: 0;
		column-gap: 24px;
		row-gap: 28px;
	}

	.wrs-main-flow .wrs-logo {
		min-height: 96px;
	}

	/* Innerhalb einer mobilen Zeile: außen bündig, innere Logos zentriert. */
	.wrs-grid-main > .wrs-logo,
	.wrs-grid-main > .wrs-logo > a,
	.wrs-grid-premium > .wrs-logo,
	.wrs-grid-premium > .wrs-logo > a {
		justify-content: center;
	}

	.wrs-mobile-cols-2 > .wrs-logo:nth-child(2n + 1),
	.wrs-mobile-cols-2 > .wrs-logo:nth-child(2n + 1) > a {
		justify-content: flex-start;
	}

	.wrs-mobile-cols-2 > .wrs-logo:nth-child(2n),
	.wrs-mobile-cols-2 > .wrs-logo:nth-child(2n) > a {
		justify-content: flex-end;
	}

	.wrs-mobile-cols-3 > .wrs-logo:nth-child(3n + 1),
	.wrs-mobile-cols-3 > .wrs-logo:nth-child(3n + 1) > a {
		justify-content: flex-start;
	}

	.wrs-mobile-cols-3 > .wrs-logo:nth-child(3n),
	.wrs-mobile-cols-3 > .wrs-logo:nth-child(3n) > a {
		justify-content: flex-end;
	}

	.wrs-mobile-cols-4 > .wrs-logo:nth-child(4n + 1),
	.wrs-mobile-cols-4 > .wrs-logo:nth-child(4n + 1) > a {
		justify-content: flex-start;
	}

	.wrs-mobile-cols-4 > .wrs-logo:nth-child(4n),
	.wrs-mobile-cols-4 > .wrs-logo:nth-child(4n) > a {
		justify-content: flex-end;
	}

	.wrs-mobile-cols-5 > .wrs-logo:nth-child(5n + 1),
	.wrs-mobile-cols-5 > .wrs-logo:nth-child(5n + 1) > a {
		justify-content: flex-start;
	}

	.wrs-mobile-cols-5 > .wrs-logo:nth-child(5n),
	.wrs-mobile-cols-5 > .wrs-logo:nth-child(5n) > a {
		justify-content: flex-end;
	}

	.wrs-mobile-cols-6 > .wrs-logo:nth-child(6n + 1),
	.wrs-mobile-cols-6 > .wrs-logo:nth-child(6n + 1) > a {
		justify-content: flex-start;
	}

	.wrs-mobile-cols-6 > .wrs-logo:nth-child(6n),
	.wrs-mobile-cols-6 > .wrs-logo:nth-child(6n) > a {
		justify-content: flex-end;
	}

	.wrs-mobile-cols-7 > .wrs-logo:nth-child(7n + 1),
	.wrs-mobile-cols-7 > .wrs-logo:nth-child(7n + 1) > a {
		justify-content: flex-start;
	}

	.wrs-mobile-cols-7 > .wrs-logo:nth-child(7n),
	.wrs-mobile-cols-7 > .wrs-logo:nth-child(7n) > a {
		justify-content: flex-end;
	}

	.wrs-mobile-cols-8 > .wrs-logo:nth-child(8n + 1),
	.wrs-mobile-cols-8 > .wrs-logo:nth-child(8n + 1) > a {
		justify-content: flex-start;
	}

	.wrs-mobile-cols-8 > .wrs-logo:nth-child(8n),
	.wrs-mobile-cols-8 > .wrs-logo:nth-child(8n) > a {
		justify-content: flex-end;
	}

	.wrs-mobile-cols-1 > .wrs-logo,
	.wrs-mobile-cols-1 > .wrs-logo > a {
		justify-content: center;
	}

	/* Die Ausrichtung der Hauptsponsoren bezieht sich auf das zusammengefuehrte mobile Raster. */
	.wrs-main-flow .wrs-logo,
	.wrs-main-flow .wrs-logo > a {
		justify-content: center;
	}

	.wrs-main-flow .wrs-mobile-col-first,
	.wrs-main-flow .wrs-mobile-col-first > a {
		justify-content: flex-start;
	}

	.wrs-main-flow .wrs-mobile-col-last,
	.wrs-main-flow .wrs-mobile-col-last > a {
		justify-content: flex-end;
	}

	.wrs-main-flow .wrs-mobile-col-only,
	.wrs-main-flow .wrs-mobile-col-only > a {
		justify-content: center;
	}

	.wrs-logo-main .wrs-logo-image {
		width: min(88%, var(--wrs-custom-width, 88%));
		max-height: 105px;
	}

	.wrs-logo-premium .wrs-logo-image {
		max-height: 64px;
	}

	.wrs-logo-basic .wrs-logo-image {
		max-height: 52px;
	}

	.wrs-basic-track {
		align-items: center;
	}

	.wrs-basic-slide .wrs-logo,
	.wrs-basic-slide .wrs-logo > a {
		justify-content: center;
	}

	.wrs-basic-slide.is-first-visible .wrs-logo,
	.wrs-basic-slide.is-first-visible .wrs-logo > a {
		justify-content: flex-start;
	}

	.wrs-basic-slide.is-last-visible .wrs-logo,
	.wrs-basic-slide.is-last-visible .wrs-logo > a {
		justify-content: flex-end;
	}

	.wrs-slider-prev {
		left: -30px;
	}

	.wrs-slider-next {
		right: -30px;
	}
}
