/* --- bloc-accordeon.css --- */
/* --- Conteneur principal --- */
.blk-acc-wrapper {
    display: flex;
    flex-direction: column;
}

/* --- Intro --- */
.blk-acc-intro {
    margin: 0 0 3rem;
}

/* --- Toggle (h3) --- */
.blk-acc-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    width: 100%;
    border: none;
    padding: 1.8rem 2rem;
    cursor: pointer;
    text-align: left;
    background: transparent;
    margin: 0;
    font-size: 1.7rem;
    transition: color 0.2s ease, background 0.2s ease;
    line-height: 1.4;
}

.blk-acc-toggle:hover {
    color: var(--couleur-cta);
    background-color: rgba(0, 0, 0, 0.02);
}

.blk-acc-toggle.blk-acc-open {
    color: var(--couleur-cta);
}

/* --- Icône chevron --- */
.blk-acc-toggle-icon {
    flex-shrink: 0;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    background-color: var(--couleur-cta);
    display: flex;
    align-items: center;
    justify-content: center;
}

.blk-acc-toggle-icon i {
    color: #fff;
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

.blk-acc-toggle.blk-acc-open .blk-acc-toggle-icon i {
    transform: rotate(180deg);
}

.blk-acc-content {display: none; overflow: hidden; padding: 2rem;}
.blk-acc-content .blk-acc-detail h2 {font-size: 1.6rem; margin-top: 3rem; margin-bottom: .8rem; letter-spacing: .5rem;}

/* --- Champ de recherche --- */
.blk-acc-search {
    position: relative;
    margin-top: 3rem;
    margin-bottom: 2.5rem;
    width: 100%;
}

.blk-acc-search-icon {
    position: absolute;
    left: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--couleur-cta);
    font-size: 1.4rem;
    pointer-events: none;
}

.blk-acc-search-input {
    width: 100%;
    padding: 1.4rem 1.5rem 1.4rem 4rem;
    border: 2px solid rgba(0, 0, 0, 0.12);
    font-size: 1.5rem;
    background-color: #fff;
    color: var(--couleur-texte, #1a1a1a);
    transition: border-color 0.2s ease;
    outline: none;
}

.blk-acc-search-input:focus {
    border-color: var(--couleur-cta);
}

.blk-acc-search-input::placeholder {
    color: rgba(0, 0, 0, 0.4);
}

.blk-acc-no-result {
    display: block;
    margin-top: 1.5rem;
    font-size: 1.5rem;
    color: rgba(0, 0, 0, 0.5);
    font-style: italic;
}

/* --- Surlignage recherche --- */
.blk-acc-highlight {
    background-color: rgba(255, 213, 0, 0.45);
    color: inherit;
    padding: 0 2px;
    border-radius: 2px;
    font-weight: 700;
    font-style: normal;
}

/* --- Responsive --- */
@media (min-width: 768px) {
    .blk-acc-intro {
        max-width: 80rem;
    }

    .blk-acc-search {
        max-width: 100%;
    }
}

@media (min-width: 1025px) {
    .blk-acc-content {padding: 2rem 3rem;}
    .blk-acc-content .blk-acc-detail {max-width: 80rem;}
    .blk-acc-content .blk-acc-detail h2 {font-size: 1.8rem;}

}

/* --- bloc-accueil-groupes.css --- */
.bloc-accueil-groupes { padding: 2rem 0; }

.ag-grille {flex-wrap: wrap; gap: 2rem 3rem;}

.ag-carte {flex-direction: column; width: 100%; }

.ag-image { width: 100%; aspect-ratio: 16/9; overflow: hidden; }
.ag-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 500ms ease; }
.ag-carte:hover .ag-image img { transform: scale(1.04); }

.ag-contenu { padding: 2rem 0; flex: 1; }

.bloc-accueil-groupes h3 {text-transform: uppercase; letter-spacing: .08rem; }

.ag-texte { font-size: 1.5rem; line-height: 1.75; }
.ag-texte p { margin: 0 0 1rem; }
.ag-texte p:last-child { margin: 0; }
.ag-texte a { color: var(--couleur-cta); }
.ag-texte ul, .ag-texte ol { list-style: none; margin: 0; }
.ag-texte li { padding-left: 0; margin: .8rem 0; }

@media (min-width: 600px) {
}

@media (min-width: 900px) {
    .ag-grille { grid-template-columns: repeat(3, 1fr); }
    .ag-titre { font-size: 2.2rem; }
}
@media (min-width: 1025px) {
    .ag-grille {column-gap: 8rem;}
    .ag-carte {width: calc(50% - 4rem); }
}

/* --- bloc-agenda.css --- */


.bloc-agenda .agenda-offres-container {flex-wrap: wrap; gap: 2rem 4rem;}


.bloc-agenda .liste-offres {width: 100%; position: relative;}
.bloc-agenda .liste-offres .tcg-agenda-loader {width: max-content; margin: auto;}

