/* FIX : Correction du Box Model pour éviter le débordement des éléments (comme les boutons) */
*, *::before, *::after {
    box-sizing: border-box;
}

:root {
    /* Couleurs du Belvédère */
    --color-primary: #F4E70C; /* Jaune Belvédère */
    --color-metal: #E30000;
    --color-electro: #00C853;
    --color-urban: #6200EE;
    --color-party: #FF4081;
    --color-other: #2962FF;
    --color-dark: #121212; /* Noir de fond */
	--color-dark-subtle: #1B1B1B; /* 🚨 VOTRE NOUVELLE COULEUR DARK 2 */
    --color-light: #FFFFFF;
}

/* --- 1. GÉNÉRAL --- */

body {
    font-family: 'Roboto', sans-serif;
    color: var(--color-light);
    background-color: var(--color-dark); /* Le fond reste noir (ou très sombre) */
    
    /* NOUVEAU : Ajout d'un motif discret */
    background-image: 
        /* Crée des lignes diagonales subtiles */
        linear-gradient(45deg, rgba(255, 255, 255, 0.03) 25%, transparent 25%, transparent 75%, rgba(255, 255, 255, 0.03) 75%, rgba(255, 255, 255, 0.03)),
        linear-gradient(-45deg, rgba(255, 255, 255, 0.03) 25%, transparent 25%, transparent 75%, rgba(255, 255, 255, 0.03) 75%, rgba(255, 255, 255, 0.03));
    
    /* Définition de la taille de répétition du motif */
    background-size: 30px 30px; 
}

h1, h2, h3 {
    font-family: 'Oswald', sans-serif; /* Nouvelle police impactante pour les titres */
    text-transform: uppercase;
    color: var(--color-light);
    line-height: 1.1;
}

.logo {
    text-decoration: none; 
    display: inline-block; /* Assure que le lien est bien un bloc */
    line-height: 0;        /* FIX: Supprime l'effet de hauteur de ligne sur le conteneur */
    padding: 0;            /* Assurez-vous que le padding est à zéro ici */
}

.logo-img {
    height: 50px;          /* Augmentation de la hauteur pour plus d'impact sur mobile */
    max-height: 50px;      /* Sécurité : ne dépasse jamais cette hauteur */
    width: auto;           /* Maintient les proportions (important !) */
    max-width: 100%;       
    vertical-align: top;   /* FIX: Élimine l'espace sous l'image qui crée un "bord" */
}

/* ... (conserver le reste de vos règles CSS) ... */

.container {
    width: 90%;
    margin: 0 auto;
    padding: 0 10px; /* Petit padding sur les côtés */
}

/* Styles pour les boutons d'appel à l'action (CTA) */
.cta-button {
    display: block;
    width: 100%;
    padding: 15px 20px;
    text-align: center;
    text-decoration: none;
    font-weight: bold;
    border: none;
    cursor: pointer;
    transition: background-color 0.3s;
    text-transform: uppercase;
}
.primary-cta {
    background-color: var(--color-primary);
    color: var(--color-dark);
}


/* --- 2. HEADER & HERO SECTION --- */

/* Header fixe et minimaliste */
#main-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: var(--color-dark);
    padding: 10px 0; /* Réduit à 10px de padding haut/bas. Total: 10px + 50px + 10px = 70px de hauteur */
    transition: padding 0.3s, background-color 0.3s;
}

#main-header.compact { padding: 5px 0; }

.header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.menu-toggle {
    /* 1. On active le flexbox pour centrer */
    display: flex;
    align-items: center;      /* Centre verticalement */
    justify-content: center;  /* Centre horizontalement */

    /* 2. On définit des dimensions fixes pour un carré parfait */
    width: 45px; 
    height: 45px;

    /* 3. On enlève le padding qui fausse le calcul */
    padding: 0; 
    
    background: none;
    border: 1px solid var(--color-primary);
    color: var(--color-primary);
    font-size: 1.8rem; /* On peut l'agrandir un peu si besoin */
    cursor: pointer;
    line-height: 1; /* Force l'icône à ne pas prendre d'espace interligne */
}

/* Optionnel : Si l'icône semble encore un micro-poil trop haute 
   (caractéristique de certaines polices) */
.menu-toggle::before {
    /* Parfois un léger ajustement visuel est nécessaire */
    /* content: ""; margin-top: 2px; */
}



/* --- 2. HERO STATIQUE / PRÉSENTATION --- */

#hero-static-presentation {
    /* Propriétés de base */
    position: relative;
    width: 100%;
    /* Hauteur qui prend la quasi-totalité de l'écran (Viewport Height) */
    height: 90vh; 
    overflow: hidden; 
    
    /* Centrage du contenu (ImgHome2) */
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

@media (max-width: 1024px) {
    #hero-static-presentation {
        /* 🚨 HAUTEUR CONDITIONNELLE : Prend 100% de la hauteur de la fenêtre */
        height: 100dvh; 
    }
}

/* La div qui contient l'image de fond (ImgHome1) */
#hero-static-presentation .ImgHome1 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    background-size: cover;
    background-position: center;
    background-color: var(--color-dark); /* Base sombre */
    
    /* MODIFICATION CLÉ : Retirer l'opacité */
    /* opacity: 0.5; <--- À SUPPRIMER OU COMMENTER */
    
    /* NOUVEAU : Double Fond pour l'effet Dégradé + Image */
    background-image: 
        /* 1. Dégradé sombre du bas vers le haut (pour faire ressortir le texte et la flèche en bas) */
        linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.5) 50%, rgba(0, 0, 0, 0.2) 100%),
        /* 2. L'image de fond (la vôtre) */
        url('images/hero-home.webp'); 
}

/* Le contenu texte (ImgHome2) */
#hero-static-presentation .ImgHome2 {
    position: relative;
    z-index: 10;
    color: var(--color-light); /* Blanc */
    max-width: 800px;
    padding: 20px;
    /* Optionnel : ajouter un fond semi-transparent pour le texte */
    /* background-color: rgba(0, 0, 0, 0.4); 
    border-radius: 5px; */
}

/* Le titre principal (ImgHome3) */
#hero-static-presentation .ImgHome3 {
    font-family: 'Oswald', sans-serif;
    font-size: 4rem;
    text-transform: uppercase;
    color: var(--color-primary); /* Titre en jaune */
    margin: 0;
    line-height: 1;
}
/* Style pour mobile */
@media (max-width: 600px) {
    #hero-static-presentation .ImgHome3 {
        font-size: 2.5rem;
    }
}

.hero-description {
    font-weight: bold;
    font-size: 1.1rem;
}


/* Flèche et texte d'appel à l'agenda (sliding-link) */
#scroll-to-agenda {
    position: absolute;
    bottom: 20px;
    /*left: 50%;*/
    transform: translateX(-50%);
    z-index: 10;
    
    /* CORRECTION : Centrer le texte à l'intérieur du conteneur */
    text-align: center; 
    
    cursor: pointer;
    animation: bounce 2s infinite; 
}

.next-events-text {
    font-size: 12px;
    margin-bottom: 5px;
    color: var(--color-light);
}

/* Flèche qui pointe vers le bas */
.fleche-bas {
    transform: rotate(90deg); /* Conserver la rotation pour pointer vers le bas */
    margin: 0 auto 10px auto;
    max-width: 25px;
    display: block;
}

/* Animation de rebond pour la flèche */
@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(-10px);
    }
    60% {
        transform: translateY(-5px);
    }
}



/* --- 3. FILTRES (Règles mises à jour pour le design et le centrage) --- */

/* Conteneur principal de la barre de filtres */
#genre-filters, #month-filters { /* Séparer les ID par une virgule pour appliquer les règles aux deux */
	position: sticky;
    background-color: var(--color-dark);
    padding: 15px 0;
    z-index: 498;
	top: 60px;
}

/* Règle pour le mode sticky (si vous l'avez implémenté) */
.sticky-nav {
    position: sticky;
    top: 60px; /* Juste sous le header compact */
}

/* --- Dans la section 3. FILTRES --- */

.filters-container {
    display: flex; 
    overflow-x: auto; /* Permet le défilement horizontal sur mobile/tablette */
    padding: 5px 10px; 
    gap: 10px; 
    
    /* MODIFICATION : On retire justify-content: center ici */
    /* On laisse l'alignement par défaut (alignement à gauche) pour le défilement */
    
    /* Masquer la barre de défilement (conservé) */
    -ms-overflow-style: none;
    scrollbar-width: none;
}
/* Masquer la barre de défilement sur Webkit (conservé) */
.filters-container::-webkit-scrollbar {
    display: none;
}





/* --- 3. FILTRES (Règles mises à jour pour l'inversion des couleurs) --- */

/* Style des Boutons de Filtre (État par défaut) */
.filter-btn {
    /* Le fond utilise la couleur du genre */
    background-color: var(--genre-color);
    
    /* Le texte est sombre sur le fond coloré */
    /*color: var(--color-dark); */
	color: var(--color-light);
    
    /* La bordure utilise aussi la couleur du genre */
    border: 1px solid var(--genre-color);
    
    /* Autres styles conservés */
    padding: 8px 15px;
    font-size: 0.85rem;
    font-family: 'Roboto', sans-serif;
    text-transform: uppercase;
    white-space: nowrap; 
    cursor: pointer;
    font-weight: bold; /* Le texte est toujours en gras pour l'impact */
    transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

/* État ACTIF (Bouton actuellement sélectionné) */
.filter-btn.active {
    /* Le bouton actif devient blanc (ou clair) */
    background-color: var(--color-light); 
    
    /* Le texte devient sombre (noir) */
    color: var(--color-dark); 
    
    /* La bordure garde la couleur du genre pour marquer l'identité */
    border-color: var(--genre-color); 
}

/* État HOVER (Bouton au survol, qu'il soit actif ou non) */
.filter-btn:hover {
    /* Le bouton au survol devient blanc (ou clair) */
    background-color: var(--color-light); 
    
    /* Le texte devient sombre (noir) */
    color: var(--color-dark); 
    
    /* La bordure garde la couleur du genre */
    border-color: var(--genre-color); 
}

/* Style spécifique pour le bouton "Tous" (état inactif) */
.filter-btn[data-genre="all"]:not(.active) {
    background-color: var(--color-dark); /* Fond sombre */
    color: var(--color-light); /* Texte clair */
    border-color: rgba(255, 255, 255, 0.2); /* Bordure discrète */
}

/* Au survol de "Tous" (état inactif) */
.filter-btn[data-genre="all"]:not(.active):hover {
    background-color: rgba(255, 255, 255, 0.05);
    color: var(--color-primary); /* Revenir au jaune au survol */
    border-color: var(--color-primary);
}




/* --- 4. EVENT CARD --- */

#event-list {
    padding-top: 20px;
}

.event-card {
    background-color: #222;
    margin-bottom: 30px;
    border-radius: 5px;
    overflow: hidden;
	
	display: flex;
    flex-direction: column;
}

.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 15px;
    background-color: #333;
    font-size: 0.8rem;
    font-weight: bold;
    color: rgba(255, 255, 255, 0.7);
}

.genre-tag {
    /* Le tag couleur : cercle ou petit rectangle */
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%; /* Rendre le tag rond */
    margin-right: 5px;
    /* La couleur est définie en HTML via le style inline (voir Prop. 2) */
}

.card-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.card-body {
    padding: 15px;
}

.event-title {
    font-size: 1.7rem;
    margin: 0 0 5px 0;
}

.secondary-cta {
    margin-top: 15px;
    background-color: var(--color-dark);
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
}

/* --- Dans la section 4. CARTES D'ÉVÉNEMENTS --- */

.event-info-box {
    padding: 15px;
    height: 100%; /* S'assurer que cette boîte prend toute la hauteur disponible de la carte */
    display: flex; /* NOUVEAU : Active Flexbox */
    flex-direction: column; /* NOUVEAU : Empile les éléments verticalement (titre, date, bouton) */
    justify-content: space-between; /* NOUVEAU : Repousse le premier élément vers le haut et le dernier vers le bas */
}

/* Le bouton CTA, qui est le dernier élément, sera automatiquement poussé vers le bas. */
.event-info-box .event-cta {
    /* Ajoutons une marge de sécurité au-dessus du bouton pour l'espacement */
    margin-top: 15px; 
}

/* --- Dans la section 4. EVENT CARD --- */

.card-body {
    padding: 15px; 
    
    /* Les 3 propriétés Flexbox magiques pour l'alignement du CTA */
    display: flex; 
    flex-direction: column; 
    justify-content: space-between; 
    
    flex-grow: 1;
}

/* Le bouton CTA, qui est le dernier élément, sera automatiquement poussé vers le bas. */
.card-body .secondary-cta {
    /* Ajoutons une marge de sécurité au-dessus du bouton pour l'espacement */
    margin-top: 15px; 
}

/* Style optionnel pour l'espace dans le contenu textuel */
.event-text-content {
    margin-bottom: 5px; /* Petit espace sous le texte avant le CTA */
}


/* --- 5. MENU PLEIN ÉCRAN (Mobile) --- */

