/* Styles personnalises du site Onyo. */

body {
    animation: page-enter 0.7s ease both;
}

nav {
    animation: nav-drop 0.75s ease both;
}

[data-reveal] {
    will-change: opacity, transform;
}

[data-reveal].is-visible {
    animation: reveal-soft-lift 0.8s ease both;
}

.testimonial-card.is-visible,
.glass-card.is-visible,
article.is-visible {
    animation-name: reveal-card-pop;
}

.testimonial-card .absolute,
.footer-social-link {
    animation: subtle-float 5.5s ease-in-out infinite;
}

.footer-social-link:nth-child(even) {
    animation-delay: 0.8s;
}

.bg-perfect-split {
    background: linear-gradient(
        to bottom,
        #102A54 0%,
        #102A54 50%,
        #0B1E3A 50%,
        #0B1E3A 100%
    );
}

@keyframes page-enter {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes nav-drop {
    from {
        opacity: 0;
        transform: translateY(-18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes reveal-soft-lift {
    from {
        opacity: 0;
        transform: translateY(28px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes reveal-card-pop {
    0% {
        opacity: 0;
        transform: translateY(30px) scale(0.98);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes subtle-float {
    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-6px);
    }
}

.footer-social-link {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    color: #dbeafe;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 9999px;
    background: transparent;
    transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.footer-social-link:hover {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.38);
    background: rgba(255, 255, 255, 0.1);
}

.partner-marquee {
    --partner-gap: 2rem;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}

.partner-marquee__track {
    display: flex;
    width: max-content;
    gap: var(--partner-gap);
    animation: partner-scroll 24s linear infinite;
}

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

.partner-marquee__item {
    transform: translateZ(0);
}

@keyframes partner-scroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(calc(-50% - (var(--partner-gap) / 2)));
    }
}

@media (max-width: 640px) {
    .partner-marquee {
        --partner-gap: 1rem;
    }

    .partner-marquee__track {
        animation-duration: 18s;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .partner-marquee {
        overflow-x: auto;
        -webkit-mask-image: none;
        mask-image: none;
    }

    .partner-marquee__track {
        animation: none;
    }
}