.bloc-agenda .tcg-agenda-results {flex-wrap: wrap; gap: 2rem; padding: 2rem;}
.bloc-agenda .tcg-agenda-results .agenda-card {overflow: hidden; flex-direction: column; background-color: #fff; transition: all 300ms ease-in-out; width: 100%;}
.bloc-agenda .bloc-offre-agenda {flex-direction: column; height: 100%;}
.bloc-agenda .agenda-thumbnail {width: 100%; height: 16rem; position: relative; transition: transform 0.3s ease; background-image: url('/wp-content/uploads/2026/02/motif-vert-1.svg'); background-repeat: no-repeat; background-size: 12rem; background-position: center;}
.bloc-agenda .agenda-thumbnail::after {content: ""; background-color: rgba(16, 44, 53, .2); width: 100%;  height: 100%; left: 0; top: 0; position: absolute; transition: all 230ms ease-in-out;}
.bloc-agenda .agenda-content {padding: 1rem; flex-direction: column; flex: 1;}
.bloc-agenda .agenda-title {font-size: 1.8rem; margin: 0 0 0.8rem; font-weight: 800; letter-spacing: .08rem;}
.bloc-agenda .agenda-commune {font-weight: 400; text-transform: uppercase; font-size: 1.5rem;  width: 100%; margin-top: auto; margin-bottom: .4rem; letter-spacing: .03rem;}
.bloc-agenda .agenda-gratuit {margin-bottom: .8rem; color: var(--couleur-cta); font-size: 1.6rem; letter-spacing: .01rem; font-weight: 500;}


/* Badge Pays Sud Toulousain — vignette */
.bloc-agenda .agenda-badge-pst {
    position: absolute; bottom: 1rem; right: 0; z-index: 2;
    display: flex; align-items: center; gap: .6rem;
    background-color: var(--couleur-texte, #102c35);
    color: #fff;
    padding: .7rem 1.2rem .7rem .8rem;
    font-size: 1.1rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04rem;
    line-height: 1.2;
    max-width: 22rem;
}

/* Picto étoile */
.bloc-agenda .agenda-badge-pst i { color: gold; font-size: 1.3rem; flex-shrink: 0; }

.bloc-agenda .etiquette-date {position: absolute; top: 2rem;  left: 0; z-index: 1; background-color: var(--couleur-cta);  }
.bloc-agenda .agenda-date-box, .bloc-agenda .date-separator {color: #fff; padding: 1.5rem; text-transform: uppercase;}
.bloc-agenda .date-separator {align-items: center; padding: 0; font-size: 1.2rem;}

.bloc-agenda .agenda-day {font-size: 3rem; font-weight: 700;}
.bloc-agenda .agenda-month {font-size: 1.4rem; letter-spacing: .04rem;}



.bloc-agenda .agenda-offres-container .sidebar {width: 100%; background-color: var(--couleur-background-dark); padding: 3rem;} 
.bloc-agenda .sidebar-filtre input, .bloc-agenda .sidebar-filtre select { border: none; background-color: #fff; border-radius: 0; text-transform: uppercase; appearance: none; -webkit-appearance: none; -moz-appearance: none; }
.bloc-agenda .sidebar-filtre input[type="text"], .bloc-agenda .sidebar-filtre select { padding: 1.5rem; width: 100%; }
.bloc-agenda .sidebar-filtre input[type="date"] { padding: 1.2rem 1.5rem; width: 100%; }

/* Date range picker */
.bloc-agenda .date-filter { position: relative; }
.bloc-agenda .daterange-wrap { position: relative; display: flex; align-items: center; }
/* Flatpickr cache l'input original lui-même — on style tous les inputs visibles dans le wrap */
.bloc-agenda .daterange-wrap input {
    border: none; background-color: #fff; border-radius: 0;
    padding: 1.5rem 3.5rem 1.5rem 1.5rem;
    width: 100%; text-transform: uppercase;
    font-size: 1.3rem; cursor: pointer;
    appearance: none; -webkit-appearance: none;
}
.bloc-agenda .daterange-wrap .daterange-clear { position: absolute; right: 1rem; background: none; border: none; cursor: pointer; color: var(--couleur-texte); opacity: .5; font-size: 1.2rem; padding: 0.4rem; line-height: 1; }
.bloc-agenda .daterange-wrap .daterange-clear:hover { opacity: 1; }

/* Surcharge couleurs Flatpickr */
.agenda-flatpickr-calendar .flatpickr-day.inRange { background: color-mix(in srgb, var(--couleur-cta) 20%, transparent); border-color: transparent; box-shadow: -5px 0 0 color-mix(in srgb, var(--couleur-cta) 20%, transparent), 5px 0 0 color-mix(in srgb, var(--couleur-cta) 20%, transparent); }
.agenda-flatpickr-calendar .flatpickr-day.selected,
.agenda-flatpickr-calendar .flatpickr-day.startRange,
.agenda-flatpickr-calendar .flatpickr-day.endRange { background: var(--couleur-cta); border-color: var(--couleur-cta); }
.agenda-flatpickr-calendar .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
.agenda-flatpickr-calendar .flatpickr-day.startRange + .endRange:not(:nth-child(7n+1)) { box-shadow: -10px 0 0 var(--couleur-cta); }
.agenda-flatpickr-calendar .flatpickr-months .flatpickr-month,
.agenda-flatpickr-calendar .flatpickr-weekdays { background: var(--couleur-cta); }
.agenda-flatpickr-calendar .flatpickr-current-month,
.agenda-flatpickr-calendar .flatpickr-current-month .cur-month,
.agenda-flatpickr-calendar .flatpickr-current-month input.cur-year,
.agenda-flatpickr-calendar span.flatpickr-weekday { color: #fff; fill: #fff; }
.agenda-flatpickr-calendar .flatpickr-prev-month,
.agenda-flatpickr-calendar .flatpickr-next-month { fill: #fff !important; color: #fff !important; }
/* Sélecteur de mois : dropdown lisible */
.agenda-flatpickr-calendar .flatpickr-current-month select.flatpickr-monthDropdown-months {
    background: var(--couleur-cta);
    color: #fff;
    border: none;
    font-weight: 700;
    padding: 0 .4rem;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
.agenda-flatpickr-calendar .flatpickr-current-month select.flatpickr-monthDropdown-months option {
    background: #fff;
    color: var(--couleur-texte);
}
/* Champ année */
.agenda-flatpickr-calendar .flatpickr-current-month .numInputWrapper input.cur-year {
    color: #fff;
    font-weight: 700;
}
.agenda-flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowUp::after { border-bottom-color: #fff; }
.agenda-flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowDown::after { border-top-color: #fff; }

.bloc-agenda .sidebar-filtre input:focus-visible, .bloc-agenda .sidebar-filtre select:focus-visible {outline-color: var(--couleur-cta); outline-style: solid;}
.bloc-agenda .sidebar-filtre input[type="checkbox"] { margin-right: 0.5em; width: auto; flex-shrink: 0; border: 1px solid var(--couleur-texte); padding: 1rem;}
.bloc-agenda .sidebar-filtre input[type="checkbox"]:checked {background-color: var(--couleur-texte);}
.bloc-agenda .sidebar-filtre .categorie-checkbox {width: 100%; align-items: center; margin-bottom: .6rem;}
.bloc-agenda .sidebar-filtre .categorie-checkbox label {font-size: 1.3rem; font-weight: 400; text-transform: uppercase; margin: 0; margin: 0;}
.bloc-agenda .sidebar-filtre .categorie-checkbox label img {order: 1;}
.bloc-agenda .sidebar-filtre .liste-categories {gap: .6rem; flex-wrap: wrap; padding: 2rem; background-color: var(--couleur-background); width: 100%; display: none; }
.bloc-agenda .sidebar-filtre .liste-options {background-color: var(--couleur-background); width: 100%; display: none; padding: 2rem; flex-direction: column;}
.bloc-agenda .sidebar-filtre .liste-filtre { margin-bottom: 2rem;}
.bloc-agenda .sidebar-filtre .liste-filtre-options-acf .categorie-checkbox {margin-bottom: .6rem;}
.bloc-agenda .sidebar-filtre .liste-filtre .label-title {text-transform: uppercase; font-weight: 500; letter-spacing: .1rem; margin-bottom: 2rem; display: none;}
.bloc-agenda .sidebar-filtre .btn-filtre-agenda {border: none; color: rgba(16, 44, 53, .8); text-transform: uppercase; padding: 1.5rem; background-color: #fff; width: 100%;}





/* Barre de comptage */
#agenda-count-bar {
    padding: 1rem 2rem .5rem;
    min-height: 2.8rem;
}
#agenda-count-display {
    font-size: 1.3rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--couleur-texte);
    opacity: .65;
}

/* Infinite scroll — loaders et message de fin */
#agenda-more-loader {
    position: relative;
    margin: 10px 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
}
#agenda-end-msg {
    width: 100%;
    text-align: center;
    font-size: 1.3rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--couleur-texte);
    opacity: .4;
    padding: 2rem 0 1rem;
    margin: 0;
}

@media (hover: hover) {
    .bloc-agenda .tcg-agenda-results .agenda-card:hover {transform: translateY(-0.3rem); }
}


@media (min-width: 768px) {
    .bloc-agenda .tcg-agenda-results .agenda-card {width: calc(50% - 1rem);}
    .bloc-agenda .agenda-content {padding: 2rem;}
}

@media (min-width: 1025px) {
    .bloc-agenda .liste-offres {padding-right: 4rem; }
    .bloc-agenda .tcg-agenda-results {padding-top: 3rem;}
    .bloc-agenda .agenda-offres-container .sidebar {width: 30%;} 
    .bloc-agenda .sidebar-filtre .liste-filtre .label-title {display: block;}
    .bloc-agenda .sidebar-filtre .liste-filtre-options-acf, .bloc-agenda .sidebar-filtre .liste-filtre-type-agenda {margin-top: 5rem;}
    .bloc-agenda .sidebar-filtre .liste-categories, .bloc-agenda .sidebar-filtre .liste-options {padding: 0; background-color: transparent; display: flex;}
    .bloc-agenda .sidebar-filtre .categorie-checkbox {margin-bottom: 0;}
    .bloc-agenda .sidebar-filtre .btn-filtre-agenda {display: none;}
    .bloc-agenda .liste-offres {flex: 1;}


}

@media (min-width: 1300px) {
    .bloc-agenda .agenda-offres-container {gap: 2rem 8rem;}
    .bloc-agenda .tcg-agenda-results .agenda-card {width: calc(33% - 1.1rem);}
    .bloc-agenda .liste-offres .tcg-agenda-loader {margin: 5rem auto;}
}


@media (min-width: 1400px) {
    .bloc-agenda .agenda-offres-container .sidebar {width: 25%; padding: 3rem 6rem;} 
    .bloc-agenda .liste-offres {padding-right: 6rem; }
}

/* --- bloc-agenda-alaune.css --- */
.bloc-agenda-alaune .agenda-alaune-title h2 {text-transform: uppercase; font-size: 3rem; margin-bottom: 1.5rem; margin-top: 0; font-weight: 300;}
.bloc-agenda-alaune .agenda-alaune-content p {max-width: 80rem; margin: 1.5rem auto 0;}

.bloc-agenda-alaune .agenda-alaune-grid {gap: 1.5rem 3rem; flex-wrap: wrap; margin-top: 4rem;}

.bloc-agenda-alaune .agenda-alaune-card {width: 100%; height: inherit; flex-direction: column; background-color: var(--couleur-texte); color: #fff; overflow: hidden; position: relative;}

.bloc-agenda-alaune .agenda-alaune-media {height: 28rem; overflow: hidden; position: relative; background-color: #fff; background-image: url(/wp-content/uploads/2026/02/motif-vert.svg); background-size: 20rem; background-position: center; background-repeat: no-repeat;}
.bloc-agenda-alaune .agenda-alaune-media::after {content: ""; background-color: rgba(16, 44, 53, .2); width: 100%; height: 100%; left: 0; top: 0; position: absolute; transition: all 230ms ease-in-out;}
.bloc-agenda-alaune .agenda-alaune-media img { width: 100%; height: 100%; object-fit: cover; transition: all 230ms ease-in-out;}
.bloc-agenda-alaune .agenda-alaune-info {padding: 2rem; flex-direction: column; flex: 1; }

.bloc-agenda-alaune .agenda-dates {position: absolute; top: 2rem; left: 0; z-index: 1;  background-color: var(--couleur-cta);}
.bloc-agenda-alaune .agenda-dates .date-part {flex-direction: column; text-align: center; padding: 1.5rem;}
.bloc-agenda-alaune .agenda-dates span {text-transform: uppercase;}
.bloc-agenda-alaune .agenda-dates span.date-jour {font-size: 3.5rem; font-weight: 700;}
.bloc-agenda-alaune .agenda-dates span.date-mois {font-size: 1.4rem; letter-spacing: .04rem;}
.bloc-agenda-alaune .agenda-dates span.date-sep {font-size: 1.2rem; align-items: center;}

.bloc-agenda-alaune .agenda-alaune-info h3, .bloc-agenda-alaune .agenda-alaune-lieu {text-transform: uppercase;  color: #fff;}
.bloc-agenda-alaune .agenda-alaune-info h3 {font-size: 1.6rem; font-weight: 600; margin-bottom: 1rem; letter-spacing: .1rem; margin-top: 0; }
.bloc-agenda-alaune .agenda-alaune-lieu {font-size: 1.4rem; margin-bottom: .5rem; margin-top: auto;}

.bloc-agenda-alaune .agenda-alaune-empty {font-size: 2rem;}

.bloc-agenda-alaune .slick-track {display: flex !important;}

@media (hover: hover) {
    .bloc-agenda-alaune .agenda-alaune-card:hover {transform: var(--transform-scale); box-shadow: var(--box-shadow);}
    .bloc-agenda-alaune .agenda-alaune-card:hover img {transform: scale(1.1);}
    .bloc-agenda-alaune .agenda-alaune-card:hover .agenda-alaune-media::after {background-color: rgba(16, 44, 53, 0);}

}
@media (min-width:  768px) {
.bloc-agenda-alaune .agenda-alaune-card.slick-slide {margin: 0 1.5rem;}
}

@media (min-width:  1100px) {
    .bloc-agenda-alaune .agenda-alaune-grid {margin-top: 6.5rem;}
    .bloc-agenda-alaune .agenda-alaune-title h2 {font-size: 6rem;}
    .bloc-agenda-alaune .agenda-alaune-card {width: calc(33.3% - 2rem);}

}



/* --- bloc-bon-plan.css --- */
.bloc-bon-plan {padding: 4rem 0; flex-direction: column; gap: 3rem;}

/* Séparateur entre les items */
.bon-plan-item + .bon-plan-item {border-top: 1px solid rgba(255,255,255,.08);}

/* Carte */
.bon-plan-inner {align-items: stretch; gap: 0; flex-wrap: wrap;}

/* Version inversée (photo à droite) */
.bon-plan-inner--reverse {flex-direction: row-reverse;}

/* Photo — occupe toute la hauteur de la carte */
.bon-plan-photo {position: relative; width: 100%; flex-shrink: 0; overflow: hidden; min-height: 28rem;}
.bon-plan-photo img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 600ms ease;}
.bon-plan-inner:hover .bon-plan-photo img {transform: scale(1.04);}

/* Badge sur la photo */
.bon-plan-badge {position: absolute; top: 2rem; left: 2rem; background: var(--couleur-cta); color: #fff; font-size: 1.15rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; padding: .6rem 1.4rem; z-index: 1;}
.bon-plan-badge--inline {display: inline-block; position: static; margin-bottom: 1.6rem; background: var(--couleur-cta); color: #fff; font-size: 1.15rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; padding: .6rem 1.4rem;}

/* Contenu — reset couleur de base pour tout le bloc */
.bon-plan-content {flex: 1; padding: 3.5rem 3rem; flex-direction: column; min-width: 0; justify-content: center; color: #fff; background-color: var(--couleur-texte);  z-index: 1; position: relative; overflow: hidden;}

.bon-plan-titre {font-size: 2.8rem; font-weight: 800; margin: 0 0 .5rem; color: #fff; text-transform: uppercase; letter-spacing: .08em;}

.bon-plan-accroche {font-size: 1.8rem; margin: 0; text-transform: uppercase; letter-spacing: .08em; color: #fff;}

/* Infos pratiques */
.bon-plan-infos {list-style: none; margin: 2rem 0; padding: 0; flex-direction: column; gap: 1rem;}
.bon-plan-infos li {display: flex; align-items: center; gap: 1rem; font-weight: 500; color: #fff; font-size: 1.6rem;}
.bon-plan-infos li i {flex-shrink: 0; width: 1.6rem; text-align: center;}

/* Description */
.bon-plan-description {font-size: 1.5rem; font-weight: 300; line-height: 1.75; color: rgba(255,255,255,.75); margin: 0;}
.bon-plan-description p {margin: 2rem 0;color: #fff; font-size: 1.8rem;} 
.bon-plan-description a {color: var(--couleur-cta) ; text-decoration: underline; text-underline-offset: .3rem; transition: opacity 200ms;}
.bon-plan-description a:hover {opacity: .75;}

/* Liste à icônes dans la description (ul > li > i + span) */
.bon-plan-description ul {list-style: none; margin: 1.2rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; border-top: 1px solid rgba(255,255,255,.1); padding-top: 1.6rem;}
.bon-plan-description ul li {display: flex; align-items: center; gap: 1rem; font-size: 1.4rem; font-weight: 400; color: rgba(255,255,255,.85); padding: .5rem .8rem; background: rgba(255,255,255,.05); border-left: 3px solid var(--couleur-cta);}
.bon-plan-description ul li i {color: var(--couleur-cta); font-size: 1.3rem; flex-shrink: 0; width: 1.6rem; text-align: center;}
.bon-plan-description ul li span {color: rgba(255,255,255,.85);}


.bon-plan-content .btn-cta {margin-top: 2rem; background: linear-gradient(#fff, #fff) left / 0% 100% no-repeat; background-color: var(--couleur-cta); }
.bon-plan-content .btn-cta:hover {color: var(--couleur-texte); gap: 1.6rem;}
.bon-plan-content .btn-cta i {font-size: 1.2rem; transition: transform 240ms ease; color: inherit;}
.bon-plan-content .btn-cta:hover i {transform: translateX(.4rem);}

.bon-plan-content::after {content: url(/wp-content/uploads/2026/03/motif-blanc.svg); width: 30rem; height: 40rem; position: absolute; bottom: 0; right: -15rem; opacity: .15; z-index: -2;}


@media (min-width: 768px) {
}

@media (min-width: 1025px) {
    .bon-plan-titre {font-size: 3.4rem;}
    .bon-plan-content { width: 50%; top: 4rem; right: 4rem; border: 3rem solid var(--couleur-background); padding: 5rem 4.5rem;}
    .bon-plan-photo {width: 50%; height: 50rem; top: -5rem; left: 5rem; overflow: hidden;}
    .bon-plan-content::after {width: 40rem; height: 45rem; right: -20rem;}


}


/* --- bloc-brochures.css --- */
/* Bloc Brochures - Styles */

.bloc-brochures .brochure-list {flex-wrap: wrap; gap: 3rem 2rem; margin: 50px 0;}
.bloc-brochures .brochure-item {width: calc(50% - 1rem); flex-direction: column;}
.bloc-brochures .brochure-item .brochure-thumbnail {height: 22rem; background-color: var(--couleur-background-dark); background-image: url('/wp-content/uploads/2026/02/motif-vert-1.svg'); background-repeat: no-repeat; background-position: center; background-size: 12rem; }
.bloc-brochures .brochure-item .brochure-thumbnail img {object-fit: contain; height: 100%; width: 100%;}
.bloc-brochures .brochure-infos {flex-wrap: wrap; padding: 2rem 0 0; flex: 1; gap: .5rem 3rem; height: 100%;}
.bloc-brochures .brochure-item h3 {text-transform: uppercase; width: 100%; margin: 0; letter-spacing: .08rem; font-size: 1.5rem;}
.bloc-brochures .brochure-infos a {padding: .5rem 0; color: var(--couleur-cta); margin-top: auto;}
.bloc-brochures .brochure-infos a i { padding-right: .6rem; font-size: 1.4rem;}


@media (hover: hover) {
   .bloc-brochures .brochure-infos a:hover, .bloc-brochures .brochure-infos a:hover i {color: var(--couleur-texte);}
}





/* Responsive */
@media (min-width: 768px) {
    .bloc-brochures .brochure-list {gap: 3rem;}
    .bloc-brochures .brochure-item {width: calc(50% - 1.5rem);}
    .bloc-brochures .brochure-item .brochure-thumbnail {height: 28rem; }
    .bloc-brochures .brochure-item h3 {font-size: 1.8rem;}
}

@media (min-width: 1025px) {
    .bloc-brochures .brochure-item {width: calc(33.3% - 3.3rem);}
    .bloc-brochures .brochure-item .brochure-thumbnail {height: 35rem; }
    .bloc-brochures .brochure-item .brochure-thumbnail img {object-fit: cover; }
}

@media (min-width: 1400px) {
    .bloc-brochures .brochure-list {gap: 8rem 5rem;}
    .bloc-brochures .brochure-item {width: calc(25% - 3.8rem);}
}

@media (min-width: 1800px) {
    .bloc-brochures .brochure-item .brochure-thumbnail {height: 38rem;}
}

/* --- bloc-bureaux-oti.css --- */
/* ══════════════════════════════════════════
   BLOC BUREAUX OTI
   ══════════════════════════════════════════ */

.bloc-bureaux-oti { padding: 4rem 0; }

.boi-grid {flex-wrap: wrap; gap: 3rem;}
.boi-card {position: relative; overflow: hidden; cursor: pointer; outline: none; height: 65vh; width: 100%;}
.boi-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); pointer-events: none;}



.boi-card-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .55s ease;
}
.boi-card:hover .boi-card-bg { transform: scale(1.07); }
.boi-card-bg-placeholder { background: #d4cfc6; }


.boi-card-infos {position: relative; flex-direction: column; justify-content: flex-end; padding: 2.4rem 2rem 2rem; color: #fff; z-index: 1; }

.boi-card-nom {font-size: 1.8rem; letter-spacing: .25rem; font-weight: 600; text-transform: uppercase; color: #fff; margin: 0 0 1rem; }

.boi-card-adresse, .boi-card-tel {color: #fff; margin: .5rem 0;}
.boi-card-adresse i,
.boi-card-tel i { font-size: 1.1rem; flex-shrink: 0; opacity: .85; }
.boi-card-cta {display: inline-flex; align-items: center; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: #fff; background-color: var(--couleur-cta); width: fit-content; padding: .5rem .8rem; margin-top: 2rem;}

@media (hover: hover) {
    .boi-card:hover {box-shadow: inset 25em 0 0 0 var(--couleur-texte);}
}



/* ══════════════════════════════════════════
   DRAWER (panneau latéral)
   ══════════════════════════════════════════ */

.boi-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    visibility: hidden;
    pointer-events: none;
    transition: visibility 0s .38s;
}
.boi-modal.is-open {
    visibility: visible;
    pointer-events: auto;
    transition: visibility 0s 0s;
}

/* Overlay sombre */
.boi-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(20, 16, 8, .6);
    opacity: 0;
    transition: opacity .38s;
    cursor: pointer;
}
.boi-modal.is-open .boi-modal-overlay { opacity: 1; }

/* Panneau — plus large */
.boi-modal-panel {position: relative; margin-left: auto; width: min(76rem, 100%); height: 100%; background: var(--couleur-background); overflow-y: auto; transform: translateX(100%); transition: transform .4s cubic-bezier(.4, 0, .2, 1); flex-direction: column;}
.boi-modal.is-open .boi-modal-panel { transform: translateX(0); }

/* Bouton fermer */
.boi-modal-close  { position: sticky; top: 1rem; left: 1rem; z-index: 2; background: var(--couleur-texte); color: #fff; border: none; width: 4rem; height: 4rem; font-size: 2.5rem; cursor: pointer; align-items: center; justify-content: center; flex-shrink: 0; transition: background 200ms;}
.boi-modal-close:hover { background: var(--couleur-cta); color: #fff; }

/* Photo drawer */
.boi-drawer-photo {
    width: 100%;
    aspect-ratio: 16 / 6;
    overflow: hidden;
    flex-shrink: 0;
    margin-top: -4.4rem;
}
.boi-drawer-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Contenu drawer */
.boi-drawer-content {flex-direction: column; flex: 1; padding: 2rem;}
.boi-drawer-nom {font-size: 2rem; font-weight: 800; text-transform: uppercase; letter-spacing: .5rem; color: var(--couleur-texte); margin: 0; padding-bottom: 1.4rem;}
.boi-drawer-desc {font-weight: 300; margin: 0 0 2rem;}

/* Coordonnées drawer */
.boi-drawer-coords {flex-direction: column; gap: .8rem; margin-top: 1rem;}
.boi-drawer-coords p {
    display: flex;
    align-items: center;
    gap: .7rem;
    font-size: 1.5rem;
    margin: 0;
    color: var(--couleur-texte);
}
.boi-drawer-coords a { color: var(--couleur-texte); text-decoration: none; }

.boi-drawer-section {flex-direction: column; margin: 4rem 0 2.5rem;}
.boi-drawer-section-title {text-transform: uppercase; font-weight: 500;  letter-spacing: .1rem; font-size: 1.8rem; gap: 1rem; margin-top: 0;}



/* ── MÉTÉO ── */
.boi-modal .grid-meteo {gap: 1rem; flex-direction: column;}
.boi-meteo-current {align-items: center; padding: 1.8rem 2rem 1.8rem 0; flex-wrap: wrap; background-color: #fff;  width: 100%; overflow: hidden; position: relative;}
.boi-meteo-current .boi-meteo-day-label {font-size: 2rem;}
.meteo-current-right {flex-direction: column;}
.meteo-current-left {width: 45%; position: relative; height: 100%;}
.boi-meteo-icon {position: absolute; left: -5rem; font-size: 15rem; color: var(--couleur-cta); top: 50%; transform: translateY(-50%);}
.boi-meteo-temps {flex-direction: column; gap: .2rem; margin-bottom: 1rem;}
.boi-meteo-temp {font-size: 4rem; font-weight: 800;}
.boi-meteo-desc {
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--couleur-texte);
    text-transform: capitalize;
}

/* Prévisions 3 jours */
.boi-meteo-forecast {gap: 1rem; flex-direction: column; flex: 1;}
.boi-meteo-day {flex-direction: column; align-items: center; background: #fff; text-align: center; padding: 2rem;}
.boi-meteo-day-label { font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 1rem;}
.boi-meteo-day i {
    font-size: 2.2rem;
    color: var(--couleur-cta);
}
.boi-meteo-day-temps {gap: .5rem; align-items: baseline; font-size: 1.8rem; }
.boi-meteo-day-temps b { color: var(--couleur-texte); font-weight: 700; }
.boi-meteo-day-temps span { color: #aaa; }
.boi-meteo-error { font-size: 1.35rem; color: #aaa; font-style: italic; }


/* ── HORAIRES ── */
.boi-horaires-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.4rem;
}
@media (min-width: 480px) {
    .boi-horaires-grid { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
}
.boi-saison {flex-direction: column; background: #fff; padding: 1.5rem; }
.boi-saison-label { display: inline-block; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 1rem;}
.boi-saison-haute {color: #e84e1b; }
.boi-saison-moyenne {color: #00a09a; }
.boi-saison-basse {color: #36a9e0; }


.boi-saison p {font-weight: 300; margin: 0;}
.boi-saison p.boi-saison-periode {font-style: italic; margin: 0 0 .5rem; }

/* ── LIO ── */
.boi-lio-list {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
}
.boi-lio-link {align-items: center;  gap: 1rem; font-size: 1.35rem; color: var(--couleur-cta); padding: .75rem 1.4rem; border: 1.5px solid var(--couleur-cta); transition: background .2s, color .2s;}
.boi-lio-link:hover { background: var(--couleur-cta); color: #fff; }
.boi-lio-link i { font-size: 1.1rem; }



/* ── LABELS drawer ── */
.boi-labels-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1.6rem;
    align-items: center;
}
.boi-drawer-label-img {height: 6rem;  width: 8rem;  object-fit: contain;}


/* ── Scroll lock ── */
body.boi-noscroll { overflow: hidden; }


@media (min-width: 1025px) {
    .boi-card {position: relative; overflow: hidden; cursor: pointer; outline: none; height: 65vh; width: calc(33% - 1.7rem);}
    .boi-drawer-nom {font-size: 4rem;}
    .boi-drawer-section-title {font-size: 2rem;}
    .boi-drawer-content {padding: 3rem 5rem;}
    .boi-modal .grid-meteo {flex-direction: row;}
    .boi-meteo-current {width: 55%;}
    .boi-drawer-label-img {width: auto;}


}


/* --- bloc-carte-offres.css --- */


.carte-offres-ts .liste-filtres-ts {width: 100%; background-color: var(--couleur-background-dark); gap: 1.5rem 2rem; padding: 4rem 2rem; flex-wrap: wrap;}
.carte-offres-ts .liste-filtres-ts .liste-filtre {flex: 1 0 calc(50% - 1rem);}
.carte-offres-ts .liste-filtres-ts .liste-filtre label {text-transform: uppercase;}

.carte-offres-ts .liste-filtres-ts .liste-filtre input, .carte-offres-ts .liste-filtres-ts .liste-filtre select {border: none; text-transform: uppercase; padding: 1.5rem; appearance: none; -webkit-appearance: none; -moz-appearance: none;  width: 100%; background-color: #fff;}
.carte-offres-ts .liste-filtres-ts .liste-filtre input:focus-visible, .carte-offres-ts .liste-filtres-ts .liste-filtre select:focus-visible {outline-color: var(--couleur-cta); outline-style: solid;}


.carte-offres-ts .liste-filtres-ts .liste-filtre #filtre-labels  {border: none; color: rgba(16, 44, 53, .8); text-transform: uppercase; padding: 1.5rem; background-color: #fff;  width: 100%;}
.carte-offres-ts .liste-filtre-labels {position: relative; width: 100%;}
.carte-offres-ts .liste-filtre-labels .liste-checkbox-labels {display: none; padding: 2rem; background-color: var(--couleur-background); position: absolute; z-index: 2; width: 100%; box-shadow: var(--box-shadow); }

.carte-offres-ts .liste-filtre-labels .checkbox-label {display: flex; align-items: center; margin-bottom: .3rem;}
.carte-offres-ts .liste-filtres-ts .liste-filtre-labels {width: 100%;}
.carte-offres-ts .liste-filtre-labels .checkbox-label input[type="checkbox"] { margin-right: 0.5em; width: auto; flex-shrink: 0; border: 1px solid var(--couleur-texte); padding: 1rem;}
.carte-offres-ts .liste-filtre-labels .checkbox-label input[type="checkbox"]:checked {background-color: var(--couleur-texte);}
.carte-offres-ts .liste-filtre-labels .checkbox-label label {display: flex; align-items: center; gap: 0.5em; width: auto;margin: 0;font-size: 1.3rem;cursor: pointer;}

/* Bouton toggle Halte & Repos */
.carte-offres-ts .liste-filtres-ts .liste-filtre-halte-repos, .carte-offres-ts .liste-filtres-ts .liste-filtre-distance {width: 100%; flex: auto;}
.btn-halte-repos {display: inline-flex; align-items: center; gap: .7rem; border: 2px solid #fff; background: var(--couleur-background); color: var(--couleur-texte); font-size: 1.3rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: 1.2rem 2rem; cursor: pointer; transition: background-color 200ms, color 200ms; width: 100%;}
.btn-halte-repos i {font-size: 1.3rem; color: var(--couleur-cta); transition: color 200ms;}
.btn-halte-repos.is-active {background-color: var(--couleur-cta); color: #fff;}
.btn-halte-repos.is-active i {color: #fff;}

/* Markers carte custom */
.map-marker-wrap {display: flex; flex-direction: column; align-items: center; filter: drop-shadow(0 2px 4px rgba(0,0,0,.35));}
.map-marker-body {width: 36px; height: 36px; border-radius: 50%; background: var(--mc, var(--couleur-cta)); display: flex; align-items: center; justify-content: center;}
.map-marker-body i {color: #fff; font-size: 14px;}
.map-marker-tip {width: 0; height: 0; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 10px solid var(--mc, var(--couleur-cta));}

.mobile-alternate {width: 100%;}
.mobile-alternate button {border: none; background-color: var(--couleur-cta); color: #fff; border-radius: 0; text-transform: uppercase; padding: 1.5rem; width: 50%; font-size: 1.6rem; font-weight: 600; letter-spacing: .05rem; opacity: .7;}
.mobile-alternate button.active {opacity: 1;}
.carte-offres-ts .contenu-offres-ts {gap: 2rem 5rem; width: 100%; justify-content: flex-end; flex-wrap: wrap; position: relative;}
.carte-offres-ts .contenu-offres-ts .map-container {width: 100%; height: 70vh; position: absolute; left: 0; top: 8rem; transform: translateX(-100vw); transition: all 300ms ease-in-out;}
.carte-offres-ts .contenu-offres-ts .map-container.active {transform: translateX(0);}
.carte-offres-ts .liste-offres { padding: 3rem 2rem; transition: all 280ms ease-in-out;}
.carte-offres-ts .liste-offres.mobile-view {padding-top: 80vh;}
.carte-offres-ts .liste-offres #offres_loader {gap: 2rem; flex-wrap: wrap;}
.carte-offres-ts .bloc-offre { overflow: hidden; flex-direction: column; transition: all 300ms ease-in-out; width: 100%;}
.carte-offres-ts .bloc-offre a {text-decoration: none; flex-direction: column; height: 100%; background-color: #fff;}
.carte-offres-ts .bloc-offre .offre-thumb {background-size: cover; background-position: center; height: 18rem; width: 100%; background-color: var(--couleur-background-dark); background-repeat: no-repeat; }
.carte-offres-ts .bloc-offre .titre-picto {row-gap: 0.5rem; flex: 1; column-gap: 1rem; align-items: baseline; flex-wrap: wrap;}

.carte-offres-ts .bloc-offre .container-fa-liste-offre {margin-top: auto;}


.carte-offres-ts .offre-contenu {padding: 1rem; flex-direction: column; flex-grow: 1;}

.carte-offres-ts .bloc-offre .commune-cat {font-weight: 400; text-transform: uppercase; font-size: 1.4rem; width: 100%; margin-top: .5rem; margin-bottom: .4rem; }
.carte-offres-ts .bloc-offre .commune-cat i {margin-right: .3rem; font-size: 1.3rem;} 

.carte-offres-ts .bloc-offre .offre-titre {font-size: 1.8rem; margin: 0 0 0.5rem; font-weight: 800; letter-spacing: .08rem;}



.carte-offres-ts .bloc-offre .classement-etoile i,
.container-fa-liste-offre i { color: var(--e-global-color-secondary); vertical-align: middle; font-size: 12px;}

/* Barre de comptage des résultats */
#offres-count-bar {padding: 0 0 1rem;  min-height: 2.8rem; }
#offres-count-display {
    font-size: 1.3rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--couleur-texte);
    opacity: .65;
}

/* Infinite scroll — loaders et message de fin */
#offres-more-loader {
    position: relative;
    margin: 10px 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
}
#offres-end-msg {
    width: 100%;
    text-align: center;
    font-size: 1.3rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--couleur-texte);
    opacity: .4;
    padding: 2rem 0 1rem;
    margin: 0;
}

/* Lien popup carte */
.popup-link {
    display: inline-block;
    margin-top: .6rem;
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
    text-decoration: underline;
    z-index: 1;
    position: relative;
}

#loader {
    position: relative;
    margin: 20px 0;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
}

#map:not(.map-right) .leaflet-popup .leaflet-popup-content {aspect-ratio: 1/1;  width: 20rem; position: relative; border: 1px solid #fff;}

#map:not(.map-right) .leaflet-popup .leaflet-popup-content::after {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.5);
}

#map:not(.map-right) .leaflet-popup .popup-content {
    height: 100%;
    padding: 10px;
    display: flex;
    flex-direction: column;
    justify-content: end;
    background-size: cover;
    background-repeat: no-repeat;
}
#map:not(.map-right) .leaflet-popup .popup-content .popup-link {color: #fff;}

#map:not(.map-right) .leaflet-popup .leaflet-popup-content-wrapper {
    border-radius: 0;
}

#map:not(.map-right) .leaflet-popup .leaflet-popup-content-wrapper .leaflet-popup-content {
    margin: 0;
}

#map:not(.map-right) .leaflet-popup .popup-content h4,
#map .leaflet-popup .popup-content h3,
#map .leaflet-popup .popup-content p {
    color: #fff; margin: 0; font-family: 'Lato', sans-serif; z-index: 1;
}

#map:not(.map-right) .leaflet-popup .popup-content h4 {font-size: 1.4rem; background-color: var(--couleur-cta); max-width: max-content;  padding: 0 4px; margin-bottom: .4rem;}

#map:not(.map-right) .leaflet-popup .popup-content h3 {font-size: 1.6rem;  font-weight: 700; line-height: normal; letter-spacing: .02rem;}

#map:not(.map-right) .leaflet-popup .popup-content p {
    top: 10px;
    left: 10px;
    right: 10px;
    font-size: 12px;
}

.leaflet-container {
    z-index: 0;
}

#map:not(.map-right) .leaflet-popup a.leaflet-popup-close-button {
    color: #fff !important;
    z-index: 2;
}


/* Double range slider distance */
/* Zone du slider : padding-top pour laisser place aux bulles */
.liste-filtre-distance .dual-range-wrap-outer {padding-top: 3rem; padding-bottom: .5rem; }
.dual-range-wrap {
    position: relative;
    height: 6px;
    margin: 0 1rem;
}
.dual-range-track {
    position: absolute;
    inset: 0;
    background: #ddd;
    border-radius: 3px;
}
.dual-range-track::after {content: ''; position: absolute; left: var(--range-min, 0%); right: calc(100% - var(--range-max, 100%)); height: 100%;  background: var(--couleur-texte);  border-radius: 3px;}
/* Bulles valeurs */
.dual-range-bubble {position: absolute; bottom: calc(100% + 1rem); background: var(--couleur-texte); color: #fff; font-size: 1.3rem; font-weight: 700;  padding: .4rem .9rem; border-radius: .4rem;  white-space: nowrap; pointer-events: none; line-height: 1; transform: translateX(-50%);}
.dual-range-bubble::after {content: ''; position: absolute;  top: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: var(--couleur-texte);}
.dual-range-bounds {
    display: flex;
    justify-content: space-between;
    font-size: 1.2rem;
    color: #999;
    margin-top: 1rem;
}
/* Annuler les styles globaux des inputs sur les range */
.carte-offres-ts .liste-filtres-ts .liste-filtre-distance input[type="range"] { background-color: transparent !important; padding: 0 !important; border: none !important;}
.dual-range-wrap input[type="range"] {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: calc(100% + 1.8rem);
    left: -.9rem;
    height: 1.8rem;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    pointer-events: none;
    outline: none;
}
.dual-range-wrap input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: var(--couleur-texte);
    border: 3px solid #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,.25);
    pointer-events: all;
    cursor: pointer;
}
.dual-range-wrap input[type="range"]::-moz-range-thumb {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: var(--couleur-texte);
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,.25);
    pointer-events: all;
    cursor: pointer;
}

/* Filtre distance agrandi quand difficulté absent */
.liste-filtre-distance--large { width: calc(66% - 1.1rem); }


@media (hover: hover) {
    .carte-offres-ts .bloc-offre:hover {transform: translateY(-0.3rem);}
    .btn-halte-repos:not(.is-active):hover {background-color: var(--couleur-background);}
}
@media (min-width: 768px) {
    .carte-offres-ts .bloc-offre {width: calc(50% - 1rem);}
    .carte-offres-ts .liste-filtres-ts .liste-filtre-halte-repos, .carte-offres-ts .liste-filtres-ts .liste-filtre-distance {flex: 1 0 calc(50% - 1rem);}
}
@media (min-width: 1025px) {
    .carte-offres-ts .offre-contenu {padding: 1.5rem 2rem;}
    .carte-offres-ts .liste-filtres-ts .liste-filtre, .carte-offres-ts .liste-filtres-ts .liste-filtre-halte-repos, .carte-offres-ts .liste-filtres-ts .liste-filtre-distance {flex: 1 0 calc(33.3% - 1.1rem);} 
    .carte-offres-ts .liste-offres {padding-left: 4rem; padding-top: 3rem; flex: 1;}
    .carte-offres-ts .contenu-offres-ts .map-container {width: 40%; top: 0; position: sticky; align-self: flex-start; height: 100vh; min-height: 600px; transform: none; }
    .mobile-alternate {display: none;}
    

}
@media (min-width: 1400px) {
    .liste-filtre-distance--large { width: 53rem; }
    .carte-offres-ts .contenu-offres-ts {gap: 2rem 8rem;}
    .carte-offres-ts .liste-offres {padding-left: 6rem;}
}

@media (min-width: 1500px) {
    .carte-offres-ts .liste-filtres-ts {padding: 4rem 6rem; justify-content: center; gap: 1.5rem 3rem; }
    .carte-offres-ts .liste-filtres-ts .liste-filtre {width: 25rem; flex: none;}
    .carte-offres-ts .liste-filtres-ts .liste-filtre-halte-repos {width: max-content;}
    .carte-offres-ts .bloc-offre {width: calc(33.3% - 1.5rem);}


}


/* --- bloc-communes.css --- */
/* =============================================
   Bloc Communes
   ============================================= */


#communes_loader .bloc-commune-item a {
    text-decoration: none;
    flex-direction: column;
    height: 100%;
    background-color: #fff;
}
#communes_loader .bloc-commune-item .prox-card-thumb {
    background-size: cover;
    background-position: center;
    height: 18rem;
    width: 100%;
    background-color: var(--couleur-background-dark);
    background-repeat: no-repeat;
}

/* Filtres */
.communes-ts .communes-filtres { width: 100%; background-color: var(--couleur-background-dark); gap: 1.5rem 2rem; padding: 3rem 2rem; flex-wrap: wrap; }
.communes-ts .communes-filtre { width: 100%; }

.communes-ts .communes-filtre-titre {width: 100%;}
.communes-ts .communes-filtre-titre input {width: 100%;}

/* Checkboxes filtres */
.communes-ts .communes-filtre-options { gap: .5rem 2rem; flex-wrap: wrap; align-items: center; }
.communes-ts .communes-checkbox-label { display: flex; align-items: center; }
.communes-ts .communes-checkbox-label label { display: flex; align-items: center; gap: .6em; font-size: 1.3rem; cursor: pointer; text-transform: uppercase; }
.communes-ts .communes-checkbox-label input[type="checkbox"] { width: 1.6rem; height: 1.6rem; flex-shrink: 0; cursor: pointer; accent-color: var(--couleur-cta); }
.communes-ts .communes-checkbox-label input[type="checkbox"]:checked { background-color: var(--couleur-texte);}


/* Layout */
.contenu-communes-ts { gap: 2rem 4rem; width: 100%; justify-content: flex-end; flex-wrap: wrap; position: relative; }
.liste-communes { padding: 3rem 2rem; transition: all 280ms ease-in-out; }
.liste-communes #communes_loader { gap: 2rem; flex-wrap: wrap; display: flex; }

/* Carte mobile */
.mobile-alternate-communes { width: 100%; }
.mobile-alternate-communes button { border: none; background-color: var(--couleur-cta); color: #fff; border-radius: 0; text-transform: uppercase; padding: 1.5rem; width: 50%; font-size: 1.6rem; font-weight: 600; letter-spacing: .05rem; opacity: .7; }
.mobile-alternate-communes button.active { opacity: 1; }
.map-container-communes { width: 100%; height: 70vh; position: absolute; left: 0; top: 8rem; transform: translateX(-100vw); transition: all 300ms ease-in-out; }
.map-container-communes.active { transform: translateX(0); }
.liste-communes.mobile-view { padding-top: 80vh; }

/* Carte */
.bloc-commune-item { width: 100%; flex-direction: column; background-color: #fff;  }
.bloc-commune-item .prox-card { flex-direction: column; color: var(--couleur-texte); }
.bloc-commune-item .prox-card .prox-card-thumb { height: 18rem; background-size: cover; background-position: center; background-color: var(--couleur-background-dark); position: relative; }
.bloc-commune-item .prox-card-body { padding: 1.5rem; flex-direction: column; flex: 1; }
.bloc-commune-item .prox-card-body h3 { font-size: 1.8rem; font-weight: 800; letter-spacing: .08rem; margin: 0 0 .5rem; text-transform: uppercase; }

/* Barre de comptage */
#communes-count-bar {
    padding: 1rem 0 .5rem;
    min-height: 2.8rem;
}
#communes-count-display {
    font-size: 1.3rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--couleur-texte);
    opacity: .65;
}

/* Infinite scroll */
#communes-more-loader {
    position: relative;
    margin: 10px 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
}
#communes-end-msg {
    width: 100%;
    text-align: center;
    font-size: 1.3rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--couleur-texte);
    opacity: .4;
    padding: 2rem 0 1rem;
    margin: 0;
}

/* Lien popup carte */
.bloc-communes .popup-link {
    display: inline-block;
    margin-top: .6rem;
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
    text-decoration: underline;
    z-index: 1;
    position: relative;
}

/* Badges Visite & Patrimoine */
.commune-badges { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: .5rem; }
.commune-badge { font-size: 1.4rem; text-transform: uppercase; font-weight: 400; }
.commune-badge i { margin-right: .3rem; font-size: 1.3rem;}

/* Popups carte — même style que bloc-carte-offres */
#map-communes .leaflet-popup .leaflet-popup-content { aspect-ratio: 1/1; width: 20rem; position: relative; border: 1px solid #fff; }
#map-communes .leaflet-popup .leaflet-popup-content::after { content: ''; width: 100%; height: 100%; position: absolute; top: 0; left: 0; background-color: rgba(0,0,0,.5); }
#map-communes .leaflet-popup .popup-content { height: 100%; padding: 10px; display: flex; flex-direction: column; justify-content: end; background-size: cover; background-repeat: no-repeat; }
#map-communes .leaflet-popup .leaflet-popup-content-wrapper { border-radius: 0; }
#map-communes .leaflet-popup .leaflet-popup-content-wrapper .leaflet-popup-content { margin: 0; }
#map-communes .leaflet-popup .popup-content h3 { color: #fff; margin: 0; text-transform: uppercase; font-family: 'Lato', sans-serif; z-index: 1; font-size: 1.6rem; font-weight: 700; line-height: normal; letter-spacing: .02rem; }
#map-communes .leaflet-popup a.leaflet-popup-close-button { color: #fff !important; z-index: 2; }
#map-communes { z-index: 0; }



@media (hover: hover) {
    .bloc-commune-item:hover { transform: translateY(-.3rem); transition: transform 230ms; }
}

@media (min-width: 768px) {
    .bloc-commune-item { width: calc(50% - 1rem); }
}

@media (min-width: 1025px) {
    .communes-ts .communes-filtres { padding: 4rem 6rem; gap: 1.5rem 3rem; }
    .communes-ts .communes-filtre { width: auto; }
    .communes-ts .communes-filtre-titre {width: 30rem;}
    .liste-communes {padding-left: 4rem; padding-top: 3rem; flex: 1; min-width: 0; }
    .map-container-communes { width: 40%; height: 100vh; min-height: 600px; position: sticky; top: 0; align-self: flex-start; transform: none; }
    .mobile-alternate-communes { display: none; }
    .bloc-commune-item .prox-card-body {padding: 1.5rem 2rem;}
}

@media (min-width: 1400px) {
    .communes-ts .communes-filtres { justify-content: center; }
    .contenu-communes-ts {gap: 2rem 8rem;  }
    .bloc-commune-item { width: calc(33% - 1.1rem); }
    .liste-communes { padding-left: 6rem;}
}


/* --- bloc-documents.css --- */
/* =============================================
   Bloc Documents
   ============================================= */

.bdoc-header {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-bottom: 3rem;
}
.bdoc-titre {
    font-size: 2.4rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin: 0;
    white-space: nowrap;
}
.bdoc-trait {
    flex: 1;
    height: 2px;
    background: var(--couleur-cta);
    opacity: .4;
}

.bdoc-liste {list-style: none;  margin: 0; padding: 0; flex-wrap: wrap; gap: 2rem;}

.bdoc-item {align-items: center; gap: 1.5rem; padding: 1.6rem 1.8rem; background: #fff; width: 100%; border: 1px solid rgba(0,0,0,.08); transition: border-color 180ms, box-shadow 180ms;}
.bdoc-item:hover {border-color: var(--couleur-cta);box-shadow: 0 2px 10px rgba(0,0,0,.08);}

.bdoc-icon i {color: var(--couleur-texte); font-size: 2rem;}

/* Infos */
.bdoc-infos {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}
.bdoc-nom {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    word-break: break-word;
}
.bdoc-ext {
    font-size: 1.1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--couleur-cta);
    opacity: .7;
}

a.bdoc-item {text-decoration: none;  color: inherit; cursor: pointer;}

/* Icône téléchargement à droite */
.bdoc-dl {margin-left: auto; color: var(--couleur-cta); font-size: 2rem; transition: transform 180ms, color 180ms;}
a.bdoc-item:hover .bdoc-dl {
    transform: translateY(2px);
    color: var(--couleur-cta);
}

/* Texte vide */
.bdoc-vide {
    font-style: italic;
    opacity: .6;
    padding: 2rem 0;
}



@media (min-width: 768px) {
    .bdoc-item {width: calc(50% - 1rem);}
    .bdoc-icon i {font-size: 2.5rem;}
    .bdoc-dl {font-size: 2.2rem;}
}

@media (min-width: 1025px) {
    .bdoc-item {width: calc(33% - 1rem); gap: 3rem;}
    
}


/* --- bloc-equipe-oti.css --- */
.bloc-equipe-oti .liste-membres {gap: 1.5rem 3rem; flex-wrap: wrap;}
.bloc-equipe-oti .liste-membres .slick-track {display: flex;}
.bloc-equipe-oti .membre-card {width: 100%; flex-direction: column; overflow: hidden; position: relative;}

.bloc-equipe-oti .membre-media {position: relative; width: 100%; border-radius: 50%; overflow: hidden; aspect-ratio: 1/1; margin: 0 auto 2rem;}
.bloc-equipe-oti .membre-media::after {content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0)); pointer-events: none;}
.bloc-equipe-oti .membre-media img {width: 100%; height: 100%; object-fit: cover; transition: var(--transition);}

.bloc-equipe-oti .membre-photo-placeholder {width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background-color: var(--couleur-texte); color: #fff; font-size: 4rem;}

.bloc-equipe-oti .membre-info {z-index: 1; flex-direction: column; margin-top: auto; text-align: center;}
.bloc-equipe-oti .membre-nom {margin: 0 0 .5rem; font-size: 1.5rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1rem;column-gap: 1rem;}


.bloc-equipe-oti .membre-fonction {margin: 0; font-size: 1.3rem; opacity: .8; text-transform: uppercase; letter-spacing: .05rem;}

/* Slick */
.bloc-equipe-oti .liste-membres .membre-card {padding: 3rem; display: flex; background: linear-gradient(180deg, #fff 0%, #fff 35%, var(--couleur-background) 35%); height: inherit;}
/*.bloc-equipe-oti .liste-membres .slick-arrow {bottom: -6rem; top: auto; width: auto; height: auto; opacity: 1;}
.bloc-equipe-oti .liste-membres.slick-slider .slick-arrow::before {color: var(--couleur-texte); font-weight: 900; font-family: "Font Awesome 6 free"; font-size: 3rem; transition: var(--transition);}
.bloc-equipe-oti .liste-membres.slick-slider .slick-next {right: 1.5rem;}
.bloc-equipe-oti .liste-membres.slick-slider .slick-next::before {content: "\f178";}
.bloc-equipe-oti .liste-membres.slick-slider .slick-prev::before {content: "\f177";}
.bloc-equipe-oti .liste-membres.slick-slider .slick-prev {right: 8rem; left: auto;}*/

@media (min-width: 768px) {
.bloc-equipe-oti .liste-membres .membre-card {width: calc(50% - 1.5rem);}
}

@media (min-width: 1025px) {
    .bloc-equipe-oti .membre-card {width: calc(33% - 3rem);}
    .bloc-equipe-oti .liste-membres {gap: 1.5rem 6rem;}
    .bloc-equipe-oti .liste-membres.slick-slider .membre-card {margin: 0 1.5rem;}
    .bloc-equipe-oti .membre-nom {font-size: 1.6rem;}
    .bloc-equipe-oti .membre-media {max-width: 30rem;}
    .bloc-equipe-oti .liste-membres .membre-card {width: calc(33.3% - 4rem);}
}

@media (min-width: 1700px) {
    .bloc-equipe-oti .membre-card { height: 50rem;}
    .bloc-equipe-oti .membre-media {margin: 0 auto 3rem;}

}

/* --- bloc-evenements-pros.css --- */
/* =============================================
   Bloc Événements Professionnels
   ============================================= */

.bloc-evenements-pros { padding: 0; }
.carte-evp-ts { width: 100%; }

/* En-tête */
.evp-header {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: 4rem 6rem 0;
}
.evp-titre {
    font-size: 2.4rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0;
    white-space: nowrap;
}
.evp-trait {
    flex: 1;
    height: 2px;
    background: var(--couleur-cta);
    opacity: 0.4;
}

/* Layout principal */
.contenu-evp-ts {
    gap: 2rem 8rem;
    width: 100%;
    justify-content: flex-end;
    flex-wrap: wrap;
    position: relative;
}

/* Boutons mobile carte/liste */
.mobile-alternate-evp {width: 100%;}
.mobile-alternate-evp button {border: none; background-color: var(--couleur-cta); color: #fff; border-radius: 0; text-transform: uppercase;  padding: 1.5rem; width: 50%; font-size: 1.6rem; font-weight: 600; letter-spacing: .05rem; opacity: .7;}
.mobile-alternate-evp button.active {opacity: 1;}

/* Liste */
.liste-evp {
    padding: 3rem 2rem;
    transition: all 280ms ease-in-out;
}
.liste-evp.mobile-view { padding-top: 80vh; }

/* Carte Leaflet */
.map-container-evp {
    width: 100%;
    height: 70vh;
    position: absolute;
    left: 0;
    top: 8rem;
    transform: translateX(-100vw);
    transition: all 300ms ease-in-out;
}
.map-container-evp.active { transform: translateX(0); }

/* Curseur pointer sur les cartes (drawer trigger) */
.bloc-evp-item { cursor: pointer; }

/* Loader */
#loader-evp {
    position: relative;
    margin: 20px 0;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
}


#map-evp .leaflet-popup .leaflet-popup-content {
    aspect-ratio: 1/1;
    width: 150px !important;
    position: relative;
    border: 1px solid #fff;
    margin: 0;
}
#map-evp .leaflet-popup .leaflet-popup-content-wrapper { border-radius: 0; }
#map-evp .leaflet-popup .popup-content {
    height: 100%;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
}
#map-evp .leaflet-popup .popup-content::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
}
#map-evp .leaflet-popup .popup-content h3 {
    color: #fff;
    margin: 0;
    z-index: 1;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
}
#map-evp .leaflet-popup a.leaflet-popup-close-button { color: #fff !important; z-index: 2; }


/* ── Drawer descriptif ── */
body.evp-noscroll { overflow: hidden; }

.evp-drawer {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
}
.evp-drawer.is-open { display: block; }

.evp-drawer-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.5);
    cursor: pointer;
}

.evp-drawer-panel {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: min(72rem, 100%);
    background: #fff;
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 320ms cubic-bezier(.4,0,.2,1);
    display: flex;
    flex-direction: column;
}
.evp-drawer.is-open .evp-drawer-panel { transform: translateX(0); }

.evp-drawer-close  {position: sticky; top: 1rem; left: 1rem; z-index: 2; background: var(--couleur-texte); color: #fff; border: none; width: 4rem; height: 4rem; font-size: 2.5rem; cursor: pointer; align-items: center; justify-content: center; flex-shrink: 0; transition: background 200ms;}
.evp-drawer-close:hover {background: var(--couleur-cta);}



.evp-drawer-hero {width: 100%; height: 32rem; background-size: cover; background-position: center; }

.evp-drawer-body { padding: 3rem 3rem 9rem;  flex: 1;}

.evp-drawer-titre {
    font-size: 2.2rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin: 0 0 1.8rem;
}

.evp-drawer-meta {
    list-style: none;
    margin: 0 0 2.4rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .8rem;
}
.evp-drawer-meta li {
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    gap: .8rem;
    color: #444;
}
.evp-drawer-meta li i {
    color: var(--couleur-cta);
    width: 1.6rem;
    flex-shrink: 0;
}

.evp-drawer-descriptif {
    font-size: 1.5rem;
    line-height: 1.7;
    color: #333;
    border-top: 1px solid rgba(0,0,0,.1);
    padding-top: 2rem;
    margin-bottom: 2.4rem;
}
.evp-drawer-descriptif p { margin: 0 0 1em; }
.evp-drawer-descriptif h2,
.evp-drawer-descriptif h3,
.evp-drawer-descriptif h4 { margin: 1.5em 0 .5em; font-weight: 700; }
.evp-drawer-descriptif ul,
.evp-drawer-descriptif ol { padding-left: 2rem; margin: 0 0 1em; }

.evp-drawer-lien {
    display: inline-flex;
    align-items: center;
    gap: .8rem;
    padding: 1.2rem 2.4rem;
    background: var(--couleur-cta);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: 1.4rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    transition: opacity 200ms;
}
.evp-drawer-lien:hover { opacity: .85; color: #fff; }

#liste_evp_loader {flex-wrap: wrap; gap: 2rem;}

.prox-card-inner {background-size: cover; background-position: center; height: 18rem;  width: 100%; background-color: var(--couleur-background-dark);  background-repeat: no-repeat;}

.prox-grid {display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem;}
.prox-card {overflow: hidden; flex-direction: column; text-decoration: none; transition: var(--transition); background-color: #fff; position: relative; width: 100%;}
.prox-card-type {position: absolute; top: 1.2rem; right: 1.2rem; background: var(--couleur-cta); color: #fff; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; padding: .4rem .6rem; z-index: 1;}
.prox-card-footer {bottom: 0; left: 0; right: 0; padding: 1rem; z-index: 1; transition: var(--transition); flex: 1; flex-direction: column;}
.prox-card-footer h3 {font-size: 1.8rem; margin: 0 0 0.5rem; font-weight: 800; letter-spacing: .08rem; text-transform: uppercase;}
.prox-card-footer p {font-weight: 400; text-transform: uppercase; font-size: 1.4rem; width: 100%; margin-top: .5rem; margin-bottom: .4rem;}
.prox-card-footer p i {font-size: 1.3rem;}
.prox-card:hover {transform: translateY(-0.3rem);}
.prox-card-footer .prox-card-cta {margin-top: auto;}

.prox-card-footer .prox-card-cta {font-size: 1.3rem; text-transform: uppercase; letter-spacing: .06rem; font-weight: 600; display: inline-flex; align-items: center;  gap: .5rem; padding-top: .8rem;}

@media (min-width: 768px) {
    .prox-card {width: calc(50% - 1rem);}
}


@media (min-width: 1025px) {
    .prox-card {width: 100%;}
    .mobile-alternate-evp { display: none; }
    .prox-card-footer {padding: 1.5rem 2rem; }
    #map-evp {height: 100vh;}
    .evp-drawer-body { padding: 3rem 5rem;}
    .evp-drawer-hero {flex: 1 0 32rem;}

    .liste-evp {
        padding-left: 6rem;
        padding-top: 3rem;
        flex: 0 0 calc(60% - 4rem);
        min-width: 0;
    }

    .map-container-evp {
        flex: 0 0 calc(40% - 4rem);
        height: 80vh;
        min-height: 600px;
        top: 0;
        position: sticky;
        align-self: flex-start;
        transform: none;
    }
}

@media (min-width: 1300px) {
    .prox-card {width: calc(50% - 1rem);}
}

/* --- bloc-exposition-temporaire.css --- */
/* =============================================
   Bloc Expositions Temporaires
   (même style que bloc-agenda-alaune)
   ============================================= */

.bloc-exposition-temporaire .expo-title h2 { text-transform: uppercase; font-size: 3rem; margin-bottom: 1.5rem; margin-top: 0; font-weight: 300; }
.bloc-exposition-temporaire .expo-content p { max-width: 80rem; margin: 1.5rem auto 0; }

.bloc-exposition-temporaire .expo-grid { gap: 1.5rem 3rem; flex-wrap: wrap; margin-top: 3.5rem; }

.bloc-exposition-temporaire .expo-card { width: 100%; height: inherit; flex-direction: column; background-color: var(--couleur-texte); color: #fff; overflow: hidden; position: relative; }

.bloc-exposition-temporaire .expo-media { height: 22rem; overflow: hidden; position: relative; background-color: #fff; background-image: url(/wp-content/uploads/2026/02/motif-vert.svg); background-size: 20rem; background-position: center; background-repeat: no-repeat; }
.bloc-exposition-temporaire .expo-media::after { content: ""; background-color: rgba(16, 44, 53, .2); width: 100%; height: 100%; left: 0; top: 0; position: absolute; transition: all 230ms ease-in-out; }
.bloc-exposition-temporaire .expo-media img { width: 100%; height: 100%; object-fit: cover; transition: all 230ms ease-in-out; }
.bloc-exposition-temporaire .expo-info { padding: 2rem; }

.bloc-exposition-temporaire .expo-dates { position: absolute; top: 2rem; left: 0; z-index: 1; background-color: var(--couleur-cta); }
.bloc-exposition-temporaire .expo-dates .date-part { flex-direction: column; text-align: center; padding: 1.5rem; }
.bloc-exposition-temporaire .expo-dates span { text-transform: uppercase; }
.bloc-exposition-temporaire .expo-dates span.date-jour { font-size: 3.5rem; font-weight: 700; }
.bloc-exposition-temporaire .expo-dates span.date-mois { font-size: 1.4rem; letter-spacing: .04rem; }
.bloc-exposition-temporaire .expo-dates span.date-sep { font-size: 1.2rem; align-items: center; }

.bloc-exposition-temporaire .expo-info h3,
.bloc-exposition-temporaire .expo-lieu { text-transform: uppercase; margin-top: 0; color: #fff; }
.bloc-exposition-temporaire .expo-info h3 { font-size: 1.6rem; font-weight: 600; margin-bottom: 1rem; letter-spacing: .1rem; }
.bloc-exposition-temporaire .expo-lieu { font-size: 1.4rem; margin-bottom: .5rem; }

.bloc-exposition-temporaire .expo-empty { font-size: 2rem; }

@media (hover: hover) {
    .bloc-exposition-temporaire .expo-card:hover { transform: var(--transform-scale); box-shadow: var(--box-shadow); }
    .bloc-exposition-temporaire .expo-card:hover img { transform: scale(1.1); }
    .bloc-exposition-temporaire .expo-card:hover .expo-media::after { background-color: rgba(16, 44, 53, 0); }
}

@media (min-width: 768px) {
    .bloc-exposition-temporaire .expo-card { width: calc(50% - 1.5rem); }
    .bloc-exposition-temporaire .expo-media {height: 28rem;}
}

@media (min-width: 1100px) {
    .bloc-exposition-temporaire .expo-title h2 { font-size: 6rem; }
    .bloc-exposition-temporaire .expo-card { width: calc(33.3% - 2rem); }
}

@media (min-width: 1400px) {
.bloc-exposition-temporaire .expo-grid {margin-top: 6.5rem; }
}

/* --- bloc-grid-galerie.css --- */
.section-grid-galerie .grid-galerie-columns {gap: 1.5rem 3rem; flex-wrap: wrap;}
.section-grid-galerie .grid-galerie-columns .grid-galerie-card {width: 100%; height: 30rem; flex-direction: column; background-image: url('/wp-content/uploads/2026/02/motif-vert-1.svg'); background-color: var(--couleur-texte); background-repeat: no-repeat; background-size: 12rem; background-position: center; color: #fff; overflow: hidden; position: relative; justify-content: flex-end;}
.section-grid-galerie .grid-galerie-columns .grid-galerie-card img {transition: var(--transition);}
.section-grid-galerie .grid-galerie-columns .grid-galerie-card .grid-galerie-infos {position: absolute; bottom: 2rem; left: 2rem; right: 2rem; z-index: 1; }
.section-grid-galerie .grid-galerie-columns .grid-galerie-card .grid-galerie-infos h3 {margin: 0; color: #fff; font-size: 1.5rem;  letter-spacing: .25rem;  font-weight: 600; text-transform: uppercase; transition: var(--transition); hyphens: auto;}
.section-grid-galerie .grid-galerie-columns .grid-galerie-card::after {content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0));  pointer-events: none;}
.section-grid-galerie .grid-galerie-intro {margin-bottom: 3rem;}
.section-grid-galerie .grid-galerie-columns.slick-slider .grid-galerie-card {margin: 0 1rem;}
.section-grid-galerie .grid-galerie-columns.slick-slider .slick-arrow {bottom: -6rem; top: auto; width: auto; height: auto; opacity: 1;}
.section-grid-galerie .grid-galerie-columns.slick-slider .slick-arrow::before {color: var(--couleur-texte); font-weight: 900; font-family: "Font Awesome 6 free"; font-size: 3rem; transition: var(--transition);}
.section-grid-galerie .grid-galerie-columns.slick-slider .slick-next {right: 1.5rem;}
.section-grid-galerie .grid-galerie-columns.slick-slider .slick-next::before {content: "\f178";}
.section-grid-galerie .grid-galerie-columns.slick-slider .slick-prev::before {content: "\f177";}
.section-grid-galerie .grid-galerie-columns.slick-slider .slick-prev {right: 8rem; left: auto;}


@media (hover: hover) {
    .section-grid-galerie .grid-galerie-columns .grid-galerie-card:hover .grid-galerie-infos h3 {font-size: 2.2rem;}
    .section-grid-galerie .grid-galerie-columns.slick-slider .slick-arrow:hover::before {color: var(--couleur-cta);}
}

@media (min-width: 1025px) {
    .section-grid-galerie .grid-galerie-columns .grid-galerie-card {width: calc(33% - 3rem); height: 45rem;}
    .section-grid-galerie .grid-galerie-columns.slick-slider .grid-galerie-card {margin: 0 1.5rem;}
    .section-grid-galerie .grid-galerie-columns .grid-galerie-card .grid-galerie-infos {bottom: 3rem; left: 3rem; left: 3rem;}
    .section-grid-galerie .grid-galerie-columns .grid-galerie-card .grid-galerie-infos h3 {font-size: 1.8rem;}
    .section-grid-galerie .grid-galerie-columns .grid-galerie-card:hover img { transform: scale(1.1);}
    .section-grid-galerie .grid-galerie-intro {margin-bottom: 4rem; max-width: 80rem; margin-left: auto; margin-right: auto;}
}

/* --- bloc-grille-lien-popup.css --- */
/* =============================================
   Bloc Grille Lien / Popup
   ============================================= */

.bloc-glp .glp-grid {display: flex; flex-wrap: wrap; gap: 3rem; padding: 0 2rem;}
.bloc-glp .glp-intro {margin-bottom: 5rem; max-width: 80rem; margin-left: auto; margin-right: auto; padding: 0 2rem;}
.bloc-glp .glp-intro h2 {margin-top: 0;}
.bloc-glp .glp-intro p {font-size: 1.8rem;}
.bloc-glp .glp-intro p:first-of-type {margin-top: 0;}
.bloc-glp .glp-card {position: relative;  aspect-ratio: 3 / 4; overflow: hidden; cursor: pointer; display: block; flex: 1 1 calc(50% - 2px);  min-width: 22rem; text-decoration: none; max-height: 100vh;}

.bloc-glp .glp-card h3 {margin: 0 0 .8rem; color: #fff; z-index: 1; font-size: 1.8rem; letter-spacing: .25rem; font-weight: 600; text-transform: uppercase; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4); transition: var(--transition);}



.bloc-glp .glp-card-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
}
.bloc-glp .glp-card-bg-placeholder {
    position: absolute;
    inset: 0;
    background-color: var(--couleur-background-dark);
}
.bloc-glp .glp-card:hover .glp-card-bg { transform: scale(1.07); }

/* Overlay gradient */
.bloc-glp .glp-card-overlay {position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.75) 0%, rgba(0,0,0,.1) 55%, transparent 100%); flex-direction: column; justify-content: flex-end; padding: 4rem 3rem;  transition: var(--transition);}
.bloc-glp .glp-card:hover .glp-card-overlay {background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.25) 60%, transparent 100%);
}

.bloc-glp .glp-card-cta {
    color: #fff;
    font-size: 1.3rem;
    text-transform: uppercase;
    letter-spacing: .06rem;
    font-weight: 600;
    opacity: 0;
    transform: translateY(.8rem);
    transition: opacity 250ms ease, transform 250ms ease;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}
.bloc-glp .glp-card:hover .glp-card-cta {
    opacity: 1;
    transform: translateY(0);
}

/* ── Carrousel Slick (> 3 vignettes) ── */
.bloc-glp .glp-carousel.slick-initialized { display: block; }
.bloc-glp .glp-carousel .slick-track { display: flex !important; }
.bloc-glp .glp-carousel .slick-slide { height: auto; margin: 0; }
.bloc-glp .glp-carousel .glp-card { flex: none; width: 100%; min-width: 0; }

.bloc-glp .slick-arrow {bottom: -7rem; top: auto;  width: auto;  height: auto; opacity: 1; z-index: 1; background-color: var(--couleur-background); padding: 2rem;}
.bloc-glp .slick-prev {right: 8.4rem; left: auto;}
.bloc-glp .slick-next {right: 1.9rem;}
.bloc-glp .slick-arrow::before {color: var(--couleur-texte); font-weight: 900; font-family: "Font Awesome 6 free"; font-size: 3rem; transition: var(--transition);}
.bloc-glp .slick-arrow:hover, .bloc-glp .slick-arrow:focus {background-color: var(--couleur-background);}


/* ── Drawer popup (même pattern que bloc-bureaux-oti) ── */
.glp-modal {
    position: fixed;
    inset: 0;
    z-index: 9000;
    pointer-events: none;
    visibility: hidden;
}
.glp-modal.is-open {
    pointer-events: auto;
    visibility: visible;
}

.glp-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.5);
    opacity: 0;
    transition: opacity 350ms ease;
}
.glp-modal.is-open .glp-modal-overlay { opacity: 1; }

.glp-modal-panel {position: absolute;  top: 0; right: 0;  height: 100%; width: min(70rem, 100%); background-color: #fff; overflow-y: auto; transform: translateX(100%); transition: transform 380ms cubic-bezier(.25,.46,.45,.94); flex-direction: column;}
.glp-modal.is-open .glp-modal-panel { transform: translateX(0); }

.glp-modal-close { position: sticky; top: 1rem; left: 1rem; z-index: 2; background: var(--couleur-texte); color: #fff; border: none; width: 4rem; height: 4rem; font-size: 2.5rem; cursor: pointer; align-items: center; justify-content: center; flex-shrink: 0; transition: background 200ms;}
.glp-modal-close:hover { background: var(--couleur-cta); }

.glp-modal-photo { width: 100%;  height: 32rem; background-size: cover; background-position: center; flex: 1 0 32rem; margin-top: -4.5rem;}
.glp-modal-body { padding: 3rem 3rem 9rem; }
.glp-modal-body h2 {font-weight: 700; letter-spacing: .08rem; margin: 0; }
.glp-modal-body .nom-scientifique {font-style: italic; font-weight: 300; margin-top: .5rem; font-size: 2rem; margin-bottom: .5rem;}
.glp-modal-contenu { font-size: 1.5rem; margin-top: 1.5rem; }
.glp-modal-contenu p { margin-bottom: 1.2rem; }

/* Scroll lock */
body.glp-noscroll { overflow: hidden; }



@media (min-width: 768px) {
    .bloc-glp .glp-grid {padding: 0 4rem;}
    .bloc-glp .glp-grid:not(.glp-carousel) .glp-card { flex: 1 1 calc(33.33% - 2rem); }
    .bloc-glp .slick-arrow {bottom: -6rem;}
    .bloc-glp .slick-prev {right: 10rem;}
    .bloc-glp .slick-next {right: 3.9rem;}
    .bloc-glp .glp-carousel .slick-slide {margin: 0 1.5rem; }
    .bloc-glp .glp-intro {padding: 0 4rem;}
}



@media (min-width: 1100px){
    .bloc-glp .glp-intro {background-color: #fff; padding: 5rem 6rem 7rem; margin-bottom: 0; }
    .bloc-glp .glp-intro h2 {color: var(--couleur-cta);}
    .bloc-glp .glp-intro + .glp-grid {position: relative;  top: -4rem;}
    .glp-modal-body {padding: 3rem 5rem;}
    .bloc-glp .slick-prev {right: 11rem;}
    .bloc-glp .slick-next {right: 5rem;}
}


@media (min-width: 1400px){
    .bloc-glp .glp-card-overlay {padding: 6rem 5rem;}

}

@media (min-width: 1700px) {
    .bloc-glp .glp-grid {padding: 0 10rem;}
    .bloc-glp .slick-next {right: 11rem;}
    .bloc-glp .slick-prev {right: 19rem;}
    .bloc-glp .slick-arrow {bottom: -9rem; padding: 2.5rem;}
    .bloc-glp .slick-arrow::before {font-size: 4rem;}
}

/* --- bloc-grille-mega-menu.css --- */

.mega-menu-content {display: none; position: absolute; overflow: visible; top: 100%; left: 50%; transform: translateX(-50%); z-index: 100; width: 100%; background-color:  var(--couleur-background); padding: 1.5rem 3rem 4rem;}
.bloc-grille-mega-menu .grille-mega-menu {display: flex; column-gap: 3rem;}

.mega-menu-content .mega-menu-item {width: 25rem; flex: 1;}
.mega-menu-content .mega-menu-item .mega-menu-media {overflow: hidden; position: relative;}
.mega-menu-content .mega-menu-item .mega-menu-media::after {content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); pointer-events: none;}
.mega-menu-content .mega-menu-item img {height: 16rem; transition: var(--transition);}
.mega-menu-content .mega-menu-item h3 {font-size: 1.5rem; text-decoration: underline; margin-top: .8rem; margin-bottom: 0; text-decoration: none; letter-spacing: .08rem;color: var(--couleur-texte);}



@media (hover: hover) {
    .mega-menu-content .mega-menu-item:hover {transform: var(--transform-scale);}
    .mega-menu-content .mega-menu-item:hover img {transform: scale(1.1);}

}

/* --- bloc-infos.css --- */
/* =============================================
   Bloc Jour en CDG — sections alternées
   ============================================= */


.section-bloc-infos {position: relative;}
.section-bloc-infos .bloc-infos {align-items: stretch; min-height: 42rem; margin-bottom: 8rem; position: relative; flex-wrap: wrap;}

/* Inversion : image à droite */
.section-bloc-infos .liste-infos--inverse { flex-direction: row-reverse; }

/* ── Image ── */
.section-bloc-infos .info-media {position: relative; z-index: 2; min-height: 20rem; width: 100%; }
.section-bloc-infos .info-media img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; padding: 0 2.5rem 1.5rem;}
.section-bloc-infos .info-media-placeholder {width: 100%; height: 100%; background-color: var(--couleur-background-dark);}

.section-bloc-infos .info-content {flex-direction: column; padding: 2rem; position: relative; z-index: 1;}
.section-bloc-infos .info-content::after {content: ""; background-color: #fff; position: absolute; width: 100%; height: calc(100% + 8rem); bottom: 0; right: 0; z-index: -1;}
.section-bloc-infos .info-content li::marker {color: var(--couleur-cta);}
.section-bloc-infos .info-content .btn-cta {margin-top: 2.5rem;}
.section-bloc-infos .bloc-infos h3 {font-weight: 900; text-transform: uppercase; margin-top: 0; letter-spacing: .08rem;}
.section-bloc-infos .info-texte {font-size: 1.5rem; line-height: 1.8;}
.section-bloc-infos .info-texte p { margin-bottom: 1rem; }
.section-bloc-infos .info-texte p:last-child { margin-bottom: 0; }





@media (min-width: 768px) {
   .section-bloc-infos .info-content {padding: 2rem 4rem 4rem;}
}

@media (min-width: 1025px) {
   .section-bloc-infos .bloc-infos h3 {font-size: 3rem;}
   .section-bloc-infos .info-content {padding: 2rem 8rem 4rem;}
}

@media (min-width: 1400px) {
   .section-bloc-infos:nth-child(even) .bloc-infos {flex-direction: row-reverse;}
   .section-bloc-infos:nth-child(even) .bloc-infos .info-content::after {left: 0; right: auto;}
   .section-bloc-infos .info-content {flex: 0 0 50%; padding: 5rem 6rem; }
   .section-bloc-infos .info-media {flex: 0 0 45%;}
   .section-bloc-infos .info-media img {padding: 6rem 4rem;}
   .section-bloc-infos .info-content::after {width: 150%; height: 100%; top: 50%; bottom: auto; transform: translateY(-50%);}
}

/* --- bloc-jour-en-cdg.css --- */
/* =============================================
   Bloc Jour en CDG — sections alternées
   ============================================= */


.bloc-jcdg {position: relative;}
.bloc-jcdg .jcdg-etape {align-items: stretch; min-height: 42rem; margin-bottom: 8rem; position: relative; flex-direction: column;}

/* ── Image ── */
.bloc-jcdg .jcdg-media {flex: 0 0 45%; position: relative; z-index: 2; padding: 0 2.5rem 1.5rem;}
.bloc-jcdg .jcdg-media img {max-height: 30rem;}
.bloc-jcdg .jcdg-media-placeholder {
    width: 100%;
    height: 100%;
    background-color: var(--couleur-background-dark);
}

.bloc-jcdg .jcdg-content {flex: 0 0 50%; flex-direction: column; padding: 2.5rem; position: relative; z-index: 1;}

.bloc-jcdg .jcdg-content::after {content: ""; background-color: #fff; position: absolute; width: 100%; height: calc(100% + 8rem); bottom: 0; right: 0; z-index: -1;}
.bloc-jcdg .jcdg-etape:nth-child(odd) .jcdg-content::after {left: 0; right: auto; }

.bloc-jcdg .jcdg-content li::marker {color: var(--couleur-cta);}


.bloc-jcdg .jcdg-numero {font-size: 5rem; font-weight: 800; margin-bottom: 1rem; display: block; position: absolute; color: #fff; bottom: -1rem; right: 0; background: rgb(134 188 36 / 70%); padding: 1.5rem;}


.jcdg-no-num .jcdg-numero {display: none;}
.bloc-jcdg .jcdg-etape h3 {font-weight: 900; text-transform: uppercase; margin-top: 0; letter-spacing: .08rem;}




.bloc-jcdg .jcdg-texte {
    font-size: 1.5rem;
    line-height: 1.8;
    color: var(--couleur-texte);
}
.bloc-jcdg .jcdg-texte p { margin-bottom: 1rem; }
.bloc-jcdg .jcdg-texte p:last-child { margin-bottom: 0; }


@media (min-width: 1025px) {
    .bloc-jcdg .jcdg-etape {flex-direction: row;}
    .bloc-jcdg .jcdg-content::after {width: 150%; height: 100%; top: 50%; right: 0; transform: translateY(-50%);}
    .bloc-jcdg .jcdg-content {flex: 0 0 50%; padding: 5rem 6rem;}
    .bloc-jcdg .jcdg-media {flex: 0 0 45%; padding: 6rem 4rem;}
    .bloc-jcdg .jcdg-media img {max-height: 100%;}
    .bloc-jcdg .jcdg-etape--inverse { flex-direction: row-reverse; }
    .bloc-jcdg .jcdg-numero {font-size: 8rem; margin-bottom: 1rem; bottom: -1rem; right: auto; left: -1rem; padding: 1.5rem; background: rgb(134 188 36 / 52%);}
    .bloc-jcdg .jcdg-etape:nth-child(odd) .jcdg-numero {right: -1rem; left: auto;}
    .bloc-jcdg .jcdg-etape h3 {font-size: 3rem;}


}

/* --- bloc-liens-masonry.css --- */


.bloc-liens-masonry .liens-masonry-content {margin-bottom: 3rem; max-width: 85rem; margin-left: auto; margin-right: auto;}

.bloc-liens-masonry .liens-masonry-grid {display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; grid-auto-rows: 15rem;}

.bloc-liens-masonry .masonry-item {overflow: hidden; position: relative;}
.bloc-liens-masonry .masonry-item-1 {grid-column: span 3;}
.bloc-liens-masonry .masonry-item-2 {grid-column: span 2; grid-row: span 2;}
.bloc-liens-masonry .masonry-item-3 {grid-column: span 3;}
.bloc-liens-masonry .masonry-item-4 {grid-column: span 3;}
.bloc-liens-masonry .masonry-item-5 {grid-column: span 2;}
.bloc-liens-masonry .masonry-item-6 {grid-column: span 3; grid-row: span 2;}
.bloc-liens-masonry .masonry-item-7 {grid-column: span 5;}
.bloc-liens-masonry .masonry-item-8 {grid-column: span 5;}
.bloc-liens-masonry .masonry-item-9 {grid-column: span 2; grid-row-start: 4; grid-row-end: 6;}


.bloc-liens-masonry .liens-masonry-media {position: relative; overflow: hidden; height: 100%;}

.bloc-liens-masonry .liens-masonry-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0));
    pointer-events: none;
}

.bloc-liens-masonry .liens-masonry-media h3 {position: absolute; left: 1rem; right: 1rem; bottom: 2rem; margin: 0; color: #fff; z-index: 1; font-size: 1.5rem; letter-spacing: .25rem; font-weight: 600; text-transform: uppercase; hyphens: auto;}
.bloc-liens-masonry .liens-masonry-media h3, .bloc-liens-masonry .masonry-item img {transition: var(--transition);}




@media (hover: hover) {
    .bloc-liens-masonry .masonry-item:hover img {transform: scale(1.1);} 
    .bloc-liens-masonry .masonry-item:hover h3 {font-size: 2.2rem;}

}

@media (min-width: 1100px){
    .bloc-liens-masonry .liens-masonry-grid {gap: 1.5rem; grid-template-columns: repeat(3, 1fr); }
    .bloc-liens-masonry .liens-masonry-media h3 {left: 3rem; right: 3rem; bottom: 3rem;}
    .bloc-liens-masonry .masonry-item-1 {grid-column: span 2; grid-row: span 2;}
    .bloc-liens-masonry .masonry-item-2 {grid-column: span 1; grid-row: span 3;}
    .bloc-liens-masonry .masonry-item-3 {grid-column: span 1; grid-row: span 3;}
    .bloc-liens-masonry .masonry-item-4 {grid-column: span 1; grid-row: span 2; }
    .bloc-liens-masonry .masonry-item-5 {grid-column: span 1; grid-row: span 2;}
    .bloc-liens-masonry .masonry-item-6 {grid-column-start: 2; grid-row: span 3;}
    .bloc-liens-masonry .masonry-item-7 {grid-row-end: span 2; grid-column: span 1;}
    .bloc-liens-masonry .masonry-item-8 {grid-column: span 1; grid-row: span 4;}
    .bloc-liens-masonry .masonry-item-9 {grid-column: span 2; grid-row: span 2;}


}

/* --- bloc-liens-masonry-5col.css --- */
/* ============================================================
   BLOC LIENS MASONRY 5 COLONNES — 5 items
   ============================================================ */

.bloc-liens-masonry-5col .lm5-intro {
    margin-bottom: 3rem;
    max-width: 85rem;
    margin-left: auto;
    margin-right: auto;
}

.bloc-liens-masonry-5col .lm5-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    grid-auto-rows: 14rem;
}

.bloc-liens-masonry-5col .lm5-item {
    overflow: hidden;
    position: relative;
}

/* Item 1 : grand bloc gauche */
.bloc-liens-masonry-5col .lm5-item-1 { grid-column: span 3; grid-row: span 2; }

/* Item 2 : bannière droite */
.bloc-liens-masonry-5col .lm5-item-2 { grid-column: span 2; grid-row: span 2; }

/* Item 3 : bloc large bas gauche */
.bloc-liens-masonry-5col .lm5-item-3 { grid-column: span 2; grid-row: span 2; }

/* Item 4 : colonne centrale bas */
.bloc-liens-masonry-5col .lm5-item-4 { grid-column: span 3; grid-row: span 1; }

/* Item 5 : bloc droit bas */
.bloc-liens-masonry-5col .lm5-item-5 { grid-column: span 3; grid-row: span 1; }

/* ---- Media ---- */

.bloc-liens-masonry-5col .lm5-media {
    position: relative;
    overflow: hidden;
    height: 100%;
}

.bloc-liens-masonry-5col .lm5-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0));
    pointer-events: none;
}

.bloc-liens-masonry-5col .lm5-media h3 {position: absolute; left: 1rem; right: 1rem; bottom: 1.2rem; margin: 0; color: #fff; z-index: 1; font-size: 1.2rem; letter-spacing: .2rem;  font-weight: 600;  text-transform: uppercase;  hyphens: auto;}

.bloc-liens-masonry-5col .lm5-media h3,
.bloc-liens-masonry-5col .lm5-item img {
    transition: var(--transition);
}

/* ---- Hover ---- */
@media (hover: hover) {
    .bloc-liens-masonry-5col .lm5-item:hover img  { transform: scale(1.08); }
    .bloc-liens-masonry-5col .lm5-item:hover h3   { font-size: 1.8rem; }
}

/* ---- Grand écran (≥ 1100px) ---- */
@media (min-width: 1100px) {
    .bloc-liens-masonry-5col .lm5-grid   { gap: 1.5rem; grid-auto-rows: 18rem; }
    .bloc-liens-masonry-5col .lm5-item-1 { grid-column: span 2; grid-row: span 2; }
    .bloc-liens-masonry-5col .lm5-item-2 { grid-column: span 3; grid-row: span 2; }
    .bloc-liens-masonry-5col .lm5-item-3 { grid-column: span 2; grid-row: span 2; }
    .bloc-liens-masonry-5col .lm5-item-4 { grid-column: span 1; grid-row: span 2; }
    .bloc-liens-masonry-5col .lm5-item-5 { grid-column: span 2; grid-row: span 2; }
    .bloc-liens-masonry-5col .lm5-media h3 { font-size: 1.5rem; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; }
    .bloc-liens-masonry-5col .lm5-intro  { margin-bottom: 5rem; }
}

/* --- bloc-marches.css --- */
/* Bloc Marchés - Styles */

/* Markers carte custom (même style que bloc-carte-offres) */
.map-marker-wrap {display: flex; flex-direction: column; align-items: center; filter: drop-shadow(0 2px 4px rgba(0,0,0,.35));}
.map-marker-body {width: 36px; height: 36px; border-radius: 50%; background: var(--mc, var(--couleur-cta)); display: flex; align-items: center; justify-content: center;}
.map-marker-body i {color: #fff; font-size: 14px;}
.map-marker-tip {width: 0; height: 0; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 10px solid var(--mc, var(--couleur-cta));}
.carte-marches-ts { width: 100%;}
.carte-marches-ts .liste-filtres-ts {flex-wrap: wrap; width: 100%;  background-color: var(--couleur-background-dark); gap: 1.5rem 2rem; justify-content: center; padding: 4rem 2rem;}
.carte-marches-ts .liste-filtres-ts .liste-filtre { width: calc(50% - 1rem); }

.carte-marches-ts .liste-filtres-ts .liste-filtre label { text-transform: uppercase;}

.carte-marches-ts .liste-filtres-ts .liste-filtre select {border: none; text-transform: uppercase; padding: 1.5rem; appearance: none;  -webkit-appearance: none; -moz-appearance: none;  background-color: #fff; color: rgba(16, 44, 53, .8); background-image: url("data:image/svg+xml;utf8,<svg fill='white' height='10' viewBox='0 0 24 24' width='10' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>"); background-repeat: no-repeat;  background-position: right 0.8rem center; width: 100%;}

.carte-marches-ts .liste-filtres-ts .liste-filtre select:focus-visible {
    outline-color: var(--couleur-cta);
    outline-style: solid;
}

.carte-marches-ts .contenu-marches-ts {gap: 2rem 5rem; width: 100%; justify-content: flex-end; flex-wrap: wrap; position: relative;}



.carte-marches-ts .bloc-marche {overflow: hidden; transition: transform 0.2s ease; flex-direction: column; position: relative; background-color: #fff; width: 100%;}

.carte-marches-ts .bloc-marche:hover {
    transform: translateY(-5px);
}

.carte-marches-ts .bloc-marche .marche-thumb { background-size: cover; background-position: center;  height: 18rem; width: 100%; }
.carte-marches-ts .bloc-marche .jour-marche {position: absolute; top: 1rem; left: 1rem;  background-color: var(--couleur-cta); color: #fff; letter-spacing: .1rem; padding: 0.5rem 1rem; font-size: 1.5rem; text-transform: uppercase; font-weight: 600; margin: 0;}
.carte-marches-ts .bloc-marche .marche-contenu {padding: 2rem; flex-direction: column; flex-grow: 1;}
.carte-marches-ts .bloc-marche .marche-titre {font-size: 1.8rem; margin: 0 0 0.5rem; font-weight: 800; letter-spacing: .08rem; }
.carte-marches-ts .bloc-marche .marche-info {font-size: 1.5rem;  margin: 0.25rem 0;}
.carte-marches-ts .bloc-marche .marche-info i {margin-right: 0.5rem; width: 1.5rem;}

.carte-marches-ts .liste-marches { padding: 3rem 2rem; transition: all 280ms ease-in-out;}
.carte-marches-ts .liste-marches.mobile-view {padding-top: 80vh;}
.carte-marches-ts .liste-marches #liste_marches_loader {gap: 2rem; flex-wrap: wrap;}

.carte-marches-ts .contenu-marches-ts .map-container {width: 100%; height: 70vh; position: absolute; left: 0; top: 8rem; transform: translateX(-100vw); transition: all 300ms ease-in-out;}
.carte-marches-ts .contenu-marches-ts .map-container.active {transform: translateX(0);}


#loader-marches {
    position: relative;
    margin: 20px 0;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
}

#map-marches .leaflet-popup .leaflet-popup-content {
    aspect-ratio: 1/1;
    width: 150px !important;
    position: relative;
    border: 1px solid #fff;
}

#map-marches .leaflet-popup .leaflet-popup-content::after {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.5);
}

#map-marches .leaflet-popup .popup-content {
    height: 100%;
    padding: 10px;
    display: flex;
    flex-direction: column;
    justify-content: end;
    background-size: cover;
    background-repeat: no-repeat;
}

#map-marches .leaflet-popup .leaflet-popup-content-wrapper {
    border-radius: 0;
}

#map-marches .leaflet-popup .leaflet-popup-content-wrapper .leaflet-popup-content {
    margin: 0;
}

#map-marches .leaflet-popup .popup-content h4,
#map-marches .leaflet-popup .popup-content h3 {color: #fff; margin: 0; z-index: 1; text-transform: uppercase;}

#map-marches .leaflet-popup .popup-content h4 {font-size: 1.5rem; background-color: var(--couleur-cta);  max-width: max-content; padding: 0 4px; letter-spacing: .1rem; margin-bottom: .3rem;}

#map-marches .leaflet-popup .popup-content h3 {
    font-size: 16px;
    font-weight: 700;
    line-height: normal;
}

#map-marches .leaflet-popup a.leaflet-popup-close-button {
    color: #fff !important;
    z-index: 2;
}


/* Barre de comptage */
#marches-count-bar {
    padding: 1rem 0 .5rem;
    min-height: 2.8rem;
}
#marches-count-display {
    font-size: 1.3rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--couleur-texte);
    opacity: .65;
}