#full-screen-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: var(--color-dark); 
    z-index: 2000; /* Assure que le menu est au-dessus de tout */
    
    /* Cache le menu par défaut en le décalant complètement à droite */
    transform: translateX(100%); 
    transition: transform 0.4s ease-in-out; /* Ajoute une animation fluide */
    
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* Classe ajoutée par JS pour afficher le menu */
#full-screen-menu.is-open {
    transform: translateX(0);
}

.menu-close-btn {
    position: absolute;
    top: 20px;
    right: 20px;
    
    /* 1. Centrage mathématique */
    display: flex;
    align-items: center;
    justify-content: center;

    /* 2. Carré parfait (ajuste selon la taille voulue) */
    width: 40px;
    height: 40px;
    
    /* 3. On vire le padding qui casse tout */
    padding: 0;

    background: none;
    border: 1px solid var(--color-primary);
    color: var(--color-primary);
    
    /* 4. Taille et ligne de hauteur */
    font-size: 1.5rem; 
    line-height: 1;
    
    cursor: pointer;
    z-index: 2001;
    
    /* Optionnel : si le X semble trop fin */
    font-weight: bold;
	border-radius: 50%;
}

.menu-links {
    list-style: none;
    padding: 0;
    text-align: center;
    width: 80%;
	text-transform: uppercase;
}

.menu-links li {
    margin: 20px 0;
}

.menu-links a {
    font-family: 'Oswald', sans-serif; /* Notre police impactante pour le menu */
    color: var(--color-light);
    text-decoration: none;
    font-size: 2.5rem; /* Très grand pour le mobile */
    transition: color 0.3s;
}

.menu-links a:hover {
    color: var(--color-primary);
}



/* --- 6. FOOTER (Style 4 Colonnes Inspiré de l'Actuel) --- */

#main-footer {
    background-color: #000000; /* Vrai noir comme le site actuel */
    padding-top: 50px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.9rem;
    text-align: center; /* Centré par défaut sur mobile */
	position: relative;
	z-index: 500;
}

.footer-col {
    margin-bottom: 35px;
}

.footer-widget-title {
    font-size: 1.1rem;
    color: var(--color-light);
    margin: 0 0 15px 0;
    font-family: 'Oswald', sans-serif;
    text-transform: uppercase;
}

/* Colonne Logo / Contact */
.footer-logo-img {
    width: 100px; /* Taille du logo dans le footer sur mobile */
    height: auto;
    margin-bottom: 15px;
}

.logo-contact-inner {
    text-align: center;
}
.logo-contact-inner p {
    line-height: 1.4;
}

/* Liens du Footer */
.footer-col a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
}
.footer-col a:hover {
    color: var(--color-primary);
}


/* Réseaux Sociaux */
.social-icons-footer {
    text-align: center;
}
.social-list {
    list-style: none;
    padding: 0;
    margin-top: 15px;
}
.social-list li {
    display: inline-block;
    margin: 0 8px;
}
.social-list a i {
    font-size: 24px;
    color: var(--color-light);
    transition: color 0.2s;
}
.social-list a:hover i {
   /* color: var(--color-light);*/
}

/* Formulaire Newsletter */
.newsletter-form-container form {
    /* Ajoutons une largeur maximale pour que le formulaire ne prenne pas toute la largeur sur mobile */
    max-width: 280px; /* Taille maximale raisonnable */
    margin: 0 auto; /* Centrage du formulaire dans la colonne */
}

.newsletter-form-container input[type="email"],
.newsletter-form-container input[type="text"] {
    width: 100%; /* S'assure que les champs prennent 100% de la max-width définie ci-dessus */
    padding: 8px;
    margin-bottom: 10px;
    border: none;
    background-color: #fff;
    color: #000;
}

.newsletter-form-container input[type="submit"] {
    /* ... (le style du bouton de soumission reste le même) ... */
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-weight: bold;
    padding: 10px 20px;
    border: none;
    cursor: pointer;
    text-transform: uppercase;
}

/* Menu de Navigation Footer */
.footer-menu-list {
    list-style: none;
    padding: 0;
    text-align: center; /* Centré sur mobile */
}
.footer-menu-list a {
    line-height: 2; /* Augmente l'espace vertical */
}

/* Bas du Footer */
.footer-bottom {
    background-color: #000000;
    padding: 15px 0;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.5);
    
    /* NOUVEAU : La ligne jaune finale */
    border-bottom: 5px solid var(--color-primary); 
}

/* --- STYLE GÉNÉRIQUE DU CERCLE JAUNE (pour le footer ET le fixe) --- */

.social-list {
    list-style: none;
    padding: 0;
    margin-top: 15px;
    text-align: center; /* Important pour le footer centré */
    /* Assurez-vous que les marges d'une ancienne version n'interfèrent pas ici */
}

.social-list li {
    display: inline-block;
    margin: 0 8px;
}

/* Style de l'ANCRE (le conteneur du cercle) */
.social-list li a {
    display: flex; 
    justify-content: center;
    align-items: center;
    
    /* Propriétés du CERCLE */
    width: 40px; 
    height: 40px;
    background-color: var(--color-primary); /* Notre jaune identitaire */
    border-radius: 50%; 
    transition: background-color 0.2s, transform 0.2s;
}

/* Style de l'ICÔNE (la police Font Awesome) */
.social-list a i {
    font-size: 18px; 
    color: var(--color-dark); /* Couleur sombre pour le texte (icône) */
}

/* Styles de survol génériques */
.social-list li a:hover {
    transform: scale(1.1);
	color: var(--color-dark);
}

/* --- 7. ICÔNES SOCIALES FIXES --- */

#social-fixed {
    position: fixed;
    bottom: 20px; /* Marge par rapport au bas de l'écran */
    right: 20px; /* Marge par rapport à la droite de l'écran */
    z-index: 499; /* Doit être au-dessus du contenu (mais sous le menu burger/footer) */
    
	
	/* 🚨 Mettez à jour la transition pour inclure l'opacité et la visibilité */
    transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out, transform 0.3s ease-in-out;
}

/* Style des listes pour les disposer verticalement */
#social-fixed .social-list {
    display: flex;
    flex-direction: column; /* Empile les icônes verticalement */
    gap: 10px; /* Espacement entre les icônes */
    padding: 0;
    margin: 0;
    list-style: none;
}

/* On réutilise les styles d'icônes jaunes de la section précédente */
#social-fixed .social-list li a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px; 
    height: 40px;
    background-color: var(--color-primary);
    border-radius: 50%;
    transition: background-color 0.2s, transform 0.2s;
	text-decoration: none;
}

#social-fixed .social-list li a:hover {
    transform: scale(1.1);
}

#social-fixed .social-list a i {
    font-size: 18px;
    color: var(--color-dark); 
}

/* 🚨 AJOUTEZ CE BLOC : La classe utilisée par JavaScript pour masquer l'élément */
#social-fixed.hidden {
    opacity: 0;
    visibility: hidden; /* Empêche l'élément masqué d'être cliquable */
}


/* ========================================================== */
/* ADAPTATION MOBILE : ICÔNES SOCIALES FIXES */
/* ========================================================== */

@media (max-width: 600px) {

    /* Conteneur principal fixe */
    #social-fixed {
        /* Décalage légèrement plus grand pour le pouce */
        bottom: 15px; 
        right: 15px;
    }

    /* 🚨 Alignement Horizontal */
    #social-fixed .social-list {
        flex-direction: row; /* 🚨 Change la direction de la colonne à la ligne */
        gap: 8px; /* Espacement horizontal réduit */
    }

    /* 🚨 Taille des icônes réduites */
    #social-fixed .social-list li a {
        width: 30px; /* Réduction de 40px à 30px */
        height: 30px; /* Réduction de 40px à 30px */
    }
    
    /* Taille de l'icône Font Awesome */
    #social-fixed .social-list a i {
        font-size: 14px; /* Réduction de 18px à 14px */
    }
}




/* --- 5. SECTION NEWS/ACTUS --- */

#news-section {
    /*padding: 60px 0;*/
    /*background-color: var(--color-dark);*/ /* S'assurer que le fond est sombre */
}

/* Le titre de section utilise le même style que l'agenda */
.section-title {
    font-family: 'Oswald', sans-serif;
    text-transform: uppercase;
    color: var(--color-light);
    font-size: 2.2rem;
    text-align: left;
    margin-bottom: 40px;
    border-bottom: 3px solid var(--color-primary);
    display: inline-block;
    padding-bottom: 5px;
}

/* Grille de News (Utilise la même grille que l'agenda, ou une variante) */
#news-list {
    /* Utiliser notre grille flexible (par défaut 1 colonne sur mobile) */
    display: grid;
    gap: 30px; /* Espace entre les cartes */
	margin-bottom: 30px;
}

/* Style de la carte de News */
.news-card {
    background-color: #222; /* Fond légèrement plus clair que le body */
    border-radius: 5px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);
	cursor: pointer;
}

/* Le lien <a> qui couvre la carte */
.news-card > a {
    text-decoration: none; /* Cache la ligne de soulignement standard du lien */
    color: inherit; /* Utilise la couleur du texte par défaut */
}

/* 3. Ajuster le survol pour un meilleur feedback visuel */
.news-card:hover {
    cursor: pointer; 
    transform: translateY(-3px); /* Effet d'élévation subtile au survol */
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2); 
}

.news-image-container {
    position: relative;
    height: 180px; /* Hauteur fixe pour l'image */
    overflow: hidden;
}

.news-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.news-card:hover .news-image {
    transform: scale(1.05); /* Zoom subtil au survol */
}

.news-date {
    position: absolute;
    top: 10px;
    left: 10px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    padding: 4px 8px;
    font-size: 0.75rem;
    font-weight: bold;
    z-index: 10;
    border-radius: 3px;
}

.news-content {
    padding: 15px;
}

.news-content h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.4rem;
    color: var(--color-primary); /* Titre en jaune */
    margin-top: 0;
    margin-bottom: 10px;
}

.news-content p {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.8);
    /* Limiter le texte à 3 lignes */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 15px;
}

.news-readmore {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: bold;
    display: block; /* S'assurer qu'il prend toute la largeur pour le clic */
}
.news-readmore:hover {
    text-decoration: underline;
}

.all-news-cta {
    text-align: center;
    margin-top: 40px;
}


/* --- ADAPTATION AUX GRANDS ÉCRANS (TABLETTE ET +) --- */

@media (min-width: 768px) {
    
    /* 1. MISE EN PAGE GÉNÉRALE */
    .container {
        max-width: 95%; /* Utiliser un peu plus de largeur sur tablette */
    }

    /* 2. AGENDA : Passer en 2 colonnes */
    #event-list {
        display: grid;
        grid-template-columns: 1fr 1fr; /* Deux colonnes égales */
        gap: 30px; /* Espace entre les cartes */
    }
    
    /* La carte ne prendra plus toute la largeur mais restera belle */
    .event-card {
        margin-bottom: 0; /* Plus de marge verticale sur les cartes individuelles */
    }

    /* Le Hero Title prend plus de place */
    .hero-title {
        font-size: 3.5rem;
    }
    
    /* 3. FILTRES : Les boutons peuvent être plus grands */
    .filter-btn {
        padding: 10px 20px;
        font-size: 1rem;
    }

    /* 4. NAVIGATION : Afficher la navigation complète si le design le permet, ou la rendre plus visible */
    /* Pour l'instant, on maintient le menu burger (le plus simple) mais on le gère mieux */
    .menu-toggle {
        /* On pourrait augmenter la taille du bouton */
        font-size: 1.8rem;
    }
	
}



@media (min-width: 1024px) {
    
    /* 1. CONTENEUR : Centrer le contenu et donner de l'air */
    .container {
        max-width: 1100px; /* Largeur maximale pour un design centré et confortable */
    }

    /* 2. AGENDA : Passer en 3 colonnes pour le style Reflektor */
    #event-list {
        grid-template-columns: 1fr 1fr 1fr; /* Trois colonnes égales */
    }

    /* 3. HERO SECTION : Encore plus d'impact */
    #hero-section {
        min-height: 70vh;
    }
    .hero-title {
        font-size: 4.5rem;
    }

    /* 4. NAVIGATION : Afficher la navigation complète dans le Header */
    
    /* Masquer le bouton burger */
    .menu-toggle {
        display: none; 
    }

    /* Afficher la navigation complète dans le header */
    .header-content {
        justify-content: space-between;
    }

    /* Création de la barre de navigation principale (à ajouter dans le HTML à côté du .logo) */
    /* Pour simplifier, nous allons transformer notre menu plein écran en navigation desktop */
    #full-screen-menu {
        position: static; /* Le menu n'est plus fixe */
        height: auto;
        transform: none; /* Toujours visible */
        background: none;
        padding-top: 0;
        flex-direction: row;
        width: auto;
    }
    
    .menu-close-btn {
        display: none; /* Le bouton X n'est plus nécessaire */
    }

    .menu-links {
        display: flex; /* Mettre les liens sur une ligne */
        width: auto;
    }
    
    .menu-links li {
        margin: 0 15px;
    }

    .menu-links a {
        font-size: 1rem; /* Taille plus petite et adaptée au desktop */
        text-transform: uppercase;
        font-weight: 500;
    }
	
	
	/* --- Dans la Media Query @media (min-width: 1024px) { ... } --- */

