/**
 * Marquee Strip
 *
 * Infinite-scrolling text ticker (UX Builder element: [marquee]).
 * The scroll loop is pure CSS (transform + keyframes) so there is
 * no JS layout measuring and no DOM manipulation at runtime.
 *
 * Loop technique: the track renders the same group of items twice,
 * back to back, then animates translateX(0 -> -50%). Since the two
 * groups are always identical in width, the shift lines up perfectly
 * and the loop reads as continuous.
 */

.marquee {
	position: relative;
	overflow: hidden;
	width: 100%;
	background-color: #1C2B4A;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	border-bottom: 1px solid rgba(0, 0, 0, 0.25);
}

.marquee__viewport {
	overflow: hidden;
	width: 100%;
	padding: 13px 0;
	border-top: 1px solid rgba(200, 184, 154, 0.18);
	border-bottom: 1px solid rgba(200, 184, 154, 0.18);
}

.marquee__track {
	display: flex;
	align-items: center;
	width: max-content;
	gap: 560px;
	will-change: transform;
	animation: marquee-scroll-left linear infinite;
}

/* Reverse direction reuses the same keyframes, just flipped */
.marquee--direction-right .marquee__track {
	animation-name: marquee-scroll-right;
}

/* Pause the loop while a visitor hovers, when enabled from the panel */
.marquee--pause-hover:hover .marquee__track {
	animation-play-state: paused;
}

.marquee__group {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	gap: 560px;
}

.marquee__item {
	white-space: nowrap;
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 4px;
	color: rgba(200, 184, 154, 0.65);
}

.marquee__separator {
	display: inline-block;
	white-space: nowrap;
	color: #c7b08a;
	opacity: 0.55;
	margin: 0 14px;
	font-size: 13px;
}

/* ─── Sizes ───────────────────────────────────────────────────────────────── */
/* Mobile-first: base size is "small", larger steps add px at wider breakpoints */

.marquee--size-medium .marquee__item,
.marquee--size-medium .marquee__separator {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 4px;
	color: rgba(200, 184, 154, 0.65);
}

.marquee--size-large .marquee__item,
.marquee--size-large .marquee__separator {
	font-size: 15px;
}

@media (min-width: 768px) {

	.marquee__item,
	.marquee__separator {
		font-size: 14px;
	}

	.marquee--size-large .marquee__item,
	.marquee--size-large .marquee__separator {
		font-size: 20px;
	}

	.marquee__separator {
		margin: 0 20px;
	}
}

@keyframes marquee-scroll-left {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

@keyframes marquee-scroll-right {
	from {
		transform: translateX(-50%);
	}

	to {
		transform: translateX(0);
	}
}

/* Respect reduced-motion preference: freeze on the first frame instead of looping */
@media (prefers-reduced-motion: reduce) {
	.marquee__track {
		animation: none;
	}
}