.ls-wrap {
	--ls-height: 56px;
	--ls-gap: 48px;
	--ls-duration: 32s;
	--ls-direction: normal;
	--ls-fade: 56px;
	width: 100%;
	max-width: 100%;
	margin: 1.5rem 0;
	padding: 0.75rem 0;
	box-sizing: border-box;
}

.ls-title {
	margin: 0 0 0.85rem;
	padding: 0 1rem;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
}

.ls-viewport {
	overflow: hidden;
	width: 100%;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--ls-fade), #000 calc(100% - var(--ls-fade)), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 var(--ls-fade), #000 calc(100% - var(--ls-fade)), transparent);
}

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

.ls-wrap.is-pause-hover:hover .ls-track {
	animation-play-state: paused;
}

.ls-list {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: var(--ls-gap);
	padding-right: var(--ls-gap);
}

.ls-item {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
}

.ls-item a {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	text-decoration: none;
}

.ls-item img {
	display: block;
	height: var(--ls-height);
	width: auto;
	max-width: min(220px, 42vw);
	object-fit: contain;
	pointer-events: none;
}

.ls-wrap.is-gray .ls-item img {
	filter: grayscale(1);
	opacity: 0.72;
	transition: filter 0.2s ease, opacity 0.2s ease;
}

.ls-wrap.is-gray .ls-item a:hover img,
.ls-wrap.is-gray .ls-item a:focus img {
	filter: none;
	opacity: 1;
}

@keyframes ls-scroll {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}

@media (max-width: 767px) {
	.ls-wrap {
		margin: 1rem 0;
	}

	.ls-title {
		font-size: 0.95rem;
	}

	.ls-viewport {
		-webkit-mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 28px), transparent);
		mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 28px), transparent);
	}

	.ls-list {
		gap: 28px;
		padding-right: 28px;
	}

	.ls-item img {
		height: calc(var(--ls-height) * 0.72);
		max-width: min(160px, 38vw);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ls-viewport {
		-webkit-mask-image: none;
		mask-image: none;
		overflow: visible;
	}

	.ls-track {
		animation: none;
		width: 100%;
		flex-wrap: wrap;
		justify-content: center;
		will-change: auto;
	}

	.ls-list {
		flex-wrap: wrap;
		justify-content: center;
		padding-right: 0;
		gap: 1.25rem 1.75rem;
	}

	.ls-list.is-clone,
	.ls-list .ls-item[aria-hidden="true"] {
		display: none;
	}
}

@media print {
	.ls-track {
		animation: none;
	}

	.ls-list.is-clone,
	.ls-list .ls-item[aria-hidden="true"] {
		display: none;
	}
}
