.annuaire-container{
    display:grid;
    grid-template-columns:65% 35%;
    gap:30px;
    align-items:start;
}

.annuaire-liste{
    padding-right:15px;
}

.association-summary{
    margin:15px 0;
}

.association-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,250px));
    justify-content:center;
    gap:22px;
    align-items:start;
}

.association-card{
    background:#fff;
    border:1px solid #e5e5e5;
    border-radius:18px;
    padding:22px;
    display:flex;
    flex-direction:column;
    align-items:center;
    min-height:470px;
    transition:
        transform .25s ease,
        box-shadow .25s ease;
    box-shadow:
        0 6px 20px rgba(0,0,0,.05);
}

.association-card:hover{
    transform:translateY(-4px);
    box-shadow:
        0 14px 35px rgba(0,0,0,.10);
}

.association-logo{
    height:95px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:8px;
}

.association-logo img{
    max-width:120px;
    max-height:85px;
    width:auto;
    height:auto;
    object-fit:contain;
}

.association-logo img{
    max-width:180px;
    max-height:125px;
    width:auto;
    height:auto;
    object-fit:contain;
}

.association-card h2 {
    font-size:16px;
    margin:10px 0;
    text-align:center;
}

.association-link{
    margin-top:auto;
    padding:10px 18px;
    border-radius:10px;
    text-decoration:none;
    font-weight:600;
    color:#2b63d9;
    background:#f5f8ff;
    transition:.2s;
}

.association-link:hover{
    background:#284f99;
    color:#fff;
}

.annuaire-carte{
    position:sticky;
    top:20px;
    height:85vh;
}

#map-annuaire{
    width:100%;
    height:100%;
    border-radius:12px;
    background:#f0f5fa;
}
#map-annuaire {
    height: 700px !important;
}
.association-card.active {
    border: 2px solid #0d6efd;
    background: #f5f9ff;
}
.association-list {
    max-height:85vh;
    overflow-y:auto;
}
.association-item.hidden {
    display:none;
}
.association-tools {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:15px;
    font-size:14px;
}

#reset-map {
    background:#0d6efd;
    color:white;
    border:none;
    padding:6px 12px;
    border-radius:6px;
    cursor:pointer;
}

#reset-map:hover {
    background:#0b5ed7;
}

.association-project-title{
    height:112px;
    margin:0 0 18px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    line-height:1.35;
    font-size:1.18rem;
    font-weight:700;
    overflow:hidden;
}

.association-card {
    transition:all .2s ease;
}

.association-card:hover {
    transform:translateY(-3px);
    box-shadow:0 5px 15px rgba(0,0,0,.12);
}

.association-card.active {
    border:2px solid #0d6efd;
    box-shadow:0 5px 20px rgba(13,110,253,.25);
}


/* Barre de filtres */

.association-filters{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:14px;
    margin-top:22px;
}

.association-filters input{

    flex:2;
    min-width:260px;

}

.association-filters select{

    flex:1;
    min-width:180px;

}

.association-filters input,
.association-filters select{
    height:46px;
    padding:0 16px;
    border:1px solid #dbe2ea;
    border-radius:12px;
    background:#fff;
    font-size:.95rem;
    transition:.2s;
}

.association-filters input:focus,
.association-filters select:focus{
    outline:none;
    border-color:#3b82f6;
    box-shadow:0 0 0 3px rgba(59,130,246,.15);
}

#reset-filters{
    height:46px;
    padding:0 22px;
    border:none;
    border-radius:12px;
    background:#284f99;
    color:white;
    font-weight:600;
    cursor:pointer;
    transition:.25s;
}

#reset-filters:hover{

    background:#f0f5fc;
	color:#284f99;
    transform:translateY(-1px);
}

#association-count{

    margin-bottom:20px;

    font-weight:600;

    color:#555;

}
.association-tools{
    display:flex;
    align-items:center;
    gap:20px;
    margin-bottom:20px;
}

#association-count{
    font-weight:600;
}

#map-count{
    color:#666;
}

#reset-map{
    margin-left:auto;
}

/*====================================================
= Badges
====================================================*/

.association-badges{
    min-height:46px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    margin-bottom:5px;
}

