/* ==========================================================================
   Divi Child — theme.css
   Contient tout le CSS custom du thème enfant.
   Aucun style inline dans les fichiers PHP.
   ========================================================================== */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Luciole bold', Helvetica, Arial, Lucida, sans-serif;
}
body, input, textarea, select {
    font-family: 'Luciole Regular', Helvetica, Arial, Lucida, sans-serif;
}
/* ══════════════════════════════════════════════════════════════════════════
   1. ACTUS PAR MOIS — Liste + cartes
   ══════════════════════════════════════════════════════════════════════════ */

.actus-par-mois {
    margin: 0 auto;
    padding: 0 20px;
}

.actus-mois__titre {
    font-size: 31px;
    margin: 50px 0 25px;
    padding-bottom: 0.4em;
    border-bottom: 2px solid #e0e0e0;
    color: #000;
}

.actus-mois__liste {
    list-style: none;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding:0 !important
}

/* Carte actu */
.actu-card {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 1.5rem;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow 0.2s ease;
    height:auto
}
@media(min-width:769px){
    .actu-card {
        max-height:360px
    }
}
.actu-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.10);
}

.actu-card__media {
    position: relative;
    overflow: hidden;
}

.actu-card__media a {
    display: block;
    height: 100%;
}

.actu-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.actu-card__no-img {
    width: 100%;
    height: 100%;
    min-height: 120px;
    background: #f0f0f0;
}

.actu-card__body {
    padding: 1.2rem 1.2rem 1.2rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.actu-card__titre {
    margin: 0;
    font-size: 1.1em;
    line-height: 1.3;
}

.actu-card__titre a {
    text-decoration: none;
    color: inherit;
}

.actu-card__titre a:hover {
    text-decoration: underline;
}

.actu-card__meta {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.9em;
    color: #555;
    padding: 0 0 0 1em !important
}

.actu-card__meta li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.actu-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    color: #888;
}

.actu-meta {
    font-size: 16px;
    line-height: 1.5;
    display: flex;
    margin-top: 3px;
}

.actu-card__btn {
    display: inline-block;
    margin-top: auto;
    padding: 0.5em 1.2em;
    background: #0073aa;
    color: #fff !important;
    border-radius: 4px;
    text-decoration: none;
    font-size: 0.9em;
    align-self: flex-start;
    transition: background 0.2s ease;
}

.actu-card__btn:hover {
    background: #005a87;
}

/* Bouton Load More */
.actus-load-more-wrap {
    text-align: center;
    margin: 2rem 0;
}

.actus-load-more {
    padding: 0.7em 2em;
    background: #0073aa;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1em;
    transition: background 0.2s ease;
}

.actus-load-more:hover {
    background: #005a87;
}

/* Responsive */
@media (max-width: 600px) {
    .actu-card {
        grid-template-columns: 1fr;
    }
    .actu-card__media {
        height: 200px;
    }
    .actu-card__body {
        padding: 1rem;
    }
}
.actu-card__icones{
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap:10px
}
.actu-card__icones img{
    width: 36px;
    margin:10px 0
}
.actu-card__icone--picto-accessibilite-fleche{
    display:none
}
/* ══════════════════════════════════════════════════════════════════════════
   2. SINGLE ACTU — Fiche événement
   ══════════════════════════════════════════════════════════════════════════ */

.event-details-wrapper {
    background-color: #efefef;
    border-radius: 10px;
    overflow: hidden;
    padding: 30px;
}

.event-detail {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid #f0f0f0;
}

.event-detail:last-of-type {
    border-bottom: none;
}

.event-detail-icon {
    font-size: 18px;
    min-width: 22px;
}

.event-detail-value {
    font-size: 18px;
    color: #000719;
    line-height: 1.5em;
    word-break: break-word;
}

.event-detail-value a {
    color: inherit;
}

.event-detail-value a:hover {
    text-decoration: underline;
}

/* Dropdown calendrier */
.event-cal-wrapper {
    position: relative;
    margin-top: 20px;
}

.event-cal-btn {
    background: #0073aa;
    color: #fff;
    border: none;
    padding: 11px 22px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 15px;
}

.event-cal-btn:hover {
    background: #005a87;
}

.event-cal-dropdown {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 0;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
    min-width: 230px;
    z-index: 999;
    overflow: hidden;
}

.event-cal-dropdown.open {
    display: block;
}

.event-cal-dropdown a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 18px;
    color: #333;
    text-decoration: none !important;
    font-size: 14px;
}

