/* Applique la police à tout le site */
/* un autre style pour la police */
/*
body {
    font-family: 'Manrope', sans-serif;
}
*/
/*
body {
    font-family: 'Lora', serif;
    color: #333;
    line-height: 1.6;
}
*/
body {
    /* Galvji est le nom de la famille, Bold est le poids (700) */
    font-family: 'Galvji', 'Montserrat', sans-serif;
    color: #333;
    line-height: 1.6;
    /*font-weight: 700;*/ /* Pour activer l'aspect Bold */
}
/* Vous pouvez aussi varier les graisses pour les titres */
h1, h2, h3, .navbar-brand {
    font-weight: 700; /* Plus gras pour les titres */
    letter-spacing: -0.5px;
}
/*---------------navbar Professionnelle-----------*/
/*---------------navbar Professionnelle-----------*/

/*--------------- NAVBAR PROFESSIONNELLE -----------*/

/* --- 1. Base Navbar --- */
.navbar {
    height: 75px;
    padding: 0 !important;
    background-color: #fff !important;
    border-bottom: 1px solid #f0f0f0;
}

/* Container */
.navbar > .container-fluid {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
}

/* --- 2. Brand (logos + texte) --- */
.navbar-brand {
    display: flex !important;
    align-items: center !important;
    flex: 1;
    margin: 0 !important;
    min-width: 0;
    gap: 6px; /* espace entre éléments */
}

/* Logo principal */
.brand-logo {
    height: 70px;
    width: auto;
    flex-shrink: 0;
}

/* Logos secondaires UNIFIÉS */
.logo-custom-size {
    height: 50px;
    width: auto;
    object-fit: contain;
    flex-shrink: 0;
}

/* --- 3. Texte --- */
.brand-text-top,
.brand-text-bottom {
    white-space: normal; /* IMPORTANT (fix mobile) */
    word-break: break-word;
}

/* Ligne 1 */
.brand-text-top {
    font-size: 0.7rem;
    color: #6c757d;
    margin-bottom: 2px; /* espace entre les 2 lignes */
}

/* Ligne 2 */
.brand-text-bottom {
    font-size: 0.9rem;
    color: #0F6A2E !important;
    font-weight: 700;
}

/* --- 4. Menu Desktop --- */
.navbar-nav .nav-link {
    font-weight: 600;
    padding: 0 10px !important;
    line-height: 75px;
    white-space: nowrap;
}

/* --- 5. Styles des liens --- */
.nav-link-custom {
    color: #555555 !important;
    font-weight: 600;
    transition: all 0.3s ease-in-out;
    position: relative;
    display: inline-block;
}

.nav-link-custom:hover {
    color: #7ED957 !important;
}

.nav-link-custom.active-link {
    color: #0F6A2E !important;
    font-weight: 700 !important;
}

/* Trait actif desktop */
@media (min-width: 1200px) {
    .nav-link-custom.active-link::after {
        content: "";
        position: absolute;
        bottom: 10px;
        left: 10px;
        right: 10px;
        height: 3px;
        background-color: #0F6A2E;
        border-radius: 2px;
    }
}

