/**
 * Client Logo Fader — stage fade carousel
 * @version 4.4.3
 */

.jx-clf-shell {
	width: 100%;
	display: flex;
}

.jx-clf-shell--left { justify-content: flex-start; }
.jx-clf-shell--center { justify-content: center; }
.jx-clf-shell--right { justify-content: flex-end; }

.jx-clf {
	--clf-accent: #0f766e;
	--clf-max-w: 220px;
	--clf-stage-h: 120px;
	--clf-radius: 16px;
	--clf-border: 1px solid #e6e9ef;
	--clf-card-bg: #ffffff;
	--clf-opacity: 0.92;
	--clf-speed: 700ms;
	--clf-ink: #0f172a;
	--clf-muted: #94a3b8;
	--clf-surface: #f8fafc;
	box-sizing: border-box;
	position: relative;
	width: min(100%, var(--clf-max-w));
	max-width: 100%;
	font-family: "Segoe UI", "Avenir Next", "Helvetica Neue", sans-serif;
	outline: none;
}

.jx-clf--has-arrows {
	width: min(100%, calc(var(--clf-max-w) + 5.5rem));
}

.jx-clf *,
.jx-clf *::before,
.jx-clf *::after {
	box-sizing: border-box;
}

.jx-clf--theme-modern {
	--clf-surface: #f1f5f9;
}

.jx-clf--theme-soft {
	--clf-accent: #6366f1;
	--clf-card-bg: #faf5ff;
	--clf-surface: #f5f3ff;
	--clf-border: 1px solid rgba(99, 102, 241, 0.18);
}

.jx-clf--theme-minimal {
	--clf-card-bg: transparent;
	--clf-border: 0 solid transparent;
	--clf-surface: transparent;
	--clf-radius: 0;
}

.jx-clf--theme-outline {
	--clf-card-bg: #fff;
	--clf-border: 2px solid color-mix(in srgb, var(--clf-accent) 35%, #cbd5e1);
	--clf-surface: transparent;
}

.jx-clf--theme-dark {
	--clf-ink: #f8fafc;
	--clf-muted: #64748b;
	--clf-card-bg: #0f172a;
	--clf-surface: #020617;
	--clf-border: 1px solid rgba(255, 255, 255, 0.1);
}

.jx-clf__stage {
	position: relative;
	width: min(100%, var(--clf-max-w));
	height: var(--clf-stage-h);
	margin: 0 auto;
	border-radius: var(--clf-radius);
	background: var(--clf-surface);
	overflow: hidden;
}

.jx-clf__track {
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
	width: 100%;
	height: 100%;
}

.jx-clf__slide {
	position: absolute;
	/* Inset so card borders stay inside overflow:hidden (not clipped on hover) */
	inset: 2px;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transform: scale(1);
	transition: opacity var(--clf-speed) ease, transform var(--clf-speed) ease;
	z-index: 0;
}

.jx-clf__slide.is-active {
	opacity: 1;
	pointer-events: auto;
	z-index: 1;
}

.jx-clf--fx-zoom .jx-clf__slide {
	transform: scale(0.94);
}

.jx-clf--fx-zoom .jx-clf__slide.is-active {
	transform: scale(1);
}

.jx-clf__card {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 0.85rem 1rem;
	text-decoration: none;
	background: var(--clf-card-bg);
	border: var(--clf-border);
	border-radius: max(0px, calc(var(--clf-radius) - 2px));
	/* No translate on hover — stage overflow would clip the border */
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

a.jx-clf__card:hover,
a.jx-clf__card:focus-visible {
	border-color: color-mix(in srgb, var(--clf-accent) 70%, #fff);
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--clf-accent) 35%, transparent),
		0 8px 22px rgba(15, 23, 42, 0.1);
	outline: none;
}

.jx-clf__card img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	opacity: var(--clf-opacity);
	transition: opacity 0.2s ease, filter 0.25s ease;
}

a.jx-clf__card:hover img,
a.jx-clf__card:focus-visible img,
.jx-clf__slide.is-active .jx-clf__card img {
	opacity: 1;
}

/* Fader shows one logo at a time — keep grey until hover (not while active) */
.jx-clf--greyscale .jx-clf__card img {
	filter: grayscale(1);
}

.jx-clf--greyscale a.jx-clf__card:hover img,
.jx-clf--greyscale a.jx-clf__card:focus-visible img {
	filter: grayscale(0);
}

.jx-clf__arrow {
	appearance: none;
	-webkit-appearance: none;
	position: absolute;
	top: calc(var(--clf-stage-h) / 2);
	transform: translateY(-50%);
	z-index: 3;
	width: 2.35rem;
	height: 2.35rem;
	border-radius: 999px;
	border: 1px solid rgba(15, 23, 42, 0.1);
	background: #fff;
	color: var(--clf-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	cursor: pointer;
	box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.jx-clf--theme-dark .jx-clf__arrow {
	background: rgba(15, 23, 42, 0.85);
	border-color: rgba(255, 255, 255, 0.12);
	color: #fff;
}

.jx-clf__arrow svg {
	width: 1.05rem;
	height: 1.05rem;
	display: block;
}

.jx-clf__arrow--prev { left: 0; }
.jx-clf__arrow--next { right: 0; }

.jx-clf__arrow:hover,
.jx-clf__arrow:focus-visible {
	background: var(--clf-accent);
	border-color: transparent;
	color: #fff;
	outline: none;
	transform: translateY(-50%) scale(1.04);
}

.jx-clf__dots {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem;
	margin-top: 0.75rem;
	padding: 0 0.25rem;
}

.jx-clf__dot {
	appearance: none;
	-webkit-appearance: none;
	/* ≥24px hit target; visual pip via ::after */
	width: 1.75rem;
	height: 1.75rem;
	border: 0;
	padding: 0;
	margin: 0;
	background: transparent;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
}

.jx-clf__dot::after {
	content: "";
	display: block;
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 999px;
	background: var(--clf-muted);
	opacity: 0.45;
	transition: width 0.2s ease, opacity 0.2s ease, background 0.2s ease;
}

.jx-clf__dot.is-active::after {
	width: 1.25rem;
	opacity: 1;
	background: var(--clf-accent);
}

.jx-clf__dot:hover::after,
.jx-clf__dot:focus-visible::after {
	opacity: 0.9;
}

.jx-clf__dot:focus-visible {
	outline: 2px solid var(--clf-accent);
	outline-offset: 2px;
}

@media (max-width: 479px) {
	.jx-clf:not(.jx-clf--has-arrows) {
		width: min(100%, var(--clf-max-w));
	}

	.jx-clf--has-arrows {
		width: min(100%, calc(var(--clf-max-w) + 5.5rem));
	}

	.jx-clf__stage {
		width: min(100%, var(--clf-max-w));
	}

	.jx-clf__arrow {
		width: 2.5rem;
		height: 2.5rem;
	}

	.jx-clf__arrow--prev { left: 0.1rem; }
	.jx-clf__arrow--next { right: 0.1rem; }

	.jx-clf__dot {
		width: 2rem;
		height: 2rem;
	}

	.jx-clf__dot::after {
		width: 0.65rem;
		height: 0.65rem;
	}

	.jx-clf__dot.is-active::after {
		width: 1.4rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.jx-clf__slide,
	.jx-clf__card,
	.jx-clf__card img,
	.jx-clf__arrow,
	.jx-clf__dot {
		transition: none !important;
	}
}