/* MISE À JOUR : Mise en Grille 3 Colonnes sur Desktop */
    .footer-grid-4col {
        display: grid;
        /* Remplacé par 3 colonnes égales */
        grid-template-columns: repeat(3, 1fr); 
        gap: 20px;
        text-align: left; 
    }

    .footer-col {
        text-align: left;
        margin-bottom: 0;
    }
    
    /* On ajuste l'alignement pour que les 3 blocs restent centrés individuellement */
    .col-logo-contact, 
    .col-social,
    .col-newsletter {
        text-align: center; 
    }
	
	/* Rétablissement du Centrage sur grand écran */
    .filters-container {
        justify-content: center; 
        overflow-x: hidden; /* Désactive le défilement sur desktop pour plus de propreté */
    }
	
	#news-list {
        grid-template-columns: repeat(3, 1fr); /* 3 news par ligne */
    }
}


/* =================================================================
    6. MODALE DÉTAIL ÉVÉNEMENT (VERSION CORRIGÉE ET OPTIMISÉE)
    ================================================================= */

/* Le conteneur qui recouvre tout l'écran */
.modal-overlay {
    display: none; /* 🚨 IMPORTANT : Doit être 'none' par défaut */
    position: fixed; /* 🚨 TRÈS IMPORTANT : Fixé par rapport à la fenêtre de visualisation */
    z-index: 9999; /* 🚨 TRÈS IMPORTANT : Valeur élevée pour être au-dessus de tout (menus, etc.) */
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto; /* Permet de scroller le contenu si la modal est très grande */
    background-color: rgba(0, 0, 0, 0.9); /* Fond noir transparent */
    align-items: center; /* Pour centrer le contenu verticalement (si display:flex) */
    justify-content: center; /* Pour centrer le contenu horizontalement (si display:flex) */
}

.modal-overlay.is-open {
    display: flex;
    justify-content: center;
    align-items: flex-start; /* Aligner le contenu en haut (si la page est grande) */
    opacity: 1;
}

/* Contenu de la modale (la boîte blanche/sombre) */
.modal-content {
    background-color: var(--color-light); /* Fond clair ou sombre selon votre thème */
    width: 90%;
    max-width: 900px;
    margin: 40px auto;
    border-radius: 8px;
    padding: 30px;
    position: relative;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    transform: translateY(-50px);
    transition: transform 0.3s ease;
}

.modal-overlay.is-open .modal-content {
    transform: translateY(0);
}

.modal-close-btn {
    position: absolute;
    top: 15px;
    right: 15px;
    background: none;
    border: none;
    font-size: 30px;
    color: var(--color-dark, #333333); 
    cursor: pointer;
    line-height: 1;
    z-index: 1001;
}

/* Structure interne de la modale */
.modal-header-content {
    display: flex;
    gap: 30px;
}

.modal-image {
    width: 40%;
    height: auto;
    border-radius: 4px;
    object-fit: cover;
}

.modal-text-container {
    width: 60%;
}

/* Modification pour permettre au titre/date/genre d'être bien espacés/alignés */
.modal-meta-header {
    /* Utilisation de block pour ne pas forcer tout sur une seule ligne flex */
    display: block; 
    margin-bottom: 10px;
}

/* Nouveau conteneur pour le titre et la date (doit être utilisé dans le HTML) */
.title-and-date {
    display: flex;
    align-items: baseline;
    gap: 15px;
    flex-wrap: wrap; /* Permet à la date de passer en dessous si le titre est très long */
}

#modal-title {
    flex-shrink: 1; /* Permet au titre de rétrécir si besoin */
    margin-top: 0;
    font-size: 1.8rem;
    color: var(--color-primary, #000000); 
}

.modal-date-time {
    flex-shrink: 0; /* Empêche la date d'être coupée */
    font-weight: 700;
    color: var(--color-dark, #333333); 
}

/* Style du tag de genre tel qu'il doit apparaître dans la modale */
.modal-genre-tag {
    /* Annule les dimensions fixes ou le format carré/cercle de la classe 'genre-tag' */
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    
    /* Pour annuler l'effet de cercle si c'est le cas et revenir à un rectangle */
    border-radius: 4px !important; 
    
    /* Assure que l'élément prend seulement l'espace nécessaire */
    display: inline-block; 
    
    /* Mise en forme du tag */
    padding: 4px 10px;
    margin: 0 0 10px 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: white; /* Le texte du tag doit être blanc */
}

.modal-subtitle {
    font-style: italic;
    color: var(--color-text-secondary, #666666); 
    margin-top: -10px;
    display: block;
}

.event-description {
    /* 🚨 Correction du texte blanc sur blanc */
    /*color: var(--color-dark, #333333); */
	color: #ffffff;
    margin: 20px 0;
    line-height: 1.6;
	max-width: 100%;
	overflow-wrap: break-word;
    word-wrap: break-word;
}

#modal-ticket-link {
    margin-top: 20px;
    display: inline-block;
}

.modal-close-btn {
    position: absolute;
    top: -20px; /* Déplacer le bouton légèrement à l'extérieur ou juste au bord */
    right: -20px; /* Déplacer le bouton légèrement à l'extérieur */
    
    /* 🟡 Style du bouton circulaire jaune 🟡 */
    background-color: var(--color-rock, #F4E70C); /* J'utilise la couleur ROCK (jaune) pour l'exemple */
    color: var(--color-dark, #333333); /* Texte de la croix en noir */
    
    border: none;
    cursor: pointer;
    font-size: 20px; /* Taille de la croix */
    line-height: 1;
    
    /* Création du cercle */
    width: 40px;
    height: 40px;
    border-radius: 50%;
    
    /* Centrage de la croix dans le cercle */
    display: flex;
    justify-content: center;
    align-items: center;
    
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
    z-index: 1001;
}

/* RWD pour mobiles */
@media (max-width: 768px) {
    .modal-content {
        width: 95%;
        margin: 20px auto;
        padding: 20px;
    }
    
    .modal-header-content {
        flex-direction: column;
    }

    .modal-image,
    .modal-text-container {
        width: 100%;
        margin-bottom: 20px;
    }

    #modal-title {
        font-size: 1.5rem;
    }
    
    /* Le genre passe automatiquement à la ligne en dessous du titre/date */
    .title-and-date {
        margin-bottom: 0;
    }
	
	.modal-close-btn {
        /* Ramener le bouton à l'intérieur de la modale pour le mobile */
        top: 10px; 
        right: 10px; 
        /* Diminuer légèrement la taille si vous le souhaitez */
        width: 30px;
        height: 30px;
        font-size: 16px;
    }
}


/* --- Styles spécifiques à la Modale Actualités --- */

#news-modal-title {
    /* Utilise la couleur jaune définie dans :root */
    color: var(--color-primary); 
    
    /* Le reste du style que vous aviez (à conserver pour la mise en forme) */
    font-family: 'Oswald', sans-serif;
    font-size: 2rem; 
    margin-top: 0;
}

/* Date de l'actualité */
#news-modal-date {
    /*color: var(--color-dark);*/
    font-weight: 700;
    display: block; /* La date était peut-être aussi blanche */
    margin-bottom: 10px;
}

/* Contenu de l'actualité */
#news-modal-content {
    /* Assurez-vous que le contenu est bien ciblé, si ce n'est pas déjà le cas avec .event-description */
    /*color: var(--color-dark); 
    line-height: 1.6;*/
}


.news-card {
    position: relative; /* Indispensable pour positionner l'ancre absolue */
    /* ... vos autres styles ... */
}

.news-readmore {
    /* 🚨 Rend le lien invisible et l'étend sur toute la carte */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1; /* Doit être au-dessus du reste du contenu */
    opacity: 0; /* Rendre le lien transparent */
    /* Vous pouvez commenter cette ligne si vous avez besoin de texte visible */
    font-size: 0; /* Pour s'assurer qu'il n'y a pas de texte visible */
}

.news-card:hover {
    cursor: pointer; /* Ajoute un curseur pointeur sur toute la carte */
}

/* Optionnel : Rendre un élément visible au survol (ex: le titre) */
.news-card:hover .news-image {
    transform: scale(1.05);
}



/* --- A. Conteneur principal et filtres --- */
.agenda-container {
    max-width: 1200px;
    margin: 40px auto;
    padding: 0 20px;
}

.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 30px;
	justify-content: center;
    overflow-x: hidden;
}

/* ========================================================== */
/* STYLES SPÉCIFIQUES À L'AGENDA (FILTRES DE MOIS) */
/* ========================================================== */

/* Cibler le bouton à l'intérieur d'un conteneur qui a la classe .filter-bar */
.filter-bar .filter-btn {
    /* Styles de base de l'Agenda (Avant) */
    background-color: var(--color-dark);
    color: var(--color-light);
    cursor: pointer;
    font-size: 0.9rem;
    border: 2px solid var(--color-dark);
    padding: 8px 15px;
    transition: 0.2s;
    border-radius: 5px;

    /* 🚨 AJUSTEMENTS pour garantir l'uniformité avec la home, si nécessaire */
    font-family: 'Roboto', sans-serif; /* Réutiliser la même police */
    text-transform: uppercase;
    white-space: nowrap; 
    font-weight: bold;
}

/* Styles de Survol et Actif de l'Agenda (Avant) */
.filter-bar .filter-btn:hover, 
.filter-bar .filter-btn.active {
    background-color: var(--color-primary);
    color: var(--color-dark);
    transform: translateY(-2px);
    box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 5px;
    border-color: var(--color-primary);
}

/* --- B. Style du Calendrier --- */
.calendar-wrapper {
    background-color: var(--color-light); /* Fond blanc */
    color: var(--color-dark); /* Texte noir */
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    margin-bottom: 40px;
}

.calendar-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.calendar-header h2 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.8rem;
    margin: 0;
    color: var(--color-dark);
}

.calendar-header .nav-btn {
    background: none;
    border: none;
    font-size: 2rem;
    font-weight: bold;
    cursor: pointer;
    color: var(--color-dark);
    padding: 5px 10px;
    transition: color 0.2s;
}

.calendar-header .nav-btn:hover {
    color: var(--color-primary);
}

/* Mise en page de la grille */
.calendar-grid {
    display: grid;
    /* 7 colonnes de largeur égale */
    grid-template-columns: repeat(7, 1fr); 
    gap: 1px; /* Espacement minimal entre les cellules */
}

/* Noms des jours de la semaine */
.day-name {
    text-align: center;
    font-weight: 700;
    padding: 10px 5px;
    background-color: #f0f0f0; /* Fond gris clair pour l'en-tête */
    font-size: 0.9rem;
}

/* Styles des cellules de jour injectées par JS */
.calendar-day {
    padding: 15px 5px;
    text-align: right;
    border: 1px solid #eee;
    min-height: 80px; /* Pour donner de la hauteur */
    position: relative;
    cursor: default;
    background-color: #fff;
    transition: background-color 0.2s;
}

/* Jour vide (du mois précédent/suivant) */
.calendar-day.empty {
    background-color: #fafafa;
    color: #ccc;
    cursor: default;
}

/* Jours avec événement */
.calendar-day.has-event {
    background-color: var(--color-primary); /* Jaune Belvédère */
    color: var(--color-dark);
    font-weight: bold;
    cursor: pointer;
    box-shadow: inset 0 0 0 2px var(--color-primary); /* Bordure visuelle */
}

.calendar-day.has-event:hover {
    background-color: var(--color-primary); /* Maintenir la couleur au survol */
    opacity: 0.9;
}

/* Mise en évidence du jour actuel (si vous souhaitez l'ajouter) */
.calendar-day.today {
    box-shadow: 0 0 0 3px var(--color-dark) inset;
}

/* Style du numéro de jour */
.calendar-day span {
    display: block;
    font-size: 1.2rem;
    line-height: 1;
}

/* Indicateur visuel du mois suivant/précédent */
.calendar-day.other-month {
    color: #aaa;
}

/* --- C. Liste des événements filtrés (en dessous) --- */
.events-list-grid {
    /* Utilisez une mise en page flexible pour les cartes */
    display: flex; 
    flex-wrap: wrap;
    gap: 30px;
    justify-content: center; /* Centrer les cartes */
    padding-top: 20px;
}




/* --- Styles des Cartes d'Événements (à ajouter/vérifier) --- */

.events-list-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); /* 300px min */
    gap: 30px;
    padding: 30px 0;
}

.event-card {
    background-color: var(--color-dark-subtle); /* Fond sombre */
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: transform 0.2s;
}

.event-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

.event-card-link {
        /* display: block; */
    /* color: var(--color-light); */
    /* text-decoration: none; */
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.event-card-image {
    width: 100%;
    height: 200px;
    background-size: cover;
    background-position: center;
    position: relative;
}

.event-category {
    position: absolute;
    top: 10px;
    left: 10px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    padding: 3px 8px;
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: bold;
}

.event-card-content {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    justify-content: space-between;
    padding: 15px;
}

.event-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.5rem;
    margin: 0 0 10px 0;
    line-height: 1.2;
}

/* style.css - Mise à jour du style pour la date */

