/* ==========================================================================
   1. VARIABLES GLOBALES
   ========================================================================== */
:root {
    --primary-color: #9B1C22; 
    --secondary-color: #2b2b2b; 
    --text-color: #4a4a4a; 
    --bg-light: #fcfcfc;
}

/* ==========================================================================
   2. BASE & TYPOGRAPHIE
   ========================================================================== */
html {
    scroll-behavior: smooth;
}

html, body {
    max-width: 100%;
    overflow-x: hidden;
}

body {
    font-family: 'Roboto', sans-serif;
    color: var(--text-color);
    background-color: #ffffff;
    padding-top: 115px; /* Compense la hauteur de la navbar fixe */
}

/* Titres - Police Roboto Slab (Épaisse et Serif) */
h1, h2, h3, h4, h5, h6, .section-title { 
    font-family: 'Roboto Slab', serif; 
    font-weight: 700;
    color: var(--secondary-color);
}

/* Textes et Paragraphes - Police Roboto Light (Fine et élégante) */
p, .about-text {
    font-family: 'Roboto', sans-serif;
    font-weight: 300; /* Le secret pour le texte fin ! */
    line-height: 1.8; 
    font-size: 1.05rem; 
    color: var(--text-color);
}

/* Force la typo fine pour les textes générés par le CMS (Éditeur Word) */
.ql-editor p {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    line-height: 1.8;
}

/* ==========================================================================
   3. NAVIGATION (NAVBAR)
   ========================================================================== */
.navbar-custom { 
    background-color: rgba(255, 255, 255, 0.95); 
    backdrop-filter: blur(10px); 
    box-shadow: 0 2px 15px rgba(0,0,0,0.05); 
    padding: 8px 0; 
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), background-color 0.3s ease; 
    z-index: 1050;
}

.navbar-hidden { 
    transform: translateY(-100%); 
}

.navbar-brand { 
    width: 55%; 
    margin-right: auto; 
}

.navbar-brand img { 
    max-height: 75px; 
    width: auto; 
    transition: transform 0.3s ease; 
}

.navbar-brand:hover img { 
    transform: scale(1.02); 
}

#navbar_slogan { 
    line-height: 1.2; 
    color: var(--secondary-color) !important; 
}

/* Liens du menu */
.navbar-nav .nav-link { 
    font-weight: 600; 
    color: var(--secondary-color); 
    text-transform: uppercase; 
    font-size: 13px; 
    letter-spacing: 0.5px; 
    padding: 10px 15px !important; 
    transition: color 0.3s ease; 
    position: relative; 
}

/* Soulignement animé au survol */
.navbar-nav .nav-link::after {
    content: ''; 
    position: absolute; 
    width: 0; 
    height: 2px; 
    bottom: 5px; 
    left: 50%;
    background-color: var(--primary-color); 
    transition: all 0.3s ease; 
    transform: translateX(-50%);
}

.navbar-nav .nav-link:hover { color: var(--primary-color) !important; }
.navbar-nav .nav-link:hover::after, 
.navbar-nav .nav-link.active-link::after { width: 70%; }
.navbar-nav .nav-link.active-link { color: var(--primary-color) !important; background: transparent !important; }

/* ==========================================================================
   4. PIED DE PAGE (FOOTER)
   ========================================================================== */
.footer { 
    background-color: #1a1a1a; 
    color: #a0a0a0; 
    padding: 70px 0 30px; 
}

.footer h4 { 
    color: white; 
    font-size: 18px; 
    margin-bottom: 25px; 
    letter-spacing: 1px; 
    text-transform: uppercase; 
}

.footer-info li { 
    margin-bottom: 18px; 
    display: flex; 
    align-items: flex-start; 
    line-height: 1.6; 
}

.footer-info i { 
    color: var(--primary-color); 
    font-size: 20px; 
    margin-right: 15px; 
    margin-top: 2px; 
}

/* Icônes Réseaux Sociaux */
.social-links a { 
    display: inline-flex; 
    align-items: center; 
    justify-content: center; 
    width: 40px; 
    height: 40px; 
    background: rgba(255,255,255,0.05); 
    border-radius: 50%; 
    color: white; 
    transition: all 0.3s; 
    margin-right: 10px; 
}

.social-links a:hover { 
    background: var(--primary-color); 
    transform: translateY(-3px); 
}

.copyright { 
    border-top: 1px solid rgba(255,255,255,0.1); 
    padding-top: 25px; 
    margin-top: 50px; 
    text-align: center; 
    font-size: 13px; 
}

/* ==========================================================================
   5. RESPONSIVE (MOBILES ET TABLETTES)
   ========================================================================== */
@media (max-width: 991px) {
    .navbar-brand { width: 75%; }
    .navbar-brand img { max-height: 60px !important; width: 100%; object-fit: contain; object-position: left center; }
    .navbar-custom .container-fluid { display: flex !important; flex-wrap: nowrap !important; align-items: center; justify-content: space-between; }
    
    .navbar-toggler { border: none !important; padding: 5px 0 5px 15px !important; margin-left: auto; }
    .navbar-toggler:focus { box-shadow: none !important; outline: none !important; }
    
    .navbar-collapse { 
        background: rgba(255, 255, 255, 0.98); 
        padding: 15px; 
        border-radius: 12px; 
        box-shadow: 0 10px 30px rgba(0,0,0,0.1); 
        margin-top: 15px; 
        position: absolute; 
        top: 100%; 
        left: 10px; 
        right: 10px; 
        z-index: 1000; 
    }
    
    .navbar-nav .nav-link::after { bottom: 0; }
}