/* Animations & styles personnalisés Cabinet Sourire+ */

html { scroll-behavior: smooth; }

/* Navbar qui devient blanche au scroll */
#navbar.scrolled {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    box-shadow: 0 4px 20px rgba(15, 74, 108, 0.08);
}
#navbar.scrolled #brand-text { color: #0e4a6c; }
#navbar.scrolled .nav-link { color: #334155; }
#navbar.scrolled .nav-link:hover { color: #0784c0; background: #eefbff; }
#navbar.scrolled .nav-link.bg-white\/20,
#navbar.scrolled a[href="/contact"].bg-white\/20 { color: #0e4a6c; }

/* Blobs flottants */
.blob {
    animation: blobFloat 14s ease-in-out infinite;
}
@keyframes blobFloat {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(30px, -40px) scale(1.08); }
    66% { transform: translate(-25px, 25px) scale(0.95); }
}

/* Image flottante du hero */
.animate-float {
    animation: floaty 6s ease-in-out infinite;
}
@keyframes floaty {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-14px); }
}

.animate-pulse-slow {
    animation: pulseSlow 5s ease-in-out infinite;
}
@keyframes pulseSlow {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

/* Slide-up (toast flash) */
.animate-slide-up {
    animation: slideUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes slideUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Reveal au scroll (activé par main.js) */
.reveal {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Accessibilité : désactiver les animations si demandé */
@media (prefers-reduced-motion: reduce) {
    .blob, .animate-float, .animate-pulse-slow { animation: none; }
    .reveal { opacity: 1; transform: none; transition: none; }
    html { scroll-behavior: auto; }
}