.annuaire-badge{

    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:4px 10px;
    border-radius:999px;
    background:var(--badge-color,#ececec);
    color:#284f99;
    font-size:12px;
    font-weight:600;
}

.annuaire-badge img{

    width:16px;
    height:16px;
    display:block;

}

/* Barre des causes */

.association-causes{

    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:12px;

    margin:5px 0;

}

/*====================================================
= Variantes des badges
====================================================*/

.annuaire-badge{

    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border-radius:999px;
}

/* ---------- Badge complet ---------- */

.annuaire-badge--full{
    padding:6px 12px;
    background:var(--badge-color);
    color:#284f99;
    font-size:13px;
    font-weight:600;
}

/* ---------- Icône seule ---------- */

.annuaire-badge--icon{
    width:35px;
    height:35px;
    padding:0;
    background:transparent;
}

.annuaire-badge img{
    width:30px;
    height:30px;
}

.association-causes .annuaire-badge{
    opacity:1;
    transition:.2s;
}

.association-causes.causes-filtrees .annuaire-badge{
    opacity:.35;
}

.association-causes.causes-filtrees .annuaire-badge.active{
    opacity:1;
}

/* Badges sur les cartes */

.association-badges{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:6px;
    margin-top:8px;
}

.association-territoires{
    min-height:70px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    margin-bottom:5px;
}

.annuaire-badge--icon img{
    width:50px;
    height:50px;
}

.association-causes .annuaire-badge{
    cursor:pointer;
    transition:.2s;
}

.association-causes .annuaire-badge:hover{
    transform:translateY(-2px);
}

.association-causes .annuaire-badge.active{
    transform:translateY(-2px);
    box-shadow:0 6px 18px rgba(0,0,0,.15);
    filter:saturate(1.15);
}

/*----------------------------------
Meta des cartes
-----------------------------------*/

.association-meta{
    width:100%;
    margin-bottom:5px;
}

.association-meta-title{
    text-align:center;
    font-size:.68rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:#98a2b3;
    margin-bottom:4px;
}

.association-badges{
    min-height:46px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
}

.association-territoires{
    min-height:70px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
}

.association-meta + .association-meta{
    padding-top:5px;
    border-top:1px solid #eef2f6;
}


.map-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:15px;
}

.map-toolbar-left{
    display:flex;
    gap:8px;
}

.map-toolbar-right{
    display:flex;
}

.map-toolbar button{
    border:none;
    border-radius:22px;
    padding:9px 16px;
    background:#E9EEF9;
    color:#3558C8;
    font-weight:600;
    cursor:pointer;
    transition:.2s;
}

.map-toolbar button:hover{
    background:#284f99;
    color:#fff;
}

.map-toolbar button.active{
    background:#284f99;
    color:#fff;
    box-shadow:0 2px 8px rgba(99,134,248,.25);
}

.annuaire-carte.fullscreen{
    position:fixed;
    inset:20px;
    z-index:99999;
    background:#fff;
    border-radius:12px;
    box-shadow:0 10px 40px rgba(0,0,0,.25);
    padding:15px;
}

.annuaire-carte.fullscreen #map-annuaire{
    height:calc(100vh - 110px);
}

#btn-fullscreen{

    min-width:140px;

}

/*--------------------------------------------------------------
# Clusters carte
--------------------------------------------------------------*/

.marker-cluster-small,
.marker-cluster-medium,
.marker-cluster-large{

    background:transparent !important;

}

.marker-cluster{

    background:transparent !important;

}

.marker-cluster div{
    width:46px;
    height:46px;
    margin:0;
    border-radius:50%;
    background:#46ac8f;
    color:#fff;
    font-weight:700;
    font-size:15px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:3px solid #fff;
    box-shadow:0 4px 12px rgba(0,0,0,.18);
    transition:.25s;
}

.marker-cluster:hover div{
    transform:scale(1.08);
    background:#284f99;
}

/*--------------------------------------------------------------
# Popup Leaflet
--------------------------------------------------------------*/

.popup-association{
    text-align:center;
    min-width:180px;
}

.popup-logo{
    width:70px;
    height:70px;
    object-fit:contain;
    margin:0 auto 12px;
    display:block;
}

.popup-association h3{
    margin:0 0 10px;
    font-size:14px;
    line-height:1.3;
}

