document.addEventListener('DOMContentLoaded', function () {

    // ─── Menu Burger ───
    const burger = document.getElementById('burger');
    const navLinks = document.querySelector('.nav-links');
    if (burger && navLinks) {
        burger.addEventListener('click', function () {
            const isOpen = navLinks.classList.toggle('active');
            burger.classList.toggle('open', isOpen);
            burger.setAttribute('aria-expanded', isOpen);
        });
        // Fermer en cliquant à l'extérieur
        document.addEventListener('click', function (e) {
            if (!burger.contains(e.target) && !navLinks.contains(e.target)) {
                navLinks.classList.remove('active');
                burger.classList.remove('open');
                burger.setAttribute('aria-expanded', 'false');
            }
        });
    }

    // ─── Ombre de la barre de navigation au défilement ───
    const navbar = document.getElementById('navbar');
    if (navbar) {
        const onScroll = () => {
            navbar.classList.toggle('scrolled', window.scrollY > 20);
        };
        window.addEventListener('scroll', onScroll, { passive: true });
    }

    // ─── Mise en évidence du lien de navigation actif ───
    const currentPage = window.location.pathname.split('/').pop();
    document.querySelectorAll('.nav-links a').forEach(link => {
        const href = link.getAttribute('href');
        if (href === currentPage || (currentPage === '' && href === 'index.php')) {
            link.classList.add('active');
        }
    });

    // ─── Auto-suppression des messages flash ───
    const flashes = document.querySelectorAll('.flash');
    flashes.forEach(flash => {
        setTimeout(() => {
            flash.style.transition = 'opacity 0.5s ease, transform 0.5s ease';
            flash.style.opacity = '0';
            flash.style.transform = 'translateY(-8px)';
            setTimeout(() => flash.remove(), 500);
        }, 5000);
    });

    // ─── Animation des éléments au défilement ───
    const observerOptions = {
        threshold: 0.1,
        rootMargin: '0px 0px -40px 0px'
    };
    const observer = new IntersectionObserver((entries) => {
        entries.forEach((entry, i) => {
            if (entry.isIntersecting) {
                entry.target.style.animationDelay = (i * 0.08) + 's';
                entry.target.classList.add('animate-fadeup');
                observer.unobserve(entry.target);
            }
        });
    }, observerOptions);

    document.querySelectorAll('.car-card, .feature-card, .card, .testimonial-card').forEach(el => {
        el.style.opacity = '0';
        observer.observe(el);
    });

    // ─── Sélection visuelle des cartes radio chauffeur ───
    document.querySelectorAll('.chauffeur-item').forEach(item => {
        const radio = item.querySelector('input[type="radio"]');
        if (radio) {
            item.addEventListener('click', () => {
                radio.checked = true;
                // Déclencher tout fallback CSS :has()
                document.querySelectorAll('.chauffeur-item').forEach(i => i.classList.remove('selected'));
                item.classList.add('selected');
            });
            if (radio.checked) item.classList.add('selected');
        }
    });

    // ─── Entrée de date : mettre en évidence aujourd'hui ───
    const dateInputs = document.querySelectorAll('input[type="date"]');
    dateInputs.forEach(input => {
        if (!input.value) {
            input.value = new Date().toISOString().split('T')[0];
        }
    });

    // ─── Boutons de confirmation avec confirmation personnalisée ───
    document.querySelectorAll('.btn.danger[onclick]').forEach(btn => {
        btn.addEventListener('click', function (e) {
            // L'attribut onclick s'en occupe, mais améliorons l'UX
        });
    });

    // ─── Animation fluide du compteur de statistiques ───
    const statNumbers = document.querySelectorAll('.stat-number');
    if (statNumbers.length > 0) {
        const statObserver = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    entry.target.style.animation = 'fadeIn 0.6s ease both';
                    statObserver.unobserve(entry.target);
                }
            });
        }, { threshold: 0.5 });
        statNumbers.forEach(el => statObserver.observe(el));
    }

});
