/* la police font */
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap');
/* Import de Cropper.js CSS */
@import url('https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.6.1/cropper.min.css');

@font-face {
    font-family: 'AvenirNext';
    src: url('/assets/fonts/AvenirNextLTProRegular.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Eurostile';
    src: url('/assets/fonts/eurostile.TTF') format('truetype');
    font-weight: normal;
    font-style: normal;
}

/* Éviter tout débordement horizontal sur la page */
html, body {
    overflow-x: hidden;
    max-width: 100vw;
}

/* Les bases en format mobile*/
body {
    /* background-color:#fdfdfd; */
    /* color: #242424; */
    font-size: 15px;
    padding: 0px;
    color:#404040;
    font-family: 'Eurostile', 'Lato', Roboto, Arial, sans-serif;
    margin-top: 45px;
    /* Éviter le débordement horizontal du body */
    overflow-x: hidden;
}
.btn-blanc{
    font-size: 11px;
    color: #404040 !important;
    border: 2px solid grey;
}
.petit_up{
    margin-top: -85px;
    margin-left: 80px;
    margin-right: 80px;
    /* width: 50%; */
    text-align: center;
    z-index:1100!important;
    /* position: relative; */
    position: fixed;
}
@media (min-width: 576px){
    .petit_up{
        margin-left: 80px;
        margin-right: 80px;
        text-align: center;
        z-index:1100!important;
        font-size: 20px;
    }
}
@media (min-width: 992px){
    .petit_up{
        margin-top: 0px;
        margin-left: 0px;
        margin-right: 0px;
        text-align: center;
        z-index:600!important;
        position: relative;
        font-size: 22px;
    }
}
.up{
    margin-top: -45px !important;
}
.down{
    margin-top: 80px;
}
/* .petit-up{
    margin-top: -10px;
} */
.text-avenir{
    font-family: 'AvenirNext', 'Lato', Roboto, Arial, sans-serif;
    text-transform: uppercase;
}
.bg-bleu{
    background-color:#191557;
}
.bg-bleu-fonce{
    background-color:#191557;
}
.bg-bleu-ciel{
    background-color:#b3d6ed;
}
.bg-orange{
    background-color:#f0723d;
}
.txt-orange{
    color: #F36416;
}
.bg-violet{
    background-color:#b652f8;
}
.txt-violet{
    color: #9E005D;
}
.bg-vert{
    background-color:#9abb38;
}

.txt-vert{
    color: #39B54A;
}
.bg-gris{
    background-color:#404040;
    /* background-color:#ed1313; */
}
.bg-gris-clair{
    background-color:#b5b4b480;
}
.bg-transparent{
    background-color: #b5b4b400;
}
.bg-jaune{
    background-color: #fae500;
    color: #404040 !important;
}
.tourbleu{
    padding: 5px;
    border-radius: 10px;
    border: 2px solid #191557;
}
.txt-bleu{
    color: #191557;
}
.txt-bleu-fonce{
    color: #191557;
}
.txt-gris{
    color: #404040;
}
.bg-beige{
    background-color:#f7f6f4;
}
.txt-beige{
    color: #CBBBA0;
}
.bg-hebergeur{
    color: #CBBBA0;
}
.txt-blanc{
    color: #fdfdfd;
}
.bg-blanc{
    background-color: #fdfdfd;
}


/* Les tailles en format mobile*/
h1{
    font-size: 24px;
    font-weight: 600;
}
h2{
    font-size: 22px;
    font-weight: 600;
}
h3{
    font-size: 20px;
    font-weight: 600;
}
h4{
    font-size: 17px;
    font-weight: 600;
}  
h5{
    font-size: 16px;
}
.card-title{
    text-transform: uppercase;
}
section{
    margin: auto;
    margin-bottom: 20px;
    padding: 10px;
}
.petit{
    font-size: 12px;
    color: #888;
}

/* ---------   Filtres en images   ------------------- */

.petittexte{
    font-size: 11px;
    /* letter-spacing: -1px; */
    color: #404040 !important;
    text-align: center;
}
/* Style pour centrer parfaitement les filtres */
.filter-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: inherit;
    width: 100%;
}

/* === -----NOUVEAUX STYLES POUR LES FILTRES --------=== */

/* Mise à jour du style de base pour les filtres */
.filter-item {
    cursor: pointer;
    padding: 10px;
    border-radius: 10px;
    transition: all 0.3s ease;
    background: rgba(255, 255, 255, 0.8);
    border: 2px solid transparent;
}

/* MODIFIER le hover existant */
.filter-item:hover, .btn-blanc:hover {
    text-decoration: none;
    color: inherit;
    transform: scale(1.05);
    transition: transform 0.2s ease;
    background: rgba(0, 113, 188, 0.1); /* NOUVEAU */
    border-color: #191557; /* NOUVEAU */
    box-shadow: 0 4px 8px rgba(0, 113, 188, 0.2); /* NOUVEAU */
}

/* NOUVEAUX STYLES pour l'état actif */
.filter-item.active-filter {
    background: #191557;
    color: white;
    border-color: #191557;
    transform: scale(1.02);
    box-shadow: 0 6px 12px rgba(0, 113, 188, 0.3);
}

.filter-item.active-filter .petittexte {
    color: white !important;
    font-weight: 600;
}

/* Animation de l'icône sur hover/active */
.filter-item:hover img,
.filter-item.active-filter img {
    transform: scale(1.1);
}

/* Style pour le fil d'ariane dynamique */
#breadcrumb-section {
    animation: slideDown 0.3s ease;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Animation des cartes lors du filtrage */
.flyer-card {
    transition: all 0.4s ease;
}

.flyer-card[style*="display: none"] {
    opacity: 0;
    transform: scale(0.9);
}

.flyer-card[style*="display: block"] {
    opacity: 1;
    transform: scale(1);
}

/* Espacement entre image et texte */
.filter-item img {
    margin-bottom: 8px;
}

/* ---------------------      CARD    ---------------------------*/
.card {
    border: none;
}
.divtitle{
    height: 57px;
}
/* --------------   Les images en format mobile ----------------   */
.logoNav{
    max-width: 120px;
    margin: 2px;
    width: auto; /* Important : laisse l'image garder ses proportions */
}
.logo-nav{
    max-width: 45px;
    margin: 5px;
    width: auto;
}
.logo-nav-chat{
    display: block;
    margin: 0 auto; /* Centre l'image */
    max-width: 70px;
    width: auto;
}
/* .logo{
    max-width: 120px;
} */

