/* --- 1. BASE & RESET --- */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background-color: #f6f3ed; font-family: 'Georgia', serif; color: #1a1a1a; line-height: 1.6; overflow-x: hidden; }

/* --- 2. HEADER, TITRE & EXPLORER --- */
header.bandeau-haut { background: #fff; border-bottom: 1px solid #ddd; padding: 20px 0; }
.header-main-row { display: flex; justify-content: space-between; align-items: center; max-width: 1400px; margin: 0 auto; padding: 0 40px; }
.logo-space { width: 250px; }
.logo-space img { max-height: 80px; }

.titre-site-central { flex: 1; text-align: center; }
.nom-site-principal { font-family: 'Cinzel', serif !important; color: #cc0000 !important; font-size: 3.2rem !important; letter-spacing: 12px !important; text-transform: uppercase !important; display: block; margin-bottom: 5px; }
.slogan-site { text-transform: uppercase; letter-spacing: 5px; font-size: 0.85rem; font-weight: bold; color: #3320dd; }

/* --- LE BOUTON EXPLORER (VERSION PRIORITAIRE) --- */
.explorer-space { 
    width: 250px !important; 
    text-align: right !important; 
    display: block !important;
}

/* On cible spécifiquement le lien à l'intérieur pour écraser le bleu souligné */
.explorer-space a.btn-explorer {
    display: inline-block !important;
    padding: 12px 25px !important;
    border: 2px solid #000 !important; /* Bordure un peu plus épaisse */
    color: #000 !important;
    text-decoration: none !important; /* Enlève le souligné bleu */
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.8rem !important;
    font-weight: bold !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    background-color: transparent !important;
    transition: all 0.3s ease-in-out !important;
}

/* Le survol qui DOIT fonctionner */
.explorer-space a.btn-explorer:hover {
    background-color: #000 !important;
    color: #fff !important;
    text-decoration: none !important;
}

/* --- 3. NAVIGATION NOIRE --- */
nav { background: #111 !important; position: sticky; top: 0; z-index: 1000; border-bottom: 3px solid #cc0000; }
nav ul { display: flex; justify-content: center; list-style: none; margin: 0; padding: 0; }
nav li { position: relative; list-style: none; }
nav li a { display: block; padding: 20px 25px; color: #fff !important; text-decoration: none; font-family: 'Montserrat', sans-serif; font-weight: bold; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 1px; }
nav li:hover > a { background: #cc0000 !important; }
.dropdown { display: none; position: absolute; top: 100%; left: 0; background: #fff; min-width: 250px; box-shadow: 0 10px 30px rgba(0,0,0,0.15); border-top: 3px solid #cc0000; }
nav li:hover .dropdown { display: block; }
.dropdown a { color: #111 !important; padding: 15px 20px; font-family: 'Georgia', serif; text-transform: none; font-weight: normal; }

/* --- 4. BANDEAU DÉFILANT (TICKER) --- */
.ticker-container { background: #cc0000; overflow: hidden; white-space: nowrap; padding: 12px 0; }
.ticker-scroll { display: inline-block; animation: scroll 25s linear infinite; padding-left: 100%; }
.ticker-scroll a { color: #fff !important; text-decoration: none; font-family: 'Montserrat', sans-serif; font-size: 0.85rem; font-weight: bold; text-transform: uppercase; letter-spacing: 2px; }

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

/* --- 5. GRILLES & ARTICLES --- */
.container { max-width: 1400px; margin: 50px auto; padding: 0 40px; display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 40px; }
.article-card { position: relative; background: #fff; padding: 40px; border-top: 5px solid #cc0000; box-shadow: 0 10px 30px rgba(0,0,0,0.05); transition: 0.3s; }
.article-card:hover { transform: translateY(-10px); }
.full-link { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 10; cursor: pointer; }
h2 { font-family: 'Cinzel', serif; font-size: 1.6rem; margin-bottom: 20px; color: #000; }
.faux-button { color: #cc0000; font-weight: bold; text-transform: uppercase; font-size: 0.75rem; border-bottom: 2px solid #cc0000; display: inline-block; margin-top: 25px; }

/* --- 6. CORPS DE TEXTE & IMAGES --- */
.corps-article-justifie { font-family: 'Georgia', serif; font-size: 1.2rem; line-height: 1.85; text-align: justify; color: #333; }
.corps-article-justifie p { margin-bottom: 1.5em; }
.corps-article-justifie img { max-width: 100% !important; height: auto !important; display: block; margin: 30px auto; }

/* --- 7. PAGINATION --- */
.pagination { display: flex !important; justify-content: center !important; width: 100% !important; margin: 60px 0 !important; padding: 0 !important; list-style: none !important; background: transparent !important; }
.pagination ul, .pagination li { list-style: none !important; background: none !important; display: inline-flex !important; margin: 0 !important; padding: 0 !important; }
.pagination a, .pagination span, .pagination strong { 
    display: inline-block !important; min-width: 42px; height: 42px; line-height: 40px; text-align: center; 
    margin: 0 5px; border: 1px solid #ddd !important; background: #fff !important; color: #333 !important; 
    text-decoration: none !important; font-family: 'Montserrat', sans-serif; font-weight: bold; 
}
.pagination strong, .pagination .on { background-color: #cc0000 !important; color: #fff !important; border-color: #cc0000 !important; }

/* --- 8. UTILITAIRES & RETOUR --- */
.wrapper-retour { width: 100%; text-align: center; margin: 80px auto; clear: both; }
.btn-retour { display: inline-block; padding: 15px 35px; border: 1px solid #000; color: #000; text-decoration: none; font-family: 'Montserrat', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: 3px; transition: 0.3s; }
.btn-retour:hover { background: #000; color: #fff; }
.centrer { text-align: center !important; display: block; width: 100%; }
.interligne-serré { line-height: 1.4 !important; }

/* --- 9. FOOTER --- */
footer { background: #111; color: #888; padding: 60px 0; text-align: center; font-size: 0.8rem; margin-top: 80px; }
footer a { color: #fff; text-decoration: none; }

/* --- FORMULAIRE NEWSLETTER FOOTER --- */
.footer-news-input {
    background-color: #111;
    border: 1px solid #333;
    color: #fff;
    padding: 10px 12px;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.8rem;
    outline: none;
    transition: all 0.3s ease;
    width: 100%;
}

.footer-news-input:focus {
    border-color: #fff;
    background-color: #1a1a1a;
}

.footer-news-btn {
    background-color: #fff !important;
    color: #000 !important;
    border: 2px solid #fff !important;
    padding: 10px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.75rem !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    cursor: pointer !important;
    transition: all 0.3s ease-in-out !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100%;
}

.footer-news-btn:hover {
    background-color: transparent !important;
    color: #fff !important;
}

/* --- 10. NETTOYAGE ABSOLU ET INTÉGRAL DES TEXTES DE FORMULAIRES --- */

/* On cible de force le bloc de texte généré par SPIP pour le faire disparaître */
.page-contact-revue label em,
.page-contact-revue label span,
.formulaire_spip .obligatoire em,
.formulaire_spip label [title="Obligatoire"] {
    display: none !important;
    visibility: hidden !important;
    font-size: 0 !important;
}

/* On injecte l'astérisque rouge et net après le label de contact */
.page-contact-revue .obligatoire label::after {
    content: " *";
    color: #cc0000 !important;
    font-weight: bold !important;
    font-size: 1.2rem !important;
}