/* FP Logo Marquee for Elementor */

.fp-lm {
	width: 100%;
	padding: 30px 0;
	background: transparent;
	overflow: hidden;
}

/* Header */
.fp-lm-header {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 0 24px;
	margin-bottom: 64px;
}

.fp-lm-header .fp-lm-line {
	flex: 1;
	height: 1px;
	background: rgba(255, 255, 255, 0.18);
}

.fp-lm-header h3 {
	margin: 0;
	padding: 0;
	color: #ffffff;
	font-size: 10px;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.6em;
	white-space: nowrap;
}

/* Wrapper */
.fp-lm-wrapper {
	width: 100%;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	padding: 32px 0;
	overflow: hidden;
	position: relative;
}

.fp-lm--fade .fp-lm-wrapper {
	-webkit-mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
	mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
}

/* Track: two identical sets, shifted by exactly one set (50%) for a seamless loop */
.fp-lm-track {
	display: flex;
	align-items: center;
	width: max-content;
	animation: fpLogoMarquee 55s linear infinite;
	will-change: transform;
}

.fp-lm-set {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

/* Logos */
.fp-lm-logo {
	display: inline-flex;
	align-items: center;
	margin: 0 64px;
	color: #ffffff;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: transform 0.5s ease, color 0.5s ease;
}

.fp-lm-logo-text {
	display: inline-block;
	font-size: 3rem;
	font-weight: 900;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.fp-lm-logo img {
	display: block;
	height: 48px;
	width: auto;
	max-width: none;
}

.fp-lm-logo:hover {
	transform: scale(1.04);
}

@keyframes fpLogoMarquee {
	0%   { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

.fp-lm--pause .fp-lm-wrapper:hover .fp-lm-track {
	animation-play-state: paused;
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
	.fp-lm-track {
		animation-duration: 200s;
	}
}

/* Tablet */
@media (max-width: 1024px) {
	.fp-lm-header { gap: 18px; margin-bottom: 50px; }
	.fp-lm-logo { margin: 0 50px; }
	.fp-lm-logo-text { font-size: 2.5rem; }
}

/* Mobile */
@media (max-width: 768px) {
	.fp-lm { padding: 20px 0; }
	.fp-lm-header { gap: 14px; padding: 0 16px; margin-bottom: 40px; }
	.fp-lm-header h3 { font-size: 8px; letter-spacing: 0.4em; }
	.fp-lm-wrapper { padding: 25px 0; }
	.fp-lm-logo { margin: 0 40px; }
	.fp-lm-logo-text { font-size: 2rem; }
}

/* Small mobile */
@media (max-width: 480px) {
	.fp-lm-header { gap: 10px; }
	.fp-lm-header h3 { font-size: 7px; letter-spacing: 0.3em; }
	.fp-lm-logo { margin: 0 30px; }
	.fp-lm-logo-text { font-size: 1.6rem; }
}
