/* =========================================================
   RÉSEAU TERRITORIAL
   FICHE PUBLIQUE ASSOCIATION V2
   Base architecturale
========================================================= */

.association-public-v2{
    --public-primary:var(--structure-primary,#2563eb);
    --public-secondary:var(--structure-secondary,#111827);
    --public-accent:var(--structure-accent,#22c55e);
    --public-background:var(--structure-bg,#f6f8fb);
    --public-card:var(--structure-card,#ffffff);
    --public-text:var(--structure-text,#111827);
    --public-muted:#64748b;
    --public-border:rgba(15,23,42,.09);
    --public-radius:28px;
    --public-radius-small:18px;
    --public-shadow:0 24px 70px rgba(15,23,42,.10);

    position:relative;
    width:100%;
    min-height:100vh;
    background:var(--public-background);
    color:var(--public-text);
    overflow:hidden;
}

.association-public-v2 *,
.association-public-v2 *::before,
.association-public-v2 *::after{
    box-sizing:border-box;
}

.association-public-v2__container{
    width:min(1540px,calc(100% - 48px));
    margin-inline:auto;
}

.association-public-v2__main{
    position:relative;
    z-index:2;
    padding:28px 0 80px;
}

.association-public-v2__section{
    position:relative;
    margin-top:34px;
    scroll-margin-top:180px;
}

.association-public-v2__card{
    background:var(--public-card);
    border:1px solid var(--public-border);
    border-radius:var(--public-radius);
    box-shadow:var(--public-shadow);
}

.association-public-v2__eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:10px;
    color:var(--public-primary);
    font-size:12px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-v2__section-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:20px;
}

.association-public-v2__section-heading h2{
    margin:0;
    color:var(--public-text);
    font-size:clamp(28px,4vw,48px);
    line-height:1.02;
    letter-spacing:-.045em;
}

.association-public-v2__section-heading p{
    max-width:720px;
    margin:9px 0 0;
    color:var(--public-muted);
    font-size:15px;
    line-height:1.65;
}

@media(max-width:900px){
    .association-public-v2__container{
        width:min(100% - 28px,1540px);
    }

    .association-public-v2__section-heading{
        align-items:flex-start;
        flex-direction:column;
        gap:12px;
    }
}

@media(max-width:640px){
    .association-public-v2__container{
        width:min(100% - 20px,1540px);
    }

    .association-public-v2__main{
        padding-top:12px;
        padding-bottom:120px;
    }

    .association-public-v2__section{
        margin-top:24px;
    }

    .association-public-v2__card{
        border-radius:22px;
    }
}

/* =========================================================
   HERO IMMERSIF
========================================================= */

.association-public-hero{
    position:relative;
    min-height:620px;
    overflow:hidden;
    border-radius:34px;
    background:
        linear-gradient(
            135deg,
            var(--public-secondary),
            var(--public-primary)
        );
    box-shadow:0 32px 90px rgba(15,23,42,.22);
    isolation:isolate;
}

.association-public-hero__background,
.association-public-hero__overlay,
.association-public-hero__glow{
    position:absolute;
    inset:0;
}

.association-public-hero__background{
    z-index:-4;
    background:
        linear-gradient(
            135deg,
            var(--public-secondary),
            var(--public-primary)
        );
    background-position:center;
    background-size:cover;
    transform:scale(1.02);
}

.association-public-hero__overlay{
    z-index:-3;
    background:
        linear-gradient(
            90deg,
            rgba(2,6,23,.92) 0%,
            rgba(2,6,23,.72) 46%,
            rgba(2,6,23,.30) 100%
        ),
        linear-gradient(
            0deg,
            rgba(2,6,23,.62),
            transparent 55%
        );
}

.association-public-hero__glow{
    z-index:-2;
    background:
        radial-gradient(
            circle at 78% 18%,
            color-mix(
                in srgb,
                var(--public-primary) 45%,
                transparent
            ),
            transparent 34%
        );
}

.association-public-hero__content{
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    align-items:end;
    gap:42px;
    min-height:620px;
    padding:54px;
}

.association-public-hero__identity{
    display:flex;
    align-items:flex-end;
    gap:28px;
    min-width:0;
}

.association-public-hero__logo{
    position:relative;
    display:flex;
    flex:0 0 148px;
    align-items:center;
    justify-content:center;
    width:148px;
    height:148px;
    overflow:visible;
    border:6px solid rgba(255,255,255,.95);
    border-radius:38px;
    background:#ffffff;
    box-shadow:0 26px 60px rgba(0,0,0,.34);
}

.association-public-hero__logo img{
    width:100%;
    height:100%;
    padding:10px;
    border-radius:30px;
    object-fit:contain;
}

.association-public-hero__logo > span:not(
    .association-public-hero__verified-icon
){
    color:var(--public-secondary);
    font-size:42px;
    font-weight:950;
}

.association-public-hero__verified-icon{
    position:absolute;
    right:-8px;
    bottom:-8px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border:4px solid #ffffff;
    border-radius:50%;
    background:#22c55e;
    color:#ffffff;
    font-size:18px;
    font-weight:950;
}

.association-public-hero__main{
    min-width:0;
    padding-bottom:3px;
}

.association-public-hero__badges{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:15px;
}

.association-public-hero__badges span{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:6px 11px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    background:rgba(255,255,255,.12);
    color:#ffffff;
    font-size:11px;
    font-weight:850;
    backdrop-filter:blur(14px);
}

.association-public-hero__badges .is-verified{
    border-color:rgba(34,197,94,.46);
    background:rgba(34,197,94,.22);
}

.association-public-hero h1{
    max-width:900px;
    margin:0;
    color:#ffffff !important;
    font-size:clamp(40px,6vw,76px);
    font-weight:950;
    line-height:.96;
    letter-spacing:-.055em;
    text-wrap:balance;
    text-shadow:0 12px 36px rgba(0,0,0,.24);
}

.association-public-hero__description{
    max-width:780px;
    margin:18px 0 0;
    color:rgba(255,255,255,.84) !important;
    font-size:clamp(15px,1.7vw,19px);
    line-height:1.6;
}

.association-public-hero__meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:20px;
}

.association-public-hero__meta span{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:126px;
    padding:10px 13px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:14px;
    background:rgba(255,255,255,.09);
    color:#ffffff;
    font-size:13px;
    backdrop-filter:blur(14px);
}

.association-public-hero__meta strong{
    color:rgba(255,255,255,.62);
    font-size:9px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-public-hero__actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:24px;
}

.association-public-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:47px;
    padding:11px 18px;
    border:1px solid transparent;
    border-radius:14px;
    font:inherit;
    font-size:13px;
    font-weight:900;
    text-decoration:none;
    cursor:pointer;
    transition:
        transform .2s ease,
        background .2s ease,
        border-color .2s ease;
}

.association-public-action:hover{
    transform:translateY(-2px);
}

.association-public-action--primary{
    background:var(--public-primary);
    color:#ffffff !important;
    box-shadow:
        0 16px 34px
        color-mix(
            in srgb,
            var(--public-primary) 34%,
            transparent
        );
}

.association-public-action--secondary{
    border-color:rgba(255,255,255,.24);
    background:rgba(255,255,255,.12);
    color:#ffffff !important;
    backdrop-filter:blur(14px);
}

.association-public-action--manager{
    border-color:#ffffff;
    background:#ffffff;
    color:var(--public-secondary) !important;
}

.association-public-hero__trust{
    align-self:center;
    padding:25px;
    border:1px solid rgba(255,255,255,.58);
    border-radius:25px;
    background:rgba(255,255,255,.94);
    box-shadow:0 26px 70px rgba(0,0,0,.22);
    backdrop-filter:blur(22px);
}

.association-public-hero__trust-label{
    color:var(--public-primary);
    font-size:10px;
    font-weight:950;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.association-public-hero__trust h2{
    margin:7px 0 17px;
    color:var(--public-text) !important;
    font-size:24px;
    line-height:1.05;
}

.association-public-hero__trust dl{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin:0;
}

.association-public-hero__trust dl div{
    padding-bottom:11px;
    border-bottom:1px solid rgba(15,23,42,.08);
}

.association-public-hero__trust dt{
    color:var(--public-muted);
    font-size:10px;
    font-weight:850;
    text-transform:uppercase;
}

.association-public-hero__trust dd{
    margin:3px 0 0;
    color:var(--public-text);
    font-size:13px;
    font-weight:800;
    overflow-wrap:anywhere;
}

.association-public-hero__trust-footer{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:17px;
    color:#15803d;
    font-size:11px;
    font-weight:850;
}

.association-public-hero__trust-footer span{
    display:flex;
    align-items:center;
    justify-content:center;
    width:23px;
    height:23px;
    border-radius:50%;
    background:#dcfce7;
    color:#15803d;
}

@media(max-width:1100px){
    .association-public-hero__content{
        grid-template-columns:1fr;
        align-items:end;
    }

    .association-public-hero__trust{
        display:none;
    }
}

@media(max-width:760px){
    .association-public-hero{
        min-height:620px;
        border-radius:25px;
    }

    .association-public-hero__content{
        min-height:620px;
        padding:28px 22px;
    }

    .association-public-hero__identity{
        align-items:flex-start;
        flex-direction:column;
        gap:18px;
    }

    .association-public-hero__logo{
        flex-basis:104px;
        width:104px;
        height:104px;
        border-width:4px;
        border-radius:28px;
    }

    .association-public-hero__logo img{
        border-radius:21px;
    }

    .association-public-hero h1{
        font-size:clamp(36px,12vw,54px);
    }

    .association-public-hero__meta{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        width:100%;
    }

    .association-public-hero__actions{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        width:100%;
    }

    .association-public-action{
        width:100%;
    }
}

@media(max-width:460px){
    .association-public-hero__content{
        padding:23px 17px;
    }

    .association-public-hero__meta,
    .association-public-hero__actions{
        grid-template-columns:1fr;
    }
}

/* =========================================================
   NAVIGATION PUBLIQUE PREMIUM
========================================================= */

.association-public-navigation{
    position:sticky;
    top:88px;
    z-index:80;
    margin-top:18px;
    padding:9px;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.08);
    border-radius:20px;
    background:rgba(255,255,255,.90);
    box-shadow:0 18px 45px rgba(15,23,42,.10);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);
}

.association-public-navigation__scroll{
    display:flex;
    align-items:center;
    gap:7px;
    overflow-x:auto;
    scrollbar-width:none;
}

.association-public-navigation__scroll::-webkit-scrollbar{
    display:none;
}

.association-public-navigation a{
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    gap:7px;
    min-height:42px;
    padding:9px 13px;
    border-radius:13px;
    color:var(--public-muted);
    font-size:12px;
    font-weight:850;
    text-decoration:none;
    white-space:nowrap;
    transition:
        background .2s ease,
        color .2s ease,
        transform .2s ease;
}

.association-public-navigation a:hover,
.association-public-navigation a.is-active{
    background:
        color-mix(
            in srgb,
            var(--public-primary) 12%,
            #ffffff
        );
    color:var(--public-primary);
    transform:translateY(-1px);
}

.association-public-navigation a small{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    padding:0 6px;
    border-radius:999px;
    background:var(--public-primary);
    color:#ffffff;
    font-size:9px;
    font-weight:950;
}


/* =========================================================
   PRÉSENTATION ET IMPACT
========================================================= */

.association-public-overview__layout{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
    gap:20px;
}

.association-public-overview__story{
    position:relative;
    overflow:hidden;
    padding:34px;
}

.association-public-overview__story::before{
    content:"";
    position:absolute;
    top:-100px;
    right:-90px;
    width:260px;
    height:260px;
    border-radius:50%;
    background:
        color-mix(
            in srgb,
            var(--public-primary) 10%,
            transparent
        );
    pointer-events:none;
}

.association-public-overview__story-header{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:24px;
}

.association-public-overview__story-header > span{
    color:var(--public-primary);
    font-size:12px;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-public-overview__story-header strong{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 10px;
    border-radius:999px;
    background:#ecfdf5;
    color:#15803d;
    font-size:10px;
    font-weight:900;
}

.association-public-overview__story-header i{
    display:flex;
    align-items:center;
    justify-content:center;
    width:19px;
    height:19px;
    border-radius:50%;
    background:#22c55e;
    color:#ffffff;
    font-style:normal;
}

.association-public-overview__story-content{
    position:relative;
    color:var(--public-text);
    font-size:clamp(16px,1.5vw,19px);
    font-weight:520;
    line-height:1.85;
}

.association-public-overview__highlight{
    position:relative;
    margin:28px 0 0;
    padding:24px 24px 24px 64px;
    border:1px solid
        color-mix(
            in srgb,
            var(--public-primary) 18%,
            transparent
        );
    border-radius:20px;
    background:
        color-mix(
            in srgb,
            var(--public-primary) 7%,
            var(--public-card)
        );
}

.association-public-overview__highlight > span{
    position:absolute;
    top:15px;
    left:20px;
    color:var(--public-primary);
    font-family:Georgia,serif;
    font-size:54px;
    line-height:1;
}

.association-public-overview__highlight p{
    margin:0;
    color:var(--public-text);
    font-size:16px;
    font-weight:750;
    line-height:1.6;
}

.association-public-overview__tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:27px;
}

.association-public-overview__tags span{
    display:inline-flex;
    align-items:center;
    min-height:31px;
    padding:7px 11px;
    border:1px solid
        color-mix(
            in srgb,
            var(--public-primary) 16%,
            transparent
        );
    border-radius:999px;
    background:
        color-mix(
            in srgb,
            var(--public-primary) 6%,
            var(--public-card)
        );
    color:var(--public-primary);
    font-size:10px;
    font-weight:900;
}

.association-public-overview__side{
    display:grid;
    gap:20px;
}

.association-public-impact,
.association-public-territory{
    padding:26px;
}

.association-public-impact__heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}

.association-public-impact__heading > span,
.association-public-territory__eyebrow{
    color:var(--public-primary);
    font-size:10px;
    font-weight:950;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.association-public-impact__heading strong{
    color:var(--public-primary);
    font-size:42px;
    font-weight:950;
    line-height:.9;
    letter-spacing:-.05em;
}

.association-public-impact__heading small{
    color:var(--public-muted);
    font-size:13px;
    letter-spacing:0;
}

.association-public-impact__track{
    width:100%;
    height:9px;
    margin-top:24px;
    overflow:hidden;
    border-radius:999px;
    background:
        color-mix(
            in srgb,
            var(--public-primary) 10%,
            #e2e8f0
        );
}

.association-public-impact__track span{
    display:block;
    height:100%;
    min-width:4px;
    border-radius:inherit;
    background:
        linear-gradient(
            90deg,
            var(--public-primary),
            var(--public-accent)
        );
}

.association-public-impact p{
    margin:18px 0 0;
    color:var(--public-muted);
    font-size:12px;
    line-height:1.65;
}

.association-public-territory{
    background:
        linear-gradient(
            145deg,
            var(--public-secondary),
            color-mix(
                in srgb,
                var(--public-secondary) 55%,
                var(--public-primary) 45%
            )
        );
    color:#ffffff;
}

.association-public-territory__eyebrow{
    color:rgba(255,255,255,.67);
}

.association-public-territory h3{
    margin:10px 0 6px;
    color:#ffffff !important;
    font-size:30px;
    line-height:1;
}

.association-public-territory p,
.association-public-territory address{
    margin:8px 0 0;
    color:rgba(255,255,255,.76);
    font-size:12px;
    font-style:normal;
    line-height:1.5;
}

.association-public-territory a{
    display:inline-flex;
    margin-top:20px;
    padding:9px 13px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:12px;
    background:rgba(255,255,255,.12);
    color:#ffffff;
    font-size:11px;
    font-weight:900;
    text-decoration:none;
}

.association-public-metrics{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
    margin-top:20px;
}

.association-public-metric{
    position:relative;
    min-height:150px;
    padding:22px;
    overflow:hidden;
}

.association-public-metric::after{
    content:"";
    position:absolute;
    right:-34px;
    bottom:-40px;
    width:105px;
    height:105px;
    border-radius:50%;
    background:
        color-mix(
            in srgb,
            var(--public-primary) 7%,
            transparent
        );
}

.association-public-metric > span{
    position:relative;
    z-index:1;
    color:var(--public-muted);
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-public-metric strong{
    position:relative;
    z-index:1;
    display:block;
    margin-top:17px;
    color:var(--public-primary);
    font-size:42px;
    font-weight:950;
    line-height:.9;
    letter-spacing:-.05em;
}

.association-public-metric small{
    position:relative;
    z-index:1;
    display:block;
    margin-top:11px;
    color:var(--public-muted);
    font-size:10px;
    line-height:1.4;
}

@media(max-width:1100px){
    .association-public-overview__layout{
        grid-template-columns:1fr;
    }

    .association-public-overview__side{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .association-public-metrics{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .association-public-navigation{
        top:72px;
        margin-inline:-2px;
        border-radius:16px;
    }

    .association-public-overview__story{
        padding:24px 20px;
    }

    .association-public-overview__story-header{
        align-items:flex-start;
        flex-direction:column;
        gap:10px;
    }

    .association-public-overview__side{
        grid-template-columns:1fr;
    }

    .association-public-metrics{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .association-public-overview__highlight{
        padding:55px 19px 20px;
    }

    .association-public-overview__highlight > span{
        top:12px;
        left:18px;
    }
}

@media(max-width:430px){
    .association-public-metrics{
        grid-template-columns:1fr;
    }

    .association-public-metric{
        min-height:125px;
    }
}


/* =========================================================
   FICHE PUBLIQUE ASSOCIATION V2
   LARGEUR DESKTOP + PLEINE LARGEUR MOBILE
========================================================= */

/*
|--------------------------------------------------------------------------
| Neutralisation des contraintes du layout général
|--------------------------------------------------------------------------
*/

html:has(.association-public-v2),
body:has(.association-public-v2){
    width:100%;
    max-width:none;
    overflow-x:clip;
}

body:has(.association-public-v2) main,
body:has(.association-public-v2) .main-content,
body:has(.association-public-v2) .content,
body:has(.association-public-v2) .page-content{
    width:100% !important;
    max-width:none !important;
}

/*
|--------------------------------------------------------------------------
| Version ordinateur
|--------------------------------------------------------------------------
*/

.association-public-v2{
    width:100% !important;
    max-width:none !important;
}

.association-public-v2__main{
    width:100% !important;
    max-width:none !important;
}

.association-public-v2__container{
    width:min(1680px,calc(100% - 32px)) !important;
    max-width:none !important;
    margin-inline:auto !important;
}

/*
|--------------------------------------------------------------------------
| Écrans intermédiaires
|--------------------------------------------------------------------------
*/

@media (max-width:1200px){

    .association-public-v2__container{
        width:calc(100% - 24px) !important;
    }
}


/*
|--------------------------------------------------------------------------
| MOBILE — UTILISER TOUTE LA LARGEUR DISPONIBLE
|--------------------------------------------------------------------------
*/

@media (max-width:700px){

    /*
    | Le layout général ne doit pas ajouter de marge latérale
    | supplémentaire autour de la fiche publique.
    */

    body:has(.association-public-v2) main,
    body:has(.association-public-v2) .main-content,
    body:has(.association-public-v2) .content,
    body:has(.association-public-v2) .page-content{
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding-left:0 !important;
        padding-right:0 !important;
    }

    .association-public-v2{
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
    }

    .association-public-v2__main{
        width:100% !important;
        max-width:none !important;
        margin:0 !important;

        /*
        | Petit espace supérieur et réserve pour la navigation
        | mobile fixe du site.
        */
        padding:8px 0 125px !important;
    }

    .association-public-v2__container{
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 8px !important;
    }

    /*
    | Hero presque bord à bord
    */

    .association-public-hero{
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        border-radius:24px !important;
    }

    /*
    | Navigation publique presque bord à bord
    */

    .association-public-navigation{
        width:100% !important;
        max-width:none !important;
        margin:10px 0 0 !important;
    }

    /*
    | Toutes les sections occupent la largeur disponible
    */

    .association-public-v2__section{
        width:100% !important;
        max-width:none !important;
        margin-left:0 !important;
        margin-right:0 !important;
    }

    .association-public-overview,
    .association-public-overview__layout,
    .association-public-overview__story,
    .association-public-overview__side,
    .association-public-impact,
    .association-public-territory,
    .association-public-metrics{
        width:100% !important;
        max-width:none !important;
    }

    /*
    | Cartes de statistiques :
    | une carte par ligne sur les téléphones étroits.
    */

    .association-public-metrics{
        grid-template-columns:1fr !important;
        gap:12px !important;
    }

    .association-public-metric{
        width:100% !important;
        min-height:128px !important;
    }
}


/*
|--------------------------------------------------------------------------
| Très petits téléphones
|--------------------------------------------------------------------------
*/

@media (max-width:430px){

    .association-public-v2__container{
        padding-left:5px !important;
        padding-right:5px !important;
    }

    .association-public-hero{
        border-radius:20px !important;
    }

    .association-public-navigation{
        border-radius:15px !important;
    }

    .association-public-v2__card{
        border-radius:20px !important;
    }
}


/* =========================================================
   COMPATIBILITÉ AVEC LE LAYOUT GLOBAL RÉSEAU TERRITORIAL
========================================================= */

@media (max-width:700px){

    body:has(.association-public-v2).sidebar-expanded main,
    body:has(.association-public-v2).mini-site-layout main,
    body:has(.association-public-v2) main{
        width:100% !important;
        max-width:100% !important;
        margin-left:0 !important;
        margin-right:0 !important;
        padding-left:0 !important;
        padding-right:0 !important;
    }

    body:has(.association-public-v2) .container,
    body:has(.association-public-v2) .container-fluid,
    body:has(.association-public-v2) .page-container{
        width:100% !important;
        max-width:none !important;
        margin-left:0 !important;
        margin-right:0 !important;
        padding-left:0 !important;
        padding-right:0 !important;
    }
}


/* =========================================================
   FICHE PUBLIQUE ASSOCIATION V2
   CORRECTION ALIGNEMENT ORDINATEUR
   Le comportement mobile reste inchangé
========================================================= */

@media (min-width:701px){

    /*
    |--------------------------------------------------------------------------
    | Le layout général gère déjà l’espace réservé à la barre latérale.
    | On annule donc le width:100% forcé précédemment sur le main.
    |--------------------------------------------------------------------------
    */

    body:has(.association-public-v2) main,
    body:has(.association-public-v2).sidebar-expanded main,
    body:has(.association-public-v2).mini-site-layout main,
    body:has(.association-public-v2) .main-content,
    body:has(.association-public-v2) .content,
    body:has(.association-public-v2) .page-content{
        width:auto !important;
        max-width:100% !important;
        min-width:0 !important;
        margin-right:0 !important;
        box-sizing:border-box !important;
    }

    /*
    |--------------------------------------------------------------------------
    | La fiche reste strictement dans la largeur disponible du contenu.
    |--------------------------------------------------------------------------
    */

    .association-public-v2{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        overflow-x:clip !important;
    }

    .association-public-v2__main{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding-left:0 !important;
        padding-right:0 !important;
        box-sizing:border-box !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Centrage réel dans l’espace restant après la sidebar.
    |--------------------------------------------------------------------------
    */

    .association-public-v2__container{
        width:calc(100% - 32px) !important;
        max-width:1480px !important;
        min-width:0 !important;
        margin-left:auto !important;
        margin-right:auto !important;
        padding-left:0 !important;
        padding-right:0 !important;
        box-sizing:border-box !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Empêche les composants internes de dépasser la fiche.
    |--------------------------------------------------------------------------
    */

    .association-public-hero,
    .association-public-navigation,
    .association-public-v2__section,
    .association-public-overview,
    .association-public-overview__layout,
    .association-public-overview__story,
    .association-public-overview__side,
    .association-public-impact,
    .association-public-territory,
    .association-public-metrics{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        box-sizing:border-box !important;
    }

    .association-public-overview__layout,
    .association-public-hero__content{
        min-width:0 !important;
    }
}


/* Écrans d’ordinateur moins larges */

@media (min-width:701px) and (max-width:1200px){

    .association-public-v2__container{
        width:calc(100% - 24px) !important;
    }
}


/* =========================================================
   FICHE PUBLIQUE ASSOCIATION V2
   FINITION MOBILE — HERO, CARTES ET ÉLÉMENTS FIXES
========================================================= */

@media (max-width:700px){

    /*
    |--------------------------------------------------------------------------
    | Réserve la place nécessaire à la navigation mobile fixe
    |--------------------------------------------------------------------------
    */

    .association-public-v2{
        padding-bottom:150px !important;
        overflow-x:hidden !important;
    }

    .association-public-v2__main{
        padding-bottom:170px !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Hero mobile plus compact
    |--------------------------------------------------------------------------
    */

    .association-public-hero{
        min-height:0 !important;
        border-radius:24px !important;
    }

    .association-public-hero__content{
        min-height:0 !important;
        padding:20px 16px 22px !important;
    }

    .association-public-hero__description{
        display:-webkit-box !important;
        overflow:hidden !important;
        -webkit-box-orient:vertical !important;
        -webkit-line-clamp:8 !important;

        max-height:12.8em !important;
        margin-top:14px !important;

        font-size:15px !important;
        line-height:1.6 !important;
    }

    .association-public-hero h1{
        font-size:clamp(30px,9vw,40px) !important;
        line-height:1.02 !important;
        letter-spacing:-.04em !important;
    }

    .association-public-hero__meta{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:8px !important;
    }

    .association-public-hero__meta span{
        width:100% !important;
        min-width:0 !important;
        padding:11px 13px !important;
    }

    .association-public-hero__actions{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:8px !important;
    }

    .association-public-action{
        width:100% !important;
        min-height:46px !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Navigation interne de la fiche
    |--------------------------------------------------------------------------
    */

    .association-public-navigation{
        position:relative !important;
        top:auto !important;

        display:flex !important;
        gap:7px !important;

        width:100% !important;
        max-width:100% !important;

        overflow-x:auto !important;
        overflow-y:hidden !important;

        padding:8px !important;
        scroll-snap-type:x proximity;
        -webkit-overflow-scrolling:touch;
    }

    .association-public-navigation a{
        flex:0 0 auto !important;
        white-space:nowrap !important;
        scroll-snap-align:start;
    }

    /*
    |--------------------------------------------------------------------------
    | Présentation
    |--------------------------------------------------------------------------
    */

    .association-public-v2__section-heading h2{
        font-size:29px !important;
        line-height:1.08 !important;
    }

    .association-public-overview__layout{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:14px !important;
    }

    .association-public-overview__story,
    .association-public-impact,
    .association-public-territory{
        padding:22px 18px !important;
        border-radius:22px !important;
    }

    .association-public-overview__story p{
        font-size:16px !important;
        line-height:1.75 !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Statistiques compactes
    |--------------------------------------------------------------------------
    */

    .association-public-metrics{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:10px !important;
    }

    .association-public-metric{
        min-height:125px !important;
        padding:17px 15px !important;
        border-radius:20px !important;
    }

    .association-public-metric strong{
        font-size:36px !important;
        line-height:1 !important;
    }

    .association-public-metric:last-child:nth-child(odd){
        grid-column:1 / -1 !important;
        min-height:110px !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Bandeau final
    |--------------------------------------------------------------------------
    */

    .association-public-cta{
        margin-bottom:40px !important;
        padding:24px 18px 90px !important;
    }
}


/* Très petits téléphones */

@media (max-width:390px){

    .association-public-v2__container{
        width:calc(100% - 12px) !important;
    }

    .association-public-hero h1{
        font-size:29px !important;
    }

    .association-public-metrics{
        grid-template-columns:1fr !important;
    }

    .association-public-metric,
    .association-public-metric:last-child:nth-child(odd){
        grid-column:auto !important;
        min-height:112px !important;
    }
}

/* =========================================================
   FICHE PUBLIQUE ASSOCIATION V2
   HERO FINAL — LISIBILITÉ ET HIÉRARCHIE
========================================================= */

/*
|--------------------------------------------------------------------------
| Ancre de navigation vers la présentation
|--------------------------------------------------------------------------
*/

.association-public-v2__scroll-anchor{
    display:block;
    height:1px;
    scroll-margin-top:170px;
}


/*
|--------------------------------------------------------------------------
| Titre principal
|--------------------------------------------------------------------------
*/

.association-public-v2 .association-public-hero h1{
    max-width:940px;
    font-size:clamp(44px,6.4vw,82px);
    line-height:.94;
    letter-spacing:-.058em;
}


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

.association-public-v2 .association-public-hero__logo{
    flex-basis:160px;
    width:160px;
    height:160px;
    border-radius:40px;
    box-shadow:
        0 24px 58px rgba(0,0,0,.30),
        0 4px 14px rgba(0,0,0,.14);
}

.association-public-v2 .association-public-hero__logo img{
    border-radius:32px;
}


/*
|--------------------------------------------------------------------------
| Badges
|--------------------------------------------------------------------------
*/

.association-public-v2 .association-public-hero__badges{
    gap:10px;
    margin-bottom:18px;
}

.association-public-v2 .association-public-hero__badges span{
    min-height:32px;
    padding:7px 13px;
}


/*
|--------------------------------------------------------------------------
| Description courte
|--------------------------------------------------------------------------
*/

.association-public-v2 .association-public-hero__description-wrapper{
    max-width:790px;
    margin-top:18px;
}

.association-public-v2 .association-public-hero__description{
    display:-webkit-box;
    overflow:hidden;
    margin:0;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:5;
    line-clamp:5;
    color:rgba(255,255,255,.88) !important;
    line-height:1.68;
    text-overflow:ellipsis;
}


/*
|--------------------------------------------------------------------------
| Lien vers la présentation complète
|--------------------------------------------------------------------------
*/

.association-public-v2 .association-public-hero__read-more{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:12px;
    padding:0;
    border:0;
    background:transparent;
    color:#ffffff !important;
    font-size:13px;
    font-weight:850;
    line-height:1.3;
    text-decoration:none;
    text-underline-offset:4px;
    opacity:.86;
    transition:
        opacity .2s ease,
        transform .2s ease;
}

.association-public-v2 .association-public-hero__read-more span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:50%;
    background:rgba(255,255,255,.10);
    color:#ffffff !important;
}

.association-public-v2 .association-public-hero__read-more:hover{
    opacity:1;
    transform:translateY(1px);
    text-decoration:underline;
}

.association-public-v2 .association-public-hero__read-more:focus-visible{
    outline:3px solid #ffffff;
    outline-offset:5px;
    border-radius:5px;
}


/*
|--------------------------------------------------------------------------
| Tablette
|--------------------------------------------------------------------------
*/

@media(max-width:1100px){

    .association-public-v2 .association-public-hero h1{
        font-size:clamp(42px,6vw,68px);
    }

    .association-public-v2 .association-public-hero__logo{
        flex-basis:138px;
        width:138px;
        height:138px;
        border-radius:34px;
    }
}


/*
|--------------------------------------------------------------------------
| Mobile
|--------------------------------------------------------------------------
*/

@media(max-width:640px){

    .association-public-v2 .association-public-hero{
        min-height:0;
    }

    .association-public-v2 .association-public-hero__content{
        min-height:0;
    }

    .association-public-v2 .association-public-hero__logo{
        flex-basis:100px;
        width:100px;
        height:100px;
        border-width:4px;
        border-radius:28px;
        box-shadow:
            0 16px 34px rgba(0,0,0,.25),
            0 3px 10px rgba(0,0,0,.12);
    }

    .association-public-v2 .association-public-hero__logo img{
        padding:7px;
        border-radius:22px;
    }

    .association-public-v2 .association-public-hero__verified-icon{
        right:-6px;
        bottom:-6px;
        width:32px;
        height:32px;
        border-width:3px;
        font-size:15px;
    }

    .association-public-v2 .association-public-hero__badges{
        gap:8px;
        margin-bottom:15px;
    }

    .association-public-v2 .association-public-hero__badges span{
        min-height:29px;
        padding:6px 10px;
        font-size:10px;
    }

    .association-public-v2 .association-public-hero h1{
        font-size:clamp(36px,10.2vw,44px);
        line-height:.98;
        letter-spacing:-.05em;
    }

    .association-public-v2 .association-public-hero__description-wrapper{
        margin-top:16px;
    }

    .association-public-v2 .association-public-hero__description{
        -webkit-line-clamp:5;
        line-clamp:5;
        font-size:16px;
        line-height:1.62;
    }

    .association-public-v2 .association-public-hero__read-more{
        margin-top:11px;
        font-size:12px;
    }

    .association-public-v2__scroll-anchor{
        scroll-margin-top:105px;
    }
}


/*
|--------------------------------------------------------------------------
| Très petits téléphones
|--------------------------------------------------------------------------
*/

@media(max-width:380px){

    .association-public-v2 .association-public-hero h1{
        font-size:34px;
    }

    .association-public-v2 .association-public-hero__description{
        font-size:15px;
    }
}

/* =========================================================
   FICHE PUBLIQUE ASSOCIATION V2
   IMPACT PREMIUM
========================================================= */

.association-public-impact{
    position:relative;
    margin-top:34px;
    padding:34px;
    overflow:hidden;
    border:1px solid var(--public-border);
    border-radius:30px;
    background:
        radial-gradient(
            circle at 92% 8%,
            color-mix(in srgb,var(--public-primary) 12%,transparent),
            transparent 30%
        ),
        var(--public-card);
    box-shadow:var(--public-shadow);
    scroll-margin-top:180px;
}

.association-public-impact::after{
    content:"";
    position:absolute;
    right:-110px;
    bottom:-150px;
    width:330px;
    height:330px;
    border-radius:50%;
    background:
        color-mix(
            in srgb,
            var(--public-accent) 8%,
            transparent
        );
    pointer-events:none;
}

.association-public-impact__heading{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    align-items:stretch;
    gap:28px;
}

.association-public-impact__heading > div:first-child{
    align-self:center;
}

.association-public-impact__heading h2{
    max-width:820px;
    margin:0;
    color:var(--public-text);
    font-size:clamp(30px,4.4vw,54px);
    font-weight:950;
    line-height:.98;
    letter-spacing:-.05em;
    text-wrap:balance;
}

.association-public-impact__heading > div:first-child > p{
    max-width:680px;
    margin:13px 0 0;
    color:var(--public-muted);
    font-size:15px;
    line-height:1.65;
}

.association-public-impact__score{
    padding:24px;
    border:1px solid var(--public-border);
    border-radius:24px;
    background:
        linear-gradient(
            145deg,
            color-mix(in srgb,var(--public-primary) 7%,#ffffff),
            #ffffff
        );
    box-shadow:0 18px 45px rgba(15,23,42,.07);
}

.association-public-impact__score-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
}

.association-public-impact__score-top > span{
    color:var(--public-primary);
    font-size:11px;
    font-weight:950;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.association-public-impact__score-top strong{
    color:var(--public-accent);
    font-size:46px;
    font-weight:950;
    line-height:.8;
    letter-spacing:-.06em;
}

.association-public-impact__score-top small{
    color:var(--public-muted);
    font-size:14px;
    letter-spacing:0;
}

.association-public-impact__progress{
    height:9px;
    margin-top:25px;
    overflow:hidden;
    border-radius:999px;
    background:#e2e8f0;
}

.association-public-impact__progress span{
    display:block;
    height:100%;
    min-width:5px;
    border-radius:inherit;
    background:
        linear-gradient(
            90deg,
            var(--public-accent),
            #facc15,
            var(--public-primary)
        );
}

.association-public-impact__score p{
    margin:18px 0 0;
    color:var(--public-muted);
    font-size:13px;
    line-height:1.55;
}

.association-public-impact__grid{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
    margin-top:24px;
}

.association-public-impact-card{
    position:relative;
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:205px;
    padding:20px;
    overflow:hidden;
    border:1px solid var(--public-border);
    border-radius:22px;
    background:
        linear-gradient(
            155deg,
            #ffffff,
            color-mix(in srgb,var(--public-primary) 4%,#ffffff)
        );
    color:inherit;
    text-decoration:none;
    box-shadow:0 14px 36px rgba(15,23,42,.055);
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease;
}

.association-public-impact-card::after{
    content:"";
    position:absolute;
    right:-30px;
    bottom:-35px;
    width:100px;
    height:100px;
    border-radius:50%;
    background:
        color-mix(
            in srgb,
            var(--public-accent) 8%,
            transparent
        );
}

.association-public-impact-card:hover{
    transform:translateY(-5px);
    border-color:
        color-mix(
            in srgb,
            var(--public-primary) 35%,
            transparent
        );
    box-shadow:0 22px 48px rgba(15,23,42,.11);
}

.association-public-impact-card__icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:14px;
    background:
        color-mix(
            in srgb,
            var(--public-primary) 10%,
            #ffffff
        );
    color:var(--public-primary);
}

.association-public-impact-card__icon svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.association-public-impact-card__content{
    display:flex;
    flex:1;
    flex-direction:column;
    margin-top:22px;
}

.association-public-impact-card__label{
    color:var(--public-muted);
    font-size:10px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-impact-card__content strong{
    margin-top:8px;
    color:var(--public-accent);
    font-size:42px;
    font-weight:950;
    line-height:1;
    letter-spacing:-.055em;
}

.association-public-impact-card__content small{
    margin-top:8px;
    color:var(--public-muted);
    font-size:11px;
    line-height:1.45;
}

.association-public-impact-card__arrow{
    position:absolute;
    right:18px;
    top:18px;
    color:var(--public-primary);
    font-size:18px;
    font-weight:900;
    opacity:.55;
}

/* Tablette */

@media(max-width:1100px){
    .association-public-impact__heading{
        grid-template-columns:minmax(0,1fr) 300px;
    }

    .association-public-impact__grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

/* Mobile */

@media(max-width:700px){
    .association-public-impact{
        margin-top:18px;
        padding:18px 14px;
        border-radius:24px;
    }

    .association-public-impact__heading{
        grid-template-columns:1fr;
        gap:16px;
    }

    .association-public-impact__heading h2{
        font-size:30px;
        line-height:1.03;
    }

    .association-public-impact__heading > div:first-child > p{
        font-size:14px;
    }

    .association-public-impact__score{
        padding:20px;
        border-radius:20px;
    }

    .association-public-impact__score-top strong{
        font-size:40px;
    }

    .association-public-impact__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
        margin-top:16px;
    }

    .association-public-impact-card{
        min-height:165px;
        padding:16px;
        border-radius:19px;
    }

    .association-public-impact-card:last-child{
        grid-column:1 / -1;
    }

    .association-public-impact-card__icon{
        width:38px;
        height:38px;
        border-radius:12px;
    }

    .association-public-impact-card__content{
        margin-top:16px;
    }

    .association-public-impact-card__content strong{
        font-size:34px;
    }

    .association-public-impact-card__content small{
        font-size:10px;
    }
}

@media(max-width:390px){
    .association-public-impact__grid{
        grid-template-columns:1fr;
    }

    .association-public-impact-card,
    .association-public-impact-card:last-child{
        grid-column:auto;
        min-height:145px;
    }
}

/* =========================================================
   FICHE PUBLIQUE ASSOCIATION V2
   CARTES D’IMPACT INTERACTIVES
========================================================= */

html{
    scroll-behavior:smooth;
}

.association-public-impact{
    position:relative;
    margin-top:34px;
    padding:34px;
    overflow:hidden;
    border:1px solid var(--public-border);
    border-radius:30px;
    background:
        radial-gradient(
            circle at 92% 5%,
            color-mix(
                in srgb,
                var(--public-primary) 9%,
                transparent
            ),
            transparent 32%
        ),
        var(--public-card);
    box-shadow:var(--public-shadow);
}

.association-public-impact__heading{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(260px,340px);
    align-items:end;
    gap:32px;
}

.association-public-impact__introduction{
    min-width:0;
}

.association-public-impact__heading h2{
    max-width:760px;
    margin:0;
    color:var(--public-text);
    font-size:clamp(32px,4.5vw,58px);
    font-weight:950;
    line-height:.98;
    letter-spacing:-.055em;
    text-wrap:balance;
}

.association-public-impact__introduction > p{
    max-width:680px;
    margin:14px 0 0;
    color:var(--public-muted);
    font-size:15px;
    line-height:1.65;
}

.association-public-impact__score{
    padding:22px;
    border:1px solid var(--public-border);
    border-radius:22px;
    background:
        linear-gradient(
            145deg,
            #ffffff,
            color-mix(
                in srgb,
                var(--public-primary) 4%,
                #ffffff
            )
        );
    box-shadow:0 16px 38px rgba(15,23,42,.07);
}

.association-public-impact__score-top{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
}

.association-public-impact__score-top > span{
    color:var(--public-primary);
    font-size:10px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-impact__score-top strong{
    display:flex;
    align-items:flex-end;
    color:var(--public-primary);
    font-size:44px;
    font-weight:950;
    line-height:.9;
    letter-spacing:-.055em;
}

.association-public-impact__score-top small{
    margin:0 0 4px 4px;
    color:var(--public-muted);
    font-size:12px;
    font-weight:850;
    letter-spacing:0;
}

.association-public-impact__progress{
    width:100%;
    height:8px;
    margin-top:20px;
    overflow:hidden;
    border-radius:999px;
    background:#e2e8f0;
}

.association-public-impact__progress > span{
    display:block;
    width:0;
    height:100%;
    border-radius:inherit;
    background:
        linear-gradient(
            90deg,
            var(--public-accent),
            #eab308
        );
    transition:width 1.2s cubic-bezier(.22,1,.36,1);
}

.association-public-impact__score > p{
    margin:17px 0 0;
    color:var(--public-muted);
    font-size:12px;
    line-height:1.55;
}

.association-public-impact__grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
    margin-top:28px;
}

.association-public-impact-card{
    position:relative;
    display:flex;
    min-width:0;
    min-height:190px;
    flex-direction:column;
    justify-content:space-between;
    gap:22px;
    padding:21px;
    overflow:hidden;
    border:1px solid var(--public-border);
    border-radius:22px;
    background:var(--public-card);
    color:var(--public-text);
    text-decoration:none;
    box-shadow:0 12px 28px rgba(15,23,42,.055);
    isolation:isolate;
    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease,
        background .25s ease;
}

.association-public-impact-card::before{
    content:"";
    position:absolute;
    right:-45px;
    bottom:-48px;
    z-index:-1;
    width:110px;
    height:110px;
    border-radius:50%;
    background:
        color-mix(
            in srgb,
            var(--public-primary) 8%,
            transparent
        );
    transition:
        transform .3s ease,
        opacity .3s ease;
}

.association-public-impact-card:hover{
    transform:translateY(-6px);
    border-color:
        color-mix(
            in srgb,
            var(--public-primary) 32%,
            transparent
        );
    background:
        linear-gradient(
            145deg,
            #ffffff,
            color-mix(
                in srgb,
                var(--public-primary) 5%,
                #ffffff
            )
        );
    box-shadow:0 24px 50px rgba(15,23,42,.12);
}

.association-public-impact-card:hover::before{
    transform:scale(1.35);
}

.association-public-impact-card:active{
    transform:scale(.985);
}

.association-public-impact-card:focus-visible{
    outline:3px solid
        color-mix(
            in srgb,
            var(--public-primary) 45%,
            transparent
        );
    outline-offset:4px;
}

.association-public-impact-card__icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    border-radius:13px;
    background:
        color-mix(
            in srgb,
            var(--public-primary) 9%,
            #ffffff
        );
    color:var(--public-primary);
}

.association-public-impact-card__icon svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.association-public-impact-card__content{
    display:flex;
    min-width:0;
    flex:1;
    flex-direction:column;
    justify-content:flex-end;
}

.association-public-impact-card__label{
    color:var(--public-muted);
    font-size:10px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-impact-card__content strong{
    margin-top:8px;
    color:var(--public-primary);
    font-size:38px;
    font-weight:950;
    line-height:1;
    letter-spacing:-.05em;
}

.association-public-impact-card__content small{
    margin-top:9px;
    color:var(--public-muted);
    font-size:11px;
    line-height:1.45;
}

.association-public-impact-card__arrow{
    position:absolute;
    top:22px;
    right:21px;
    color:var(--public-muted);
    font-size:20px;
    transition:
        transform .25s ease,
        color .25s ease;
}

.association-public-impact-card:hover
.association-public-impact-card__arrow{
    transform:translateX(5px);
    color:var(--public-primary);
}

/* Les destinations ne passent pas sous les navigations fixes */
#actions,
#evenements,
#medias,
#partenaires,
#territoire,
#contact{
    scroll-margin-top:180px;
}

/* Tablette */
@media(max-width:1100px){
    .association-public-impact__grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .association-public-impact-card:nth-child(4),
    .association-public-impact-card:nth-child(5){
        min-height:170px;
    }
}

/* Mobile */
@media(max-width:700px){
    .association-public-impact{
        margin-top:24px;
        padding:20px 14px 26px;
        border-radius:24px;
    }

    .association-public-impact__heading{
        grid-template-columns:1fr;
        gap:20px;
    }

    .association-public-impact__heading h2{
        font-size:32px;
        line-height:1.02;
    }

    .association-public-impact__introduction > p{
        font-size:14px;
    }

    .association-public-impact__score{
        padding:19px;
        border-radius:20px;
    }

    .association-public-impact__score-top strong{
        font-size:40px;
    }

    .association-public-impact__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
        margin-top:18px;
    }

    .association-public-impact-card{
        min-height:172px;
        padding:17px;
        border-radius:19px;
    }

    .association-public-impact-card:last-child{
        grid-column:1 / -1;
        min-height:145px;
    }

    .association-public-impact-card__content strong{
        font-size:34px;
    }

    .association-public-impact-card__arrow{
        top:18px;
        right:17px;
    }

    #actions,
    #evenements,
    #medias,
    #partenaires,
    #territoire,
    #contact{
        scroll-margin-top:110px;
    }
}

@media(prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto;
    }

    .association-public-impact-card,
    .association-public-impact-card::before,
    .association-public-impact-card__arrow,
    .association-public-impact__progress > span{
        transition:none !important;
    }
}


/* =========================================================
   CORRECTION SCORE D'IMPACT — ALIGNEMENT ET LISIBILITÉ
========================================================= */

.association-public-impact__score-top{
    display:flex !important;
    align-items:flex-start !important;
    justify-content:space-between !important;
    gap:24px !important;
    width:100% !important;
}

.association-public-impact__score-top > span{
    display:block !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    max-width:160px !important;
    color:var(--public-primary) !important;
    font-size:11px !important;
    font-weight:900 !important;
    line-height:1.35 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
}

.association-public-impact__score-top > strong{
    display:flex !important;
    flex:0 0 auto !important;
    align-items:flex-end !important;
    gap:5px !important;
    margin:0 !important;
    color:var(--public-text) !important;
    font-size:48px !important;
    font-weight:950 !important;
    line-height:.9 !important;
    white-space:nowrap !important;
}

.association-public-impact__score-top > strong small{
    padding-bottom:4px !important;
    color:var(--public-muted) !important;
    font-size:13px !important;
    font-weight:850 !important;
    line-height:1 !important;
}

@media(max-width:640px){
    .association-public-impact__score-top{
        align-items:center !important;
        gap:14px !important;
    }

    .association-public-impact__score-top > span{
        max-width:130px !important;
        font-size:10px !important;
    }

    .association-public-impact__score-top > strong{
        font-size:42px !important;
    }
}

/* =========================================================
   CORRECTION ALIGNEMENT SCORE IMPACT
========================================================= */

.association-public-impact__score-top{
    display:flex !important;
    align-items:flex-start !important;
    justify-content:space-between !important;
    gap:20px !important;
    width:100% !important;
}

.association-public-impact__score-top > span{
    display:block !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    max-width:150px !important;
    padding-top:7px !important;
    color:var(--public-primary) !important;
    font-size:11px !important;
    font-weight:900 !important;
    line-height:1.25 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
}

.association-public-impact__score-top > strong{
    display:inline-flex !important;
    flex:0 0 auto !important;
    align-items:flex-end !important;
    justify-content:flex-end !important;
    gap:6px !important;
    margin-left:auto !important;
    color:var(--public-text) !important;
    font-size:52px !important;
    font-weight:950 !important;
    line-height:.9 !important;
    letter-spacing:-.05em !important;
    white-space:nowrap !important;
}

.association-public-impact__score-top > strong small{
    padding-bottom:5px !important;
    color:var(--public-muted) !important;
    font-size:14px !important;
    font-weight:850 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
}

@media(max-width:640px){
    .association-public-impact__score-top{
        align-items:center !important;
        gap:12px !important;
    }

    .association-public-impact__score-top > span{
        max-width:140px !important;
        padding-top:0 !important;
        font-size:10px !important;
    }

    .association-public-impact__score-top > strong{
        font-size:44px !important;
    }

    .association-public-impact__score-top > strong small{
        font-size:13px !important;
    }
}


/* =========================================================
   CORRECTION DÉFINITIVE — SCORE IMPACT OVERVIEW
========================================================= */

.association-public-v2 .association-public-overview__impact .association-public-impact__score-top,
.association-public-v2 .association-public-impact__score-top{
    display:grid !important;
    grid-template-columns:minmax(105px,1fr) auto !important;
    align-items:center !important;
    column-gap:24px !important;
    width:100% !important;
    position:relative !important;
}

.association-public-v2 .association-public-impact__score-top > span{
    position:static !important;
    inset:auto !important;
    transform:none !important;
    display:block !important;
    width:auto !important;
    max-width:125px !important;
    margin:0 !important;
    padding:0 !important;
    color:var(--public-primary) !important;
    font-size:10px !important;
    font-weight:950 !important;
    line-height:1.25 !important;
    letter-spacing:.07em !important;
    text-transform:uppercase !important;
    white-space:normal !important;
}

.association-public-v2 .association-public-impact__score-top > strong{
    position:static !important;
    inset:auto !important;
    transform:none !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:flex-end !important;
    gap:7px !important;
    width:auto !important;
    min-width:112px !important;
    margin:0 !important;
    padding:0 !important;
    color:var(--public-text) !important;
    font-size:48px !important;
    font-weight:950 !important;
    line-height:.9 !important;
    letter-spacing:-.045em !important;
    white-space:nowrap !important;
}

.association-public-v2 .association-public-impact__score-top > strong small{
    display:inline-block !important;
    position:static !important;
    transform:none !important;
    margin:0 0 5px !important;
    padding:0 !important;
    color:var(--public-muted) !important;
    font-size:13px !important;
    font-weight:900 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
}

@media(max-width:640px){
    .association-public-v2 .association-public-impact__score-top{
        grid-template-columns:minmax(100px,1fr) auto !important;
        column-gap:16px !important;
    }

    .association-public-v2 .association-public-impact__score-top > strong{
        min-width:98px !important;
        font-size:42px !important;
    }
}


/* =========================================================
   FICHE PUBLIQUE V2
   CONTENUS RÉELS : ÉVÉNEMENTS, MISSIONS, OPPORTUNITÉS
========================================================= */

.association-public-content-section{
    position:relative;
    padding:42px;
    border:1px solid var(--public-border);
    border-radius:32px;
    background:
        radial-gradient(
            circle at 100% 0,
            color-mix(in srgb,var(--public-primary) 7%,transparent),
            transparent 35%
        ),
        var(--public-card);
    box-shadow:0 24px 70px rgba(15,23,42,.07);
    overflow:hidden;
}

.association-public-content-section__heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    margin-bottom:28px;
}

.association-public-content-section__heading h2{
    max-width:940px;
    margin:0;
    color:var(--public-text);
    font-size:clamp(30px,4.2vw,52px);
    font-weight:950;
    line-height:1;
    letter-spacing:-.05em;
}

.association-public-content-section__heading p{
    max-width:760px;
    margin:12px 0 0;
    color:var(--public-muted);
    font-size:16px;
    line-height:1.65;
}

.association-public-section-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:45px;
    padding:10px 17px;
    border:1px solid
        color-mix(in srgb,var(--public-primary) 22%,transparent);
    border-radius:14px;
    color:var(--public-primary);
    font-size:13px;
    font-weight:900;
    text-decoration:none;
    white-space:nowrap;
}

.association-public-content-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}

.association-public-content-card{
    display:flex;
    min-width:0;
    flex-direction:column;
    overflow:hidden;
    border:1px solid var(--public-border);
    border-radius:24px;
    background:var(--public-card);
    box-shadow:0 16px 38px rgba(15,23,42,.06);
    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.association-public-content-card:hover{
    transform:translateY(-5px);
    border-color:
        color-mix(in srgb,var(--public-primary) 32%,transparent);
    box-shadow:0 26px 55px rgba(15,23,42,.12);
}

.association-public-content-card__media{
    position:relative;
    display:block;
    height:220px;
    overflow:hidden;
    background:
        linear-gradient(
            135deg,
            var(--public-secondary),
            var(--public-primary)
        );
    text-decoration:none;
}

.association-public-content-card__media img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s ease;
}

.association-public-content-card:hover
.association-public-content-card__media img{
    transform:scale(1.045);
}

.association-public-content-card__placeholder{
    display:flex;
    width:100%;
    height:100%;
    align-items:flex-end;
    padding:24px;
    background:
        radial-gradient(
            circle at 85% 20%,
            color-mix(in srgb,var(--public-accent) 55%,transparent),
            transparent 35%
        );
}

.association-public-content-card__placeholder span{
    color:#ffffff;
    font-size:20px;
    font-weight:900;
}

.association-public-content-card__date{
    position:absolute;
    top:16px;
    left:16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:8px 12px;
    border-radius:12px;
    background:rgba(255,255,255,.94);
    color:var(--public-text);
    font-size:12px;
    font-weight:950;
    box-shadow:0 12px 28px rgba(15,23,42,.14);
}

.association-public-content-card__body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:22px;
}

.association-public-content-card__category{
    color:var(--public-primary);
    font-size:11px;
    font-weight:950;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.association-public-content-card__body h3{
    margin:9px 0 8px;
    color:var(--public-text);
    font-size:22px;
    line-height:1.12;
    letter-spacing:-.025em;
}

.association-public-content-card__body p{
    margin:0;
    color:var(--public-muted);
    font-size:14px;
    line-height:1.6;
}

.association-public-content-card__meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:16px;
}

.association-public-content-card__meta span{
    display:inline-flex;
    padding:6px 10px;
    border-radius:999px;
    background:
        color-mix(in srgb,var(--public-primary) 8%,#ffffff);
    color:var(--public-primary);
    font-size:11px;
    font-weight:850;
}

.association-public-content-card__action{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:auto;
    padding-top:20px;
    color:var(--public-text);
    font-size:13px;
    font-weight:900;
    text-decoration:none;
}

.association-public-content-card__action span{
    color:var(--public-primary);
    font-size:20px;
}

.association-public-empty-state{
    padding:38px;
    border:1px dashed
        color-mix(in srgb,var(--public-primary) 28%,transparent);
    border-radius:24px;
    background:
        color-mix(in srgb,var(--public-primary) 4%,var(--public-card));
}

.association-public-empty-state > span{
    color:var(--public-primary);
    font-size:11px;
    font-weight:950;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.association-public-empty-state h3{
    margin:10px 0;
    color:var(--public-text);
    font-size:25px;
}

.association-public-empty-state p{
    max-width:680px;
    margin:0;
    color:var(--public-muted);
    line-height:1.65;
}

.association-public-action-columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}

.association-public-action-column{
    padding:24px;
    border:1px solid var(--public-border);
    border-radius:25px;
    background:
        linear-gradient(
            145deg,
            color-mix(in srgb,var(--public-primary) 4%,#ffffff),
            var(--public-card)
        );
}

.association-public-action-column__heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:16px;
}

.association-public-action-column__heading > span{
    color:var(--public-text);
    font-size:20px;
    font-weight:950;
}

.association-public-action-column__heading strong{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:38px;
    height:38px;
    border-radius:12px;
    background:var(--public-primary);
    color:#ffffff;
    font-size:15px;
}

.association-public-action-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.association-public-action-item{
    display:grid;
    grid-template-columns:46px minmax(0,1fr) 28px;
    align-items:center;
    gap:14px;
    padding:15px;
    border:1px solid var(--public-border);
    border-radius:18px;
    background:var(--public-card);
    color:inherit;
    text-decoration:none;
    transition:
        transform .2s ease,
        border-color .2s ease;
}

.association-public-action-item:hover{
    transform:translateX(4px);
    border-color:
        color-mix(in srgb,var(--public-primary) 35%,transparent);
}

.association-public-action-item__icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:46px;
    height:46px;
    border-radius:15px;
    background:
        color-mix(in srgb,var(--public-primary) 10%,#ffffff);
    color:var(--public-primary);
    font-size:15px;
    font-weight:950;
}

.association-public-action-item__content{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:4px;
}

.association-public-action-item__label{
    color:var(--public-primary);
    font-size:9px;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-public-action-item__content strong{
    overflow:hidden;
    color:var(--public-text);
    font-size:15px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.association-public-action-item__content small{
    color:var(--public-muted);
    font-size:12px;
    line-height:1.45;
}

.association-public-action-item__arrow{
    color:var(--public-primary);
    font-size:19px;
}

.association-public-action-empty{
    padding:22px;
    border:1px dashed var(--public-border);
    border-radius:16px;
    color:var(--public-muted);
    font-size:13px;
    text-align:center;
}

@media(max-width:1000px){
    .association-public-content-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .association-public-content-grid
    .association-public-content-card:last-child{
        grid-column:1 / -1;
    }
}

@media(max-width:760px){
    .association-public-content-section{
        padding:24px 16px;
        border-radius:24px;
    }

    .association-public-content-section__heading{
        align-items:flex-start;
        flex-direction:column;
        gap:16px;
    }

    .association-public-content-section__heading h2{
        font-size:32px;
    }

    .association-public-content-grid,
    .association-public-action-columns{
        grid-template-columns:1fr;
    }

    .association-public-content-grid
    .association-public-content-card:last-child{
        grid-column:auto;
    }

    .association-public-content-card__media{
        height:210px;
    }

    .association-public-action-column{
        padding:16px;
    }
}

@media(max-width:480px){
    .association-public-content-section{
        padding-inline:14px;
    }

    .association-public-content-card__body{
        padding:18px;
    }

    .association-public-action-item{
        grid-template-columns:42px minmax(0,1fr) 22px;
        gap:10px;
        padding:13px;
    }

    .association-public-action-item__icon{
        width:42px;
        height:42px;
    }
}

/* =========================================================
   ÉVÉNEMENTS PREMIUM V2
========================================================= */

.association-public-events-premium{
    margin-top:72px;
}

.association-public-content-section__heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:28px;
    margin-bottom:28px;
}

.association-public-content-section__heading h2{
    max-width:920px;
    margin:0;
    font-size:clamp(34px,4.5vw,62px);
    line-height:.98;
    letter-spacing:-.055em;
}

.association-public-content-section__heading p{
    max-width:760px;
    margin:12px 0 0;
    color:var(--public-muted);
    font-size:16px;
    line-height:1.7;
}

.association-public-section-link{
    display:inline-flex;
    align-items:center;
    gap:10px;
    flex:0 0 auto;
    min-height:46px;
    padding:11px 16px;
    border:1px solid var(--public-border);
    border-radius:14px;
    background:var(--public-card);
    color:var(--public-text);
    font-size:13px;
    font-weight:900;
    text-decoration:none;
}

.association-public-events-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}

.association-public-event-card{
    position:relative;
    overflow:hidden;
    border:1px solid var(--public-border);
    border-radius:28px;
    background:var(--public-card);
    box-shadow:0 22px 60px rgba(15,23,42,.08);
    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.association-public-event-card:hover{
    transform:translateY(-5px);
    border-color:
        color-mix(
            in srgb,
            var(--public-primary) 26%,
            var(--public-border)
        );
    box-shadow:0 30px 80px rgba(15,23,42,.14);
}

.association-public-event-card.is-featured{
    border-color:
        color-mix(
            in srgb,
            var(--public-primary) 42%,
            var(--public-border)
        );
}

.association-public-event-card__media{
    position:relative;
    display:block;
    height:310px;
    overflow:hidden;
    background:
        linear-gradient(
            135deg,
            var(--public-secondary),
            var(--public-primary)
        );
}

.association-public-event-card__media img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;
}

.association-public-event-card:hover
.association-public-event-card__media img{
    transform:scale(1.045);
}

.association-public-event-card__overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            180deg,
            rgba(2,6,23,.05),
            rgba(2,6,23,.12) 45%,
            rgba(2,6,23,.64)
        );
}

.association-public-event-card__placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    color:#fff;
    font-size:20px;
    font-weight:900;
}

.association-public-event-card__date{
    position:absolute;
    top:18px;
    left:18px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:68px;
    min-height:68px;
    padding:8px 10px;
    border:1px solid rgba(255,255,255,.58);
    border-radius:19px;
    background:rgba(255,255,255,.94);
    box-shadow:0 15px 35px rgba(0,0,0,.18);
    backdrop-filter:blur(18px);
}

.association-public-event-card__date strong{
    color:var(--public-text);
    font-size:25px;
    line-height:1;
}

.association-public-event-card__date small{
    margin-top:4px;
    color:var(--public-muted);
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-public-event-card__featured{
    position:absolute;
    top:18px;
    right:18px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:34px;
    padding:7px 12px;
    border-radius:999px;
    background:var(--public-primary);
    color:#fff;
    font-size:11px;
    font-weight:950;
    box-shadow:
        0 14px 30px
        color-mix(
            in srgb,
            var(--public-primary) 34%,
            transparent
        );
}

.association-public-event-card__mode{
    position:absolute;
    right:18px;
    bottom:18px;
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:7px 11px;
    border:1px solid rgba(255,255,255,.3);
    border-radius:999px;
    background:rgba(15,23,42,.5);
    color:#fff;
    font-size:11px;
    font-weight:900;
    backdrop-filter:blur(14px);
}

.association-public-event-card__body{
    padding:25px;
}

.association-public-event-card__topline{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:10px;
}

.association-public-event-card__category{
    color:var(--public-primary);
    font-size:11px;
    font-weight:950;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.association-public-event-card__price{
    display:inline-flex;
    padding:6px 10px;
    border-radius:999px;
    background:
        color-mix(
            in srgb,
            var(--public-accent) 12%,
            transparent
        );
    color:var(--public-text);
    font-size:11px;
    font-weight:950;
}

.association-public-event-card h3{
    margin:0;
    font-size:clamp(24px,2.3vw,34px);
    line-height:1.04;
    letter-spacing:-.04em;
}

.association-public-event-card h3 a{
    color:var(--public-text);
    text-decoration:none;
}

.association-public-event-card__description{
    margin:13px 0 0;
    color:var(--public-muted);
    font-size:14px;
    line-height:1.65;
}

.association-public-event-card__details{
    display:grid;
    gap:11px;
    margin-top:21px;
}

.association-public-event-card__details > div{
    display:flex;
    align-items:flex-start;
    gap:10px;
    color:var(--public-muted);
    font-size:13px;
}

.association-public-event-card__details strong{
    display:block;
    color:var(--public-text);
    font-size:13px;
    line-height:1.4;
}

.association-public-event-card__details small{
    display:block;
    margin-top:2px;
    color:var(--public-muted);
    font-size:11px;
}

.association-public-event-card__detail-icon{
    display:flex;
    flex:0 0 32px;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    border-radius:10px;
    background:
        color-mix(
            in srgb,
            var(--public-primary) 9%,
            transparent
        );
    color:var(--public-primary);
}

.association-public-event-card__detail-icon svg{
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.association-public-event-card__actions{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:23px;
}

.association-public-event-card__primary-action,
.association-public-event-card__secondary-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:46px;
    padding:11px 15px;
    border-radius:14px;
    font-size:12px;
    font-weight:950;
    text-decoration:none;
}

.association-public-event-card__primary-action{
    flex:1;
    background:var(--public-primary);
    color:#fff;
}

.association-public-event-card__secondary-action{
    border:1px solid var(--public-border);
    background:var(--public-card);
    color:var(--public-text);
}

/* =========================================================
   MISSIONS ET OPPORTUNITÉS PREMIUM
========================================================= */

.association-public-actions-premium{
    margin-top:80px;
}

.association-public-action-columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}

.association-public-action-column{
    overflow:hidden;
    border:1px solid var(--public-border);
    border-radius:28px;
    background:var(--public-card);
    box-shadow:0 20px 55px rgba(15,23,42,.07);
}

.association-public-action-column__heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    padding:24px 25px;
    border-bottom:1px solid var(--public-border);
    background:
        linear-gradient(
            135deg,
            color-mix(
                in srgb,
                var(--public-primary) 7%,
                transparent
            ),
            transparent
        );
}

.association-public-action-column__heading span{
    display:block;
    margin-bottom:5px;
    color:var(--public-primary);
    font-size:10px;
    font-weight:950;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.association-public-action-column__heading h3{
    margin:0;
    font-size:30px;
    line-height:1;
    letter-spacing:-.045em;
}

.association-public-action-column__heading > strong{
    color:var(--public-primary);
    font-size:48px;
    line-height:.9;
}

.association-public-action-list{
    display:grid;
}

.association-public-action-item{
    position:relative;
    display:grid;
    grid-template-columns:48px minmax(0,1fr) auto;
    align-items:start;
    gap:15px;
    padding:22px 24px;
    border-bottom:1px solid var(--public-border);
    color:var(--public-text);
    text-decoration:none;
    transition:background .2s ease;
}

.association-public-action-item:last-child{
    border-bottom:0;
}

.association-public-action-item:hover{
    background:
        color-mix(
            in srgb,
            var(--public-primary) 5%,
            transparent
        );
}

.association-public-action-item__icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    border-radius:15px;
    background:
        color-mix(
            in srgb,
            var(--public-primary) 10%,
            transparent
        );
    color:var(--public-primary);
}

.association-public-action-item__icon svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.association-public-action-item__content{
    min-width:0;
}

.association-public-action-item__label{
    display:block;
    margin-bottom:5px;
    color:var(--public-primary);
    font-size:9px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-action-item__content > strong{
    display:block;
    overflow:hidden;
    color:var(--public-text);
    font-size:17px;
    line-height:1.25;
    text-overflow:ellipsis;
}

.association-public-action-item__content > small{
    display:-webkit-box;
    margin-top:7px;
    overflow:hidden;
    color:var(--public-muted);
    font-size:12px;
    line-height:1.55;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.association-public-action-item__tags{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:11px;
}

.association-public-action-item__tags span{
    display:inline-flex;
    padding:5px 8px;
    border:1px solid
        color-mix(
            in srgb,
            var(--public-primary) 16%,
            var(--public-border)
        );
    border-radius:999px;
    color:var(--public-primary);
    font-size:9px;
    font-weight:850;
}

.association-public-action-item__arrow{
    align-self:center;
    color:var(--public-primary);
    font-size:20px;
    transition:transform .2s ease;
}

.association-public-action-item:hover
.association-public-action-item__arrow{
    transform:translateX(4px);
}

.association-public-action-empty{
    display:flex;
    min-height:180px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:28px;
    text-align:center;
}

.association-public-action-empty span{
    color:var(--public-primary);
    font-size:10px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-action-empty strong{
    margin-top:8px;
    color:var(--public-muted);
    font-size:15px;
}

/* =========================================================
   RESPONSIVE PREMIUM
========================================================= */

@media(max-width:980px){
    .association-public-events-grid,
    .association-public-action-columns{
        grid-template-columns:1fr;
    }

    .association-public-content-section__heading{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:640px){
    .association-public-events-premium,
    .association-public-actions-premium{
        margin-top:52px;
    }

    .association-public-content-section__heading{
        margin-bottom:20px;
    }

    .association-public-content-section__heading h2{
        font-size:34px;
        line-height:1;
    }

    .association-public-content-section__heading p{
        font-size:15px;
    }

    .association-public-section-link{
        width:100%;
    }

    .association-public-events-grid{
        gap:16px;
    }

    .association-public-event-card{
        border-radius:23px;
    }

    .association-public-event-card__media{
        height:235px;
    }

    .association-public-event-card__date{
        top:13px;
        left:13px;
        min-width:58px;
        min-height:58px;
        border-radius:16px;
    }

    .association-public-event-card__featured{
        top:13px;
        right:13px;
    }

    .association-public-event-card__mode{
        right:13px;
        bottom:13px;
    }

    .association-public-event-card__body{
        padding:20px;
    }

    .association-public-event-card__actions{
        align-items:stretch;
        flex-direction:column;
    }

    .association-public-event-card__primary-action,
    .association-public-event-card__secondary-action{
        width:100%;
    }

    .association-public-action-column{
        border-radius:23px;
    }

    .association-public-action-column__heading{
        padding:21px;
    }

    .association-public-action-column__heading h3{
        font-size:26px;
    }

    .association-public-action-column__heading > strong{
        font-size:40px;
    }

    .association-public-action-item{
        grid-template-columns:42px minmax(0,1fr) auto;
        gap:12px;
        padding:20px;
    }

    .association-public-action-item__icon{
        width:42px;
        height:42px;
        border-radius:13px;
    }

    .association-public-action-item__content > strong{
        font-size:15px;
    }
}


/* =========================================================
   CORRECTION TITRES SECTIONS PUBLIQUES — DESKTOP + MOBILE
========================================================= */

.association-public-content-section__heading h2,
.association-public-impact__heading h2,
.association-public-action-section h2,
.association-public-content-section h2 {
    font-size: clamp(30px, 3.2vw, 50px) !important;
    line-height: 1.02 !important;
    letter-spacing: -1.8px !important;
    max-width: 820px !important;
    text-wrap: balance;
}

/* Titre principal Missions / Opportunités */
#association-public-actions-title {
    font-size: clamp(30px, 3.1vw, 48px) !important;
    line-height: 1.03 !important;
    letter-spacing: -1.7px !important;
    max-width: 760px !important;
}

/* Titre principal Événements */
#association-public-events-title {
    font-size: clamp(30px, 3.1vw, 48px) !important;
    line-height: 1.03 !important;
    letter-spacing: -1.7px !important;
    max-width: 760px !important;
}

/* Titres Missions et Opportunités dans les colonnes */
.association-public-action-column__heading > span,
.association-public-action-column__heading h3 {
    font-size: clamp(22px, 2vw, 32px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.8px !important;
}

/* Titres des cartes événements */
.association-public-content-card__body h3 {
    font-size: clamp(21px, 1.8vw, 29px) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.6px !important;
}

/* Titres des missions et opportunités */
.association-public-action-item__content strong {
    font-size: clamp(17px, 1.35vw, 22px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.25px !important;
}

/* Tablette */
@media (max-width: 900px) {
    .association-public-content-section__heading h2,
    .association-public-impact__heading h2,
    #association-public-actions-title,
    #association-public-events-title {
        font-size: clamp(28px, 6vw, 40px) !important;
        line-height: 1.04 !important;
        letter-spacing: -1.3px !important;
    }
}

/* Mobile */
@media (max-width: 640px) {
    .association-public-content-section__heading h2,
    .association-public-impact__heading h2,
    .association-public-content-section h2,
    #association-public-actions-title,
    #association-public-events-title {
        font-size: 28px !important;
        line-height: 1.06 !important;
        letter-spacing: -1px !important;
        max-width: 100% !important;
        text-wrap: balance;
    }

    .association-public-content-section__heading p {
        font-size: 16px !important;
        line-height: 1.55 !important;
    }

    .association-public-action-column__heading > span,
    .association-public-action-column__heading h3 {
        font-size: 24px !important;
        line-height: 1.1 !important;
    }

    .association-public-content-card__body h3 {
        font-size: 23px !important;
        line-height: 1.15 !important;
    }

    .association-public-action-item__content strong {
        font-size: 18px !important;
        line-height: 1.25 !important;
    }
}

/* Très petits téléphones */
@media (max-width: 390px) {
    .association-public-content-section__heading h2,
    .association-public-impact__heading h2,
    #association-public-actions-title,
    #association-public-events-title {
        font-size: 25px !important;
        line-height: 1.08 !important;
        letter-spacing: -0.8px !important;
    }

    .association-public-content-card__body h3 {
        font-size: 21px !important;
    }
}


/* =========================================================
   CARTES ÉVÉNEMENTS PLUS COMPACTES ET PLUS PREMIUM
========================================================= */

/* Grille ordinateur */
.association-public-content-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch !important;
}

/* Carte générale */
.association-public-content-card {
    min-width: 0 !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    background: rgba(255, 255, 255, 0.92) !important;
    border: 1px solid rgba(15, 23, 42, 0.08) !important;
    box-shadow:
        0 12px 30px rgba(15, 23, 42, 0.06),
        0 2px 8px rgba(15, 23, 42, 0.03) !important;
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease !important;
}

.association-public-content-card:hover {
    transform: translateY(-4px) !important;
    border-color: rgba(34, 197, 94, 0.22) !important;
    box-shadow:
        0 20px 42px rgba(15, 23, 42, 0.1),
        0 4px 12px rgba(15, 23, 42, 0.04) !important;
}

/* Image moins haute */
.association-public-content-card__media {
    position: relative !important;
    display: block !important;
    aspect-ratio: 16 / 9 !important;
    min-height: 0 !important;
    max-height: 220px !important;
    overflow: hidden !important;
    background: #eef2f7 !important;
}

.association-public-content-card__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    transition: transform 0.35s ease !important;
}

.association-public-content-card:hover
.association-public-content-card__media img {
    transform: scale(1.035) !important;
}

/* Date plus petite */
.association-public-content-card__date {
    top: 12px !important;
    left: 12px !important;
    min-width: auto !important;
    padding: 8px 11px !important;
    border-radius: 14px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    background: rgba(255, 255, 255, 0.94) !important;
    backdrop-filter: blur(12px) !important;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.1) !important;
}

/* Contenu plus resserré */
.association-public-content-card__body {
    padding: 18px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}

/* Catégorie */
.association-public-content-card__category {
    font-size: 11px !important;
    line-height: 1 !important;
    letter-spacing: 0.09em !important;
    text-transform: uppercase !important;
    font-weight: 850 !important;
}

/* Titre compact */
.association-public-content-card__body h3 {
    margin: 0 !important;
    font-size: clamp(19px, 1.45vw, 25px) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.55px !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* Description limitée */
.association-public-content-card__body > p {
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: rgba(51, 65, 85, 0.82) !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* Métadonnées */
.association-public-content-card__meta {
    margin-top: 2px !important;
    font-size: 12.5px !important;
    line-height: 1.4 !important;
    color: rgba(71, 85, 105, 0.78) !important;
}

/* Bouton discret */
.association-public-content-card__action {
    margin-top: 4px !important;
    padding-top: 12px !important;
    border-top: 1px solid rgba(15, 23, 42, 0.07) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

/* Tablette */
@media (max-width: 1050px) {
    .association-public-content-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }

    .association-public-content-card__media {
        max-height: 200px !important;
    }
}

/* Mobile : cartes beaucoup plus compactes */
@media (max-width: 640px) {
    .association-public-content-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .association-public-content-card {
        display: grid !important;
        grid-template-columns: 118px minmax(0, 1fr) !important;
        min-height: 142px !important;
        border-radius: 18px !important;
    }

    .association-public-content-card__media {
        width: 118px !important;
        height: 100% !important;
        min-height: 142px !important;
        max-height: none !important;
        aspect-ratio: auto !important;
    }

    .association-public-content-card__media img {
        height: 100% !important;
    }

    .association-public-content-card__date {
        top: 9px !important;
        left: 9px !important;
        padding: 7px 9px !important;
        border-radius: 12px !important;
        font-size: 10px !important;
    }

    .association-public-content-card__body {
        padding: 14px !important;
        gap: 7px !important;
        justify-content: center !important;
    }

    .association-public-content-card__category {
        font-size: 9px !important;
    }

    .association-public-content-card__body h3 {
        font-size: 18px !important;
        line-height: 1.15 !important;
        letter-spacing: -0.35px !important;
        -webkit-line-clamp: 2 !important;
    }

    .association-public-content-card__body > p {
        font-size: 12.5px !important;
        line-height: 1.4 !important;
        -webkit-line-clamp: 2 !important;
    }

    .association-public-content-card__meta {
        font-size: 11px !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 1 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    .association-public-content-card__action {
        padding-top: 8px !important;
        font-size: 12px !important;
    }
}

/* Très petits mobiles */
@media (max-width: 390px) {
    .association-public-content-card {
        grid-template-columns: 104px minmax(0, 1fr) !important;
        min-height: 134px !important;
    }

    .association-public-content-card__media {
        width: 104px !important;
        min-height: 134px !important;
    }

    .association-public-content-card__body {
        padding: 12px !important;
    }

    .association-public-content-card__body h3 {
        font-size: 16.5px !important;
    }

    .association-public-content-card__body > p {
        display: none !important;
    }
}


/* =========================================================
   ASSOCIATION PUBLIQUE V2
   DESKTOP COMPACT — TITRES + CARTES + COLONNES
========================================================= */

@media (min-width: 1024px) {

    /* -----------------------------------------------------
       ESPACEMENT GÉNÉRAL DES SECTIONS
    ----------------------------------------------------- */

    .association-public-content-section {
        padding-top: 44px !important;
        padding-bottom: 44px !important;
    }

    .association-public-content-section + .association-public-content-section {
        margin-top: 12px !important;
    }

    /* -----------------------------------------------------
       EN-TÊTES ET TITRES PLUS ÉLÉGANTS
    ----------------------------------------------------- */

    .association-public-content-section__heading {
        margin-bottom: 24px !important;
        align-items: flex-end !important;
        gap: 24px !important;
    }

    .association-public-content-section__heading > div {
        max-width: 760px !important;
    }

    .association-public-content-section__heading h2 {
        max-width: 760px !important;
        margin-top: 8px !important;
        margin-bottom: 8px !important;

        font-size: clamp(30px, 3vw, 46px) !important;
        line-height: 1.02 !important;
        letter-spacing: -1.7px !important;
        font-weight: 850 !important;
    }

    .association-public-content-section__heading p {
        max-width: 650px !important;
        margin: 0 !important;

        font-size: 15px !important;
        line-height: 1.55 !important;
        color: rgba(51, 65, 85, 0.75) !important;
    }

    .association-public-content-section__heading
    .association-public-v2__eyebrow {
        font-size: 11px !important;
        line-height: 1 !important;
        letter-spacing: 0.11em !important;
    }

    /* -----------------------------------------------------
       GRILLE ÉVÉNEMENTS : 3 COLONNES
    ----------------------------------------------------- */

    .association-public-content-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 18px !important;
        align-items: stretch !important;
    }

    .association-public-content-card {
        min-width: 0 !important;
        height: auto !important;

        border-radius: 20px !important;
        overflow: hidden !important;

        background: rgba(255, 255, 255, 0.94) !important;
        border: 1px solid rgba(15, 23, 42, 0.07) !important;

        box-shadow:
            0 10px 25px rgba(15, 23, 42, 0.05),
            0 2px 5px rgba(15, 23, 42, 0.025) !important;
    }

    /* Image plus compacte */
    .association-public-content-card__media {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        aspect-ratio: 16 / 9 !important;
        overflow: hidden !important;
    }

    .association-public-content-card__media img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
    }

    /* Corps des cartes plus compact */
    .association-public-content-card__body {
        min-height: 0 !important;
        padding: 16px 17px 17px !important;
        gap: 8px !important;
    }

    .association-public-content-card__category {
        font-size: 9.5px !important;
        letter-spacing: 0.1em !important;
    }

    .association-public-content-card__body h3 {
        margin: 0 !important;

        font-size: clamp(17px, 1.35vw, 22px) !important;
        line-height: 1.12 !important;
        letter-spacing: -0.45px !important;

        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    .association-public-content-card__body > p {
        margin: 0 !important;

        font-size: 12.5px !important;
        line-height: 1.45 !important;

        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    .association-public-content-card__meta {
        margin-top: 2px !important;
        gap: 7px !important;

        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    .association-public-content-card__action {
        margin-top: 4px !important;
        padding-top: 10px !important;

        font-size: 11.5px !important;
        line-height: 1.2 !important;
    }

    .association-public-content-card__date {
        top: 10px !important;
        left: 10px !important;

        padding: 7px 9px !important;
        border-radius: 12px !important;

        font-size: 10px !important;
    }

    /* -----------------------------------------------------
       MISSIONS ET OPPORTUNITÉS PLUS COMPACTES
    ----------------------------------------------------- */

    .association-public-action-columns {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px !important;
        align-items: start !important;
    }

    .association-public-action-column {
        min-height: 0 !important;
        padding: 22px !important;
        border-radius: 22px !important;
    }

    .association-public-action-column__heading {
        margin-bottom: 12px !important;
        padding-bottom: 12px !important;
    }

    .association-public-action-column__heading span {
        font-size: 22px !important;
        line-height: 1.1 !important;
        letter-spacing: -0.5px !important;
    }

    .association-public-action-column__heading strong {
        font-size: 30px !important;
        line-height: 1 !important;
    }

    .association-public-action-list {
        gap: 4px !important;
    }

    .association-public-action-item {
        min-height: 0 !important;
        padding: 14px 8px !important;
        gap: 12px !important;
    }

    .association-public-action-item__icon {
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;

        font-size: 12px !important;
    }

    .association-public-action-item__content {
        gap: 4px !important;
    }

    .association-public-action-item__label {
        font-size: 9px !important;
        letter-spacing: 0.1em !important;
    }

    .association-public-action-item__content strong {
        font-size: 14px !important;
        line-height: 1.25 !important;
        letter-spacing: -0.15px !important;
    }

    .association-public-action-item__content small {
        font-size: 11px !important;
        line-height: 1.4 !important;

        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    .association-public-action-item__arrow {
        font-size: 15px !important;
    }
}

/* =========================================================
   GRANDS ÉCRANS : 4 COLONNES
========================================================= */

@media (min-width: 1500px) {

    .association-public-content-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    .association-public-content-section__heading h2 {
        font-size: 44px !important;
    }
}

/* =========================================================
   TABLETTE / PETIT ORDINATEUR
========================================================= */

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

    .association-public-content-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }

    .association-public-content-section__heading h2 {
        font-size: clamp(28px, 5vw, 38px) !important;
        line-height: 1.05 !important;
        letter-spacing: -1.2px !important;
    }
}


/* =========================================================
   ASSOCIATION PUBLIC — CONTENT SECTIONS PREMIUM V2
========================================================= */

.association-premium-section{
    width:min(100%, 1480px);
    margin:0 auto;
    padding:58px clamp(18px, 3vw, 46px);
    scroll-margin-top:110px;
}

.association-premium-section + .association-premium-section{
    padding-top:34px;
}

.association-premium-section__header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:32px;
    margin-bottom:26px;
}

.association-premium-section__header > div{
    max-width:760px;
}

.association-premium-section__eyebrow{
    display:block;
    margin-bottom:9px;
    color:var(--structure-accent, #22c55e);
    font-size:12px;
    line-height:1;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-premium-section__header h2{
    max-width:760px;
    margin:0;
    color:var(--structure-text, #111827);
    font-size:clamp(30px, 3.2vw, 48px);
    line-height:.98;
    letter-spacing:-.045em;
    font-weight:850;
}

.association-premium-section__header p{
    max-width:650px;
    margin:14px 0 0;
    color:#697386;
    font-size:15px;
    line-height:1.65;
}

.association-premium-section__more{
    display:inline-flex;
    align-items:center;
    gap:10px;
    flex:0 0 auto;
    padding:12px 16px;
    border:1px solid rgba(15, 23, 42, .1);
    border-radius:999px;
    background:#fff;
    color:#111827;
    font-size:13px;
    font-weight:800;
    text-decoration:none;
    box-shadow:0 10px 28px rgba(15, 23, 42, .06);
    transition:
        transform .2s ease,
        box-shadow .2s ease,
        border-color .2s ease;
}

.association-premium-section__more:hover{
    transform:translateY(-2px);
    border-color:rgba(37, 99, 235, .25);
    box-shadow:0 16px 34px rgba(15, 23, 42, .1);
}

/* ÉVÉNEMENTS */

.association-premium-events__grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:18px;
}

.association-premium-event-card{
    min-width:0;
    overflow:hidden;
    border:1px solid rgba(15, 23, 42, .08);
    border-radius:24px;
    background:#fff;
    box-shadow:
        0 16px 50px rgba(15, 23, 42, .07),
        inset 0 1px 0 rgba(255, 255, 255, .8);
    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.association-premium-event-card:hover{
    transform:translateY(-5px);
    border-color:rgba(37, 99, 235, .18);
    box-shadow:0 24px 65px rgba(15, 23, 42, .12);
}

.association-premium-event-card__media{
    position:relative;
    display:block;
    overflow:hidden;
    aspect-ratio:16 / 10;
    background:
        radial-gradient(
            circle at top right,
            color-mix(in srgb, var(--structure-accent, #22c55e) 28%, transparent),
            transparent 52%
        ),
        linear-gradient(
            145deg,
            var(--structure-secondary, #111827),
            color-mix(in srgb, var(--structure-primary, #2563eb) 42%, #111827)
        );
}

.association-premium-event-card__media img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .5s ease;
}

.association-premium-event-card:hover
.association-premium-event-card__media img{
    transform:scale(1.045);
}

.association-premium-event-card__overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            to bottom,
            rgba(15, 23, 42, .02),
            rgba(15, 23, 42, .3)
        );
    pointer-events:none;
}

.association-premium-event-card__placeholder{
    display:grid;
    place-items:center;
    width:100%;
    height:100%;
}

.association-premium-event-card__placeholder span{
    display:grid;
    place-items:center;
    width:70px;
    height:70px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:22px;
    background:rgba(255,255,255,.12);
    color:#fff;
    font-size:20px;
    font-weight:900;
    backdrop-filter:blur(16px);
}

.association-premium-event-card__date{
    position:absolute;
    top:14px;
    left:14px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:54px;
    min-height:54px;
    padding:7px;
    border-radius:16px;
    background:rgba(255,255,255,.94);
    color:#111827;
    text-align:center;
    text-decoration:none;
    box-shadow:0 12px 30px rgba(15,23,42,.14);
    backdrop-filter:blur(16px);
}

.association-premium-event-card__date strong{
    font-size:19px;
    line-height:1;
    font-weight:900;
}

.association-premium-event-card__date span{
    margin-top:4px;
    font-size:9px;
    line-height:1;
    font-weight:900;
    letter-spacing:.08em;
}

.association-premium-event-card__mode{
    position:absolute;
    right:12px;
    bottom:12px;
    padding:7px 10px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:999px;
    background:rgba(15,23,42,.62);
    color:#fff;
    font-size:10px;
    font-weight:850;
    backdrop-filter:blur(14px);
}

.association-premium-event-card__body{
    padding:18px;
}

.association-premium-event-card__topline{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:9px;
}

.association-premium-event-card__topline span{
    color:#6b7280;
    font-size:10px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-premium-event-card__topline strong{
    color:#111827;
    font-size:12px;
    font-weight:900;
    white-space:nowrap;
}

.association-premium-event-card h3{
    margin:0;
    font-size:19px;
    line-height:1.15;
    letter-spacing:-.025em;
    font-weight:850;
}

.association-premium-event-card h3 a{
    color:#111827;
    text-decoration:none;
}

.association-premium-event-card__body > p{
    min-height:42px;
    margin:10px 0 14px;
    color:#697386;
    font-size:12px;
    line-height:1.55;
}

.association-premium-event-card__details{
    display:grid;
    gap:8px;
    padding:13px 0;
    border-top:1px solid rgba(15,23,42,.06);
    border-bottom:1px solid rgba(15,23,42,.06);
}

.association-premium-event-card__details span{
    display:flex;
    align-items:flex-start;
    gap:8px;
    min-width:0;
    color:#536074;
    font-size:11px;
    line-height:1.4;
    font-weight:650;
}

.association-premium-event-card__details svg{
    width:15px;
    height:15px;
    flex:0 0 15px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.association-premium-event-card__footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:15px;
}

.association-premium-event-card__action,
.association-premium-event-card__register{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:38px;
    border-radius:12px;
    font-size:12px;
    font-weight:850;
    text-decoration:none;
}

.association-premium-event-card__action{
    color:var(--structure-primary, #2563eb);
}

.association-premium-event-card__register{
    padding:0 13px;
    background:var(--structure-primary, #2563eb);
    color:#fff;
    box-shadow:0 9px 22px
        color-mix(
            in srgb,
            var(--structure-primary, #2563eb) 22%,
            transparent
        );
}

/* MISSIONS ET OPPORTUNITÉS */

.association-premium-actions__layout{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:20px;
}

.association-premium-action-group{
    min-width:0;
    padding:24px;
    border:1px solid rgba(15,23,42,.075);
    border-radius:26px;
    background:
        radial-gradient(
            circle at 100% 0,
            color-mix(
                in srgb,
                var(--structure-accent, #22c55e) 7%,
                transparent
            ),
            transparent 42%
        ),
        #fff;
    box-shadow:0 18px 55px rgba(15,23,42,.06);
}

.association-premium-action-group__header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    padding-bottom:18px;
    border-bottom:1px solid rgba(15,23,42,.07);
}

.association-premium-action-group__header span{
    display:block;
    margin-bottom:4px;
    color:#8993a4;
    font-size:10px;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.association-premium-action-group__header h3{
    margin:0;
    color:#111827;
    font-size:24px;
    line-height:1;
    letter-spacing:-.035em;
    font-weight:850;
}

.association-premium-action-group__header > strong{
    color:#111827;
    font-size:34px;
    line-height:1;
    letter-spacing:-.05em;
    font-weight:850;
}

.association-premium-action-group__grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
    margin-top:16px;
}

.association-premium-action-card{
    position:relative;
    display:grid;
    grid-template-columns:34px minmax(0, 1fr) auto;
    align-items:start;
    gap:11px;
    min-width:0;
    min-height:156px;
    padding:15px;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.065);
    border-radius:18px;
    background:rgba(248,250,252,.76);
    color:inherit;
    text-decoration:none;
    transition:
        transform .2s ease,
        background .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}

.association-premium-action-card::after{
    content:"";
    position:absolute;
    right:-25px;
    bottom:-32px;
    width:95px;
    height:95px;
    border-radius:50%;
    background:
        color-mix(
            in srgb,
            var(--structure-accent, #22c55e) 8%,
            transparent
        );
    pointer-events:none;
}

.association-premium-action-card:hover{
    transform:translateY(-3px);
    border-color:
        color-mix(
            in srgb,
            var(--structure-primary, #2563eb) 24%,
            transparent
        );
    background:#fff;
    box-shadow:0 15px 35px rgba(15,23,42,.08);
}

.association-premium-action-card__icon{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border-radius:11px;
    background:
        color-mix(
            in srgb,
            var(--structure-accent, #22c55e) 11%,
            #fff
        );
    color:
        color-mix(
            in srgb,
            var(--structure-accent, #22c55e) 72%,
            #166534
        );
}

.association-premium-action-card__icon svg{
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.association-premium-action-card__content{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.association-premium-action-card__type{
    margin-bottom:7px;
    color:#8993a4;
    font-size:9px;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.association-premium-action-card__content > strong{
    display:-webkit-box;
    overflow:hidden;
    color:#111827;
    font-size:14px;
    line-height:1.3;
    font-weight:850;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}

.association-premium-action-card__content > small{
    display:-webkit-box;
    overflow:hidden;
    margin-top:7px;
    color:#697386;
    font-size:11px;
    line-height:1.45;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}

.association-premium-action-card__tags{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    margin-top:auto;
    padding-top:11px;
}

.association-premium-action-card__tags i{
    padding:5px 7px;
    border-radius:999px;
    background:#fff;
    color:#667085;
    font-size:8px;
    line-height:1;
    font-style:normal;
    font-weight:800;
    box-shadow:0 4px 12px rgba(15,23,42,.05);
}

.association-premium-action-card__arrow{
    position:relative;
    z-index:1;
    color:#9ca3af;
    font-size:17px;
    transition:
        color .2s ease,
        transform .2s ease;
}

.association-premium-action-card:hover
.association-premium-action-card__arrow{
    color:var(--structure-primary, #2563eb);
    transform:translateX(3px);
}

.association-premium-empty,
.association-premium-action-group__empty{
    border:1px dashed rgba(15,23,42,.13);
    border-radius:22px;
    background:rgba(255,255,255,.65);
    color:#697386;
}

.association-premium-empty{
    padding:42px;
    text-align:center;
}

.association-premium-empty > span{
    color:var(--structure-accent, #22c55e);
    font-size:11px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-premium-empty h3{
    margin:12px 0 8px;
    color:#111827;
    font-size:22px;
}

.association-premium-empty p{
    margin:0;
    font-size:14px;
}

.association-premium-action-group__empty{
    margin-top:16px;
    padding:24px;
    font-size:13px;
    text-align:center;
}

/* TABLETTES */

@media (max-width:1180px){
    .association-premium-events__grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .association-premium-action-group__grid{
        grid-template-columns:1fr;
    }
}

/* MOBILE */

@media (max-width:760px){
    .association-premium-section{
        width:100%;
        padding:38px 14px;
    }

    .association-premium-section + .association-premium-section{
        padding-top:24px;
    }

    .association-premium-section__header{
        display:block;
        margin-bottom:20px;
    }

    .association-premium-section__header h2{
        max-width:340px;
        font-size:31px;
        line-height:1.02;
        letter-spacing:-.04em;
    }

    .association-premium-section__header p{
        margin-top:11px;
        font-size:14px;
        line-height:1.55;
    }

    .association-premium-section__more{
        margin-top:16px;
    }

    .association-premium-events__grid{
        grid-template-columns:1fr;
        gap:14px;
    }

    .association-premium-event-card{
        border-radius:21px;
    }

    .association-premium-event-card__media{
        aspect-ratio:16 / 9;
    }

    .association-premium-event-card__body{
        padding:17px;
    }

    .association-premium-event-card h3{
        font-size:20px;
    }

    .association-premium-event-card__body > p{
        min-height:0;
        font-size:13px;
    }

    .association-premium-actions__layout{
        grid-template-columns:1fr;
        gap:15px;
    }

    .association-premium-action-group{
        padding:18px;
        border-radius:22px;
    }

    .association-premium-action-group__header h3{
        font-size:23px;
    }

    .association-premium-action-group__header > strong{
        font-size:31px;
    }

    .association-premium-action-group__grid{
        grid-template-columns:1fr;
        gap:10px;
    }

    .association-premium-action-card{
        min-height:142px;
        padding:14px;
    }
}

/* PETITS MOBILES */

@media (max-width:390px){
    .association-premium-section{
        padding-left:11px;
        padding-right:11px;
    }

    .association-premium-section__header h2{
        font-size:28px;
    }

    .association-premium-event-card__footer{
        align-items:flex-start;
        flex-direction:column;
    }

    .association-premium-event-card__register{
        width:100%;
    }
}

/* =========================================================
   ASSOCIATION PUBLIC V2 — BANDEAUX LIÉS AU THÈME
   Priorité finale
========================================================= */

.association-public-v2
.association-public-content-section__heading{
    background:
        linear-gradient(
            135deg,
            color-mix(
                in srgb,
                var(--structure-primary) 14%,
                #ffffff
            ) 0%,
            color-mix(
                in srgb,
                var(--structure-accent) 10%,
                #ffffff
            ) 100%
        ) !important;

    border:
        1px solid
        color-mix(
            in srgb,
            var(--structure-primary) 20%,
            transparent
        ) !important;

    box-shadow:
        0 18px 50px
        color-mix(
            in srgb,
            var(--structure-primary) 8%,
            transparent
        ) !important;
}

.association-public-v2
.association-public-content-section__heading h2{
    color:var(--structure-text) !important;
    -webkit-text-fill-color:var(--structure-text) !important;
    background:none !important;
    background-image:none !important;
    opacity:1 !important;
}

.association-public-v2
.association-public-content-section__heading p{
    color:
        color-mix(
            in srgb,
            var(--structure-text) 70%,
            transparent
        ) !important;

    -webkit-text-fill-color:
        color-mix(
            in srgb,
            var(--structure-text) 70%,
            transparent
        ) !important;

    opacity:1 !important;
}

.association-public-v2
.association-public-content-section__heading
.association-public-v2__eyebrow{
    color:var(--structure-primary) !important;
    -webkit-text-fill-color:var(--structure-primary) !important;
}

.association-public-v2
.association-public-action-column__heading{
    background:
        linear-gradient(
            135deg,
            color-mix(
                in srgb,
                var(--structure-primary) 11%,
                #ffffff
            ),
            color-mix(
                in srgb,
                var(--structure-accent) 8%,
                #ffffff
            )
        ) !important;

    color:var(--structure-text) !important;
}

.association-public-v2
.association-public-action-column__heading span,
.association-public-v2
.association-public-action-column__heading strong{
    color:var(--structure-text) !important;
    -webkit-text-fill-color:var(--structure-text) !important;
}


/* =========================================================
   ASSOCIATION PUBLIQUE — MÉDIAS PREMIUM V2
   ========================================================= */

.association-public-media-section{
    position:relative;
    width:100%;
    margin:42px 0 56px;
    padding:30px;
    overflow:hidden;
    border:1px solid color-mix(
        in srgb,
        var(--structure-primary,#2563eb) 12%,
        #e2e8f0
    );
    border-radius:30px;
    background:
        radial-gradient(
            circle at 94% 4%,
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 12%,
                transparent
            ),
            transparent 32%
        ),
        #ffffff;
    box-shadow:0 24px 60px rgba(15,23,42,.07);
}

.association-public-media-section__header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:28px;
    margin-bottom:24px;
}

.association-public-media-section__header > div:first-child{
    min-width:0;
    max-width:760px;
}

.association-public-media-section__eyebrow{
    display:block;
    margin-bottom:8px;
    color:var(--structure-primary,#2563eb);
    font-size:11px;
    line-height:1.2;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.association-public-media-section__header h2{
    margin:0;
    color:#172033;
    font-size:clamp(30px,3.1vw,45px);
    line-height:1;
    font-weight:950;
    letter-spacing:-.045em;
}

.association-public-media-section__header p{
    max-width:680px;
    margin:13px 0 0;
    color:#64748b;
    font-size:15px;
    line-height:1.6;
}

.association-public-media-section__counter{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    flex:0 0 auto;
}

.association-public-media-section__counter strong{
    color:var(--structure-primary,#2563eb);
    font-size:42px;
    line-height:.9;
    font-weight:950;
    letter-spacing:-.06em;
}

.association-public-media-section__counter span{
    margin-top:7px;
    color:#64748b;
    font-size:11px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-media-gallery{
    display:grid;
    grid-template-columns:minmax(0,1.18fr) minmax(0,1fr);
    gap:14px;
}

.association-public-media-featured,
.association-public-media-card{
    position:relative;
    display:block;
    width:100%;
    min-width:0;
    overflow:hidden;
    padding:0;
    border:0;
    border-radius:22px;
    background:#e2e8f0;
    cursor:pointer;
    appearance:none;
    text-align:left;
}

.association-public-media-featured{
    min-height:440px;
}

.association-public-media-featured img,
.association-public-media-card img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:
        transform .55s cubic-bezier(.2,.7,.2,1),
        filter .35s ease;
}

.association-public-media-featured:hover img,
.association-public-media-card:hover img{
    transform:scale(1.045);
}

.association-public-media-featured__overlay,
.association-public-media-card__overlay{
    position:absolute;
    inset:0;
    pointer-events:none;
}

.association-public-media-featured__overlay{
    background:
        linear-gradient(
            180deg,
            rgba(15,23,42,.02) 20%,
            rgba(15,23,42,.82) 100%
        );
}

.association-public-media-card__overlay{
    background:
        linear-gradient(
            180deg,
            rgba(15,23,42,.03) 25%,
            rgba(15,23,42,.72) 100%
        );
}

.association-public-media-featured__content{
    position:absolute;
    z-index:2;
    right:24px;
    bottom:24px;
    left:24px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}

.association-public-media-featured__type{
    display:inline-flex;
    align-items:center;
    min-height:25px;
    margin-bottom:10px;
    padding:5px 9px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    background:rgba(255,255,255,.13);
    color:#ffffff;
    font-size:10px;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
    backdrop-filter:blur(12px);
}

.association-public-media-featured__content strong{
    max-width:620px;
    color:#ffffff;
    font-size:clamp(25px,2.4vw,38px);
    line-height:1.02;
    font-weight:950;
    letter-spacing:-.04em;
}

.association-public-media-featured__content small{
    max-width:580px;
    margin-top:9px;
    color:rgba(255,255,255,.78);
    font-size:13px;
    line-height:1.5;
}

.association-public-media-featured__action{
    position:absolute;
    z-index:3;
    top:18px;
    right:18px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:38px;
    padding:9px 13px;
    border-radius:999px;
    background:rgba(255,255,255,.9);
    color:#172033;
    font-size:12px;
    font-weight:900;
    box-shadow:0 10px 24px rgba(15,23,42,.15);
    backdrop-filter:blur(14px);
}

.association-public-media-gallery__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:minmax(0,1fr);
    gap:14px;
}

.association-public-media-card{
    min-height:210px;
}

.association-public-media-card__badge{
    position:absolute;
    z-index:2;
    top:12px;
    left:12px;
    display:inline-flex;
    padding:6px 9px;
    border:1px solid rgba(255,255,255,.23);
    border-radius:999px;
    background:rgba(15,23,42,.35);
    color:#ffffff;
    font-size:9px;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
    backdrop-filter:blur(12px);
}

.association-public-media-card__title{
    position:absolute;
    z-index:2;
    right:44px;
    bottom:15px;
    left:15px;
    overflow:hidden;
    color:#ffffff;
    font-size:14px;
    line-height:1.2;
    font-weight:900;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.association-public-media-card__open{
    position:absolute;
    z-index:2;
    right:14px;
    bottom:14px;
    color:#ffffff;
    font-size:18px;
    line-height:1;
    font-weight:800;
}

.association-public-media-video-placeholder,
.association-public-media-placeholder{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:
        linear-gradient(
            135deg,
            var(--structure-primary,#2563eb),
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 55%,
                #0f172a
            )
        );
}

.association-public-media-placeholder span{
    color:rgba(255,255,255,.9);
    font-size:48px;
    font-weight:950;
    letter-spacing:-.08em;
}

.association-public-media-play{
    display:flex;
    align-items:center;
    justify-content:center;
    width:62px;
    height:62px;
    border-radius:50%;
    background:rgba(255,255,255,.9);
    color:var(--structure-primary,#2563eb);
}

.association-public-media-play svg{
    width:30px;
    height:30px;
    fill:currentColor;
    stroke:currentColor;
}

.association-public-media-empty{
    padding:50px 28px;
    border:1px dashed #cbd5e1;
    border-radius:24px;
    background:#f8fafc;
    text-align:center;
}

.association-public-media-empty > span{
    color:var(--structure-primary,#2563eb);
    font-size:11px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-public-media-empty h3{
    margin:10px 0 0;
    color:#172033;
    font-size:24px;
    font-weight:950;
}

.association-public-media-empty p{
    margin:10px auto 0;
    max-width:520px;
    color:#64748b;
    line-height:1.6;
}

.association-public-media-lightbox{
    position:fixed;
    z-index:99999;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:28px;
    visibility:hidden;
    opacity:0;
    transition:
        opacity .25s ease,
        visibility .25s ease;
}

.association-public-media-lightbox[aria-hidden="false"]{
    visibility:visible;
    opacity:1;
}

.association-public-media-lightbox__backdrop{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    background:rgba(2,6,23,.84);
    cursor:pointer;
    backdrop-filter:blur(18px);
}

.association-public-media-lightbox__dialog{
    position:relative;
    z-index:2;
    width:min(1100px,100%);
    max-height:calc(100vh - 56px);
    overflow:auto;
    border:1px solid rgba(255,255,255,.12);
    border-radius:28px;
    background:#ffffff;
    box-shadow:0 38px 100px rgba(0,0,0,.45);
}

.association-public-media-lightbox__close{
    position:absolute;
    z-index:4;
    top:14px;
    right:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    padding:0;
    border:1px solid rgba(255,255,255,.2);
    border-radius:50%;
    background:rgba(15,23,42,.65);
    color:#ffffff;
    font-size:28px;
    line-height:1;
    cursor:pointer;
    backdrop-filter:blur(12px);
}

.association-public-media-lightbox__visual{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:360px;
    background:#020617;
}

.association-public-media-lightbox__visual img{
    display:block;
    width:100%;
    max-height:72vh;
    object-fit:contain;
}

.association-public-media-lightbox__external{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:12px 18px;
    border-radius:14px;
    background:var(--structure-primary,#2563eb);
    color:#ffffff;
    font-weight:900;
}

.association-public-media-lightbox__content{
    padding:22px 26px 26px;
}

.association-public-media-lightbox__content > span{
    color:var(--structure-primary,#2563eb);
    font-size:10px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-public-media-lightbox__content h3{
    margin:7px 0 0;
    color:#172033;
    font-size:27px;
    line-height:1.1;
    font-weight:950;
    letter-spacing:-.035em;
}

.association-public-media-lightbox__content p{
    margin:10px 0 0;
    color:#64748b;
    font-size:14px;
    line-height:1.6;
}

body.association-public-media-lightbox-open{
    overflow:hidden;
}

@media (max-width:1024px){

    .association-public-media-gallery{
        grid-template-columns:1fr;
    }

    .association-public-media-featured{
        min-height:410px;
    }

    .association-public-media-gallery__grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media (max-width:767px){

    .association-public-media-section{
        margin:28px 0 38px;
        padding:18px;
        border-radius:24px;
    }

    .association-public-media-section__header{
        align-items:flex-start;
        margin-bottom:18px;
    }

    .association-public-media-section__header h2{
        font-size:28px;
        line-height:1.04;
    }

    .association-public-media-section__header p{
        font-size:14px;
        line-height:1.55;
    }

    .association-public-media-section__counter{
        display:none;
    }

    .association-public-media-featured{
        min-height:330px;
        border-radius:19px;
    }

    .association-public-media-featured__content{
        right:18px;
        bottom:18px;
        left:18px;
    }

    .association-public-media-featured__content strong{
        font-size:24px;
    }

    .association-public-media-featured__action{
        top:12px;
        right:12px;
        min-height:34px;
        padding:8px 11px;
        font-size:11px;
    }

    .association-public-media-gallery__grid{
        display:flex;
        gap:12px;
        margin-right:-18px;
        padding-right:18px;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        scrollbar-width:none;
    }

    .association-public-media-gallery__grid::-webkit-scrollbar{
        display:none;
    }

    .association-public-media-card{
        flex:0 0 74%;
        min-height:235px;
        border-radius:18px;
        scroll-snap-align:start;
    }

    .association-public-media-lightbox{
        align-items:flex-end;
        padding:10px;
    }

    .association-public-media-lightbox__dialog{
        max-height:92vh;
        border-radius:24px;
    }

    .association-public-media-lightbox__visual{
        min-height:250px;
    }

    .association-public-media-lightbox__content{
        padding:18px 20px 22px;
    }

    .association-public-media-lightbox__content h3{
        font-size:23px;
    }
}


/* =========================================================
   ASSOCIATION PUBLIC V2 — LIGHTBOX PREMIUM FIX FINAL
   Empêche le backdrop bouton de devenir un cercle géant
========================================================= */

.association-public-v2 .association-public-media-lightbox{
    position:fixed !important;
    inset:0 !important;
    z-index:2147483000 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100vw !important;
    height:100dvh !important;
    margin:0 !important;
    padding:clamp(14px,3vw,32px) !important;
    border:0 !important;
    border-radius:0 !important;
    overflow:hidden !important;
    isolation:isolate !important;
}

.association-public-v2
.association-public-media-lightbox[aria-hidden="true"]{
    pointer-events:none !important;
    visibility:hidden !important;
    opacity:0 !important;
}

.association-public-v2
.association-public-media-lightbox[aria-hidden="false"]{
    pointer-events:auto !important;
    visibility:visible !important;
    opacity:1 !important;
}

/* Le problème venait principalement de ce bouton */

.association-public-v2
.association-public-media-lightbox__backdrop{
    position:absolute !important;
    inset:0 !important;
    z-index:0 !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    outline:0 !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    background:rgba(2,6,23,.86) !important;
    background-image:none !important;
    box-shadow:none !important;
    transform:none !important;
    clip-path:none !important;
    cursor:pointer !important;
    backdrop-filter:blur(18px) !important;
    -webkit-backdrop-filter:blur(18px) !important;
}

/* Fenêtre centrale */

.association-public-v2
.association-public-media-lightbox__dialog{
    position:relative !important;
    z-index:2 !important;
    display:flex !important;
    flex-direction:column !important;
    width:min(1080px,100%) !important;
    max-width:1080px !important;
    max-height:calc(100dvh - 56px) !important;
    margin:0 auto !important;
    overflow:hidden !important;
    border:1px solid rgba(255,255,255,.16) !important;
    border-radius:28px !important;
    background:#ffffff !important;
    box-shadow:0 34px 100px rgba(0,0,0,.48) !important;
    transform:none !important;
    clip-path:none !important;
}

/* Zone image */

.association-public-v2
.association-public-media-lightbox__visual{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    min-height:320px !important;
    max-height:72dvh !important;
    overflow:hidden !important;
    border-radius:0 !important;
    background:#020617 !important;
}

/* Annule toute règle globale qui transforme l’image en cercle */

.association-public-v2
.association-public-media-lightbox__visual img{
    position:relative !important;
    inset:auto !important;
    display:block !important;
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:72dvh !important;
    margin:auto !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    object-fit:contain !important;
    object-position:center !important;
    box-shadow:none !important;
    transform:none !important;
    clip-path:none !important;
    filter:none !important;
}

/* Bouton fermer */

.association-public-v2
.association-public-media-lightbox__close{
    position:absolute !important;
    z-index:10 !important;
    top:14px !important;
    right:14px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
    margin:0 !important;
    padding:0 0 3px !important;
    border:1px solid rgba(255,255,255,.28) !important;
    border-radius:50% !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    background:rgba(15,23,42,.78) !important;
    color:#ffffff !important;
    font-size:28px !important;
    line-height:1 !important;
    box-shadow:0 10px 28px rgba(0,0,0,.25) !important;
    transform:none !important;
}

/* Contenu sous la photo */

.association-public-v2
.association-public-media-lightbox__content{
    flex:0 0 auto !important;
    padding:20px 24px 24px !important;
    border-radius:0 !important;
    background:#ffffff !important;
}

/* Le menu mobile doit rester derrière la lightbox */

body.association-public-media-lightbox-open
.mobile-bottom-nav,
body.association-public-media-lightbox-open
.rt-mobile-bottom-nav,
body.association-public-media-lightbox-open
.bottom-navigation,
body.association-public-media-lightbox-open
[data-mobile-navigation]{
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
}

/* Mobile */

@media (max-width:767px){

    .association-public-v2 .association-public-media-lightbox{
        align-items:center !important;
        padding:12px !important;
    }

    .association-public-v2
    .association-public-media-lightbox__dialog{
        width:100% !important;
        max-height:calc(100dvh - 24px) !important;
        border-radius:24px !important;
    }

    .association-public-v2
    .association-public-media-lightbox__visual{
        min-height:260px !important;
        max-height:68dvh !important;
    }

    .association-public-v2
    .association-public-media-lightbox__visual img{
        width:100% !important;
        max-height:68dvh !important;
        object-fit:contain !important;
        border-radius:0 !important;
    }

    .association-public-v2
    .association-public-media-lightbox__content{
        padding:17px 19px 21px !important;
    }
}

/* FIN ASSOCIATION PUBLIC V2 — LIGHTBOX PREMIUM FIX FINAL */


/* =========================================================
   FIX CLICS GALERIE — PRIORITÉ FINALE
========================================================= */

/* Les photos restent cliquables */

.association-public-v2 button[data-media-preview],
.association-public-v2 .association-public-media-featured,
.association-public-v2 .association-public-media-card{
    position:relative !important;
    z-index:1 !important;
    pointer-events:auto !important;
    cursor:pointer !important;
    touch-action:manipulation !important;
}

/* Les éléments décoratifs ne bloquent jamais le clic */

.association-public-v2
.association-public-media-featured__overlay,
.association-public-v2
.association-public-media-featured__content,
.association-public-v2
.association-public-media-featured__action,
.association-public-v2
.association-public-media-card__overlay,
.association-public-v2
.association-public-media-card__badge,
.association-public-v2
.association-public-media-card__title,
.association-public-v2
.association-public-media-card__open{
    pointer-events:none !important;
}

/* Fermée : la lightbox disparaît réellement */

.association-public-media-lightbox[aria-hidden="true"]{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
}

/* Ouverte : elle redevient active */

.association-public-media-lightbox[aria-hidden="false"]{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
}

/* Le fond ne devient cliquable que lorsque la lightbox est ouverte */

.association-public-media-lightbox[aria-hidden="true"]
.association-public-media-lightbox__backdrop{
    pointer-events:none !important;
}

.association-public-media-lightbox[aria-hidden="false"]
.association-public-media-lightbox__backdrop{
    pointer-events:auto !important;
}

/* FIN FIX CLICS GALERIE */


/* =========================================================
   ASSOCIATION PUBLIC V2 — LIGHTBOX ALBUM PREMIUM
   ========================================================= */

body > .association-public-media-lightbox{
    position:fixed !important;
    z-index:2147483000 !important;
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    margin:0 !important;
    transform:none !important;
    isolation:isolate;
}

body > .association-public-media-lightbox[aria-hidden="true"]{
    visibility:hidden !important;
    pointer-events:none !important;
    opacity:0 !important;
}

body > .association-public-media-lightbox[aria-hidden="false"]{
    visibility:visible !important;
    pointer-events:auto !important;
    opacity:1 !important;
}

.association-public-media-lightbox__dialog{
    overflow:hidden !important;
}

.association-public-media-lightbox__visual{
    position:relative;
    overflow:hidden;
}

.association-public-media-lightbox__navigation{
    position:absolute;
    z-index:10;
    top:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    width:52px;
    height:52px;
    padding:0;
    border:1px solid rgba(255,255,255,.24);
    border-radius:50%;
    background:rgba(15,23,42,.68);
    color:#ffffff;
    cursor:pointer;
    transform:translateY(-50%);
    box-shadow:0 12px 30px rgba(0,0,0,.25);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
}

.association-public-media-lightbox__navigation:hover{
    background:var(--structure-primary,#2563eb);
}

.association-public-media-lightbox__navigation span{
    display:block;
    margin-top:-5px;
    font-size:42px;
    line-height:1;
    font-weight:500;
}

.association-public-media-lightbox__navigation--previous{
    left:18px;
}

.association-public-media-lightbox__navigation--next{
    right:18px;
}

.association-public-media-lightbox__status{
    display:flex;
    justify-content:flex-end;
    margin-bottom:8px;
}

.association-public-media-lightbox__status span{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:5px 10px;
    border-radius:999px;
    background:
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 10%,
            #ffffff
        );
    color:var(--structure-primary,#2563eb);
    font-size:11px;
    font-weight:900;
}

.association-public-media-lightbox__unavailable{
    padding:40px;
    color:#ffffff;
    font-weight:800;
    text-align:center;
}

@media (max-width:767px){

    body > .association-public-media-lightbox{
        align-items:center !important;
        padding:
            max(10px,env(safe-area-inset-top))
            10px
            max(10px,env(safe-area-inset-bottom)) !important;
    }

    .association-public-media-lightbox__dialog{
        width:100% !important;
        max-height:calc(100dvh - 20px) !important;
        border-radius:22px !important;
    }

    .association-public-media-lightbox__visual{
        min-height:280px !important;
        max-height:68dvh !important;
        touch-action:pan-y;
    }

    .association-public-media-lightbox__visual img{
        width:100% !important;
        max-height:68dvh !important;
        object-fit:contain !important;
    }

    .association-public-media-lightbox__navigation{
        width:42px;
        height:42px;
    }

    .association-public-media-lightbox__navigation span{
        font-size:34px;
    }

    .association-public-media-lightbox__navigation--previous{
        left:9px;
    }

    .association-public-media-lightbox__navigation--next{
        right:9px;
    }
}

/* FIN ASSOCIATION PUBLIC V2 — LIGHTBOX ALBUM PREMIUM */

/* =========================================================
   ASSOCIATION PUBLIC V2 — INTERACTIONS GALERIE
   ========================================================= */

.association-public-media-featured,
.association-public-media-card{
    position:relative !important;
    z-index:1 !important;
    pointer-events:auto !important;
    cursor:pointer !important;
    touch-action:manipulation;
}

.association-public-media-featured *,
.association-public-media-card *{
    pointer-events:none !important;
}

.association-public-media-gallery,
.association-public-media-gallery__grid{
    position:relative !important;
    pointer-events:auto !important;
}

body > .association-public-media-lightbox[aria-hidden="true"]{
    display:flex !important;
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
}

body > .association-public-media-lightbox[aria-hidden="false"]{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
}

html.association-public-media-lightbox-open,
body.association-public-media-lightbox-open{
    overflow:hidden !important;
}

/* FIN ASSOCIATION PUBLIC V2 — INTERACTIONS GALERIE */

/* =========================================================
   ASSOCIATION PUBLIC — PROJECTS TIMELINE PREMIUM V2
========================================================= */

.association-projects-timeline{
    position:relative;
    width:100%;
    margin:44px 0 58px;
    padding:30px;
    overflow:hidden;
    border:1px solid
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 12%,
            #e2e8f0
        );
    border-radius:30px;
    background:
        radial-gradient(
            circle at 96% 2%,
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 12%,
                transparent
            ),
            transparent 31%
        ),
        var(--structure-card,#ffffff);
    box-shadow:0 24px 65px rgba(15,23,42,.07);
}

.association-projects-timeline__header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:28px;
    margin-bottom:36px;
    padding:26px 28px;
    border-radius:22px;
    background:
        linear-gradient(
            135deg,
            var(--structure-primary,#2563eb),
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 72%,
                var(--structure-secondary,#111827)
            )
        );
    box-shadow:0 18px 42px rgba(15,23,42,.13);
}

.association-projects-timeline__header > div:first-child{
    max-width:820px;
}

.association-projects-timeline__eyebrow{
    display:block;
    margin-bottom:8px;
    color:rgba(255,255,255,.78);
    font-size:11px;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.association-projects-timeline__header h2{
    margin:0;
    color:#ffffff;
    font-size:clamp(30px,3.1vw,46px);
    line-height:1;
    font-weight:950;
    letter-spacing:-.045em;
}

.association-projects-timeline__header p{
    max-width:720px;
    margin:13px 0 0;
    color:rgba(255,255,255,.8);
    font-size:15px;
    line-height:1.6;
}

.association-projects-timeline__summary{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    flex:0 0 auto;
}

.association-projects-timeline__summary strong{
    color:#ffffff;
    font-size:46px;
    line-height:.9;
    font-weight:950;
    letter-spacing:-.06em;
}

.association-projects-timeline__summary span{
    margin-top:7px;
    color:rgba(255,255,255,.76);
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-projects-timeline__track{
    position:absolute;
    top:172px;
    bottom:58px;
    left:56px;
    width:4px;
    overflow:hidden;
    border-radius:999px;
    background:
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 12%,
            #e2e8f0
        );
}

.association-projects-timeline__track-progress{
    position:absolute;
    top:0;
    right:0;
    left:0;
    height:0;
    border-radius:999px;
    background:
        linear-gradient(
            to bottom,
            var(--structure-primary,#2563eb),
            var(--structure-accent,#22c55e)
        );
    transition:height .18s linear;
}

.association-projects-timeline__list{
    display:grid;
    gap:24px;
}

.association-project-card{
    position:relative;
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    align-items:start;
    opacity:0;
    transform:translateY(28px);
    transition:
        opacity .55s ease,
        transform .55s ease;
}

.association-project-card.is-visible{
    opacity:1;
    transform:translateY(0);
}

.association-project-card__marker{
    position:relative;
    z-index:3;
    display:flex;
    justify-content:center;
    padding-top:34px;
}

.association-project-card__marker span{
    display:block;
    width:20px;
    height:20px;
    border:5px solid var(--structure-card,#ffffff);
    border-radius:50%;
    background:var(--structure-primary,#2563eb);
    box-shadow:
        0 0 0 4px
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 18%,
            transparent
        );
}

.association-project-card--completed
.association-project-card__marker span{
    background:var(--structure-accent,#22c55e);
}

.association-project-card--preparing
.association-project-card__marker span{
    background:#f59e0b;
}

.association-project-card__surface{
    position:relative;
    min-width:0;
    padding:26px;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.075);
    border-radius:25px;
    background:rgba(255,255,255,.92);
    box-shadow:0 18px 50px rgba(15,23,42,.065);
}

.association-project-card__surface::after{
    content:"";
    position:absolute;
    right:-80px;
    bottom:-100px;
    width:260px;
    height:260px;
    border-radius:50%;
    background:
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 7%,
            transparent
        );
    pointer-events:none;
}

.association-project-card__header{
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
}

.association-project-card__badges{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-bottom:12px;
}

.association-project-card__badges span{
    display:inline-flex;
    align-items:center;
    min-height:27px;
    padding:6px 9px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-project-card__status{
    background:
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 11%,
            #ffffff
        );
    color:var(--structure-primary,#2563eb);
}

.association-project-card__category{
    background:#f1f5f9;
    color:#475569;
}

.association-project-card__featured{
    background:
        color-mix(
            in srgb,
            var(--structure-accent,#22c55e) 12%,
            #ffffff
        );
    color:#15803d;
}

.association-project-card__identity h3{
    margin:0;
    color:#172033;
    font-size:clamp(25px,2.5vw,37px);
    line-height:1.03;
    font-weight:950;
    letter-spacing:-.045em;
}

.association-project-card__subtitle{
    margin:9px 0 0;
    color:#64748b;
    font-size:14px;
    line-height:1.5;
}

.association-project-card__progress-value{
    display:flex;
    align-items:flex-start;
    flex:0 0 auto;
    color:var(--structure-primary,#2563eb);
}

.association-project-card__progress-value strong{
    font-size:42px;
    line-height:.9;
    font-weight:950;
    letter-spacing:-.06em;
}

.association-project-card__progress-value span{
    margin:3px 0 0 3px;
    font-size:15px;
    font-weight:900;
}

.association-project-card__period{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-top:19px;
    color:#64748b;
    font-size:12px;
    font-weight:750;
}

.association-project-card__period small{
    font-size:11px;
    font-weight:800;
}

.association-project-card__progress{
    position:relative;
    z-index:1;
    height:8px;
    margin-top:11px;
    overflow:hidden;
    border-radius:999px;
    background:#e8edf3;
}

.association-project-card__progress > span{
    display:block;
    height:100%;
    border-radius:inherit;
    background:
        linear-gradient(
            90deg,
            var(--structure-primary,#2563eb),
            var(--structure-accent,#22c55e)
        );
    transition:width 1.1s cubic-bezier(.2,.8,.2,1);
}

.association-project-card__summary{
    position:relative;
    z-index:1;
    margin:19px 0 0;
    color:#536074;
    font-size:14px;
    line-height:1.65;
}

.association-project-card__metrics{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:20px;
}

.association-project-card__metrics > div{
    min-width:0;
    padding:14px;
    border:1px solid rgba(15,23,42,.065);
    border-radius:16px;
    background:#f8fafc;
}

.association-project-card__metrics strong{
    display:block;
    color:#172033;
    font-size:18px;
    font-weight:950;
    overflow-wrap:anywhere;
}

.association-project-card__metrics span{
    display:block;
    margin-top:4px;
    color:#64748b;
    font-size:10px;
    line-height:1.4;
    font-weight:800;
}

.association-project-card__insights{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:16px;
}

.association-project-card__insights > div{
    padding:17px;
    border-left:4px solid var(--structure-primary,#2563eb);
    border-radius:16px;
    background:
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 5%,
            #ffffff
        );
}

.association-project-card__insights span,
.association-project-card__footer > div > span{
    display:block;
    margin-bottom:6px;
    color:var(--structure-primary,#2563eb);
    font-size:9px;
    font-weight:950;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.association-project-card__insights p{
    margin:0;
    color:#475569;
    font-size:12px;
    line-height:1.55;
}

.association-project-card__milestones{
    position:relative;
    z-index:1;
    margin-top:18px;
    padding:18px;
    border:1px solid rgba(15,23,42,.07);
    border-radius:18px;
    background:#f8fafc;
}

.association-project-card__milestones > header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}

.association-project-card__milestones > header span{
    color:#64748b;
    font-size:9px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-project-card__milestones h4{
    margin:5px 0 0;
    color:#172033;
    font-size:17px;
    line-height:1.1;
    font-weight:950;
}

.association-project-card__toggle{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:38px;
    padding:9px 12px;
    border:1px solid
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 20%,
            transparent
        );
    border-radius:999px;
    background:#ffffff;
    color:var(--structure-primary,#2563eb);
    font:inherit;
    font-size:11px;
    font-weight:900;
    cursor:pointer;
}

.association-project-card__toggle > span{
    color:inherit !important;
    font-size:18px !important;
    line-height:1;
    letter-spacing:0 !important;
    text-transform:none !important;
}

.association-project-milestones{
    position:relative;
    display:grid;
    gap:0;
    margin-top:17px;
}

.association-project-milestones[hidden]{
    display:none;
}

.association-project-milestone{
    position:relative;
    display:grid;
    grid-template-columns:18px minmax(0,1fr);
    gap:11px;
    padding-bottom:17px;
}

.association-project-milestone:last-child{
    padding-bottom:0;
}

.association-project-milestone::before{
    content:"";
    position:absolute;
    top:14px;
    bottom:-2px;
    left:6px;
    width:2px;
    background:#dbe3ec;
}

.association-project-milestone:last-child::before{
    display:none;
}

.association-project-milestone__dot{
    position:relative;
    z-index:1;
    width:14px;
    height:14px;
    margin-top:3px;
    border:3px solid #ffffff;
    border-radius:50%;
    background:#cbd5e1;
    box-shadow:0 0 0 2px #dbe3ec;
}

.association-project-milestone--termine
.association-project-milestone__dot{
    background:var(--structure-accent,#22c55e);
}

.association-project-milestone--en_cours
.association-project-milestone__dot{
    background:var(--structure-primary,#2563eb);
}

.association-project-milestone time{
    display:block;
    color:#64748b;
    font-size:9px;
    font-weight:850;
    text-transform:uppercase;
}

.association-project-milestone strong{
    display:block;
    margin-top:3px;
    color:#172033;
    font-size:13px;
    font-weight:900;
}

.association-project-milestone small{
    display:block;
    margin-top:3px;
    color:#64748b;
    font-size:10px;
}

.association-project-card__footer{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
    margin-top:18px;
    padding-top:17px;
    border-top:1px solid rgba(15,23,42,.07);
}

.association-project-card__chips{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.association-project-card__chips small{
    padding:6px 8px;
    border-radius:999px;
    background:#f1f5f9;
    color:#526075;
    font-size:9px;
    font-weight:800;
}

.association-project-card__external-link{
    position:relative;
    z-index:1;
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-top:18px;
    color:var(--structure-primary,#2563eb);
    font-size:12px;
    font-weight:900;
    text-decoration:none;
}

@media(max-width:767px){

    .association-projects-timeline{
        margin:28px 0 40px;
        padding:14px;
        border-radius:23px;
    }

    .association-projects-timeline__header{
        display:block;
        margin-bottom:25px;
        padding:19px;
        border-radius:19px;
    }

    .association-projects-timeline__header h2{
        font-size:26px;
        line-height:1.05;
    }

    .association-projects-timeline__header p{
        font-size:14px;
        line-height:1.5;
    }

    .association-projects-timeline__summary{
        display:none;
    }

    .association-projects-timeline__track{
        top:188px;
        bottom:38px;
        left:28px;
        width:3px;
    }

    .association-project-card{
        grid-template-columns:28px minmax(0,1fr);
        gap:0;
    }

    .association-project-card__marker{
        justify-content:flex-start;
        padding-top:28px;
    }

    .association-project-card__marker span{
        width:16px;
        height:16px;
        border-width:4px;
    }

    .association-project-card__surface{
        padding:18px;
        border-radius:20px;
    }

    .association-project-card__header{
        display:block;
    }

    .association-project-card__identity h3{
        font-size:25px;
    }

    .association-project-card__progress-value{
        margin-top:14px;
    }

    .association-project-card__progress-value strong{
        font-size:34px;
    }

    .association-project-card__period{
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }

    .association-project-card__metrics{
        grid-template-columns:1fr;
    }

    .association-project-card__insights{
        grid-template-columns:1fr;
    }

    .association-project-card__milestones > header{
        align-items:flex-start;
        flex-direction:column;
    }

    .association-project-card__toggle{
        width:100%;
        justify-content:center;
    }

    .association-project-card__footer{
        grid-template-columns:1fr;
    }
}

/* FIN ASSOCIATION PUBLIC — PROJECTS TIMELINE PREMIUM V2 */

/* =========================================================
   ASSOCIATION PUBLIC — COLLECTIONS MÉDIAS
========================================================= */

.association-public-collections{
    position:relative;
    width:min(100% - 32px, 1280px);
    margin:42px auto;
    padding:22px;
    overflow:hidden;
    border:1px solid color-mix(
        in srgb,
        var(--structure-primary,#2563eb) 14%,
        #e2e8f0
    );
    border-radius:30px;
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.98),
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 4%,
                #ffffff
            )
        );
    box-shadow:0 24px 70px rgba(15,23,42,.08);
}

.association-public-collections__header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:22px;
    padding:26px 28px;
    border-radius:24px;
    background:
        linear-gradient(
            135deg,
            var(--structure-primary,#2563eb),
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 76%,
                #052e16
            )
        );
    color:#ffffff;
    box-shadow:
        0 18px 38px color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 20%,
            transparent
        );
}

.association-public-collections__header > div:first-child{
    min-width:0;
}

.association-public-collections__eyebrow{
    display:block;
    margin-bottom:8px;
    color:rgba(255,255,255,.82);
    font-size:10px;
    line-height:1.2;
    font-weight:950;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.association-public-collections__header h2{
    max-width:760px;
    margin:0;
    color:#ffffff;
    -webkit-text-fill-color:#ffffff;
    font-size:clamp(29px,3.2vw,48px);
    line-height:.98;
    font-weight:950;
    letter-spacing:-.055em;
}

.association-public-collections__header p{
    max-width:700px;
    margin:12px 0 0;
    color:rgba(255,255,255,.82);
    -webkit-text-fill-color:rgba(255,255,255,.82);
    font-size:14px;
    line-height:1.55;
}

.association-public-collections__summary{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    flex:0 0 auto;
}

.association-public-collections__summary strong{
    color:#ffffff;
    font-size:44px;
    line-height:.9;
    font-weight:950;
    letter-spacing:-.06em;
}

.association-public-collections__summary span{
    margin-top:7px;
    color:rgba(255,255,255,.72);
    font-size:9px;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.association-public-collections__group + 
.association-public-collections__group{
    margin-top:26px;
}

.association-public-collections__group-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:14px;
    padding:16px 18px;
    border:1px solid #e2e8f0;
    border-radius:18px;
    background:#ffffff;
}

.association-public-collections__group-heading span{
    display:block;
    margin-bottom:3px;
    color:var(--structure-primary,#2563eb);
    font-size:9px;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.association-public-collections__group-heading h3{
    margin:0;
    color:#172033;
    font-size:23px;
    line-height:1.05;
    font-weight:950;
    letter-spacing:-.035em;
}

.association-public-collections__group-heading > strong{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    height:42px;
    padding:0 12px;
    border-radius:14px;
    background:color-mix(
        in srgb,
        var(--structure-primary,#2563eb) 10%,
        #ffffff
    );
    color:var(--structure-primary,#2563eb);
    font-size:20px;
    font-weight:950;
}

/* Albums photo */

.association-public-albums-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}

.association-public-album-card{
    display:flex;
    min-width:0;
    min-height:100%;
    overflow:hidden;
    padding:0;
    border:1px solid #e2e8f0;
    border-radius:22px;
    background:#ffffff;
    color:inherit;
    appearance:none;
    cursor:pointer;
    text-align:left;
    box-shadow:0 14px 34px rgba(15,23,42,.06);
    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.association-public-album-card:hover{
    transform:translateY(-4px);
    border-color:color-mix(
        in srgb,
        var(--structure-primary,#2563eb) 30%,
        #e2e8f0
    );
    box-shadow:0 20px 46px rgba(15,23,42,.12);
}

.association-public-album-card__visual{
    position:relative;
    display:block;
    flex:0 0 43%;
    min-width:0;
    min-height:230px;
    overflow:hidden;
    background:#e2e8f0;
}

.association-public-album-card__visual img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s cubic-bezier(.2,.7,.2,1);
}

.association-public-album-card:hover
.association-public-album-card__visual img{
    transform:scale(1.05);
}

.association-public-album-card__overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            180deg,
            rgba(15,23,42,.02),
            rgba(15,23,42,.62)
        );
    pointer-events:none;
}

.association-public-album-card__placeholder{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:
        linear-gradient(
            135deg,
            var(--structure-primary,#2563eb),
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 55%,
                #0f172a
            )
        );
    color:#ffffff;
    font-size:40px;
    font-weight:950;
}

.association-public-album-card__count{
    position:absolute;
    right:12px;
    bottom:12px;
    left:12px;
    z-index:2;
    display:inline-flex;
    width:max-content;
    max-width:calc(100% - 24px);
    min-height:28px;
    align-items:center;
    padding:6px 9px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    background:rgba(15,23,42,.45);
    color:#ffffff;
    font-size:9px;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
    backdrop-filter:blur(12px);
}

.association-public-album-card__content{
    display:flex;
    flex:1 1 auto;
    min-width:0;
    flex-direction:column;
    align-items:flex-start;
    padding:20px;
}

.association-public-album-card__content > span:first-child{
    color:var(--structure-primary,#2563eb);
    font-size:9px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-public-album-card__content > strong{
    margin-top:8px;
    color:#172033;
    font-size:21px;
    line-height:1.08;
    font-weight:950;
    letter-spacing:-.035em;
}

.association-public-album-card__content > small{
    display:-webkit-box;
    overflow:hidden;
    margin-top:10px;
    color:#64748b;
    font-size:12px;
    line-height:1.55;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
}

.association-public-album-card__action{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:auto;
    padding-top:16px;
    color:var(--structure-primary,#2563eb);
    font-size:12px;
    font-weight:950;
}

.association-public-album-card__action i{
    font-style:normal;
    transition:transform .2s ease;
}

.association-public-album-card:hover
.association-public-album-card__action i{
    transform:translateX(3px);
}

/* Playlists et séries vidéo */

.association-public-video-collections{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.association-public-video-collection{
    display:flex;
    align-items:center;
    gap:18px;
    min-width:0;
    padding:22px;
    border:1px solid #e2e8f0;
    border-radius:22px;
    background:
        linear-gradient(
            145deg,
            #ffffff,
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 4%,
                #ffffff
            )
        );
    box-shadow:0 14px 34px rgba(15,23,42,.06);
}

.association-public-video-collection__icon{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 72px;
    width:72px;
    height:72px;
    border-radius:22px;
    background:
        linear-gradient(
            135deg,
            var(--structure-primary,#2563eb),
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 62%,
                #0f172a
            )
        );
    color:#ffffff;
    box-shadow:
        0 15px 28px color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 22%,
            transparent
        );
}

.association-public-video-collection__icon span{
    margin-left:3px;
    font-size:28px;
    line-height:1;
}

.association-public-video-collection__content{
    flex:1 1 auto;
    min-width:0;
}

.association-public-video-collection__content > span{
    color:var(--structure-primary,#2563eb);
    font-size:9px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-public-video-collection__content h4{
    margin:6px 0 0;
    color:#172033;
    font-size:22px;
    line-height:1.08;
    font-weight:950;
    letter-spacing:-.035em;
}

.association-public-video-collection__content p{
    margin:9px 0 0;
    color:#64748b;
    font-size:12px;
    line-height:1.55;
}

.association-public-video-collection__meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:15px;
}

.association-public-video-collection__meta strong{
    color:#475569;
    font-size:11px;
    font-weight:900;
}

.association-public-video-collection__meta a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:34px;
    padding:8px 11px;
    border-radius:11px;
    background:var(--structure-primary,#2563eb);
    color:#ffffff;
    font-size:11px;
    font-weight:950;
    text-decoration:none;
}

/* Visionneuse d’album */

.association-public-album-viewer{
    position:fixed !important;
    z-index:2147483000 !important;
    inset:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100vw !important;
    height:100dvh !important;
    padding:24px !important;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:none !important;
    transition:
        opacity .22s ease,
        visibility .22s ease;
}

.association-public-album-viewer[aria-hidden="false"]{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
}

.association-public-album-viewer__backdrop{
    position:fixed !important;
    z-index:0;
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    padding:0;
    border:0;
    background:rgba(2,6,23,.9);
    cursor:pointer;
    backdrop-filter:blur(16px);
}

.association-public-album-viewer__dialog{
    position:relative !important;
    z-index:2;
    width:min(1080px,100%);
    max-height:calc(100dvh - 48px);
    overflow:hidden;
    border:1px solid rgba(255,255,255,.14);
    border-radius:28px;
    background:#ffffff;
    box-shadow:0 40px 120px rgba(0,0,0,.5);
    transform:none !important;
}

.association-public-album-viewer__visual{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:420px;
    max-height:72dvh;
    overflow:hidden;
    background:#020617;
}

.association-public-album-viewer__visual img{
    display:block;
    width:100%;
    height:auto;
    max-height:72dvh;
    object-fit:contain;
}

.association-public-album-viewer__visual a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:12px 18px;
    border-radius:14px;
    background:var(--structure-primary,#2563eb);
    color:#ffffff;
    font-weight:900;
    text-decoration:none;
}

.association-public-album-viewer__close,
.association-public-album-viewer__navigation{
    position:absolute;
    z-index:5;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:1px solid rgba(255,255,255,.18);
    border-radius:50%;
    background:rgba(15,23,42,.62);
    color:#ffffff;
    cursor:pointer;
    backdrop-filter:blur(12px);
}

.association-public-album-viewer__close{
    top:14px;
    right:14px;
    width:44px;
    height:44px;
    font-size:29px;
    line-height:1;
}

.association-public-album-viewer__navigation{
    top:50%;
    width:48px;
    height:48px;
    font-size:34px;
    line-height:1;
    transform:translateY(-50%);
}

.association-public-album-viewer__navigation--previous{
    left:16px;
}

.association-public-album-viewer__navigation--next{
    right:16px;
    background:var(--structure-primary,#2563eb);
}

.association-public-album-viewer__content{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
    padding:20px 24px 24px;
}

.association-public-album-viewer__content > div{
    min-width:0;
}

.association-public-album-viewer__content span{
    color:var(--structure-primary,#2563eb);
    font-size:9px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-public-album-viewer__content h3{
    margin:6px 0 0;
    color:#172033;
    font-size:27px;
    line-height:1.08;
    font-weight:950;
    letter-spacing:-.035em;
}

.association-public-album-viewer__content p{
    margin:9px 0 0;
    color:#64748b;
    font-size:13px;
    line-height:1.55;
}

.association-public-album-viewer__content > strong{
    flex:0 0 auto;
    padding:8px 11px;
    border-radius:999px;
    background:#eff6ff;
    color:var(--structure-primary,#2563eb);
    font-size:11px;
    font-weight:950;
}

body.association-public-album-viewer-open{
    overflow:hidden !important;
}

/* Tablette */

@media (max-width:1050px){

    .association-public-albums-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

/* Mobile */

@media (max-width:767px){

    .association-public-collections{
        width:calc(100% - 20px);
        margin:28px auto 38px;
        padding:12px;
        border-radius:25px;
    }

    .association-public-collections__header{
        align-items:flex-start;
        margin-bottom:15px;
        padding:22px 18px;
        border-radius:20px;
    }

    .association-public-collections__header h2{
        font-size:28px;
        line-height:1.02;
    }

    .association-public-collections__header p{
        font-size:14px;
        line-height:1.55;
    }

    .association-public-collections__summary{
        display:none;
    }

    .association-public-collections__group-heading{
        padding:14px;
        border-radius:16px;
    }

    .association-public-collections__group-heading h3{
        font-size:21px;
    }

    .association-public-albums-grid{
        display:flex;
        gap:12px;
        margin-right:-12px;
        padding-right:12px;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        scrollbar-width:none;
    }

    .association-public-albums-grid::-webkit-scrollbar{
        display:none;
    }

    .association-public-album-card{
        flex:0 0 88%;
        flex-direction:column;
        border-radius:20px;
        scroll-snap-align:start;
    }

    .association-public-album-card__visual{
        flex-basis:auto;
        width:100%;
        min-height:230px;
    }

    .association-public-album-card__content{
        padding:17px;
    }

    .association-public-album-card__content > strong{
        font-size:22px;
    }

    .association-public-video-collections{
        grid-template-columns:1fr;
    }

    .association-public-video-collection{
        align-items:flex-start;
        padding:17px;
        border-radius:19px;
    }

    .association-public-video-collection__icon{
        flex-basis:58px;
        width:58px;
        height:58px;
        border-radius:18px;
    }

    .association-public-video-collection__meta{
        align-items:flex-start;
        flex-direction:column;
    }

    .association-public-album-viewer{
        align-items:center !important;
        padding:
            max(10px,env(safe-area-inset-top))
            8px
            max(10px,env(safe-area-inset-bottom)) !important;
    }

    .association-public-album-viewer__dialog{
        width:100%;
        max-height:calc(
            100dvh
            - env(safe-area-inset-top)
            - env(safe-area-inset-bottom)
            - 20px
        );
        overflow:auto;
        border-radius:23px;
    }

    .association-public-album-viewer__visual{
        min-height:280px;
        max-height:62dvh;
    }

    .association-public-album-viewer__visual img{
        max-height:62dvh;
    }

    .association-public-album-viewer__close{
        top:10px;
        right:10px;
        width:42px;
        height:42px;
    }

    .association-public-album-viewer__navigation{
        width:44px;
        height:44px;
        font-size:31px;
    }

    .association-public-album-viewer__navigation--previous{
        left:9px;
    }

    .association-public-album-viewer__navigation--next{
        right:9px;
    }

    .association-public-album-viewer__content{
        padding:18px;
    }

    .association-public-album-viewer__content h3{
        font-size:23px;
    }
}

/* FIN ASSOCIATION PUBLIC — COLLECTIONS MÉDIAS */

/* ==========================================================
   ASSOCIATION PUBLIC — LECTEUR VIDÉO INTERNE
========================================================== */

.association-public-video-collection{
    width:100%;
    margin:0;
    padding:22px;
    border:1px solid rgba(148,163,184,.22);
    border-radius:24px;
    background:#ffffff;
    color:inherit;
    font:inherit;
    text-align:left;
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
    transition:
        transform .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}

.association-public-video-collection:hover{
    transform:translateY(-3px);
    border-color:
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 34%,
            #dbe3ea
        );
    box-shadow:0 18px 38px rgba(15,23,42,.09);
}

.association-public-video-collection:focus-visible{
    outline:3px solid
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 28%,
            transparent
        );
    outline-offset:3px;
}

.association-public-video-collection:disabled{
    cursor:not-allowed;
    opacity:.72;
}

.association-public-video-collection__title{
    display:block;
    margin-top:4px;
    color:#172033;
    font-size:20px;
    line-height:1.12;
    font-weight:950;
    letter-spacing:-.025em;
}

.association-public-video-collection__description{
    display:block;
    margin-top:8px;
    color:#64748b;
    font-size:13px;
    line-height:1.55;
    font-weight:500;
}

.association-public-video-collection__action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:38px;
    padding:9px 13px;
    border-radius:12px;
    background:var(--structure-primary,#2563eb);
    color:#ffffff;
    font-size:12px;
    font-weight:900;
}

.association-public-video-collection__action i{
    font-style:normal;
}

.association-public-video-collection__unavailable{
    color:#94a3b8;
    font-size:12px;
    font-weight:800;
}

.association-public-album-viewer__video{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:360px;
    background:#020617;
}

.association-public-album-viewer__video iframe,
.association-public-album-viewer__video video{
    display:block;
    width:100%;
    height:min(68vh,680px);
    min-height:360px;
    border:0;
    background:#020617;
    object-fit:contain;
}

.association-public-album-viewer__external-link{
    position:absolute;
    z-index:3;
    right:14px;
    bottom:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:8px 12px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    background:rgba(15,23,42,.72);
    color:#ffffff;
    font-size:11px;
    font-weight:850;
    text-decoration:none;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

.association-public-album-viewer__unavailable{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:360px;
    padding:30px;
    color:#ffffff;
    font-size:16px;
    font-weight:800;
    text-align:center;
}

@media(max-width:767px){

    .association-public-video-collection{
        padding:18px;
        border-radius:20px;
    }

    .association-public-video-collection__title{
        font-size:19px;
    }

    .association-public-album-viewer__video{
        min-height:220px;
    }

    .association-public-album-viewer__video iframe,
    .association-public-album-viewer__video video{
        width:100%;
        height:auto;
        min-height:220px;
        aspect-ratio:16 / 9;
    }

    .association-public-album-viewer__external-link{
        right:10px;
        bottom:10px;
        max-width:calc(100% - 20px);
        font-size:10px;
    }
}

/* FIN ASSOCIATION PUBLIC — LECTEUR VIDÉO INTERNE */

/* ==========================================================
   COLLECTIONS MÉDIAS — LECTEUR INTÉGRÉ ET CORRECTIONS
   ========================================================== */

.association-public-video-collection{
    width:100%;
    padding:0;
    border:1px solid rgba(148,163,184,.22);
    border-radius:24px;
    background:#ffffff;
    color:inherit;
    cursor:pointer;
    appearance:none;
    text-align:left;
    overflow:hidden;
}

.association-public-video-collection__visual{
    position:relative;
    display:block;
    min-height:170px;
    overflow:hidden;
    background:
        linear-gradient(
            135deg,
            var(--structure-primary,#22c55e),
            #0f172a
        );
}

.association-public-video-collection__visual img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}

.association-public-video-collection__visual-overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            180deg,
            rgba(15,23,42,.08),
            rgba(15,23,42,.72)
        );
}

.association-public-video-collection__play{
    position:absolute;
    z-index:2;
    top:50%;
    left:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    width:62px;
    height:62px;
    border:2px solid rgba(255,255,255,.42);
    border-radius:50%;
    background:rgba(255,255,255,.92);
    color:var(--structure-primary,#22c55e);
    font-size:24px;
    transform:translate(-50%,-50%);
    box-shadow:0 18px 45px rgba(15,23,42,.3);
}

.association-public-video-collection__content{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding:20px;
}

.association-public-video-collection__content > span{
    color:var(--structure-primary,#22c55e);
    font-size:10px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-public-video-collection__content > strong{
    margin-top:7px;
    color:#172033;
    font-size:22px;
    line-height:1.05;
    font-weight:950;
    letter-spacing:-.035em;
}

.association-public-video-collection__content > small{
    margin-top:10px;
    color:#64748b;
    font-size:13px;
    line-height:1.55;
}

.association-public-video-collection__meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    width:100%;
    margin-top:18px;
}

.association-public-video-collection__meta b{
    color:#334155;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
}

.association-public-video-collection__meta i{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:38px;
    padding:9px 13px;
    border-radius:999px;
    background:var(--structure-primary,#22c55e);
    color:#ffffff;
    font-size:11px;
    font-style:normal;
    font-weight:950;
    text-transform:uppercase;
}

.association-public-album-viewer{
    position:fixed !important;
    z-index:2147483000 !important;
    inset:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100vw !important;
    height:100dvh !important;
    padding:24px !important;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:none !important;
    transition:
        opacity .2s ease,
        visibility .2s ease;
}

.association-public-album-viewer[aria-hidden="false"]{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
}

.association-public-album-viewer__backdrop{
    position:fixed !important;
    z-index:0;
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    padding:0;
    border:0;
    background:rgba(2,6,23,.9);
    cursor:pointer;
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
}

.association-public-album-viewer__dialog{
    position:relative !important;
    z-index:2;
    width:min(1120px,100%);
    max-height:calc(100dvh - 48px);
    overflow:auto;
    border:1px solid rgba(255,255,255,.16);
    border-radius:28px;
    background:#ffffff;
    box-shadow:0 40px 120px rgba(0,0,0,.55);
    transform:none !important;
}

.association-public-album-viewer__visual{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:420px;
    overflow:hidden;
    background:#020617;
}

.association-public-album-viewer__visual > img{
    display:block;
    width:100%;
    max-height:72dvh;
    object-fit:contain;
}

.association-public-album-viewer__visual .plyr{
    width:100%;
    min-height:420px;
}

.association-public-album-viewer__visual .plyr__video-wrapper{
    min-height:420px;
}

.association-public-album-viewer__visual iframe,
.association-public-album-viewer__visual video{
    width:100%;
    min-height:420px;
}

.association-public-embedded-player{
    width:100%;
    aspect-ratio:16 / 9;
}

.association-public-collection-video-fallback{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:16px;
    width:100%;
    min-height:420px;
    padding:32px;
    color:#ffffff;
    text-align:center;
}

.association-public-collection-video-fallback p{
    margin:0;
    color:rgba(255,255,255,.8);
    font-size:16px;
    font-weight:800;
}

.association-public-collection-video-fallback a,
[data-collection-original]{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:10px 14px;
    border-radius:999px;
    background:var(--structure-primary,#22c55e);
    color:#ffffff;
    font-size:11px;
    font-weight:900;
    text-decoration:none;
}

.association-public-album-viewer__content-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex-wrap:wrap;
}

body.association-public-album-viewer-open{
    overflow:hidden !important;
    touch-action:none;
}

@media(max-width:767px){

    .association-public-video-collection__visual{
        min-height:190px;
    }

    .association-public-video-collection__content{
        padding:18px;
    }

    .association-public-video-collection__content > strong{
        font-size:21px;
    }

    .association-public-video-collection__meta{
        align-items:flex-start;
        flex-direction:column;
    }

    .association-public-video-collection__meta i{
        width:100%;
        justify-content:center;
    }

    .association-public-album-viewer{
        align-items:center !important;
        padding:8px !important;
    }

    .association-public-album-viewer__dialog{
        width:100%;
        max-height:calc(100dvh - 16px);
        border-radius:22px;
    }

    .association-public-album-viewer__visual,
    .association-public-album-viewer__visual .plyr,
    .association-public-album-viewer__visual .plyr__video-wrapper,
    .association-public-album-viewer__visual iframe,
    .association-public-album-viewer__visual video{
        min-height:240px;
    }

    .association-public-album-viewer__visual > img{
        max-height:62dvh;
    }

    .association-public-collection-video-fallback{
        min-height:240px;
        padding:24px;
    }

    .association-public-album-viewer__content{
        align-items:flex-start;
        flex-direction:column;
    }

    .association-public-album-viewer__content-actions{
        width:100%;
        justify-content:space-between;
    }

    [data-collection-original]{
        max-width:75%;
        text-align:center;
    }
}

/* FIN COLLECTIONS MÉDIAS — LECTEUR INTÉGRÉ */

/* ==========================================================
   CORRECTION FINALE — TAILLE DU LECTEUR VIDÉO
   ========================================================== */

.association-public-album-viewer__visual{
    aspect-ratio:16 / 9;
    min-height:0 !important;
}

.association-public-album-viewer__visual .plyr{
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    aspect-ratio:16 / 9;
}

.association-public-album-viewer__visual .plyr__video-wrapper{
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    aspect-ratio:16 / 9 !important;
    padding-bottom:0 !important;
}

.association-public-album-viewer__visual .plyr iframe,
.association-public-album-viewer__visual .plyr video{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
}

.association-public-embedded-player{
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    aspect-ratio:16 / 9;
}

@media(max-width:767px){

    .association-public-album-viewer{
        padding:8px !important;
    }

    .association-public-album-viewer__dialog{
        width:calc(100vw - 16px) !important;
        max-height:calc(100dvh - 16px) !important;
    }

    .association-public-album-viewer__visual{
        width:100%;
        min-height:0 !important;
        aspect-ratio:16 / 9;
    }

    .association-public-album-viewer__content{
        padding:16px !important;
    }

    .association-public-album-viewer__content-actions{
        display:flex;
        align-items:flex-start;
        flex-direction:column;
        gap:10px;
    }

    [data-collection-original]{
        max-width:100%;
        font-size:11px;
    }
}

/* FIN CORRECTION FINALE — TAILLE DU LECTEUR VIDÉO */

/* ==========================================================
   CORRECTION — FONDS DES MODALES ALBUMS ET VIDÉOS
   Empêche les styles généraux des boutons de créer un ovale
   ========================================================== */

.association-public-album-viewer,
.association-public-media-lightbox{
    position:fixed !important;
    z-index:999999 !important;
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    margin:0 !important;
    padding:24px !important;
    border-radius:0 !important;
    transform:none !important;
    overflow:hidden !important;
    isolation:isolate;
}

.association-public-album-viewer__backdrop,
.association-public-media-lightbox__backdrop{
    position:absolute !important;
    z-index:0 !important;
    inset:0 !important;

    display:block !important;
    width:100% !important;
    min-width:100% !important;
    max-width:none !important;

    height:100% !important;
    min-height:100% !important;
    max-height:none !important;

    margin:0 !important;
    padding:0 !important;

    border:0 !important;
    border-radius:0 !important;
    outline:0 !important;

    background:rgba(2,6,23,.88) !important;
    box-shadow:none !important;

    appearance:none !important;
    -webkit-appearance:none !important;

    transform:none !important;
    clip-path:none !important;
    opacity:1 !important;

    cursor:pointer;
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.association-public-album-viewer__backdrop::before,
.association-public-album-viewer__backdrop::after,
.association-public-media-lightbox__backdrop::before,
.association-public-media-lightbox__backdrop::after{
    display:none !important;
    content:none !important;
}

.association-public-album-viewer__dialog,
.association-public-media-lightbox__dialog{
    position:relative !important;
    z-index:2 !important;
    transform:none !important;
}

@media(max-width:767px){

    .association-public-album-viewer,
    .association-public-media-lightbox{
        align-items:center !important;
        justify-content:center !important;
        width:100vw !important;
        height:100dvh !important;
        padding:8px !important;
    }

    .association-public-album-viewer__backdrop,
    .association-public-media-lightbox__backdrop{
        width:100vw !important;
        height:100dvh !important;
        border-radius:0 !important;
    }
}

/* FIN CORRECTION — FONDS DES MODALES */

/* ==========================================================
   PARTENAIRES & FINANCEURS — V2 PREMIUM
   ========================================================== */

.association-public-partners{
    position:relative;
    margin-top:32px;
    padding:32px;
    border:1px solid rgba(148,163,184,.18);
    border-radius:32px;
    background:
        radial-gradient(
            circle at 92% 8%,
            color-mix(
                in srgb,
                var(--structure-primary,#22c55e) 13%,
                transparent
            ),
            transparent 26%
        ),
        linear-gradient(145deg,#ffffff,#f8fafc);
    box-shadow:0 24px 70px rgba(15,23,42,.07);
    overflow:hidden;
}

.association-public-partners::before{
    position:absolute;
    top:-100px;
    right:-80px;
    width:270px;
    height:270px;
    border-radius:50%;
    background:
        color-mix(
            in srgb,
            var(--structure-primary,#22c55e) 8%,
            transparent
        );
    content:"";
    pointer-events:none;
}

.association-public-partners__header{
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:32px;
}

.association-public-partners__heading{
    max-width:760px;
}

.association-public-partners__eyebrow{
    display:block;
    margin-bottom:10px;
    color:var(--structure-primary,#22c55e);
    font-size:11px;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.association-public-partners__heading h2{
    margin:0;
    color:#0f172a;
    font-size:clamp(38px,4.4vw,64px);
    font-weight:950;
    line-height:.94;
    letter-spacing:-.055em;
}

.association-public-partners__heading p{
    max-width:670px;
    margin:16px 0 0;
    color:#64748b;
    font-size:15px;
    font-weight:550;
    line-height:1.65;
}

.association-public-partners__count{
    display:flex;
    flex:0 0 auto;
    align-items:flex-end;
    gap:9px;
    padding:18px 20px;
    border:1px solid rgba(148,163,184,.2);
    border-radius:22px;
    background:rgba(255,255,255,.76);
    box-shadow:0 14px 36px rgba(15,23,42,.06);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
}

.association-public-partners__count strong{
    color:var(--structure-primary,#22c55e);
    font-size:46px;
    font-weight:950;
    line-height:.82;
    letter-spacing:-.06em;
}

.association-public-partners__count span{
    padding-bottom:3px;
    color:#64748b;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-public-partners__types{
    position:relative;
    z-index:1;
    display:flex;
    gap:8px;
    margin-top:22px;
    overflow-x:auto;
    scrollbar-width:none;
}

.association-public-partners__types::-webkit-scrollbar{
    display:none;
}

.association-public-partners__types span{
    flex:0 0 auto;
    padding:8px 12px;
    border:1px solid
        color-mix(
            in srgb,
            var(--structure-primary,#22c55e) 18%,
            #e2e8f0
        );
    border-radius:999px;
    background:
        color-mix(
            in srgb,
            var(--structure-primary,#22c55e) 7%,
            #ffffff
        );
    color:#334155;
    font-size:10px;
    font-weight:900;
    letter-spacing:.045em;
    text-transform:uppercase;
}

.association-public-partners__layout{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    gap:18px;
    margin-top:26px;
}

.association-public-partner-featured{
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:430px;
    padding:28px;
    border-radius:28px;
    background:
        linear-gradient(
            140deg,
            color-mix(
                in srgb,
                var(--structure-primary,#22c55e) 94%,
                #0f172a
            ),
            #0f172a
        );
    color:#ffffff;
    box-shadow:0 25px 60px
        color-mix(
            in srgb,
            var(--structure-primary,#22c55e) 24%,
            transparent
        );
    overflow:hidden;
}

.association-public-partner-featured::after{
    position:absolute;
    right:-90px;
    bottom:-130px;
    width:320px;
    height:320px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:50%;
    box-shadow:
        0 0 0 40px rgba(255,255,255,.04),
        0 0 0 85px rgba(255,255,255,.025);
    content:"";
}

.association-public-partner-featured__identity{
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-start;
    gap:22px;
}

.association-public-partner-featured__logo{
    display:flex;
    flex:0 0 108px;
    align-items:center;
    justify-content:center;
    width:108px;
    height:108px;
    padding:14px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:26px;
    background:#ffffff;
    box-shadow:0 18px 45px rgba(2,6,23,.25);
    overflow:hidden;
}

.association-public-partner-featured__logo img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
}

.association-public-partner-featured__logo span{
    color:var(--structure-primary,#22c55e);
    font-size:30px;
    font-weight:950;
    letter-spacing:-.05em;
}

.association-public-partner-featured__content{
    min-width:0;
}

.association-public-partner-featured__badges{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.association-public-partner-featured__badges span,
.association-public-partner-featured__badges strong{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:6px 10px;
    border-radius:999px;
    font-size:9px;
    font-weight:950;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.association-public-partner-featured__badges span{
    background:rgba(255,255,255,.14);
    color:rgba(255,255,255,.92);
}

.association-public-partner-featured__badges strong{
    background:#ffffff;
    color:#0f172a;
}

.association-public-partner-featured__content h3{
    margin:18px 0 0;
    color:#ffffff;
    font-size:clamp(28px,3.2vw,46px);
    font-weight:950;
    line-height:.96;
    letter-spacing:-.045em;
}

.association-public-partner-featured__content p{
    max-width:590px;
    margin:15px 0 0;
    color:rgba(255,255,255,.76);
    font-size:14px;
    font-weight:550;
    line-height:1.65;
}

.association-public-partner-featured__content > a{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-top:20px;
    padding:11px 14px;
    border-radius:999px;
    background:#ffffff;
    color:#0f172a;
    font-size:11px;
    font-weight:950;
    text-decoration:none;
    transition:
        transform .22s ease,
        box-shadow .22s ease;
}

.association-public-partner-featured__content > a:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 30px rgba(2,6,23,.22);
}

.association-public-partner-featured__impact{
    position:relative;
    z-index:1;
    display:grid;
    gap:6px;
    margin-top:36px;
    padding:18px;
    border:1px solid rgba(255,255,255,.15);
    border-radius:20px;
    background:rgba(255,255,255,.1);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

.association-public-partner-featured__impact span{
    color:rgba(255,255,255,.65);
    font-size:9px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-partner-featured__impact strong{
    color:#ffffff;
    font-size:18px;
    font-weight:950;
    line-height:1.15;
}

.association-public-partner-featured__impact small{
    color:rgba(255,255,255,.7);
    font-size:11px;
    font-weight:550;
    line-height:1.55;
}

.association-public-partners__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.association-public-partner-card{
    position:relative;
    display:flex;
    flex-direction:column;
    min-height:205px;
    padding:18px;
    border:1px solid rgba(148,163,184,.2);
    border-radius:22px;
    background:rgba(255,255,255,.9);
    box-shadow:0 14px 35px rgba(15,23,42,.05);
    transition:
        transform .24s ease,
        border-color .24s ease,
        box-shadow .24s ease;
}

.association-public-partner-card:hover{
    transform:translateY(-4px);
    border-color:
        color-mix(
            in srgb,
            var(--structure-primary,#22c55e) 34%,
            #e2e8f0
        );
    box-shadow:0 22px 45px rgba(15,23,42,.1);
}

.association-public-partner-card__top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}

.association-public-partner-card__logo{
    display:flex;
    align-items:center;
    justify-content:center;
    width:62px;
    height:62px;
    padding:9px;
    border:1px solid rgba(148,163,184,.18);
    border-radius:17px;
    background:#ffffff;
    overflow:hidden;
}

.association-public-partner-card__logo img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
}

.association-public-partner-card__logo span{
    color:var(--structure-primary,#22c55e);
    font-size:18px;
    font-weight:950;
}

.association-public-partner-card__featured{
    display:flex;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    border-radius:50%;
    background:
        color-mix(
            in srgb,
            var(--structure-primary,#22c55e) 11%,
            #ffffff
        );
    color:var(--structure-primary,#22c55e);
    font-size:12px;
}

.association-public-partner-card__content{
    margin-top:16px;
}

.association-public-partner-card__content > span{
    color:var(--structure-primary,#22c55e);
    font-size:8px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-partner-card__content h3{
    margin:6px 0 0;
    color:#172033;
    font-size:17px;
    font-weight:950;
    line-height:1.1;
    letter-spacing:-.025em;
}

.association-public-partner-card__content p{
    margin:9px 0 0;
    color:#64748b;
    font-size:11px;
    font-weight:550;
    line-height:1.5;
}

.association-public-partner-card > a,
.association-public-partner-card__status{
    display:inline-flex;
    align-items:center;
    gap:7px;
    align-self:flex-start;
    margin-top:auto;
    padding-top:14px;
    color:var(--structure-primary,#22c55e);
    font-size:10px;
    font-weight:950;
    text-decoration:none;
}

.association-public-partner-card__status{
    color:#94a3b8;
}

.association-public-partners__footer{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    margin-top:18px;
    padding:22px 24px;
    border:1px solid
        color-mix(
            in srgb,
            var(--structure-primary,#22c55e) 18%,
            #e2e8f0
        );
    border-radius:24px;
    background:
        color-mix(
            in srgb,
            var(--structure-primary,#22c55e) 6%,
            #ffffff
        );
}

.association-public-partners__footer > div{
    min-width:0;
}

.association-public-partners__footer > div > span{
    color:var(--structure-primary,#22c55e);
    font-size:9px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-partners__footer strong{
    display:block;
    margin-top:5px;
    color:#172033;
    font-size:20px;
    font-weight:950;
    line-height:1.1;
}

.association-public-partners__footer p{
    margin:6px 0 0;
    color:#64748b;
    font-size:12px;
    line-height:1.5;
}

.association-public-partners__footer > a{
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:44px;
    padding:11px 16px;
    border-radius:999px;
    background:var(--structure-primary,#22c55e);
    color:#ffffff;
    font-size:11px;
    font-weight:950;
    text-decoration:none;
    box-shadow:
        0 14px 30px
        color-mix(
            in srgb,
            var(--structure-primary,#22c55e) 25%,
            transparent
        );
}

@media(max-width:1050px){
    .association-public-partners__layout{
        grid-template-columns:1fr;
    }

    .association-public-partner-featured{
        min-height:360px;
    }

    .association-public-partners__grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:767px){
    .association-public-partners{
        margin-top:24px;
        padding:20px 14px;
        border-radius:24px;
    }

    .association-public-partners__header{
        align-items:flex-start;
        flex-direction:column;
        gap:18px;
    }

    .association-public-partners__heading h2{
        font-size:36px;
        line-height:.98;
    }

    .association-public-partners__heading p{
        margin-top:12px;
        font-size:13px;
    }

    .association-public-partners__count{
        align-self:stretch;
        justify-content:space-between;
        padding:15px 17px;
        border-radius:18px;
    }

    .association-public-partners__count strong{
        font-size:39px;
    }

    .association-public-partners__types{
        margin-top:16px;
    }

    .association-public-partners__layout{
        margin-top:18px;
    }

    .association-public-partner-featured{
        min-height:0;
        padding:20px;
        border-radius:23px;
    }

    .association-public-partner-featured__identity{
        align-items:flex-start;
        flex-direction:column;
        gap:18px;
    }

    .association-public-partner-featured__logo{
        flex-basis:84px;
        width:84px;
        height:84px;
        border-radius:21px;
    }

    .association-public-partner-featured__content h3{
        margin-top:14px;
        font-size:31px;
    }

    .association-public-partner-featured__content p{
        font-size:13px;
    }

    .association-public-partner-featured__impact{
        margin-top:26px;
        padding:16px;
    }

    .association-public-partners__grid{
        display:flex;
        gap:12px;
        margin-right:-14px;
        padding-right:14px;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        scrollbar-width:none;
    }

    .association-public-partners__grid::-webkit-scrollbar{
        display:none;
    }

    .association-public-partner-card{
        flex:0 0 78vw;
        max-width:310px;
        min-height:215px;
        scroll-snap-align:start;
    }

    .association-public-partners__footer{
        align-items:flex-start;
        flex-direction:column;
        padding:19px;
        border-radius:21px;
    }

    .association-public-partners__footer > a{
        width:100%;
    }
}

@media(prefers-reduced-motion:reduce){
    .association-public-partner-card,
    .association-public-partner-featured__content > a{
        transition:none !important;
    }
}

/* FIN PARTENAIRES & FINANCEURS — V2 PREMIUM */

/* CORRECTION TITRE PARTENAIRES — DESKTOP + MOBILE */

.association-public-v2
.association-public-partners
.association-public-partners__heading h2{
    max-width:720px !important;
    margin:10px 0 0 !important;
    font-size:clamp(34px,3.2vw,52px) !important;
    line-height:.98 !important;
    letter-spacing:-.045em !important;
    font-weight:950 !important;
}

@media(max-width:767px){
    .association-public-v2
    .association-public-partners
    .association-public-partners__heading h2{
        max-width:100% !important;
        font-size:32px !important;
        line-height:1 !important;
        letter-spacing:-.035em !important;
    }
}

/* CORRECTION BANDEAU PARTENAIRES — DESKTOP + MOBILE */

.association-public-v2
.association-public-partners__header{
    min-height:auto !important;
    padding:24px 28px !important;
    border-radius:26px !important;
    background:
        linear-gradient(
            135deg,
            color-mix(
                in srgb,
                var(--structure-primary,#22c55e) 92%,
                #0f172a
            ),
            #0f172a
        ) !important;
    align-items:center !important;
}

.association-public-v2
.association-public-partners__heading h2{
    max-width:620px !important;
    margin:8px 0 0 !important;
    color:#ffffff !important;
    font-size:clamp(32px,3vw,46px) !important;
    line-height:.98 !important;
    letter-spacing:-.04em !important;
}

.association-public-v2
.association-public-partners__heading p{
    max-width:650px !important;
    margin-top:10px !important;
    color:rgba(255,255,255,.72) !important;
    font-size:13px !important;
    line-height:1.5 !important;
}

.association-public-v2
.association-public-partners__eyebrow{
    margin-bottom:0 !important;
    color:rgba(255,255,255,.72) !important;
    font-size:9px !important;
}

.association-public-v2
.association-public-partners__count{
    min-width:112px !important;
    padding:14px 16px !important;
    border-color:rgba(255,255,255,.18) !important;
    background:rgba(255,255,255,.94) !important;
}

.association-public-v2
.association-public-partners__count strong{
    font-size:38px !important;
}

@media(max-width:767px){

    .association-public-v2
    .association-public-partners__header{
        padding:20px !important;
        border-radius:22px !important;
        gap:16px !important;
    }

    .association-public-v2
    .association-public-partners__heading h2{
        font-size:30px !important;
        line-height:1 !important;
    }

    .association-public-v2
    .association-public-partners__heading p{
        font-size:12px !important;
    }

    .association-public-v2
    .association-public-partners__count{
        width:100% !important;
        min-width:0 !important;
    }
}

/* CORRECTION DÉFINITIVE — PARTENAIRE UNIQUE PLEINE LARGEUR */

.association-public-v2
.association-public-partners__layout
⁠.association-public-partner-featured:only-child{
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:none !important;
    min-height:340px !important;
}

@media(min-width:768px){
    .association-public-v2
    .association-public-partners__layout
    > .association-public-partner-featured:only-child{
        display:grid !important;
        grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr) !important;
        align-items:center !important;
        gap:36px !important;
    }

    .association-public-v2
    .association-public-partners__layout
    > .association-public-partner-featured:only-child
    .association-public-partner-featured__impact{
        width:100% !important;
        max-width:none !important;
        margin-top:0 !important;
    }
}

@media(max-width:767px){
    .association-public-v2
    .association-public-partners__layout
    > .association-public-partner-featured:only-child{
        display:flex !important;
        flex-direction:column !important;
        width:100% !important;
        min-height:0 !important;
    }

    .association-public-v2
    .association-public-partners__layout
    > .association-public-partner-featured:only-child
    .association-public-partner-featured__impact{
        width:100% !important;
        margin-top:24px !important;
    }
}

/* PARTENAIRE UNIQUE — PLEINE LARGEUR RÉELLE */

.association-public-v2
.association-public-partners
.association-public-partners__layout--single{
    display:block !important;
    width:100% !important;
    max-width:none !important;
}

.association-public-v2
.association-public-partners
.association-public-partners__layout--single
.association-public-partner-featured{
    display:grid !important;
    grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr) !important;
    align-items:center !important;
    gap:38px !important;
    width:100% !important;
    max-width:none !important;
    min-height:340px !important;
    box-sizing:border-box !important;
}

.association-public-v2
.association-public-partners
.association-public-partners__layout--single
.association-public-partner-featured__identity{
    width:100% !important;
    max-width:none !important;
}

.association-public-v2
.association-public-partners
.association-public-partners__layout--single
.association-public-partner-featured__impact{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
}

@media(max-width:767px){
    .association-public-v2
    .association-public-partners
    .association-public-partners__layout--single
    .association-public-partner-featured{
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        gap:0 !important;
        min-height:0 !important;
    }

    .association-public-v2
    .association-public-partners
    .association-public-partners__layout--single
    .association-public-partner-featured__impact{
        margin-top:24px !important;
    }
}

/* =========================================================
   TERRITOIRE & LOCALISATION — PAGE PUBLIQUE ASSOCIATION
========================================================= */

.association-public-territory-map{
    border:
        1px solid
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 14%,
            #e2e8f0
        );
    background:
        radial-gradient(
            circle at 96% 2%,
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 12%,
                transparent
            ),
            transparent 31%
        ),
        #ffffff;
    border-radius:30px;
    width:100%;
    margin:42px 0 56px;
    padding:30px;
    position:relative;
    overflow:hidden;
    scroll-margin-top:150px;
    box-shadow:0 24px 65px rgba(15,23,42,.08);
}

.association-public-territory-map__header{
    background:
        linear-gradient(
            135deg,
            color-mix(
                in srgb,
                var(--structure-secondary,#111827) 92%,
                var(--structure-primary,#2563eb)
            ),
            var(--structure-primary,#2563eb)
        );
    border-radius:23px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:28px;
    margin-bottom:18px;
    padding:26px 28px;
    position:relative;
    overflow:hidden;
}

.association-public-territory-map__header:after{
    content:"";
    width:230px;
    height:230px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:50%;
    position:absolute;
    top:-130px;
    right:-80px;
    box-shadow:
        0 0 0 34px rgba(255,255,255,.04),
        0 0 0 70px rgba(255,255,255,.025);
}

.association-public-territory-map__header > div{
    position:relative;
    z-index:1;
}

.association-public-territory-map__eyebrow{
    color:rgba(255,255,255,.7);
    letter-spacing:.13em;
    text-transform:uppercase;
    margin-bottom:8px;
    font-size:10px;
    font-weight:950;
    display:block;
}

.association-public-territory-map__header h2{
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    letter-spacing:-.045em;
    max-width:760px;
    margin:0;
    font-size:clamp(30px,3.1vw,46px);
    font-weight:950;
    line-height:1;
}

.association-public-territory-map__header p{
    color:rgba(255,255,255,.76) !important;
    max-width:690px;
    margin:12px 0 0;
    font-size:14px;
    line-height:1.55;
}

.association-public-territory-map__location{
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.19);
    border-radius:18px;
    flex:0 0 245px;
    padding:16px 18px;
}

.association-public-territory-map__location span{
    color:rgba(255,255,255,.66);
    letter-spacing:.1em;
    text-transform:uppercase;
    font-size:9px;
    font-weight:950;
    display:block;
}

.association-public-territory-map__location strong{
    color:#ffffff;
    margin-top:7px;
    font-size:21px;
    font-weight:950;
    line-height:1.1;
    display:block;
}

.association-public-territory-map__location small{
    color:rgba(255,255,255,.7);
    margin-top:5px;
    font-size:10px;
    line-height:1.4;
    display:block;
}

.association-public-territory-map__layout{
    grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
    gap:18px;
    display:grid;
}

.association-public-territory-map__informations{
    background:
        linear-gradient(
            145deg,
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 5%,
                #ffffff
            ),
            #ffffff
        );
    border:1px solid rgba(148,163,184,.24);
    border-radius:24px;
    display:flex;
    flex-direction:column;
    min-width:0;
    padding:24px;
}

.association-public-territory-map__identity{
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    align-items:start;
    gap:15px;
}

.association-public-territory-map__icon{
    background:
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 10%,
            #ffffff
        );
    width:54px;
    height:54px;
    color:var(--structure-primary,#2563eb);
    border-radius:17px;
    display:grid;
    place-items:center;
}

.association-public-territory-map__icon svg,
.association-public-territory-map__placeholder-icon svg{
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
    width:25px;
    height:25px;
}

.association-public-territory-map__identity small,
.association-public-territory-map__detail > span{
    color:var(--structure-primary,#2563eb);
    letter-spacing:.1em;
    text-transform:uppercase;
    font-size:9px;
    font-weight:950;
    display:block;
}

.association-public-territory-map__identity strong{
    color:#172033;
    letter-spacing:-.025em;
    margin-top:6px;
    font-size:22px;
    font-weight:950;
    line-height:1.15;
    display:block;
}

.association-public-territory-map__identity p{
    color:#64748b;
    margin:9px 0 0;
    font-size:12px;
    line-height:1.55;
}

.association-public-territory-map__detail{
    border-top:1px solid rgba(148,163,184,.22);
    margin-top:19px;
    padding-top:18px;
}

.association-public-territory-map__detail strong{
    color:#172033;
    margin-top:6px;
    font-size:15px;
    font-weight:950;
    line-height:1.4;
    display:block;
}

.association-public-territory-map__detail small{
    color:#64748b;
    margin-top:4px;
    font-size:11px;
    display:block;
}

.association-public-territory-map__detail a{
    color:var(--structure-primary,#2563eb);
    align-items:center;
    gap:7px;
    margin-top:11px;
    font-size:11px;
    font-weight:950;
    text-decoration:none;
    display:inline-flex;
}

.association-public-territory-map__actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:9px;
    margin-top:auto;
    padding-top:22px;
}

.association-public-territory-map__primary-action,
.association-public-territory-map__secondary-action{
    border-radius:13px;
    justify-content:center;
    align-items:center;
    gap:8px;
    min-height:43px;
    padding:10px 14px;
    font-size:11px;
    font-weight:950;
    text-decoration:none;
    display:inline-flex;
}

.association-public-territory-map__primary-action{
    background:var(--structure-primary,#2563eb);
    color:#ffffff;
    box-shadow:
        0 12px 26px
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 24%,
            transparent
        );
}

.association-public-territory-map__secondary-action{
    color:#334155;
    background:#ffffff;
    border:1px solid #e2e8f0;
}

.association-public-territory-map__visual{
    background:#e2e8f0;
    border-radius:24px;
    min-width:0;
    min-height:410px;
    position:relative;
    overflow:hidden;
}

.association-public-territory-map__leaflet{
    width:100%;
    height:100%;
    min-height:410px;
    z-index:1;
}

.association-public-territory-map__map-badge{
    z-index:500;
    color:#172033;
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    background:rgba(255,255,255,.91);
    border:1px solid rgba(255,255,255,.75);
    border-radius:999px;
    display:flex;
    align-items:center;
    gap:7px;
    min-height:34px;
    padding:7px 11px;
    font-size:10px;
    font-weight:950;
    position:absolute;
    top:14px;
    right:14px;
    box-shadow:0 10px 25px rgba(15,23,42,.16);
}

.association-public-territory-map__map-badge span{
    background:#22c55e;
    width:8px;
    height:8px;
    border-radius:50%;
    box-shadow:0 0 0 4px rgba(34,197,94,.14);
}

.association-public-territory-map__placeholder{
    background:
        radial-gradient(
            circle at 84% 16%,
            color-mix(
                in srgb,
                var(--structure-accent,#22c55e) 28%,
                transparent
            ),
            transparent 34%
        ),
        linear-gradient(
            145deg,
            var(--structure-secondary,#111827),
            var(--structure-primary,#2563eb)
        );
    color:#ffffff;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    width:100%;
    height:100%;
    min-height:410px;
    text-align:center;
    padding:34px;
}

.association-public-territory-map__placeholder-icon{
    color:#ffffff;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.22);
    border-radius:20px;
    width:68px;
    height:68px;
    display:grid;
    place-items:center;
}

.association-public-territory-map__placeholder strong{
    color:#ffffff;
    margin-top:17px;
    font-size:24px;
    font-weight:950;
}

.association-public-territory-map__placeholder p{
    color:rgba(255,255,255,.72);
    max-width:390px;
    margin:9px 0 0;
    font-size:13px;
    line-height:1.55;
}

.association-public-map-popup{
    display:flex;
    flex-direction:column;
    min-width:150px;
}

.association-public-map-popup strong{
    color:#0f172a;
    font-size:12px;
    font-weight:950;
}

.association-public-map-popup span{
    color:#64748b;
    margin-top:4px;
    font-size:10px;
    line-height:1.4;
}

.association-public-territory-map .leaflet-control-zoom a{
    color:#172033 !important;
    background:#ffffff !important;
    border:0 !important;
    box-shadow:none !important;
}

.association-public-territory-map .leaflet-control-attribution{
    color:#64748b;
    background:rgba(255,255,255,.85);
    font-size:8px;
}

@media(max-width:950px){
    .association-public-territory-map__header{
        align-items:flex-start;
    }

    .association-public-territory-map__layout{
        grid-template-columns:1fr;
    }

    .association-public-territory-map__visual,
    .association-public-territory-map__leaflet{
        min-height:360px;
    }
}

@media(max-width:767px){
    .association-public-territory-map{
        border-radius:24px;
        margin:28px 0 40px;
        padding:14px;
    }

    .association-public-territory-map__header{
        border-radius:20px;
        flex-direction:column;
        gap:18px;
        padding:21px 18px;
    }

    .association-public-territory-map__header h2{
        font-size:28px;
        line-height:1.03;
    }

    .association-public-territory-map__header p{
        font-size:13px;
    }

    .association-public-territory-map__location{
        width:100%;
        flex-basis:auto;
    }

    .association-public-territory-map__layout{
        gap:12px;
    }

    .association-public-territory-map__informations{
        border-radius:20px;
        padding:19px 16px;
    }

    .association-public-territory-map__identity{
        grid-template-columns:46px minmax(0,1fr);
        gap:12px;
    }

    .association-public-territory-map__icon{
        border-radius:14px;
        width:46px;
        height:46px;
    }

    .association-public-territory-map__identity strong{
        font-size:19px;
    }

    .association-public-territory-map__actions{
        flex-direction:column;
        align-items:stretch;
    }

    .association-public-territory-map__primary-action,
    .association-public-territory-map__secondary-action{
        width:100%;
    }

    .association-public-territory-map__visual,
    .association-public-territory-map__leaflet,
    .association-public-territory-map__placeholder{
        border-radius:20px;
        min-height:315px;
    }

    .association-public-territory-map__map-badge{
        top:10px;
        right:10px;
        font-size:9px;
    }
}

/* FIN TERRITOIRE & LOCALISATION */

/* =========================================================
   TERRITOIRE PUBLIC — OPTIMISATION MOBILE
   Carte visible immédiatement après le bandeau
   ========================================================= */

@media (max-width: 767px) {

    .association-public-territory-map {
        border-radius: 24px !important;
        margin-top: 28px !important;
        padding: 12px !important;
        overflow: hidden !important;
    }

    .association-public-territory-map__header {
        border-radius: 20px !important;
        padding: 21px 18px !important;
        margin-bottom: 12px !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 17px !important;
    }

    .association-public-territory-map__header h2 {
        margin-top: 7px !important;
        font-size: 29px !important;
        line-height: 1.02 !important;
        letter-spacing: -1.1px !important;
    }

    .association-public-territory-map__header p {
        margin-top: 11px !important;
        font-size: 13px !important;
        line-height: 1.55 !important;
    }

    .association-public-territory-map__location {
        width: 100% !important;
        min-width: 0 !important;
        border-radius: 17px !important;
        padding: 15px !important;
    }

    .association-public-territory-map__location strong {
        overflow-wrap: anywhere !important;
        font-size: 21px !important;
        line-height: 1.05 !important;
    }

    /*
     * Sur téléphone :
     * 1. carte
     * 2. informations
     */
    .association-public-territory-map__layout {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
    }

    .association-public-territory-map__visual {
        order: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        border-radius: 19px !important;
        overflow: hidden !important;
    }

    .association-public-territory-map__informations {
        order: 2 !important;
        width: 100% !important;
        min-width: 0 !important;
        border-radius: 19px !important;
        padding: 18px 16px !important;
    }

    .association-public-territory-map__leaflet {
        width: 100% !important;
        height: 310px !important;
        min-height: 310px !important;
        border-radius: 19px !important;
    }

    .association-public-territory-map__placeholder {
        min-height: 270px !important;
        border-radius: 19px !important;
        padding: 24px 18px !important;
    }

    .association-public-territory-map__map-badge {
        top: 11px !important;
        right: 11px !important;
        max-width: calc(100% - 22px) !important;
        padding: 7px 10px !important;
        font-size: 9px !important;
    }

    .association-public-territory-map__identity {
        grid-template-columns: 38px minmax(0, 1fr) !important;
        gap: 11px !important;
        padding-bottom: 17px !important;
    }

    .association-public-territory-map__icon {
        width: 38px !important;
        height: 38px !important;
        border-radius: 12px !important;
    }

    .association-public-territory-map__identity strong {
        overflow-wrap: anywhere !important;
        font-size: 18px !important;
        line-height: 1.17 !important;
    }

    .association-public-territory-map__identity p {
        margin-top: 8px !important;
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    .association-public-territory-map__detail {
        padding: 15px 0 !important;
    }

    .association-public-territory-map__detail strong {
        overflow-wrap: anywhere !important;
        font-size: 14px !important;
        line-height: 1.4 !important;
    }

    .association-public-territory-map__actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 9px !important;
        margin-top: 15px !important;
    }

    .association-public-territory-map__primary-action,
    .association-public-territory-map__secondary-action {
        justify-content: center !important;
        width: 100% !important;
        min-height: 46px !important;
        margin: 0 !important;
        padding: 11px 14px !important;
        text-align: center !important;
        font-size: 11px !important;
    }

    .association-public-territory-map .leaflet-control-attribution {
        max-width: 190px !important;
        font-size: 7px !important;
        line-height: 1.2 !important;
    }
}

@media (max-width: 390px) {

    .association-public-territory-map {
        padding: 9px !important;
    }

    .association-public-territory-map__header {
        padding: 19px 15px !important;
    }

    .association-public-territory-map__header h2 {
        font-size: 27px !important;
    }

    .association-public-territory-map__leaflet {
        height: 285px !important;
        min-height: 285px !important;
    }

    .association-public-territory-map__informations {
        padding: 16px 14px !important;
    }
}


/* =====================================================
   CARTE TERRITORIALE PUBLIQUE — POINTS ASSOCIATIFS
===================================================== */

.association-public-map-marker-container{
    background:transparent !important;
    border:0 !important;
}

.association-public-map-marker{
    display:block;
    width:22px;
    height:22px;
    border:4px solid #ffffff;
    border-radius:50%;
    background:
        var(
            --association-public-marker-color,
            var(--structure-primary,#2563eb)
        );
    box-shadow:
        0 0 0 3px
        color-mix(
            in srgb,
            var(
                --association-public-marker-color,
                var(--structure-primary,#2563eb)
            ) 42%,
            transparent
        ),
        0 9px 22px rgba(15,23,42,.35);
}

.association-public-map-popup{
    display:flex;
    flex-direction:column;
    min-width:170px;
}

.association-public-map-popup strong{
    color:#0f172a;
    font-size:13px;
    font-weight:950;
    line-height:1.3;
}

.association-public-map-popup span{
    margin-top:5px;
    color:#64748b;
    font-size:11px;
    line-height:1.4;
}

.association-public-map-popup a{
    align-self:flex-start;
    margin-top:10px;
    color:var(--structure-primary,#2563eb);
    font-size:11px;
    font-weight:950;
    text-decoration:none;
}

/* FIN CARTE TERRITORIALE PUBLIQUE — POINTS ASSOCIATIFS */

/* =========================================================
   MINI PIED DE PAGE JURIDIQUE — FICHE ASSOCIATION PUBLIQUE
   ========================================================= */

.association-public-legal-footer{
    width:min(100% - 32px,1280px);
    margin:24px auto 42px;
    padding:26px;
    color:#fff;
    background:
        radial-gradient(
            circle at 92% 10%,
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 55%,
                transparent
            ),
            transparent 34%
        ),
        linear-gradient(
            135deg,
            var(--structure-secondary,#0f172a),
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 55%,
                #020617
            )
        );
    border:1px solid #ffffff24;
    border-radius:28px;
    box-shadow:0 26px 70px #0f172a2b;
    position:relative;
    overflow:hidden;
}

.association-public-legal-footer:after{
    content:"";
    position:absolute;
    width:280px;
    height:280px;
    right:-120px;
    bottom:-150px;
    border:1px solid #ffffff1f;
    border-radius:50%;
    box-shadow:
        0 0 0 38px #ffffff08,
        0 0 0 80px #ffffff05;
    pointer-events:none;
}

.association-public-legal-footer__identity{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:70px minmax(0,1fr);
    align-items:center;
    gap:17px;
    max-width:760px;
}

.association-public-legal-footer__logo{
    width:70px;
    height:70px;
    padding:9px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--structure-primary,#2563eb);
    background:#fff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 14px 30px #0206173d;
}

.association-public-legal-footer__logo img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.association-public-legal-footer__logo span{
    font-size:19px;
    font-weight:950;
}

.association-public-legal-footer__identity>div>span{
    display:block;
    color:#ffffffa8;
    letter-spacing:.12em;
    text-transform:uppercase;
    font-size:9px;
    font-weight:950;
}

.association-public-legal-footer__identity strong{
    display:block;
    margin-top:5px;
    color:#fff;
    font-size:22px;
    font-weight:950;
    line-height:1.12;
}

.association-public-legal-footer__identity p{
    max-width:650px;
    margin:7px 0 0;
    color:#ffffffb8;
    font-size:12px;
    line-height:1.55;
}

.association-public-legal-footer__links{
    position:relative;
    z-index:1;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:23px;
}

.association-public-legal-footer__links a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:8px 12px;
    color:#fff;
    background:#ffffff12;
    border:1px solid #ffffff26;
    border-radius:999px;
    font-size:10px;
    font-weight:850;
    text-decoration:none;
    backdrop-filter:blur(10px);
    transition:
        background-color .2s,
        transform .2s,
        border-color .2s;
}

.association-public-legal-footer__links a:hover{
    background:#ffffff20;
    border-color:#ffffff45;
    transform:translateY(-2px);
}

.association-public-legal-footer__bottom{
    position:relative;
    z-index:1;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid #ffffff1f;
}

.association-public-legal-footer__bottom span{
    color:#ffffff9c;
    font-size:10px;
    line-height:1.4;
}

.association-public-legal-footer__bottom a{
    color:#fff;
    font-size:10px;
    font-weight:900;
    text-decoration:none;
}

/* =========================================================
   PAGES JURIDIQUES PUBLIQUES
   ========================================================= */

.association-legal-public{
    min-height:100vh;
    padding:34px 20px 70px;
    background:
        radial-gradient(
            circle at 90% 0,
            color-mix(
                in srgb,
                var(--legal-primary,#2563eb) 12%,
                transparent
            ),
            transparent 28%
        ),
        #f5f7fb;
}

.association-legal-public__container{
    width:min(100%,1260px);
    margin:0 auto;
}

.association-legal-public__navigation{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    margin-bottom:17px;
}

.association-legal-public__navigation a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:40px;
    padding:9px 14px;
    color:var(--legal-primary,#2563eb);
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    text-decoration:none;
}

.association-legal-public__navigation>span{
    color:#64748b;
    font-size:11px;
    font-weight:800;
}

.association-legal-public__hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) 120px;
    align-items:center;
    gap:30px;
    padding:36px;
    color:#fff;
    background:
        radial-gradient(
            circle at 90% 10%,
            color-mix(
                in srgb,
                var(--legal-primary,#2563eb) 70%,
                transparent
            ),
            transparent 36%
        ),
        linear-gradient(
            135deg,
            var(--legal-secondary,#0f172a),
            color-mix(
                in srgb,
                var(--legal-primary,#2563eb) 58%,
                #020617
            )
        );
    border-radius:32px;
    box-shadow:0 28px 75px #0f172a30;
}

.association-legal-public__eyebrow{
    display:block;
    color:#ffffffb3;
    letter-spacing:.13em;
    text-transform:uppercase;
    font-size:10px;
    font-weight:950;
}

.association-legal-public__hero h1{
    max-width:850px;
    margin:9px 0 0;
    color:#fff;
    letter-spacing:-.05em;
    font-size:clamp(34px,4.5vw,62px);
    font-weight:950;
    line-height:.98;
}

.association-legal-public__hero p{
    max-width:750px;
    margin:14px 0 0;
    color:#ffffffc4;
    font-size:14px;
    line-height:1.6;
}

.association-legal-public__identity{
    width:112px;
    height:112px;
    padding:14px;
    display:flex;
    justify-content:center;
    align-items:center;
    color:var(--legal-primary,#2563eb);
    background:#fff;
    border-radius:29px;
    overflow:hidden;
    box-shadow:0 20px 50px #0206174a;
}

.association-legal-public__identity img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.association-legal-public__identity span{
    font-size:30px;
    font-weight:950;
}

.association-legal-public__layout{
    display:grid;
    grid-template-columns:270px minmax(0,1fr);
    align-items:start;
    gap:18px;
    margin-top:20px;
}

.association-legal-public__sidebar,
.association-legal-public__document{
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:26px;
    box-shadow:0 16px 42px #0f172a12;
}

.association-legal-public__sidebar{
    position:sticky;
    top:110px;
    padding:18px;
}

.association-legal-public__sidebar-title{
    display:block;
    margin:3px 5px 12px;
    color:#64748b;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-size:9px;
    font-weight:950;
}

.association-legal-public__links{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.association-legal-public__links a{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    min-height:43px;
    padding:10px 12px;
    color:#475569;
    background:#f8fafc;
    border-radius:13px;
    font-size:11px;
    font-weight:850;
    text-decoration:none;
}

.association-legal-public__links a.is-active{
    color:#fff;
    background:var(--legal-primary,#2563eb);
}

.association-legal-public__contact{
    display:flex;
    flex-direction:column;
    margin-top:18px;
    padding:15px;
    background:color-mix(
        in srgb,
        var(--legal-primary,#2563eb) 7%,
        #fff
    );
    border-radius:16px;
}

.association-legal-public__contact>span{
    color:var(--legal-primary,#2563eb);
    letter-spacing:.08em;
    text-transform:uppercase;
    font-size:8px;
    font-weight:950;
}

.association-legal-public__contact strong{
    margin-top:6px;
    color:#0f172a;
    font-size:12px;
    line-height:1.35;
}

.association-legal-public__contact a{
    margin-top:6px;
    color:#475569;
    overflow-wrap:anywhere;
    font-size:10px;
    text-decoration:none;
}

.association-legal-public__document{
    min-width:0;
    padding:28px;
}

.association-legal-public__document-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:22px;
    padding-bottom:20px;
    border-bottom:1px solid #e2e8f0;
}

.association-legal-public__document-header span{
    display:block;
    color:#64748b;
    letter-spacing:.08em;
    text-transform:uppercase;
    font-size:8px;
    font-weight:900;
}

.association-legal-public__document-header strong{
    display:block;
    margin-top:5px;
    color:#0f172a;
    font-size:15px;
    font-weight:950;
}

.association-legal-public__document-header small{
    color:#64748b;
    font-size:9px;
    font-weight:750;
}

.association-legal-public__identity-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:20px;
}

.association-legal-public__identity-grid article{
    min-width:0;
    padding:15px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:15px;
}

.association-legal-public__identity-grid span{
    display:block;
    color:#64748b;
    font-size:8px;
    font-weight:850;
}

.association-legal-public__identity-grid strong{
    display:block;
    margin-top:5px;
    color:#0f172a;
    overflow-wrap:anywhere;
    font-size:11px;
    font-weight:900;
    line-height:1.4;
}

.association-legal-public__content{
    margin-top:23px;
    color:#334155;
    white-space:normal;
    overflow-wrap:anywhere;
    font-size:14px;
    line-height:1.85;
}

.association-legal-public__hosting{
    margin-top:26px;
    padding:20px;
    background:color-mix(
        in srgb,
        var(--legal-primary,#2563eb) 7%,
        #fff
    );
    border-left:5px solid var(--legal-primary,#2563eb);
    border-radius:18px;
}

.association-legal-public__hosting>span{
    display:block;
    color:var(--legal-primary,#2563eb);
    letter-spacing:.09em;
    text-transform:uppercase;
    font-size:9px;
    font-weight:950;
}

.association-legal-public__hosting strong{
    display:block;
    margin-top:7px;
    color:#0f172a;
    font-size:16px;
    font-weight:950;
}

.association-legal-public__hosting p{
    margin:7px 0 0;
    color:#475569;
    font-size:12px;
    line-height:1.55;
}

.association-legal-public__hosting a{
    display:inline-flex;
    gap:7px;
    margin-top:12px;
    color:var(--legal-primary,#2563eb);
    font-size:11px;
    font-weight:900;
    text-decoration:none;
}

@media (width<=800px){
    .association-public-legal-footer{
        width:calc(100% - 20px);
        margin:18px auto 105px;
        padding:20px 17px;
        border-radius:23px;
    }

    .association-public-legal-footer__identity{
        grid-template-columns:56px minmax(0,1fr);
        gap:13px;
    }

    .association-public-legal-footer__logo{
        width:56px;
        height:56px;
        border-radius:17px;
    }

    .association-public-legal-footer__identity strong{
        font-size:18px;
    }

    .association-public-legal-footer__links{
        gap:7px;
        margin-top:19px;
    }

    .association-public-legal-footer__links a{
        min-height:34px;
        padding:7px 10px;
        font-size:9px;
    }

    .association-public-legal-footer__bottom{
        flex-direction:column;
        align-items:flex-start;
    }

    .association-legal-public{
        padding:16px 10px 120px;
    }

    .association-legal-public__navigation>span{
        display:none;
    }

    .association-legal-public__hero{
        grid-template-columns:1fr;
        padding:24px 19px;
        border-radius:24px;
    }

    .association-legal-public__hero h1{
        font-size:35px;
    }

    .association-legal-public__identity{
        width:82px;
        height:82px;
        border-radius:22px;
    }

    .association-legal-public__layout{
        grid-template-columns:1fr;
    }

    .association-legal-public__sidebar{
        position:static;
        padding:14px;
    }

    .association-legal-public__links{
        scroll-snap-type:x mandatory;
        scrollbar-width:none;
        flex-direction:row;
        overflow-x:auto;
    }

    .association-legal-public__links::-webkit-scrollbar{
        display:none;
    }

    .association-legal-public__links a{
        scroll-snap-align:start;
        flex:0 0 auto;
        white-space:nowrap;
    }

    .association-legal-public__contact{
        display:none;
    }

    .association-legal-public__document{
        padding:20px 16px;
        border-radius:21px;
    }

    .association-legal-public__document-header{
        flex-direction:column;
        gap:9px;
    }

    .association-legal-public__identity-grid{
        grid-template-columns:1fr;
    }

    .association-legal-public__content{
        font-size:13px;
        line-height:1.75;
    }
}

/* =========================================================
   PAGES JURIDIQUES — OPTIMISATION MOBILE FINALE
   ========================================================= */

@media (max-width: 767px) {

    .association-legal-public{
        width:100% !important;
        max-width:none !important;
        padding:
            10px
            8px
            calc(150px + env(safe-area-inset-bottom))
            !important;
        overflow-x:hidden !important;
    }

    .association-legal-public__container{
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
    }

    .association-legal-public__navigation{
        min-height:46px !important;
        margin-bottom:10px !important;
        padding:6px !important;
        border-radius:16px !important;
    }

    .association-legal-public__navigation a{
        min-height:38px !important;
        padding:8px 12px !important;
        border-radius:12px !important;
        font-size:11px !important;
        white-space:nowrap !important;
    }

    .association-legal-public__navigation>span{
        display:none !important;
    }

    .association-legal-public__hero{
        grid-template-columns:minmax(0,1fr) 68px !important;
        align-items:center !important;
        gap:14px !important;
        min-height:0 !important;
        margin-bottom:12px !important;
        padding:22px 18px !important;
        border-radius:22px !important;
    }

    .association-legal-public__hero-content{
        min-width:0 !important;
    }

    .association-legal-public__eyebrow{
        margin-bottom:7px !important;
        font-size:9px !important;
        line-height:1.25 !important;
    }

    .association-legal-public__hero h1{
        overflow-wrap:anywhere !important;
        margin:0 !important;
        font-size:clamp(29px, 9vw, 37px) !important;
        line-height:1 !important;
        letter-spacing:-1.2px !important;
    }

    .association-legal-public__hero p{
        margin-top:10px !important;
        font-size:12px !important;
        line-height:1.5 !important;
    }

    .association-legal-public__identity{
        width:68px !important;
        min-width:68px !important;
        height:68px !important;
        min-height:68px !important;
        padding:7px !important;
        border-radius:18px !important;
    }

    .association-legal-public__identity img{
        width:100% !important;
        height:100% !important;
        object-fit:contain !important;
    }

    .association-legal-public__layout{
        grid-template-columns:1fr !important;
        gap:12px !important;
        width:100% !important;
    }

    .association-legal-public__sidebar{
        position:relative !important;
        top:auto !important;
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:12px !important;
        border-radius:19px !important;
        overflow:hidden !important;
    }

    .association-legal-public__sidebar-title{
        margin:0 2px 10px !important;
        font-size:9px !important;
        line-height:1.2 !important;
    }

    .association-legal-public__links{
        scroll-snap-type:x proximity !important;
        overscroll-behavior-x:contain !important;
        scrollbar-width:none !important;
        -webkit-overflow-scrolling:touch !important;

        flex-direction:row !important;
        flex-wrap:nowrap !important;
        gap:8px !important;

        width:calc(100% + 12px) !important;
        margin-right:-12px !important;
        padding:1px 12px 7px 1px !important;

        display:flex !important;
        overflow-x:auto !important;
        overflow-y:hidden !important;
    }

    .association-legal-public__links::-webkit-scrollbar{
        display:none !important;
    }

    .association-legal-public__links a{
        scroll-snap-align:start !important;

        flex:0 0 auto !important;
        width:auto !important;
        min-width:max-content !important;
        min-height:42px !important;

        justify-content:center !important;
        gap:8px !important;

        padding:10px 13px !important;
        border:1px solid #e2e8f0 !important;
        border-radius:13px !important;

        color:#475569 !important;
        background:#f8fafc !important;

        white-space:nowrap !important;
        font-size:10px !important;
        font-weight:900 !important;
        line-height:1.2 !important;

        box-shadow:none !important;
    }

    .association-legal-public__links a span{
        flex:none !important;
        font-size:14px !important;
    }

    .association-legal-public__links a.is-active{
        color:#fff !important;
        background:var(--legal-primary,#2563eb) !important;
        border-color:var(--legal-primary,#2563eb) !important;
        box-shadow:
            0 9px 22px
            color-mix(
                in srgb,
                var(--legal-primary,#2563eb) 25%,
                transparent
            )
            !important;
    }

    .association-legal-public__contact{
        display:none !important;
    }

    .association-legal-public__document{
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:19px 15px 25px !important;
        border-radius:20px !important;
        overflow:hidden !important;
    }

    .association-legal-public__document-header{
        flex-direction:column !important;
        align-items:flex-start !important;
        gap:8px !important;
        margin-bottom:17px !important;
        padding-bottom:15px !important;
    }

    .association-legal-public__document-header span{
        font-size:9px !important;
    }

    .association-legal-public__document-header strong{
        overflow-wrap:anywhere !important;
        font-size:16px !important;
        line-height:1.3 !important;
    }

    .association-legal-public__document-header small{
        font-size:10px !important;
        line-height:1.4 !important;
    }

    .association-legal-public__identity-grid{
        grid-template-columns:1fr !important;
        gap:8px !important;
        margin-bottom:17px !important;
    }

    .association-legal-public__identity-grid article{
        min-width:0 !important;
        padding:13px !important;
        border-radius:15px !important;
    }

    .association-legal-public__identity-grid span{
        font-size:8px !important;
    }

    .association-legal-public__identity-grid strong{
        overflow-wrap:anywhere !important;
        font-size:12px !important;
        line-height:1.4 !important;
    }

    .association-legal-public__content{
        overflow-wrap:anywhere !important;
        font-size:13px !important;
        line-height:1.75 !important;
    }

    .association-legal-public__content h2{
        margin-top:25px !important;
        margin-bottom:10px !important;
        font-size:20px !important;
        line-height:1.15 !important;
        letter-spacing:-.4px !important;
    }

    .association-legal-public__content h3{
        margin-top:20px !important;
        font-size:17px !important;
        line-height:1.2 !important;
    }

    .association-legal-public__content p,
    .association-legal-public__content li{
        font-size:13px !important;
        line-height:1.75 !important;
    }

    .association-legal-public__content ul,
    .association-legal-public__content ol{
        padding-left:20px !important;
    }

    .association-legal-public__hosting{
        margin-top:20px !important;
        padding:16px !important;
        border-radius:17px !important;
    }
}

@media (max-width: 380px) {

    .association-legal-public{
        padding-left:6px !important;
        padding-right:6px !important;
    }

    .association-legal-public__hero{
        grid-template-columns:minmax(0,1fr) 58px !important;
        padding:19px 15px !important;
    }

    .association-legal-public__hero h1{
        font-size:28px !important;
    }

    .association-legal-public__identity{
        width:58px !important;
        min-width:58px !important;
        height:58px !important;
        min-height:58px !important;
        border-radius:16px !important;
    }

    .association-legal-public__links a{
        min-height:40px !important;
        padding:9px 11px !important;
        font-size:9px !important;
    }

    .association-legal-public__document{
        padding-left:13px !important;
        padding-right:13px !important;
    }
}


/* =========================================================
   FICHE ASSOCIATION V2 — SERVICES ET RÉSERVATIONS
   ========================================================= */

.association-public-services{
    position:relative;
    overflow:hidden;
    margin-top:34px;
    padding:18px;
    border:1px solid rgba(15,23,42,.08);
    border-radius:32px;
    background:
        radial-gradient(
            circle at 92% 7%,
            color-mix(
                in srgb,
                var(--association-public-primary,#22c55e) 15%,
                transparent
            ),
            transparent 31%
        ),
        #f8fafc;
}

.association-public-services__header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    padding:30px;
    color:#fff;
    border-radius:25px;
    background:
        linear-gradient(
            118deg,
            color-mix(
                in srgb,
                var(--association-public-secondary,#0f172a) 94%,
                #000
            ),
            color-mix(
                in srgb,
                var(--association-public-primary,#22c55e) 86%,
                #07140c
            )
        );
}

.association-public-services__heading{
    max-width:760px;
}

.association-public-services__eyebrow{
    display:block;
    margin-bottom:8px;
    color:rgba(255,255,255,.72);
    font-size:10px;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.association-public-services__heading h2{
    max-width:760px;
    margin:0;
    color:#fff;
    font-size:clamp(36px,5vw,70px);
    font-weight:950;
    line-height:.92;
    letter-spacing:-.055em;
}

.association-public-services__heading p{
    max-width:680px;
    margin:15px 0 0;
    color:rgba(255,255,255,.78);
    font-size:14px;
    line-height:1.65;
}

.association-public-services__count{
    display:flex;
    flex-direction:column;
    flex:0 0 170px;
    min-height:105px;
    justify-content:center;
    padding:18px;
    color:#0f172a;
    background:#fff;
    border-radius:20px;
}

.association-public-services__count strong{
    color:var(--association-public-primary,#22c55e);
    font-size:38px;
    font-weight:950;
    line-height:1;
}

.association-public-services__count span{
    margin-top:5px;
    color:#64748b;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-public-services__summary{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin:14px 0;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.08);
    border-radius:20px;
    background:#fff;
}

.association-public-services__summary article{
    min-width:0;
    padding:18px 22px;
    border-right:1px solid rgba(15,23,42,.08);
}

.association-public-services__summary article:last-child{
    border-right:0;
}

.association-public-services__summary strong{
    display:block;
    color:var(--association-public-primary,#22c55e);
    font-size:28px;
    font-weight:950;
    line-height:1;
}

.association-public-services__summary span{
    display:block;
    margin-top:6px;
    color:#64748b;
    font-size:10px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.07em;
}

.association-public-services__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}

.association-public-service-card{
    display:flex;
    min-width:0;
    flex-direction:column;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.09);
    border-radius:24px;
    background:#fff;
    box-shadow:0 18px 50px rgba(15,23,42,.06);
}

.association-public-service-card--featured{
    border-color:color-mix(
        in srgb,
        var(--association-public-primary,#22c55e) 37%,
        transparent
    );
}

.association-public-service-card__media{
    position:relative;
    min-height:220px;
    overflow:hidden;
    background:#e2e8f0;
}

.association-public-service-card__media img,
.association-public-service-card__placeholder{
    width:100%;
    height:220px;
    object-fit:cover;
}

.association-public-service-card__media img{
    display:block;
}

.association-public-service-card__media::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(
        to bottom,
        rgba(15,23,42,.06),
        transparent 42%,
        rgba(15,23,42,.7)
    );
}

.association-public-service-card__placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    background:
        linear-gradient(
            135deg,
            var(--association-public-primary,#22c55e),
            var(--association-public-secondary,#0f172a)
        );
}

.association-public-service-card__placeholder span{
    font-size:54px;
    font-weight:950;
    opacity:.8;
}

.association-public-service-card__badges{
    position:absolute;
    z-index:2;
    top:15px;
    left:15px;
    right:15px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}

.association-public-service-card__badges span,
.association-public-service-card__badges strong{
    padding:7px 10px;
    border-radius:999px;
    backdrop-filter:blur(14px);
    font-size:9px;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.association-public-service-card__badges span{
    color:#fff;
    background:rgba(15,23,42,.58);
}

.association-public-service-card__badges strong{
    color:#14532d;
    background:rgba(255,255,255,.9);
}

.association-public-service-card__price{
    position:absolute;
    z-index:2;
    right:15px;
    bottom:15px;
}

.association-public-service-card__price strong{
    display:inline-flex;
    padding:9px 12px;
    color:#0f172a;
    background:#fff;
    border-radius:12px;
    font-size:14px;
    font-weight:950;
}

.association-public-service-card__body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:21px;
}

.association-public-service-card__category{
    color:var(--association-public-primary,#22c55e);
    font-size:9px;
    font-weight:950;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.association-public-service-card__body h3{
    margin:7px 0 10px;
    color:#0f172a;
    font-size:24px;
    font-weight:950;
    line-height:1.05;
    letter-spacing:-.035em;
}

.association-public-service-card__body p{
    margin:0;
    color:#64748b;
    font-size:12px;
    line-height:1.65;
}

.association-public-service-card__details{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:20px;
}

.association-public-service-card__details div{
    min-width:0;
    padding:11px;
    border:1px solid rgba(15,23,42,.07);
    border-radius:13px;
    background:#f8fafc;
}

.association-public-service-card__details span{
    display:block;
    margin-bottom:4px;
    color:#94a3b8;
    font-size:8px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.association-public-service-card__details strong{
    display:block;
    overflow-wrap:anywhere;
    color:#334155;
    font-size:11px;
    font-weight:850;
}

.association-public-service-card__video{
    display:inline-flex;
    align-items:center;
    gap:7px;
    align-self:flex-start;
    margin-top:16px;
    color:var(--association-public-primary,#22c55e);
    font-size:11px;
    font-weight:900;
    text-decoration:none;
}

.association-public-service-booking{
    margin-top:auto;
    padding-top:20px;
}

.association-public-service-booking summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:48px;
    padding:12px 15px;
    color:#fff;
    cursor:pointer;
    list-style:none;
    border-radius:15px;
    background:linear-gradient(
        110deg,
        var(--association-public-primary,#22c55e),
        color-mix(
            in srgb,
            var(--association-public-primary,#22c55e) 72%,
            #0f172a
        )
    );
    font-size:11px;
    font-weight:950;
}

.association-public-service-booking summary::-webkit-details-marker{
    display:none;
}

.association-public-service-booking summary>span:last-child{
    display:flex;
    align-items:center;
    justify-content:center;
    width:25px;
    height:25px;
    color:#0f172a;
    background:#fff;
    border-radius:50%;
    font-size:17px;
}

.association-public-service-booking[open] summary>span:last-child{
    transform:rotate(45deg);
}

.association-public-service-booking form{
    margin-top:10px;
    padding:15px;
    border:1px solid rgba(15,23,42,.08);
    border-radius:16px;
    background:#f8fafc;
}

.association-public-service-booking__intro{
    display:flex;
    flex-direction:column;
    gap:4px;
    margin-bottom:14px;
}

.association-public-service-booking__intro strong{
    color:#0f172a;
    font-size:13px;
    font-weight:950;
}

.association-public-service-booking__intro span{
    color:#64748b;
    font-size:10px;
    line-height:1.5;
}

.association-public-service-booking__fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}

.association-public-service-booking__fields label{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:5px;
}

.association-public-service-booking__fields label>span{
    color:#475569;
    font-size:9px;
    font-weight:850;
}

.association-public-service-booking__fields input,
.association-public-service-booking__fields textarea{
    width:100%;
    max-width:none;
    padding:10px 11px;
    color:#0f172a;
    background:#fff;
    border:1px solid #dbe3ed;
    border-radius:11px;
    box-sizing:border-box;
    font:inherit;
    font-size:11px;
}

.association-public-service-booking__message{
    grid-column:1/-1;
}

.association-public-service-booking__notice{
    margin:12px 0 0 !important;
    padding:10px;
    color:#92400e !important;
    background:#fffbeb;
    border-radius:10px;
    font-size:9px !important;
}

.association-public-service-booking button{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    width:100%;
    min-height:45px;
    margin-top:13px;
    padding:11px 14px;
    color:#fff;
    border:0;
    border-radius:13px;
    cursor:pointer;
    background:var(--association-public-primary,#22c55e);
    font-size:11px;
    font-weight:950;
}

.association-public-service-card__full{
    margin-top:auto;
    padding:14px;
    color:#991b1b;
    background:#fef2f2;
    border-radius:13px;
    font-size:11px;
    font-weight:900;
    text-align:center;
}

.association-public-services__footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    margin-top:16px;
    padding:20px 23px;
    border:1px solid rgba(15,23,42,.08);
    border-radius:20px;
    background:#fff;
}

.association-public-services__footer div{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.association-public-services__footer span{
    color:var(--association-public-primary,#22c55e);
    font-size:9px;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-public-services__footer strong{
    color:#0f172a;
    font-size:18px;
    font-weight:950;
}

.association-public-services__footer>a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:45px;
    padding:11px 18px;
    color:#fff;
    border-radius:14px;
    background:var(--association-public-primary,#22c55e);
    font-size:11px;
    font-weight:950;
    text-decoration:none;
}

@media(max-width:1000px){
    .association-public-services__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .association-public-services{
        margin-top:20px;
        padding:10px;
        border-radius:25px;
    }

    .association-public-services__header{
        align-items:stretch;
        flex-direction:column;
        padding:23px 19px;
        border-radius:21px;
    }

    .association-public-services__heading h2{
        font-size:39px;
    }

    .association-public-services__heading p{
        font-size:13px;
    }

    .association-public-services__count{
        flex:initial;
        min-height:76px;
        flex-direction:row;
        align-items:center;
        justify-content:space-between;
    }

    .association-public-services__summary{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .association-public-services__summary article{
        padding:14px 10px;
    }

    .association-public-services__summary strong{
        font-size:23px;
    }

    .association-public-services__summary span{
        font-size:7px;
        line-height:1.35;
    }

    .association-public-services__grid{
        grid-template-columns:1fr;
    }

    .association-public-service-card__media,
    .association-public-service-card__media img,
    .association-public-service-card__placeholder{
        height:210px;
        min-height:210px;
    }

    .association-public-service-card__body{
        padding:18px;
    }

    .association-public-service-card__body h3{
        font-size:25px;
    }

    .association-public-service-booking__fields{
        grid-template-columns:1fr;
    }

    .association-public-service-booking__message{
        grid-column:auto;
    }

    .association-public-services__footer{
        align-items:stretch;
        flex-direction:column;
        padding:18px;
    }

    .association-public-services__footer>a{
        width:100%;
        box-sizing:border-box;
    }
}

/* =========================================================
   SERVICES — ARCHIVES DES PRESTATIONS PASSÉES
   ========================================================= */

.association-public-services-archives{
    margin-top:22px;
}

.association-public-services-archives__details{
    overflow:hidden;
    border:1px solid rgba(15,23,42,.08);
    border-radius:28px;
    background:rgba(255,255,255,.88);
    box-shadow:0 20px 50px rgba(15,23,42,.08);
}

.association-public-services-archives__details>summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:24px 26px;
    list-style:none;
    cursor:pointer;
    user-select:none;
}

.association-public-services-archives__details>summary::-webkit-details-marker{
    display:none;
}

.association-public-services-archives__details>summary div{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.association-public-services-archives__details>summary div>span{
    color:var(--association-primary,#22c55e);
    font-size:9px;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.association-public-services-archives__details>summary strong{
    color:#0f172a;
    font-size:24px;
    font-weight:950;
    line-height:1.06;
    letter-spacing:-.7px;
}

.association-public-services-archives__details>summary small{
    color:#64748b;
    font-size:12px;
    font-weight:750;
}

.association-public-services-archives__toggle{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:43px;
    height:43px;
    border-radius:50%;
    color:#fff;
    background:linear-gradient(
        135deg,
        var(--association-primary,#22c55e),
        var(--association-secondary,#0f766e)
    );
    font-size:24px;
    font-weight:700;
    transition:transform .25s ease;
}

.association-public-services-archives__details[open]
.association-public-services-archives__toggle{
    transform:rotate(45deg);
}

.association-public-services-archives__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    padding:0 26px 26px;
}

.association-public-service-archive-card{
    overflow:hidden;
    border:1px solid rgba(15,23,42,.08);
    border-radius:22px;
    background:#fff;
}

.association-public-service-archive-card__visual{
    position:relative;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    min-height:125px;
    padding:16px;
    background:
        linear-gradient(
            135deg,
            color-mix(
                in srgb,
                var(--association-primary,#22c55e) 80%,
                #0f172a
            ),
            #0f172a
        );
    background-size:cover;
    background-position:center;
}

.association-public-service-archive-card__visual span,
.association-public-service-archive-card__visual strong{
    padding:7px 10px;
    border-radius:999px;
    font-size:9px;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-public-service-archive-card__visual span{
    color:#fff;
    background:rgba(15,23,42,.55);
    backdrop-filter:blur(10px);
}

.association-public-service-archive-card__visual strong{
    color:#475569;
    background:rgba(255,255,255,.94);
}

.association-public-service-archive-card__content{
    display:flex;
    flex-direction:column;
    padding:18px;
}

.association-public-service-archive-card__content>span{
    color:var(--association-primary,#22c55e);
    font-size:9px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-service-archive-card__content h3{
    margin:7px 0 8px;
    color:#0f172a;
    font-size:20px;
    line-height:1.08;
}

.association-public-service-archive-card__content p{
    margin:0 0 15px;
    color:#64748b;
    font-size:13px;
    line-height:1.55;
}

.association-public-service-archive-card__meta{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}

.association-public-service-archive-card__meta span{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:10px;
    border:1px solid rgba(15,23,42,.07);
    border-radius:13px;
    background:#f8fafc;
}

.association-public-service-archive-card__meta small{
    color:#94a3b8;
    font-size:8px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-public-service-archive-card__meta strong{
    color:#334155;
    font-size:11px;
    line-height:1.3;
}

.association-public-service-archive-card__content>a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:15px;
    color:var(--association-primary,#22c55e);
    font-size:12px;
    font-weight:900;
    text-decoration:none;
}

@media(max-width:900px){
    .association-public-services-archives__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:640px){
    .association-public-services-archives{
        margin-top:16px;
    }

    .association-public-services-archives__details{
        border-radius:22px;
    }

    .association-public-services-archives__details>summary{
        gap:14px;
        padding:20px 17px;
    }

    .association-public-services-archives__details>summary strong{
        font-size:20px;
    }

    .association-public-services-archives__toggle{
        width:39px;
        height:39px;
    }

    .association-public-services-archives__grid{
        grid-template-columns:1fr;
        padding:0 14px 16px;
    }

    .association-public-service-archive-card__visual{
        min-height:145px;
    }
}

/* =========================================================
   SERVICES ET PRESTATIONS — ARCHIVES PUBLIQUES
   ========================================================= */

.association-public-services-archives{
    margin-top:24px;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.09);
    border-radius:24px;
    background:rgba(255,255,255,.82);
    box-shadow:0 18px 45px rgba(15,23,42,.06);
}

.association-public-services-archives>summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    min-height:92px;
    padding:20px 24px;
    cursor:pointer;
    list-style:none;
}

.association-public-services-archives>summary::-webkit-details-marker{
    display:none;
}

.association-public-services-archives>summary div{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.association-public-services-archives>summary div>span{
    color:var(--association-primary,#22c55e);
    font-size:10px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-public-services-archives>summary div>strong{
    color:#0f172a;
    font-size:19px;
    line-height:1.2;
}

.association-public-services-archives__count{
    flex:0 0 auto;
    padding:10px 14px;
    color:#475569;
    border:1px solid rgba(15,23,42,.09);
    border-radius:999px;
    background:#f8fafc;
    font-size:11px;
    font-weight:900;
}

.association-public-services-archives__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    padding:0 20px 20px;
}

.association-public-service-archive-card{
    display:grid;
    grid-template-columns:112px minmax(0,1fr);
    min-width:0;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.08);
    border-radius:19px;
    background:#fff;
}

.association-public-service-archive-card__media{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:160px;
    overflow:hidden;
    color:#fff;
    background:
        linear-gradient(
            145deg,
            color-mix(
                in srgb,
                var(--association-primary,#22c55e) 65%,
                #0f172a
            ),
            #0f172a
        );
    font-size:30px;
    font-weight:950;
}

.association-public-service-archive-card__media img{
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.72);
}

.association-public-service-archive-card__content{
    display:flex;
    flex-direction:column;
    min-width:0;
    padding:16px;
}

.association-public-service-archive-card__badges{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px;
    margin-bottom:10px;
}

.association-public-service-archive-card__badges span,
.association-public-service-archive-card__badges strong{
    padding:6px 8px;
    border-radius:999px;
    font-size:8px;
    font-weight:950;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.association-public-service-archive-card__badges span{
    color:var(--association-primary,#16a34a);
    background:color-mix(
        in srgb,
        var(--association-primary,#22c55e) 10%,
        #fff
    );
}

.association-public-service-archive-card__badges strong{
    color:#64748b;
    background:#f1f5f9;
}

.association-public-service-archive-card h3{
    margin:0;
    color:#0f172a;
    font-size:16px;
    line-height:1.2;
}

.association-public-service-archive-card p{
    margin:8px 0 0;
    color:#64748b;
    font-size:11px;
    line-height:1.55;
}

.association-public-service-archive-card__details{
    display:flex;
    flex-wrap:wrap;
    gap:7px 12px;
    margin-top:auto;
    padding-top:13px;
    color:#64748b;
    font-size:9px;
    font-weight:800;
}

.association-public-service-archive-card a{
    margin-top:11px;
    color:var(--association-primary,#16a34a);
    font-size:10px;
    font-weight:900;
    text-decoration:none;
}

@media(max-width:1100px){
    .association-public-services-archives__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .association-public-services-archives{
        margin-top:18px;
        border-radius:20px;
    }

    .association-public-services-archives>summary{
        align-items:flex-start;
        min-height:0;
        padding:18px;
    }

    .association-public-services-archives>summary div>strong{
        font-size:16px;
    }

    .association-public-services-archives__count{
        padding:8px 10px;
        font-size:9px;
    }

    .association-public-services-archives__grid{
        grid-template-columns:1fr;
        padding:0 13px 13px;
    }

    .association-public-service-archive-card{
        grid-template-columns:88px minmax(0,1fr);
    }

    .association-public-service-archive-card__media{
        min-height:150px;
        font-size:24px;
    }

    .association-public-service-archive-card__content{
        padding:13px;
    }

    .association-public-service-archive-card h3{
        font-size:15px;
    }
}


/* =========================================================
   SERVICES ET PRESTATIONS — ARCHIVES PUBLIQUES
   ========================================================= */

.association-public-services-archives{
    margin-top:24px;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.09);
    border-radius:24px;
    background:rgba(255,255,255,.82);
    box-shadow:0 18px 45px rgba(15,23,42,.06);
}

.association-public-services-archives>summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    min-height:92px;
    padding:20px 24px;
    cursor:pointer;
    list-style:none;
}

.association-public-services-archives>summary::-webkit-details-marker{
    display:none;
}

.association-public-services-archives>summary div{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.association-public-services-archives>summary div>span{
    color:var(--association-primary,#22c55e);
    font-size:10px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-public-services-archives>summary div>strong{
    color:#0f172a;
    font-size:19px;
    line-height:1.2;
}

.association-public-services-archives__count{
    flex:0 0 auto;
    padding:10px 14px;
    color:#475569;
    border:1px solid rgba(15,23,42,.09);
    border-radius:999px;
    background:#f8fafc;
    font-size:11px;
    font-weight:900;
}

.association-public-services-archives__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    padding:0 20px 20px;
}

.association-public-service-archive-card{
    display:grid;
    grid-template-columns:112px minmax(0,1fr);
    min-width:0;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.08);
    border-radius:19px;
    background:#fff;
}

.association-public-service-archive-card__media{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:160px;
    overflow:hidden;
    color:#fff;
    background:
        linear-gradient(
            145deg,
            color-mix(
                in srgb,
                var(--association-primary,#22c55e) 65%,
                #0f172a
            ),
            #0f172a
        );
    font-size:30px;
    font-weight:950;
}

.association-public-service-archive-card__media img{
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.72);
}

.association-public-service-archive-card__content{
    display:flex;
    flex-direction:column;
    min-width:0;
    padding:16px;
}

.association-public-service-archive-card__badges{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px;
    margin-bottom:10px;
}

.association-public-service-archive-card__badges span,
.association-public-service-archive-card__badges strong{
    padding:6px 8px;
    border-radius:999px;
    font-size:8px;
    font-weight:950;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.association-public-service-archive-card__badges span{
    color:var(--association-primary,#16a34a);
    background:color-mix(
        in srgb,
        var(--association-primary,#22c55e) 10%,
        #fff
    );
}

.association-public-service-archive-card__badges strong{
    color:#64748b;
    background:#f1f5f9;
}

.association-public-service-archive-card h3{
    margin:0;
    color:#0f172a;
    font-size:16px;
    line-height:1.2;
}

.association-public-service-archive-card p{
    margin:8px 0 0;
    color:#64748b;
    font-size:11px;
    line-height:1.55;
}

.association-public-service-archive-card__details{
    display:flex;
    flex-wrap:wrap;
    gap:7px 12px;
    margin-top:auto;
    padding-top:13px;
    color:#64748b;
    font-size:9px;
    font-weight:800;
}

.association-public-service-archive-card a{
    margin-top:11px;
    color:var(--association-primary,#16a34a);
    font-size:10px;
    font-weight:900;
    text-decoration:none;
}

@media(max-width:1100px){
    .association-public-services-archives__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .association-public-services-archives{
        margin-top:18px;
        border-radius:20px;
    }

    .association-public-services-archives>summary{
        align-items:flex-start;
        min-height:0;
        padding:18px;
    }

    .association-public-services-archives>summary div>strong{
        font-size:16px;
    }

    .association-public-services-archives__count{
        padding:8px 10px;
        font-size:9px;
    }

    .association-public-services-archives__grid{
        grid-template-columns:1fr;
        padding:0 13px 13px;
    }

    .association-public-service-archive-card{
        grid-template-columns:88px minmax(0,1fr);
    }

    .association-public-service-archive-card__media{
        min-height:150px;
        font-size:24px;
    }

    .association-public-service-archive-card__content{
        padding:13px;
    }

    .association-public-service-archive-card h3{
        font-size:15px;
    }
}


/* =========================================================
   SERVICES — CARROUSELS HORIZONTAUX MOBILE
   ========================================================= */

@media (max-width: 700px){

    /* Cartes des services actifs */
    .association-public-services__grid{
        display:flex !important;
        grid-template-columns:none !important;
        gap:14px;
        overflow-x:auto;
        overflow-y:visible;
        scroll-snap-type:x mandatory;
        scroll-padding-left:4px;
        padding:2px 4px 18px;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior-inline:contain;
        scrollbar-width:none;
    }

    .association-public-services__grid::-webkit-scrollbar{
        display:none;
    }

    .association-public-service-card{
        flex:0 0 min(86vw, 350px);
        width:min(86vw, 350px);
        scroll-snap-align:start;
        scroll-snap-stop:always;
    }

    /* Archives */
    .association-public-services-archives__grid{
        display:flex !important;
        grid-template-columns:none !important;
        gap:12px;
        overflow-x:auto;
        overflow-y:visible;
        scroll-snap-type:x mandatory;
        scroll-padding-left:2px;
        padding:0 4px 16px;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior-inline:contain;
        scrollbar-width:none;
    }

    .association-public-services-archives__grid::-webkit-scrollbar{
        display:none;
    }

    .association-public-service-archive-card{
        flex:0 0 min(84vw, 335px);
        width:min(84vw, 335px);
        grid-template-columns:105px minmax(0,1fr);
        scroll-snap-align:start;
        scroll-snap-stop:always;
    }

    /* Indication visuelle qu’on peut glisser */
    .association-public-services__grid,
    .association-public-services-archives__grid{
        mask-image:linear-gradient(
            to right,
            transparent 0,
            #000 8px,
            #000 calc(100% - 30px),
            transparent 100%
        );
    }

    /* Réserver sans allonger les cartes voisines */
    .association-public-service-booking[open]{
        width:100%;
    }

    .association-public-service-booking form{
        max-height:min(62vh, 520px);
        overflow-y:auto;
        overscroll-behavior:contain;
    }
}


@media (min-width: 701px){
    .association-public-services__mobile-controls{
        display:none;
    }
}

@media (max-width: 700px){
    .association-public-services__mobile-controls{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        margin:14px 2px 10px;
    }

    .association-public-services__mobile-controls>span{
        color:#64748b;
        font-size:10px;
        font-weight:850;
    }

    .association-public-services__mobile-controls>div{
        display:flex;
        gap:7px;
        flex:0 0 auto;
    }

    .association-public-services__mobile-controls button{
        display:flex;
        align-items:center;
        justify-content:center;
        width:38px;
        height:38px;
        padding:0;
        border:1px solid rgba(15,23,42,.09);
        border-radius:50%;
        color:#fff;
        background:var(--association-primary,#22c55e);
        box-shadow:0 9px 20px rgba(15,23,42,.12);
        cursor:pointer;
        font-size:17px;
        font-weight:900;
    }

    .association-public-services__mobile-controls button:active{
        transform:scale(.94);
    }
}


/* =========================================================
   FLASH TERRITORIAL — FICHE PUBLIQUE V2 PREMIUM
   ========================================================= */

.association-public-flashes{
    width:100%;
    margin:28px 0;
    padding:20px;
    overflow:hidden;
    background:
        radial-gradient(
            circle at 92% 5%,
            color-mix(
                in srgb,
                var(--association-primary,#22c55e) 20%,
                transparent
            ),
            transparent 35%
        ),
        #f8fafc;
    border:1px solid rgba(148,163,184,.18);
    border-radius:32px;
}

.association-public-flashes__header{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:24px;
    align-items:end;
    padding:30px;
    color:#fff;
    background:
        linear-gradient(
            130deg,
            #111827,
            color-mix(
                in srgb,
                var(--association-primary,#22c55e) 70%,
                #07111f
            )
        );
    border-radius:27px;
    overflow:hidden;
}

.association-public-flashes__eyebrow{
    display:block;
    margin-bottom:8px;
    font-size:10px;
    font-weight:950;
    letter-spacing:.15em;
    text-transform:uppercase;
    color:#bbf7d0;
}

.association-public-flashes__header h2{
    max-width:800px;
    margin:0;
    color:#fff;
    font-size:clamp(34px,4.2vw,65px);
    line-height:.94;
    letter-spacing:-.055em;
    font-weight:950;
}

.association-public-flashes__header p{
    max-width:700px;
    margin:15px 0 0;
    color:rgba(255,255,255,.75);
    font-size:14px;
    line-height:1.65;
}

.association-public-flashes__count{
    min-width:150px;
    padding:22px;
    color:#0f172a;
    background:#fff;
    border-radius:22px;
}

.association-public-flashes__count strong{
    display:block;
    color:var(--association-primary,#22c55e);
    font-size:42px;
    line-height:1;
    font-weight:950;
}

.association-public-flashes__count span{
    display:block;
    margin-top:8px;
    color:#64748b;
    font-size:9px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-flashes__toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    padding:18px 3px 12px;
}

.association-public-flashes__toolbar>span{
    color:#64748b;
    font-size:11px;
    font-weight:850;
}

.association-public-flashes__toolbar>div{
    display:flex;
    gap:8px;
}

.association-public-flashes__toolbar button{
    width:43px;
    height:43px;
    border:0;
    border-radius:50%;
    color:#fff;
    background:var(--association-primary,#22c55e);
    font-size:17px;
    font-weight:950;
    cursor:pointer;
}

.association-public-flashes__rail{
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:minmax(285px,350px);
    gap:15px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    padding:4px 2px 14px;
}

.association-public-flashes__rail::-webkit-scrollbar{
    display:none;
}

.association-public-flash-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    overflow:hidden;
    scroll-snap-align:start;
    background:#fff;
    border:1px solid rgba(148,163,184,.2);
    border-radius:25px;
    box-shadow:0 16px 42px rgba(15,23,42,.08);
}

.association-public-flash-card--commercial{
    border-color:color-mix(
        in srgb,
        var(--association-primary,#22c55e) 38%,
        #dbe3ec
    );
}

.association-public-flash-card__open{
    display:flex;
    flex:1;
    flex-direction:column;
    width:100%;
    padding:0;
    color:inherit;
    text-align:left;
    background:transparent;
    border:0;
    cursor:pointer;
}

.association-public-flash-card__media{
    position:relative;
    height:245px;
    overflow:hidden;
    background:#0f172a;
}

.association-public-flash-card__media img,
.association-public-flash-card__media video{
    width:100%;
    height:100%;
    object-fit:cover;
}

.association-public-flash-card__placeholder{
    display:flex;
    justify-content:center;
    align-items:center;
    width:100%;
    height:100%;
    background:
        radial-gradient(circle at 25% 15%,#22c55e,transparent 45%),
        linear-gradient(145deg,#111827,#064e3b);
}

.association-public-flash-card__placeholder span{
    color:#fff;
    font-size:64px;
}

.association-public-flash-card__overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        to bottom,
        rgba(15,23,42,.12),
        rgba(15,23,42,.72)
    );
}

.association-public-flash-card__badges{
    position:absolute;
    top:15px;
    left:15px;
    right:15px;
    display:flex;
    justify-content:space-between;
    gap:10px;
}

.association-public-flash-card__badges span,
.association-public-flash-card__badges strong{
    padding:7px 10px;
    color:#fff;
    background:rgba(15,23,42,.72);
    border-radius:999px;
    font-size:9px;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
    backdrop-filter:blur(12px);
}

.association-public-flash-card__badges strong{
    color:#14532d;
    background:#fff;
}

.association-public-flash-card__price{
    position:absolute;
    right:15px;
    bottom:15px;
    display:flex;
    align-items:flex-end;
    gap:8px;
    padding:10px 13px;
    color:#0f172a;
    background:#fff;
    border-radius:15px;
}

.association-public-flash-card__price small{
    color:#94a3b8;
    font-size:10px;
    text-decoration:line-through;
}

.association-public-flash-card__price strong{
    font-size:18px;
    font-weight:950;
}

.association-public-flash-card__body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:20px;
}

.association-public-flash-card__body>span{
    color:var(--association-primary,#22c55e);
    font-size:9px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-flash-card__body h3{
    margin:7px 0 8px;
    color:#0f172a;
    font-size:22px;
    line-height:1.04;
    letter-spacing:-.035em;
    font-weight:950;
}

.association-public-flash-card__body p{
    margin:0;
    color:#64748b;
    font-size:13px;
    line-height:1.65;
}

.association-public-flash-card__meta{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:auto;
    padding-top:18px;
    color:#94a3b8;
    font-size:9px;
    font-weight:850;
}

.association-public-flash-card__commerce{
    padding:13px;
    border-top:1px solid #edf2f7;
}

.association-public-flash-card__commerce div{
    padding:0 5px 9px;
    color:#64748b;
    font-size:9px;
    font-weight:850;
}

.association-public-flash-card__commerce>a{
    display:flex;
    justify-content:space-between;
    align-items:center;
    min-height:48px;
    padding:12px 15px;
    color:#fff;
    background:var(--association-primary,#22c55e);
    border-radius:15px;
    font-size:11px;
    font-weight:950;
    text-decoration:none;
}

.association-public-flash-card__commerce>strong{
    display:block;
    padding:14px;
    color:#991b1b;
    background:#fef2f2;
    border-radius:14px;
    font-size:11px;
}

.association-public-flashes__footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-top:8px;
    padding:18px 20px;
    background:#fff;
    border-radius:20px;
}

.association-public-flashes__footer div{
    display:flex;
    flex-direction:column;
}

.association-public-flashes__footer span{
    color:var(--association-primary,#22c55e);
    font-size:9px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-flashes__footer strong{
    margin-top:5px;
    color:#0f172a;
    font-size:15px;
}

.association-public-flashes__footer>a{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 16px;
    color:#fff;
    background:#0f172a;
    border-radius:14px;
    font-size:11px;
    font-weight:950;
    text-decoration:none;
}

.association-public-flash-viewer[hidden]{
    display:none !important;
}

.association-public-flash-viewer{
    position:fixed;
    inset:0;
    z-index:999999;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:24px;
}

.association-public-flash-viewer__backdrop{
    position:absolute;
    inset:0;
    border:0;
    background:rgba(2,6,23,.88);
    backdrop-filter:blur(18px);
}

.association-public-flash-viewer__dialog{
    position:relative;
    z-index:2;
    width:min(100%,980px);
    max-height:calc(100vh - 48px);
    overflow:auto;
    background:#fff;
    border-radius:30px;
    box-shadow:0 30px 100px rgba(0,0,0,.45);
}

.association-public-flash-viewer__close{
    position:absolute;
    top:15px;
    right:15px;
    z-index:5;
    width:44px;
    height:44px;
    color:#fff;
    background:rgba(15,23,42,.75);
    border:0;
    border-radius:50%;
    font-size:27px;
    cursor:pointer;
}

.association-public-flash-viewer__content{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
    min-height:580px;
}

.association-public-flash-viewer__media{
    min-height:580px;
    overflow:hidden;
    background:#020617;
}

.association-public-flash-viewer__media img,
.association-public-flash-viewer__media video{
    width:100%;
    height:100%;
    min-height:580px;
    object-fit:cover;
}

.association-public-flash-viewer__placeholder{
    display:flex;
    justify-content:center;
    align-items:center;
    width:100%;
    height:100%;
    min-height:580px;
    background:
        radial-gradient(circle at 25% 20%,#22c55e,transparent 40%),
        linear-gradient(145deg,#111827,#020617);
}

.association-public-flash-viewer__placeholder span{
    font-size:80px;
}

.association-public-flash-viewer__information{
    display:flex;
    flex-direction:column;
    padding:55px 35px 35px;
}

.association-public-flash-viewer__labels{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.association-public-flash-viewer__labels span,
.association-public-flash-viewer__labels strong{
    padding:7px 10px;
    color:#fff;
    background:#2563eb;
    border-radius:999px;
    font-size:9px;
    font-weight:950;
    text-transform:uppercase;
}

.association-public-flash-viewer__labels strong{
    background:var(--association-primary,#22c55e);
}

.association-public-flash-viewer__information h3{
    margin:18px 0 10px;
    color:#0f172a;
    font-size:clamp(30px,4vw,51px);
    line-height:.95;
    letter-spacing:-.05em;
    font-weight:950;
}

.association-public-flash-viewer__information>p{
    color:#64748b;
    font-size:15px;
    line-height:1.75;
}

.association-public-flash-viewer__meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 15px;
    padding:16px 0;
    color:#94a3b8;
    font-size:10px;
    font-weight:850;
}

.association-public-flash-viewer__offer{
    margin-top:auto;
    padding:20px;
    background:#f0fdf4;
    border:1px solid #bbf7d0;
    border-radius:22px;
}

.association-public-flash-viewer__offer>span{
    color:#16a34a;
    font-size:9px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-flash-viewer__offer>strong{
    display:block;
    margin-top:7px;
    color:#0f172a;
    font-size:20px;
}

.association-public-flash-viewer__prices{
    display:flex;
    align-items:baseline;
    gap:12px;
    margin:16px 0 8px;
}

.association-public-flash-viewer__prices strong{
    color:#16a34a;
    font-size:34px;
    font-weight:950;
}

.association-public-flash-viewer__prices del{
    color:#94a3b8;
    font-size:15px;
}

.association-public-flash-viewer__offer small{
    display:block;
    color:#64748b;
    font-size:10px;
}

.association-public-flash-viewer__offer>a,
.association-public-flash-viewer__details{
    display:flex;
    justify-content:space-between;
    align-items:center;
    min-height:52px;
    margin-top:18px;
    padding:13px 17px;
    color:#fff;
    background:var(--association-primary,#22c55e);
    border-radius:15px;
    font-size:12px;
    font-weight:950;
    text-decoration:none;
}

.association-public-flash-viewer__details{
    margin-top:auto;
    background:#0f172a;
}

.association-public-flash-viewer__ended{
    margin-top:16px;
    padding:14px;
    color:#991b1b;
    background:#fef2f2;
    border-radius:14px;
    font-size:11px;
    font-weight:900;
}

.association-flash-viewer-open{
    overflow:hidden;
}

@media(max-width:700px){
    .association-public-flashes{
        margin:18px 0;
        padding:10px;
        border-radius:25px;
    }

    .association-public-flashes__header{
        grid-template-columns:1fr;
        gap:18px;
        padding:24px 20px;
        border-radius:22px;
    }

    .association-public-flashes__header h2{
        font-size:37px;
    }

    .association-public-flashes__header p{
        font-size:13px;
    }

    .association-public-flashes__count{
        display:flex;
        justify-content:space-between;
        align-items:center;
        min-width:0;
        padding:17px 19px;
    }

    .association-public-flashes__count strong{
        font-size:34px;
    }

    .association-public-flashes__count span{
        max-width:100px;
        margin:0;
        text-align:right;
    }

    .association-public-flashes__toolbar{
        padding:14px 4px 10px;
    }

    .association-public-flashes__rail{
        grid-auto-columns:calc(100vw - 58px);
        gap:12px;
    }

    .association-public-flash-card__media{
        height:290px;
    }

    .association-public-flashes__footer{
        flex-direction:column;
        align-items:stretch;
    }

    .association-public-flashes__footer>a{
        justify-content:center;
    }

    .association-public-flash-viewer{
        padding:0;
    }

    .association-public-flash-viewer__dialog{
        width:100%;
        max-height:100dvh;
        min-height:100dvh;
        border-radius:0;
    }

    .association-public-flash-viewer__content{
        grid-template-columns:1fr;
        min-height:100dvh;
    }

    .association-public-flash-viewer__media{
        min-height:44dvh;
        max-height:52dvh;
    }

    .association-public-flash-viewer__media img,
    .association-public-flash-viewer__media video,
    .association-public-flash-viewer__placeholder{
        min-height:44dvh;
        max-height:52dvh;
    }

    .association-public-flash-viewer__information{
        min-height:48dvh;
        padding:28px 20px calc(125px + env(safe-area-inset-bottom));
    }

    .association-public-flash-viewer__information h3{
        font-size:34px;
    }
}


/* ==========================================================
   FLASH TERRITORIAL — MOBILE COMPACT PREMIUM
   ========================================================== */

@media (max-width: 767px){

    .association-public-flashes{
        margin-top:18px;
        padding:14px 10px 20px;
        border-radius:24px;
        overflow:hidden;
    }

    /*
    |--------------------------------------------------------------------------
    | En-tête compact
    |--------------------------------------------------------------------------
    */

    .association-public-flashes__header{
        display:grid;
        grid-template-columns:1fr;
        gap:14px;
        padding:22px 18px 18px;
        border-radius:22px;
        min-height:0;
    }

    .association-public-flashes__eyebrow{
        margin-bottom:7px;
        font-size:9px;
        line-height:1.2;
        letter-spacing:.13em;
    }

    .association-public-flashes__header h2{
        max-width:100%;
        margin:0;
        font-size:clamp(27px,8vw,34px);
        line-height:.98;
        letter-spacing:-1.25px;
        text-wrap:balance;
    }

    .association-public-flashes__header p{
        max-width:100%;
        margin-top:12px;
        font-size:14px;
        line-height:1.55;
    }

    .association-public-flashes__count{
        width:100%;
        min-height:72px;
        padding:14px 18px;
        border-radius:19px;
        display:flex;
        flex-direction:row;
        justify-content:space-between;
        align-items:center;
        gap:14px;
    }

    .association-public-flashes__count strong{
        font-size:34px;
        line-height:1;
    }

    .association-public-flashes__count span{
        max-width:130px;
        text-align:right;
        font-size:9px;
        line-height:1.3;
    }

    /*
    |--------------------------------------------------------------------------
    | Barre de navigation
    |--------------------------------------------------------------------------
    */

    .association-public-flashes__toolbar{
        min-height:52px;
        margin:5px 0 4px;
        padding:8px 4px;
        gap:10px;
    }

    .association-public-flashes__toolbar>span{
        flex:1;
        font-size:11px;
        line-height:1.35;
    }

    .association-public-flashes__toolbar>div{
        flex:0 0 auto;
        display:flex;
        gap:7px;
    }

    .association-public-flashes__toolbar button{
        width:44px;
        height:44px;
        min-width:44px;
        padding:0;
        border-radius:50%;
        font-size:17px;
    }

    /*
    |--------------------------------------------------------------------------
    | Carrousel horizontal compact
    |--------------------------------------------------------------------------
    */

    .association-public-flashes__rail{
        display:flex;
        grid-template-columns:none;
        gap:12px;
        width:100%;
        margin:0;
        padding:4px 18px 12px 2px;
        overflow-x:auto;
        overflow-y:hidden;
        scroll-snap-type:x mandatory;
        scroll-padding-left:2px;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior-x:contain;
    }

    .association-public-flashes__rail::-webkit-scrollbar{
        display:none;
    }

    /*
    |--------------------------------------------------------------------------
    | Carte Flash
    |--------------------------------------------------------------------------
    */

    .association-public-flash-card{
        flex:0 0 min(78vw,300px);
        width:min(78vw,300px);
        min-width:min(78vw,300px);
        max-width:300px;
        min-height:0;
        height:auto;
        border-radius:25px;
        scroll-snap-align:start;
        scroll-snap-stop:always;
        overflow:hidden;
    }

    .association-public-flash-card__open{
        display:flex;
        flex-direction:column;
        height:100%;
        min-height:0;
    }

    /*
    |--------------------------------------------------------------------------
    | Média
    |--------------------------------------------------------------------------
    */

    .association-public-flash-card__media{
        position:relative;
        width:100%;
        height:210px;
        min-height:210px;
        max-height:210px;
        border-radius:0;
        overflow:hidden;
    }

    .association-public-flash-card__media img,
    .association-public-flash-card__media video{
        width:100%;
        height:100%;
        min-width:100%;
        max-width:none;
        object-fit:cover;
        object-position:center;
        border-radius:0;
    }

    .association-public-flash-card__placeholder{
        width:100%;
        height:100%;
        min-height:210px;
        display:flex;
        align-items:center;
        justify-content:center;
        border-radius:0;
    }

    .association-public-flash-card__placeholder span{
        font-size:48px;
        line-height:1;
    }

    .association-public-flash-card__overlay{
        position:absolute;
        inset:0;
        border-radius:0;
    }

    /*
    |--------------------------------------------------------------------------
    | Badges et prix
    |--------------------------------------------------------------------------
    */

    .association-public-flash-card__badges{
        top:13px;
        left:13px;
        right:13px;
        gap:6px;
    }

    .association-public-flash-card__badges span,
    .association-public-flash-card__badges strong{
        min-height:27px;
        padding:6px 9px;
        border-radius:999px;
        font-size:8px;
        line-height:1;
    }

    .association-public-flash-card__price{
        right:13px;
        bottom:13px;
        max-width:145px;
        padding:9px 11px;
        border-radius:13px;
    }

    .association-public-flash-card__price small{
        font-size:8px;
    }

    .association-public-flash-card__price strong{
        font-size:15px;
    }

    /*
    |--------------------------------------------------------------------------
    | Texte de la carte
    |--------------------------------------------------------------------------
    */

    .association-public-flash-card__body{
        flex:1;
        min-height:190px;
        padding:17px 16px 15px;
    }

    .association-public-flash-card__body>span{
        font-size:8px;
        letter-spacing:.11em;
    }

    .association-public-flash-card__body h3{
        margin-top:7px;
        font-size:20px;
        line-height:1.05;
        letter-spacing:-.45px;
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:2;
        overflow:hidden;
    }

    .association-public-flash-card__body p{
        margin-top:9px;
        font-size:13px;
        line-height:1.48;
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:3;
        overflow:hidden;
    }

    .association-public-flash-card__meta{
        margin-top:14px;
        gap:8px;
        font-size:9px;
        line-height:1.3;
    }

    /*
    |--------------------------------------------------------------------------
    | Offre commerciale
    |--------------------------------------------------------------------------
    */

    .association-public-flash-card__commerce{
        margin-top:13px;
        gap:10px;
    }

    .association-public-flash-card__commerce div{
        gap:6px;
    }

    .association-public-flash-card__commerce>a{
        min-height:44px;
        padding:11px 13px;
        border-radius:13px;
        font-size:11px;
    }

    .association-public-flash-card__commerce>strong{
        font-size:10px;
    }

    /*
    |--------------------------------------------------------------------------
    | Pied de section compact
    |--------------------------------------------------------------------------
    */

    .association-public-flashes__footer{
        grid-template-columns:1fr;
        gap:14px;
        margin-top:12px;
        padding:18px 16px;
        border-radius:20px;
    }

    .association-public-flashes__footer div{
        gap:5px;
    }

    .association-public-flashes__footer span{
        font-size:9px;
    }

    .association-public-flashes__footer strong{
        font-size:20px;
        line-height:1.15;
    }

    .association-public-flashes__footer>a{
        width:100%;
        min-height:48px;
        justify-content:center;
    }

    /*
    |--------------------------------------------------------------------------
    | Lecteur plein écran
    |--------------------------------------------------------------------------
    */

    .association-public-flash-viewer{
        padding:
            max(12px,env(safe-area-inset-top))
            10px
            max(18px,env(safe-area-inset-bottom));
    }

    .association-public-flash-viewer__dialog{
        width:100%;
        max-width:390px;
        max-height:calc(100svh - 30px);
        border-radius:25px;
        overflow-y:auto;
    }

    .association-public-flash-viewer__content{
        grid-template-columns:1fr;
        min-height:0;
    }

    .association-public-flash-viewer__media{
        height:min(52svh,430px);
        min-height:290px;
    }

    .association-public-flash-viewer__media img,
    .association-public-flash-viewer__media video,
    .association-public-flash-viewer__placeholder{
        width:100%;
        height:100%;
        object-fit:cover;
    }

    .association-public-flash-viewer__information{
        padding:20px 17px 24px;
    }

    .association-public-flash-viewer__information h3{
        font-size:25px;
        line-height:1.04;
        letter-spacing:-.7px;
    }

    .association-public-flash-viewer__information>p{
        font-size:14px;
        line-height:1.55;
    }
}

@media (max-width: 389px){

    .association-public-flashes__header h2{
        font-size:27px;
    }

    .association-public-flash-card{
        flex-basis:82vw;
        width:82vw;
        min-width:82vw;
    }

    .association-public-flash-card__media{
        height:195px;
        min-height:195px;
        max-height:195px;
    }

    .association-public-flash-card__placeholder{
        min-height:195px;
    }

    .association-public-flash-card__body{
        min-height:180px;
        padding:15px 14px;
    }
}




/* FLASH TERRITORIAL — COMPACT GLOBAL FINAL */

.association-public-flashes__header{
    min-height:0 !important;
    padding:30px 34px !important;
    align-items:center !important;
}

.association-public-flashes__header h2{
    max-width:760px !important;
    margin:0 !important;
    font-size:clamp(38px,4.1vw,62px) !important;
    line-height:.94 !important;
    letter-spacing:-2.4px !important;
}

.association-public-flashes__header p{
    max-width:720px !important;
    margin-top:13px !important;
    font-size:14px !important;
    line-height:1.5 !important;
}

.association-public-flashes__count{
    width:128px !important;
    min-width:128px !important;
    min-height:104px !important;
    padding:17px !important;
    border-radius:22px !important;
}

.association-public-flashes__count strong{
    font-size:36px !important;
}

.association-public-flashes__rail{
    gap:14px !important;
    align-items:stretch !important;
}

.association-public-flash-card{
    min-width:0 !important;
    min-height:0 !important;
    height:auto !important;
    border-radius:24px !important;
}

.association-public-flash-card__open{
    height:100% !important;
}

.association-public-flash-card__media{
    width:100% !important;
    height:190px !important;
    min-height:190px !important;
    max-height:190px !important;
}

.association-public-flash-card__media img,
.association-public-flash-card__media video,
.association-public-flash-card__placeholder{
    width:100% !important;
    height:100% !important;
    min-height:190px !important;
    object-fit:cover !important;
}

.association-public-flash-card__body{
    min-height:180px !important;
    padding:17px !important;
}

.association-public-flash-card__body h3{
    font-size:19px !important;
    line-height:1.06 !important;
}

.association-public-flash-card__body p{
    font-size:12px !important;
    line-height:1.45 !important;
}


/* TABLETTE */

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

    .association-public-flashes__header h2{
        max-width:620px !important;
        font-size:42px !important;
    }

    .association-public-flashes__rail{
        display:grid !important;
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}


/* ORDINATEUR */

@media (min-width:1101px){

    .association-public-flashes__rail{
        display:grid !important;
        grid-template-columns:repeat(4,minmax(0,1fr)) !important;
        overflow:visible !important;
        padding-right:0 !important;
    }
}


/* MOBILE — PRIORITÉ FINALE */

@media (max-width:767px){

    .association-public-flashes{
        padding:12px 9px 18px !important;
    }

    .association-public-flashes__header{
        display:block !important;
        padding:20px 17px !important;
        border-radius:22px !important;
    }

    .association-public-flashes__header h2{
        max-width:100% !important;
        font-size:29px !important;
        line-height:.98 !important;
        letter-spacing:-1.1px !important;
    }

    .association-public-flashes__header p{
        margin-top:11px !important;
        font-size:13px !important;
        line-height:1.5 !important;
    }

    .association-public-flashes__count{
        width:100% !important;
        min-width:0 !important;
        min-height:68px !important;
        margin-top:16px !important;
        padding:13px 16px !important;
        display:flex !important;
        flex-direction:row !important;
        justify-content:space-between !important;
        align-items:center !important;
    }

    .association-public-flashes__count strong{
        font-size:31px !important;
    }

    .association-public-flashes__rail{
        display:flex !important;
        grid-template-columns:none !important;
        gap:12px !important;
        overflow-x:auto !important;
        overflow-y:hidden !important;
        scroll-snap-type:x mandatory !important;
    }

    .association-public-flash-card{
        flex:0 0 78vw !important;
        width:78vw !important;
        min-width:78vw !important;
        max-width:300px !important;
        scroll-snap-align:start !important;
    }

    .association-public-flash-card__media{
        height:185px !important;
        min-height:185px !important;
        max-height:185px !important;
    }

    .association-public-flash-card__media img,
    .association-public-flash-card__media video,
    .association-public-flash-card__placeholder{
        min-height:185px !important;
    }

    .association-public-flash-card__body{
        min-height:175px !important;
        padding:15px !important;
    }

    .association-public-flash-card__body h3{
        font-size:19px !important;
    }
}



/* =========================================================
   FLASH TERRITORIAL — STORIES IMMERSIVES PREMIUM
   ========================================================= */

.association-story-section,
.association-story-section *{
    box-sizing:border-box;
}

.association-story-section{
    position:relative;
    width:100%;
    margin:22px 0 30px;
    padding:18px;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.08);
    border-radius:30px;
    background:
        radial-gradient(
            circle at 92% 0,
            rgba(34,197,94,.10),
            transparent 30%
        ),
        #f8fafc;
    box-shadow:0 18px 50px rgba(15,23,42,.07);
}

.association-story-section__top{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    padding:25px 27px;
    color:#fff;
    border-radius:24px;
    background:
        radial-gradient(
            circle at 85% 0,
            rgba(34,197,94,.85),
            transparent 34%
        ),
        linear-gradient(135deg,#0f172a,#064e3b);
    box-shadow:0 18px 42px rgba(15,23,42,.18);
}

.association-story-section__heading{
    max-width:760px;
}

.association-story-section__heading>span{
    display:block;
    margin-bottom:8px;
    color:#86efac;
    font-size:11px;
    font-weight:950;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.association-story-section__heading h2{
    max-width:680px;
    margin:0;
    color:#fff !important;
    font-size:clamp(29px,3.6vw,51px) !important;
    font-weight:950 !important;
    line-height:.96 !important;
    letter-spacing:-.055em !important;
}

.association-story-section__heading p{
    max-width:670px;
    margin:13px 0 0;
    color:rgba(255,255,255,.76);
    font-size:14px;
    line-height:1.55;
}

.association-story-section__counter{
    flex:0 0 auto;
    min-width:135px;
    padding:17px 19px;
    border:1px solid rgba(255,255,255,.20);
    border-radius:20px;
    color:#0f172a;
    background:#fff;
    box-shadow:0 15px 30px rgba(15,23,42,.15);
}

.association-story-section__counter strong{
    display:block;
    color:#22c55e;
    font-size:38px;
    font-weight:950;
    line-height:1;
}

.association-story-section__counter span{
    display:block;
    margin-top:6px;
    color:#64748b;
    font-size:9px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-story-navigation{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:16px 5px 12px;
}

.association-story-navigation__label{
    color:#64748b;
    font-size:12px;
    font-weight:850;
}

.association-story-navigation__buttons{
    display:flex;
    gap:7px;
}

.association-story-navigation__buttons button{
    width:38px;
    height:38px;
    padding:0;
    border:0;
    border-radius:999px;
    color:#fff;
    background:#22c55e;
    font-size:17px;
    font-weight:950;
    cursor:pointer;
    box-shadow:0 9px 20px rgba(34,197,94,.25);
    transition:
        transform .2s ease,
        background .2s ease;
}

.association-story-navigation__buttons button:hover{
    transform:translateY(-2px);
    background:#16a34a;
}

.association-story-rail{
    display:flex;
    align-items:flex-start;
    gap:16px;
    width:100%;
    padding:4px 4px 13px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
}

.association-story-rail::-webkit-scrollbar{
    display:none;
}

.association-story-bubble{
    flex:0 0 108px;
    display:flex;
    flex-direction:column;
    align-items:center;
    min-width:0;
    padding:0;
    border:0;
    color:inherit;
    text-decoration:none;
    background:none;
    font:inherit;
    cursor:pointer;
    scroll-snap-align:start;
}

.association-story-bubble__ring{
    position:relative;
    display:grid;
    place-items:center;
    width:88px;
    height:88px;
    padding:4px;
    border-radius:999px;
    background:
        linear-gradient(
            135deg,
            #22c55e,
            #2563eb 55%,
            #a855f7
        );
    box-shadow:
        0 10px 24px rgba(15,23,42,.16),
        0 0 0 4px #fff;
    transition:
        transform .22s ease,
        box-shadow .22s ease;
}

.association-story-bubble:hover
.association-story-bubble__ring{
    transform:translateY(-4px) scale(1.025);
    box-shadow:
        0 16px 32px rgba(15,23,42,.20),
        0 0 0 4px #fff;
}

.association-story-bubble__media{
    position:relative;
    display:grid;
    place-items:center;
    width:100%;
    height:100%;
    overflow:hidden;
    border:3px solid #fff;
    border-radius:inherit;
    background:
        radial-gradient(
            circle at 25% 15%,
            #22c55e,
            transparent 36%
        ),
        linear-gradient(145deg,#0f172a,#064e3b);
}

.association-story-bubble__media img,
.association-story-bubble__media video{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.association-story-bubble__placeholder{
    color:#fff;
    font-size:12px;
    font-weight:950;
    letter-spacing:.08em;
}

.association-story-bubble__sale{
    position:absolute;
    right:-5px;
    bottom:2px;
    z-index:4;
    padding:5px 8px;
    border:3px solid #fff;
    border-radius:999px;
    color:#fff;
    background:#ef4444;
    font-size:8px;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.association-story-bubble>strong{
    width:100%;
    margin-top:10px;
    overflow:hidden;
    color:#0f172a;
    font-size:12px;
    font-weight:900;
    line-height:1.15;
    text-align:center;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.association-story-bubble>small{
    width:100%;
    margin-top:3px;
    overflow:hidden;
    color:#94a3b8;
    font-size:9px;
    font-weight:750;
    text-align:center;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.association-story-bubble--create
.association-story-bubble__ring,
.association-story-bubble--manage
.association-story-bubble__ring{
    background:#e2e8f0;
}

.association-story-bubble__create-icon,
.association-story-bubble__manage-icon{
    display:grid;
    place-items:center;
    width:100%;
    height:100%;
    border:3px dashed #94a3b8;
    border-radius:inherit;
    color:#2563eb;
    background:#fff;
    font-size:32px;
    font-weight:900;
}

.association-story-bubble__manage-icon{
    color:#0f172a;
    font-size:11px;
}

.association-story-section__footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:10px;
    padding:18px 20px;
    border:1px solid rgba(15,23,42,.07);
    border-radius:20px;
    background:#fff;
}

.association-story-section__footer div{
    min-width:0;
}

.association-story-section__footer div>span{
    display:block;
    margin-bottom:5px;
    color:#22c55e;
    font-size:9px;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.association-story-section__footer div>strong{
    display:block;
    color:#334155;
    font-size:15px;
    font-weight:900;
}

.association-story-section__footer>a{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:45px;
    padding:0 18px;
    border-radius:14px;
    color:#fff;
    text-decoration:none;
    background:#0f172a;
    font-size:12px;
    font-weight:900;
}

/* VIEWER PLEIN ÉCRAN */

html.association-story-is-open{
    overflow:hidden !important;
}

.association-story-viewer[hidden]{
    display:none !important;
}

.association-story-viewer{
    position:fixed;
    inset:0;
    z-index:9999999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    opacity:0;
    visibility:hidden;
    transition:
        opacity .22s ease,
        visibility .22s ease;
}

.association-story-viewer.is-open{
    opacity:1;
    visibility:visible;
}

.association-story-viewer__backdrop{
    position:absolute;
    inset:0;
    background:rgba(2,6,23,.90);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.association-story-viewer__dialog{
    position:relative;
    z-index:2;
    width:min(430px,100%);
    height:min(820px,calc(100svh - 30px));
    overflow:hidden;
    border:1px solid rgba(255,255,255,.16);
    border-radius:30px;
    color:#fff;
    background:#020617;
    box-shadow:0 40px 100px rgba(0,0,0,.55);
    transform:translateY(18px) scale(.98);
    transition:transform .25s ease;
}

.association-story-viewer.is-open
.association-story-viewer__dialog{
    transform:translateY(0) scale(1);
}

.association-story-viewer__progress{
    position:absolute;
    top:13px;
    left:14px;
    right:14px;
    z-index:40;
    display:flex;
    gap:4px;
}

.association-story-viewer__progress>span{
    flex:1;
    height:3px;
    overflow:hidden;
    border-radius:99px;
    background:rgba(255,255,255,.30);
}

.association-story-viewer__progress i{
    display:block;
    width:100%;
    height:100%;
    border-radius:inherit;
    background:#fff;
    transform:scaleX(0);
    transform-origin:left center;
}

.association-story-viewer__header{
    position:absolute;
    top:25px;
    left:14px;
    right:14px;
    z-index:42;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.association-story-viewer__identity{
    display:flex;
    align-items:center;
    min-width:0;
    gap:10px;
}

.association-story-viewer__avatar{
    flex:0 0 auto;
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    overflow:hidden;
    border:2px solid rgba(255,255,255,.80);
    border-radius:999px;
    color:#fff;
    background:#0f172a;
    font-size:11px;
    font-weight:950;
}

.association-story-viewer__avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.association-story-viewer__identity div{
    min-width:0;
}

.association-story-viewer__identity strong,
.association-story-viewer__identity small{
    display:block;
    overflow:hidden;
    color:#fff;
    text-shadow:0 2px 10px rgba(0,0,0,.55);
    text-overflow:ellipsis;
    white-space:nowrap;
}

.association-story-viewer__identity strong{
    font-size:13px;
    font-weight:900;
}

.association-story-viewer__identity small{
    margin-top:2px;
    color:rgba(255,255,255,.72);
    font-size:10px;
    font-weight:700;
}

.association-story-viewer__header-actions{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:5px;
}

.association-story-viewer__header-actions button{
    min-width:34px;
    height:34px;
    padding:0 9px;
    border:0;
    border-radius:999px;
    color:#fff;
    background:rgba(15,23,42,.52);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    font-size:10px;
    font-weight:900;
    cursor:pointer;
}

.association-story-viewer__header-actions button:last-child{
    width:34px;
    padding:0;
    font-size:25px;
    font-weight:400;
}

.association-story-viewer__slides,
.association-story-slide{
    position:absolute;
    inset:0;
}

.association-story-slide[hidden]{
    display:none !important;
}

.association-story-slide{
    overflow:hidden;
    background:#020617;
}

.association-story-slide__background{
    position:absolute;
    inset:-30px;
    z-index:1;
    opacity:.46;
    filter:blur(35px) saturate(1.25);
    transform:scale(1.15);
}

.association-story-slide__background img,
.association-story-slide__background video{
    width:100%;
    height:100%;
    object-fit:cover;
}

.association-story-slide__media{
    position:absolute;
    inset:0;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    background:
        radial-gradient(
            circle at 50% 30%,
            rgba(37,99,235,.20),
            transparent 42%
        );
}

.association-story-slide__media img,
.association-story-slide__media video{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    background:#020617;
}

.association-story-slide__placeholder{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    padding:45px;
    text-align:center;
    background:
        radial-gradient(
            circle at 20% 15%,
            rgba(34,197,94,.90),
            transparent 34%
        ),
        radial-gradient(
            circle at 90% 70%,
            rgba(37,99,235,.75),
            transparent 38%
        ),
        linear-gradient(145deg,#020617,#052e16);
}

.association-story-slide__placeholder span{
    margin-bottom:18px;
    color:#86efac;
    font-size:12px;
    font-weight:950;
    letter-spacing:.18em;
}

.association-story-slide__placeholder strong{
    max-width:300px;
    color:#fff;
    font-size:34px;
    font-weight:950;
    line-height:1;
    letter-spacing:-.045em;
}

.association-story-slide__gradient{
    position:absolute;
    inset:0;
    z-index:5;
    pointer-events:none;
    background:
        linear-gradient(
            to bottom,
            rgba(2,6,23,.54),
            transparent 24%,
            transparent 48%,
            rgba(2,6,23,.88) 79%,
            #020617
        );
}

.association-story-slide__content{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:15;
    padding:70px 20px 20px;
}

.association-story-slide__labels{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:9px;
}

.association-story-slide__labels span,
.association-story-slide__labels strong{
    display:inline-flex;
    align-items:center;
    min-height:25px;
    padding:0 9px;
    border:1px solid rgba(255,255,255,.15);
    border-radius:999px;
    color:#fff;
    background:rgba(15,23,42,.48);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    font-size:8px;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.association-story-slide__labels strong{
    color:#052e16;
    background:#86efac;
}

.association-story-slide__content h3{
    max-width:360px;
    margin:0;
    color:#fff !important;
    font-size:clamp(27px,7vw,39px) !important;
    font-weight:950 !important;
    line-height:.98 !important;
    letter-spacing:-.045em !important;
    text-shadow:0 4px 20px rgba(0,0,0,.45);
}

.association-story-slide__content>p{
    display:-webkit-box;
    max-width:365px;
    margin:10px 0 0;
    overflow:hidden;
    color:rgba(255,255,255,.80);
    font-size:13px;
    line-height:1.48;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
}

.association-story-slide__meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px 13px;
    margin-top:11px;
    color:rgba(255,255,255,.66);
    font-size:9px;
    font-weight:800;
}

.association-story-offer{
    margin-top:13px;
    padding:13px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:17px;
    background:rgba(255,255,255,.11);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.association-story-offer__top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
}

.association-story-offer__top>div:first-child{
    min-width:0;
}

.association-story-offer__top span{
    display:block;
    color:#86efac;
    font-size:8px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.association-story-offer__top>div:first-child>strong{
    display:block;
    margin-top:4px;
    overflow:hidden;
    color:#fff;
    font-size:13px;
    font-weight:900;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.association-story-offer__price{
    flex:0 0 auto;
    text-align:right;
}

.association-story-offer__price del{
    display:block;
    color:rgba(255,255,255,.50);
    font-size:9px;
}

.association-story-offer__price strong{
    display:block;
    color:#fff;
    font-size:19px;
    font-weight:950;
}

.association-story-offer__status{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    margin-top:9px;
}

.association-story-offer__status span{
    display:inline-flex;
    padding:5px 7px;
    border-radius:999px;
    color:#fff;
    background:rgba(15,23,42,.48);
    font-size:8px;
    font-weight:850;
}

.association-story-offer__cta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:44px;
    margin-top:10px;
    padding:0 14px;
    border-radius:13px;
    color:#052e16;
    text-decoration:none;
    background:#86efac;
    font-size:11px;
    font-weight:950;
}

.association-story-offer__ended{
    margin-top:10px;
    padding:10px 12px;
    border-radius:12px;
    color:#fecaca;
    background:rgba(127,29,29,.42);
    font-size:10px;
    font-weight:850;
}

.association-story-slide__actions{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
    margin-top:11px;
}

.association-story-slide__actions button,
.association-story-slide__actions a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:39px;
    padding:7px;
    border:1px solid rgba(255,255,255,.15);
    border-radius:12px;
    color:#fff;
    text-align:center;
    text-decoration:none;
    background:rgba(15,23,42,.52);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    font-family:inherit;
    font-size:9px;
    font-weight:900;
    cursor:pointer;
}

.association-story-viewer__tap{
    position:absolute;
    top:85px;
    bottom:200px;
    z-index:24;
    width:28%;
    padding:0;
    border:0;
    background:transparent;
    cursor:pointer;
}

.association-story-viewer__tap--previous{
    left:0;
}

.association-story-viewer__tap--next{
    right:0;
}

/* MOBILE */

@media (max-width:767px){
    .association-story-section{
        margin:14px 0 22px;
        padding:10px;
        border-radius:23px;
    }

    .association-story-section__top{
        display:block;
        padding:20px;
        border-radius:20px;
    }

    .association-story-section__heading>span{
        margin-bottom:7px;
        font-size:9px;
    }

    .association-story-section__heading h2{
        max-width:290px;
        font-size:30px !important;
        line-height:.98 !important;
    }

    .association-story-section__heading p{
        margin-top:11px;
        font-size:13px;
    }

    .association-story-section__counter{
        display:flex;
        align-items:center;
        justify-content:space-between;
        width:100%;
        min-width:0;
        margin-top:18px;
        padding:14px 16px;
    }

    .association-story-section__counter strong{
        font-size:31px;
    }

    .association-story-navigation{
        padding:13px 2px 10px;
    }

    .association-story-navigation__label{
        max-width:210px;
        font-size:10px;
    }

    .association-story-navigation__buttons button{
        width:35px;
        height:35px;
    }

    .association-story-rail{
        gap:12px;
        padding:4px 4px 10px;
    }

    .association-story-bubble{
        flex-basis:82px;
    }

    .association-story-bubble__ring{
        width:69px;
        height:69px;
        padding:3px;
    }

    .association-story-bubble>strong{
        margin-top:8px;
        font-size:10px;
    }

    .association-story-bubble>small{
        font-size:8px;
    }

    .association-story-section__footer{
        display:block;
        padding:16px;
    }

    .association-story-section__footer div>strong{
        font-size:13px;
    }

    .association-story-section__footer>a{
        width:100%;
        margin-top:13px;
    }

    .association-story-viewer{
        padding:0;
    }

    .association-story-viewer__dialog{
        width:100%;
        height:100svh;
        max-height:none;
        border:0;
        border-radius:0;
    }

    .association-story-slide__content{
        padding:
            70px
            15px
            calc(104px + env(safe-area-inset-bottom));
    }

    .association-story-slide__content h3{
        max-width:310px;
        font-size:29px !important;
    }

    .association-story-slide__content>p{
        font-size:12px;
        -webkit-line-clamp:3;
    }

    .association-story-slide__actions{
        gap:5px;
    }

    .association-story-slide__actions button,
    .association-story-slide__actions a{
        min-height:37px;
        padding:5px;
        font-size:8px;
    }

    .association-story-viewer__header{
        top:calc(25px + env(safe-area-inset-top));
    }

    .association-story-viewer__progress{
        top:calc(11px + env(safe-area-inset-top));
    }

    .association-story-viewer__tap{
        bottom:240px;
    }
}

/* =========================================================
   FLASH TERRITORIAL — BANDEAU PLUS COMPACT
   ========================================================= */

.association-story-section__top{
    min-height:0 !important;
    padding:28px 32px !important;
}

.association-story-section__heading{
    max-width:760px !important;
}

.association-story-section__heading h2{
    margin:6px 0 10px !important;
    font-size:clamp(30px, 3.6vw, 54px) !important;
    line-height:.94 !important;
    letter-spacing:-2px !important;
}

.association-story-section__heading p{
    margin:0 !important;
    max-width:680px !important;
    font-size:14px !important;
    line-height:1.45 !important;
}

.association-story-section__count{
    min-width:105px !important;
    min-height:88px !important;
    padding:14px !important;
}

.association-story-section__count strong{
    font-size:32px !important;
}

@media (max-width:767px){
    .association-story-section__top{
        padding:22px 20px !important;
        border-radius:26px !important;
    }

    .association-story-section__heading h2{
        font-size:30px !important;
        line-height:1 !important;
        letter-spacing:-1.2px !important;
    }

    .association-story-section__heading p{
        font-size:14px !important;
    }

    .association-story-section__count{
        width:100% !important;
        min-height:68px !important;
        padding:12px 16px !important;
    }

    .association-story-section__count strong{
        font-size:28px !important;
    }
}

/* =========================================================
   FLASH TERRITORIAL — NOUVEAU COMPOSANT / BANDEAU COMPACT
   ========================================================= */

.association-story-section{
    width:100%;
    margin:22px 0 28px;
    overflow:hidden;
}

.association-story-section__top{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    gap:24px !important;
    min-height:0 !important;
    padding:24px 28px !important;
    color:#fff !important;
    background:
        linear-gradient(
            125deg,
            #172033,
            color-mix(
                in srgb,
                var(--association-primary,#22c55e) 72%,
                #0f172a
            )
        ) !important;
    border-radius:26px !important;
}

.association-story-section__heading{
    min-width:0 !important;
    max-width:760px !important;
}

.association-story-section__heading > span{
    display:block !important;
    margin-bottom:6px !important;
    color:#bbf7d0 !important;
    font-size:9px !important;
    line-height:1.2 !important;
    font-weight:950 !important;
    letter-spacing:.15em !important;
    text-transform:uppercase !important;
}

.association-story-section__heading h2{
    max-width:720px !important;
    margin:0 !important;
    color:#fff !important;
    font-size:clamp(29px,3.2vw,48px) !important;
    line-height:.96 !important;
    letter-spacing:-.045em !important;
    font-weight:950 !important;
}

.association-story-section__heading p{
    max-width:650px !important;
    margin:10px 0 0 !important;
    color:rgba(255,255,255,.72) !important;
    font-size:13px !important;
    line-height:1.45 !important;
}

.association-story-section__counter{
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    min-width:112px !important;
    min-height:82px !important;
    padding:14px 16px !important;
    color:#0f172a !important;
    background:#fff !important;
    border-radius:20px !important;
}

.association-story-section__counter strong{
    display:block !important;
    color:var(--association-primary,#22c55e) !important;
    font-size:31px !important;
    line-height:1 !important;
    font-weight:950 !important;
}

.association-story-section__counter span{
    display:block !important;
    margin-top:7px !important;
    color:#64748b !important;
    font-size:8px !important;
    line-height:1.25 !important;
    font-weight:950 !important;
    letter-spacing:.1em !important;
    text-transform:uppercase !important;
}

@media (max-width:767px){
    .association-story-section{
        margin:16px 0 22px !important;
    }

    .association-story-section__top{
        grid-template-columns:1fr !important;
        gap:14px !important;
        padding:20px 18px !important;
        border-radius:23px !important;
    }

    .association-story-section__heading h2{
        max-width:100% !important;
        font-size:29px !important;
        line-height:1 !important;
        letter-spacing:-1.1px !important;
    }

    .association-story-section__heading p{
        margin-top:9px !important;
        font-size:13px !important;
        line-height:1.45 !important;
    }

    .association-story-section__counter{
        flex-direction:row !important;
        justify-content:space-between !important;
        align-items:center !important;
        width:100% !important;
        min-width:0 !important;
        min-height:62px !important;
        padding:12px 16px !important;
        border-radius:17px !important;
    }

    .association-story-section__counter strong{
        font-size:28px !important;
    }

    .association-story-section__counter span{
        max-width:110px !important;
        margin:0 !important;
        text-align:right !important;
    }
}

/* ==========================================================
   FLASH TERRITORIAL — VIEWER FIXED BODY DEFINITIF
   ========================================================== */

html.association-story-is-open,
html.association-story-is-open body{
    overflow:hidden !important;
    overscroll-behavior:none;
}

body > .association-story-viewer[hidden]{
    display:none !important;
}

body > .association-story-viewer{
    position:fixed !important;
    inset:0 !important;
    z-index:2147483000 !important;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100vw;
    height:100vh;
    height:100dvh;
    margin:0 !important;
    padding:20px;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    isolation:isolate;
    transform:none !important;
}

body > .association-story-viewer.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

body > .association-story-viewer
.association-story-viewer__backdrop{
    position:absolute;
    inset:0;
    z-index:0;
    display:block;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    background:
        radial-gradient(
            circle at 50% 35%,
            rgba(30,41,59,.72),
            rgba(2,6,23,.97) 72%
        );
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
}

body > .association-story-viewer
.association-story-viewer__dialog{
    position:relative !important;
    z-index:2 !important;
    display:block !important;
    width:min(430px, calc(100vw - 40px));
    height:min(820px, calc(100dvh - 40px));
    min-height:0 !important;
    max-height:calc(100dvh - 40px);
    overflow:hidden !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(18px) scale(.98);
    background:#020617;
    border:1px solid rgba(255,255,255,.16);
    border-radius:30px;
    box-shadow:0 35px 120px rgba(0,0,0,.72);
    transition:
        transform .22s ease,
        opacity .22s ease;
}

body > .association-story-viewer.is-open
.association-story-viewer__dialog{
    transform:translateY(0) scale(1);
}

body > .association-story-viewer
.association-story-viewer__slides{
    position:absolute !important;
    inset:0 !important;
    z-index:1;
    display:block !important;
    width:100%;
    height:100%;
    overflow:hidden;
}

body > .association-story-viewer
.association-story-slide{
    position:absolute !important;
    inset:0 !important;
    display:block;
    width:100%;
    height:100%;
    min-height:0 !important;
    overflow:hidden;
    background:#020617;
}

body > .association-story-viewer
.association-story-slide[hidden]{
    display:none !important;
}

body > .association-story-viewer
.association-story-slide.is-active{
    display:block !important;
}

body > .association-story-viewer
.association-story-slide__background{
    position:absolute;
    inset:-30px;
    z-index:0;
    overflow:hidden;
    opacity:.45;
    filter:blur(24px) saturate(1.15);
    transform:scale(1.12);
}

body > .association-story-viewer
.association-story-slide__background img,
body > .association-story-viewer
.association-story-slide__background video{
    width:100%;
    height:100%;
    object-fit:cover;
}

body > .association-story-viewer
.association-story-slide__media{
    position:absolute !important;
    inset:0 !important;
    z-index:1;
    display:flex !important;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    min-height:0 !important;
    background:#020617;
}

body > .association-story-viewer
.association-story-slide__media img,
body > .association-story-viewer
.association-story-slide__media video{
    display:block !important;
    width:100%;
    height:100%;
    min-height:0 !important;
    max-height:none !important;
    object-fit:contain;
    background:#020617;
}

body > .association-story-viewer
.association-story-slide__placeholder{
    display:flex !important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:16px;
    width:100%;
    height:100%;
    padding:80px 28px 180px;
    color:#fff;
    text-align:center;
    background:
        radial-gradient(
            circle at 30% 20%,
            var(--association-primary,#22c55e),
            transparent 42%
        ),
        linear-gradient(145deg,#111827,#020617);
}

body > .association-story-viewer
.association-story-slide__placeholder span{
    font-size:13px;
    font-weight:950;
    letter-spacing:.18em;
}

body > .association-story-viewer
.association-story-slide__placeholder strong{
    max-width:330px;
    color:#fff;
    font-size:clamp(30px,8vw,48px);
    line-height:.98;
    letter-spacing:-.045em;
}

body > .association-story-viewer
.association-story-slide__gradient{
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    background:
        linear-gradient(
            to bottom,
            rgba(2,6,23,.72) 0,
            rgba(2,6,23,.05) 24%,
            rgba(2,6,23,.10) 48%,
            rgba(2,6,23,.94) 100%
        );
}

body > .association-story-viewer
.association-story-slide__content{
    position:absolute !important;
    left:0;
    right:0;
    bottom:0;
    z-index:5;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    max-height:65%;
    padding:30px 24px 25px;
    overflow-y:auto;
    color:#fff;
}

body > .association-story-viewer
.association-story-slide__content h3{
    margin:10px 0 8px;
    color:#fff;
    font-size:clamp(27px,6vw,40px);
    line-height:1;
    letter-spacing:-.04em;
}

body > .association-story-viewer
.association-story-slide__content > p{
    margin:0;
    color:rgba(255,255,255,.82);
    font-size:14px;
    line-height:1.55;
}

body > .association-story-viewer
.association-story-viewer__progress,
body > .association-story-viewer
.association-story-viewer__header{
    z-index:20 !important;
}

body > .association-story-viewer
.association-story-viewer__tap{
    z-index:10 !important;
}

body > .association-story-viewer
.association-story-slide__actions,
body > .association-story-viewer
.association-story-offer{
    position:relative;
    z-index:30;
}

@media(max-width:700px){
    body > .association-story-viewer{
        padding:0 !important;
    }

    body > .association-story-viewer
    .association-story-viewer__dialog{
        width:100vw !important;
        height:100dvh !important;
        max-height:100dvh !important;
        border:0;
        border-radius:0;
    }

    body > .association-story-viewer
    .association-story-slide__content{
        padding:
            24px
            18px
            calc(110px + env(safe-area-inset-bottom));
    }

    body > .association-story-viewer
    .association-story-slide__content h3{
        font-size:29px;
    }
}

/* ==========================================================
   FLASH TERRITORIAL — LISIBILITÉ VIEWER ET VENTE FLASH
   ========================================================== */

body > .association-story-viewer
.association-story-slide__placeholder-symbol{
    display:flex;
    align-items:center;
    justify-content:center;
    width:92px;
    height:92px;
    margin-top:18px;
    color:#fff;
    background:rgba(255,255,255,.11);
    border:1px solid rgba(255,255,255,.17);
    border-radius:30px;
    font-size:44px;
    box-shadow:0 22px 65px rgba(0,0,0,.24);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
}

body > .association-story-viewer
.association-story-slide__content h3{
    overflow-wrap:anywhere;
    word-break:normal;
    text-wrap:balance;
}

body > .association-story-viewer
.association-story-slide--commercial
.association-story-slide__content{
    max-height:72%;
}

body > .association-story-viewer
.association-story-slide--commercial
.association-story-slide__content h3{
    max-width:100%;
    margin:8px 0 7px;
    font-size:clamp(25px,4.3vw,36px);
    line-height:1.02;
    letter-spacing:-.035em;
}

body > .association-story-viewer
.association-story-offer{
    width:100%;
    margin-top:14px;
}

body > .association-story-viewer
.association-story-offer__top{
    gap:12px;
}

body > .association-story-viewer
.association-story-slide__actions{
    width:100%;
}

@media(max-width:700px){
    body > .association-story-viewer
    .association-story-slide__content{
        left:0;
        right:0;
        bottom:0;
        width:100%;
        max-height:66%;
        padding:
            22px
            17px
            calc(72px + env(safe-area-inset-bottom));
    }

    body > .association-story-viewer
    .association-story-slide__content h3{
        margin:8px 0 7px;
        font-size:27px;
        line-height:1.02;
    }

    body > .association-story-viewer
    .association-story-slide--commercial
    .association-story-slide__content{
        max-height:76%;
        padding-bottom:
            calc(64px + env(safe-area-inset-bottom));
    }

    body > .association-story-viewer
    .association-story-slide--commercial
    .association-story-slide__content h3{
        font-size:25px;
        line-height:1.02;
    }

    body > .association-story-viewer
    .association-story-slide__content > p{
        display:-webkit-box;
        overflow:hidden;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:2;
        font-size:13px;
        line-height:1.45;
    }

    body > .association-story-viewer
    .association-story-offer{
        padding:14px;
        border-radius:18px;
    }

    body > .association-story-viewer
    .association-story-offer__price strong{
        font-size:24px;
    }

    body > .association-story-viewer
    .association-story-slide__actions{
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:6px;
        margin-top:10px;
    }

    body > .association-story-viewer
    .association-story-slide__actions button,
    body > .association-story-viewer
    .association-story-slide__actions a{
        min-width:0;
        min-height:42px;
        padding:8px 5px;
        text-align:center;
        font-size:9px;
        line-height:1.15;
    }
}

/* ==========================================================
   BOUTIQUE ASSOCIATION — FICHE PUBLIQUE V2 PREMIUM
   ========================================================== */

.association-public-shop{
    width:100%;
    margin:30px 0;
    padding:20px;
    overflow:hidden;
    background:
        radial-gradient(
            circle at 95% 5%,
            color-mix(
                in srgb,
                var(--association-primary,#22c55e) 15%,
                transparent
            ),
            transparent 38%
        ),
        #f8fafc;
    border:1px solid rgba(148,163,184,.18);
    border-radius:32px;
}

.association-public-shop__header{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:25px;
    padding:30px;
    color:#fff;
    background:
        linear-gradient(
            130deg,
            #111827,
            color-mix(
                in srgb,
                var(--association-primary,#22c55e) 64%,
                #0f172a
            )
        );
    border-radius:27px;
}

.association-public-shop__eyebrow{
    display:block;
    margin-bottom:8px;
    color:#bbf7d0;
    font-size:9px;
    font-weight:950;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.association-public-shop__header h2{
    max-width:780px;
    margin:0;
    color:#fff;
    font-size:clamp(32px,4vw,58px);
    line-height:.96;
    letter-spacing:-.05em;
    font-weight:950;
}

.association-public-shop__header p{
    max-width:680px;
    margin:14px 0 0;
    color:rgba(255,255,255,.72);
    font-size:14px;
    line-height:1.6;
}

.association-public-shop__count{
    min-width:135px;
    padding:20px;
    color:#0f172a;
    background:#fff;
    border-radius:21px;
}

.association-public-shop__count strong{
    display:block;
    color:var(--association-primary,#22c55e);
    font-size:38px;
    line-height:1;
    font-weight:950;
}

.association-public-shop__count span{
    display:block;
    margin-top:8px;
    color:#64748b;
    font-size:8px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-shop__toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:16px 4px 11px;
}

.association-public-shop__toolbar>span{
    color:#64748b;
    font-size:11px;
    font-weight:850;
}

.association-public-shop__toolbar>div{
    display:flex;
    gap:8px;
}

.association-public-shop__toolbar button{
    width:42px;
    height:42px;
    color:#fff;
    background:var(--association-primary,#22c55e);
    border:0;
    border-radius:50%;
    font-size:16px;
    font-weight:950;
    cursor:pointer;
}

.association-public-shop__rail{
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:minmax(270px,330px);
    gap:15px;
    padding:4px 2px 14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
}

.association-public-shop__rail::-webkit-scrollbar{
    display:none;
}

.association-public-product-card{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    scroll-snap-align:start;
    background:#fff;
    border:1px solid rgba(148,163,184,.2);
    border-radius:24px;
    box-shadow:0 15px 38px rgba(15,23,42,.08);
}

.association-public-product-card--featured{
    border-color:color-mix(
        in srgb,
        var(--association-primary,#22c55e) 42%,
        #dbe3ec
    );
}

.association-public-product-card__media{
    position:relative;
    height:235px;
    overflow:hidden;
    background:#0f172a;
}

.association-public-product-card__media img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.association-public-product-card__placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    color:#fff;
    background:
        radial-gradient(
            circle at 25% 15%,
            var(--association-primary,#22c55e),
            transparent 45%
        ),
        linear-gradient(145deg,#111827,#020617);
}

.association-public-product-card__placeholder span{
    font-size:48px;
    font-weight:950;
}

.association-public-product-card__badges{
    position:absolute;
    top:14px;
    left:14px;
    right:14px;
    display:flex;
    justify-content:space-between;
    gap:8px;
}

.association-public-product-card__badges span,
.association-public-product-card__badges strong{
    padding:7px 10px;
    color:#fff;
    background:rgba(15,23,42,.75);
    border-radius:999px;
    font-size:8px;
    font-weight:950;
    letter-spacing:.07em;
    text-transform:uppercase;
    backdrop-filter:blur(12px);
}

.association-public-product-card__badges strong{
    color:#14532d;
    background:#fff;
}

.association-public-product-card__price{
    position:absolute;
    right:14px;
    bottom:14px;
    padding:9px 12px;
    color:#0f172a;
    background:#fff;
    border-radius:14px;
    font-size:17px;
    font-weight:950;
}

.association-public-product-card__body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:19px;
}

.association-public-product-card__body h3{
    margin:0 0 8px;
    color:#0f172a;
    font-size:21px;
    line-height:1.05;
    letter-spacing:-.035em;
    font-weight:950;
}

.association-public-product-card__body p{
    margin:0;
    color:#64748b;
    font-size:12px;
    line-height:1.6;
}

.association-public-product-card__availability{
    margin-top:auto;
    padding:17px 0 11px;
    color:#64748b;
    font-size:10px;
    font-weight:850;
}

.association-public-product-card__availability strong{
    color:#991b1b;
}

.association-public-product-card__body>a{
    display:flex;
    justify-content:space-between;
    align-items:center;
    min-height:48px;
    padding:12px 15px;
    color:#fff;
    background:var(--association-primary,#22c55e);
    border-radius:15px;
    font-size:11px;
    font-weight:950;
    text-decoration:none;
}

.association-public-product-card__unavailable{
    padding:13px;
    color:#991b1b;
    background:#fef2f2;
    border-radius:14px;
    font-size:11px;
    font-weight:850;
}

.association-public-shop__footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-top:8px;
    padding:18px 20px;
    background:#fff;
    border-radius:20px;
}

.association-public-shop__footer div{
    display:flex;
    flex-direction:column;
}

.association-public-shop__footer div>span{
    color:var(--association-primary,#22c55e);
    font-size:8px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.association-public-shop__footer div>strong{
    margin-top:5px;
    color:#0f172a;
    font-size:14px;
}

.association-public-shop__footer>a{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 16px;
    color:#fff;
    background:#0f172a;
    border-radius:14px;
    font-size:11px;
    font-weight:950;
    text-decoration:none;
}

@media(max-width:767px){
    .association-public-shop{
        margin:20px 0;
        padding:11px;
        border-radius:25px;
    }

    .association-public-shop__header{
        grid-template-columns:1fr;
        gap:14px;
        padding:22px 19px;
        border-radius:22px;
    }

    .association-public-shop__header h2{
        font-size:30px;
    }

    .association-public-shop__header p{
        font-size:13px;
    }

    .association-public-shop__count{
        display:flex;
        justify-content:space-between;
        align-items:center;
        min-width:0;
        padding:14px 17px;
    }

    .association-public-shop__count strong{
        font-size:30px;
    }

    .association-public-shop__count span{
        max-width:110px;
        margin:0;
        text-align:right;
    }

    .association-public-shop__rail{
        grid-auto-columns:calc(100vw - 62px);
        gap:12px;
    }

    .association-public-product-card__media{
        height:285px;
    }

    .association-public-shop__footer{
        flex-direction:column;
        align-items:stretch;
    }

    .association-public-shop__footer>a{
        justify-content:center;
    }
}

/* ==========================================================
   MARKETPLACE ASSOCIATIVE — PRODUITS, SERVICES ET SOUTIENS
   ========================================================== */

.association-marketplace__filters{
    display:flex;
    gap:9px;
    margin-top:17px;
    padding:4px 2px;
    overflow-x:auto;
    scrollbar-width:none;
}

.association-marketplace__filters::-webkit-scrollbar{
    display:none;
}

.association-marketplace__filters button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:42px;
    padding:9px 15px;
    white-space:nowrap;
    color:#475569;
    background:#fff;
    border:1px solid rgba(148,163,184,.24);
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    cursor:pointer;
    transition:
        transform .2s ease,
        color .2s ease,
        background .2s ease,
        border-color .2s ease;
}

.association-marketplace__filters button:hover{
    transform:translateY(-1px);
}

.association-marketplace__filters button.is-active{
    color:#fff;
    background:#0f172a;
    border-color:#0f172a;
}

.association-marketplace__filters button span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    padding:0 6px;
    color:#0f172a;
    background:#f8fafc;
    border-radius:999px;
    font-size:9px;
    font-weight:950;
}

.association-marketplace-card[hidden]{
    display:none !important;
}

.association-marketplace-card--service{
    border-color:rgba(37,99,235,.2);
}

.association-marketplace-card--soutien{
    border-color:rgba(168,85,247,.22);
}

.association-marketplace-card--service
.association-public-product-card__badges span{
    background:#1d4ed8;
}

.association-marketplace-card--soutien
.association-public-product-card__badges span{
    background:#7e22ce;
}

.association-marketplace-card__meta{
    margin-top:13px;
    color:#64748b;
    font-size:10px;
    line-height:1.5;
    font-weight:800;
}

.association-marketplace-card__progress{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    margin-top:15px;
}

.association-marketplace-card__progress>div{
    height:8px;
    overflow:hidden;
    background:#e2e8f0;
    border-radius:999px;
}

.association-marketplace-card__progress>div span{
    display:block;
    height:100%;
    background:linear-gradient(
        90deg,
        var(--association-primary,#22c55e),
        #a855f7
    );
    border-radius:inherit;
}

.association-marketplace-card__progress>strong{
    color:#7e22ce;
    font-size:10px;
    font-weight:950;
}

@media(max-width:700px){
    .association-marketplace__filters{
        margin-top:13px;
    }

    .association-marketplace__filters button{
        min-height:39px;
        padding:8px 13px;
        font-size:10px;
    }

    .association-marketplace
    .association-public-shop__rail{
        grid-auto-columns:calc(100vw - 58px);
    }
}

/* ==========================================================
   MARKETPLACE ASSOCIATIVE — FINITIONS RESPONSIVE
   ========================================================== */

.association-marketplace
.association-public-shop__rail{
    align-items:stretch;
}

.association-marketplace-card{
    height:auto;
    min-height:560px;
}

.association-marketplace-card
.association-public-product-card__body{
    min-height:270px;
}

.association-marketplace-card
.association-public-product-card__body > div:first-child{
    min-height:112px;
}

.association-marketplace-card
.association-public-product-card__body h3{
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.association-marketplace-card
.association-public-product-card__body p{
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
}

@media(max-width:700px){

    .association-marketplace{
        padding-bottom:
            calc(110px + env(safe-area-inset-bottom));
    }

    .association-marketplace
    .association-public-shop__header{
        padding:22px 18px 18px;
    }

    .association-marketplace
    .association-public-shop__header h2{
        font-size:clamp(27px,8vw,34px);
        line-height:1;
    }

    .association-marketplace
    .association-public-shop__rail{
        grid-auto-columns:calc(100vw - 54px);
        gap:12px;
        padding-bottom:18px;
    }

    .association-marketplace-card{
        min-height:0;
        height:auto;
    }

    .association-marketplace-card
    .association-public-product-card__media{
        height:270px;
    }

    .association-marketplace-card
    .association-public-product-card__body{
        min-height:245px;
        padding:18px;
    }

    .association-marketplace-card
    .association-public-product-card__body > div:first-child{
        min-height:0;
    }

    .association-marketplace-card
    .association-public-product-card__body h3{
        margin-bottom:7px;
        font-size:23px;
        line-height:1.05;
    }

    .association-marketplace-card
    .association-public-product-card__body p{
        -webkit-line-clamp:2;
        font-size:13px;
        line-height:1.5;
    }

    .association-marketplace-card__meta{
        margin-top:10px;
        font-size:10px;
    }

    .association-marketplace-card__progress{
        margin-top:11px;
    }

    .association-marketplace
    .association-public-product-card__availability{
        margin-top:auto;
        padding-top:13px;
    }

    .association-marketplace
    .association-public-product-card__body > a{
        min-height:48px;
        margin-top:12px;
    }

    .association-marketplace
    .association-public-shop__footer{
        margin-bottom:
            calc(25px + env(safe-area-inset-bottom));
    }
}

/* ==========================================================================
   TITRES DES SECTIONS ASSOCIATION — FORMAT GALERIE IMMERSIVE
   ========================================================================== */

html body .rt-association-section-title{
    width:auto !important;
    max-width:820px !important;

    margin-top:0 !important;
    margin-bottom:10px !important;

    font-size:clamp(28px,3.15vw,40px) !important;
    font-weight:850 !important;
    line-height:1.04 !important;
    letter-spacing:-0.035em !important;

    text-wrap:balance !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
}

/*
 * Titres centrés, comme l’appel à l’action de soutien.
 */
html body .rt-association-section-title.is-centered{
    max-width:850px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
}

/*
 * Écrans intermédiaires.
 */
@media (max-width:1000px){
    html body .rt-association-section-title{
        max-width:720px !important;
        font-size:clamp(27px,4vw,36px) !important;
        line-height:1.06 !important;
    }
}

/*
 * Téléphone.
 */
@media (max-width:700px){
    html body .rt-association-section-title{
        max-width:100% !important;

        font-size:clamp(25px,7.6vw,31px) !important;
        line-height:1.07 !important;
        letter-spacing:-0.025em !important;

        text-wrap:balance !important;
    }
}

/* ASSOCIATION PUBLIC TITLES HARMONISATION START */

/*
|--------------------------------------------------------------------------
| Titres principaux des sections publiques Association
|--------------------------------------------------------------------------
|
| Échelle volontairement modérée :
| - ordinateur : maximum 38 px
| - tablette : maximum 34 px
| - téléphone : maximum 29 px
|
*/

#association-public-services-title,
#association-public-shop-title,
#association-projects-timeline-title,
#association-public-collections-title,
#association-public-territory-title,
#association-public-partners-title,
#association-public-governance-title,
#association-public-news-title,
#rt-public-support-title,
#association-public-contact-title{
    font-size:clamp(30px,3.15vw,38px) !important;
    line-height:1.06 !important;
    letter-spacing:-0.035em !important;
    font-weight:850 !important;

    max-width:820px !important;
    margin-top:0 !important;
    margin-bottom:10px !important;

    text-wrap:balance;
}

/*
 * Le titre de soutien est centré dans sa section.
 */
#rt-public-support-title{
    max-width:900px !important;
    margin-left:auto !important;
    margin-right:auto !important;
}

/*
|--------------------------------------------------------------------------
| Tablette
|--------------------------------------------------------------------------
*/

@media (max-width:900px){

    #association-public-services-title,
    #association-public-shop-title,
    #association-projects-timeline-title,
    #association-public-collections-title,
    #association-public-territory-title,
    #association-public-partners-title,
    #association-public-governance-title,
    #association-public-news-title,
    #rt-public-support-title,
    #association-public-contact-title{
        font-size:clamp(28px,4.2vw,34px) !important;
        line-height:1.08 !important;
        letter-spacing:-0.03em !important;
    }
}

/*
|--------------------------------------------------------------------------
| Téléphone
|--------------------------------------------------------------------------
*/

@media (max-width:700px){

    #association-public-services-title,
    #association-public-shop-title,
    #association-projects-timeline-title,
    #association-public-collections-title,
    #association-public-territory-title,
    #association-public-partners-title,
    #association-public-governance-title,
    #association-public-news-title,
    #rt-public-support-title,
    #association-public-contact-title{
        font-size:clamp(25px,7.4vw,29px) !important;
        line-height:1.1 !important;
        letter-spacing:-0.025em !important;

        max-width:100% !important;
        margin-bottom:8px !important;
    }
}

/* ASSOCIATION PUBLIC TITLES HARMONISATION END */

/* ASSOCIATION PUBLIC MOBILE FULL WIDTH START */

/*
|--------------------------------------------------------------------------
| Fiche publique Association — socle mobile pleine largeur
|--------------------------------------------------------------------------
|
| Objectifs :
| - utiliser presque toute la largeur du téléphone ;
| - conserver une marge extérieure légère de 6 px ;
| - empêcher les débordements horizontaux ;
| - afficher les statistiques en deux colonnes ;
| - rendre certaines collections horizontalement défilables.
|
*/

@media (max-width:767px){

    /*
    |--------------------------------------------------------------------------
    | Sécurité générale
    |--------------------------------------------------------------------------
    */

    html,
    body{
        width:100% !important;
        max-width:100% !important;
        overflow-x:hidden !important;
    }

    body{
        margin:0 !important;
    }

    body *,
    body *::before,
    body *::after{
        box-sizing:border-box;
    }

    img,
    video,
    iframe,
    canvas,
    svg{
        max-width:100%;
    }

    /*
    |--------------------------------------------------------------------------
    | Toutes les grandes sections publiques prennent la largeur du téléphone
    |--------------------------------------------------------------------------
    */

    html body .association-public-hero,
    html body .association-public-presentation,
    html body .association-public-actions,
    html body .association-public-events,
    html body .association-public-missions,
    html body .association-public-opportunities,
    html body .association-public-services,
    html body .association-public-shop,
    html body .association-marketplace,
    html body .association-projects-timeline,
    html body .association-public-collections,
    html body .association-public-territory-map,
    html body .association-public-partners,
    html body .association-public-governance,
    html body .association-public-news,
    html body .rt-public-support,
    html body .association-public-contact,
    html body .association-public-final-actions,
    html body .association-public-legal-footer,
    html body #presentation,
    html body #actions,
    html body #evenements,
    html body #services,
    html body #medias,
    html body #territoire,
    html body #partenaires,
    html body #contact{
        width:calc(100vw - 12px) !important;
        max-width:none !important;

        margin-left:calc(50% - 50vw + 6px) !important;
        margin-right:calc(50% - 50vw + 6px) !important;

        box-sizing:border-box !important;
    }

    /*
     * Tous les éléments internes doivent pouvoir se rétrécir.
     * Cela empêche une carte ou un texte de pousser la page vers la droite.
     */
    html body .association-public-hero *,
    html body .association-public-presentation *,
    html body .association-public-actions *,
    html body .association-public-events *,
    html body .association-public-missions *,
    html body .association-public-opportunities *,
    html body .association-public-services *,
    html body .association-public-shop *,
    html body .association-marketplace *,
    html body .association-projects-timeline *,
    html body .association-public-collections *,
    html body .association-public-territory-map *,
    html body .association-public-partners *,
    html body .association-public-governance *,
    html body .association-public-news *,
    html body .rt-public-support *,
    html body .association-public-contact *,
    html body .association-public-final-actions *,
    html body .association-public-legal-footer *{
        min-width:0;
    }

    /*
    |--------------------------------------------------------------------------
    | Espacement mobile homogène
    |--------------------------------------------------------------------------
    */

    html body .association-public-services,
    html body .association-public-shop,
    html body .association-marketplace,
    html body .association-projects-timeline,
    html body .association-public-collections,
    html body .association-public-territory-map,
    html body .association-public-partners,
    html body .association-public-governance,
    html body .association-public-news,
    html body .rt-public-support,
    html body .association-public-contact,
    html body .association-public-final-actions,
    html body .association-public-legal-footer{
        border-radius:18px !important;
    }

    /*
    |--------------------------------------------------------------------------
    | En-têtes des sections
    |--------------------------------------------------------------------------
    */

    html body .association-public-services__header,
    html body .association-public-shop__header,
    html body .association-projects-timeline__header,
    html body .association-public-collections__header,
    html body .association-public-territory-map__header,
    html body .association-public-partners__header,
    html body .association-public-governance__compact,
    html body .association-public-news__header,
    html body .rt-public-support__hero,
    html body .association-public-contact__hero{
        width:100% !important;
        max-width:none !important;

        padding-left:16px !important;
        padding-right:16px !important;

        box-sizing:border-box !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Titres mobiles lisibles et non imposants
    |--------------------------------------------------------------------------
    */

    html body #association-public-services-title,
    html body #association-public-shop-title,
    html body #association-projects-timeline-title,
    html body #association-public-collections-title,
    html body #association-public-territory-title,
    html body #association-public-partners-title,
    html body #association-public-governance-title,
    html body #association-public-news-title,
    html body #rt-public-support-title,
    html body #association-public-contact-title{
        width:100% !important;
        max-width:100% !important;

        font-size:clamp(25px,7vw,29px) !important;
        line-height:1.08 !important;
        letter-spacing:-0.025em !important;

        overflow-wrap:anywhere !important;
        word-break:normal !important;
        text-wrap:balance !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Statistiques : deux colonnes sur téléphone
    |--------------------------------------------------------------------------
    */

    html body .association-public-services [class*="__stats"],
    html body .association-public-services [class*="__metrics"],
    html body .association-public-services [class*="__indicators"],

    html body .association-public-shop [class*="__stats"],
    html body .association-public-shop [class*="__metrics"],
    html body .association-public-shop [class*="__indicators"],

    html body .association-projects-timeline [class*="__stats"],
    html body .association-projects-timeline [class*="__metrics"],
    html body .association-projects-timeline [class*="__indicators"],

    html body .association-public-collections [class*="__stats"],
    html body .association-public-collections [class*="__metrics"],
    html body .association-public-collections [class*="__indicators"],

    html body .association-public-territory-map [class*="__stats"],
    html body .association-public-territory-map [class*="__metrics"],
    html body .association-public-territory-map [class*="__indicators"],

    html body .association-public-partners [class*="__stats"],
    html body .association-public-partners [class*="__metrics"],
    html body .association-public-partners [class*="__indicators"],

    html body .association-public-governance [class*="__stats"],
    html body .association-public-governance [class*="__metrics"],
    html body .association-public-governance [class*="__indicators"],

    html body .association-public-news [class*="__stats"],
    html body .association-public-news [class*="__metrics"],
    html body .association-public-news [class*="__indicators"],

    html body .rt-public-support [class*="__stats"],
    html body .rt-public-support [class*="__metrics"],
    html body .rt-public-support [class*="__indicators"]{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:8px !important;

        width:100% !important;
        max-width:none !important;

        overflow:visible !important;
    }

    /*
     * Les cartes statistiques restent compactes.
     */
    html body [class*="__stats"] > *,
    html body [class*="__metrics"] > *,
    html body [class*="__indicators"] > *{
        width:auto !important;
        min-width:0 !important;
        max-width:none !important;

        padding-left:10px !important;
        padding-right:10px !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Collections de cartes défilables horizontalement
    |--------------------------------------------------------------------------
    |
    | Les utilisateurs voient une partie de la carte suivante,
    | ce qui indique naturellement qu’ils peuvent faire glisser.
    |
    */

    html body .association-public-services [class*="__grid"],
    html body .association-public-shop [class*="__grid"],
    html body .association-marketplace [class*="__grid"],
    html body .association-public-collections [class*="__grid"],
    html body .association-public-partners [class*="__grid"],
    html body .association-public-news [class*="__grid"]{
        display:grid !important;
        grid-template-columns:none !important;
        grid-template-rows:1fr !important;
        grid-auto-flow:column !important;
        grid-auto-columns:min(82vw,310px) !important;

        gap:12px !important;

        width:100% !important;
        max-width:none !important;

        padding-left:14px !important;
        padding-right:14px !important;
        padding-bottom:12px !important;

        overflow-x:auto !important;
        overflow-y:hidden !important;

        scroll-snap-type:x proximity !important;
        scroll-padding-left:14px !important;

        overscroll-behavior-inline:contain !important;
        -webkit-overflow-scrolling:touch !important;

        scrollbar-width:none !important;
    }

    html body .association-public-services [class*="__grid"]::-webkit-scrollbar,
    html body .association-public-shop [class*="__grid"]::-webkit-scrollbar,
    html body .association-marketplace [class*="__grid"]::-webkit-scrollbar,
    html body .association-public-collections [class*="__grid"]::-webkit-scrollbar,
    html body .association-public-partners [class*="__grid"]::-webkit-scrollbar,
    html body .association-public-news [class*="__grid"]::-webkit-scrollbar{
        display:none !important;
    }

    html body .association-public-services [class*="__grid"] > *,
    html body .association-public-shop [class*="__grid"] > *,
    html body .association-marketplace [class*="__grid"] > *,
    html body .association-public-collections [class*="__grid"] > *,
    html body .association-public-partners [class*="__grid"] > *,
    html body .association-public-news [class*="__grid"] > *{
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;

        scroll-snap-align:start !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Cartes principales et blocs internes
    |--------------------------------------------------------------------------
    */

    html body article,
    html body [class*="__card"],
    html body [class*="-card"]{
        max-width:100%;
    }

    /*
    |--------------------------------------------------------------------------
    | Boutons et liens d’action
    |--------------------------------------------------------------------------
    */

    html body .association-public-final-actions a,
    html body .association-public-final-actions button,
    html body .association-public-contact__actions a,
    html body .association-public-contact__actions button{
        min-height:44px !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Formulaires
    |--------------------------------------------------------------------------
    */

    html body .association-public-contact input,
    html body .association-public-contact select,
    html body .association-public-contact textarea,
    html body .association-public-contact button{
        max-width:100% !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Très petits téléphones
    |--------------------------------------------------------------------------
    */

    @media (max-width:390px){

        html body .association-public-services [class*="__grid"],
        html body .association-public-shop [class*="__grid"],
        html body .association-marketplace [class*="__grid"],
        html body .association-public-collections [class*="__grid"],
        html body .association-public-partners [class*="__grid"],
        html body .association-public-news [class*="__grid"]{
            grid-auto-columns:calc(100vw - 42px) !important;
        }
    }
}

/* ASSOCIATION PUBLIC MOBILE FULL WIDTH END */

/* ASSOCIATION PUBLIC MOBILE FULL WIDTH V1 START */

@media (max-width:700px){

    /*
    |--------------------------------------------------------------------------
    | Sécurité générale mobile
    |--------------------------------------------------------------------------
    */

    html,
    body{
        max-width:100% !important;
        overflow-x:hidden !important;
    }

    .asso-page,
    .association-public-page,
    .association-public-shell,
    .association-public-layout,
    .association-public-content{
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin-left:0 !important;
        margin-right:0 !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Sections publiques presque bord à bord
    |--------------------------------------------------------------------------
    */

    .asso-page > section,
    .asso-page > div,
    .association-public-page > section,
    .association-public-page > div,
    .association-public-services,
    .association-public-shop,
    .association-projects-timeline,
    .association-public-collections,
    .association-public-territory-map,
    .association-public-partners,
    .association-public-governance,
    .association-public-news,
    .rt-public-support,
    .association-public-contact{
        min-width:0 !important;
        max-width:none !important;
    }

    .association-public-services,
    .association-public-shop,
    .association-projects-timeline,
    .association-public-collections,
    .association-public-territory-map,
    .association-public-partners,
    .association-public-governance,
    .association-public-news,
    .rt-public-support,
    .association-public-contact{
        width:calc(100% + 8px) !important;
        margin-left:-4px !important;
        margin-right:-4px !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Statistiques : deux colonnes
    |--------------------------------------------------------------------------
    */

    .association-public-territory-map__stats,
    .association-public-territory-map__indicators,
    .association-public-overview__stats,
    .association-public-overview__indicators,
    .association-public-summary__stats,
    .association-public-summary__indicators,
    .association-public-impact__stats,
    .association-public-impact__indicators,
    .association-public-governance__statistics,
    .association-public-governance__stats,
    .rt-public-support__stats,
    .rt-public-support__statistics,
    .association-public-contact__stats,
    .association-public-contact__indicators,
    .association-public-partners__stats,
    .association-public-partners__indicators,
    [class*="association-public"][class*="statistics"],
    [class*="association-public"][class*="stats-grid"],
    [class*="association-public"][class*="indicators-grid"]{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        grid-auto-flow:row !important;
        gap:8px !important;
        overflow:visible !important;
    }

    .association-public-territory-map__stats > *,
    .association-public-territory-map__indicators > *,
    .association-public-overview__stats > *,
    .association-public-overview__indicators > *,
    .association-public-summary__stats > *,
    .association-public-summary__indicators > *,
    .association-public-impact__stats > *,
    .association-public-impact__indicators > *,
    .association-public-governance__statistics > *,
    .association-public-governance__stats > *,
    .rt-public-support__stats > *,
    .rt-public-support__statistics > *,
    [class*="association-public"][class*="statistics"] > *,
    [class*="association-public"][class*="stats-grid"] > *,
    [class*="association-public"][class*="indicators-grid"] > *{
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        margin:0 !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Anciennes statistiques éventuellement encore présentes
    |--------------------------------------------------------------------------
    */

    .info-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:8px !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Missions et opportunités : carrousel horizontal
    |--------------------------------------------------------------------------
    */

    #missions + .asso-grid,
    #opportunites + .asso-grid,
    section[id*="mission"] .asso-grid,
    section[id*="opportun"] .asso-grid,
    section[id*="engagement"] [class*="grid"],
    section[id*="cooperation"] [class*="grid"],
    [id*="association-public-mission"] [class*="grid"],
    [id*="association-public-opportun"] [class*="grid"],
    [class*="association-public-mission"][class*="grid"],
    [class*="association-public-opportun"][class*="grid"]{
        display:grid !important;
        grid-template-columns:none !important;
        grid-template-rows:1fr !important;
        grid-auto-flow:column !important;
        grid-auto-columns:min(82vw,310px) !important;

        gap:12px !important;
        width:100% !important;
        max-width:100% !important;

        overflow-x:auto !important;
        overflow-y:hidden !important;

        scroll-snap-type:x mandatory !important;
        overscroll-behavior-inline:contain !important;
        -webkit-overflow-scrolling:touch !important;

        padding:2px 16px 14px 2px !important;
        scrollbar-width:none !important;
    }

    #missions + .asso-grid::-webkit-scrollbar,
    #opportunites + .asso-grid::-webkit-scrollbar,
    section[id*="mission"] .asso-grid::-webkit-scrollbar,
    section[id*="opportun"] .asso-grid::-webkit-scrollbar,
    section[id*="engagement"] [class*="grid"]::-webkit-scrollbar,
    section[id*="cooperation"] [class*="grid"]::-webkit-scrollbar,
    [id*="association-public-mission"] [class*="grid"]::-webkit-scrollbar,
    [id*="association-public-opportun"] [class*="grid"]::-webkit-scrollbar{
        display:none !important;
    }

    #missions + .asso-grid > *,
    #opportunites + .asso-grid > *,
    section[id*="mission"] .asso-grid > *,
    section[id*="opportun"] .asso-grid > *,
    section[id*="engagement"] [class*="grid"] > *,
    section[id*="cooperation"] [class*="grid"] > *,
    [id*="association-public-mission"] [class*="grid"] > *,
    [id*="association-public-opportun"] [class*="grid"] > *,
    [class*="association-public-mission"][class*="grid"] > *,
    [class*="association-public-opportun"][class*="grid"] > *{
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        scroll-snap-align:start !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Cartes plus compactes sur mobile
    |--------------------------------------------------------------------------
    */

    #missions .card,
    #opportunites .card,
    section[id*="mission"] article,
    section[id*="opportun"] article,
    section[id*="engagement"] article,
    section[id*="cooperation"] article{
        min-height:0 !important;
        padding:16px !important;
        border-radius:20px !important;
    }

    #missions h3,
    #opportunites h3,
    section[id*="mission"] h3,
    section[id*="opportun"] h3,
    section[id*="engagement"] h3,
    section[id*="cooperation"] h3{
        font-size:17px !important;
        line-height:1.22 !important;
    }

    /*
    |--------------------------------------------------------------------------
    | Espace inférieur pour la navigation mobile
    |--------------------------------------------------------------------------
    */

    .asso-page,
    .association-public-page{
        padding-bottom:
            calc(108px + env(safe-area-inset-bottom)) !important;
    }
}

/* ASSOCIATION PUBLIC MOBILE STATS 2 COLUMNS START */

@media (max-width:700px){

    .association-public-territory-map__stats,
    .association-public-territory__stats,
    .association-public-statistics,
    .association-public-stats,
    .association-public-impact__stats{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:8px !important;
        width:100% !important;
    }

    .association-public-territory-map__stat,
    .association-public-territory__stat,
    .association-public-statistics > *,
    .association-public-stats > *,
    .association-public-impact__stats > *{
        width:100% !important;
        min-width:0 !important;
        min-height:118px !important;
        padding:16px 14px !important;
        margin:0 !important;
        border-radius:18px !important;
    }
}

/* ASSOCIATION PUBLIC MOBILE STATS 2 COLUMNS END */

/* ASSOCIATION PUBLIC MOBILE FULL WIDTH V1 END */

/* ASSOCIATION PUBLIC IMPACT MOBILE 2 COLUMNS V2 START */

@media (max-width:700px){

    /*
     * Véritable grille utilisée dans impact-metrics.blade.php.
     */
    .association-public-impact .association-public-impact__grid{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:8px !important;

        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;

        overflow:visible !important;
    }

    .association-public-impact
    .association-public-impact__grid
    > .association-public-impact-card{
        display:flex !important;
        flex-direction:column !important;
        align-items:flex-start !important;
        justify-content:flex-start !important;
        gap:7px !important;

        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        min-height:128px !important;

        margin:0 !important;
        padding:14px 12px !important;

        border-radius:18px !important;
        overflow:hidden !important;
    }

    /*
     * Icône discrète pour conserver de la place.
     */
    .association-public-impact
    .association-public-impact-card__icon{
        width:32px !important;
        height:32px !important;
        min-width:32px !important;

        margin:0 !important;
        border-radius:10px !important;
    }

    .association-public-impact
    .association-public-impact-card__icon svg{
        width:16px !important;
        height:16px !important;
    }

    .association-public-impact
    .association-public-impact-card__content{
        display:flex !important;
        flex-direction:column !important;
        align-items:flex-start !important;
        gap:3px !important;

        width:100% !important;
        min-width:0 !important;
    }

    .association-public-impact
    .association-public-impact-card__label{
        max-width:100% !important;

        font-size:9px !important;
        line-height:1.2 !important;
        letter-spacing:.08em !important;

        white-space:normal !important;
        overflow-wrap:anywhere !important;
    }

    .association-public-impact
    .association-public-impact-card__content
    > strong{
        font-size:29px !important;
        line-height:1 !important;
        letter-spacing:-.04em !important;
    }

    .association-public-impact
    .association-public-impact-card__content
    > small{
        display:-webkit-box !important;
        -webkit-box-orient:vertical !important;
        -webkit-line-clamp:2 !important;

        max-width:100% !important;
        overflow:hidden !important;

        font-size:10px !important;
        line-height:1.3 !important;
    }

    /*
     * La flèche n’est pas nécessaire dans les petites cartes.
     */
    .association-public-impact
    .association-public-impact-card__arrow{
        display:none !important;
    }

    /*
     * Cinquième carte : seule sur la dernière ligne,
     * mais limitée à la largeur d’une colonne.
     */
    .association-public-impact
    .association-public-impact__grid
    > .association-public-impact-card:last-child:nth-child(odd){
        grid-column:auto !important;
    }
}

@media (max-width:370px){

    .association-public-impact .association-public-impact__grid{
        gap:6px !important;
    }

    .association-public-impact
    .association-public-impact__grid
    > .association-public-impact-card{
        min-height:122px !important;
        padding:12px 10px !important;
    }

    .association-public-impact
    .association-public-impact-card__content
    > strong{
        font-size:26px !important;
    }
}

/* ASSOCIATION PUBLIC IMPACT MOBILE 2 COLUMNS V2 END */

/* =========================================================
   PAGE ACTUALITÉ - RESPONSIVE PREMIUM V2
========================================================= */

.association-public-news-show,
.association-news-show,
.news-public-show,
.news-show-page{
    width:min(100%,1440px) !important;
    margin:0 auto !important;
    padding:24px !important;
}

.association-public-news-show__hero,
.news-show-hero{
    width:100% !important;
    max-width:none !important;
    border-radius:32px !important;
    overflow:hidden !important;
}

.association-public-news-show h1,
.news-show-page h1,
.news-show-hero h1{
    font-size:clamp(36px,4vw,56px) !important;
    line-height:1.05 !important;
    letter-spacing:-1.8px !important;
    max-width:900px !important;
}

.association-public-news-show img,
.news-show-page img{
    width:100% !important;
    max-width:none !important;
    display:block !important;
    object-fit:cover !important;
    border-radius:24px !important;
}

.association-public-news-related,
.news-show-related{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:24px !important;
}

@media (max-width:640px){

    .association-public-news-show,
    .association-news-show,
    .news-public-show,
    .news-show-page{
        width:calc(100vw - 12px) !important;
        max-width:none !important;
        margin-left:calc(50% - 50vw + 6px) !important;
        margin-right:calc(50% - 50vw + 6px) !important;
        padding:16px !important;
    }

    .association-public-news-show h1,
    .news-show-page h1,
    .news-show-hero h1{
        font-size:30px !important;
        line-height:1.08 !important;
        letter-spacing:-1px !important;
        max-width:100% !important;
    }

    .association-public-news-related,
    .news-show-related{
        grid-template-columns:1fr !important;
        gap:18px !important;
    }

}


/* ==========================================================================
   STRUCTURE THEME — CONTRÔLES DE DÉFILEMENT PUBLICS
   Flash Territorial, Services et Marketplace
   ========================================================================== */

body.rt-structure-theme-active
.association-public-v2
button[data-story-scroll],

body.rt-structure-theme-active
.association-public-v2
button[data-services-scroll],

body.rt-structure-theme-active
.association-public-v2
button[data-shop-scroll],

body.rt-structure-theme-active
.association-public-flashes__toolbar
button,

body.rt-structure-theme-active
.association-public-services__mobile-controls
button,

body.rt-structure-theme-active
.association-public-shop__toolbar
button{

    border:
        1px solid
        color-mix(
            in srgb,
            var(--structure-primary) 82%,
            var(--structure-text)
        ) !important;

    background:
        linear-gradient(
            135deg,
            var(--structure-primary),
            color-mix(
                in srgb,
                var(--structure-primary) 74%,
                var(--structure-secondary)
            )
        ) !important;

    color:var(--structure-on-primary,#ffffff) !important;

    box-shadow:
        0 10px 25px
        color-mix(
            in srgb,
            var(--structure-primary) 25%,
            transparent
        ) !important;

    text-shadow:none !important;
}

/*
|--------------------------------------------------------------------------
| Contenu interne des boutons
|--------------------------------------------------------------------------
*/

body.rt-structure-theme-active
.association-public-v2
button[data-story-scroll] *,

body.rt-structure-theme-active
.association-public-v2
button[data-services-scroll] *,

body.rt-structure-theme-active
.association-public-v2
button[data-shop-scroll] *,

body.rt-structure-theme-active
.association-public-flashes__toolbar
button *,

body.rt-structure-theme-active
.association-public-services__mobile-controls
button *,

body.rt-structure-theme-active
.association-public-shop__toolbar
button *{
    color:inherit !important;
    fill:currentColor !important;
    stroke:currentColor !important;
}

/*
|--------------------------------------------------------------------------
| Survol et interaction
|--------------------------------------------------------------------------
*/

body.rt-structure-theme-active
.association-public-v2
button[data-story-scroll]:hover,

body.rt-structure-theme-active
.association-public-v2
button[data-services-scroll]:hover,

body.rt-structure-theme-active
.association-public-v2
button[data-shop-scroll]:hover,

body.rt-structure-theme-active
.association-public-flashes__toolbar
button:hover,

body.rt-structure-theme-active
.association-public-services__mobile-controls
button:hover,

body.rt-structure-theme-active
.association-public-shop__toolbar
button:hover{

    border-color:var(--structure-accent) !important;

    background:
        linear-gradient(
            135deg,
            color-mix(
                in srgb,
                var(--structure-primary) 88%,
                var(--structure-accent)
            ),
            var(--structure-secondary)
        ) !important;

    color:var(--structure-on-primary,#ffffff) !important;

    transform:translateY(-1px);
}

/*
|--------------------------------------------------------------------------
| État actif sur téléphone
|--------------------------------------------------------------------------
*/

body.rt-structure-theme-active
.association-public-v2
button[data-story-scroll]:active,

body.rt-structure-theme-active
.association-public-v2
button[data-services-scroll]:active,

body.rt-structure-theme-active
.association-public-v2
button[data-shop-scroll]:active{
    transform:scale(.96) !important;
}

/* STRUCTURE THEME — FIN CONTRÔLES DE DÉFILEMENT PUBLICS */



/* ============================================================
   RT ASSOCIATION HERO IDENTITY PREMIUM 20260817
   Logo remonté + composition desktop plus équilibrée
   ============================================================ */

@media(min-width:1101px){

    .association-public-v2 .association-public-hero__identity{
        align-items:flex-start;
        gap:28px;
    }

    .association-public-v2 .association-public-hero__logo{
        flex:0 0 144px;
        width:144px;
        height:144px;

        margin-top:48px;

        border:5px solid rgba(255,255,255,.94);
        border-radius:36px;

        background:rgba(255,255,255,.97);

        box-shadow:
            0 24px 55px rgba(0,0,0,.28),
            0 6px 18px rgba(0,0,0,.16),
            0 0 0 1px rgba(255,255,255,.20);

        backdrop-filter:blur(12px);
        -webkit-backdrop-filter:blur(12px);
    }

    .association-public-v2 .association-public-hero__logo img{
        padding:9px;
        border-radius:28px;
    }

    .association-public-v2 .association-public-hero__verified-icon{
        right:-7px;
        bottom:-7px;

        width:36px;
        height:36px;

        border:4px solid #fff;

        box-shadow:
            0 7px 18px rgba(0,0,0,.20),
            0 0 0 1px rgba(255,255,255,.15);
    }

    .association-public-v2 .association-public-hero__main{
        min-width:0;
    }
}


/* TABLETTE : conserver une composition naturelle */
@media(min-width:761px) and (max-width:1100px){

    .association-public-v2 .association-public-hero__identity{
        align-items:flex-start;
    }

    .association-public-v2 .association-public-hero__logo{
        margin-top:35px;
    }
}


/* MOBILE : aucune marge artificielle au-dessus du logo */
@media(max-width:760px){

    .association-public-v2 .association-public-hero__identity{
        align-items:flex-start;
    }

    .association-public-v2 .association-public-hero__logo{
        margin-top:0;
    }
}


/* =========================================================
   ASSOCIATION TERRITORY MAP LAYOUT FIX V1
   Compteurs, conteneur Leaflet et légende
========================================================= */

.association-public-territory-map__visual{
    display:flex;
    flex-direction:column;
    gap:12px;
    padding:14px;
    background:
        linear-gradient(
            145deg,
            color-mix(
                in srgb,
                var(--structure-primary,#2563eb) 5%,
                #f8fafc
            ),
            #eef2f7
        );
    overflow:hidden;
}

.association-public-territory-map__summary{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
    width:100%;
    position:relative;
    z-index:3;
}

.association-public-territory-map__summary article{
    min-width:0;
    padding:11px 12px;
    border:1px solid rgba(148,163,184,.22);
    border-radius:15px;
    background:rgba(255,255,255,.94);
    box-shadow:0 8px 22px rgba(15,23,42,.06);
}

.association-public-territory-map__summary strong{
    display:block;
    color:var(--structure-primary,#2563eb);
    font-size:19px;
    line-height:1;
    font-weight:950;
    letter-spacing:-.04em;
}

.association-public-territory-map__summary span{
    display:block;
    margin-top:5px;
    color:#64748b;
    font-size:9px;
    line-height:1.25;
    font-weight:850;
    overflow-wrap:anywhere;
}

.association-public-territory-map__map-container{
    width:100%;
    min-width:0;
    min-height:360px;
    flex:1 1 auto;
    position:relative;
    overflow:hidden;
    border:1px solid rgba(148,163,184,.22);
    border-radius:19px;
    background:#dbe4ee;
    box-shadow:0 14px 34px rgba(15,23,42,.10);
}

.association-public-territory-map__map-container
.association-public-territory-map__leaflet{
    width:100%;
    height:100%;
    min-height:360px;
    border-radius:inherit;
    position:relative;
    z-index:1;
}

.association-public-territory-map__legend{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px 11px;
    max-width:calc(100% - 28px);
    padding:8px 11px;
    position:absolute;
    left:14px;
    bottom:14px;
    z-index:500;
    border:1px solid rgba(255,255,255,.8);
    border-radius:13px;
    background:rgba(255,255,255,.92);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
    box-shadow:0 10px 25px rgba(15,23,42,.16);
}

.association-public-territory-map__legend span{
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-width:0;
    color:#334155;
    font-size:9px;
    line-height:1;
    font-weight:900;
    white-space:nowrap;
}

.association-public-territory-map__legend i{
    display:block;
    width:8px;
    height:8px;
    flex:0 0 8px;
    border-radius:50%;
    background:#64748b;
    box-shadow:0 0 0 3px rgba(100,116,139,.13);
}

.association-public-territory-map__legend i.is-association{
    background:var(--structure-primary,#2563eb);
    box-shadow:
        0 0 0 3px
        color-mix(
            in srgb,
            var(--structure-primary,#2563eb) 16%,
            transparent
        );
}

.association-public-territory-map__legend i.is-event{
    background:#f59e0b;
    box-shadow:0 0 0 3px rgba(245,158,11,.15);
}

.association-public-territory-map__legend i.is-mission{
    background:#22c55e;
    box-shadow:0 0 0 3px rgba(34,197,94,.15);
}

@media (max-width:767px){

    .association-public-territory-map__visual{
        gap:9px;
        padding:9px;
    }

    .association-public-territory-map__summary{
        gap:6px;
    }

    .association-public-territory-map__summary article{
        padding:9px 7px;
        border-radius:12px;
        text-align:center;
    }

    .association-public-territory-map__summary strong{
        font-size:17px;
    }

    .association-public-territory-map__summary span{
        font-size:8px;
    }

    .association-public-territory-map__map-container,
    .association-public-territory-map__map-container
    .association-public-territory-map__leaflet{
        min-height:330px;
    }

    .association-public-territory-map__legend{
        right:10px;
        bottom:10px;
        left:10px;
        justify-content:center;
        max-width:none;
        padding:8px;
    }

    .association-public-territory-map__map-badge{
        top:10px;
        right:10px;
    }
}

@media (max-width:390px){

    .association-public-territory-map__summary span{
        font-size:7.5px;
    }

    .association-public-territory-map__legend{
        gap:6px 9px;
    }

    .association-public-territory-map__legend span{
        font-size:8px;
    }
}

/* ASSOCIATION TERRITORY MAP LAYOUT FIX V1 END */