.event-cal-dropdown a:hover {
    background: #f5f5f5;
}

/* Vidéo / image seule */
.solo-image {
    max-height: 490px;
    display: flex;
    object-fit: contain;
    object-position: center bottom;
    overflow: hidden;
}

.solo-image img {
    max-height: 100%;
}


/* Bloc accessibilité */
#bloc_accessibilite.bloc_accessibilite_actu .grid-posts {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

#bloc_accessibilite.bloc_accessibilite_actu .grid-posts .et_pb_row {
    width: 100%;
    margin: 0;
}

#bloc_accessibilite.bloc_accessibilite_actu .item-info img {
    -webkit-filter: brightness(0) invert(1);
    filter: brightness(0) invert(1);
}
#bloc_accessibilite_poi .grid-posts {
    display: block !important;
    column-count: 2;
    column-gap: 20px;
    position: static !important;
}
@media(max-width: 768px){
    #bloc_accessibilite_poi .grid-posts {
        column-count: 1;
    }
}
#bloc_accessibilite_poi .dmach-grid-item {
    display: inline-block !important;
    width: 100% !important;
    position: static !important;
    left: auto !important;
    top: auto !important;
    break-inside: avoid;
    margin-bottom: 20px;
}
.section-interview-title{
    display:block;
    color:#ffffff;
    background-color:#468aaa;
    border-radius: 10px;
    padding:5px;
    margin:20px 0
}

/* ══════════════════════════════════════════════════════════════════════════
   3. CAROUSEL SWIPER — [actus_ville] / [parcours_ville]
   ══════════════════════════════════════════════════════════════════════════ */

.actus-carousel-wrap {
    width: 100%;
    margin: 0;
    position: relative;
    padding: 0;
}

.actus-carousel-wrap .swiper-slide {
    height: auto;
    display: flex;
}

.actus-carousel-wrap .actu-item {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 400px;
}

.actus-carousel-wrap .actu-overlay {
    position: absolute;
    inset: 0;
}

.actus-carousel-wrap .actu-content {
    padding: 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.actus-carousel-wrap h3.actu-titre {
    color: #fff;
    font-size: 22px;
    text-align: center;
    margin: 0 auto;
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 4px;
    display: block;
    padding: 10px 20px;
    width: fit-content;
    max-width: 70%;
}

.actus-carousel-wrap .swiper-button-next,
.actus-carousel-wrap .swiper-button-prev {
    color: #fff;
    background: #3979ff;
    border-radius: 48px;
    width: 44px;
}

.actus-carousel-wrap .swiper-button-next::after,
.actus-carousel-wrap .swiper-button-prev::after {
    font-size: 24px;
    position: absolute;
    top: calc(50% - 12px);
}

.actus-carousel-wrap .swiper-button-prev::after {
    left: calc(50% - 7px);
}

.actus-carousel-wrap .swiper-button-next::after {
    right: calc(50% - 7px);
}


/* ══════════════════════════════════════════════════════════════════════════
   4. PARTENAIRES — [partenaires]
   ══════════════════════════════════════════════════════════════════════════ */

.partenaires-wrap {
    width: 100%;
    margin: 1.5rem 0;
}

.partenaires-flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: stretch;
    gap: 25px;
}

.partenaires-flex .partenaires-item {
    flex: 1 1 0;
    min-width: 150px;
    max-width: calc(25% - 4rem);
    display: flex;
    align-content: center;
}

.partenaires-flex .partenaires-item img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 6px;
    display: block;
}

/* Slider partenaires */
.partenaires-slider {
    position: relative;
}

.partenaires-slider .swiper-slide {
    height: auto;
    display: flex;
}

.partenaires-slider .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}

.partenaires-slider .swiper-button-next,
.partenaires-slider .swiper-button-prev {
    color: #222;
}

.partenaires-slider .swiper-pagination-bullet-active {
    background: #222;
}


/* ══════════════════════════════════════════════════════════════════════════
   5. LOGOS PARTENAIRES — [logos_partenaires]
   ══════════════════════════════════════════════════════════════════════════ */

.logos-partenaires-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 20px 30px;
    margin: 2rem 0;
}

