.cts-image-ticker {
	--cts-gap: 24px;
	--cts-duration: 20s;
	width: 100%;
	overflow: hidden;
	position: relative;
}

.cts-image-ticker__track {
	display: flex;
	width: max-content;
	will-change: transform;
	animation-name: cts-image-ticker-scroll;
	animation-duration: var(--cts-duration);
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

.cts-image-ticker[data-direction="right"] .cts-image-ticker__track {
	animation-direction: reverse;
}

.cts-image-ticker[data-pause="yes"]:hover .cts-image-ticker__track {
	animation-play-state: paused;
}

.cts-image-ticker__group {
	display: flex;
	align-items: center;
	gap: var(--cts-gap);
	padding-right: var(--cts-gap);
	flex: 0 0 auto;
}

.cts-image-ticker__item {
	display: block;
	flex: 0 0 auto;
	text-decoration: none;
	line-height: 0;
	width: 220px;
}

.cts-image-ticker__media {
	display: block;
	position: relative;
	overflow: hidden;
	width: 100%;
	line-height: 0;
	transition-property: background-color, border-color, box-shadow;
	transition-timing-function: ease;
}

.cts-image-ticker__media::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	transition-property: background-color, opacity;
	transition-timing-function: ease;
}

.cts-image-ticker__img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	transition-property: filter, transform, opacity;
	transition-timing-function: ease;
}

.cts-image-ticker--fixed-ratio .cts-image-ticker__media {
	width: 100%;
}

.cts-image-ticker--fixed-ratio .cts-image-ticker__img {
	height: 100%;
}

.cts-image-ticker__empty {
	padding: 24px;
	border: 1px dashed #c7c7c7;
	text-align: center;
}

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

@media (prefers-reduced-motion: reduce) {
	.cts-image-ticker__track {
		animation: none !important;
		transform: none !important;
	}
}