.event-date {
    /* Utilise une couleur moins agressive que le blanc, mais plus claire que le gris */
    color: #FFC0CB; /* 🚨 Rose pâle/Magenta clair : Contraste avec le blanc et le gris */
    font-size: 0.9rem;
    margin: 0 0 5px 0;
}


.card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 10px;
    border-top: 1px solid #333;
    margin-top: 15px;
}

.price-info {
    font-weight: bold;
    color: var(--color-primary); /* Jaune pour le prix */
}

.read-more-btn {
    font-size: 0.85rem;
    color: var(--color-light);
    border-bottom: 1px solid transparent;
    transition: border-bottom 0.2s;
}

.event-card:hover .read-more-btn {
    border-bottom: 1px solid var(--color-light);
}

/* Bouton Billetterie séparé (si présent) */
.ticket-btn {
    display: block;
    text-align: center;
    background-color: #e74c3c; /* Rouge vif pour l'action d'achat */
    color: var(--color-light);
    padding: 10px 0;
    font-weight: bold;
    text-decoration: none;
    transition: background-color 0.2s;
}

.ticket-btn:hover {
    background-color: #c0392b;
}



/* --- Styles pour les noms d'artistes dynamisés (dans style.css) --- */

/* 1. Assurer que les conteneurs sont flexibles (si nécessaire) */
.event-artists, .event-subtitle {
    /* Maintient les styles d'origine (.event-artists est toujours 0.9rem, mais le contenu interne sera plus grand) */
    font-size: 0.9rem; 
    color: #ccc; /* La couleur de fond du conteneur reste gris */
    margin: 0 0 5px 0;
    line-height: 1.4;
	text-transform: uppercase;
}

/* 🚨 2. STYLE PRINCIPAL : Rendre le NOM d'artiste grand et jaune */
.artist-name {
    font-size: 1.2rem; /* Taille plus grande pour bien ressortir */
    font-family: 'Oswald', sans-serif; /* Utiliser la police des titres ou celle que vous préférez */
    font-weight: 700; /* Gras */
    color: var(--color-primary); /* 🚨 CORRECTION : Utilise la couleur Jaune */
    display: inline;
    
	
	/* 🚨 1. Permet aux mots longs de se casser pour passer à la ligne */
    word-break: break-word; 
    
    /* 2. Assure que la zone ne déborde pas */
    overflow: hidden; 
    
    /* 3. Empêche le texte de s'afficher sur une seule ligne (si overflow: hidden est utilisé) */
    white-space: normal;
}

/* 3. Style pour le point séparateur */
.artist-separator {
    color: var(--color-light); /* Utilise la couleur blanche pour le séparateur '•' */
    font-weight: bold;
    margin: 0 3px;
}


#filtered-events-list {
    gap: 30px; 
    padding-top: 20px;
    padding-bottom: 20px;
	display: grid;
}

/* Force le titre à s'afficher en premier et à occuper toute la largeur */
#agenda-section .agenda-title {
    grid-column: 1 / -1; /* S'étend sur toutes les colonnes de la grille */
    margin-top: 70px; /* 🚨 Décalage vers le bas pour échapper à la barre sticky */
    margin-bottom: 20px;
	padding-left: 0px;
    /* Assurez-vous que la couleur et la taille du texte sont visibles */
}

/* ========================================================== */
/* 💻 ADAPTATION DESKTOP : Ajustement de l'espace après la barre sticky */
/* ========================================================== */

@media (min-width: 1024px) {
    #agenda-section .agenda-title {
        /* 🚨 Nouvelle valeur de marge supérieure pour les grands écrans */
        margin-top: 50px; /* Exemple : Réduit à 30px */
        
        /* NOTE : Les autres propriétés (grid-column, margin-bottom, padding-left) 
                  sont héritées et n'ont pas besoin d'être répétées, sauf si vous voulez les changer aussi. */
    }
}

.event-card {
    width: 100%;
    /* max-width: 340px; */
    flex-grow: 0;
    margin-right: auto;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* 🚨 ASSURER LE COMPORTEMENT DE GRILLE À PARTIR de 768px (Comme la Home) */
@media (min-width: 768px) {
    #filtered-events-list {
        display: grid;
        /* Deux colonnes de 1fr (comme la Home) */
        grid-template-columns: 1fr 1fr; 
        gap: 30px;
        /* Assurer que la grille n'est pas forcée à 100% de la fenêtre si le parent a un max-width */
        max-width: none; 
        margin: 0;
        justify-items: stretch;
    }
}

/* 🚨 TROIS COLONNES À PARTIR de 1024px (Comme la Home) */
@media (min-width: 1024px) {
    #filtered-events-list {
        /* Trois colonnes de 1fr (comme la Home) */
        grid-template-columns: 1fr 1fr 1fr;
    }
}



/* =================================================================
   SECTION: DÉTAIL D'ÉVÉNEMENT (agenda-detail.php)
   ================================================================= */

/* 1. Correction du conteneur principal */
.event-detail-page .event-header-detail {
    /* L'ancienne disposition Flexbox côte à côte doit être changée en colonne */
    display: flex; /* Maintenir Flexbox pour la flexibilité */
    flex-direction: column; /* Empiler l'image et les infos */
    align-items: center; /* Centrer le contenu horizontalement si nécessaire */
    gap: 30px; /* Ajouter un espacement entre l'image et la boîte d'infos */
    /* Retirer toute propriété 'flex-wrap' ou 'justify-content' qui interfère */
}

/* 2. Correction du conteneur du flyer (C'est ici que 'flex: 1.5;' posait problème) */
.event-detail-page .flyer-container {
    /* Retirer la propriété 'flex' qui écrasait la largeur */
    flex: none; /* Empêche le conteneur de participer au calcul flex (similaire à retirer flex: 1.5) */
    width: 100%; /* S'assurer qu'il prenne toute la largeur disponible */
    /*max-width: 800px;*/ /* Optionnel: Mettre une taille max pour ne pas avoir une image trop grande sur très grand écran */
    margin: 0 auto; /* Centrer le bloc entier */
    /* Ajouter 'overflow: hidden;' si l'image déborde toujours */
}

/* 3. Correction de l'image elle-même */
.event-detail-page .flyer-container .event-flyer {
    width: 100%; /* L'image doit prendre 100% de la largeur de son parent (.flyer-container) */
    height: auto; /* Maintient le ratio de l'image */
    display: block; /* S'assurer qu'elle se comporte comme un bloc */
    object-fit: contain; /* Assure que l'image entière est visible, sans être étirée ou coupée */
}

/* 4. Si vous voulez que la boîte d'info s'aligne en dessous de l'image (optionnel) */
.event-detail-page .event-info-box {
    width: 100%;
    /* Si elle était aussi flex: 1;, retirez-le ou utilisez flex: none; */
}

.event-detail-card {
    /* Utilisation de Grid pour structurer la page complète */
    display: grid;
    gap: 40px;
    /* Mise en page de base pour les sections (peut être ajusté) */
    grid-template-areas: 
        "header-detail"
        "content-main"
        "artists-section";
}

/* -----------------------------------------------------------------
   1. HEADER (Flyer + Méta-données)
   ----------------------------------------------------------------- */


/* Mise en page sur grand écran */
@media (min-width: 900px) {
    .event-header-detail {
        flex-direction: row; /* Disposition latérale pour desktop */
        align-items: flex-start;
    }
}



.event-meta-sidebar {
    flex: 1; /* Le reste de l'espace (sidebar) */
    padding: 20px;
    background-color: var(--color-dark-alt); /* Couleur de fond sombre pour contraster */
    border-radius: 8px;
}

.event-title-detail {
    font-family: 'Frontage Condensed Regular', sans-serif;
    font-size: 3.5rem;
    line-height: 1;
    margin-top: 0;
    margin-bottom: 20px;
    /*color: var(--color-primary);*/ /* Couleur principale du site */
}

.event-date-location p {
    font-size: 1.1rem;
    margin: 5px 0;
}

.event-date-location i {
    color: var(--color-secondary); /* Couleur secondaire pour les icônes */
    margin-right: 8px;
}

/* Prix et Billetterie */
.event-prices {
    margin-top: 25px;
    padding-top: 15px;
    border-top: 1px solid var(--color-border);
}

.event-prices h3 {
    font-size: 1.5rem;
    margin-bottom: 10px;
    color: var(--color-light);
}

.price-list {
    list-style: none;
    padding: 0;
    margin-bottom: 20px;
}

.price-list li {
    background-color: rgba(255, 255, 255, 0.05);
    padding: 5px 10px;
    margin-bottom: 5px;
    border-left: 3px solid var(--color-secondary);
    font-size: 1rem;
}

/* Liens Sociaux */
.event-social-links {
    margin-top: 25px;
    padding-top: 15px;
    border-top: 1px solid var(--color-border);
}

.social-event-list {
    display: flex;
    gap: 15px;
}

.social-event-list a {
    font-size: 1.5rem;
    color: var(--color-light);
    transition: color 0.3s;
}

.social-event-list a:hover {
    color: var(--color-primary);
}


/* -----------------------------------------------------------------
   2. CONTENU PRINCIPAL (Description & Timing)
   ----------------------------------------------------------------- */

.event-content-main {
    grid-area: content-main;
    padding: 20px 0;
}

.event-content-main h2 {
    color: var(--color-secondary);
    border-bottom: 2px solid var(--color-secondary);
    padding-bottom: 5px;
    margin-bottom: 20px;
    font-family: 'Oswald', sans-serif; /* Utilisation de la police pour les sous-titres */
}

.event-description-long p {
    line-height: 1.8;
}

.event-timing-details {
    margin-top: 30px;
    background-color: var(--color-dark-alt);
    padding: 20px;
    border-radius: 8px;
}

.event-timing-details pre {
    white-space: pre-wrap; /* Permet le retour à la ligne pour le timing */
    font-family: monospace;
    color: var(--color-light);
}


/* -----------------------------------------------------------------
   3. SECTION ARTISTES
   ----------------------------------------------------------------- */

.event-artists-section {
    grid-area: artists-section;
    padding: 20px 0;
}

.artist-detail-card {
    background-color: var(--color-dark-alt);
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
}

.artist-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 15px;
}

.artist-image-container {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 3px solid var(--color-primary);
}

.artist-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.artist-meta h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 2rem;
    margin: 0;
    color: var(--color-light);
}

.artist-genre-list {
    margin-top: 5px;
    font-style: italic;
    color: var(--color-secondary);
}

.artist-description {
    margin-top: 15px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--color-border);
}

.artist-description p {
    line-height: 1.6;
}

.artist-video {
    margin-top: 15px;
}

/* Adaptation pour les tablettes/desktop */
@media (min-width: 768px) {
    /* Utilisation d'une grille pour les artistes si désiré */
    /* .event-artists-section {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 30px;
    } */
}

/* Mise en page pour les grands écrans */
@media (min-width: 1200px) {
    /* On peut ici organiser les sections de manière plus complexe sur desktop */
    .event-detail-card {
        grid-template-columns: 2fr 1fr; /* Flyer/Description sur 2 colonnes, Sidebar sur 1 */
        grid-template-areas: 
            "header-detail header-detail"
            "content-main artists-section"; 
        gap: 50px 30px;
    }
    
    .event-header-detail {
        /* On retire la disposition en colonnes pour les éléments du header */
        flex-direction: row; 
    }
    
    .event-content-main {
        grid-area: content-main;
    }
    
    .event-artists-section {
        grid-area: artists-section;
    }
}


/* =================================================================
// STYLES DE LA PAGE DÉTAIL D'ÉVÉNEMENT (agenda-detail.php)
// ================================================================= */

.event-detail-page {
    padding-top: 40px;
}

.back-link {
    display: inline-block;
    margin-bottom: 20px;
    color: var(--color-primary); /* Assurez-vous d'avoir une variable pour la couleur principale */
    text-decoration: none;
    font-weight: bold;
}

.event-header-detail {
    display: flex;
    gap: 40px;
   /* margin-bottom: 40px;
    padding-bottom: 20px;*/
    border-bottom: 1px solid var(--color-border);
}

.flyer-container {
    flex-shrink: 0;
    width: 300px; /* Taille fixe pour l'affiche */
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.event-flyer {
    width: 100%;
    height: auto;
    display: block;
}

.event-info-box {
    flex-grow: 1;
}

.event-title-detail {
    font-family: 'Frontage Condensed Regular', sans-serif;
    font-size: 3.5rem;
    margin-top: 0;
    margin-bottom: 5px;
    line-height: 1;
}

.event-date-detail {
    font-weight: bold;
    color: var(--color-primary-dark);
    font-size: 1.2rem;
    margin-bottom: 15px;
}



/* --- Style unique et infaillible pour le Tag de Genre sur la page de détail --- */
/* --- 1. Contrôler la largeur du conteneur parent (le wrapper) --- */
.genre-tag-wrapper {
    /* C'est la ligne clé : force le conteneur du tag à prendre seulement la place nécessaire */
    display: inline-block; 
	line-height: 32px;
    margin-top: 10px; /* Pour espacer de la date */
    margin-bottom: 20px;
	max-width: 100%;
	overflow-wrap: break-word;
    word-wrap: break-word;
}

/* --- 2. Styles du Tag lui-même (s'assurer qu'il est bien un bloc à l'intérieur du wrapper) --- */
.detail-genre-tag {
    white-space: nowrap;
    display: inline; 
    width: 100%;
    height: auto;
    
    /* Styles d'affichage (Rectangle et Couleur) */
    background-color: var(--color-accent, #00C853);
    color: #FFFFFF; 
    padding: 5px 10px;
    border-radius: 3px;
    font-size: 0.9rem;
    font-weight: bold;
    text-transform: uppercase;
	/*margin: 0px;*/
}

.prices-detail p {
    margin: 5px 0;
    font-size: 1.1rem;
}

.ticket-link {
    margin: 20px 0;
    display: inline-block;
}

/* --- Liens Sociaux Événement --- */

.event-social-links {
    margin-top: 20px;
    display: flex;
    gap: 15px;
}

.social-icon-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--color-light-gray);
    color: var(--color-dark);
    font-size: 1.2rem;
    transition: background-color 0.3s, color 0.3s;
    text-decoration: none;
}