/* --- 6. TABLETTE / MOBILE --- */
@media (max-width: 1199px) {

    .navbar {
        height: 70px;
    }

    .brand-logo {
        height: 60px !important;
    }

    .logo-custom-size {
        height: 40px;
    }

    .brand-text-top {
        font-size: 0.6rem;
        line-height: 1.1;
    }

    .brand-text-bottom {
        font-size: 0.75rem;
        line-height: 1.1;
    }

    /* Bouton burger */
    .navbar-toggler {
        padding: 0.25rem 0.5rem;
        margin-left: 5px;
    }

    /* Menu déroulant mobile */
    .navbar-collapse {
        position: absolute;
        top: 70px;
        left: 0;
        right: 0;
        background: white;
        z-index: 1000;
        padding: 15px;
        box-shadow: 0 10px 15px rgba(0,0,0,0.1);
        border-top: 1px solid #eee;
        text-align: center;
    }

    .navbar-nav {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .navbar-nav .nav-link {
        line-height: normal !important;
        padding: 15px 0 !important;
        width: 100%;
    }

    /* Actif mobile */
    .nav-link-custom.active-link {
        border-left: 4px solid #0F6A2E;
        background-color: rgba(15, 106, 46, 0.05);
    }

    .nav-link-custom.active-link::after {
        display: none;
    }

    /* Centrage profil + langue */
    .nav-item .dropdown-toggle,
    .nav-item .d-flex {
        justify-content: center !important;
    }
}

/* --- 7. PETITS MOBILES --- */
@media (max-width: 576px) {
    .brand-text-top {
        font-size: 0.55rem;
    }

    .brand-text-bottom {
        font-size: 0.7rem;
    }
}

/* --- 8. TRÈS PETITS ÉCRANS --- */
@media (max-width: 380px) {

    .brand-logo {
        height: 60px !important;
    }

    .logo-custom-size {
        height: 32px;
    }

    .brand-text-top {
        display: none; /* cache ligne longue */
    }

    .brand-text-bottom {
        font-size: 0.65rem;
    }
}
@media (max-width: 400px) {
    .navbar-brand {
        gap: 4px !important; /* On serre les éléments au maximum */
    }

    .brand-logo,
    .logo-custom-size {
        height: 60px !important; /* Réduction pour gagner de la place */
    }

    .brand-text-top {
        font-size: 0.55rem !important;
        display: -webkit-box;
        -webkit-line-clamp: 2; /* Max 2 lignes */
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .brand-text-bottom {
        font-size: 0.68rem !important;
        margin-top: 1px !important;
    }
}

/* --- 7. ÉCRANS ULTRA ÉTROITS (Sous 330px) --- */
@media (max-width: 330px) {
    .brand-text-top { display: none; } /* On cache la petite ligne pour sauver le titre principal */
    .brand-logo { height: 60px !important; }
    .logo-custom-size { height: 35px !important; }
}
/*--------------------style pour le logo du Rendfort-------------------------------*/
/* --- Taille par défaut (Desktop / Ordinateur) --- */
.logo-custom-size {
    height: 65px !important; /* Taille sur grand écran */
    width: auto;
    transition: all 0.3s ease; /* Pour une transition fluide lors du redimensionnement */
}

/* --- Taille pour Mobile (Écrans inférieurs à 768px) --- */
@media (max-width: 767px) {
    .logo-custom-size {
        height: 45px !important; /* Taille sur smartphone */
    }
}

/* --- Optionnel : Taille pour Tablette (Entre 768px et 1199px) --- */
@media (min-width: 768px) and (max-width: 1199px) {
    .logo-custom-size {
        height: 50px !important; /* Taille intermédiaire */
    }
}
/*-------------------------------------------------*/
/* --- Style de base pour les liens (Desktop) --- */
.nav-link-custom {
    color: #555555 !important;
    font-weight: 600;
    transition: all 0.3s ease-in-out !important;
    position: relative;
    display: inline-block; /* Important pour que le trait ne fasse que la taille du texte */
}

/* --- État AU SURVOL (Hover) --- */
.nav-link-custom:hover {
    color: #7ED957 !important;
}

/* --- État ACTIF --- */
.nav-link-custom.active-link {
    color: #0F6A2E !important;
    font-weight: 700 !important;
}

/* --- Le trait sous le menu (Uniquement sur Desktop) --- */
@media (min-width: 1200px) {
    .nav-link-custom.active-link::after {
        content: "";
        position: absolute;
        bottom: 10px; /* Ajusté pour ne pas être trop bas */
        left: 12px;
        right: 12px;
        height: 3px;
        background-color: #0F6A2E;
        border-radius: 2px;
    }
    .brand-logo {
        height: 75px !important; /* Réduit de 90px à 70px */
    }
    .logo-custom-size {
        height: 50px !important; /* Réduit de 65px à 50px */
    }
    .brand-text-top { font-size: 0.65rem; }
    .brand-text-bottom { font-size: 0.85rem; }

    .navbar-nav .nav-link {
        padding: 0 8px !important; /* Réduit l'espace entre les mots du menu */
        font-size: 0.95rem;
    }
}
}

/* --- AJUSTEMENTS POUR MOBILE (Sous 1200px) --- */
@media (max-width: 1199px) {
    .navbar-collapse {
        text-align: center; /* Centre tout le contenu */
        padding-bottom: 20px;
    }

    .navbar-nav {
        display: flex;
        flex-direction: column;
        align-items: center; /* Aligne les liens au centre proprement */
    }

    .nav-link-custom {
        line-height: normal !important;
        padding: 15px 0 !important; /* Donne de l'espace entre les lignes */
        width: 100%; /* Permet de cliquer sur toute la ligne */
    }

    /* On remplace le trait horizontal par une petite bordure à gauche ou rien du tout */
    .nav-link-custom.active-link::after {
        display: none; /* On cache le trait qui traverse l'écran sur l'image */
    }

    /* Optionnel : une petite bordure à gauche pour marquer l'élément actif en mobile */
    .nav-link-custom.active-link {
        border-left: 4px solid #0F6A2E;
        background-color: rgba(15, 106, 46, 0.05); /* Un fond très léger */
    }

    /* Alignement du profil et de la langue en mobile */
    .nav-item .dropdown-toggle,
    .nav-item .d-flex {
        justify-content: center !important;
    }
}
/*-----------------------------------------------*/
/*--------------------Fin du style pour le logo du Rendfort-------------------------------*/
/*------------accueil------------*/

/* --- SECTION HERO (Le conteneur principal) --- */
.hero {
  width: 100%;
  position: relative;
  background-color: #000;
  overflow: hidden;

  /* HAUTEUR SUR MOBILE : 60% de l'écran ou minimum 400px */
  height: 50vh;
  min-height: 300px;
}

/* --- LES IMAGES DU CAROUSEL --- */
.hero img {
  width: 100%;
  /* Ces deux lignes sont cruciales pour que l'image remplisse la zone sans s'écraser */
  height: 100%;
  object-fit: cover;
  filter: brightness(60%);
}

/* --- AJUSTEMENT POUR ORDINATEUR (Desktop) --- */
@media (min-width: 992px) {
  .hero {
    /* HAUTEUR SUR ORDINATEUR : 85% de l'écran ou minimum 600px */
    height: 50vh;
    min-height: 370px;
  }
}

/* --- TEXTE ET CENTRAGE --- */
.hero .carousel-item {
  height: 100%; /* Important pour que l'item prenne toute la place */
}

.hero .carousel-caption {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* Centre parfaitement au milieu */
  text-align: center;
  z-index: 2;
  width: 90%; /* Prend presque toute la largeur sur mobile */
  max-width: 800px; /* Limite la largeur sur grand écran */
}

.hero h2 {
  font-size: calc(1.8rem + 1.5vw); /* Taille fluide : s'adapte à l'écran */
  font-weight: 700;
  color: #fff;
  margin-bottom: 20px;
}

.hero p {
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.9);
}