.logos-partenaires-wrap .logo-item {
    flex: 0 0 calc(25% - 30px);
    max-width: calc(25% - 30px);
    height: 100px; /* hauteur par défaut — surchargeable via attr. PHP si besoin */
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.logos-partenaires-wrap .logo-item img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

@media (max-width: 900px) {
    .logos-partenaires-wrap .logo-item {
        flex: 0 0 calc(33.333% - 30px);
        max-width: calc(33.333% - 30px);
    }
}

@media (max-width: 640px) {
    .logos-partenaires-wrap .logo-item {
        flex: 0 0 calc(50% - 20px);
        max-width: calc(50% - 20px);
    }
}


/* ══════════════════════════════════════════════════════════════════════════
   6. VILLES POLAROID — [villes_polaroid]
   ══════════════════════════════════════════════════════════════════════════ */

.vp-wrapper {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    padding-bottom: 40px;
}
/* Permet à l'ombrage de déborder hors du conteneur Swiper */
.vp-wrapper .swiper {
    padding: 20px;
    margin: -20px;
}
.vp-is-slider {
    padding-top: 56px;
    margin-top: -56px;
}
@media(max-width:580px){
    .vp-is-slider {
        margin-top: -26px;
    }
}
/* Flèches haut droite, hors du slider */
.vp-controls {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    z-index: 10;
}

.vp-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1.5px solid #d8d8d8;
    background: #fff;
    color: #333;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease, color 0.2s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.vp-btn:hover {
    background: #222;
    border-color: #222;
    color: #fff;
    transform: scale(1.08);
}

.vp-btn svg {
    flex-shrink: 0;
}

/* Track */
.vp-track-wrapper {
    overflow: hidden;
    width: 100%;
    padding:20px
}

.vp-track {
    display: flex;
    transition: transform 0.45s cubic-bezier(0.77, 0, 0.175, 1);
    will-change: transform;
}

/* Grille (1-2 villes) */
.vp-grid {
    display: flex;
    justify-content: center;
    gap: 40px;
}
@media(max-width:768px){
    .vp-grid {
        flex-direction: column;
    }
}
/* Slider : 2 par vue desktop */
.vp-is-slider .vp-slide {
    flex: 0 0 50%;
    box-sizing: border-box;
    padding: 8px 16px;
    display: flex;
    justify-content: center;
}

/* Slider : 1 par vue mobile */
@media (max-width: 768px) {
    .vp-is-slider .vp-slide {
        flex: 0 0 100%;
        padding: 8px 12px;
    }
}

/* Carte polaroid */
.vp-polaroid {
    display: block;
    background: #fff;
    padding: 20px;
    box-shadow: 0px 2px 12px 0px rgba(0,0,0,0.3);
    border-radius: 5px;
    text-decoration: none;
    color: inherit;
    width: 100%;
    box-sizing: border-box;
}

.vp-photo {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f0ede8;
    margin-bottom:25px
}

.vp-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}
.vp-polaroid:hover .vp-photo img {
    transform: scale(1.04);
}
.vp-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #e8e0d5 0%, #d4c9bc 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.vp-placeholder span {
    font-size: 72px;
    font-weight: 700;
    color: rgba(0, 0, 0, 0.12);
    text-transform: uppercase;
    user-select: none;
}

.vp-caption {
    font-family: 'Luciole bold',Helvetica,Arial,Lucida,sans-serif;
    font-size: 23px;
    font-weight: 700;
    text-align: center;
    color: #333;
    line-height: 1.4;
}
/* Sur desktop, si seulement 2 villes : les 2 sont visibles,
   les flèches et dots sont inutiles → on les masque */
@media (min-width: 769px) {
    .vp-wrapper .swiper[data-count="2"] ~ .vp-controls {
        display: none;
    }
    .vp-wrapper .swiper[data-count="2"] .swiper-pagination {
        display: none;
    }
}
/* ══════════════════════════════════════════════════════════════════════════
   7. BLOCS ÉDITORIAUX
   ══════════════════════════════════════════════════════════════════════════ */

/* Lire aussi */
.lire-aussi-bloc {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 5px 0;
    background-color: rgba(0, 0, 0, 0.12);
}

.lire-aussi-label {
    font-size: 16px;
    line-height: 1.2;
    color: #666;
    font-family: 'Luciole Regular', Helvetica, Arial, Lucida, sans-serif;
    font-weight: 500;
    text-align: center;
}

.lire-aussi-lien {
    font-size: 16px;
    line-height: 1.2;
    font-family: 'Luciole Regular', Helvetica, Arial, Lucida, sans-serif;
    font-weight: 500;
    text-align: center;
}

.lire-aussi-lien:hover {
    text-decoration: underline;
}

/* Image une + légende */
.image-une-wrap {
    margin: 0 0 1.5rem;
    background: #f2f2f2;
    border-radius: 10px;
    overflow: hidden;
    display: inline-block;
    max-width: 100%;
}

