/* Effet de parallaxe léger et dégradés */
.hero-bg {
    background-image: linear-gradient(rgba(19, 10, 84, 0.85), rgba(19, 10, 84, 0.8)), url('https://images.unsplash.com/photo-1455587734955-081b22074882?ixlib=rb-4.0.3&auto=format&fit=crop&w=1920&q=80');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

/* Animations on scroll */
.fade-in-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.6, 0.2, 0.4, 1), transform 0.8s cubic-bezier(0.6, 0.2, 0.4, 1);
}

.fade-in-up.visible {
    opacity: 1;
    transform: translateY(0);
}

.delay-1 {
    transition-delay: 50ms;
}

.delay-2 {
    transition-delay: 100ms;
}

.delay-3 {
    transition-delay: 150ms;
}

.delay-4 {
    transition-delay: 200ms;
}

.delay-5 {
    transition-delay: 250ms;
}

.delay-6 {
    transition-delay: 300ms;
}

.delay-7 {
    transition-delay: 350ms;
}

.delay-8 {
    transition-delay: 400ms;
}

.delay-9 {
    transition-delay: 450ms;
}

.delay-10 {
    transition-delay: 500ms;
}

.delay-11 {
    transition-delay: 550ms;
}

.delay-12 {
    transition-delay: 600ms;
}

.delay-13 {
    transition-delay: 650ms;
}

.delay-14 {
    transition-delay: 700ms;
}

.delay-15 {
    transition-delay: 750ms;
}

/* Animation spécifique pour les logos partenaires */
.partner-logo {
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.partner-logo.visible {
    opacity: 1;
    transform: scale(1);
}


/* Navbar scroll effect */
#navbar.scrolled {
    background-color: rgba(255, 255, 255, 1);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

/* Hero text animation */
.hero-title {
    animation: fadeInUp 1s ease-out forwards;
    opacity: 0;
}

.hero-p {
    animation: fadeInUp 1s ease-out 0.3s forwards;
    opacity: 0;
}

.hero-buttons {
    animation: fadeInUp 1s ease-out 0.6s forwards;
    opacity: 0;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

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

/* Hamburger Menu Animation */
#mobile-menu-btn span {
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
}

#mobile-menu-btn.open span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

#mobile-menu-btn.open span:nth-child(2) {
    opacity: 0;
}

#mobile-menu-btn.open span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

/* Slideshow Background Animation */
.slideshow {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.slideshow-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.slideshow-image.active {
    opacity: 0.6;
}

/* Carousel Vertical Moderne - Amélioré pour plus de visibilité */
.carousel-vertical {
    position: relative;
    width: 100%;
    height: 100%;
}

.carousel-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.8s ease-in-out, transform 0.8s ease-in-out;
}

.carousel-img.active-carousel {
    opacity: 1;
}

/* Overlay sombre pour améliorer la lisibilité du carousel */
.carousel-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 0%, rgba(19, 10, 84, 0.3) 100%);
    pointer-events: none;
}

/* --- Presentation Slideshow Styles --- */
.presentation-slideshow {
    position: relative;
    width: 100%;
    overflow: hidden;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.presentation-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.3s ease;
    user-select: none;
    -webkit-user-drag: none;
}

.presentation-slide img {
    -webkit-user-drag: none;
    pointer-events: none;
}

.presentation-slide.active-slide {
    opacity: 1;
    z-index: 10;
}

.presentation-slide:not(.active-slide) {
    opacity: 0;
    z-index: 1;
}

.presentation-overlay {
    pointer-events: none;
}

.presentation-caption {
    transition: transform 0.5s ease-in-out, opacity 0.5s ease-in-out;
}

.presentation-prev:hover,
.presentation-next:hover {
    box-shadow: 0 4px 12px -2px rgba(0, 0, 0, 0.1), 0 2px 6px -2px rgba(0, 0, 0, 0.06);
}

.presentation-dot {
    cursor: pointer;
    transition: all 0.3s ease;
}

.presentation-dot:hover {
    transform: scale(1.2);
}

.presentation-dot.active-dot {
    background-color: #130A54;
    width: 2rem;
    border-radius: 9999px;
}

/* Animation pour les captions au changement de slide */
.presentation-slideshow.active-slide .presentation-caption {
    animation: captionFadeIn 0.5s ease-out;
}

@keyframes captionFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

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