/* =========================================
   1. VARIABLES & UTILITAIRES DE BASE
========================================= */
:root {
    --clr-primary: #10B981;
    --clr-primary-hover: #059669;
}

.text-primary { color: var(--clr-primary); }
.text-white { color: #ffffff; }
.text-dark { color: #000000; }
.text-gray-300 { color: #d1d5db; }
.bg-light-gray { background-color: #ffffff; }
.bg-gradient-dark { background: linear-gradient(to bottom right, #000000, #111827); }
.section-padding { padding: 5rem 0; }
.text-center { text-align: center; }
.icon-sm { width: 1.25rem; height: 1.25rem; }

/* Boutons */
.btn-white {
    background-color: #ffffff;
    color: var(--clr-primary);
    font-weight: 700;
    padding: 1rem 2rem;
    border-radius: 0.5rem;
    text-decoration: none;
    transition: background-color 0.3s;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}
.btn-white:hover { background-color: #f3f4f6; }

.btn-dark-blur {
    background-color: rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    color: #ffffff;
    font-weight: 700;
    padding: 1rem 2rem;
    border-radius: 0.5rem;
    text-decoration: none;
    transition: background-color 0.3s;
    display: inline-flex;
    align-items: center;
}
.btn-dark-blur:hover { background-color: rgba(0, 0, 0, 0.3); }

/* =========================================
   2. HERO SECTION
========================================= */
.page-hero {
    padding: 10rem 1rem 8rem 1rem; /* Plus de padding en bas pour la superposition */
    background-color: #000;
}
.page-title {
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 700;
    margin-bottom: 1.5rem;
}
.page-subtitle {
    font-size: 1.25rem;
    max-width: 48rem;
    margin: 0 auto;
    line-height: 1.6;
}

/* =========================================
   3. TRUST INDICATORS (Superposition)
========================================= */
.overlap-container {
    margin-top: -3rem; /* Remonte sur la section du dessus (-mt-10 en Tailwind) */
    position: relative;
    z-index: 10;
}
.trust-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    max-width: 56rem;
    margin: 0 auto;
}
.trust-card {
    background-color: #ffffff;
    border-radius: 0.75rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    padding: 1.5rem;
    text-align: center;
}
.trust-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.75rem auto;
    color: #ffffff;
}
.trust-icon svg { width: 1.5rem; height: 1.5rem; }
.trust-label { font-weight: 600; color: #1f2937; font-size: 0.875rem; margin: 0; }

@media (min-width: 768px) {
    .trust-grid { grid-template-columns: repeat(4, 1fr); }
}

/* =========================================
   4. FILTRES DE CATÉGORIE
========================================= */
.filter-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 3rem;
    margin-top: 2rem;
}
.filter-btn {
    background-color: #f3f4f6;
    color: #374151;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.3s ease;
}
.filter-btn:hover { background-color: #e5e7eb; }

/* État actif du bouton de filtre */
.filter-btn.active {
    background-color: var(--clr-primary);
    color: #ffffff;
    box-shadow: 0 10px 15px -3px rgba(16, 185, 129, 0.3);
}

/* =========================================
   5. ACCORDÉON FAQ
========================================= */
.faq-container {
    max-width: 56rem;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.faq-item {
    background-color: #ffffff;
    border: 2px solid #e5e7eb;
    border-radius: 0.75rem;
    overflow: hidden;
    transition: all 0.3s ease;
}
.faq-item:hover { border-color: var(--clr-primary); }

.faq-question {
    width: 100%;
    background: none;
    border: none;
    padding: 1.25rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.3s;
}
.faq-question:hover { background-color: #f9fafb; }

.faq-question-text { flex: 1; }

.faq-cat-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--clr-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.25rem;
}
.faq-question h3 {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: #111827;
}

/* L'icône Chevron */
.chevron {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--clr-primary);
    flex-shrink: 0;
    margin-left: 1rem;
    transition: transform 0.3s ease;
}

/* La réponse (Cachée par défaut) */
.faq-answer {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding: 0 1.5rem;
    transition: all 0.3s ease;
}
.faq-answer p {
    color: #4b5563;
    line-height: 1.6;
    margin: 0;
    padding-bottom: 1.25rem;
}

/* L'état OUVERT de l'accordéon */
.faq-item.is-open .faq-answer {
    max-height: 500px; /* Assez grand pour afficher le texte */
    opacity: 1;
}
.faq-item.is-open .chevron {
    transform: rotate(180deg);
}

/* =========================================
   6. CTA (Call To Action) SECTION
========================================= */
.faq-cta {
    background: linear-gradient(to bottom right, var(--clr-primary), var(--clr-primary-hover));
    border-radius: 1rem;
    padding: 3rem;
    text-align: center;
    color: #ffffff;
    margin-top: 2rem;
}
.faq-cta-title {
    font-size: clamp(1.875rem, 4vw, 2.25rem);
    font-weight: 700;
    margin-bottom: 1rem;
}
.faq-cta-subtitle {
    font-size: 1.25rem;
    opacity: 0.9;
    margin-bottom: 2rem;
}
.faq-cta-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
}

/* =========================================
   7. ANIMATIONS AU SCROLL
========================================= */
.animate-on-scroll { opacity: 0; }
.fade-in { transition: opacity 0.8s ease-out; }
.fade-in-up { transform: translateY(30px); transition: all 0.8s ease-out; }
.is-visible { opacity: 1 !important; transform: translate(0) !important; }