/* --- OVERLAY (Le voile noir) --- */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4); /* Voile noir simple et efficace */
  z-index: 1;
}

/* --- ANIMATIONS (On garde les tiennes) --- */
@keyframes slideDownText {
  from { opacity: 0; transform: translateY(-30px); }
  to { opacity: 1; transform: translateY(0); }
}

.carousel-item.active h2 { animation: slideDownText 0.8s ease-out forwards; }
.carousel-item.active p { animation: slideDownText 0.8s ease-out forwards; animation-delay: 0.3s; opacity: 0; }

/* --- ANIMATIONS DU TEXTE --- */

/* On définit le mouvement "Du haut vers le centre" */
@keyframes slideDownText {
  from {
    opacity: 0;
    transform: translateY(-50px); /* Commence 50px plus haut */
  }
  to {
    opacity: 1;
    transform: translateY(0); /* Revient à sa place */
  }
}

/* On applique l'animation quand la slide devient active */
.carousel-item.active h2 {
  animation: slideDownText 0.8s ease-out forwards;
}

.carousel-item.active p {
  animation: slideDownText 0.8s ease-out forwards;
  animation-delay: 0.3s; /* Le texte arrive un poil après le titre */
  opacity: 0; /* Caché au début pour éviter un saut visuel */
}

