/* ==========================================================================
   CHARTE GRAPHIQUE & CONFIGURATION GENERALE
   ========================================================================== */
:root {
    --primary-blue: #010c5e;
    --accent-yellow: #fadc00;
    --brand-red: #fe0008;
    --pure-white: #ffffff;
    --bg-gradient-ia: linear-gradient(135deg, #010c5e 0%, #00052c 50%, #081470 100%);
    --light-gradient: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    
    /* Animation Tokens */
    --transition-fast: all 0.25s ease-in-out;
    --transition-smooth: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* Animation native d'apparition (Fade In) */
@keyframes fadeInPage {
    from {
        opacity: 0;
        transform: translateY(15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: #333333;
    background-color: #fafafa;
    overflow-x: hidden;
    /* Applique un fade-in subtil au chargement de chaque page */
    animation: fadeInPage 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) forwards;
}

/* ==========================================================================
   HEADER & NAVIGATION (Transitions fluides sur les liens)
   ========================================================================== */
.navbar-custom {
    background-color: var(--primary-blue);
    border-bottom: 3px solid var(--accent-yellow);
    padding: 12px 0;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}

.navbar-brand img {
    max-height: 50px;
    transition: var(--transition-smooth);
}

.navbar-brand img:hover {
    transform: scale(1.08) rotate(2deg);
}

.nav-link-custom {
    color: var(--pure-white) !important;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.85rem;
    letter-spacing: 0.5px;
    padding: 8px 12px !important;
    position: relative;
    transition: var(--transition-fast);
}

/* Effet de fondu / feedback au survol des liens du menu */
.nav-link-custom:hover, 
.nav-link-custom.active {
    color: var(--accent-yellow) !important;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 4px;
}

/* Bouton d'action "Faire un don" avec pulsation au survol */
.btn-nav-action {
    background-color: var(--brand-red);
    color: var(--pure-white) !important;
    font-weight: bold;
    border-radius: 30px;
    padding: 8px 20px !important;
    box-shadow: 0 4px 10px rgba(254, 0, 8, 0.3);
    transition: var(--transition-smooth);
    text-transform: uppercase;
    font-size: 0.85rem;
}

.btn-nav-action:hover {
    background-color: #d10006;
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(254, 0, 8, 0.5);
    color: var(--pure-white) !important;
}

/* ==========================================================================
   COMPOSANTS RÉUTILISABLES, CARTES & SECTIONS (Effets d'affichage)
   ========================================================================== */
.section-padding {
    padding: 80px 0;
}

.section-title {
    color: var(--primary-blue);
    font-weight: 700;
    position: relative;
    padding-bottom: 15px;
    margin-bottom: 30px;
}

.section-title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 60px;
    height: 4px;
    background-color: var(--brand-red);
    border-radius: 2px;
    transition: var(--transition-smooth);
}

/* Animation de la ligne de titre quand on survole la section parent */
.container:hover .section-title::after {
    width: 100px;
    background-color: var(--accent-yellow);
}

.page-banner {
    background: var(--bg-gradient-ia);
    position: relative;
    padding: 50px 0;
    color: var(--pure-white);
    border-bottom: 4px solid var(--brand-red);
}

/* Effet de lévitation et fondu d'ombre sur TOUTES les cartes (Valeurs, Vision, Mission) */
.bg-white.p-4.rounded-4,
.bg-white.p-4.rounded-3,
.p-4.text-center.bg-white {
    transition: var(--transition-smooth);
}

.bg-white.p-4.rounded-4:hover,
.bg-white.p-4.rounded-3:hover,
.p-4.text-center.bg-white:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1) !important;
    border-top-color: var(--accent-yellow) !important; /* Alterne dynamiquement la couleur du haut */
}

/* Icones à l'intérieur des cartes : effet de rotation/pop */
.bg-white.p-4:hover i,
.p-4.text-center:hover i {
    transform: scale(1.15);
    transition: var(--transition-smooth);
}

/* ==========================================================================
   PAGE ÉLÉMENTS SPÉCIFIQUES & VISUELS
   ========================================================================== */
.style-highlight {
    border-left: 5px solid var(--accent-yellow); 
    background: rgba(250, 220, 0, 0.05); 
    font-style: italic; 
    color: var(--primary-blue); 
    font-weight: 600;
    transition: var(--transition-fast);
}
.style-highlight:hover {
    background: rgba(250, 220, 0, 0.1); 
    padding-left: 20px !important;
}

.ia-visual-box {
    background: var(--bg-gradient-ia); 
    border: 2px solid rgba(250,220,0,0.2); 
    min-height: 380px; 
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
    align-items: center;
    transition: var(--transition-smooth);
}

.ia-visual-box:hover {
    box-shadow: 0 20px 40px rgba(1, 12, 94, 0.4) !important;
    border-color: var(--accent-yellow);
}

.ia-visual-box .logo-circle {
    width: 110px; 
    height: 110px; 
    border: 4px solid var(--brand-red);
    transition: var(--transition-smooth);
}

.ia-visual-box:hover .logo-circle {
    transform: scale(1.1) rotate(-5deg);
    border-color: var(--accent-yellow);
}

/* ==========================================================================
   FOOTER (Transitions fluides des liens et boutons sociaux)
   ========================================================================== */
.footer-custom {
    background-color: #000420; 
    color: rgba(255,255,255,0.7); 
    padding: 70px 0 20px 0; 
    border-top: 4px solid var(--accent-yellow);
}

.footer-title-line {
    position: absolute; 
    left: 0; 
    bottom: 0; 
    width: 30px; 
    height: 2px; 
    background-color: var(--brand-red);
    transition: var(--transition-fast);
}

/* Quand on survole un bloc de liens du footer */
.col-lg-2:hover .footer-title-line,
.col-lg-4:hover .footer-title-line {
    width: 50px; 
    background-color: var(--accent-yellow);
}

/* Boutons réseaux sociaux : Effet de fondu inversé (Fade In / Out coloré) */
.footer-custom .btn-outline-light {
    transition: var(--transition-fast);
    border-color: rgba(255,255,255,0.2);
}

.footer-custom .btn-outline-light:hover {
    background-color: var(--accent-yellow);
    color: var(--primary-blue) !important;
    border-color: var(--accent-yellow);
    transform: translateY(-3px);
}
.hover-link-color {
    transition: var(--transition-fast);
}
.hover-link-color:hover {
    color: var(--primary-blue) !important;
    text-decoration: underline !important;
}