html, body {
    max-width: 100vw;
    overflow-x: clip;
}

@keyframes loaderLogoPulse {
    0%, 100% { opacity: 0.4; filter: brightness(0.8); }
    50% { opacity: 1; filter: brightness(1.2); }
}

.loader-logo-pulse {
    animation: loaderLogoPulse 2s ease-in-out infinite;
}

@keyframes slideDown {
    0% { transform: translateY(-100%); }
    100% { transform: translateY(100%); }
}

.hide-cursor {
    cursor: none !important;
}
.hide-cursor * {
    cursor: none !important;
}

@media (min-width: 768px) {
    body, body *, html, a, button, input, textarea {
        cursor: none !important;
    }
}

@keyframes flag-wave-3d {
    0%, 100% {
        transform: rotateY(-6deg) rotateX(2deg) skewY(-1deg);
    }
    50% {
        transform: rotateY(6deg) rotateX(-2deg) skewY(1deg);
    }
}

.animate-flag {
    animation: flag-wave-3d 8s ease-in-out infinite;
    transform-origin: center left;
    transform-style: preserve-3d;
}

@keyframes shimmer-wave {
    0% { transform: translateX(-150%) skewX(-20deg); }
    100% { transform: translateX(150%) skewX(-20deg); }
}

.wave-shimmer {
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent);
    width: 150%;
    height: 100%;
    animation: shimmer-wave 6s infinite ease-in-out;
    left: -25%;
}

/* Marketifly : fond blanc, textes bleu */
.project-marketifly .project-bg {
    background: rgba(255, 255, 255, 0.05);
}
.project-marketifly.is-active .project-bg {
    background: #FFFFFF;
}

#collectif,
#poles,
#contact,
#contact-footer-wrapper {
    will-change: transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* Header Dark Mode (when over light sections) */
.header-dark nav a {
    color: #050505 !important;
}
.header-dark nav a:hover {
    color: rgba(5, 5, 5, 0.6) !important;
}
.header-dark nav a span {
    color: rgba(5, 5, 5, 0.4) !important;
}
.header-dark nav a div {
    background-color: #050505 !important;
}
.header-dark #mobile-menu-btn iconify-icon {
    color: #050505 !important;
}

/* Footer marquee / pharmacy banner */
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.footer-marquee {
    animation: marquee 20s linear infinite;
    will-change: transform;
}

.footer-marquee:hover {
    animation-play-state: paused;
}