.biglogo{
    max-width: 240px;
}
.picto{
    max-width: 20px;
}
.icone{
    max-height: 100px;
}
.img-with-offset {
    width: calc(100% - 0.75rem) !important; /* 0.75rem = ps-3 de Bootstrap */
    height: auto;
}
.icone_service{
    max-width: 35px;
}

/* --- Ajustement pour la taille écran  --- */
@media (min-width: 770px){
    section{
        margin-top: 20px;
    }
}
@media (min-width: 992px){
    /* .logo{
    max-width: 80px;
    } */
    body{
        font-size: 16px;
        /* margin-top: 130px; */
    }
    .logoNav{
        max-width: 220px;
        margin: 2px;
    }
    .logo-nav{
        max-width: 50px;
        margin: 10px;
    }
    section{
        max-width: 1200px;
        margin-bottom: 50px;
        padding-left: 3rem;
        padding-right: 3rem;
        margin-top: 85px;
    }
    h1{
        font-size: 26px;
        font-weight: 900;
        line-height: 1.693;
    }
    h2{
        font-size: 24px;
    }
    h3{
        font-size: 22px;
    }
    h4{
        font-size: 20px;
    }
    h5{
        font-size: 18px;
        font-weight: 600;
    }
    .icone{
        max-height: 120px;
    }
    .petit{
        font-size: 14px;
    }
    .text-avenir{
    font-size: 16px;
    }
    .divtitle{
        height: 57px;
    }
}


/* ---------- Les boutons en format mobile ------ */
.btn{
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: 10px;
    color: #fdfdfd;
    /* font-weight: 600; */
    font-family: 'AvenirNext', 'Lato', Roboto, Arial, sans-serif;
}
.btn a, a{
    /* color: #242424;  */
    text-decoration: none !important;
}

.btn:hover{
    background-color: #706f6f3f !important;
    color: #404040 !important;
}

.intro .btn:hover{
    background-color: #fdfdfd !important;
    text-decoration: none;
    color: inherit;
    transform: scale(1.05);
    transition: transform 0.2s ease;
    border-color: #191557; /* NOUVEAU */
    box-shadow: 0 4px 8px rgba(0, 113, 188, 0.2); /* NOUVEAU */
}

.minicone{
    width: 25px;
}
.petiticone{
    width: 32px;
}
.moyicone{
    width: 60px;
}
.iconefiltre{
    width: 45px;
}
.fleche_icone{
    width: 50px;
}

/* -----------Les navigations nav----------------*/
.navbar{
    width: 100%; /* Prend toute la largeur disponible */
    max-width: 100vw; /* Ne dépasse jamais la largeur de l'écran */
    margin: 0 auto; /* Centrage automatique */
    padding: 5px !important;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index:1050;
    /* background-color:#f6f5f5; */
    background-color:white;
    padding-bottom: 20px !important;
    /* Ajout de box-sizing pour inclure padding/border dans la largeur */
    box-sizing: border-box;
}
/* Container de la navbar - empêcher les débordements sans casser les éléments */
.navbar .container {
    width: 100%;
    max-width: none; /* Enlever toute limitation */
    box-sizing: border-box;
}

/* Assurer que le bouton hamburger et le logo restent visibles */
.navbar .d-flex {
    width: 100%;
    flex-wrap: nowrap; /* Empêcher le retour à la ligne */
}

/* Contrainte desktop pour éviter que la navbar soit trop large */
@media (min-width: 1200px) {
    .navbar {
        max-width: 1200px;
        /* left: 50%; */
        margin: 0 auto;
    }
}

.navbar-brand{
    margin:auto;
    padding-left: 10px;
    /* Empêcher le débordement du logo */
    max-width: calc(100% - 20px);
    overflow: hidden;
}
.ombre{
    width: 100%;
    max-width: 100vw;
    box-shadow: 10px 5px 14px -3px rgba(0,0,0,0.4);
    padding-top: 5px;
    padding-bottom: 5px !important;
    margin: 0 auto;
    z-index:1000;
    position: fixed;
    top: 0px;
    left: 0;
    right: 0;
    background-color:#fdfdfd;
    box-sizing: border-box;
}
@media (min-width: 1200px) {
    .ombre {
        max-width: 1200px;
        margin: 0 auto;
    }
}
.nav-link{
    font-size: 16px;
    text-align: center;
    font-weight: 400;
    color: #242424 !important;
    /* text-transform: uppercase; */
}
.nav-link:hover{
    transform: scale(1.15);
}
.navbar-nav {
    padding-left: 0px;
    /* Éviter les débordements horizontaux */
    width: 100%;
    box-sizing: border-box;
}
.nav-item{
    position: relative; 
}
.nav-item::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 10%; /* Centre la bordure avec 10% de marge de chaque côté */
    width: 80%; /* 80% de largeur comme demandé */
    height: 1px;
    background-color: #191557;
}

.burger{
    width: 35px;
    height: auto;
}

.offcanvas-header.nav-item::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 20%; /* Centre la bordure avec 10% de marge de chaque côté */
    width: 60%; /* 80% de largeur comme demandé */
    height: 1px;
    background-color: #191557;
}

/* Styles mobile spécifiques */
@media (max-width: 767.98px) {
    .navbar {
        padding: 3px !important;
    }
    
    .navbar-brand {
        padding-left: 5px;
    }
}

/* Alignement du logo dans l'offcanvas header */
.offcanvas-header {
    justify-content: center !important; /* Centre le contenu horizontalement */
    /* padding-bottom: 1rem; */
    /* border-bottom: 1px solid #dee2e6; */
}
.offcanvas-body{
    padding-top: 0px !important;
}

/* Styles pour la navigation avec filtre */

/* Menu Hamburger personnalisé à gauche */
.petit-down {
    margin-top: 10px;
}
.burger-simple{
    background: none;
    border: none;
}
.burger-simple:hover{
    background: none;
    border: none;
}
.burger:hover{
    background: none!important;
    border: none!important;
}

/* Zone de filtres */
.filter-content-filtre {
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* .show{
    padding-left: 20px;
} */
.offcanvas.offcanvas-start{
    width: 120px;
    background-color: #f7f6f4;
}
/* Ajustement pour la taille écran */
@media (min-width: 992px){
    .offcanvas.offcanvas-start{
        width: 150px;
    }
}

/* === EFFET PUSH à droite POUR LE MENU OFFCANVAS qui s'ouvre à gauche === */

/* Wrapper global pour tout le contenu de la page */
#page-wrapper {
    transition: transform 0.3s ease-in-out;
    width: 100%;
    min-height: 100vh;
}

