/* ==========================================
   1. VARIABLES ET RÉGLAGES DE BASE
   ========================================== */
*, *::before, *::after { 
    box-sizing: border-box; 
    margin: 0; 
    padding: 0; 
}

:root {
    --black: #080808; 
    --white: #f4f1eb; 
    --gold: #c8a84b; 
    --gold-l: #e2ca80;
    --gray: #777; 
    --gray2: #444;
    --card: #111; 
    --card2: #161616; 
    --border: rgba(200,168,75,.2);
}

/* ==========================================
   GESTION DU MODE CLAIR (LIGHT MODE) - CORRECTIF HERO & FILTRES
   ========================================== */

body.light-mode {
    --black: #dcdcdc;      /* Fond gris galet */
    --white: #000000;      /* Texte principal noir */
    --gold: #8e701d;       /* Or Bronze */
    --card: #eeeeee;       /* Cartes claires */
    --border: rgba(0, 0, 0, 0.1);
}

/* Force le fond clair sur le Hero et les Sections */
body.light-mode .hero, 
body.light-mode section, 
body.light-mode nav, 
body.light-mode footer {
    background: #dcdcdc !important;
    color: #000000 !important;
}

/* Correction spécifique pour le texte DJTHIB et l'accroche */
body.light-mode .nav-logo,
body.light-mode .hero h1,
body.light-mode .hero p,
body.light-mode .sec-title h2,
body.light-mode .sec-title p {
    color: #000000 !important;
    text-shadow: none !important;
}

/* Correction spécifique pour Mariage • Anniversaire • Entreprise */
body.light-mode .filter-btn {
    background: #ffffff !important;
    color: #000000 !important;
    border: 1px solid #000000 !important;
}

body.light-mode .filter-btn.active {
    background: var(--gold) !important;
    color: #ffffff !important;
    border-color: var(--gold) !important;
}

/* Réglages de base Body */
html { scroll-behavior: smooth; }

body { 
    background: var(--black); 
    color: var(--white); 
    font-family: 'DM Sans', sans-serif; 
    font-weight: 300; 
    overflow-x: hidden;
    transition: background 0.3s ease, color 0.3s ease;
}

/* ==========================================
   2. NAVIGATION ET LOGO
   ========================================== */

nav { 
    position: fixed; 
    top: 0; left: 0; right: 0; 
    z-index: 200; 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
    padding: 1.2rem 3rem; 
    background: rgba(8,8,8,.95); 
    backdrop-filter: blur(10px); 
    border-bottom: 1px solid var(--border); 
}

.nav-logo { 
    font-family: 'Bebas Neue', sans-serif; 
    font-size: 1.8rem; 
    color: var(--white); 
    text-decoration: none; 
    letter-spacing: 2px; 
}

.nav-logo span { color: var(--gold); }

.nav-links { 
    display: flex; 
    gap: 2rem; 
    list-style: none; 
}

.nav-links a { 
    color: var(--gray); 
    text-decoration: none; 
    font-size: .8rem; 
    text-transform: uppercase; 
    letter-spacing: 1px; 
    transition: color 0.3s; 
}

.nav-links a:hover { color: var(--gold); }

/* ==========================================
   3. BOUTONS
   ========================================== */
.nav-buttons-container {
    display: flex;
    gap: 10px;
    align-items: center;
}

.btn-gold, .btn-client { 
    border: 1px solid var(--gold); 
    color: var(--gold); 
    padding: 0.8rem 1.2rem; 
    text-decoration: none; 
    display: inline-block; 
    transition: all 0.3s ease; 
    font-size: .7rem; 
    letter-spacing: 1px; 
    text-transform: uppercase; 
    background: transparent; 
    cursor: pointer; 
    text-align: center; 
    min-width: 140px;
}

.btn-gold:hover, .btn-client:hover { 
    background: var(--gold); 
    color: var(--black); 
}

/* Le bouton client est légèrement plus discret (bordure grise/blanche au repos) */
.btn-client {
    border-color: var(--border);
    color: var(--white);
}