.popup-causes{
    display:flex;
    justify-content:center;
    gap:6px;
    margin-bottom:12px;
    flex-wrap:wrap;
}

.popup-link{
    display:inline-block;
    padding:7px 14px;
    border-radius:18px;
    background:#6386F8;
    color:#fff !important;
    text-decoration:none;
    font-weight:600;
    transition:.2s;
}

.popup-link:hover{
    background:#4D72F3;
}

.annuaire-badge-count {
    margin-left: 8px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: rgba(255,255,255,.65);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    font-weight: 700;
}

.association-causes-wrapper{
    margin-bottom:24px;
    width: calc(100% + 30px);
	
}

.association-causes-title{
    margin:0 0 1px;
    font-size:1rem;
    font-weight:700;
    color:#3b3b3b;
    letter-spacing:.02em;
}

.association-causes .annuaire-badge.disabled{
    opacity:.35;
    transition:opacity .2s ease;
}

.association-causes .annuaire-badge{
    transition:opacity .2s ease,
               transform .15s ease;
}

.association-causes .annuaire-badge:hover{
    transform:translateY(-2px);
}

.filtres-actifs{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
    margin:18px 0;
}

.filtre-actif{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:6px 10px;
    border-radius:999px;
    background:#f0f5fc;
    font-size:.9rem;
}

.filtre-actif button{
    border:none;
    background:none;
    cursor:pointer;
    color:#444;
    font-size:18px;
    font-weight:700;
    line-height:1;
    padding:0 0 0 4px;
    transition:0.2s;
}

.filtre-actif button:hover{
    color:#f0f5fc;
    transform:scale(1.15);
}

.filtres-actifs strong{
    margin-right:8px;
    display:flex;
    align-items:center;
    color:#284f99;
}

.annuaire-toolbar{
    background:#ffffff;
    border:1px solid #e7ebf0;
    border-radius:20px;
    padding:28px;
    box-shadow:
        0 8px 8px rgba(0,0,0,.05);
}

.ast-single-post .entry-content a{
	text-decoration:none;
}


/* ======================================================
   Barre d'outils sticky
====================================================== */

.association-causes-wrapper{
    position: sticky;
    top: 0;
    z-index: 1000;
    background: #f0f5fa;
    padding: 12px 0;
    border-bottom: 1px solid #e5e5e5;
}

/* ======================================================
   RESPONSIVE — MOBILE
   ====================================================== */

@media screen and (max-width: 767px) {

    /* ----------------------------------
       Structure générale
    ---------------------------------- */

    .annuaire-container {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        gap: 25px;
    }

    .annuaire-liste {
        width: 100% !important;
        padding-right: 0 !important;
    }

    .annuaire-carte {
        position: relative !important;
        top: auto !important;
        width: 100% !important;
        height: 450px !important;
    }


    /* ----------------------------------
       Liste des associations
    ---------------------------------- */

    .association-list {
        display: grid !important;
        grid-template-columns: 1fr !important;
        width: 100% !important;
        max-height: none !important;
        overflow-y: visible !important;
        gap: 18px;
    }

    .association-card {
        width: 100% !important;
        min-height: 0 !important;
        box-sizing: border-box;
        padding: 20px;
    }


    /* ----------------------------------
       Carte Leaflet
    ---------------------------------- */

    #map-annuaire {
        width: 100% !important;
        height: 450px !important;
    }


    /* ----------------------------------
       Logo
    ---------------------------------- */

    .association-logo {
        height: 90px;
    }

    .association-logo img {
        max-width: 150px;
        max-height: 100px;
    }


    /* ----------------------------------
       Titre du projet
    ---------------------------------- */

    .association-project-title {
        height: auto;
        min-height: 75px;
        margin-bottom: 15px;
        font-size: 1.1rem;
    }


    /* ----------------------------------
       Filtres
    ---------------------------------- */

    .association-filters {
        flex-direction: column !important;
        gap: 10px;
        width: 100%;
    }

    .association-filters input,
    .association-filters select,
    #reset-filters {
        width: 100% !important;
        min-width: 0 !important;
        flex: none !important;
        box-sizing: border-box;
    }


    /* ----------------------------------
       Barre des causes
    ---------------------------------- */

    .association-causes {
        gap: 8px;
        margin: 18px 0;
    }


    /* ----------------------------------
       Barre d'outils
    ---------------------------------- */

    .annuaire-toolbar {
        padding: 18px;
        margin: 20px auto 25px;
        border-radius: 15px;
    }

    .association-causes-wrapper {
        width: 100% !important;
    }


    /* ----------------------------------
       Barre de la carte
    ---------------------------------- */

    .map-toolbar {
        flex-wrap: wrap;
        gap: 10px;
    }

    .map-toolbar-left,
    .map-toolbar-right {
        width: 100%;
    }

    .map-toolbar button {
        flex: 1;
    }

    #btn-fullscreen {
        width: 100%;
        min-width: 0;
    }


    /* ----------------------------------
       Mode plein écran de la carte
    ---------------------------------- */

    .annuaire-carte.fullscreen {
        inset: 10px;
        padding: 10px;
    }

    .annuaire-carte.fullscreen #map-annuaire {
        height: calc(100vh - 90px) !important;
    }

}