/* Quand l'offcanvas est ouvert, décaler le contenu */
body.offcanvas-open #page-wrapper {
    transform: translateX(120px); /* Même largeur que votre menu mobile */
}
@media (min-width: 992px) {
    body.offcanvas-open #page-wrapper {
        transform: translateX(150px); /* Largeur menu desktop */
    }
}
@media (min-width: 1200px) {
    body.offcanvas-open #page-wrapper {
        transform: translateX(0px); /* pas de décalage au dessus de 1200px qui est la largeur de nav */
    }
}
/* Empêcher le scroll du body quand le menu est ouvert */
body.offcanvas-open {
    overflow-x: hidden;
}
/* Transition douce pour l'offcanvas */
.offcanvas.offcanvas-start {
    transition: transform 0.3s ease-in-out;
}


/* ----------    Footer  -----------------------  */

/*   ----------------Alert  ---------------------   */
.alert{
    padding: 10px;
    /* color: ; */
    text-align: center;
    /*Par défaut Bootstrap met une border à ses classes alertes, je peux les retirer et personnaliser mon CSS */
    /* margin: 0;
    border: none;
    border-radius: 0; */
}
.alert-success{
        background-color: #9abb38;
}
.alert-info{
        background-color: #9E005D;
} 



/*    ------------------    Index   -----------------  */

.images{
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.image-container{
    text-align: center;
    height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.box{
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100px;
    border-radius: 25px;
    white-space: normal !important; /* Force le retour à la ligne */
}
/* Ajustement pour la taille écran */
@media (min-width: 992px){
    .box{
        min-height: 150px;
    }
}

.encart{
    /* display: flex; 
    align-items: center; 
    justify-content: center; */
    min-height: 150px;
    border-top: 2px solid #191557;
    border-bottom: 2px solid #191557;
    padding: 2px;
}

.imgComp{
    background-image:url("/images/vignoble.jpg");
    background-position: center center;
    background-size: cover;
    min-height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end; /* Aligne le contenu vers le bas */
}

.imgIntro{
    background-image:url("/images/intro.jpg");
    background-position: center center;
    background-size: cover;
    min-height: 300px;
}

/*Affichage .... */
.enteteflyer{
    font-weight: 600;
    margin-bottom: 0;
}

/*------------- Bandeau responsive optimisé avec wepb -----------------*/
.bandeau {
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    position: relative;
    z-index: 900;
    /* margin-top: -70px;  */
    /* border-radius: 10px; */
}
/* .liseret{
    max-height: 10px !important;
} */

.bandeau-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    /* border-radius: 10px; */
    /* OPTIMISATION RETINA - Force le navigateur à utiliser la haute résolution */
    image-rendering: auto;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    /* Améliore le rendu sur les écrans haute densité */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* Transition pour apparition progressive */
    opacity: 0;
    transition: opacity 0.5s ease;
}

/* Image chargée */
.bandeau-image.loaded,
.bandeau-image[src] {
    opacity: 1;
}

/* Optimisation picture element */
picture {
    display: flex;
    width: 100%;
    height: 100%;
}

picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Mobile : format carré basé sur photo1 (500x500) */
@media (max-width: 575.98px) {
    .bandeau {
        width: min(100vw, 500px); /* Adaptatif avec max 280px */
        height: min(100vw, 500px); /* Carré adaptatif */
        max-width: 500px;
        max-height: 500px;
        margin-top: 0px; 
    }
}

/* SM et plus : format bandeau (1200x400) */
@media (min-width: 576px) {
    .bandeau {
        width: 100%;
        height: min(30vw, 400px); /* Ratio 3:1 (600:200) */
        max-width: 1200px;
        max-height: 400px;
        margin: 0 auto;
    }
}
/* DESkTOP descendre le bandeau sous la nav */
@media (min-width: 768px) {
    .bandeau {
        margin-top: 2px;
    }
}
/* DESkTOP descendre le bandeau sous la nav */
@media (min-width: 992px) {
    .bandeau {
        margin-top: 50px;
    }
}
/* Bandeau restreint ++ pour écran > 1200px */
@media (min-width: 1200px) {
    .bandeau {
        max-width: 1200px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Support des écrans haute densité (Retina, 4K) */
@media (-webkit-min-device-pixel-ratio: 2), 
       (min-resolution: 192dpi), 
       (min-resolution: 2dppx) {
    .bandeau-image {
        /* Les images 2x seront automatiquement utilisées */
        image-rendering: -webkit-optimize-contrast;
        image-rendering: optimize-contrast;
    }
    .bandeau-image[src*=".webp"] {
        image-rendering: auto; /* WebP reste en auto */
    }
}

/* Écrans très haute résolution (4K+) */
@media (-webkit-min-device-pixel-ratio: 3), 
       (min-resolution: 288dpi), 
       (min-resolution: 3dppx) {
    .bandeau-image {
        image-rendering: auto;
    }
}


/* ---------------Style LIRE LA SUITE-------------- */
.texte-cache1, .texte-cache2, .texte-cache3 { 
    /* margin: 50px 200px 5px 200px; */
    position: relative;
    max-height: 100px; /*Hauteur du texte visible avant le clic*/
    overflow: hidden; /*On cache tout ce qui dépasse des 100px*/
    transition: max-height 0.5s ease; /* Transition CSS entre l'ouverture et la fermeture*/
}
/*Style du module LIRE LA SUITE lorsqu'il est ouvert*/
.texte-cache1.ouvert, .texte-cache2.ouvert, .texte-cache3.ouvert {
    max-height: 1000vh; /* On lui définit une hauteur max de tout l'écran si nécessaire pour qu'il affiche tout son contenu*/
}
/*On stylise l'effet de flou lorsque le module TEXTE est fermé, donc il n'a pas la classe "ouvert"*/
.texte-cache1:not(.ouvert)::after, .texte-cache2:not(.ouvert)::after, .texte-cache3:not(.ouvert)::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)); /*Couleur de notre effet*/
}

/* ===== STYLES POUR LE CROP D'IMAGES ===== */

.image-crop-section {
    margin: 20px 0;
    padding: 20px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    background: #f8f9fa;
}