.btn-wa { 
    background: var(--white); 
    color: var(--black); 
    border: none; 
    padding: 1.2rem; 
    width: 100%; 
    font-weight: bold; 
    cursor: pointer; 
    transition: 0.3s; 
    text-transform: uppercase; 
    letter-spacing: 1px; 
    font-family: inherit; 
    margin-top: 1rem; 
    border-radius: 2px; 
}

.btn-wa:hover { 
    background: #25D366; 
    color: var(--white); 
}

/* --- AJUSTEMENT MOBILE (À mettre dans la section @media max-width: 768px) --- */
@media (max-width: 768px) {
    .nav-buttons-container {
        flex-direction: column; /* Empilement vertical */
        gap: 5px;
    }

    .btn-gold, .btn-client {
        min-width: 110px;
        padding: 0.4rem 0.8rem;
        font-size: 0.55rem;
    }
}

/* ==========================================
   4. SECTIONS GÉNÉRALES
   ========================================== */
section { 
    padding: 6rem 3rem; 
    max-width: 1200px; 
    margin: 0 auto; 
}

.sec-title { 
    text-align: center; 
    margin-bottom: 3rem; 
}

.sec-title h2 { 
    font-family: 'Bebas Neue', sans-serif; 
    font-size: 3rem; 
    letter-spacing: 2px; 
}

.sec-title p { 
    color: var(--gray); 
    font-size: 0.8rem; 
    text-transform: uppercase; 
    letter-spacing: 3px; 
}

/* --- HÉRO --- */
.hero { 
    padding: 12rem 2rem 8rem; 
    text-align: center; 
    background: radial-gradient(circle at center, #1a1a1a 0%, #080808 100%); 
    min-height: 80vh; 
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
    align-items: center; 
}

.hero h1 { 
    font-family: 'Bebas Neue', sans-serif; 
    font-size: clamp(4rem, 8vw, 8rem); 
    letter-spacing: 4px; 
    line-height: 1; 
    margin-bottom: 1rem; 
}

.hero .outline { 
    color: transparent; 
    -webkit-text-stroke: 1px var(--gold); 
}

.contact-wrapper {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap; /* Permet de passer à la ligne sur mobile */
    gap: 50px;
    align-items: center;
}

.contact-text, .contact-form-container {
    flex: 1;
    min-width: 300px; /* Force l'empilement si l'écran est trop petit */
}

.social-link {
    color: var(--gold);
    text-decoration: none;
    font-size: .8rem;
    font-weight: bold;
    letter-spacing: 1px;
    transition: 0.3s;
}

.social-link:hover {
    color: #fff;
    transform: translateY(-2px);
}

@media (max-width: 768px) {
    .contact-text {
        text-align: center;
        margin-bottom: 2rem;
    }
    .contact-text div {
        justify-content: center;
    }
}

/* ==========================================
   5. GALERIE & FILTRES
   ========================================== */
.filter-container { 
    display: flex; 
    justify-content: center; 
    gap: 1rem; 
    flex-wrap: wrap; 
    margin-bottom: 2rem; 
}

.filter-btn { 
    border: 1px solid var(--border); 
    color: var(--white); 
    background: var(--card); 
    padding: 0.8rem 1.5rem; 
    cursor: pointer; 
    transition: all 0.3s; 
    font-family: 'Bebas Neue', sans-serif; 
    font-size: 1.2rem; 
    letter-spacing: 1px; 
    border-radius: 2px; 
}

.filter-btn:hover { border-color: var(--gold); color: var(--gold); }
.filter-btn.active { background: var(--gold); color: var(--black); border-color: var(--gold); }

#service-gallery { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); 
    gap: 1.5rem; 
}

.gallery-img { 
    width: 100%; 
    height: 300px; 
    object-fit: cover; 
    border-radius: 4px; 
    cursor: pointer; 
    transition: all 0.4s ease; 
    border: 1px solid var(--border); 
    background: #111; 
}

.gallery-img:hover { 
    transform: translateY(-5px); 
    border-color: var(--gold); 
}

/* ==========================================
   6. AVIS ET SLIDER (CORRIGÉ)
   ========================================== */