/* Infinite scroll — loaders et message de fin */
#marches-more-loader {
    position: relative;
    margin: 10px 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
}
#marches-end-msg {
    width: 100%;
    text-align: center;
    font-size: 1.3rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--couleur-texte);
    opacity: .4;
    padding: 2rem 0 1rem;
    margin: 0;
}



@media (min-width: 768px) {
    .carte-marches-ts .bloc-offre {width: calc(50% - 1rem);}
    .carte-marches-ts .bloc-marche {width: calc(50% - 1.1rem);}
}
@media (min-width: 1025px) {
    .carte-marches-ts .mobile-alternate {display: none;}
    .carte-marches-ts .offre-contenu {padding: 2rem;}
    .carte-marches-ts .liste-filtres-ts .liste-filtre {width: calc(33% - 1.1rem);}
    .carte-marches-ts .liste-marches {padding-left: 6rem; padding-top: 3rem; flex: 0 0 calc(60% - 4rem); min-width: 0;}
    .carte-marches-ts .liste-marches #liste_marches_loader {width: 100%;}
    .carte-marches-ts .contenu-marches-ts .map-container {flex: 0 0 calc(40% - 4rem); height: 100vh; min-height: 600px; top: 0; position: sticky; align-self: flex-start; transform: none; }


}

