/* CSS/style.css */


/* BASE */

@import url("./base/base.css");

/* COMPONENTS */

@import url("./components/navbar.css");
@import url("./components/buttons.css");
@import url("./components/badges.css");
@import url("./components/modal.css");

/* SECTIONS */

@import url("./sections/hero.css");
@import url("./sections/services.css");
@import url("./sections/pricing.css");
@import url("./sections/projects.css");
@import url("./sections/process.css");
@import url("./sections/contact.css");
@import url("./sections/testimonials.css");
@import url("./sections/team.css");
@import url("./sections/faq.css");
@import url("./sections/footer.css");
@import url("./sections/animations-extra.css");

/* Utilities */

.text-center {
    text-align: center;
}

.mb-2 {
    margin-bottom: 0.5rem;
}

.mb-4 {
    margin-bottom: 1rem;
}

.mt-4 {
    margin-top: 1rem;
}

.mt-8 {
    margin-top: 2rem;
}


/* Reveal Animations */

.reveal-init {
    opacity: 1;
    transform: translateY(0) scale(1);
    transition: opacity 0.7s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

html.js-ready body .reveal-init:not(.reveal-active) {
    opacity: 0;
    transform: translateY(28px) scale(0.98);
}

.reveal-active {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.stagger-child {
    opacity: 1;
    transform: translateY(0) scale(1);
    transition: opacity 0.55s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.55s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

html.js-ready body .stagger-child:not(.reveal-active) {
    opacity: 0;
    transform: translateY(16px) scale(0.99);
}

.stagger-child.reveal-active {
    opacity: 1;
    transform: translateY(0) scale(1);
}


/* =====================================================
   FALLBACK D'AFFICHAGE — SÉCURITÉ
   =====================================================
   Si JS n'est pas encore chargé (connexion lente,
   tunnel, cache vide), on force l'affichage des
   sections pour éviter une page blanche.

   Dès que JS finit de charger, les animations
   reprennent le dessus.
   ===================================================== */

html:not(.js-ready) body .reveal-init,
html:not(.js-ready) body .stagger-child {
    opacity: 1 !important;
    transform: none !important;
}