@media screen and (max-width: 767px) {

    .association-causes-wrapper {
        position: relative !important;
        top: auto !important;
    }

}

/* ======================================================
   RESPONSIVE — TABLETTE
   ====================================================== */

@media screen and (min-width: 768px) and (max-width: 1100px) {

    /* ----------------------------------
       Structure liste + carte
    ---------------------------------- */

    .annuaire-container {
        grid-template-columns: 60% 40%;
        gap: 20px;
    }

    .annuaire-liste {
        padding-right: 5px;
    }


    /* ----------------------------------
       Grille des associations
    ---------------------------------- */

    .association-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
        max-height: 85vh;
    }

    .association-card {
        width: 100%;
        min-height: 450px;
        padding: 18px;
        box-sizing: border-box;
    }


    /* ----------------------------------
       Carte
    ---------------------------------- */

    .annuaire-carte {
        height: 85vh;
    }

    #map-annuaire {
        height: 700px !important;
    }


    /* ----------------------------------
       Filtres
    ---------------------------------- */

    .association-filters {
        gap: 10px;
    }

    .association-filters input {
        min-width: 220px;
    }

    .association-filters select {
        min-width: 160px;
    }


    /* ----------------------------------
       Barre des causes
    ---------------------------------- */

    .association-causes-wrapper {
        position: relative !important;
        top: auto !important;
    }

}

@media screen and (min-width:1101px){
    .association-list{
        grid-template-columns:repeat(auto-fill,minmax(225px,1fr));
        gap:18px;
    }
}

@media screen and (min-width:768px){
    .association-list{
        padding-right:16px;
    }
}

option.option-disponible   { font-weight: 600; color: #284f99; }
option.option-indisponible { color: #aaa; }

/* ======================================================
   Bouton "Masquer / Afficher les filtres"
====================================================== */

.btn-toggle-filtres{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 auto 10px;
    padding:8px 18px;
    border:1px solid #d9e3f2;
    border-radius:999px;
    background:#ffffff;
    color:#284f99;
    font-size:13px;
    font-weight:600;
    line-height:1.2;
    cursor:pointer;
}

.btn-toggle-filtres:hover{
    background:#f0f5fc;
}

.btn-toggle-filtres:focus-visible{
    outline:2px solid #284f99;
    outline-offset:2px;
}

/* Petit chevron : vers le haut quand les filtres sont visibles */
.btn-toggle-filtres::after{
    content:"";
    width:7px;
    height:7px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(-135deg);
    position:relative;
    top:2px;
}

/* ... et vers le bas quand ils sont masqués */
.association-causes-wrapper.filtres-masques .btn-toggle-filtres::after{
    transform:rotate(45deg);
    top:-2px;
}

/* Bloc replié : on ne garde que le bouton */
.association-causes-wrapper.filtres-masques > *:not(.btn-toggle-filtres){
    height:0 !important;
    min-height:0 !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    border-top-width:0 !important;
    border-bottom-width:0 !important;
    overflow:hidden !important;
    visibility:hidden;
}

.association-causes-wrapper.filtres-masques{
    padding-top:8px;
    padding-bottom:8px;
}

.association-causes-wrapper.filtres-masques .btn-toggle-filtres{
    margin-bottom:0;
}