.fes-sponsors,
.fes-sponsors-carousel {
	--fes-sponsor-logo-height: 110px;
	--fes-sponsor-gap: clamp(2rem, 5vw, 5rem);
}

.fes-sponsors--grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: center;
	gap: var(--fes-sponsor-gap);
}

.fes-sponsor {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	color: inherit;
	text-decoration: none;
}

.fes-sponsor__media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 180px;
	height: var(--fes-sponsor-logo-height);
	max-width: 100%;
}

.fes-sponsor__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.fes-sponsor__media--has-bg {
	box-sizing: border-box;
	padding: 12px;
	background: var(--fes-sponsor-bg);
	border-radius: 4px;
}

.fes-sponsor--small .fes-sponsor__media {
	width: 120px;
}

.fes-sponsor--normal .fes-sponsor__media {
	width: 220px;
}

.fes-sponsor--large .fes-sponsor__media {
	width: 220px;
}

.fes-sponsor--wide .fes-sponsor__media {
	width: 280px;
}

.fes-sponsor--text {
	min-height: var(--fes-sponsor-logo-height);
	padding: 0.75rem 1rem;
	text-align: center;
	font: inherit;
	font-weight: 600;
	line-height: 1.25;
}

.fes-sponsor:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.fes-sponsors-carousel {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

.fes-sponsors-carousel__track {
	display: flex;
	align-items: center;
	gap: var(--fes-sponsor-gap);
	width: max-content;
	padding-block: 1rem;
}

.fes-sponsors-carousel[data-animated="true"] .fes-sponsors-carousel__track {
	animation: fes-sponsor-scroll 180s linear infinite;
}

@keyframes fes-sponsor-scroll {
	to {
		transform: translateX(calc(-50% - (var(--fes-sponsor-gap) / 2)));
	}
}


@media (min-width: 1024px) {
	.fes-sponsors--grid {
		--fes-sponsor-logo-height: 130px;
	}

	.fes-sponsors--grid .fes-sponsor--small .fes-sponsor__media {
		width: 160px;
	}

	.fes-sponsors--grid .fes-sponsor--normal .fes-sponsor__media {
		width: 260px;
	}

	.fes-sponsors--grid .fes-sponsor--large .fes-sponsor__media {
		width: 300px;
	}

	.fes-sponsors--grid .fes-sponsor--wide .fes-sponsor__media {
		width: 340px;
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	.fes-sponsors--grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	.fes-sponsors-carousel {
		overflow-x: auto;
		-webkit-mask-image: none;
		mask-image: none;
	}

	.fes-sponsors-carousel__track {
		width: max-content;
		animation: none !important;
	}
}

@media (max-width: 767px) {
	.fes-sponsors,
	.fes-sponsors-carousel {
		--fes-sponsor-logo-height: 72px;
		--fes-sponsor-gap: 2rem;
	}

	.fes-sponsors--grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}