.slider-wrapper { 
    overflow: hidden; 
    width: 100%; 
    position: relative; 
    padding: 3rem 0; 
}

.slider-track { 
    display: flex; 
    gap: 2rem; 
    width: max-content; 
}

/* L'animation est activée via JS si assez d'avis */
.animate-track { 
    animation: scroll 35s linear infinite; 
}

.slider-track:hover { animation-play-state: paused; }

@keyframes scroll { 
    0% { transform: translateX(0); } 
    100% { transform: translateX(-50%); } 
}

.review-card { 
    background: var(--card2); 
    padding: 2.5rem; 
    width: 380px; 
    border: 1px solid var(--border); 
    display: flex; 
    flex-direction: column; 
    gap: 1.2rem; 
    border-radius: 4px; 
    flex-shrink: 0; 
    white-space: normal; /* Permet au texte de revenir à la ligne */
}

.stars-display { color: var(--gold); font-size: 1.1rem; letter-spacing: 3px; }

.review-text { 
    font-style: italic; 
    color: var(--white); 
    font-size: 0.95rem; 
    line-height: 1.7; 
    flex-grow: 1; 
}

.review-author { 
    color: var(--gray); 
    font-size: 0.75rem; 
    letter-spacing: 1px; 
    text-transform: uppercase; 
    border-top: 1px solid var(--border); 
    padding-top: 1rem; 
    font-weight: bold;
}

/* Étoiles par défaut (plus visibles) */
.star, .sb-star {
    font-size: 2rem;
    color: #555; /* Gris plus clair pour être vu sur le noir */
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none; /* Évite de sélectionner le texte en cliquant vite */
}

/* Étoiles quand on survole ou qu'elles sont actives */
.star.active, .sb-star.active {
    color: var(--gold) !important;
    text-shadow: 0 0 10px rgba(200, 168, 75, 0.5);
}

.sb-star:hover {
    transform: scale(1.2);
    color: var(--gold-l);
}

/* ==========================================
   7. FORMULAIRES DE CONTACT
   ========================================== */
.form-grid { 
    display: grid; 
    grid-template-columns: 1fr 1fr; 
    gap: 3rem; 
    align-items: start; 
}

.f-input { 
    width: 100%; 
    background: #181818; 
    border: 1px solid var(--border); 
    color: #fff; 
    padding: 1.2rem; 
    margin-bottom: 1rem; 
    font-family: inherit; 
    font-size: 0.9rem; 
    border-radius: 2px; 
    transition: border-color 0.3s; 
}

.f-input:focus { outline: none; border-color: var(--gold); }

select.f-input { 
    appearance: none; 
    cursor: pointer; 
    background-image: url('data:image/svg+xml;utf8,<svg fill="%23c8a84b" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>'); 
    background-repeat: no-repeat; 
    background-position-x: 95%; 
    background-position-y: center; 
}

/* ==========================================
   8. FOOTER & MODAL
   ========================================== */
footer { 
    padding: 4rem 3rem; 
    border-top: 1px solid var(--border); 
    text-align: center; 
}

.modal { 
    display: none; 
    position: fixed; 
    z-index: 9999; 
    top: 0; left: 0; 
    width: 100%; height: 100%; 
    background: rgba(0,0,0,0.95); 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    padding: 20px; 
}

.modal-content { 
    max-width: 90%; 
    max-height: 80vh; 
    object-fit: contain; 
    border: 2px solid var(--gold); 
    border-radius: 4px; 
}

.close-modal { 
    position: absolute; 
    top: 30px; right: 40px; 
    color: var(--white); 
    font-size: 3rem; 
    cursor: pointer; 
    font-family: sans-serif; 
}

/* ==========================================
   9. RESPONSIVE DESIGN
   ========================================== */