@media (min-width: 1400px) {
    .carte-marches-ts .liste-filtres-ts {padding: 4rem 6rem; justify-content: center; gap: 1.5rem 3rem; }
    .carte-marches-ts .liste-filtres-ts .liste-filtre {width: 25rem;}
    .carte-marches-ts .contenu-marches-ts {gap: 2rem 8rem;}
    .carte-marches-ts .bloc-marche {width: calc(33% - 1.1rem);}
}


/* --- bloc-mise-en-valeur.css --- */
.bloc-mise-en-valeur {padding: 0 2rem;}
.bloc-mise-en-valeur .mise-en-valeur-content {margin-bottom: 5rem; max-width: 80rem; margin-left: auto; margin-right: auto;}
.bloc-mise-en-valeur .mise-en-valeur-content h2 {margin-top: 0;}
.bloc-mise-en-valeur .mise-en-valeur-list {gap: 1.5rem 3rem; flex-wrap: wrap;}
.bloc-mise-en-valeur .mise-en-valeur-item {width: 100%; overflow: hidden; transition: all 800ms cubic-bezier(0.5, 1, 0.89, 1) 0s;}
.bloc-mise-en-valeur .mise-en-valeur-media {position: relative; height: 30vh;}
.bloc-mise-en-valeur .mise-en-valeur-media img {transition: var(--transition);}
.bloc-mise-en-valeur .mise-en-valeur-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0));
}

