.bwls {
	--bwls-speed: 30s;
	--bwls-height: 60px;
	--bwls-box-w: 160px;
	--bwls-gap: 60px;
	--bwls-shift: 50%;
	position: relative;
	overflow: hidden;
	width: 100%;
	-webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}

.bwls-track {
	display: flex;
	width: max-content;
	animation: bwls-scroll var(--bwls-speed) linear infinite;
	will-change: transform;
}

.bwls-reverse .bwls-track {
	animation-direction: reverse;
}

/* Pause on hover only for real mouse pointers (touch screens keep "hover" stuck). */
@media (hover: hover) and (pointer: fine) {
	.bwls-pause:hover .bwls-track {
		animation-play-state: paused;
	}
}

.bwls-list {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bwls-item {
	--bwls-s: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin: 0 var(--bwls-gap) 0 0;
	padding: 0;
	list-style: none;
}

.bwls-item a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	border: 0;
	box-shadow: none;
}

/* Mode: same height (width follows the logo) */
.bwls .bwls-item img.bwls-img {
	display: block;
	height: calc(var(--bwls-height) * var(--bwls-s)) !important;
	min-height: calc(var(--bwls-height) * var(--bwls-s)) !important;
	max-height: calc(var(--bwls-height) * var(--bwls-s)) !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	object-fit: contain;
	transition: filter 0.3s ease, opacity 0.3s ease;
}

/* Mode: same box (every logo fits inside the same width x height) */
.bwls-box .bwls-item {
	width: calc(var(--bwls-box-w) * var(--bwls-s));
	height: calc(var(--bwls-height) * var(--bwls-s));
}

.bwls-box .bwls-item img.bwls-img {
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	max-height: 100% !important;
	max-width: 100% !important;
	object-fit: contain;
}

.bwls-gray .bwls-item img.bwls-img {
	filter: grayscale(100%);
	opacity: 0.7;
}

.bwls-gray .bwls-item:hover img.bwls-img {
	filter: none;
	opacity: 1;
}

@keyframes bwls-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(calc(var(--bwls-shift) * -1)); }
}

/* Only stops for visitors whose device asks for reduced motion, and only if enabled in settings. */
@media (prefers-reduced-motion: reduce) {
	.bwls-rm .bwls-track {
		animation: none;
	}
	.bwls-rm {
		overflow-x: auto;
	}
}
