/* ==========================================================================
   GEMTech Logo Ticker
   Infinite CSS-animation marquee. Two sets of logos are rendered in PHP;
   the animation slides -50% to create a seamless loop.
   ========================================================================== */

/* Outer wrapper — clips the scrolling track */
.gemtech-logo-ticker {
	overflow: hidden;
	width: 100%;
}

/* Scrolling track — flex row, no wrapping, animated */
.gemtech-logo-ticker__track {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	width: max-content;         /* shrink-wrap to content so -50% is exact */
	animation-name: gemtech-ticker-scroll;
	animation-duration: 30s;    /* default; overridden per-widget via Elementor */
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	will-change: transform;
}

/* Rightward scroll */
.gemtech-logo-ticker--reverse .gemtech-logo-ticker__track {
	animation-direction: reverse;
}

/* Pause on hover */
.gemtech-logo-ticker--pauseable:hover .gemtech-logo-ticker__track {
	animation-play-state: paused;
}

/* Respect the user's reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
	.gemtech-logo-ticker__track {
		animation: none;
	}
	.gemtech-logo-ticker .gemtech-logo-ticker__track {
		overflow-x: auto;
		scrollbar-width: none;
	}
	.gemtech-logo-ticker .gemtech-logo-ticker__track::-webkit-scrollbar {
		display: none;
	}
}

/* Individual logo item */
.gemtech-logo-ticker__item {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-left: 40px;     /* default; overridden per-widget via Elementor */
	padding-right: 40px;
	pointer-events: all;    /* ensure clicks register even inside an animated track */
}

/* Divider variant — a right border on each item acts as separator */
.gemtech-logo-ticker--dividers .gemtech-logo-ticker__item {
	border-right-style: solid;
	border-right-width: 1px;
	border-right-color: #e2e8f0;
}

/* Logo images */
.gemtech-logo-ticker__item img {
	display: block;
	max-height: 60px;       /* default; overridden per-widget via Elementor */
	width: auto;
	object-fit: contain;
	max-width: none;        /* prevent theme interference */
	transition: filter 0.3s ease, opacity 0.3s ease;
}

/* Link wrapper */
.gemtech-logo-ticker__link {
	display: flex;
	align-items: center;
	justify-content: center;
	outline-offset: 3px;
	pointer-events: all;
}

/* Greyscale effect
   --gt-greyscale-amount and --gt-colour-transition are set by Elementor controls
   on .gemtech-logo-ticker--greyscale so the hover rule below can always win
   without needing to match Elementor's {{WRAPPER}} specificity. */
.gemtech-logo-ticker--greyscale {
	--gt-greyscale-amount: 100%;
	--gt-colour-transition: 300ms;
}

.gemtech-logo-ticker--greyscale .gemtech-logo-ticker__item img {
	filter: grayscale(var(--gt-greyscale-amount));
	transition: filter var(--gt-colour-transition) ease, opacity var(--gt-colour-transition) ease;
}

.gemtech-logo-ticker--greyscale .gemtech-logo-ticker__item:hover img {
	filter: grayscale(0%);
}

/* ==========================================================================
   Keyframe — slides the (doubled) track exactly half its own width
   ========================================================================== */
@keyframes gemtech-ticker-scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

/* ==========================================================================
   Mobile-first responsive adjustments
   ========================================================================== */

/* On very small screens allow items to breathe a little less */
@media (max-width: 480px) {
	.gemtech-logo-ticker__item {
		padding-left: 20px;
		padding-right: 20px;
	}

	.gemtech-logo-ticker__item img {
		max-height: 40px;
	}
}