/* Contrôles & Indicateurs */
.hero .carousel-control-prev,
.hero .carousel-control-next,
.hero .carousel-indicators {
  z-index: 3;
}
@media (max-width: 991px) {
    /* --- 1. Flèches Précédent/Suivant --- */
    .hero .carousel-control-prev-icon,
    .hero .carousel-control-next-icon {
        width: 2.5rem; /* Plus grand pour le tactile */
        height: 2.5rem;
        /* On force un blanc pur sur l'icône via un filtre */
        filter: brightness(0) invert(1) drop-shadow(0px 0px 8px rgba(0,0,0,0.8));
        background-size: 100%;
    }

    /* Optionnel : Un cercle subtil derrière pour garantir la visibilité */
    .hero .carousel-control-prev,
    .hero .carousel-control-next {
        opacity: 0.5 !important; /* Rend les boutons presque opaques par défaut */
    }

    /* --- 2. Indicateurs (Traits en bas) --- */
    .hero .carousel-indicators [button] {
        width: 45px;
        height: 8px;
        background-color: #ffffff !important;
        /* Ombre pour détacher le blanc du fond */
        box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
        opacity: 0.6;
        border: none;
        margin-bottom: 30px; /* Remonte les traits pour éviter le bas de l'écran */
    }

    /* L'indicateur de la slide actuelle */
    .hero .carousel-indicators .active {
        opacity: 1 !important;
        background-color: #ffffff !important;
        transform: scaleY(1.2); /* Rend le trait actif un peu plus épais */
    }
}
/*------------fin du style accueil------------*/
/*--------debut du Footer-----------*/
   :root {
            --accent-color: #5fcf80;
        }

        .footer {
            color: #444444;
            font-size: 14px;
            background: #f9f9f9;
            padding: 60px 0 30px 0;
        }

        .footer .footer-top {
            background: white;
            padding-bottom: 30px;
        }

        .footer h4 {
            font-size: 16px;
            font-weight: bold;
            position: relative;
            padding-bottom: 12px;
            margin-bottom: 20px;
        }

        .footer .footer-links ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        .footer .footer-links ul li {
            padding: 10px 0;
            display: flex;
            align-items: center;
        }

        .footer .footer-links ul a {
            color: #777777;
            text-decoration: none;
            transition: 0.3s;
        }

        .footer .footer-links ul a:hover {
            color: #2FAE1C;
        }

        .social-links a {
            font-size: 18px;
            display: inline-block;
            background: white;
            color: #777777;
            line-height: 1;
            padding: 8px 0;
            margin-right: 4px;
            border-radius: 50%;
            text-align: center;
            width: 36px;
            height: 36px;
            border: 1px solid #ddd;
            transition: 0.3s;
        }

        .social-links a:hover {
            color: #2FAE1C;
            border-color: var(--accent-color);
        }

        /* Newsletter Styling */
        .footer-newsletter form {
            margin-top: 30px;
            background: #fff;
            padding: 6px 10px;
            position: relative;
            border-radius: 50px;
            border: 1px solid #e1e1e1;
        }

        .footer-newsletter form input[type="email"] {
            border: 0;
            padding: 4px 8px;
            width: calc(100% - 100px);
            outline: none;
        }

        .footer-newsletter form input[type="submit"] {
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            border: 0;
            background: none;
            font-size: 16px;
            padding: 0 20px;
            background:  #2FAE1C !important;
            color: #fff;
            transition: 0.3s;
            border-radius: 50px;
        }

        .footer-bottom {
            background: #eee;
            padding: 30px 0;
            color: #444;
        }

        .back-to-top {
            position: fixed;
            right: 15px;
            bottom: 15px;
            background: var(--accent-color);
            width: 40px;
            height: 40px;
            border-radius: 4px;
            color: white;
            display: flex;
            align-items: center;
            justify-content: center;
            text-decoration: none;
        }
        /* Style du logo dans le footer */
        .footer-logo {
            height: 60px; /* Taille optimale pour l'équilibre visuel */
            width: auto;
            object-fit: contain;
            transition: transform 0.3s;
        }

        /* On s'assure que le titre H2 ne crée pas d'espace inutile */
        .footer h2 {
            font-size: 24px; /* Ajustement de la taille du texte si nécessaire */
            color: #444;
        }

        /* Ajustement pour mobile */
        @media (max-width: 767px) {
            .footer .col-lg-3.col-md-6 {
                display: flex;
                flex-direction: column;
                align-items: center;
                text-align: center;
                margin-bottom: 30px;
            }

            .footer .d-flex.align-items-center {
                justify-content: center;
                width: 100%;
            }
        }
        /* =========================
   FOOTER RESPONSIVE
========================= */

/* Mobile & tablette */
@media (max-width: 991px) {

    .footer {
        text-align: center;
    }

    /* Espacement entre les blocs */
    .footer .col-lg-3,
    .footer .col-lg-2,
    .footer .col-lg-5 {
        margin-bottom: 30px;
    }

    /* Liens centrés */
    .footer .footer-links ul li {
        justify-content: center;
    }

    /* Icônes sociales centrées */
    .social-links {
        justify-content: center;
    }

    .social-links a {
        margin: 0 6px;
    }

    /* Newsletter responsive */
    .footer-newsletter form {
        border-radius: 12px;
        padding: 10px;
    }

    .footer-newsletter form input[type="email"] {
        width: 100%;
        margin-bottom: 10px;
        text-align: center;
    }

    .footer-newsletter form input[type="submit"] {
        position: static;
        width: 100%;
        border-radius: 8px;
        padding: 10px 0;
    }

    /* Footer bottom */
    .footer-bottom {
        text-align: center;
        padding: 20px 10px;
    }
}
/* --- Titre Partenaires --- */
.section-title h3 {
    color: #333;
    font-size: 20px;
    margin-bottom: 10px;
}
.title-line {
    width: 50px;
    height: 3px;
    background: #2FAE1C;
    margin: 0 auto;
    border-radius: 3px;
}