.crop-preview {
    display: none;
    margin-top: 15px;
}

.cropper-container {
    max-height: 500px;
    margin: 15px 0;
    position: relative;
    /* z-index: 100; */
}

/* Fix pour Cropper.js - empêcher l'image de déborder */
.crop-preview img {
    max-width: 100%;
    max-height: 500px;
    display: block;
}

/* Conteneur pour cropper avec overflow contrôlé */
.cropper-wrap {
    position: relative;
    max-height: 500px;
    overflow: hidden;
    margin: 15px 0;
}

.crop-controls {
    text-align: center;
    margin: 15px 0;
    position: relative;
    /* z-index: 10; */
    background: white;
    padding: 10px;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

.crop-controls button {
    margin: 5px;
    padding: 8px 15px;
}

.preview-result {
    display: flex;
    gap: 15px;
    justify-content: center;
    margin-top: 15px;
    flex-wrap: wrap;
    position: relative;
    /* z-index: 10; */
}

.preview-box {
    text-align: center;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 10px;
    background: white;
    box-shadow: 0 2px 5px rgba(0,0,0,0.01);
}

.preview-mobile-box {
    width: 150px;
    height: 150px;
    border: 1px solid #ccc;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    margin: 10px auto;
    border-radius: 4px;
}

.preview-bandeau-box {
    width: 200px;
    height: 67px;
    border: 1px solid #ccc;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    margin: 10px auto;
    border-radius: 4px;
}

.upload-trigger {
    border: 2px dashed #dee2e6;
    border-radius: 8px;
    padding: 30px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    background: white;
}

.upload-trigger:hover {
    border-color: #007bff;
    background: #e3f2fd;
    transform: translateY(-2px);
}

.upload-trigger.dragover {
    border-color: #007bff;
    background: #e3f2fd;
    border-style: solid;
}

.hidden-file-input {
    display: none;
}

.upload-icon {
    color: #6c757d;
    margin-bottom: 10px;
}

.upload-trigger:hover .upload-icon {
    color: #007bff;
}

/* Fix spécifique pour Cropper.js */
.cropper-container {
    position: relative !important;
    /* z-index: 100 !important; */
}

.cropper-canvas {
    position: relative !important;
}

/* Responsive pour les previews */
@media (max-width: 576px) {
    .preview-result {
        flex-direction: column;
        align-items: center;
    }
    
    .preview-bandeau-box {
        width: 150px;
        height: 50px;
    }
    
    .crop-controls {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 5px;
    }
    
    .crop-controls button {
        margin: 2px;
        padding: 6px 12px;
        font-size: 12px;
    }
    
    .cropper-container {
        max-height: 500px;
    }
}

/* Amélioration de l'apparence des boutons de crop */
.crop-controls .btn {
    font-size: 14px;
    font-weight: 500;
    border-radius: 6px;
}

.crop-controls .btn-primary {
    background: linear-gradient(135deg, #007bff, #0056b3);
    border: none;
}

.crop-controls .btn-success {
    background: linear-gradient(135deg, #28a745, #1e7e34);
    border: none;
}

.crop-controls .btn-secondary {
    background: linear-gradient(135deg, #6c757d, #545b62);
    border: none;
}

/* Animation pour les previews */
.preview-box img {
    transition: transform 0.2s ease;
}

.preview-box:hover img {
    transform: scale(1.02);
}

/* Style pour les messages d'état */
.crop-status {
    padding: 10px;
    border-radius: 5px;
    margin: 10px 0;
    text-align: center;
    font-weight: 500;
    position: relative;
    z-index: 10;
}

.crop-status.success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.crop-status.warning {
    background: #fff3cd;
    color: #856404;
    border: 1px solid #ffeaa7;
}

.crop-status.error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

/* ===== CORRECTIONS POUR LES CARDS RESPONSIVE ===== */

/* Conteneur principal avec espacement de 30px entre les cards */
.cards-container {
    padding: 0px; 
}

.card-wrapper {
    padding: 10px;
}

/* Card styling - par défault en petit */
.card {
    border: none;
    overflow: hidden;
    height: 100%; /* Pour égaliser la hauteur des cards */
    display: flex;
    flex-direction: column;
}

/* Conteneur d'image avec aspect ratio carré - remplacement de votre .card-image-container */
.card-image-container {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1; /* Force un ratio carré */
    overflow: hidden;
    background-color: #f8f9fa00;
}

/* Image responsive qui remplit le conteneur - remplacement de votre .card-img-top */
.card-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important; /* L'image couvre tout l'espace sans déformation */
    object-position: center !important; /* Centre l'image */
    display: block !important;
    /* transition: transform 0.3s ease; */
    margin: 0 !important; /* Supprime toute marge */
    padding: 0 !important; /* Supprime tout padding */
    /* OPTIMISATION HAUTE RÉSOLUTION */
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
    backface-visibility: hidden;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    border-top-right-radius: 15px;
    border-top-left-radius: 15px;
}

/* Amélioration pour les écrans très haute résolution */
@media (-webkit-min-device-pixel-ratio: 3), 
       (min-resolution: 288dpi), 
       (min-resolution: 3dppx) {
    
    .card-image,
    .bandeau-image {
        /* Optimisation pour écrans 4K+ */
        image-rendering: auto;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }
}

/* Bande colorée - à gauche de l'image */
/* .card-image-container::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 10px;
    height: 100%;
    background-color: var(--band-color, transparent);
    z-index: 2;
} */

/* Card body - avec hauteur fixe 150px -90px sans description -  en mobile, sinon 200px - 100px sans description -  et flexbox */
.card-body {
    padding: 0rem !important;
    display: flex !important;
    flex-direction: column !important;
    height: 90px !important;
    max-height: 90px !important;
    overflow: hidden !important;
    /* height: 150px; */
}

.card-title {
    font-weight: 600;
    margin-bottom: 0.5rem;
    line-height: 1.2;
    flex-shrink: 0; /* Empêche le titre de se comprimer */
    height: 34px !important;
}

/* Description tronquée avec hauteur max */
/* Description adaptative avec JavaScript */
.card-description {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    line-height: 1.4;
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 0.5rem;
    word-wrap: break-word;
    hyphens: auto;
    flex: 1; /* Prend l'espace disponible */
    min-height: 0; /* Permet la compression */
    text-overflow: ellipsis;
    white-space: normal;
    
    /* Valeurs par défaut - seront remplacées par JavaScript */
    -webkit-line-clamp: 4;
    line-clamp: 4; /* Propriété standard pour compatibilité */
    max-height: 5.6em; /* 4 lignes × 1.4 */
}

/* Support pour navigateurs sans -webkit-line-clamp */
@supports not (-webkit-line-clamp: 1) {
    .card-description {
        position: relative;
        text-overflow: ellipsis;
    }
    
    .card-description::after {
        content: '...';
        position: absolute;
        bottom: 0;
        right: 0;
        background: linear-gradient(to right, transparent, white 60%);
        padding-left: 20px;
        width: 60px;
        height: 1.4em;
        line-height: 1.4;
        text-align: right;
    }
}


/* Container pour ville et distance - toujours en bas */
.card-footer-info {
    margin-top: auto; /* Pousse vers le bas */
    flex-shrink: 0; /* Empêche la compression */
}

.card-ville{
    font-size: 0.8rem;
    text-transform: uppercase;
    margin-top: 0.5rem;
    margin-bottom: 0rem;
    /* color: #888; */
}
.card-pays{
    font-size: 0.8rem;
    text-transform: uppercase;
    margin-top: 0rem;
    margin-bottom: 0rem;
    line-height: 0.2rem;
    /* color: #888; */
}

.card-text {
    font-size: 0.8rem;
    line-height: 1.2;
    /* color: #666; */
    margin-bottom: 0;
}

/* Liens */
a.txt-gris:hover {
    color: #191557;
}

/* Responsive breakpoints pour les cards */

/* @media (min-width: 394px) {
    .card-body {
        height: 140px !important;
    }
} */

/* Small devices (sm) - 2 colonnes */
@media (max-width: 767.98px) {
    .card-wrapper {
        padding: 5px;
        padding-bottom: 30px;
    }
    .card-title {
        font-size: 14px;
    }
    .card-description {
        font-size: 0.85rem;
        line-height: 1.3;
        -webkit-line-clamp: 3;
        line-clamp: 3; /* Propriété standard pour compatibilité */
        max-height: 3.9em; /* 3 lignes × 1.3 */
    }
}

/* Medium devices (md) - 3 colonnes */
@media (min-width: 768px) {
    .card-title {
        font-size: 16px;
    }
    .card-body {
        height: 100px !important;
        max-height: 100px !important;
    }
    .card-description {
        font-size: 0.9rem;
        -webkit-line-clamp: 4;
        line-clamp: 4; /* Propriété standard pour compatibilité */
        max-height: 5.6em; /* 4 lignes × 1.4 */
    }
}

/* Large devices (lg) et plus - 4 colonnes */
@media (min-width: 992px) {
    .card-title {
        font-size: 18px;
    }
    .card-description {
        -webkit-line-clamp: 5;
        line-clamp: 5; /* Propriété standard pour compatibilité */
        max-height: 7em; /* 5 lignes × 1.4 */
    }
    /* Card styling - remplacement de votre .card existant */
    .card {
        border-radius: 8px;
        /* box-shadow: 0 2px 8px rgba(0, 0, 0, 0.01); */
        transition: transform 0.2s ease, box-shadow 0.2s ease;
        padding: 5px;
    }
}

/* Extra large devices (xl) - conteneur centré */
@media (min-width: 1200px) {
    .cards-container {
        max-width: 1200px;
        margin: 0 auto;
    }
}

/* --------------Styles des tabs dans flyer/show -----------*/
/* CSS à ajouter pour corriger la hauteur limitée des accordéons */

/* Assurer que les éléments collapse n'ont pas de hauteur limitée */
.collapse {
    max-height: none !important;
    height: auto !important;
}

/* Assurer que les cards dans les accordéons peuvent s'étendre */
.card-body-show {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    border: 2px solid #191557;
    padding: 15px;
    margin: 0px;
    border-radius: 15px;
}

/* Spécifiquement pour les accordéons mobile */
#collapse-horaires-mobile,
#collapse-acces-mobile,
#collapse-tarifs-mobile,
#collapse-services-mobile {
    max-height: none !important;
    height: auto !important;
}

/* Assurer que les conteneurs de tabs peuvent s'étendre */
.tab-content {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

.tab-pane {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

/* Pour les rows et colonnes dans les accordéons */
.card-body-show .row {
    height: auto !important;
    max-height: none !important;
}

/* Spécifiquement pour la version mobile */
@media (max-width: 575.98px) {
    .d-block.d-sm-none .collapse {
        max-height: none !important;
        height: auto !important;
    }
    
    .card-body-show {
        max-height: none !important;
        height: auto !important;
        overflow: visible !important;
    }
}

/* ------------Styles pour le fil d'Ariane------------------- */

.breadcrumb {
    font-size: 14px;
    margin-bottom: 0;
    padding-left: 3rem;
}

.breadcrumb-item + .breadcrumb-item::before {
    content: "›";
    color: #6c757d;
    font-weight: bold;
}

.breadcrumb-item a {
    color: #6c757d;
    transition: color 0.3s ease;
}

.breadcrumb-item a:hover {
    color: #6c757d;
    text-decoration: underline !important;
}

.breadcrumb-item.active {
    color: #6c757d;
    font-weight: 500;
}

/* Responsive */
@media (max-width: 576px) {
    .breadcrumb {
        font-size: 12px;
        padding-top: 0.5rem;
        padding-left: 0rem;
    }
    
    .breadcrumb-item a {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 80px;
        display: inline-block;
    }
}

/*   ----------------  img categorie sur card  ---------------- */
/* Conteneur de l'icône de catégorie positionnée en haut à gauche */
.localheart > .category-icon-container {
    position: absolute;
    top: 15px;
    left: 15px;
    z-index: 10;
}

/* Style de l'icône de catégorie - même taille que le cœur */
.category-icon {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    padding: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* --------- -----------img category sur SHOW ---------------------*/
/* Conteneur pour la page show - même logique mais taille moyicone */
.localheart > .category-icon-container-show {
    position: absolute;
    bottom: 15px;
    left: 15px;
    z-index: 10;
}

/* Style de l'icône catégorie sur page show - taille moyicone (60px) */
.category-icon-show {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    padding: 8px;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.25);
}

/* Conteneur pour l'icône de catégorie en grand (flyer non visible) */
.category-placeholder {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;  /* Garde le format carré comme vos cards normales */
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    border-top-right-radius: 15px;
    border-top-left-radius: 15px;
    /* border-radius: 8px; */
}

.category-icon-large {
    width: 120px;
    height: 120px;
    object-fit: contain;
    opacity: 0.7;
    filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.1));
}


/* ----------------------BOUTON RETOUR sur l'image sur la page show ---------*/
/* Bouton retour mobile pour les pages show */
.btn-retour-mobile {
    position: absolute;
    top: 15px;
    left: 15px;
    z-index: 910;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

/* -------------------Favoris --------------*/
/* Icône cœur positionnée en haut à droite */
.localheart{
    position: relative;
}
/* .heart-icon {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
} */
.heart-icon{
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Conteneur du cœur positionné par rapport au bandeau */
.localheart > .heart-container[data-flyer-id] {
    position: absolute;
    top: 15px;
    right: 15px;
    z-index: 10;
    cursor: pointer;
}

/* Popup de connexion */
.popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.popup-content {
    background: white;
    padding: 30px;
    border-radius: 10px;
    max-width: 400px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.popup-content h3 {
    margin: 0 0 20px 0;
    color: #333;
}

.popup-content p {
    margin-bottom: 25px;
    color: #666;
    line-height: 1.5;
}

.popup-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
}
/* Responsive */
@media (max-width: 768px) {
        .popup-content {
        margin: 20px;
        padding: 25px;
    }
    .popup-buttons {
        flex-direction: column;
    }
}

/* -------------------template app: distance --------------*/
/* Animation pour le tri */
.flyer-card {
    transition: all 0.3s ease;
}

/* Styles pour les alertes de géolocalisation */
.geolocation-alert {
    padding: 12px 16px;
    border-radius: 0.375rem;
    margin-bottom: 0.5rem;
    font-weight: 500;
}

.spinner-border-sm {
    width: 1rem;
    height: 1rem;
}

.spinner-border.text-blanc {
    border-color: rgba(255, 255, 255, 0.25);
    border-right-color: #fdfdfd;
}


/* -------------------template card: calcul distance --------------*/
/* Styles pour la section distance */


.distance-display {
    color: #666;
    font-size: 0.875rem;
    font-weight: 500;
    margin: 0;
    /* display: flex; */
    align-items: center;
    gap: 0.25rem;
}

.distance-icon {
    font-size: 0.75rem;
}

.distance-value {
    color: #007bff;
    font-weight: 600;
}

.activate-geolocation {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
    border-radius: 0.375rem;
    transition: all 0.2s ease;
    cursor: pointer;
    border: 1px solid #007bff;
    color: #007bff;
    background: transparent;
}

.activate-geolocation:hover {
    background-color: #007bff;
    color: white;
    transform: translateY(-1px);
}

/* .distance-fallback {
    color: #999;
    font-size: 0.8rem;
    margin: 0;
    font-style: italic;
} */

/* Responsive */
@media (max-width: 576px) {
    .activate-geolocation {
        font-size: 0.7rem;
        padding: 0.2rem 0.4rem;
    }
    
    .distance-display {
        font-size: 0.8rem;
    }
}

/* -------------- STYLES POPUP PARAMÈTRES ----------------- */
.parameter-section {
    border-bottom: 1px solid #e9ecef;
    padding-bottom: 1rem;
}

.parameter-section:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.parameter-title {
    font-weight: 600;
    font-size: 16px;
}

.radius-slider-container {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

.radius-display-modal {
    font-weight: 600;
    font-size: 18px;
    min-width: 80px;
    text-align: center;
}

.radius-slider {
    height: 8px;
    background: linear-gradient(to right, #3492d4, #191557);
    border-radius: 5px;
    outline: none;
}

.radius-slider::-webkit-slider-thumb {
    appearance: none;
    width: 20px;
    height: 20px;
    background: #191557;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

.radius-slider::-moz-range-thumb {
    width: 20px;
    height: 20px;
    background: #191557;
    border-radius: 50%;
    cursor: pointer;
    border: none;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

.radius-presets .btn {
    margin-right: 5px;
    margin-bottom: 5px;
}

.radius-login-message {
    border: 2px dashed #191557;
}

.coming-soon {
    border: 1px dashed #ccc;
}

/* Responsive */
@media (max-width: 576px) {
    .modal-dialog {
        margin: 10px;
    }
    
    .radius-presets .btn {
        font-size: 12px;
        padding: 4px 8px;
    }
}

/* ------------Styles pour la navigation des flyers -----------------*/

.go-button {
    background: linear-gradient(135deg, #ff6b6b, #ff8e53);
    border: none;
    color: white;
    padding: 0.75rem 1.5rem;
    border-radius: 25px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: all 0.3s ease;
    cursor: pointer;
    font-size: 1rem;
}

.go-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(255, 107, 107, 0.4);
    color: white;
}

.navigation-container {
    position: relative;
}

.navigation-dropdown {
    /* position: absolute; */
    top: 100%;
    /* left: 50%; */
    /* transform: translateX(-50%); */
    background: white;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    z-index: 1000;
    min-width: 250px;
    padding: 0.5rem;
    display: none;
    margin-top: 0.5rem;
    border: 1px solid #e9ecef;
}

.navigation-dropdown.show {
    display: block;
    /* animation: slideDown 0.3s ease; */
}

@keyframes slideDown {
    from { 
        opacity: 0; 
        transform: translateX(-50%) translateY(-10px); 
    }
    to { 
        opacity: 1; 
        transform: translateX(-50%) translateY(0); 
    }
}

.nav-option {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    border-radius: 8px;
    text-decoration: none;
    color: #333;
    transition: all 0.2s ease;
    border: none;
    background: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
}

.nav-option:hover {
    background: #f8f9fa;
    transform: translateX(5px);
    color: #333;
}

.nav-option i {
    width: 20px;
    text-align: center;
    font-size: 1.2rem;
}

.maps-icon { color: #4285f4; }
.waze-icon { color: #00d4b5; }
.apple-icon { color: #007aff; }
.web-icon { color: #6c63ff; }

/* Responsive */
@media (max-width: 576px) {
    .navigation-dropdown {
        min-width: 200px;
        left: 0;
        transform: none;
        right: 0;
        margin: 0.5rem auto;
    }
    
    .go-button {
        padding: 0.6rem 1.2rem;
        font-size: 0.9rem;
    }
}

/* -------------Version élégante avec overlay pour appeler le tel directement version mobile -------------------*/
.phone-container {
    position: relative;
    display: inline-block;
}

.phone-link-enhanced {
    position: relative;
    display: inline-block;
    text-decoration: none;
    border-radius: 50%;
    overflow: hidden;
}

.call-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 113, 188, 0.9);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    border-radius: 50%;
}

.phone-link-enhanced:hover .call-overlay {
    opacity: 1;
}

.call-overlay i {
    font-size: 1.2rem;
    animation: pulse 1.5s infinite;
}

@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); }
}


/* -------Styles spécifiques pour les nav-tabs mobiles uniquement ----------*/

/* Style des boutons nav-link mobile */
.nav-tabs .nav-link {
    text-align: center;
    background-color: white;
    color: #191557 !important;
    border: 2px solid #191557;
    border-radius: 0;
    font-weight: 600;
    text-transform: uppercase;
    padding: 0.75rem 1rem;
    margin: 0;
    transition: all 0.3s ease;
}

/* Bouton actif en bleu */
.nav-tabs .nav-link.active {
    background-color: #191557;
    color: white !important;
    border-color: #191557;
}
    
/* Effet hover */
.nav-tabs .nav-link:hover {
    background-color: #191557;
    color: white !important;
    border-color: #191557;
    transform: translateY(0px);
}

/* Empêche l'effet hover sur le bouton actif */
.nav-tabs .nav-link.active:hover {
    background-color: #191557;
    color: white;
    border-color: #191557;
    transform: none;
}

@media (max-width: 575.98px) {
    /* Conteneur des nav-tabs mobile - flex horizontal */
    .d-block.d-sm-none .nav-tabs {
        width: 105%;
        border-bottom: none;
        margin-bottom: 1rem;
        display: flex;
        flex-direction: row;
        margin-left: -10px;
        margin-right: -10px;
    }
    
    /* Chaque bouton prend 50% de la largeur */
    .d-block.d-sm-none .nav-tabs .nav-item {
        flex: 1;
        border-bottom: none;
        margin: 0;
    }
    
    /* Style des boutons nav-link mobile */
    .d-block.d-sm-none .nav-tabs .nav-link {
        width: 50%;
    }
}

/*------------------Marker pour map en desktop ------------------------*/
/* Forcer l'affichage des marqueurs sur desktop */
@media (min-width: 576px) {
    .d-none.d-sm-block .leaflet-marker-icon {
        background-image: url('https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png') !important;
        background-size: contain !important;
        background-repeat: no-repeat !important;
    }
}

/* ----------- Map mobile complètement fixe ------------------- */

[data-mobile-map="true"] {
    position: relative;
    overflow: hidden;
}

[data-mobile-map="true"] .leaflet-container {
    cursor: default !important;
    touch-action: none !important;
    pointer-events: none !important;
}

[data-mobile-map="true"] .leaflet-control-zoom,
[data-mobile-map="true"] .leaflet-control-attribution {
    display: none !important;
}

/* Overlay pour bloquer les interactions */
[data-mobile-map="true"] .map-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 1000 !important;
    background: transparent !important;
    cursor: default !important;
    touch-action: none !important;
}


/* Suppression du padding supérieur en mobile pour les pages show  grâce à la classe show-page ajoutée au body_class.*/
@media (max-width: 767.98px) {
    body.show-page {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }
    
    body.show-page .container-fluid,
    body.show-page .container {
        padding-top: 0;
    }
}
/* ---------------- Customisation SweetAlert2 pour popup favoris ----------- */
.favoris-swal-popup {
    font-size: 14px !important;
    border-radius: 12px !important;
}

.favoris-swal-title {
    font-size: 1.2em !important;
    color: #2c3e50 !important;
    margin-bottom: 1rem !important;
}

.favoris-swal-content {
    margin: 0 !important;
    padding: 0 !important;
}

/* Mobile responsive pour SweetAlert2 */
@media (max-width: 480px) {
    .favoris-swal-popup {
        width: 95% !important;
        margin: 0 auto !important;
        font-size: 13px !important;
        padding: 1rem !important;
    }
    
    .favoris-swal-title {
        font-size: 1.1em !important;
    }
}

/*  ---------------- Ajouts CSS pour le rayon administrateur --------------   */

/* Badge administrateur dans le header de modal */
.modal-header .badge {
    font-size: 0.7rem;
    padding: 0.25rem 0.5rem;
    vertical-align: middle;
}

/* Alert spécial admin */
.parameter-section .alert-warning {
    border-left: 4px solid #f0723d;
    font-size: 0.9rem;
}

/* Boutons admin en orange */
.radius-presets .btn.bg-orange {
    background-color: #f0723d;
    color: white;
    border: none;
}

.radius-presets .btn.bg-orange:hover {
    background-color: #d65a2a;
    transform: translateY(-2px);
}

/* Slider étendu pour admin */
.radius-slider[max="10000"] {
    background: linear-gradient(to right, #3492d4, #191557, #f0723d);
}

/* Animation pour les boutons admin */
@keyframes adminPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.8; }
}

.parameter-section .alert-warning {
    animation: adminPulse 2s ease-in-out infinite;
}

/* Responsive pour les boutons admin supplémentaires */
@media (max-width: 576px) {
    .radius-presets .btn {
        font-size: 10px;
        padding: 3px 6px;
        margin: 2px;
    }
    
    .modal-header .badge {
        font-size: 0.6rem;
    }
}

/*  ------------------------    MON COMPTE  --------------- */

.ligne {
    border-bottom: 2px solid #191557;
    padding-bottom: 10px;
    margin-bottom: 20px;
}

/* ----------------------- flash décalés vers le bas -----------*/
/* Correction pour que les flash messages soient visibles sous la navbar */
#flash-messages {
    position: relative;
    z-index: 1060; /* Juste en dessus de la navbar (qui est à 1050) */
    /* margin-top: 70px;  */
    /*Ajustez selon la hauteur de votre navbar*/
}

/* ===------------ FILTRES HIÉRARCHIQUES  - Style liste simple  ------------=== */

/* Conteneur principal du filtre - aligné à gauche SOUS la navbar */
/* #filterDiv {
    position: relative;
    left: auto;
    right: 0;
    margin-left: auto;
    width: 50%;
    z-index: 1000;
    margin-top: 10px;
} */

#filterDiv .container {
    max-width: 100%; 
}

/* Positionner la div filtre en absolu pour qu'elle ne pousse pas la navbar */
#filterDiv {
    position: absolute;
    top: 100%;
    right: 0;
    width: 50%;
    z-index: 1000;
    margin-top: 0;
}

/* S'assurer que le contenu est scrollable si trop long */
.filter-content-filtre {
    /* max-height: 70vh; */
    overflow-y: auto;
}

/* Catégorie/Thème sélectionné - texte blanc en gras */
.filtre-selected,
.filtre-selected-sub {
    background-color: transparent;
    padding: 6px 5px;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.filtre-selected-sub {
    margin-left: 12px;
    font-size: 14px;
}

/* Bouton de reset (X) */
.btn-reset-filtre {
    /* color: white; */
    text-decoration: none;
    font-size: 14px;
    font-weight: normal;
    padding: 0 6px;
    opacity: 0.8;
    transition: opacity 0.2s;
}

.btn-reset-filtre:hover {
    opacity: 1;
    /* color: white; */
}

/* Liste de liens simple - texte blanc basique */
.btn-filtre-hierarchique,
.btn-filtre-hierarchique-sub,
.btn-filtre-hierarchique-sujet {
    display: block;
    width: 100%;
    text-align: left;
    padding: 3px 15px;
    background-color: transparent;
    border: none;
    color: white;
    text-decoration: none;
    transition: all 0.2s;
    font-size: 14px;
    border-radius: 0;
}

/* Décalage pour les thèmes - SANS trait */
.btn-filtre-hierarchique-sub {
    margin-left: 12px;
}

/* Double décalage pour les sujets - SANS trait */
.btn-filtre-hierarchique-sujet {
    margin-left: 24px;
}

/* État hover - soulignement simple */
.btn-filtre-hierarchique:hover,
.btn-filtre-hierarchique-sub:hover,
.btn-filtre-hierarchique-sujet:hover {
    background-color: transparent;
    color: white;
    text-decoration: underline;
}

/* État actif - texte en gras */
.btn-filtre-hierarchique-sub.active,
.btn-filtre-hierarchique-sujet.active {
    background-color: transparent;
    color: white;
    font-weight: 600;
}

/* Conteneurs avec indentation */
.filtre-list-indented,
.filtre-list-double-indented {
    margin-top: 4px;
    margin-bottom: 8px;
}

/* Titres des sections en blanc */
.filtre-list-indented h6,
.filtre-list-double-indented h6 {
    /* color: rgba(255, 255, 255, 0.7); */
    font-size: 14px;
    margin-left: 12px;
    margin-bottom: 4px;
    font-weight: normal;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.filtre-list-double-indented h6 {
    margin-left: 24px;
}

/* Style de la scrollbar pour le filtre */
.filter-content-filtre::-webkit-scrollbar {
    width: 6px;
}

.filter-content-filtre::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 3px;
}

.filter-content-filtre::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.5);
    border-radius: 3px;
}

.filter-content-filtre::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.5);
}