.bloc-mise-en-valeur .mise-en-valeur-media h3 {position: absolute; left: 2rem; right: 2rem; bottom: 4rem; margin: 0; color: #fff; z-index: 1; font-size: 1.8rem; letter-spacing: .25rem; font-weight: 600; text-transform: uppercase;  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4); transition: var(--transition); hyphens: auto;}



@media (hover: hover) {
    .bloc-mise-en-valeur .mise-en-valeur-item:hover {flex: 2;}
    .bloc-mise-en-valeur .mise-en-valeur-item:hover img {transform: scale(1.1);}
    .bloc-mise-en-valeur .mise-en-valeur-item:hover h3 {font-size: 2.5rem;}
}

@media (min-width:  768px) {
    .bloc-mise-en-valeur {padding: 0 4rem;}
    .bloc-mise-en-valeur .mise-en-valeur-item {width: calc(33% - 3rem); flex: 1; box-shadow: rgba(0, 0, 0, 0.1) 0px -2px 1px;}


}


@media (min-width: 1100px){
    .bloc-mise-en-valeur .mise-en-valeur-media {height: 50vh;}
    .bloc-mise-en-valeur .mise-en-valeur-content {background-color: #fff; padding: 5rem 6rem 6rem; margin-bottom: 0; }
    .bloc-mise-en-valeur .mise-en-valeur-list {position: relative; top: -4rem;}
    .bloc-mise-en-valeur .mise-en-valeur-content h2 {color: var(--couleur-cta);}
    .bloc-mise-en-valeur .mise-en-valeur-media h3 {left: 3rem; right: 3rem;}


}


@media (min-width: 1400px){
    .bloc-mise-en-valeur .mise-en-valeur-media {height: 70vh;}
    .bloc-mise-en-valeur .mise-en-valeur-media h3 {left: 5rem; right: 5rem; bottom: 6rem;}

}

@media (min-width: 1700px){
    .bloc-mise-en-valeur .mise-en-valeur-media {height: 65vh;}
    .bloc-mise-en-valeur {padding: 0 10rem;}

}

/* --- bloc-moments-forts.css --- */
.bloc-moments-forts {padding: 4rem 0;}

/* Liste */
.liste-moments {flex-direction: column; gap: 6rem;}

/* Item */
.moment-item {align-items: stretch; gap: 0; flex-wrap: wrap; overflow: hidden;}

/* Image */
.moment-image {position: relative; width: 100%; overflow: hidden; min-height: 28rem; flex-shrink: 0;}
.moment-image img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 700ms ease;}
.moment-image-placeholder {position: absolute; inset: 0; background: var(--couleur-background-dark, #eee);}
.moment-item:hover .moment-image img {transform: scale(1.04);}

.moment-content {flex: 1; padding: 3rem 2rem;  flex-direction: column; justify-content: center; min-width: 0; background-color: #fff;}

.moment-sous-titre {font-size: 1.5rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; display: inline-block;}

.moment-titre {font-size: 2.6rem; font-weight: 900; margin: 0; color: var(--couleur-texte); line-height: 1.2; text-transform: uppercase; letter-spacing: .04em; padding-bottom: 1.6rem; margin-top: .8rem;}

.moment-description {font-size: 1.5rem; font-weight: 300; line-height: 1.8; color: var(--couleur-texte); margin: 0;}
.moment-description p {margin: 0 0 .8rem;}
.moment-description p:last-child {margin: 0;}

/* CTA */
.moment-content .btn-cta {margin-top: 1.5rem;}
.moment-content .btn-cta i {font-size: 1.2rem; transition: transform 240ms ease;}
.moment-content .btn-cta:hover {gap: 1.2rem;}
.moment-content .btn-cta:hover i {transform: translateX(.4rem);}

/* Desktop : alternance gauche/droite */
@media (min-width: 768px) {
    .moment-item {flex-wrap: nowrap; min-height: 46rem;}
    .moment-image {width: 50%;}
    .moment-content  {padding: 4rem;}
    /* Impairs : image gauche, texte droite */
    .moment-impair .moment-image {order: 1;}
    .moment-impair .moment-content {order: 2;}

    /* Pairs : image droite, texte gauche */
    .moment-pair .moment-image {order: 2;}
    .moment-pair .moment-content {order: 1;}
}

@media (min-width: 1025px) {
    .moment-image {width: 48%;}
    .moment-titre {font-size: 3.2rem;}
    .moment-content .btn-cta {margin-top: 2rem;}
    .moment-impair .moment-content {padding: 5rem 5rem 5rem 6rem;}
    .moment-pair .moment-content {padding: 5rem 6rem 5rem 5rem;}
}


/* --- bloc-offres-selection.css --- */
/* === Bloc offres sélection === */

.bloc-offres-selection .offres-selection-liste { flex-wrap: wrap;gap: 1.5rem 2rem;}

.bloc-offres-selection .selection-card {flex-direction: column; width: 100%; color: inherit; overflow: hidden;}
.bloc-offres-selection .selection-card-inner {position: relative; width: 100%; aspect-ratio: 1 / 1; background-size: cover; background-repeat: no-repeat; background-position: center; background-color: var(--couleur-texte); overflow: hidden; flex-direction: column; justify-content: flex-end;}
.bloc-offres-selection .selection-card-inner::after {content: "";  position: absolute;  inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0)); pointer-events: none;  z-index: 0; transition: var(--transition);}
.bloc-offres-selection .selection-card-type { position: absolute;  top: 1.5rem; left: 1.5rem; z-index: 1; background: var(--couleur-cta); color: #fff; font-weight: 700;  text-transform: uppercase; letter-spacing: 0.1rem; padding: 0.3rem 0.7rem; }
.bloc-offres-selection .selection-card-footer {position: relative; z-index: 1; padding: 1.5rem;}
.bloc-offres-selection .selection-card-footer h3 {margin: 0 0 0.4rem; color: #fff; font-weight: 600;  letter-spacing: 0.1rem; text-transform: uppercase;  transition: var(--transition);}
.bloc-offres-selection .selection-card-footer p {font-weight: 400; color: #fff; text-transform: uppercase; font-size: 1.4rem;  width: 100%;  margin-top: .5rem;  margin-bottom: .4rem;}

@media (hover: hover) {
    .bloc-offres-selection .selection-card:hover {transform: translateY(-0.3rem)}
    .bloc-offres-selection .selection-card:hover .selection-card-inner::after {background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.1));}
    .bloc-offres-selection .selection-card:hover .selection-card-footer h3 {letter-spacing: 0.2rem;}
}

@media (min-width: 768px) {
    .bloc-offres-selection .selection-card {
        width: calc(50% - 1rem);
    }
}

@media (min-width: 1025px) {
    .bloc-offres-selection .selection-card { width: calc(25% - 1.5rem);}

}

/* --- bloc-portraits.css --- */
/* Bloc Portraits - Styles */

.bloc-portraits .liste-portraits {flex-direction: column;  gap: 5rem 2rem;}

/* Portrait bloc */
.bloc-portraits .portrait-bloc {flex-wrap: wrap; gap: 2rem 6rem; align-items: center;}

/* Alternance gauche/droite */
.bloc-portraits .portrait-bloc.portrait-reversed {
    direction: rtl;
}

.bloc-portraits .portrait-bloc.portrait-reversed > * {
    direction: ltr;
}

/* Image */
.bloc-portraits .portrait-img {position: relative; display: block;  overflow: hidden; aspect-ratio: 4/3; width: 100%;}

.bloc-portraits .portrait-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease, filter 0.4s ease;
}

.bloc-portraits .portrait-img:hover img {
    transform: scale(1.05);
}

.bloc-portraits .portrait-img-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.1) 100%);
    pointer-events: none;
    transition: background 0.4s ease;
}