.social-icon-link:hover {
    background-color: var(--color-primary);
    color: var(--color-light);
}

/* --- Sections de Contenu --- */

.section-title {
    font-family: 'Oswald', sans-serif;
    font-size: 2rem;
    color: var(--color-light);
    margin-top: 30px;
    margin-bottom: 15px;
    border-bottom: 2px solid var(--color-primary-light);
    padding-bottom: 5px;
}

.event-description p {
    line-height: 1.6;
    margin-bottom: 15px;
}

/* --- Section Lieu --- */

.location-section address {
    font-style: normal;
    margin-bottom: 15px;
}

.phone-detail {
    margin-top: 10px;
}

/* --- Section Artistes --- */

.artist-detail-card {
    background-color: var(--color-white);
    padding: 0px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    margin-bottom: 0px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

.artist-name {
    font-family: 'Oswald', sans-serif;
    font-size: 1.8rem;
    margin-top: 0;
    margin-bottom: 5px;
   /* color: var(--color-dark);*/
}

.artist-country {
    font-size: 0.9rem;
    font-weight: normal;
    color: var(--color-text-light);
}

.artist-genres {
    margin-bottom: 15px;
    font-style: italic;
    color: var(--color-text-light);
}

.category-label {
    font-weight: bold;
    color: var(--color-primary);
    margin-right: 5px;
}

.artist-bio-container {
    margin-bottom: 20px;
}

.artist-bio {
    line-height: 1.5;
    margin-bottom: 10px;
	max-width: 100%;
	overflow-wrap: break-word;
    word-wrap: break-word;
}

/* --- Liens Artiste --- */
/* Conteneur pour aligner les liens (Flexbox) */

.artist-media-links {
    display: flex;
    flex-wrap: wrap; /* Permet aux liens de passer à la ligne si l'écran est trop petit */
    gap: 10px; /* Espace entre chaque lien */
    margin-top: 15px;
    margin-bottom: 25px;
}


/* Style du lien Artiste (Le bouton rectangulaire) */
.artist-media-links .artist-link {
    /* Rendre l'élément Flex pour aligner l'icône et le texte */
    display: inline-flex;
    align-items: center; /* Centrer verticalement l'icône et le texte */
    
    /* 🚨 COULEURS DEMANDÉES : Fond Jaune, Texte Blanc */
    background-color: var(--color-accent, #F4E70C); /* Fond Jaune */
    color: var(--color-dark, #000000); /* Texte et icône Blanc */
    
    /* Forme du bouton */
    padding: 8px 15px;
    border-radius: 20px; /* Forme de pilule */
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: bold;
    
    /* Animation de survol */
    transition: all 0.2s ease-in-out;
}

/* Style de l'icône à l'intérieur du lien */
.artist-media-links .artist-link i {
    /*margin-right: 8px;*/ /* Espace entre l'icône et le texte */
    font-size: 1.1em;
}

/* Effet de survol (hover) : L'icône grandit et les couleurs s'inversent */
.artist-media-links .artist-link:hover {
    transform: scale(1.05); /* Léger agrandissement */
    
    /* Inversion des couleurs au survol (Fond Noir, Icône Jaune) */
    background-color: var(--color-dark, #000000); 
    color: var(--color-accent, #F4E70C); 
}

.artist-link img {
    transition: filter 0.3s ease;
	mix-blend-mode: multiply;
}

.artist-link:hover img {
    
	mix-blend-mode: normal; 
    
    /* Étape 2 : Filtre pour transformer le noir en Jaune (#F4E70C) */
    /* Ce combo de filtres vise précisément la teinte jaune */
    filter: invert(88%) sepia(50%) saturate(1000%) hue-rotate(1deg) brightness(105%) contrast(100%);
}

/* --- Galerie Photo et Vidéo --- */

.artist-gallery, .artist-videos {
    margin-top: 20px;
    margin-bottom: 0px;
}

.artist-gallery h4, .artist-videos h4 {
    font-family: 'Roboto', sans-serif;
    font-size: 1.2rem;
    margin-bottom: 10px;
    color: var(--color-dark);
}

.artist-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.gallery-img {
    width: 150px; /* Taille pour une petite galerie */
    height: 150px;
    object-fit: cover;
    border-radius: 5px;
    transition: transform 0.2s;
}

.gallery-img:hover {
    transform: scale(1.05);
	cursor: pointer;
}

.video-wrapper {
    margin-bottom: 15px;
    /* Pour rendre l'iframe YouTube responsive */
    position: relative;
    width: 100%;
    padding-top: 56.25%; /* 16:9 Aspect Ratio (315/560 = 0.5625) */
}

.video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.artist-separator {
    border: 0;
    border-top: 1px dashed var(--color-border);
    margin: 20px 0;
}

/* --- Media Queries pour le Responsive --- */

@media (max-width: 768px) {
    .event-header-detail {
        flex-direction: column;
        gap: 20px;
    }

    .flyer-container {
        width: 100%;
        /*max-width: 300px;*/
        margin: 0 auto;
    }
    
    .event-title-detail {
        font-size: 3rem;
    }
    
    .artist-gallery {
        justify-content: left;
    }
    
    .gallery-img {
        width: 100px; 
        height: 100px;
    }
}



/* ========================================================== */
/* LIENS DANS LA DESCRIPTION D'ÉVÉNEMENT (PAGE AGENDA DETAILS) */
/* ========================================================== */

/* Cible les liens <a> à l'intérieur du conteneur de description */
.artist-bio .event-description a { 
    color: var(--color-accent, #F4E70C); /* Jaune défini précédemment */
    text-decoration: underline; 
    font-weight: bold;
	
}

/* Effet de survol */
.artist-bio .event-description a:hover {
    color: #CCCC00; /* Jaune foncé au survol */
}

/* Cible les liens <a> à l'intérieur du conteneur de description */
.event-description a { 
    color: var(--color-accent, #F4E70C); /* Jaune défini précédemment */
    text-decoration: underline; 
    font-weight: bold;
}

/* Effet de survol */
.event-description a:hover {
    color: #CCCC00; /* Jaune foncé au survol */
}





/* Style par défaut pour les icônes de réseaux sociaux d'événement */
.event-social-links .social-icon-link {
    /* Dimensions et forme du cercle */
    display: inline-flex; /* Permet d'aligner l'icône au centre */
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    
    /* Couleurs souhaitées : Fond Jaune et Icône Blanche */
    background-color: var(--color-accent, #F4E70C); /* Fond Jaune (ou votre variable d'accent) */
    color: var(--color-dark, #000000); /* Couleur de l'icône (Noir ou votre couleur sombre par défaut) */
    
    /* 💡 Ajout d'une transition pour l'effet de survol */
    transition: all 0.2s ease-in-out; 
    
    /* Taille de l'icône elle-même */
    font-size: 18px;
    text-decoration: none; /* Enlève le soulignement du lien */
}


/* Effet de survol (hover) pour les icônes de réseaux sociaux */
.event-social-links .social-icon-link:hover {
    /* 🚨 1. Agrandissement : utilise la transformation d'échelle pour un effet fluide */
    transform: scale(1.15); 
    
    /* 🚨 2. Inversion des couleurs au survol */
    background-color: var(--color-dark, #000000); /* Fond Noir */
    color: var(--color-accent, #F4E70C); /* Icône Jaune/Accent */
}

/* --- Styles pour la Modal de Galerie Photo --- */

.gallery-modal-overlay {
    display: none;
    position: fixed;
    /* 🚨 S'assurer que le z-index est suffisant, 9999 élimine tout doute. */
    z-index: 9999; 
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.9);
    
    /* Le JavaScript le passe à flex pour le centrage */
    align-items: center;
    justify-content: center;
}

.modal-content-image {
    position: relative;
    /* 🚨 SUPPRIMER : margin: auto; */
    /* Laissez le centrage à Flexbox sur .modal-overlay, cela évite les conflits */
    padding: 0;
    width: 80%; 
    max-width: 900px;
    background: transparent;
    border: none;
    
    /* Animation (nous gardons le zoom mais retirons la propriété margin: auto) */
    animation-name: zoom;
    animation-duration: 0.6s;
    /* 🚨 Ajout : S'assurer que le style final de l'animation (scale(1)) est maintenu */
    animation-fill-mode: forwards; 
}

.full-size-image {
    display: block;
    width: 100%;
    /* 🚨 Ajout : L'image doit avoir un max-height pour être visible */
    max-height: 90vh; 
    object-fit: contain; 
}

/* Animation d'ouverture (optionnel) */
@keyframes zoom {
    from {transform: scale(0.1)} 
    to {transform: scale(1)}
}




/* Rend le wrapper d'image cliquable pour remplacer l'ancienne balise <a> */
.gallery-clickable-wrapper {
    /* Ajoute le curseur de la souris pour indiquer que l'élément est interactif */
    cursor: pointer; 
    
    /* Optionnel : ajoute un léger effet de zoom au survol pour améliorer l'UX */
    transition: transform 0.2s ease-in-out;
    display: inline-block; /* Nécessaire si les images sont en ligne */
}

.gallery-clickable-wrapper:hover {
    transform: scale(1.02);
    /* Ajoutez ici d'autres effets si vous le souhaitez, comme une bordure */
}


/* Boutons de navigation (Flèches) */
.modal-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    
    /* Style du bouton */
    background: rgba(0, 0, 0, 0.4); /* Fond noir semi-transparent par défaut */
    border: none;
    cursor: pointer;
    
    /* Taille et couleur */
    color: #f1f1f1; /* Couleur du bouton de fermeture (blanc cassé) */
    font-size: 30px; /* Taille plus raisonnable */
    font-weight: bold;
    line-height: 1; /* Aligner verticalement le symbole (optionnel) */
    
    /* Forme et espacement */
    width: 50px;
    height: 50px;
    border-radius: 50%; /* Rendre le bouton rond */
    
    /* Centrage du symbole dans le rond */
    display: flex;
    align-items: center;
    justify-content: center;
    
    transition: background-color 0.3s, transform 0.3s;
    z-index: 10001; /* Assurer qu'il est au-dessus de tout */
    user-select: none;
}


/* Positionnement des flèches */
.prev-btn {
    left: 10px;
}

.next-btn {
    right: 10px;
}

/* Survol : Inverser légèrement ou augmenter la taille */
.modal-nav-btn:hover {
    background-color: rgba(255, 255, 255, 0.2); /* Fond blanc semi-transparent */
    transform: translateY(-50%) scale(1.1); /* Léger agrandissement */
}







/* ========================================================== */
/* --- Styles pour la Navigation Précédent/Suivant (Version en Haut) --- */
/* ========================================================== */

.event-navigation {
    display: flex;
    justify-content: space-between; 
    align-items: center;
    width: 100%;
    /* Max-width à 600px pour resserrer les flèches */
    /*max-width: 600px; */
	max-width: 1000px; 
    /* 🚨 Marge par défaut pour Desktop */
    margin: 20px auto 0 auto; 
    padding: 0 15px;
    
    position: relative; 
    z-index: 10; 
}

/* --- Media Query pour écrans Tablette et Mobile --- */
@media (max-width: 1023px) {
    
    .event-navigation {
        /* 🚨 CORRECTION : Marge supérieure de 100px sous 1024px pour passer sous le menu fixe */
        margin-top: 100px;
        margin-bottom: 20px;
    }
    
    /* 🚨 NOUVEAU : Masquer le texte des flèches en mobile pour gagner de la place */
    .event-navigation .nav-text {
        display: none;
    }
}

/* ========================================================== */
/* --- Style des flèches/boutons de navigation (avec texte intégré) --- */
/* ========================================================== */

.event-navigation .nav-arrow {
    /* 🚨 MODIFIÉ : Ajout du flex pour aligner la flèche et le texte */
    display: flex;
    align-items: center;

    /* Styles de la flèche (cercle) */
    font-size: 24px;
    font-weight: bold;
    text-decoration: none;
    /*background: var(--color-dark, #000000); 
    border-radius: 50%;*/
    width: 45px;
    height: 45px;
    justify-content: center;
    transition: transform 0.3s, opacity 0.3s, background-color 0.3s, color 0.3s;
    color: var(--color-accent, #F4E70C); 
    
    /* Annulation des styles potentiellement conflictuels */
    position: relative; 
    top: auto;
    transform: none; 
}

/* 🚨 NOUVEAU : Aligner la flèche et le texte correctement dans le lien */
/* Événement Précédent : Texte doit être avant la flèche (à droite) */
.event-navigation .prev-event-link {
    flex-direction: row-reverse; 
}

/* Événement Suivant : Texte doit être après la flèche (à gauche) */
.event-navigation .next-event-link {
    flex-direction: row;
}

/* Style du texte "Événement précédent/suivant" */
.event-navigation .nav-text {
    font-size: 0.9rem;
    color: var(--color-light); 
    /* Marge pour séparer le texte du cercle */
    margin: 0 10px; 
    white-space: nowrap; /* Empêche le texte de revenir à la ligne */
	display: none;
}


.event-navigation .nav-arrow:hover {
    /*background-color: var(--color-accent, #F4E70C);
    color: var(--color-dark, #000000);*/
    /* 🚨 MODIFIÉ : Appliquer le scale uniquement sur le lien conteneur */
    transform: scale(1.1); 
}

/* Style pour les flèches désactivées (non cliquables) */
.event-navigation .nav-arrow.disabled {
    opacity: 0.3;
    cursor: default;
    background: var(--color-dark, #000000);
    color: var(--color-accent, #F4E70C);
    transform: none;
}
.event-navigation .nav-arrow.disabled:hover {
    background-color: var(--color-dark, #000000);
    color: var(--color-accent, #F4E70C);
    transform: none;
}


/* ========================================================== */
/* --- Style du lien central "Retour à l'agenda" (CONDITIONNEL) --- */
/* ========================================================== */

.event-navigation .nav-center-link {
    color: var(--color-accent, #F4E70C);
    text-decoration: none;
    font-weight: bold;
    padding: 8px 15px;
    border: 2px solid var(--color-accent, #F4E70C);
    border-radius: 25px;
    transition: background-color 0.3s, color 0.3s;
    white-space: nowrap; 
}

.event-navigation .nav-center-link:hover {
    background-color: var(--color-accent, #F4E70C);
    color: var(--color-dark, #000000);
}

/* 🚨 NOUVEAU : LOGIQUE D'AFFICHAGE CONDITIONNEL */

/* Masque le lien "Retour à l'agenda" par défaut sur Desktop */
.event-navigation .nav-center-link {
    display: none; 
}

/* Affiche le lien uniquement sur Mobile/Tablette (quand le menu burger est visible) */
@media (max-width: 1024px) {
    .event-navigation .nav-center-link {
        display: block; 
    }
}



/* --- SECTION ACTUALITÉS --- */
.news-section {
    padding: 40px 15px;
}

.news-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); /* 3 colonnes flexibles */
    gap: 30px;
    justify-content: center; /* Centrer les cartes si la dernière ligne est incomplète */
}

.news-card {
    /*background-color: var(--color-light, #FFFFFF);*/
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s, box-shadow 0.3s;
    display: flex;
    flex-direction: column;
}

.news-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
}

.news-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.news-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.news-title {
    font-family: 'Frontage Condensed Regular', sans-serif;
    font-size: 1.8em;
    margin: 0 0 10px 0;
    line-height: 1.1;
    color: var(--color-accent, #F4E70C)
}

.news-snippet {
    font-size: 1em;
    margin-bottom: 15px;
    flex-grow: 1; /* Pousse le bouton vers le bas */
}


/* ========================================================== */
/* STYLES DE LA MODALE DES ACTUALITÉS (NEWS) - 100% SÉCURISÉ */
/* ========================================================== */

/* 1. Le fond opaque (Overlay) */
.news-custom-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.85);
    z-index: 1000;
    display: flex; 
    justify-content: center; 
    align-items: center; 
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.3s, visibility 0.3s;
}

.news-custom-overlay.active {
    visibility: visible;
    opacity: 1;
}

/* 2. Le conteneur intérieur de la modale (La "Carte" agrandie) */
.news-custom-content {
    background-color: #222;
    color: #fff; 
    
    width: 90%; 
    max-width: 650px; 
    
    /* 🚨 RETIRER LA LIMITE DE HAUTEUR ET LE DÉFILEMENT DE CET ÉLÉMENT */
    /* max-height: 90vh; */ 
    /* overflow-y: auto; */ 
    
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.4);
    box-sizing: border-box; 
    position: relative; /* GARDEZ CECI pour le positionnement du bouton */
    
    padding: 0;
}

/* 🚨 NOUVELLE RÈGLE : Gère la hauteur et le défilement */
.news-scroll-wrapper {
    max-height: 90vh;       /* 🚨 La limite de hauteur est APPLIQUÉE ICI */
    overflow-y: auto;       /* 🚨 Le défilement est APPLIQUÉ ICI */
    overflow-x: hidden;
    
    /* Réapplique les styles pour masquer la barre de défilement sur ce nouvel élément */
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.news-scroll-wrapper::-webkit-scrollbar {
    display: none;
    width: 0;
}

/* 3. Style de l'image (au sommet de la modale) */
.news-modal-image-display {
    width: 100%; /* Prend toute la largeur disponible */
    max-height: 300px; /* Limite la hauteur de l'image */
    object-fit: cover; /* Assure que l'image couvre bien la zone sans déformation */
    border-top-left-radius: 8px; /* Bords supérieurs arrondis comme le conteneur */
    border-top-right-radius: 8px;
    margin-bottom: 0;
    display: block;
}

/* 4. Le corps du texte (avec le padding) */
.news-modal-body {
    padding: 25px 30px; /* Le padding est ici pour éviter qu'il n'interfère avec l'image */
}

/* 5. Styles spécifiques au texte */
.news-modal-title {
    margin-top: 0;
    margin-bottom: 5px;
    font-size: 2.2em;
    color: #333333;
    font-family: 'Frontage Condensed Regular', sans-serif;
}

/* 🚨 CORRECTION POUR UN STYLE DE CARTE PROPRE */
.news-date-display {
    display: block;
    color: #fff;
    font-size: 1em; /* Taille standard */
    font-weight: 600; /* Légèrement plus gras pour se démarquer */
    margin-bottom: 20px; /* Espace après la date */
    
    /* 🚨 Suppression des styles de séparation inutiles */
    border-bottom: none; 
    padding-bottom: 0;
}

/* Style du contenu complet (lisibilité) */
.news-full-content-display {
    line-height: 1.6;
    font-size: 1em;
    margin-bottom: 25px;
    /* Ajoutez ou conservez la règle pour la séparation Titre/Contenu si nécessaire */
    border-top: 1px solid #ddd; 
    padding-top: 20px;
}

/* 6. Bouton de fermeture (Rond Jaune) */
#news-close-btn {
    /* 🚨 CHANGEMENT CRUCIAL : POSITIONNEMENT PAR RAPPORT À LA MODALE */
    position: absolute; 
    top: -20px;     /* Décalage de 20px vers le haut (à cheval) */
    right: -20px;   /* Décalage de 20px vers la droite (à cheval) */

    background-color: var(--color-accent, #F4E70C); 
    border-radius: 50%; 
    width: 40px; 
    height: 40px; 
    
    color: #000000; 
    font-size: 24px; 
    line-height: 38px; 
    text-align: center;
    
    z-index: 10001; /* Assure qu'il est au-dessus du conteneur de la modale */
    border: none;
    cursor: pointer;
    transition: background-color 0.2s;
}

#news-close-btn:hover {
    background-color: #CCCC00; 
}



/* Règle CSS pour désactiver le scroll */
.no-scroll {
    overflow: hidden; /* Cache la barre de défilement */
    height: 100vh; /* Fixe la hauteur de la page à la hauteur de l'écran */
}


/* --- Styles pour les boutons d'actualités sur la carte --- */

/* Conteneur pour affichage côte à côte (inchangé) */
.news-cta-container {
    display: flex;
    gap: 10px;
    margin-top: auto; 
    width: 100%;
}

/* Styles de base pour tous les boutons CTA des actualités */
.news-cta {
    flex-grow: 1; 
    flex-basis: 0;
    text-align: center;
    
    /* Styles communs aux deux boutons/liens */
    text-decoration: none; /* Enlève le soulignement du lien */
    border-radius: 25px;
    padding: 10px 15px;
    font-weight: bold;
    cursor: pointer;
    display: inline-block;
    transition: all 0.3s;
    white-space: nowrap; /* Empêche la coupure du texte */
}

/* Style spécifique du bouton (bordure jaune sur fond gris) */
.secondary-cta {
    background-color: transparent; 
    color: var(--color-accent, #F4E70C); 
    border: 2px solid var(--color-accent, #F4E70C);
}

/* Effet de survol (hover) */
.secondary-cta:hover {
    background-color: var(--color-accent, #F4E70C);
    color: var(--color-dark, #000000);
    /* Assurer que l'état de survol est le même pour l'élément <a> et <button> */
}




/* ========================================================== */
/* STYLES POUR MASQUER LA BARRE DE DÉFILEMENT (Webkit) */
/* ========================================================== */

/* Cible les navigateurs basés sur WebKit (Chrome, Safari, Edge) */
.news-custom-content::-webkit-scrollbar {
    display: none; /* 🚨 Masque complètement la barre de défilement */
    width: 0;      /* Assure qu'elle ne prend aucun espace */
}

/* Pour Firefox (optionnel, rend la barre très mince mais ne la cache pas) */
.news-custom-content {
    -ms-overflow-style: none; /* 🚨 Pour IE et Edge Legacy */
    scrollbar-width: none;    /* 🚨 Pour Firefox */
}

/* Remarque : L'élément .news-custom-content doit conserver 'overflow-y: auto;' */



/* ========================================================== */
/* STYLES DE LA CARTE CTA (V3 : Épurée et Animée) */
/* ========================================================== */

.cta-card {
    /* Assure qu'elle prend la même taille que les autres cartes */
    height: 100%; 
    min-height: 250px; 
    
    background-color: var(--color-accent, #F4E70C); 
    border: 2px solid var(--color-accent, #F4E70C); /* 🚨 Bordure fine jaune */
    border-radius: 8px; 
    box-shadow: none; 
    
    /* Centrage du contenu */
    display: flex;
    align-items: center; 
    justify-content: center; 
    text-align: center;
    
    position: relative;
    overflow: hidden; 
    transition: background-color 0.4s ease-out; /* Transition pour le changement de couleur */
}

/* Effet de survol sur la carte : le fond devient jaune */
.cta-card:hover {
    background-color: var(--color-accent, #F4E70C); 
    box-shadow: 0 0 15px rgba(244, 231, 12, 0.6); /* Ombre jaune légère au survol */
}

.cta-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 30px;
    color: #F8F8F8; /* 🚨 Texte clair par défaut (Noir sur jaune au survol) */
    text-decoration: none;
    transition: color 0.4s;
    z-index: 2;
}

/* Changement de couleur du texte au survol pour garantir le contraste */
.cta-card:hover .cta-link {
    color: #000000; /* Texte devient noir sur fond jaune */
}

.cta-title {
    
    font-size: 2.4em; /* Plus grand pour l'impact */
    
    line-height: 1;
    text-transform: uppercase;
	
	background-color: var(--color-accent, #F4E70C); 

    color: #fff;
}

.cta-text {
    font-size: 1.1em;
    font-weight: 300;
    margin-bottom: 15px;
}

/* Flèche stylisée */
.cta-arrow {
    display: block;
    font-size: 2.5em; 
    line-height: 1;
    transition: transform 0.4s ease-out;
}

/* 🚨 Animation de la flèche au survol */
.cta-card:hover .cta-arrow {
    transform: translateX(10px) scale(1.1); 
}



/* ========================================================== */
/* STYLE DE L'EMPLACEMENT DANS L'HEADER DÉTAIL */
/* ========================================================== */

/* Conteneur de la ligne Lieu */
.event-location-detail {
    margin-top: 5px; /* Petit espacement après la date */
    margin-bottom: 10px;
    font-size: 1rem;
    display: flex;
    align-items: center;
}

/* Style de l'icône de localisation (Font Awesome) */
.event-location-detail i {
    color: var(--color-primary); /* Votre couleur jaune/primaire */
    margin-right: 8px;
}

/* Style du lien Google Maps */
.event-location-detail .map-link {
    color: var(--color-light); /* Couleur du texte dans l'info box */
    text-decoration: underline;
    font-weight: normal; /* Le nom du lieu est en gras, le lien ne l'est pas */
    /*margin-left: 5px;*/
    transition: color 0.2s;
}

.event-location-detail .map-link:hover {
    color: var(--color-primary);
}

.description-section, .artists-section{
	padding-left: 15px;
	margin-bottom: 35px;
}


/* ========================================================== */
/* 1. STYLES DU CONTENEUR (Largeur totale) */
/* ========================================================== */

.agenda-title-wrapper {
    width: 100%; /* S'étend sur toute la largeur disponible */
    /* Si vous voulez une couleur de fond, mettez-la ici, par exemple: */
    /* background-color: var(--color-dark-light); */ 
    
    /* Le conteneur lui-même n'a pas besoin de padding horizontal */
}

/* ========================================================== */
/* 2. STYLES DU CONTENU (Limitation et Centrage) */
/* ========================================================== */

.agenda-title {
    /* 🚨 1. Limiter la largeur maximale du contenu */
    max-width: 1200px; 
    
    /* 🚨 2. Centrer le bloc à l'intérieur de son parent de 100% de large */
    margin-left: auto;
    margin-right: auto;
    
    /* 3. Ajouter un padding interne pour qu'il ne colle pas aux bords de l'écran sur mobile */
    padding-left: 15px;
    padding-right: 15px; 
    
    /* 4. Réinitialiser la marge supérieure que nous avions utilisée pour le sticky */
    /* Si vous avez déplacé le <h2> dans un wrapper, cette marge doit être révisée.
       Laissez-la si elle est nécessaire pour l'espace vertical : */
    margin-top: 70px; 
    
    /* Autres styles de titre... */
    font-size: 2em;
    color: var(--color-light);
}

@media (max-width: 600px) {
    /* Cible uniquement les <li> à l'intérieur de l'élément avec l'ID #social-fixed */
    #social-fixed .social-list li {
        /* 🚨 Les marges sont annulées uniquement ici */
        margin-left: 0;
        margin-right: 0;
        
        /* Assurez-vous d'annuler les marges qui pourraient exister sur les classes spécifiques aussi */
        margin: 0; 
    }
}

/* ========================================================== */
/* STYLES PAR DÉFAUT (Pour les écrans > 600px) */
/* ========================================================== */

.container {
    width: 90%; /* Largeur par défaut pour desktop/tablette */
    margin: 0 auto;
    padding: 0 10px;
}

.event-info-box {
    padding: 15px; /* Padding par défaut pour desktop/tablette */
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* ========================================================== */
/* 📱 ADAPTATION PETIT ÉCRAN (max-width: 600px) */
/* ========================================================== */

@media (max-width: 600px) {
    
    /* 1. Conteneur (Passer à 100% de largeur) */
    .container {
        /* 🚨 Le conteneur prend toute la largeur */
        width: 100%;
        /* Conserver la marge automatique (même si non nécessaire avec width: 100%) */
        margin: 0 auto;
        /* Optionnel : vous pourriez annuler le padding ici si vous voulez 100% pur */
        /* padding: 0 0; */ 
    }
    
    /* 2. Boîte d'informations de l'événement (Supprimer le padding latéral) */
    .event-info-box {
        /* 🚨 Annuler le padding gauche/droit, conserver le padding haut/bas (15px) */
        padding-left: 0;
        padding-right: 0;
        /* Conserver le padding haut et bas pour l'espacement vertical */
        padding-top: 15px;
        padding-bottom: 15px;
        
        /* OU, plus concis, si vous n'avez besoin que du 0 en latéral : */
        /* padding: 15px 0; */
    }
	
	.description-section, .artists-section {
		padding-left: 0px;
	}
}


/* ========================================================== */
/* 🚨 NOUVELLES RÈGLES POUR HARMONISER LA GRILLE NEWS/AGENDA */
/* ========================================================== */

/* Styles pour la grille Agenda ET News (jusqu'à 768px) */
/* Remplacez #news-list par le nouveau sélecteur (ici, .event-list-alike) */

.event-list-alike {
    /* Style de base pour la grille news, similaire à #event-list (si l'on veut un comportement mobile par défaut) */
    padding-top: 20px; /* Si c'est nécessaire pour l'espacement */
}

@media (min-width: 768px) {
    /* Styles appliqués à #event-list à partir de 768px */
    .event-list-alike {
        display: grid;
        grid-template-columns: 1fr 1fr; /* 2 colonnes */
        gap: 30px;
    }
}

@media (min-width: 1024px) {
    /* Styles appliqués à #event-list à partir de 1024px */
    .event-list-alike {
        grid-template-columns: 1fr 1fr 1fr; /* 3 colonnes */
    }
}





/* ========================================================== */
/* STYLES GÉNÉRAUX POUR LES PAGES STATIQUES (INFOS PRATIQUES) */
/* ========================================================== */

/* 1. LIENS : Utilisation de la couleur primaire (Jaune Belvédère) */
.event-details-content a {
    color: var(--color-primary, #F4E70C); /* Utilise la variable CSS ou le fallback */
    text-decoration: underline; /* Maintient l'indication que c'est un lien */
    transition: color 0.2s;
}

.event-details-content a:hover {
    color: #ffffff; /* Texte blanc au survol */
}

/* 2. BOUTON UTICK : Carré Jaune aux coins arrondis */

.utick-button {
    display: inline-block;
    width: 150px;
    height: 150px;
    background-color: #F4E70C;
    color: white !important;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    line-height: 150px;
    text-decoration: none;
    border-radius: 10px;
    transition: 0.3s;
}

.utick-button:hover {
    background-color: #e0d00a; /* Jaune légèrement plus foncé au survol */
    opacity: 0.9;
}


/* 3. STYLISATION DES LISTES (Méthodes d'accès, Paiement, Réductions) */
.access-methods,
.payment-methods,
.discounts {
    list-style: none; /* Supprime les puces par défaut */
    padding-left: 0; /* Alignement parfait avec le texte environnant */
    margin: 20px 0; /* Espacement vertical */
}

.access-methods li,
.payment-methods li,
.discounts li {
    margin-bottom: 15px; /* Espacement entre les lignes */
    line-height: 1.5;
    display: flex; /* Permet d'aligner l'icône et le texte */
    align-items: flex-start; /* Aligne l'icône en haut si le texte est long */
}

/* Stylisation des icônes dans les listes */
.access-methods li i,
.payment-methods li i,
.discounts li i {
    margin-right: 15px;
    font-size: 1.3em; /* Icônes légèrement plus grandes */
    min-width: 25px; /* Assure que le texte est bien décalé */
    text-align: center;
    padding-top: 2px;
}





/* Styles pour les sections A PROPOS et PARTENAIRES */
.cms-content-html {
    /* Assure que le contenu venant du CMS (qui peut inclure <p> ou <iframe>) s'affiche bien */
    line-height: 1.6;
    margin-bottom: 20px;
}

/* Galerie A Propos (images) */
.gallery-inline-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 15px; /* Espacement entre les images */
    margin-top: 20px;
    justify-content: center; /* Centrer les images */
}

.gallery-img-standard {
    width: 250px; /* Taille fixe pour les images de galerie */
    height: 180px;
    object-fit: cover;
    border-radius: 4px;
}

/* Grille des Partenaires (Logos) */
.partners-logo-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 30px; 
    justify-content: center; /* Centrer les logos */
    align-items: center;
    padding: 20px 0;
}

.partner-logo-wrapper {
    /* Conteneur pour s'assurer que les logos ne sont pas trop grands */
    max-width: 200px;
    max-height: 100px; 
    display: flex;
    align-items: center;
    justify-content: center;
}

.partner-logo {
    max-width: 100%;
    max-height: 100px;
    object-fit: contain; /* Assure que le logo est entier */
}

/* Grille des Membres de l'Équipe */
.team-members-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    justify-content: center;
    margin: 30px 0;
    text-align: center;
}

.team-member-card {
    width: 210px; /* Taille fixe comme dans votre ancien code (210px) */
    text-align: center;
}

.team-member-photo {
    width: 200px;
    height: 300px;
    object-fit: cover;
    border-radius: 4px;
}

.team-member-info {
    display: block;
    color: #FFFFFF;
    width: 200px;
    word-wrap: break-word;
    font-size: 14px;
    line-height: 1.3;
    margin-top: 8px;
}





/* ========================================================== */
/* STYLES SPÉCIFIQUES À LA PAGE 404 */
/* ========================================================== */

.error-page-404 {
    /* Ajoute un padding supplémentaire pour centrer le contenu verticalement 
       et s'assurer qu'il y a de l'espace */
    padding-top: 80px;
    padding-bottom: 80px;
    text-align: center; /* Centrage général du contenu de la page */
}

/* Style du grand numéro d'erreur 404 */
.error-code-title {
    font-size: 8em; /* Très grande taille */
    font-weight: 900;
    color: var(--color-primary, #F4E70C); /* Couleur Jaune */
    margin-bottom: 0.1em;
    line-height: 1;
    text-shadow: 
        3px 3px 0 #000, 
        -1px -1px 0 #000, 
        1px -1px 0 #000, 
        -1px 1px 0 #000, 
        1px 1px 0 #000; /* Contour noir autour du jaune pour un style graphique */
}

/* Assurer que le titre de section est bien centré */
.error-page-404 .section-title {
    text-align: center;
    margin-top: 0;
    margin-bottom: 20px;
}

/* Réutiliser le style du bouton jaune pour le lien de retour */
.error-page-404 .utick-button {
    /* Le style du bouton est déjà défini dans le CSS précédent,
       il n'y a pas besoin de le redéfinir ici, mais on s'assure qu'il est bien appliqué. */
    margin-top: 20px;
}



/* Grille des Partenaires */
.partners-logo-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
    align-items: center;
    padding: 30px 0;
}

/* Le conteneur (la vignette) */
.partner-logo-wrapper {
    box-sizing: border-box; /* IMPORTANT : Inclut le padding dans les dimensions */
    width: 160px;
    height: 100px;
    background-color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px; /* Un peu plus d'espace pour que les logos ne touchent pas les bords */
    border-radius: 8px;
    overflow: hidden; /* Sécurité : rien ne sort du cadre */
    
    /* Effet harmonisation */
    filter: grayscale(100%) opacity(0.7);
    transition: all 0.3s ease;
}

/* Effet au survol */
.partner-logo-wrapper:hover {
    filter: grayscale(0%) opacity(1);
    transform: scale(1.05);
    box-shadow: 0 5px 15px rgba(244, 231, 12, 0.4);
}

/* L'image à l'intérieur */
.partner-logo {
    display: block;
    max-width: 100%;  /* Ne dépasse jamais la largeur du wrapper (moins le padding) */
    max-height: 100%; /* Ne dépasse jamais la hauteur du wrapper (moins le padding) */
    width: auto;      /* Garde le ratio */
    height: auto;     /* Garde le ratio */
    object-fit: contain; /* S'assure que le logo est entièrement visible */
}




/* --- Mise en évidence du lien actif dans le menu --- */

/* Pour les liens dans le menu plein écran */
#full-screen-menu .menu-links .nav-link.is-active, 
.header-content .nav-link.is-active {
    
    /* Utilisez votre couleur jaune ou d'accentuation */
    background-color: #FFD700; /* Jaune standard */
    color: #000000 !important; /* Force le texte noir pour contraster avec le jaune */
    
    /* Ajout d'une bordure ou d'un autre style */
    border-radius: 4px;
    padding: 8px 12px; 
}


/* --- Règles pour la galerie (artist-gallery) --- */

/* --- 1. RÈGLES PAR DÉFAUT (jusqu'à 600px) --- */
.artist-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); 
    gap: 12px;
    max-width: 400px; 
    margin: 20px auto; 
    width: 100%;
}

/* --- 2. POINT DE RUPTURE : TABLETTE (à partir de 600px) --- */
@media (max-width: 599px) {
    .artist-gallery {
        max-width: none; 
        margin-left: 0;
        margin-right: 0;
        
        /* Garder une taille maximale fixe pour l'instant pour éviter l'étirement sur tablette */
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: start;
    }
}

/* --- 2. POINT DE RUPTURE : TABLETTE (de 600px à 899px) --- */
@media (min-width: 600px) and (max-width: 899px) {
    .artist-gallery {
        max-width: none; 
        margin-left: 0;
        margin-right: 0;
        
        /* 🚨 CORRECTION : FORCER 3 COLONNES FLUIDES 🚨 */
        /* La grille utilise exactement 3 colonnes qui se partagent l'espace (1fr) */
        grid-template-columns: repeat(3, minmax(0, 1fr));
        
        /* Centrer les éléments dans leurs cellules (si besoin) */
        justify-content: start; 
    }
}


/* --- 3. POINT DE RUPTURE : DESKTOP (à partir de 900px) --- */
@media (min-width: 900px) {
    .artist-gallery {
        /* 🚨 CORRECTION POUR LA FLUIDITÉ AVEC LIMITE (Desktop) 🚨 */
        
        /* 1. Définir le nombre maximal de colonnes sur 4 (par exemple).
           2. Chaque colonne prend une fraction égale (1fr).
           3. 'minmax(0, 1fr)' permet l'étirement mais respecte la structure 4-colonnes. */
        grid-template-columns: repeat(4, minmax(0, 1fr)); 
        
        gap: 15px; /* On augmente un peu l'espace sur desktop */

        /* Si vous avez 1 ou 2 images, elles prendront 1/4 ou 2/4 de la ligne complète, 
           ce qui est large, mais pas gigantesque comme quand elles prenaient 100% ou 50%. */
        
        /* Aligner les éléments restants à gauche */
        justify-content: start; 

        /* Limiter la largeur de la grille complète pour qu'elle ne soit pas trop large */
        max-width: 1200px; 
        margin-left: 0; /* Alignement à gauche de la zone 1200px */
        margin-right: auto; 
    }
}

/* Le wrapper de l'image (garantit le ratio 1:1) */
.artist-gallery .gallery-image-wrapper {
    position: relative; 
    padding-top: 100%; 
    overflow: hidden;
    width: 100%;
}

/* --- Règle pour l'image (pour qu'elle remplisse l'espace sans déformation) --- */

.gallery-image-wrapper img {
    /* L'image prend toute la largeur de son conteneur (la colonne Grid) */
    width: 100%;
    
    /* L'image prend toute la hauteur de son conteneur */
    height: 100%;
    
    /* Très important : assure que l'image couvre l'espace sans être déformée. 
       Les images seront coupées si elles n'ont pas le bon ratio, mais le layout restera propre. */
    object-fit: cover;
}

/* --- Règle pour le conteneur du thumbnail (maintenir le ratio 1:1) --- */

.gallery-image-wrapper {
    /* Le conteneur du span doit s'adapter à la grille */
    width: 100%;
    
    /* 🚨 TRUC DE DESIGN RESPONSIVE : Simuler un ratio 1:1 🚨
       On utilise le padding-top basé sur la largeur (100% de la largeur)
       pour forcer la hauteur à être égale à la largeur.
       Ceci est crucial pour que toutes les vignettes aient la même taille et ne s'écrasent pas. */
    padding-top: 100%; /* Ratio 1:1 */
    
    /* Positionnement pour pouvoir placer l'image à l'intérieur de cet espace */
    position: relative;
    overflow: hidden; /* Cache les débordements */
}

/* Positionner l'image à l'intérieur du conteneur forcé */
.gallery-image-wrapper img {
    position: absolute;
    top: 0;
    left: 0;
}





/* --- 1. GRILLE D'AGENCEMENT (Conteneur principal) --- */
.team-grid-layout {
    display: grid;
    /* Crée des colonnes responsives avec une largeur MINIMALE de 220px */
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 30px; /* Espace entre les cartes */
    padding: 20px 0;
}

/* --- 2. CARTE INDIVIDUELLE --- */
.team-card {
    width: 100%;
    /* La carte prend toute la place dans sa colonne de grille */
    text-align: center;
}

/* --- 3. WRAPPER DE LA PHOTO (Gère le ratio) --- */
.team-photo-wrapper {
    /* Rend ce conteneur la référence pour la position absolue de l'image */
    position: relative; 
    width: 100%;
    
    /* Force le ratio portrait (Hauteur = 150% de la Largeur) */
    padding-top: 150%; 
    
    display: block; /* S'assurer qu'il se comporte comme un bloc */
    overflow: hidden;
    margin-bottom: 10px; /* Petit espace entre la photo et le texte */
}

/* --- 4. IMAGE (Positionnée en Absolue) --- */
.team-photo-img {
    /* Positionnement absolu pour remplir l'espace créé par padding-top */
    position: absolute;
    top: 0;
    left: 0;
    
    /* Remplir le wrapper à 100% */
    width: 100%;
    height: 100%;
    
    /* Assure que l'image couvre l'espace sans déformation */
    object-fit: cover;
    border-radius: 4px;
}

/* --- 5. BLOC D'INFORMATION (Positionné sous l'image dans le flux normal) --- */
.team-info-box {
    /* Le texte prend sa place naturellement SOUS le team-photo-wrapper */
    width: 100%;
    /* Aucun positionnement absolu ou hauteur fixe nécessaire */
}


/* Grille du projet (style similaire à la première galerie) */
.project-flash-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px;
}

/* Le wrapper de l'image pour forcer le ratio 1:1 */
.project-flash-grid .gallery-image-wrapper {
    position: relative; 
    width: 100%;
    padding-top: 100%; /* <-- Ratio Carré 1:1 */
    overflow: hidden;
    display: block;
}

/* L'image elle-même */
.project-flash-grid .gallery-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.full-width-image {
    width: 100%; /* L'image prend 100% de la largeur de son parent */
    height: auto; /* La hauteur s'ajuste automatiquement pour conserver le ratio de l'image */
    display: block; /* S'assure qu'elle n'est pas traitée comme un élément en ligne */
}

.modal-caption{
	text-transform: uppercase;
	color: var(--color-primary);
}



/* ==========================================================
   CSS POUR ALIGNEMENT SUPERPOSÉ ET CENTRÉ (Fixe le problème Portrait)
   ========================================================== */

/* 1. Conteneur principal de la modale (Centre le wrapper) */
.modal-content-image {
    display: flex; /* Utiliser flexbox pour centrer le wrapper */
    justify-content: center; /* Centre horizontalement le wrapper */
    align-items: center;     /* Centre verticalement le wrapper */
    max-width: 90%; /* Ajustez cette valeur à la taille de votre modale */
    height: 90vh;   /* Permet au centrage vertical de fonctionner */
    margin: auto;
}

/* 2. Le Wrapper : Il prend la largeur de l'image et sert de référence */
#image-overlay-wrapper {
    position: relative; /* 🚨 LA CLÉ : La légende se positionne par rapport à lui */
    display: inline-block; /* 🚨 IMPORTANT : Le wrapper prendra exactement la largeur de l'image centrée */
    max-width: 100%;
    max-height: 100%;
}

/* 3. L'Image : Elle remplit l'espace sans déborder */
#modal-full-image {
    max-width: 100%; 
    max-height: 100%;
    width: auto;
    height: auto;
    display: block;
}

/* 4. La Légende : Positionnement SUPERPOSÉ en bas à gauche */
#modal-image-caption {
    position: absolute; 
    
    /* 🚨 LA CLÉ : Se positionne au coin inférieur gauche du wrapper (qui est la taille de l'image) */
    bottom: 0; 
    left: 0; 
    
    /* Styles pour la lisibilité */
    background: rgba(0, 0, 0, 0.7); 
    color: white;
    padding: 8px 15px;
    max-width: 80%; /* Pour éviter qu'une longue légende ne s'étire trop */
    z-index: 10;
}

/* 5. Réajustement des Boutons de Navigation (car le wrapper a pris leur place) */
/* Les boutons sont positionnés en absolu par rapport à la modale (modal-content-image) */
.modal-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    /* Assurez-vous qu'ils sont bien positionnés par rapport à votre .modal-content-image */
}
.prev-btn { left: 0; }
.next-btn { right: 0; }

/* ==========================================================
   1. S'assurer que l'OVERLAY remplit l'écran
   ========================================================== */
.gallery-modal-overlay {
    position: fixed; /* 🚨 ESSENTIEL : Reste visible même en scrollant le corps */
    top: 0;
    left: 0;
    width: 100vw;    /* 100% de la largeur du viewport */
    height: 100vh;   /* 100% de la hauteur du viewport */
    z-index: 1000;   /* S'assure d'être au-dessus de tout */
    overflow-y: auto; /* Permet le scroll si la modale elle-même est plus haute que l'écran */
    padding: 20px; /* Ajoute un peu d'espace autour du contenu pour éviter le collage aux bords */
    box-sizing: border-box; /* 🚨 IMPORTANT : Le padding est inclus dans width/height */
}

/* ==========================================================
   2. Positionnement du Bouton de Fermeture (Par rapport au contenu)
   ========================================================== */

/* Rend le contenu de la modale la référence pour le bouton absolu */
/* Nous avions déjà cette ligne, mais vérifiez qu'elle est là ! */
.modal-content-image {
    position: relative; /* 🚨 Le bouton sera positionné par rapport à ce bloc */
    /* ... autres styles de centrage ... */
}

.modal-close-btn {
    position: absolute; 
    top: 0; /* Aligné sur le haut du contenu centré */
    right: 0; /* Aligné sur le bord droit du contenu centré */
    /* Ajustement pour que le bouton ne touche pas le bord du contenu */
    margin-right: -40px; /* Ajuster la marge négative ou la retirer si elle cause le débordement */
    
    /* 🚨 SOLUTION MOBILE : Sur petit écran, retirez la marge négative ! */
}


/* ==========================================================
   3. Media Query pour le Mobile (Le FIX du débordement)
   ========================================================== */

@media (max-width: 768px) {
    /* Sur les petits écrans, on veut que le bouton soit à l'intérieur */
    .modal-content-image {
        /* Permet à la modale de ne pas coller les bords de l'écran */
        padding: 20px; 
    }
    
    .modal-close-btn {
        top: 5px; /* Décaler légèrement du haut */
        right: 5px; /* Coller au bord droit (à l'intérieur du padding) */
        margin-right: 0; /* Annuler toute marge négative qui causerait le débordement */
    }
}


/* ==========================================================
   STYLES SPÉCIFIQUES AU MENU SMARTPHONE (< 1024px)
   ========================================================== */

@media (max-width: 1023px) { 
    
    /* 1. La ligne active (le fond jaune) */
    .menu-links .nav-item:has(.is-active),
    .menu-links .nav-item.is-active 
    {
        /* 🚨 AJOUT DE L'ESTHÉTIQUE MOBILE */
        background-color: var(--color-primary, #F4E70C); 
        border-radius: 8px; /* Bords arrondis */
        margin-bottom: 5px; /* Marge entre les lignes */
        width: 100%; /* S'assurer qu'il prend toute la largeur du menu mobile */
    }

    /* 2. Style du lien (<a>) pour la taille de police et le wrapping */
    .menu-links .nav-item .nav-link {
        display: block; 
        white-space: normal; /* Permet au texte de revenir à la ligne */
        padding: 12px 20px; /* Réduire légèrement le padding vertical pour le mobile */
        box-sizing: border-box; 
        
        /* 🚨 AJOUT DE LA TAILLE DE POLICE RÉDUITE */
        font-size: 1.6rem; /* Taille plus petite pour le mobile */
        
        /* Annuler la couleur par défaut si elle est appliquée ailleurs */
        /*color: initial; */
    }
    
} /* Fin de la Media Query */

/* Cache la modale d'actualité pour que seul FancyBox puisse l'ouvrir */
#news-detail-modal {
    display: none; 
	background: transparent;
}

/* Cache votre bouton de fermeture manuel, FancyBox en fournit un ! */
.news-close-btn {
    display: none;
}

/* Style pour la légende (description) dans FancyBox */
.fancybox-caption {
    /* 🚨 Remplacez #VOTRE_CODE_JAUNE par le code exact de votre site */
    color: var(--color-primary); !important; 
    
    /* Optionnel : S'assurer que le texte est bien visible sur le fond noir de FancyBox */
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); 
    
    /* Optionnel : Si le texte est très petit, l'agrandir */
    /* font-size: 1.1em !important; */
}

/* ⚠️ Règle de secours : Si le texte n'est pas directement dans fancybox-caption */
.fancybox-caption > div {
    color: var(--color-primary); !important;
}




/* Container de la navigation */
.nav-scroll-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    overflow: hidden;
}

/* On s'assure que la liste défile toujours */
.filters-container {
    display: flex;
    overflow-x: auto;
    white-space: nowrap;
    scroll-behavior: smooth;
    scrollbar-width: none; /* Cache la barre sur Firefox */
    -ms-overflow-style: none;  /* Cache la barre sur IE/Edge */
    /*padding: 10px 20px;*/ /* Un peu d'air pour les boutons */
}

.filters-container::-webkit-scrollbar {
    display: none; /* Cache la barre sur Chrome/Safari */
}

/* Style des flèches */
.scroll-arrow {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    cursor: pointer;
    color: white;
    font-size: 18px;
    opacity: 0; /* Cachées par défaut */
    transition: opacity 0.3s ease;
    pointer-events: none; /* Ne bloque pas le clic si invisible */
}

.scroll-arrow.visible {
    opacity: 1;
    pointer-events: auto;
}

/* Dégradé pour la flèche gauche */
.left-arrow {
    left: 0;
    background: linear-gradient(to right, rgba(0,0,0,0.8) 0%, transparent 100%);
}

/* Dégradé pour la flèche droite */
.right-arrow {
    right: 0;
    background: linear-gradient(to left, rgba(0,0,0,0.8) 0%, transparent 100%);
}

/* Sur tablette/mobile, on force l'affichage de la flèche droite au chargement si besoin */
@media (max-width: 1024px) {
    /* Les flèches ne sont utiles que si ça scrolle */
}

/* 3. Sur Desktop (quand il y a de la place), on centre */
@media (min-width: 1024px) {
    .nav-scroll-wrapper {
        justify-content: center;
    }
}

/* 1. Style de base du bouton Tickets (Toujours visible) */
.nav-link.cta-tickets {
    border: 2px solid #FFD700 !important; /* Bordure dorée au lieu d'un fond plein */
    color: #FFD700 !important;
    border-radius: 50px; /* Forme pilule/arrondie pour dire "clique-moi" */
    padding: 6px 15px !important;
    font-weight: bold;
    transition: all 0.3s ease;
    text-transform: uppercase;
    /*margin-left: 10px;*/ /* Un peu d'espace pour le détacher */
}

/* 2. Effet au survol du bouton Tickets */
.nav-link.cta-tickets:hover {
    background-color: #FFD700;
    color: #000000 !important;
    box-shadow: 0 0 10px rgba(255, 215, 0, 0.5); /* Petit halo lumineux */
}

/* 3. On garde ton style "is-active" pour les autres pages (onglet plein) */
#full-screen-menu .menu-links .nav-link.is-active, 
.header-content .nav-link.is-active {
    background-color: #FFD700;
    color: #000000 !important;
    border-radius: 4px;
    padding: 8px 12px;
}