/* Responsive - sur mobile, prendre toute la largeur */
/* @media (max-width: 768px) {
    #filterDiv {
        width: 100%;
    }
} */

/* --------- Bannière PWA pour installer l'appli ------------------ */
/* ==========================================
   PWA INSTALL BANNER
   ========================================== */

.pwa-install-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: white;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
    padding: 1.5rem;
    z-index: 9999;
    transform: translateY(100%);
    transition: transform 0.3s ease-out;
    max-height: 80vh;
    overflow-y: auto;
}

.pwa-install-banner.pwa-show {
    transform: translateY(0);
}

.pwa-install-content {
    max-width: 600px;
    margin: 0 auto;
    position: relative;
}

.pwa-close {
    position: absolute;
    top: -10px;
    right: -10px;
    background: #f0f0f0;
    border: none;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    font-size: 1.2rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

.pwa-close:hover {
    background: #e0e0e0;
}

.pwa-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.pwa-icon {
    font-size: 2rem;
}

.pwa-header h3 {
    margin: 0;
    color: #191557;
    font-size: 1.25rem;
}

.pwa-steps {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem 0;
}

.pwa-steps li {
    padding: 0.75rem 0;
    padding-left: 2rem;
    position: relative;
    border-bottom: 1px solid #f0f0f0;
}

.pwa-steps li:last-child {
    border-bottom: none;
}

.pwa-steps li:before {
    content: "→";
    position: absolute;
    left: 0;
    color: #191557;
    font-weight: bold;
    font-size: 1.2rem;
}

.pwa-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.pwa-actions .btn {
    flex: 1;
    min-width: 120px;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

.pwa-actions .btn-primary {
    background: #191557;
    color: white;
}

.pwa-actions .btn-primary:hover {
    background: #005a94;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 113, 188, 0.3);
}

.pwa-actions .btn-secondary {
    background: #f0f0f0;
    color: #333;
}

.pwa-actions .btn-secondary:hover {
    background: #e0e0e0;
}

/* Responsive PWA Banner */
@media (max-width: 576px) {
    .pwa-install-banner {
        padding: 1rem;
    }
    
    .pwa-actions {
        flex-direction: column;
    }
    
    .pwa-actions .btn {
        width: 100%;
    }
}

/* TABLEAU USER responsive: scroll mobile et bureau= prendre toute la largeur */
@media (min-width: 992px) {
    .table-fixed-desktop {
        table-layout: fixed;
        width: 100%;
    }
    .table-fixed-desktop th:nth-child(1) { width: 13%; }
    .table-fixed-desktop th:nth-child(2) { width: 8%; }
    .table-fixed-desktop th:nth-child(3) { width: 17%; }
    .table-fixed-desktop th:nth-child(4) { width: 10%; }
    .table-fixed-desktop th:nth-child(5) { width: 6%; }
    .table-fixed-desktop th:nth-child(6) { width: 8%; }
    .table-fixed-desktop th:nth-child(7) { width: 6%; }
    .table-fixed-desktop th:nth-child(8) { width: 18%; }
    .table-fixed-desktop th:nth-child(9) { width: 14%; }
    .table-fixed-desktop td { word-break: break-word; }
}

@media (max-width: 991px) {
    .table-fixed-desktop {
        table-layout: auto;
    }
    .table-fixed-desktop td {
        word-break: normal;
        white-space: nowrap;
    }
}

/* Retrait du bouton google translate par defaut */
.goog-te-banner-frame,
.goog-te-gadget,
#goog-gt-tt,
.goog-tooltip,
.goog-tooltip:hover {
  display: none !important;
}

.flag{
    width:28px; 
    height:auto; 
    cursor:pointer; 
    border-radius:3px;
}

