/**
 * NOVFR LP Kit - défilement continu d'une Liste d'icônes ou d'une Galerie
 * basique Elementor.
 * Chemin : assets/css/marquee.css
 *
 * Actif quand « Défilement continu » est coché (classe novfr-marquee-yes).
 * Le script calcule --novfr-marquee-shift (longueur d'une liste) et
 * --novfr-marquee-duration ; sans script ou si l'appareil demande moins
 * d'animations, la liste reste fixe et la galerie garde sa grille.
 */

.novfr-marquee-yes .elementor-icon-list-item {
	white-space: nowrap;
}

.novfr-marquee-view {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--novfr-marquee-fade, 48px), #000 calc(100% - var(--novfr-marquee-fade, 48px)), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 var(--novfr-marquee-fade, 48px), #000 calc(100% - var(--novfr-marquee-fade, 48px)), transparent);
	overflow: hidden;
}

.novfr-marquee-track {
	animation: novfr-marquee var(--novfr-marquee-duration, 60s) linear infinite;
	display: flex;
	width: max-content;
}

.novfr-marquee-track.novfr-marquee-reverse {
	animation-direction: reverse;
}

.novfr-marquee-track > .elementor-icon-list-items {
	flex-wrap: nowrap !important;
	margin-inline: 0 !important;
}

/* Galerie : photos à hauteur fixe, largeur selon leur format. L'espacement
   réglé dans Style › Images sépare les photos et les deux lignes. */
.novfr-marquee-track > .gallery {
	display: flex;
	margin: 0 !important;
}

.novfr-marquee-track .gallery-item {
	flex: 0 0 auto;
	margin: 0 !important;
	max-width: none !important;
	width: auto !important;
}

.novfr-marquee-track .gallery-item img {
	height: var(--novfr-marquee-height, 250px);
	max-width: none;
	object-fit: cover;
	width: auto;
}

.novfr-marquee-view:last-child .gallery-item {
	padding-bottom: 0 !important;
}

.novfr-marquee-yes:hover .novfr-marquee-track {
	animation-play-state: paused;
}

@keyframes novfr-marquee {
	to {
		transform: translateX(var(--novfr-marquee-shift, 0));
	}
}

@media (prefers-reduced-motion: reduce) {
	.novfr-marquee-track {
		animation: none;
	}
}
