/* ============================================================
   Client logo marquee — sitewide component.
   Sourced from assets/images/client-logos/.

   Seamless loop is achieved by:
   - The track contains TWO identical `<ul>` halves.
   - The track uses `gap` between the two halves.
   - Each half uses `gap` between items (equal to the track gap).
   - No per-half `padding-right`, no per-item margin.
   - Translate the track from 0 → -50%, so the join lands exactly
     one gap after the last item of half-1 — same as any other
     item→item gap → invisible seam.
   ============================================================ */
.rw-marq {
	background: #fff;
	border-block: 1px solid var(--border, #E5E6E8);
	padding: 26px 0 24px;
	overflow: hidden;
}
.rw-marq-caption {
	text-align: center;
	font-family: var(--font-mono, 'IBM Plex Mono', monospace);
	font-size: 10px;
	letter-spacing: 0.12em;
	color: var(--text-3, #575B62);
	margin-bottom: 18px;
	text-transform: uppercase;
}
.rw-marq-viewport {
	position: relative;
	width: 100%;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
	        mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.rw-marq-track {
	display: flex;
	gap: 72px; /* gap BETWEEN the two halves */
	width: max-content;
	animation: rw-marq-scroll var(--rw-marq-speed, 52s) linear infinite;
	will-change: transform;
}
.rw-marq:hover .rw-marq-track,
.rw-marq:focus-within .rw-marq-track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
	.rw-marq-track { animation: none; }
}
.rw-marq-half {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 72px; /* same gap between items so the join is invisible */
	flex-shrink: 0;
}
.rw-marq-item {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}
.rw-marq-item img {
	height: 34px;
	width: auto;
	max-width: 160px;
	object-fit: contain;
	opacity: 0.72;
	filter: grayscale(1);
	transition: opacity 0.2s, filter 0.2s;
}
.rw-marq-item img:hover {
	opacity: 1;
	filter: none;
}

/* The animation: move the track exactly one half-width left,
   which puts the second half in the first half's position — seamless. */
@keyframes rw-marq-scroll {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-50%, 0, 0); }
}

@media (max-width: 767px) {
	.rw-marq { padding: 20px 0 18px; }
	.rw-marq-track { gap: 48px; }
	.rw-marq-half { gap: 48px; }
	.rw-marq-item img { height: 28px; max-width: 130px; }
}