.bloc-portraits .portrait-img:hover .portrait-img-overlay {
    background: linear-gradient(135deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.2) 100%);
}

/* Texte */
.bloc-portraits .portrait-txt {padding: 20px 0;}

.bloc-portraits .portrait-label {display: inline-block; font-weight: 600; text-transform: uppercase; letter-spacing: .2rem; color: var(--couleur-cta);  margin-bottom: 1.5rem; position: relative; padding-left: 4rem;}

.bloc-portraits .portrait-label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 2px;
    background-color: var(--couleur-cta, #c9a227);
}

.bloc-portraits .portrait-txt h2 {font-weight: 700; margin: 0 0 20px 0;}

.bloc-portraits .portrait-txt p {font-size: 1.6rem; margin: 0 0 30px 0;}

/* Lien découvrir */
.bloc-portraits .portrait-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--couleur-cta, #c9a227);
    text-decoration: none;
    position: relative;
    padding-bottom: 5px;
    transition: color 0.3s ease, gap 0.3s ease;
}

.bloc-portraits .portrait-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--couleur-cta, #c9a227);
    transition: width 0.4s ease;
}

.bloc-portraits .portrait-link:hover::after {
    width: 100%;
}

.bloc-portraits .portrait-link:hover {
    gap: 18px;
}