.image-une-wrap .image-une-img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
}

.image-une-wrap .image-une-legende {
    margin: 0;
    padding: 10px 15px;
    font-size: 16px;
    color: #444;
    line-height: 1.4;
    text-align: center;
}

/* Titre bienvenue */
h1.titre-bienvenue {
    font-size: 60px !important;
}

@media (max-width: 980px) {
    h1.titre-bienvenue { font-size: 48px !important; }
}

@media (max-width: 580px) {
    h1.titre-bienvenue { font-size: 36px !important; }
}


/* ══════════════════════════════════════════════════════════════════════════
   8. DIVI / MODULES TIERS
   ══════════════════════════════════════════════════════════════════════════ */

/* Divi Machine — ACF item */
.et_pb_de_mach_acf_item p {
    font-size: 18px;
    line-height: 1.8;
    color: #000719;
}

@media (max-width: 580px) {
    .et_pb_de_mach_acf_item p {
        font-size: 16px;
    }
}


/* ═══════════════════════════════════════════════════════════════════════
   HUB VILLES — Sélecteur de ville (header Divi)
═══════════════════════════════════════════════════════════════════════ */
.ville-selector-wrapper { 
    display:flex; 
    align-items:center; 
    gap:6px; 
    padding:0 20px;
}
@media(max-width:640px){
    .ville-selector-wrapper { 
        padding:0;
    }
}
.ville-selector__label  { 
    display:flex; 
    align-items:center; 
    color:inherit; 
    opacity:.75; 
    line-height:1;
}
#ville-switcher {
    appearance:none;
    -webkit-appearance:none;
    background:transparent;
    border:1px solid #000000;
    border-radius:4px;
    color:#000000;
    cursor:pointer;
    font-weight: 500;
    font-size:16px;
    font-family: 'Noto Sans',Helvetica,Arial,Lucida,sans-serif;
    opacity:1;
    padding:4px 24px 4px 10px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='currentColor' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 8px center;
}
#ville-switcher:hover,
#ville-switcher:focus{ 
    outline:none;
}
.carte-ville-wrapper{
    text-align: center;
}
.carte-ville-select{
    font-size:18px !important;
}
/* ═══════════════════════════════════════════════════════════════════════
   HUB VILLES — Sélecteur de catégorie
═══════════════════════════════════════════════════════════════════════ */
.hub-cat--inactif{
    opacity:.5
}
/* ═══════════════════════════════════════════════════════════════════════
   HUB GRILLE — Cards communes ([hub_evenements], [hub_lieux], [hub_parcours])
═══════════════════════════════════════════════════════════════════════ */
.hub-grille { width:100%; }
.hub-grille__titre { margin-bottom:32px; }
.hub-grille__titre--alentours{color: #FFFFFF !important;font-weight:700 !important;margin-bottom:0;text-transform:uppercase;text-align: center;}
.hub-grille__vide  { opacity:.65; font-style:italic; }
.hub-grille__liste { display:grid; grid-template-columns:1fr; gap:28px; }
@media (min-width:640px)  { .hub-grille__liste { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px) {
    .hub-grille__liste { grid-template-columns:repeat(3,1fr); }
    .hub-grille--parcours .hub-grille__liste { grid-template-columns:repeat(2,1fr); }
}

.hub-card {
    display:flex; flex-direction:column; border-radius:6px; overflow:hidden;
    box-shadow:0 2px 10px rgba(0,0,0,.08); background:#fff;
    transition:transform .2s ease, box-shadow .2s ease;
}
.hub-grille--parcours .hub-grille__liste .hub-card{
    border-bottom-width: 1px !important;
    border-bottom-color: #e2e5ed !important;
    flex-direction: column;
    align-items: center;
    text-align: center !important;
    padding-top: 0px;
    padding-right: 0px;
    padding-bottom: 30px;
    padding-left: 0px;
    border-radius: 0px;
    overflow: hidden;
    box-shadow: none;
    background: rgba(0,0,0,0.11)!important;
    transition: none;
}        
.hub-card:hover { transform:translateY(-4px); box-shadow:0 6px 20px rgba(0,0,0,.13); }
.hub-grille--parcours .hub-grille__liste .hub-card:hover { transform:translateY(0); box-shadow:none; }
.hub-card__media { display:block; overflow:hidden; aspect-ratio:16/9; }
.hub-grille--parcours .hub-grille__liste .hub-card .hub-card__media {
    aspect-ratio:1/1;
    width: 300px !important;
    height: 300px !important;
    margin-bottom: 12px;
}
.hub-card__img   { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.hub-card:hover .hub-card__img { transform:scale(1.04); }
.hub-grille--parcours .hub-grille__liste .hub-card:hover .hub-card__img { transform:scale(1); }
.hub-grille--parcours .hub-grille__liste .hub-card .hub-card__body  { display:flex; flex-direction:column; flex:1; padding:0; gap:0px; }
.hub-card__body  { display:flex; flex-direction:column; flex:1; padding:18px 20px 20px; gap:10px; }
.hub-card__titre { font-size:1rem; line-height:1.4; margin:0; }
.hub-card__titre a { color:inherit; text-decoration:none; }
.hub-card__titre a:hover { text-decoration:underline; }
.hub-grille--parcours .hub-grille__liste .hub-card .hub-card__titre{
    font-family: 'Luciole Regular', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 700 !important;
    color: #000000 !important;
    font-size:20px;
    padding-bottom:0
}
.hub-card__extrait { font-size:.9rem; opacity:.7; margin:0; flex:1; }
.hub-card__btn {
    align-self:flex-start; font-size:.85rem; font-weight:600; text-decoration:none;
    padding:6px 14px; border-radius:3px; border:1px solid currentColor;
    transition:background .2s ease, color .2s ease;
}
.hub-card__btn:hover { background:currentColor; }

.hub-grille__pagination { margin-top:40px; display:flex; justify-content:center; gap:6px; flex-wrap:wrap; }
.hub-grille__pagination .page-numbers {
    display:inline-flex; align-items:center; justify-content:center;
    min-width:36px; height:36px; padding:0 8px; border-radius:4px;
    border:1px solid rgba(0,0,0,.15); font-size:.85rem; text-decoration:none; transition:background .2s ease;
}
.hub-grille__pagination .page-numbers.current,
.hub-grille__pagination .page-numbers:hover { background:rgba(0,0,0,.08); }

/* ═══════════════════════════════════════════════════════════════════════
   VILLE DASHBOARD — [ville_dashboard]
═══════════════════════════════════════════════════════════════════════ */
.ville-dashboard { display:flex; flex-direction:column; gap:56px; }

.vd-section__header {
    display:flex; align-items:baseline; justify-content:space-between; gap:16px;
    margin-bottom:24px; padding-bottom:12px; border-bottom:2px solid rgba(0,0,0,.07);
}
.vd-section__titre { margin:0; font-size:1.35rem; }
.vd-section__voir-tout {
    display:inline-flex; align-items:center; gap:5px; font-size:.85rem; font-weight:600;
    text-decoration:none; white-space:nowrap; opacity:.75; transition:opacity .2s ease;
}
.vd-section__voir-tout:hover { opacity:1; }
.vd-erreur { background:#fff3cd; border:1px solid #ffc107; border-radius:4px; padding:12px 16px; font-size:.9rem; }
/* ═══════════════════════════════════════════════════════════════════════
   FOND TITRE CATÉGORIE
═══════════════════════════════════════════════════════════════════════ */
.cat-couleur-bg {
    background-color: var(--cat-couleur, transparent) !important;
}
/* ═══════════════════════════════════════════════════════════════════════
   MASQUER LES SECTIONS DIVI CONTENANT UN SHORTCODE CAROUSEL VIDE
═══════════════════════════════════════════════════════════════════════ */
.et_pb_section:has(.hub-vide),
.et_pb_row:has(.hub-vide),
.et_pb_text:has(.hub-vide) {
    display: none;
}
/* ═══════════════════════════════════════════════════════════════════════
   AUCUN PARCOURS MESSAGE
═══════════════════════════════════════════════════════════════════════ */
.message-aucun-post{
    text-align:center;
    font-size: 22px;
    font-weight: 600;
}
/* ═══════════════════════════════════════════════════════════════════════
   SINGLE ARTICLE - POI
═══════════════════════════════════════════════════════════════════════ */
.bandeau-cv__texte{
    font-family: 'Luciole Regular', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 700 !important;
    font-size: 32px;
    text-transform: uppercase !important;
    color: #FFFFFF !important;
    line-height: 1.6em !important;
    text-align: center !important;
    margin: 0 auto;
    display: block;
}
.bandeau-cv__lien,
.bandeau-cv__lien:hover{
    color:#FFFFFF !important;
    text-decoration: none;
}
/* ═══════════════════════════════════════════════════════════════════════
   SINGLE ACTU
═══════════════════════════════════════════════════════════════════════ */
.event-map-wrapper .fluid-width-video-wrapper{
	padding-top:100% !important
}
/* ═══════════════════════════════════════════════════════════════════════
   BLOC CTA « AUX ALENTOURS » — pages villes ([alentours_ville])
   Titre + bouton à gauche (champs ACF de la fiche ville), image à droite.
═══════════════════════════════════════════════════════════════════════ */
.alentours-cta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    flex-wrap:wrap;
    padding:32px 40px;
    border-radius:12px;
    background:var(--cat-couleur, #f4f4f4);
    overflow:hidden;
}
.alentours-cta__contenu{
    flex:1 1 calc(50% - 16px);
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
}
.alentours-cta__titre{
    margin:0;
    padding:0;
}
.alentours-cta__media{
    flex:0 1 calc(50% - 16px);
}
.alentours-cta__img{
    display:block;
    width:100%;
    height:auto;
    border-radius:8px;
}
.alentours-cta__bouton{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:14px 28px;
    border-radius:10px;
    background:#27509b;
    color:#fff !important;
    font-weight:700;
    text-decoration:none;
    white-space:nowrap;
    transition:transform 300ms ease;
}
.alentours-cta__bouton:hover{
    transform:scaleX(1.02) scaleY(1.02)!important;
}
@media (max-width: 767px){
    .alentours-cta{
        flex-direction:column;
        align-items:flex-start;
        padding:24px;
    }
}
.hub-grille--alentours .hub-grille__liste{
    display: flex;
    flex-wrap: wrap;
}
.hub-grille--alentours .hub-grille__liste .hub-card{
    flex: 0 0 calc(100% / 2);
    max-width: calc(100% / 2);
    padding: 0;
    background-color: rgba(0,0,0,0.11)!important;
    border-radius: 0;
    box-shadow: none;
}
.hub-grille--alentours .hub-grille__liste .hub-card:hover {
    transform: none;
    box-shadow: none
}
.hub-grille--alentours .hub-grille__liste .hub-card .hub-card__img{
    width: 300px !important;
    height: 300px !important;
    margin:0 auto;
    object-fit: cover;
    object-position: center;
    border-radius:3px 3px 3px 3px
}
.hub-grille--alentours .hub-grille__liste .hub-card:hover .hub-card__img {
    transform: none;
}
.hub-grille--alentours .hub-grille__liste .hub-card .hub-card__body{
    padding:10px 20px 20px
}
.hub-grille--alentours .hub-grille__liste .hub-card .hub-card__titre{
    font-family: 'Luciole Regular', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 700 !important;
    color: #000000 !important;
    font-size:20px;
    text-align:center
}
.hub-grille--alentours .hub-grille__liste .hub-card .hub-card__titre a:hover{
    text-decoration: none;
}
.hub-grille--alentours .hub-grille__liste .hub-card .hub-card__extrait,
.hub-grille--alentours .hub-grille__liste .hub-card .hub-card__btn{
    display: none;
}
@media(max-width:768px){
    .hub-grille--alentours .hub-grille__liste .hub-card{
        flex: 0 0 100%;
        max-width: 100%;
    }
}


/* ═══════════════════════════════════════════════════════════════════════
   MODE ALENTOURS — utilitaires de visibilité (templates Divi partagés)
   body.mode-alentours est ajouté par PHP quand ?alentours=1.
   → .masquer-si-alentours : module caché en mode alentours
   → .uniquement-alentours : module visible SEULEMENT en mode alentours
═══════════════════════════════════════════════════════════════════════ */
body.mode-alentours .masquer-si-alentours{
    display:none !important;
}
body:not(.mode-alentours) .uniquement-alentours{
    display:none !important;
}

.poi-post-list-parent{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}
.poi-post-list-child{
    position: relative;
    background-color: rgba(0,0,0,0.11);
    border-bottom-width: 1px;
    border-bottom-color: #e2e5ed;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 10px 30px;
    margin:11px;
}
.poi-logo-tourisme-handicap{
    position:absolute;
    top:0;
    right:0;
    max-width: 100px;
    max-height: 100px;
}
.poi-post-list-thumb img{
    max-width:300px;
    max-height:300px;
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    margin:0 auto 12px;
    display:block;
}
h2.poi-post-list-title{
    font-family: 'Luciole Regular', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 700 !important;
    color: #000000 !important;
    font-size: 20px;
}
@media(max-width:580px){
    .poi-post-list-parent{
        grid-template-columns: repeat(1, 1fr);
    }
}