@media (max-width: 768px) {
    nav { 
        padding: 1rem; 
        flex-direction: row; 
        justify-content: space-between;
    }
    
    /* Empilement des boutons de navigation sur mobile */
    .nav-buttons-container {
        display: flex;
        flex-direction: column;
        gap: 5px;
    }

    .btn-client, .btn-gold {
        min-width: 115px; /* Taille harmonisée pour mobile */
        padding: 0.5rem;
        font-size: 0.6rem;
        display: block;
    }

    .nav-links { display: none; } 

    .hero { padding-top: 8rem; min-height: 60vh; }
    
    .form-grid { grid-template-columns: 1fr; gap: 2rem; }

    /* Force les champs en grille (Nom/Prénom) à passer en colonne sur mobile */
    div[style*="grid-template-columns: 1fr 1fr"] {
        grid-template-columns: 1fr !important;
    }
    
    section { padding: 4rem 1.5rem; }
    
    .filter-container { gap: 0.5rem; }
    .filter-btn { padding: 0.6rem 1rem; font-size: 1rem; flex: 1; min-width: 140px; }

    .review-card { width: 300px; padding: 1.5rem; }
}

/* ==========================================
   10. Réseaux sociaux
   ========================================== */

/* Conteneur réseaux sociaux */
.social-container {
    text-align: center;
    margin: 2rem 0;
}

/* Petit texte indicatif */
.social-hint {
    color: var(--gold);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 10px;
    font-family: 'DM Sans', sans-serif;
}

/* Animation de la flèche */
.bouncing-arrow {
    display: inline-block;
    animation: bounce 2s infinite;
    font-weight: bold;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
    40% {transform: translateY(-5px);}
    60% {transform: translateY(-3px);}
}

/* Style des liens sociaux */
.social-links {
    display: flex;
    justify-content: center;
    gap: 20px;
}

.social-icon {
    transition: transform 0.3s ease, filter 0.3s ease;
    filter: grayscale(1) brightness(0.8); /* Look plus sobre de base */
}

.social-icon:hover {
    transform: scale(1.2) rotate(5deg);
    filter: grayscale(0) brightness(1); /* Prend ses couleurs au survol */
}

/* Assure que la galerie reste propre en mode clair */
body.light-mode .gallery-img {
    border: 1px solid #bbbbbb !important;
    background: #ffffff !important;
}

/* ==========================================
   FORCE LA LISIBILITÉ DES AVIS EN MODE CLAIR
   ========================================== */

body.light-mode .review-card {
    background-color: #ffffff !important; /* Fond de la carte blanc */
    border: 1px solid #dddddd !important; /* Bordure grise pour la structure */
    box-shadow: 0 4px 10px rgba(0,0,0,0.05) !important;
}

body.light-mode .review-text {
    color: #000000 !important; /* Texte de l'avis en noir */
    text-shadow: none !important;
}

body.light-mode .review-author {
    color: #444444 !important; /* Nom de l'auteur en gris foncé */
    border-top: 1px solid #eeeeee !important;
}

/* Force aussi le titre "VOS RETOURS" et la moyenne d'étoiles */
body.light-mode #avis .sec-title h2,
body.light-mode #avis .sec-title p,
body.light-mode #avg-note,
body.light-mode .stats-container span {
    color: #000000 !important;
}

/* Les étoiles dorées doivent rester visibles */
body.light-mode .stars-display {
    color: #8e701d !important;
}

/* ==========================================
   DERNIERS AJUSTEMENTS MODE CLAIR (NAV & FORM)
   ========================================== */

body.light-mode nav {
    background: rgba(220, 220, 220, 0.95) !important; /* Gris galet semi-transparent */
    border-bottom: 1px solid rgba(0,0,0,0.1) !important;
}

body.light-mode .nav-links a {
    color: #333333 !important; /* Liens du menu en gris foncé */
}

body.light-mode .btn-client {
    color: #000000 !important;
    border-color: #999999 !important;
}

/* Correction des formulaires (Contact & Avis) en mode clair */
body.light-mode .f-input {
    background: #ffffff !important; /* Fond des cases en blanc */
    color: #000000 !important;     /* Texte tapé en noir */
    border: 1px solid #cccccc !important;
}

body.light-mode .f-input::placeholder {
    color: #888888 !important;    /* Placeholder plus visible */
}

body.light-mode .contact-form-container {
    background: #eeeeee !important; /* Fond du bloc contact */
    border: 1px solid #dddddd !important;
}