.bloc-portraits .portrait-link i {
    font-size: 12px;
    transition: transform 0.3s ease;
}

.bloc-portraits .portrait-link:hover i {
    transform: translateX(5px);
}

@media (min-width: 1025px) {
    .bloc-portraits .portrait-txt h2 {font-size: 3.2rem; font-weight: 700; margin: 0 0 20px 0;}
    .bloc-portraits .portrait-txt, .bloc-portraits .portrait-img {width: calc(50% - 4rem);}
    .bloc-portraits .portrait-bloc {gap: 2rem 8rem;}
    .bloc-portraits .liste-portraits {flex-direction: column;  gap: 8rem 2rem;}
}

/* --- bloc-quiz.css --- */
/* ============================================
   BLOC QUIZ & CLASSEMENT
   ============================================ */

.bloc-quiz-wrap {
    display: flex;
    flex-direction: column;
    gap: 5rem;
    margin-bottom: 6rem;
}

.quiz-block { flex-direction: column; gap: 3rem; margin-bottom: 10rem;}

.quiz-block-titre {position: relative;  max-width: max-content; z-index: 1; font-size: 3rem; margin: 0 auto 3rem; font-weight: 300; text-align: center;}
.quiz-block-titre::after {content: '';  background-color: #fff;  width: 100%; height: 4rem;  position: absolute; left: 2rem;  bottom: 0;  z-index: -1;}

.quiz-block-inner {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

/* ---- Bouton lancement quiz ---- */
.quiz-block-trigger {flex: 2; align-self: stretch;  align-items: center;  justify-content: center; background: url('/wp-content/uploads/2026/02/motif-vert-1.svg') no-repeat center; background-size: 40rem; background-color: rgba(134, 188, 36, .60);    background-size: cover; min-height: 40rem;}

.quiz-open-btn {display: inline-flex;  align-items: center; justify-content: center;  gap: .8rem; background: #fff;  color: var(--couleur-cta); font-size: 1.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;  border: none; padding: 1.3rem 2rem; cursor: pointer; transition: all 240ms ease-in-out; border: .8rem solid rgba(134, 188, 36, .60); outline: .4rem solid #fff;}

.quiz-open-btn:hover {background: var(--couleur-texte); border-color: var(--couleur-texte); color: #fff; border-width: 1rem; outline-width: .8rem; transform: scale3d(1.05, 1.05, 1.05);}

.quiz-open-btn i {
    font-size: 1.3rem;
}

/* ---- Modale ---- */
.quiz-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    align-items: center;
    justify-content: center;
}

.quiz-modal.is-open {
    display: flex;
}

.quiz-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.65);
    backdrop-filter: blur(3px);
}

.quiz-modal-content {
    position: relative;
    z-index: 1;
    background: #fff;
    border-radius: 12px;
    width: min(90vw, 80rem);
    max-height: 90vh;
    overflow-y: auto;
    padding: 4rem;
    box-shadow: 0 20px 60px rgba(0,0,0,.3);
    animation: quizModalIn 250ms ease;
}

@keyframes quizModalIn {
    from { opacity: 0; transform: translateY(2rem) scale(.97); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.quiz-modal-close {
    position: absolute;
    top: 1.6rem;
    right: 1.6rem;
    background: #f5f5f5;
    border: none;
    border-radius: 50%;
    width: 3.6rem;
    height: 3.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: var(--couleur-texte);
    cursor: pointer;
    transition: background 150ms;
}

.quiz-modal-close:hover {
    background: #e0e0e0;
}


/* Masquer le score animé AYS (géré par le tableau) */
.ays_score.animated {
    display: none !important;
}

/* ---- Zone classement ---- */
.quiz-block-classement {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}

.quiz-classement-titre {
    font-size: 1.8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--couleur-texte);
    margin: 0;
    display: flex;
    align-items: center;
    gap: .8rem;
}

.quiz-classement-titre i {
    color: #e6a817;
    font-size: 1.6rem;
}

/* ---- Tableau classement ---- */
.quiz-classement-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 1.45rem;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0,0,0,.07);
}

.quiz-classement-table thead tr {
    background: var(--couleur-cta);
}