/* --- Slider de défilement --- */
.partners-slider {
    overflow: hidden;
    padding: 30px 0;
    position: relative;
    background: #ffffff; /* Fond blanc pour bien voir les logos */
    margin-bottom: 20px;
}

/* Fondu sur les bords pour un effet pro */
.partners-slider::before, .partners-slider::after {
    content: "";
    height: 100%;
    position: absolute;
    width: 100px;
    z-index: 2;
    pointer-events: none;
}
.partners-slider::before { left: 0; background: linear-gradient(to right, #ffffff 0%, rgba(255,255,255,0) 100%); }
.partners-slider::after { right: 0; background: linear-gradient(to left, #ffffff 0%, rgba(255,255,255,0) 100%); }

.partners-track {
    display: flex;
    align-items: center;
    /* Largeur : 250px par logo * 12 logos au total = 3000px */
    width: calc(250px * 12);
    animation: scroll-logos 30s linear infinite;
}

.partner-logo {
    width: 250px; /* Espace fixe pour chaque logo = marges égales */
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.partner-logo img {
    height: 80px; /* Hauteur uniforme */
    width: auto;
    object-fit: contain;
    filter: none; /* Pas de gris */
    opacity: 1;
    transition: transform 0.3s;
}

.partner-logo img:hover {
    transform: scale(1.1);
}

/* L'animation : on décale de la moitié exacte (6 logos x 250px = 1500px) */
@keyframes scroll-logos {
    0% { transform: translateX(0); }
    100% { transform: translateX(calc(-250px * 6)); }
}

/* Pause au survol */
.partners-slider:hover .partners-track {
    animation-play-state: paused;
}

/* Mobile */
@media (max-width: 768px) {
    .logo-anader {
        width: 40px !important;  /* Ajustez cette valeur selon vos besoins */
        height: 40px !important;
    }

    .logo-sdea {
        width: 80px !important;  /* Ajustez cette valeur selon vos besoins */
        height: 80px !important;
    }
    .partners-track { width: calc(150px * 12); }
    .partner-logo { width: 150px; }
    .partner-logo img { height: 50px; }
    @keyframes scroll-logos {
        100% { transform: translateX(calc(-150px * 6)); }
    }
}
/* --- Nouveau Style pour le Bloc Facebook "Joli" --- */
/* --- Bloc Facebook Stabilisé et Scrollable --- */
.fb-page-container {
    max-width: 250px;
    height: 310px; /* La fenêtre visible reste petite */
    margin: 5px auto 0;
    background: #fff;
    border-radius: 12px;
    padding: 0;
    border: 1px solid #e1e1e1;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);

    /* Activation du scroll propre */
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch; /* Scroll fluide iOS */
    position: relative;
    z-index: 1;
}

/* On force l'interaction tactile */
.fb-page,
.fb-page span,
.fb-page iframe {
    width: 100% !important;
    display: block !important;
    pointer-events: auto !important; /* Force la détection du doigt sur mobile */
}

/* On s'assure que l'iframe dépasse la hauteur du container */
.fb-page-container iframe {
    min-height: 500px !important;
}

@media (max-width: 991px) {
    .footer-facebook {
        margin-top: 20px;
    }
}
/*-----FIN DU STYLE POUR LE FOOTER -------*/
.text-justify {
    text-align: justify;
    text-justify: inter-word;
}
/* ---------Style pour le drapeau--------------------*/
.top-flag-container {
    width: 100%;
    height: 10px; /* Ajustez la hauteur ici (10px ou 15px selon votre goût) */
    overflow: hidden;
    line-height: 0; /* Supprime l'espace vide sous l'image */
}

.top-flag {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Important : remplit la largeur sans déformer le drapeau */
    display: block;
}

/* Optionnel : Si vous voulez que le drapeau reste fixé en haut au scroll */
/*
.top-flag-container {
    position: fixed;
    top: 0;
    z-index: 2000;
}
.navbar {
    margin-top: 10px;
}
*/
/* ---------Fin du Style pour le drapeau--------------------*/