.quiz-classement-table thead th {
    color: #fff;
    font-weight: 700;
    padding: 1.2rem 1.4rem;
    text-align: center;
    border: none;
}

.quiz-classement-table tbody tr {
    border-bottom: 1px solid #f0ede8;
    transition: background 150ms;
}

.quiz-classement-table tbody tr:last-child {
    border-bottom: none;
}

.quiz-classement-table tbody tr:nth-child(even) {
    background: #faf9f7;
}

.quiz-classement-table tbody tr:hover {
    background: #f3f1ee;
}

.quiz-classement-table td {
    padding: 1rem 1.4rem;
    text-align: center;
    color: var(--couleur-texte);
}

.quiz-nom {
    text-align: left !important;
    font-weight: 500;
}

.quiz-score {
    font-weight: 700;
    color: var(--couleur-cta) !important;
}

/* Podium top 3 */
.podium-row {
    font-weight: 600;
}

.quiz-position {
    font-weight: 700;
    font-size: 1.3rem;
    width: 4rem;
}

.medal-gold i    { color: #e6a817; }
.medal-silver i  { color: #9e9e9e; }
.medal-bronze i  { color: #a1673a; }

.quiz-classement-count {
    font-size: 1.3rem;
    color: #888;
    font-style: italic;
    margin: -.8rem 0 0;
}

.quiz-no-results {
    font-size: 1.4rem;
    color: #888;
    font-style: italic;
    padding: 2rem;
    background: #faf9f7;
    text-align: center;
}

@media (min-width: 900px) {
    .quiz-block-inner {
        flex-direction: row;
        align-items: flex-start;
    }

    .quiz-block-classement {
        position: sticky;
        top: 2rem;
        min-width: 28rem;
        max-width: 36rem;
    }
}


@media (min-width: 1025px) {
    .quiz-block-titre {font-size: 6rem;}
    .quiz-block-trigger {min-height: 50rem;}
}

/* --- bloc-slider.css --- */

.slider-carrousel {margin: 0;}
.container-bloc-slider {position: relative;}
/*.container-bloc-slider::after {content: "";  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 44, 53, .6) 0, rgba(16, 44, 53, 0) 25%); pointer-events: none;}*/
.container-bloc-slider.entete-center .slide-content {justify-content: flex-end; align-items: flex-start; margin-bottom: 6rem;}
.container-bloc-slider.entete-center .slide-content h1, .container-bloc-slider.entete-center .slide-content h2 {color: #fff;}
.container-bloc-slider .slick-slide {height: 70vh;}

@media (min-width: 768px) {
    .container-bloc-slider.entete-center .slide-content {max-width: auto;}
    }
    
@media (min-width: 1300px) {
    .container-bloc-slider .slick-slide {height: 100vh;}
}



/* --- bloc-slider-oti.css --- */


.slider-carrousel-oti {width: 100%; }
.container-bloc-slider-oti {padding: 0; position: relative;}
.container-bloc-slider-oti .slick-prev, .container-bloc-slider-oti .slick-next {position: initial; display: inline-block;}
.container-bloc-slider-oti .slick-prev:before, .container-bloc-slider-oti .slick-next:before {display: none;}

.container-bloc-slider-oti .slick-slide .slide-content {opacity: 0; transform: translateY(120%); will-change: transform, opacity; transition: opacity .9s, transform .9s cubic-bezier(.26,.54,.32,1) .3s; padding-left: 0; padding-right: 0; flex-direction: column; margin-top: 3rem;}
.container-bloc-slider-oti .slick-active .slide-content {opacity: 1; transform: translateY(0);}

.container-bloc-slider-oti.entete-center .slide-content {text-align: center; align-items: center; justify-content: center;}
.container-bloc-slider-oti:not(.entete-center) .slide-content {justify-content: flex-end; padding: 0 2rem 3rem; }
.container-bloc-slider-oti.entete-center .slide-content .btn-cta {margin-left: auto; margin-right: auto;}
.container-bloc-slider-oti h1, .container-bloc-slider-oti h2 {margin-top: 0; text-transform: uppercase; font-weight: 800; letter-spacing: .8rem; margin-bottom: .8rem;}
.container-bloc-slider-oti .slide-content p {font-size: 2rem; max-width: 60rem;}
.container-bloc-slider-oti .slick-active .image-slide img {transform: scale(1);}
.container-bloc-slider-oti .slide-content a.btn-cta {margin-top: 2rem; color: var(--couleur-texte); background-color: #fff;}
.container-bloc-slider-oti .slide-content a.btn-cta:hover {color: #fff;}

.container-bloc-slider-oti .slick-slide .image-slide {position: relative; overflow: hidden; width: 100%; aspect-ratio: 16/9; height: 70vh;}
.container-bloc-slider-oti .slick-slide .image-slide:before {content: ""; pointer-events: none; width: 100%; height: 100%; position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: 1; background-color: rgba(0, 0, 0, .3);}

.container-bloc-slider-oti.border-radius .slick-slide .image-slide {border-radius: var(--border-radius);}
.container-bloc-slider-oti .image-slide img {display: block; position: absolute; left: 0; top: 0; height: 100%; object-fit: cover; width: 100%; transform: scale(1.2); will-change: transform; transition: transform 2s cubic-bezier(.21,.6,.35,1);}
.container-bloc-slider-oti.border-radius .image-slide img {border-radius: var(--border-radius);}


.scroll-indicator-oti {position: absolute; bottom: 5rem; left: 50%; transform: translateX(-50%); z-index: 10; cursor: pointer; display: none;}
.scroll-indicator-oti svg {width: 28px; height: auto; animation: scrollBlink 1.6s ease-in-out infinite;}

/* Espace réservé en bas du contenu pour ne pas chevaucher l'indicateur */
/*.container-bloc-slider-oti .slick-slide .slide-content {padding-bottom: 7rem !important;}*/
.scroll-indicator-oti .scroll-dot {animation: scrollDotMove 1.6s ease-in-out infinite;}

@keyframes scrollBlink {
    0%, 100% {opacity: 1;}
    50% {opacity: 0.2;}
}

@keyframes scrollDotMove {
    0% {cy: 10;}
    50% {cy: 18;}
    100% {cy: 10;}
}

@media (min-width: 768px) {
    .container-bloc-slider-oti .slick-slide .slide-content {padding: 2rem; margin-top: 0;}
    .container-bloc-slider-oti:not(.entete-center) .slide-content {margin-bottom: 4rem; padding: 0 4rem; height: max-content; margin-top: auto; backdrop-filter: blur(1px);}
    .container-bloc-slider-oti .slide-content {position: absolute; top: 0; left: 0; bottom: 0; display: flex; z-index: 2;}
    .container-bloc-slider-oti.entete-center .slide-content {max-width: 80rem;}
    .container-bloc-slider-oti .slide-content h1, .container-bloc-slider-oti .slide-content h2, .container-bloc-slider-oti .slide-content p {color: #fff; text-shadow: 1px 1px 2px rgba(0, 0, 0, .70); }
    .container-bloc-slider-oti .slide-content h2 {color: #fff;}
}

@media (min-width: 1025px) {
    .container-bloc-slider-oti h1, .container-bloc-slider-oti h2 {font-size: 4rem;}
    .container-bloc-slider-oti .slick-slide .image-slide { height: 85vh;}
    .container-bloc-slider-oti:not(.entete-center) .slide-content {margin-bottom: 7rem;}
    

}

@media (min-width: 1400px) {
    .container-bloc-slider-oti .slide-content {position: absolute; top: 0; left: 15rem; right: 0; bottom: 0; display: flex; z-index: 2;}
    .container-bloc-slider-oti:not(.entete-center) .slide-content {max-width: 50%; padding: 0;}
    .scroll-indicator-oti {display: block;}
    .container-bloc-slider-oti .slick-slide .image-slide { height: 100vh;}
    .container-bloc-slider-oti h1, .container-bloc-slider-oti h2 {font-size: 5rem;}


}



/* --- bloc-texte.css --- */
.container-bloc-texte {background-size: cover; background-repeat: no-repeat;}
.container-bloc-texte.border-radius {border-radius: var(--border-radius); overflow: hidden;}
.container-bloc-texte .bloc-texte-base>*, .container-bloc-texte .bloc-texte-base + .bloc-texte-btn {margin-left: auto; margin-right: auto; width: 100%;}




.container-bloc-texte .bloc-texte-base, .container-bloc-texte .bloc-texte-additionnel, .container-bloc-texte .bloc-texte-titre {width: 100%;}
.container-bloc-texte .bloc-texte-titre {margin-bottom: 1.8rem;}
.container-bloc-texte .bloc-texte-btn {width: 100%;}
.container-bloc-texte .bloc-left:not(.bloc-text) .btn-cta {margin-left: auto; margin-right: auto;}



@media (min-width: 768px) {
    .container-bloc-texte .bloc-texte-contenu {column-gap: 7rem; padding: 60px 50px; }
    .container-bloc-texte .btn-cta {max-width: max-content;}
    .container-bloc-texte img {margin-top: 50px;}
    .container-bloc-texte .bloc-texte-base, .bloc-texte-additionnel {flex: 1; width: auto; min-width: calc(50% - 50px);}
    .bloc-texte-titre {margin-bottom: 3rem;}

}

@media (min-width: 1200px) {
    .container-bloc-texte .bloc-texte-contenu {column-gap: 100px; }
}

/* --- bloc-vignettes-liens.css --- */
/* =============================================
   Bloc Vignettes Liens
   ============================================= */

.bloc-vignettes-liens { padding: 2rem 0; }

.vignettes-grille {flex-wrap: wrap; gap: 2rem 3rem ;}

/* Carte */
.vignette-item { position: relative; overflow: hidden; background: var(--couleur-footer, #242427); width: 100%;}

/* Lien global */
.vignette-lien {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.vignette-lien:hover .vignette-image img {
    transform: scale(1.05);
}

.vignette-lien:hover .vignette-overlay {
    background: rgba(0, 0, 0, 0.35);
}

.vignette-lien:hover .vignette-cta {
    gap: 1.4rem;
    color: var(--couleur-cta, #c9a227);
}

.vignette-lien:hover .vignette-cta i {
    transform: translateX(4px);
}

/* Image */
.vignette-image { position: relative;  width: 100%; height: 22rem;  overflow: hidden;  flex-shrink: 0;}

.vignette-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 600ms ease;
}

.vignette-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.18);
    transition: background 400ms ease;
    pointer-events: none;
}

/* Contenu texte */
.vignette-content {
    flex: 1;
    padding: 2rem 2.4rem 2.4rem;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    background: var(--couleur-footer, #242427);
}

.vignette-titre {
    font-size: 1.8rem;
    font-weight: 700;
    color: #fff;
    margin: 0;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.vignette-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
    font-size: 1.3rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.7);
    transition: color 300ms ease, gap 300ms ease;
    margin-top: auto;
}

.vignette-cta i {
    font-size: 1.1rem;
    transition: transform 300ms ease;
    color: inherit;
}

/* ─── Responsive ─── */

@media (min-width: 768px) {
    .vignette-item {width: calc(50% - 1.5rem);}
}



@media (min-width: 1025px) {
    .vignette-item {width: calc(33% - 1.8rem); flex: 1 0 calc(33% - 1.8rem);}
    .vignette-image {height: 28rem;}
}


/* --- bloc-village.css --- */
.bloc-village {align-items: center; flex-wrap: wrap; padding: 4rem 2rem; gap: 4.5rem 6rem;}
.bloc-village .bloc-village-infos {width: 100%;}
.bloc-village .bloc-village-infos h2 {margin-top: 0;}
.bloc-village .bloc-village-infos .btn-cta {margin-top: 3rem;}
.bloc-village .bloc-village-visuel {width: 100%; height: 60vh; overflow: visible; align-items: center; justify-content: center;}
.bloc-village .bloc-village-visuel img {transition: var(--transition);}
.bloc-village .bloc-village-visuel img.img-contain {max-height: 82vh;}
.bloc-village .bloc-village-link {display: block; position: relative; width: 100%; height: 100%;}
.bloc-village .bloc-village-link img {width: 100%; height: 100%; display: block; object-fit: cover;}
.bloc-village .bloc-village-link::after {content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0));}
.bloc-village .bloc-village-link h3 {position: absolute; left: 1rem; right: 1rem; bottom: 1rem; margin: 0; color: #fff; z-index: 1; font-size: 1.35rem; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);}
/* Carte interactive avec marqueurs */
.bloc-village .carte-interactive {position: relative; width: 100%; height: 100%; align-items: center;}
.bloc-village .carte-interactive .fond-carte {width: 100%; height: 100%; display: block; object-fit: contain;}
.bloc-village .marqueur {position: absolute; transform: translate(-50%, -100%); cursor: pointer;}
.bloc-village .marqueur-icon {width: 3rem; height: auto; transition: transform 0.3s ease; object-fit: contain; max-height: 3.5rem;}
.bloc-village .marqueur:hover .marqueur-icon {transform: scale(1.2);}
.bloc-village .marqueur-popup {position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); background: #fff; padding: .8rem; box-shadow: var(--box-shadow); width: 20rem; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; margin-bottom: 1.5rem; z-index: 3;}
.bloc-village .marqueur-popup::after {content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 8px solid transparent; border-top-color: #fff;}
.bloc-village .marqueur:hover .marqueur-popup,
.bloc-village .marqueur.active .marqueur-popup {opacity: 1; visibility: visible;}
.bloc-village .popup-titre {font-weight: 500; margin-top: 0; margin-bottom: 0; letter-spacing: .04rem; font-size: 1.5rem;}
.bloc-village .popup-contenu {margin-top: 0;}
.bloc-village .popup-contenu p {font-size: 1.3rem; line-height: normal; display: inline-block; width: 100%; margin-top: 0;}
.bloc-village .popup-contenu p:first-of-type {margin-top: .5rem;}
.bloc-village .popup-contenu p:last-child {margin-bottom: .5rem;}
.bloc-village .marqueur-popup .btn-cta {padding: 0.5rem 1rem; text-decoration: none; font-size: 1.3rem; width: 100%; max-width: 100%; cursor: pointer;}
.bloc-village .marqueur .marqueur-popup img {width: 100%; height: 11rem; object-fit: cover;}
.bloc-village .marqueur:hover {z-index: 3;}


@media (hover: hover) {
    .bloc-village .bloc-village-visuel:hover a img {transform: scale(1.1);}
}

@media (min-width: 768px) {
    .bloc-village {padding: 4rem;}
}

@media (min-width: 1025px) {
    .bloc-village .bloc-village-visuel {width: 45%; height: 90vh;}
    .bloc-village .bloc-village-infos {flex: 1;}
    .bloc-village .marqueur-popup {width: 25rem;}
    .bloc-village .marqueur .marqueur-popup img {width: 100%; height: 14rem; object-fit: cover;}

}

@media (min-width: 1400px) {
    .bloc-village {padding: 0; gap: 4.5rem 10rem;}
    .bloc-village .bloc-village-visuel {width: 45%; height: 90vh;}
    .bloc-village .bloc-village-infos {margin-left: calc((100vw - 1180px) / 2);}
    .bloc-village .marqueur-icon {width: 3.5rem;}


}

@media (min-width: 1800px) {
    .bloc-village .bloc-village-infos {margin-left: calc((100vw - 1300px - 4rem) / 2);}
}


/* --- bloc-visite.css --- */
.section-visite {height: 50vh; background-repeat: no-repeat; background-size: cover; background-position: top; position: relative; align-items: flex-end;}
/*.section-visite::after {content: ""; position: absolute; height: 100%; width: 100%; top: 0; left: 0; background: linear-gradient(180deg,rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, .5) 100%);}*/
.section-visite .visite-link {flex-direction: column; position: relative; z-index: 1; padding: 3rem; max-height: max-content; width: 100%; background-color: rgba(255, 255, 255, .85); backdrop-filter: blur(1px); }
.section-visite .visite-link h2 {font-weight: 800; text-shadow: 0 1px 1px rgb(255 255 255 / 71%), 1px 1px 1px rgb(255 255 255 / 50%); max-width: max-content;}
@media (hover: hover) {

}


@media (min-width: 1100px) {
    .section-visite {height: 80vh;}
    .section-visite .visite-link {padding: 4rem; max-width: max-content; }

    
}

