/* ────────────────────────────────────────────────────────────────
   AG Starter Association — design militant impactant
   Palette : rouge + noir + blanc + accents jaune
   Typo : Anton (display heavy uppercase) + Inter (body)
   ──────────────────────────────────────────────────────────────── */
:root {
    --asso-red: #E30613;
    --asso-red-dark: #B0040E;
    --asso-yellow: #FFD200;
    --asso-black: #0F0F12;
    --asso-gray: #1B1B22;
    --asso-text: #1B1B22;
    --asso-text-light: #5A5A66;
    --asso-bg: #FFFFFF;
    --asso-bg-alt: #F5F5F2;
}

body {
    font-family: "Inter", system-ui, sans-serif;
    color: var(--asso-text);
    background: var(--asso-bg);
    line-height: 1.6;
    margin: 0;
}

a { color: var(--asso-red); text-decoration: none; }
a:hover { text-decoration: underline; }

.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden; clip: rect(0,0,0,0);
    white-space: nowrap;
}

/* ── Header ── */
.ag-asso-header {
    position: sticky;
    top: 0;
    background: var(--asso-black);
    color: #fff;
    z-index: 100;
    border-bottom: 4px solid var(--asso-red);
}
.ag-asso-header__inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 16px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}
.ag-asso-header__logo { color: #fff; text-decoration: none; }
.ag-asso-header__name {
    font-family: "Anton", Impact, sans-serif;
    font-size: 1.6rem;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.ag-asso-header__nav {
    display: flex;
    gap: 22px;
    align-items: center;
    flex-wrap: wrap;
}
.ag-asso-header__menu,
.ag-asso-footer__menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 22px;
    align-items: center;
    flex-wrap: wrap;
}
.ag-asso-header__menu li,
.ag-asso-footer__menu li {
    list-style: none;
    margin: 0;
    padding: 0;
}
.ag-asso-header__nav a,
.ag-asso-header__menu a {
    color: #fff;
    font-weight: 600;
    font-size: .92rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
}
.ag-asso-header__nav a:hover,
.ag-asso-header__menu a:hover {
    color: var(--asso-yellow);
}
/* CTA button : seulement les <a> qui ont la classe explicite .ag-asso-cta.
   PAS le li:last-child — ca surlignait n'importe quel dernier item du
   menu meme si ce n'etait pas un CTA "don". */
.ag-asso-cta {
    background: var(--asso-red);
    padding: 10px 18px;
    border-radius: 4px;
}
.ag-asso-cta:hover {
    background: var(--asso-red-dark);
    color: #fff !important;
}
/* Item actif du menu (page courante) : surligne en VIOLET force #8B1A8B.
   Cible TOUS les selecteurs possibles que WordPress peut generer pour
   marquer l'item actif (current-menu-item, current_page_item, current-menu-parent,
   current-menu-ancestor, current-page-ancestor). !important sur tout pour
   ecraser les hover/CTA styles meme avec specificite plus elevee. */
.ag-asso-header__menu li.current-menu-item > a,
.ag-asso-header__menu li.current_page_item > a,
.ag-asso-header__menu li.current-menu-ancestor > a,
.ag-asso-header__menu li.current-menu-parent > a,
.ag-asso-header__menu li.current-page-ancestor > a,
.ag-asso-header__menu .current-menu-item > a,
.ag-asso-header__menu .current_page_item > a,
.ag-asso-header__menu .current-menu-ancestor > a,
.ag-asso-header .current-menu-item > a,
.ag-asso-header .current_page_item > a {
    background: #8B1A8B !important;
    color: #fff !important;
    padding: 8px 14px !important;
    border-radius: 4px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    display: inline-block !important;
}
.ag-asso-header__menu li.current-menu-item > a:hover,
.ag-asso-header__menu li.current_page_item > a:hover,
.ag-asso-header__menu li.current-menu-ancestor > a:hover {
    background: #6E1370 !important;
    color: #fff !important;
}

/* ── Hero ── */
.ag-asso-hero {
    background: var(--asso-black) url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Crect width='40' height='40' fill='%230F0F12'/%3E%3Cpath d='M0 20 L40 20 M20 0 L20 40' stroke='%231B1B22' stroke-width='1'/%3E%3C/svg%3E");
    color: #fff;
    padding: 110px 24px 100px;
    text-align: center;
    border-bottom: 6px solid var(--asso-red);
}
.ag-asso-hero__inner { max-width: 900px; margin: 0 auto; }
.ag-asso-hero__tag {
    display: inline-block;
    background: var(--asso-red);
    color: #fff;
    padding: 8px 18px;
    text-transform: uppercase;
    letter-spacing: 3px;
    font-weight: 700;
    font-size: .82rem;
    margin-bottom: 28px;
}
.ag-asso-hero__title {
    font-family: "Anton", Impact, sans-serif;
    font-size: clamp(2.6rem, 7vw, 5.5rem);
    line-height: 1;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin: 0 0 22px;
}
.ag-asso-hero__sub {
    font-size: 1.2rem;
    max-width: 640px;
    margin: 0 auto 32px;
    color: rgba(255,255,255,.85);
}

/* ── Bouton ── */
.ag-asso-btn {
    display: inline-block;
    padding: 16px 36px;
    font-family: "Anton", Impact, sans-serif;
    font-size: 1.1rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
    border: 2px solid transparent;
    cursor: pointer;
    transition: background .25s ease, transform .2s ease;
}
.ag-asso-btn--primary {
    background: var(--asso-red);
    color: #fff;
}
.ag-asso-btn--primary:hover {
    background: var(--asso-red-dark);
    transform: translateY(-2px);
}

/* ── Sections ── */
.ag-asso-section { padding: 80px 24px; }
.ag-asso-section--alt { background: var(--asso-bg-alt); }
.ag-asso-section--cta { background: var(--asso-black); color: #fff; }
.ag-asso-section--cta .ag-asso-section__title,
.ag-asso-section--cta .ag-asso-section__lead { color: #fff; }
.ag-asso-container { max-width: 1180px; margin: 0 auto; }
.ag-asso-section__title {
    font-family: "Anton", Impact, sans-serif;
    font-size: clamp(2rem, 4vw, 3rem);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 14px;
    color: var(--asso-black);
}
.ag-asso-section__title em {
    color: var(--asso-red);
    font-style: normal;
}
.ag-asso-section__lead {
    font-size: 1.1rem;
    color: var(--asso-text-light);
    margin: 0 0 36px;
    max-width: 720px;
}

/* ── Manifeste ── */
.ag-asso-manifeste {
    border-left: 4px solid var(--asso-red);
    padding-left: 24px;
    max-width: 760px;
    font-size: 1.06rem;
}
.ag-asso-manifeste p { margin: 0 0 16px; }

/* ── Combats ── */
.ag-asso-combats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
@media (max-width: 900px) { .ag-asso-combats-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ag-asso-combats-grid { grid-template-columns: 1fr; } }
.ag-asso-combat {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-top: 4px solid var(--asso-red);
    padding: 26px 24px;
    transition: transform .25s ease, box-shadow .25s ease;
}
.ag-asso-combat:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(227,6,19,.1);
}
.ag-asso-combat h3 {
    font-family: "Anton", Impact, sans-serif;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 1.3rem;
    margin: 0 0 12px;
}

/* ── Événements ── */
.ag-asso-events { display: flex; flex-direction: column; gap: 18px; }
.ag-asso-event {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 24px;
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    padding: 22px 26px;
    align-items: center;
}
@media (max-width: 600px) { .ag-asso-event { grid-template-columns: 80px 1fr; gap: 14px; padding: 18px; } }
.ag-asso-event__date {
    background: var(--asso-red);
    color: #fff;
    text-align: center;
    padding: 14px 6px;
}
.ag-asso-event__day {
    display: block;
    font-family: "Anton", Impact, sans-serif;
    font-size: 2rem;
    line-height: 1;
}
.ag-asso-event__month {
    display: block;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: .78rem;
    margin-top: 4px;
}
.ag-asso-event h3 {
    font-family: "Anton", Impact, sans-serif;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 4px;
}
.ag-asso-event__where { color: var(--asso-red); font-weight: 600; margin: 0 0 8px; font-size: .92rem; }

/* ── Recherche groupe local ── */
.ag-asso-search {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0;
    max-width: 520px;
}
.ag-asso-search input {
    padding: 16px 18px;
    border: 2px solid var(--asso-black);
    border-right: 0;
    font-size: 1rem;
}
.ag-asso-search button {
    background: var(--asso-red);
    color: #fff;
    border: 2px solid var(--asso-red);
    padding: 16px 28px;
    font-family: "Anton", Impact, sans-serif;
    text-transform: uppercase;
    letter-spacing: 2px;
    cursor: pointer;
}
.ag-asso-search__note { color: var(--asso-text-light); font-style: italic; margin-top: 18px; }

/* ── Actualités ── */
.ag-asso-actu-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
@media (max-width: 900px) { .ag-asso-actu-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ag-asso-actu-grid { grid-template-columns: 1fr; } }
.ag-asso-actu {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
}
.ag-asso-actu__img img { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.ag-asso-actu h3 {
    font-family: "Anton", Impact, sans-serif;
    text-transform: uppercase;
    margin: 18px 18px 6px;
    font-size: 1.15rem;
}
.ag-asso-actu__date {
    color: var(--asso-red);
    font-weight: 600;
    font-size: .82rem;
    text-transform: uppercase;
    margin: 0 18px 8px;
}
.ag-asso-actu p:not(.ag-asso-actu__date) {
    margin: 0 18px 18px;
    color: var(--asso-text-light);
    font-size: .95rem;
}
.ag-asso-actu h3 a { color: inherit; text-decoration: none; }
.ag-asso-actu h3 a:hover { color: var(--asso-red); }

/* ── Form (signer) ── */
.ag-asso-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    max-width: 640px;
}
@media (max-width: 600px) { .ag-asso-form { grid-template-columns: 1fr; } }
.ag-asso-form input[type="text"],
.ag-asso-form input[type="email"] {
    padding: 14px 16px;
    border: 2px solid #fff;
    background: rgba(255,255,255,.08);
    color: #fff;
    font-size: 1rem;
}
.ag-asso-form input::placeholder { color: rgba(255,255,255,.55); }
.ag-asso-form__rgpd {
    grid-column: 1 / -1;
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: rgba(255,255,255,.75);
    font-size: .82rem;
    line-height: 1.5;
}
.ag-asso-form button {
    grid-column: 1 / -1;
    justify-self: start;
}

/* ── Don ── */
.ag-asso-don-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
}
@media (max-width: 700px) { .ag-asso-don-grid { grid-template-columns: repeat(2, 1fr); } }
.ag-asso-don-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px 16px;
    background: #fff;
    border: 2px solid var(--asso-black);
    text-decoration: none;
    color: var(--asso-black);
    transition: background .25s ease, color .25s ease, transform .25s ease;
}
.ag-asso-don-card:hover {
    background: var(--asso-red);
    color: #fff;
    border-color: var(--asso-red);
    transform: translateY(-3px);
}
.ag-asso-don-card__amount {
    font-family: "Anton", Impact, sans-serif;
    font-size: 2.4rem;
    line-height: 1;
}
.ag-asso-don-card__note {
    font-size: .76rem;
    color: var(--asso-text-light);
    margin-top: 8px;
    text-align: center;
}
.ag-asso-don-card:hover .ag-asso-don-card__note { color: rgba(255,255,255,.8); }

/* ── Footer ── */
.ag-asso-footer {
    background: var(--asso-black);
    color: #fff;
    padding: 60px 24px 24px;
    border-top: 4px solid var(--asso-red);
}
.ag-asso-footer__inner {
    max-width: 1180px;
    margin: 0 auto 30px;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 40px;
}
@media (max-width: 768px) { .ag-asso-footer__inner { grid-template-columns: 1fr; gap: 30px; } }
.ag-asso-footer__name {
    font-family: "Anton", Impact, sans-serif;
    text-transform: uppercase;
    font-size: 1.6rem;
    letter-spacing: 2px;
    margin-bottom: 10px;
}
.ag-asso-footer__slogan { color: rgba(255,255,255,.7); margin: 0; }
.ag-asso-footer h4 {
    font-family: "Anton", Impact, sans-serif;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--asso-red);
    margin: 0 0 12px;
}
.ag-asso-footer p, .ag-asso-footer ul { color: rgba(255,255,255,.75); }
.ag-asso-footer ul { list-style: none; padding: 0; margin: 0; }
.ag-asso-footer ul li { margin-bottom: 8px; }
.ag-asso-footer a { color: #fff; }
.ag-asso-footer a:hover { color: var(--asso-yellow); text-decoration: none; }
.ag-asso-footer__copy {
    text-align: center;
    border-top: 1px solid rgba(255,255,255,.1);
    padding-top: 22px;
    font-size: .82rem;
    color: rgba(255,255,255,.55);
}

/* ── Bandeau urgence (Customizer) ── */
.ag-asso-alert {
    background: var(--asso-red);
    color: #fff;
    text-align: center;
    padding: 10px 18px;
    font-weight: 600;
    font-size: .9rem;
    letter-spacing: .3px;
}
.ag-asso-alert__link { color: #fff; text-decoration: underline; margin-left: 12px; }
.ag-asso-alert__link:hover { color: var(--asso-yellow); }

/* ── Hero : second CTA + compteur ── */
.ag-asso-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; justify-content: inherit; }
.ag-asso-btn--ghost {
    background: transparent;
    border: 2px solid #fff;
    color: #fff;
    padding: 12px 22px;
    border-radius: 4px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
}
.ag-asso-btn--ghost:hover { background: #fff; color: var(--asso-black); }
.ag-asso-hero__counter {
    margin-top: 22px;
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    background: rgba(255,255,255,.08);
    padding: 10px 18px;
    border-radius: 4px;
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255,255,255,.15);
}
.ag-asso-hero__counter strong { font-family: var(--asso-font-heading); font-size: 1.6rem; color: var(--asso-yellow); }
.ag-asso-hero__counter-lbl { text-transform: uppercase; font-size: .8rem; letter-spacing: 1px; }

/* ── Footer : logo + reseaux sociaux ── */
.ag-asso-footer__logo { max-width: 140px; margin-bottom: 14px; display: block; }
.ag-asso-social {
    display: flex !important;
    gap: 10px;
    margin-top: 18px !important;
    list-style: none;
    padding: 0;
    flex-wrap: wrap;
}
.ag-asso-social li { margin: 0 !important; }
.ag-asso-social a {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    background: rgba(255,255,255,.08);
    border-radius: 4px;
    font-size: .78rem;
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.ag-asso-social a:hover { background: var(--asso-red); color: #fff; }
.ag-asso-footer__phrase { display: block; margin: 6px 0; }

/* ── Bandeaux parallax entre sections (style avocat) ── */
.ag-asso-parallax {
    position: relative;
    padding: 120px 24px;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    text-align: center;
    color: #fff;
    overflow: hidden;
}
@media (max-width: 768px) { .ag-asso-parallax { background-attachment: scroll; padding: 80px 24px; } }
.ag-asso-parallax__title {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: clamp(2rem, 5vw, 3.6rem);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 14px;
}
.ag-asso-parallax__text {
    font-size: 1.15rem;
    max-width: 720px;
    margin: 0 auto 28px;
    color: rgba(255,255,255,.9);
}

/* ── Page Qui sommes-nous ── */
.ag-asso-about { background: var(--asso-section-bg, #fff); }
.ag-asso-about__hero {
    background: var(--asso-black);
    color: #fff;
    text-align: center;
    padding: 80px 24px;
}
.ag-asso-about__hero h1 {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: clamp(2.4rem, 6vw, 4.5rem);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0;
}
.ag-asso-president {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 48px;
    max-width: 1100px;
    margin: 0 auto;
    padding: 80px 24px;
    align-items: center;
}
@media (max-width: 768px) { .ag-asso-president { grid-template-columns: 1fr; gap: 24px; padding: 50px 24px; } }
.ag-asso-president__photo {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 8px;
    border: 6px solid var(--asso-red);
}
.ag-asso-president__role {
    color: var(--asso-red);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-size: .9rem;
    margin: 0 0 6px;
}
.ag-asso-president h2 {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    margin: 0 0 18px;
    text-transform: uppercase;
}
.ag-asso-president p { font-size: 1.05rem; line-height: 1.7; color: var(--asso-text); }

/* Histoire — alterne gauche/droite avec photo background */
.ag-asso-histoire { background: var(--asso-bg-alt, #F5F5F2); }
.ag-asso-histoire__step {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 420px;
}
@media (max-width: 768px) { .ag-asso-histoire__step { grid-template-columns: 1fr; } }
.ag-asso-histoire__step:nth-child(even) .ag-asso-histoire__photo { order: 2; }
@media (max-width: 768px) { .ag-asso-histoire__step:nth-child(even) .ag-asso-histoire__photo { order: 0; } }
.ag-asso-histoire__photo {
    background-size: cover;
    background-position: center;
    min-height: 300px;
}
.ag-asso-histoire__body {
    padding: 50px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
@media (max-width: 768px) { .ag-asso-histoire__body { padding: 32px 24px; } }
.ag-asso-histoire__year {
    display: inline-block;
    background: var(--asso-red);
    color: #fff;
    padding: 6px 14px;
    font-weight: 700;
    letter-spacing: 1px;
    font-size: .9rem;
    text-transform: uppercase;
    margin-bottom: 14px;
    align-self: flex-start;
}
.ag-asso-histoire__title {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    text-transform: uppercase;
    margin: 0 0 14px;
    color: var(--asso-black);
}
.ag-asso-histoire__text { color: var(--asso-text); line-height: 1.7; }

/* Equipe / benevoles */
.ag-asso-team { padding: 80px 24px; max-width: 1180px; margin: 0 auto; }
.ag-asso-team__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
@media (max-width: 900px) { .ag-asso-team__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ag-asso-team__grid { grid-template-columns: 1fr; } }
.ag-asso-team__card {
    text-align: center;
    background: #fff;
    padding: 24px 20px;
    border: 1px solid rgba(0,0,0,.06);
    border-bottom: 4px solid var(--asso-red);
    transition: transform .25s ease, box-shadow .25s ease;
}
.ag-asso-team__card:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,.08); }
.ag-asso-team__photo {
    width: 140px;
    height: 140px;
    object-fit: cover;
    border-radius: 50%;
    margin: 0 auto 14px;
    display: block;
    border: 4px solid var(--asso-red);
}
.ag-asso-team__name {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.3rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 4px;
    color: var(--asso-black);
}
.ag-asso-team__role { color: var(--asso-red); font-weight: 600; font-size: .9rem; text-transform: uppercase; letter-spacing: 1px; }

/* ── Section Groupes locaux : carte France + stats ── */
.ag-asso-section--map {
    background: linear-gradient(135deg, var(--asso-black) 0%, #1a1a22 100%);
    color: #fff;
    background-image:
        radial-gradient(circle at 20% 20%, rgba(225,15,26,.12) 0, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(255,210,63,.08) 0, transparent 50%),
        linear-gradient(135deg, var(--asso-black) 0%, #1a1a22 100%);
}
.ag-asso-section--map .ag-asso-section__title { color: #fff; }
.ag-asso-section--map .ag-asso-section__lead { color: rgba(255,255,255,.85); }
.ag-asso-section--map .ag-asso-search { margin: 0 auto 18px; }
.ag-asso-section--map .ag-asso-search__note { text-align: center; margin: 0 auto 28px; color: rgba(255,255,255,.75); }
.ag-asso-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 40px auto 0;
    max-width: 720px;
}
@media (max-width: 600px) { .ag-asso-stats { grid-template-columns: 1fr; } }
.ag-asso-stats > div {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    padding: 18px 14px;
    text-align: center;
    border-radius: 6px;
}
.ag-asso-stats strong {
    display: block;
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.9rem;
    color: var(--asso-yellow);
    line-height: 1;
}
.ag-asso-stats span {
    display: block;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: rgba(255,255,255,.7);
    margin-top: 6px;
}
.ag-asso-section--map .ag-asso-search input {
    border-color: #fff;
    background: rgba(255,255,255,.95);
}

/* ── Section équipe ── */
.ag-asso-section--team {
    background: var(--asso-bg-alt, #F5F5F2);
    background-image:
        radial-gradient(circle at 10% 10%, rgba(225,15,26,.04) 0, transparent 40%),
        radial-gradient(circle at 90% 90%, rgba(225,15,26,.04) 0, transparent 40%);
}
.ag-asso-team__photo--placeholder {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    margin: 0 auto 14px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    border: 4px solid var(--asso-red);
    color: #fff;
}
.ag-asso-team__photo--placeholder span {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 2.6rem;
    letter-spacing: 1px;
    line-height: 1;
}
.ag-asso-btn--ghost-dark {
    border-color: var(--asso-black);
    color: var(--asso-black);
}
.ag-asso-btn--ghost-dark:hover {
    background: var(--asso-black);
    color: #fff;
}

/* ── Background subtils sur sections claires ── */
.ag-asso-section:not(.ag-asso-section--alt):not(.ag-asso-section--cta):not(.ag-asso-section--map):not(.ag-asso-section--team) {
    background-image: radial-gradient(circle at 0% 0%, rgba(225,15,26,.03) 0, transparent 35%);
}

/* ── Photo placeholder dans la page Qui sommes-nous ── */
.ag-asso-president__photo--placeholder {
    width: 100%;
    aspect-ratio: 1;
    background: linear-gradient(135deg, var(--asso-red) 0%, var(--asso-red-dark) 100%);
    border-radius: 8px;
    border: 6px solid var(--asso-red);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 5rem;
    letter-spacing: 2px;
}

/* ── Page Qui sommes-nous : sous-titre hero ── */
.ag-asso-about__hero-sub {
    margin: 18px 0 0;
    color: rgba(255,255,255,.85);
    font-size: 1.1rem;
}

/* Histoire : placeholder photo si pas d'image uploadee */
.ag-asso-histoire__photo--placeholder {
    background: linear-gradient(135deg, var(--asso-red) 0%, var(--asso-red-dark) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.ag-asso-histoire__photo--placeholder::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 30% 30%, rgba(255,255,255,.15) 0, transparent 50%),
                      radial-gradient(circle at 70% 70%, rgba(255,210,63,.2) 0, transparent 50%);
}
.ag-asso-histoire__photo-year {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 4.5rem;
    color: rgba(255,255,255,.95);
    letter-spacing: 2px;
    z-index: 1;
}

/* Equipe : version detaillee avec bios */
.ag-asso-team__grid--detailed .ag-asso-team__card { text-align: left; padding: 28px 24px; }
.ag-asso-team__grid--detailed .ag-asso-team__photo,
.ag-asso-team__grid--detailed .ag-asso-team__photo--placeholder {
    margin: 0 0 18px;
}
.ag-asso-team__bio {
    color: var(--asso-text-light, #5A5A66);
    font-size: .92rem;
    line-height: 1.55;
    margin: 12px 0 0;
}

/* Engagements (3 valeurs) */
.ag-asso-about__values {
    background: var(--asso-black);
    color: #fff;
    padding: 80px 0;
    margin-top: 0;
}
.ag-asso-about__values .ag-asso-section__title { color: #fff; }
.ag-asso-values-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 32px;
}
@media (max-width: 800px) { .ag-asso-values-grid { grid-template-columns: 1fr; } }
.ag-asso-value {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.1);
    padding: 30px 24px;
    border-left: 4px solid var(--asso-red);
}
.ag-asso-value__num {
    display: block;
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 2.4rem;
    color: var(--asso-yellow);
    letter-spacing: 1px;
    margin-bottom: 6px;
}
.ag-asso-value h4 {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.4rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 10px;
    color: #fff;
}
.ag-asso-value p { color: rgba(255,255,255,.78); font-size: .95rem; margin: 0; }

/* ── Backgrounds sections : SVG patterns inline + couleurs visibles ── */
/* Combats : pattern poings leves stylises + dominante chaude */
.ag-asso-section--alt#combats {
    background:
        linear-gradient(135deg, rgba(245,245,242,.85) 0%, rgba(245,225,225,.92) 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='%23E10F1A' fill-opacity='0.10'%3E%3Cpath d='M30 90 L30 50 L25 50 L25 35 L40 35 L40 50 L35 50 L35 90 Z M55 95 L55 60 L50 60 L50 45 L65 45 L65 60 L60 60 L60 95 Z M80 88 L80 55 L75 55 L75 40 L90 40 L90 55 L85 55 L85 88 Z'/%3E%3C/g%3E%3C/svg%3E");
    background-size: auto, 120px;
}
/* Evenements : pattern megaphones + dominante claire */
.ag-asso-section#evenements {
    background:
        linear-gradient(180deg, rgba(255,255,255,.88) 0%, rgba(255,250,240,.94) 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill='%23E10F1A' fill-opacity='0.08' stroke='%23E10F1A' stroke-opacity='0.15' stroke-width='1'%3E%3Cpath d='M20 50 L40 40 L40 60 Z M40 45 L55 45 L55 55 L40 55 Z'/%3E%3Ccircle cx='75' cy='30' r='3'/%3E%3Ccircle cx='80' cy='70' r='2'/%3E%3C/g%3E%3C/svg%3E");
    background-size: auto, 100px;
}
/* Actualites : grille de points stylisee */
.ag-asso-section#actu {
    background:
        linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(245,245,242,.94) 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='1' fill='%23E10F1A' fill-opacity='0.18'/%3E%3C/svg%3E");
    background-size: auto, 40px;
}
/* Signer : fond noir avec etoiles/eclats */
.ag-asso-section--cta#signer {
    background:
        linear-gradient(135deg, rgba(10,10,13,.95) 0%, rgba(45,15,18,.95) 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='%23FFD23F' fill-opacity='0.12'%3E%3Cpath d='M40 10 L43 30 L63 33 L43 36 L40 56 L37 36 L17 33 L37 30 Z'/%3E%3Ccircle cx='10' cy='10' r='1.5'/%3E%3Ccircle cx='70' cy='15' r='1'/%3E%3Ccircle cx='15' cy='65' r='1'/%3E%3Ccircle cx='65' cy='70' r='1.5'/%3E%3C/g%3E%3C/svg%3E");
    background-size: auto, 80px;
}
/* Don : pattern coeurs/mains tendues */
.ag-asso-section--alt#don {
    background:
        linear-gradient(180deg, rgba(255,250,240,.88) 0%, rgba(255,245,230,.94) 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'%3E%3Cg fill='%23E10F1A' fill-opacity='0.10'%3E%3Cpath d='M45 70 C25 55 15 35 30 25 C40 18 45 28 45 28 C45 28 50 18 60 25 C75 35 65 55 45 70 Z'/%3E%3C/g%3E%3C/svg%3E");
    background-size: auto, 90px;
}

/* Hero : motif thematique association (mains unies, coeurs, groupes, etoiles) */
.ag-asso-hero {
    background:
        linear-gradient(135deg, rgba(10,10,13,.94) 0%, rgba(70,8,16,.92) 50%, rgba(10,10,13,.94) 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280' viewBox='0 0 280 280'%3E%3Cg fill='none' stroke='%23E10F1A' stroke-opacity='0.30' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M40 95 Q40 75 50 75 Q60 75 60 95 L60 108 Q68 105 68 113 L68 128 Q68 142 53 142 L43 142 Q30 142 30 128 L30 108 Q30 100 40 102 Z'/%3E%3Cpath d='M215 60 Q215 45 224 45 Q233 45 233 60 L233 70 Q239 68 239 75 L239 88 Q239 100 226 100 L218 100 Q208 100 208 88 L208 75 Q208 70 215 71 Z'/%3E%3C/g%3E%3Cg fill='%23E10F1A' fill-opacity='0.22'%3E%3Cpath d='M140 200 C120 184 110 168 122 158 C130 152 138 158 140 162 C142 158 150 152 158 158 C170 168 160 184 140 200 Z'/%3E%3Cpath d='M55 220 C42 209 35 198 43 191 C49 187 54 191 55 194 C56 191 61 187 67 191 C75 198 68 209 55 220 Z'/%3E%3Cpath d='M230 195 C217 184 210 173 218 166 C224 162 229 166 230 169 C231 166 236 162 242 166 C250 173 243 184 230 195 Z'/%3E%3C/g%3E%3Cg fill='%23E10F1A' fill-opacity='0.20'%3E%3Ccircle cx='98' cy='115' r='8'/%3E%3Cpath d='M84 144 Q84 130 98 130 Q112 130 112 144 L112 156 L84 156 Z'/%3E%3Ccircle cx='84' cy='112' r='6'/%3E%3Cpath d='M72 138 Q72 126 84 126 Q96 126 96 138 L96 150 L72 150 Z'/%3E%3Ccircle cx='112' cy='112' r='6'/%3E%3Cpath d='M100 138 Q100 126 112 126 Q124 126 124 138 L124 150 L100 150 Z'/%3E%3C/g%3E%3Cg fill='%23E10F1A' fill-opacity='0.20'%3E%3Ccircle cx='178' cy='100' r='8'/%3E%3Cpath d='M164 129 Q164 115 178 115 Q192 115 192 129 L192 141 L164 141 Z'/%3E%3Ccircle cx='164' cy='97' r='6'/%3E%3Cpath d='M152 123 Q152 111 164 111 Q176 111 176 123 L176 135 L152 135 Z'/%3E%3Ccircle cx='192' cy='97' r='6'/%3E%3Cpath d='M180 123 Q180 111 192 111 Q204 111 204 123 L204 135 L180 135 Z'/%3E%3C/g%3E%3Cg fill='%23FFD23F' fill-opacity='0.32'%3E%3Cpath d='M30 35 L33 45 L43 45 L35 51 L38 61 L30 55 L22 61 L25 51 L17 45 L27 45 Z'/%3E%3Cpath d='M250 240 L253 248 L261 248 L255 253 L257 261 L250 256 L243 261 L245 253 L239 248 L247 248 Z'/%3E%3Ccircle cx='15' cy='180' r='2.5'/%3E%3Ccircle cx='265' cy='160' r='2.5'/%3E%3Ccircle cx='160' cy='30' r='2'/%3E%3Ccircle cx='270' cy='100' r='2'/%3E%3C/g%3E%3C/svg%3E") !important;
    background-size: cover, 280px !important;
    background-position: center, center !important;
    background-attachment: fixed, fixed !important;
}
@media (max-width: 768px) { .ag-asso-hero { background-attachment: scroll, scroll !important; } }

/* Fix .ag-asso-president : si placeholder, le rendre carre + bien aligne */
.ag-asso-president {
    grid-template-columns: 280px 1fr;
}
@media (max-width: 768px) { .ag-asso-president { grid-template-columns: 1fr; text-align: center; } }
.ag-asso-president__photo,
.ag-asso-president__photo--placeholder {
    width: 100%;
    aspect-ratio: 1 / 1;
    max-width: 280px;
    margin: 0 auto;
}
.ag-asso-president__body { min-width: 0; }
.ag-asso-president__body h2 {
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    margin: 0 0 16px;
}
.ag-asso-president__body p { margin: 0 0 12px; font-size: 1rem; line-height: 1.65; }

/* ── Page Evenements : calendrier + liste ── */
.ag-evt-wrap {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 40px;
    max-width: 1180px;
    margin: 30px auto 0;
}
@media (max-width: 900px) { .ag-evt-wrap { grid-template-columns: 1fr; } }

/* Mini calendrier */
.ag-evt-calendar {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    padding: 22px 22px 18px;
    border-top: 4px solid var(--asso-red);
    border-radius: 4px;
    position: sticky;
    top: 100px;
    height: fit-content;
}
.ag-evt-cal-header h3 {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin: 0 0 16px;
    text-align: center;
    color: var(--asso-black);
    font-size: 1.2rem;
}
.ag-evt-cal-grid {
    width: 100%;
    border-collapse: collapse;
    font-size: .9rem;
}
.ag-evt-cal-grid th {
    color: var(--asso-text-light, #5A5A66);
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    padding: 6px 0;
    letter-spacing: 1px;
}
.ag-evt-cal-grid td {
    text-align: center;
    padding: 8px 0;
    color: var(--asso-text);
    border-radius: 4px;
    font-weight: 500;
}
.ag-evt-cal-grid td.has-evt {
    background: rgba(225,15,26,.1);
}
.ag-evt-cal-grid td.has-evt a {
    display: block;
    width: 100%;
    height: 100%;
    color: var(--asso-red);
    font-weight: 800;
    text-decoration: none;
    position: relative;
}
.ag-evt-cal-grid td.has-evt a::after {
    content: '';
    position: absolute;
    bottom: -2px; left: 50%;
    transform: translateX(-50%);
    width: 6px; height: 6px;
    background: var(--asso-red);
    border-radius: 50%;
}
.ag-evt-cal-grid td.is-today {
    background: var(--asso-black);
    color: #fff;
    font-weight: 800;
}
.ag-evt-cal-grid td.is-today.has-evt { background: var(--asso-red); color: #fff; }
.ag-evt-cal-grid td.is-today.has-evt a { color: #fff; }
.ag-evt-cal-grid td.is-today.has-evt a::after { background: #fff; }
.ag-evt-cal-legend {
    margin: 14px 0 0;
    font-size: .78rem;
    color: var(--asso-text-light, #5A5A66);
    text-align: center;
}
.ag-evt-dot {
    display: inline-block;
    width: 10px; height: 10px;
    background: var(--asso-red);
    border-radius: 50%;
    margin-right: 6px;
    vertical-align: middle;
}

/* Liste evenements : cartes avec date+heure stylees */
.ag-evt-list { display: flex; flex-direction: column; gap: 16px; }
.ag-evt-card {
    display: grid;
    grid-template-columns: 110px 1fr;
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 4px;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease;
}
.ag-evt-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(225,15,26,.12);
}
@media (max-width: 600px) { .ag-evt-card { grid-template-columns: 90px 1fr; } }
.ag-evt-date {
    background: linear-gradient(180deg, var(--asso-red) 0%, var(--asso-red-dark) 100%);
    color: #fff;
    text-align: center;
    padding: 18px 8px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
}
.ag-evt-date__dow {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    opacity: 0.9;
    font-weight: 700;
}
.ag-evt-date__day {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 2.6rem;
    line-height: 1;
    margin: 4px 0 2px;
}
.ag-evt-date__month {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    font-weight: 700;
}
.ag-evt-date__year {
    font-size: .65rem;
    opacity: 0.7;
    margin-top: 2px;
    letter-spacing: 1px;
}
.ag-evt-body { padding: 22px 26px; }
@media (max-width: 600px) { .ag-evt-body { padding: 16px 18px; } }
.ag-evt-meta {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    margin-bottom: 8px;
    font-size: .82rem;
    color: var(--asso-red);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.ag-evt-meta__time,
.ag-evt-meta__loc { display: inline-flex; align-items: center; gap: 4px; }
.ag-evt-title {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 8px;
}
.ag-evt-title a { color: var(--asso-black); text-decoration: none; }
.ag-evt-title a:hover { color: var(--asso-red); }
.ag-evt-desc {
    color: var(--asso-text-light, #5A5A66);
    line-height: 1.6;
    margin: 0 0 12px;
}
.ag-evt-cta {
    display: inline-block;
    color: var(--asso-red);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: .85rem;
    text-decoration: none;
    border-bottom: 2px solid var(--asso-red);
    padding-bottom: 2px;
}
.ag-evt-cta:hover { color: var(--asso-red-dark); border-color: var(--asso-red-dark); }

/* ── Scroll smooth + highlight carte event au clic ── */
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
.ag-evt-card:target {
    outline: 3px solid var(--asso-yellow);
    outline-offset: 4px;
    animation: ag-evt-pulse 1.5s ease-out;
}
@keyframes ag-evt-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(255,210,63,0.7); }
    100% { box-shadow: 0 0 0 24px rgba(255,210,63,0); }
}
.ag-evt-card { cursor: pointer; }

/* ── Form propose-groupe ── */
.ag-asso-form--cgroup textarea {
    width: 100%;
    border: 2px solid rgba(255,255,255,0.3);
    background: rgba(255,255,255,0.06);
    color: #fff;
    padding: 14px 16px;
    font-size: 1rem;
    font-family: inherit;
    margin-bottom: 14px;
    border-radius: 4px;
    resize: vertical;
}
.ag-asso-form--cgroup textarea::placeholder { color: rgba(255,255,255,0.55); }
.ag-asso-form--cgroup .ag-asso-form__row { display: grid; gap: 12px; margin-bottom: 12px; }
.ag-asso-form--cgroup .ag-asso-form__row:nth-child(2) { grid-template-columns: 1fr 1fr; }
.ag-asso-form--cgroup .ag-asso-form__row:nth-child(3) { grid-template-columns: 2fr 1fr 1.5fr; }
@media (max-width: 700px) {
    .ag-asso-form--cgroup .ag-asso-form__row,
    .ag-asso-form--cgroup .ag-asso-form__row:nth-child(2),
    .ag-asso-form--cgroup .ag-asso-form__row:nth-child(3) { grid-template-columns: 1fr; }
}
.ag-asso-form--cgroup input {
    border: 2px solid rgba(255,255,255,0.3);
    background: rgba(255,255,255,0.06);
    color: #fff;
    padding: 14px 16px;
    font-size: 1rem;
    border-radius: 4px;
}
.ag-asso-form--cgroup input::placeholder { color: rgba(255,255,255,0.55); }
.ag-asso-form__rgpd {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: rgba(255,255,255,0.85);
    font-size: .88rem;
    margin: 8px 0 18px;
    line-height: 1.5;
}
.ag-asso-form__success {
    background: rgba(40,167,70,0.15);
    border-left: 4px solid #28a745;
    padding: 14px 18px;
    color: #c8f0d2;
    margin: 0 0 18px;
    border-radius: 4px;
}
.ag-asso-form__error {
    background: rgba(225,15,26,0.15);
    border-left: 4px solid var(--asso-red);
    padding: 14px 18px;
    color: #f5cdd0;
    margin: 0 0 18px;
    border-radius: 4px;
}

/* Grille fid sur archive groupes */
.ag-asso-fid-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
@media (max-width: 900px) { .ag-asso-fid-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ag-asso-fid-grid { grid-template-columns: 1fr; } }

/* ── Single event ── */
.ag-evt-single { padding: 60px 24px; }
.ag-evt-single__inner { max-width: 820px; margin: 0 auto; }
.ag-evt-single__date-banner {
    display: inline-flex;
    align-items: baseline;
    gap: 14px;
    background: linear-gradient(180deg, var(--asso-red) 0%, var(--asso-red-dark) 100%);
    color: #fff;
    padding: 14px 22px;
    border-radius: 6px;
    margin-bottom: 22px;
}
.ag-evt-single__day {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 2.6rem;
    line-height: 1;
}
.ag-evt-single__monthyear {
    font-size: .95rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
}
.ag-evt-single__title {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: clamp(2rem, 5vw, 3.4rem);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    line-height: 1.1;
    margin: 0 0 18px;
}
.ag-evt-single__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
    color: var(--asso-text-light, #5A5A66);
    margin: 0 0 30px;
    font-size: 1rem;
    border-bottom: 1px solid rgba(0,0,0,.08);
    padding-bottom: 22px;
}
.ag-evt-single__metaitem strong { color: var(--asso-red); }
.ag-evt-single__content { font-size: 1.05rem; line-height: 1.75; margin-bottom: 36px; }
.ag-evt-single__content p { margin: 0 0 14px; }

/* Actions : Je participe / Je soutiens */
.ag-evt-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 36px;
}
@media (max-width: 600px) { .ag-evt-actions { grid-template-columns: 1fr; } }
.ag-evt-action {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 22px 24px;
    border: 2px solid var(--asso-red);
    border-radius: 8px;
    background: #fff;
    color: var(--asso-black);
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
    overflow: visible;
}
.ag-evt-action:hover {
    background: var(--asso-red);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(225,15,26,.25);
}
.ag-evt-action--support { border-color: var(--asso-yellow); }
.ag-evt-action--support:hover { background: var(--asso-yellow); color: var(--asso-black); box-shadow: 0 12px 24px rgba(255,210,63,.35); }
.ag-evt-action__icon { font-size: 1.6rem; line-height: 1; }
.ag-evt-action__label { flex: 1; text-align: left; }
.ag-evt-action__count {
    background: var(--asso-black);
    color: #fff;
    padding: 6px 14px;
    border-radius: 100px;
    min-width: 52px;
    text-align: center;
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.15rem;
    letter-spacing: 1px;
}
.ag-evt-action--support .ag-evt-action__count { background: var(--asso-red); }
.ag-evt-action.is-loading { opacity: .65; pointer-events: none; }
.ag-evt-action.is-done {
    background: var(--asso-red);
    color: #fff;
    pointer-events: none;
    border-color: var(--asso-red);
}
.ag-evt-action--support.is-done {
    background: var(--asso-yellow);
    color: var(--asso-black);
    border-color: var(--asso-yellow);
}
.ag-evt-action.is-done .ag-evt-action__count { background: rgba(0,0,0,.25); }
.ag-evt-action--support.is-done .ag-evt-action__count { background: rgba(0,0,0,.15); }

/* Bulle +1 qui flotte vers le haut */
.ag-evt-action__bubble {
    position: absolute;
    top: 8px;
    right: 14px;
    background: var(--asso-yellow);
    color: var(--asso-black);
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.1rem;
    padding: 4px 12px;
    border-radius: 100px;
    pointer-events: none;
    animation: ag-evt-floatup 1s ease-out forwards;
    box-shadow: 0 4px 14px rgba(0,0,0,.25);
}
@keyframes ag-evt-floatup {
    0%   { opacity: 0; transform: translateY(0)    scale(.7); }
    20%  { opacity: 1; transform: translateY(-8px) scale(1); }
    100% { opacity: 0; transform: translateY(-60px) scale(1.1); }
}

.ag-evt-single__back {
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid rgba(0,0,0,.08);
}
.ag-evt-single__back a {
    color: var(--asso-red);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: .9rem;
    text-decoration: none;
}

/* ── Footer credit Alliance Groupe ── */
.ag-asso-footer__credit {
    text-align: center;
    padding: 16px 24px 0;
    margin-top: 18px;
    border-top: 1px solid rgba(255,255,255,.08);
    color: rgba(255,255,255,.6);
    font-size: .82rem;
    letter-spacing: .3px;
}
.ag-asso-footer__credit a {
    color: var(--asso-yellow);
    font-weight: 700;
    text-decoration: none;
}
.ag-asso-footer__credit a:hover { text-decoration: underline; }

/* ── Banner promo discrete entre contenu et footer ── */
.ag-asso-promo-banner {
    background: linear-gradient(90deg, #080808 0%, #1a1a22 50%, #080808 100%);
    color: #fff;
    padding: 14px 24px;
    border-top: 1px solid rgba(212,180,92,.25);
    border-bottom: 1px solid rgba(212,180,92,.25);
}
.ag-asso-promo-banner__inner {
    max-width: 1180px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    font-size: .9rem;
}
.ag-asso-promo-banner__emoji { font-size: 1.3rem; animation: ag-bob 2.5s ease-in-out infinite; }
.ag-asso-promo-banner__text { color: rgba(255,255,255,.85); }
.ag-asso-promo-banner__text strong { color: #D4B45C; }
.ag-asso-promo-banner__cta {
    color: #D4B45C;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(212,180,92,.5);
    padding-bottom: 1px;
    transition: color .2s ease, border-color .2s ease;
}
.ag-asso-promo-banner__cta:hover { color: #FFD23F; border-color: #FFD23F; }
@keyframes ag-bob {
    0%,100% { transform: translateY(0) rotate(-5deg); }
    50%     { transform: translateY(-4px) rotate(5deg); }
}

/* ── Popup welcome ── */
body.ag-asso-welcome-open { overflow: hidden; }
.ag-asso-welcome {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    animation: ag-welcome-fade .4s ease-out;
}
.ag-asso-welcome[hidden] { display: none; }
.ag-asso-welcome__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8,8,8,.85);
    backdrop-filter: blur(6px);
    cursor: pointer;
}
.ag-asso-welcome__box {
    position: relative;
    max-width: 520px;
    width: 100%;
    background: linear-gradient(135deg, #080808 0%, #18181f 50%, #0a0a0d 100%);
    border: 2px solid rgba(212,180,92,.4);
    border-radius: 20px;
    padding: 44px 36px 32px;
    color: #fff;
    text-align: center;
    box-shadow: 0 30px 80px rgba(0,0,0,.6), 0 0 60px rgba(212,180,92,.15);
    animation: ag-welcome-pop .55s cubic-bezier(.34, 1.56, .64, 1);
    overflow: hidden;
}
.ag-asso-welcome__box::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, #D4B45C, transparent);
}
.ag-asso-welcome__close {
    position: absolute;
    top: 12px; right: 14px;
    background: transparent;
    border: 0;
    color: rgba(255,255,255,.55);
    font-size: 1.8rem;
    cursor: pointer;
    width: 36px; height: 36px;
    line-height: 1;
    border-radius: 50%;
    transition: background .2s ease, color .2s ease;
}
.ag-asso-welcome__close:hover { background: rgba(255,255,255,.1); color: #fff; }
.ag-asso-welcome__emojis {
    display: flex;
    gap: 14px;
    justify-content: center;
    margin-bottom: 18px;
}
.ag-asso-welcome__emojis span {
    display: inline-block;
    font-size: 2.4rem;
    animation: ag-emoji-dance 2.4s ease-in-out infinite;
    animation-delay: var(--d, 0s);
}
@keyframes ag-emoji-dance {
    0%,100% { transform: translateY(0)   rotate(0deg)   scale(1); }
    25%     { transform: translateY(-12px) rotate(-15deg) scale(1.1); }
    50%     { transform: translateY(0)   rotate(0deg)   scale(1); }
    75%     { transform: translateY(-8px)  rotate(15deg)  scale(1.05); }
}
.ag-asso-welcome__title {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: clamp(1.6rem, 4vw, 2.2rem);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 14px;
    background: linear-gradient(135deg, #D4B45C 0%, #FFD23F 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.ag-asso-welcome__sub {
    color: rgba(255,255,255,.85);
    font-size: .95rem;
    line-height: 1.65;
    margin: 0 0 14px;
}
.ag-asso-welcome__hl {
    color: #FFD23F;
    font-weight: 700;
}
.ag-asso-welcome__actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 22px 0 18px;
}
.ag-asso-welcome__cta {
    display: inline-block;
    background: linear-gradient(135deg, #D4B45C 0%, #B8973F 100%);
    color: #080808;
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 16px 24px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 700;
    transition: transform .2s ease, box-shadow .2s ease;
}
.ag-asso-welcome__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(212,180,92,.4);
}
.ag-asso-welcome__skip {
    background: transparent;
    border: 1px solid rgba(255,255,255,.2);
    color: rgba(255,255,255,.6);
    padding: 10px 20px;
    border-radius: 8px;
    cursor: pointer;
    font-size: .88rem;
    transition: background .2s ease, color .2s ease;
}
.ag-asso-welcome__skip:hover { background: rgba(255,255,255,.06); color: #fff; }
.ag-asso-welcome__credit {
    margin: 0;
    color: rgba(255,255,255,.5);
    font-size: .78rem;
    letter-spacing: .5px;
    border-top: 1px solid rgba(255,255,255,.08);
    padding-top: 14px;
}
.ag-asso-welcome__credit strong { color: #D4B45C; }

@keyframes ag-welcome-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ag-welcome-pop  {
    0%   { opacity: 0; transform: translateY(20px) scale(.92); }
    100% { opacity: 1; transform: translateY(0)    scale(1); }
}

/* ── Salle visio Jitsi (page /reunion/) ── */
.ag-asso-visio { max-width: 1180px; margin: 30px auto; }
.ag-asso-visio__header {
    background: linear-gradient(135deg, var(--asso-black) 0%, #1a1a22 100%);
    color: #fff;
    padding: 32px 30px;
    border-radius: 8px 8px 0 0;
    border-bottom: 4px solid var(--asso-red);
}
.ag-asso-visio__header h2 {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: clamp(1.5rem, 3vw, 2rem);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin: 0 0 12px;
    color: #fff;
}
.ag-asso-visio__header p { color: rgba(255,255,255,.85); margin: 0 0 16px; line-height: 1.65; }
.ag-asso-visio__header strong { color: var(--asso-yellow); }
.ag-asso-visio__features {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.ag-asso-visio__features li {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    padding: 6px 14px;
    border-radius: 100px;
    font-size: .85rem;
    color: rgba(255,255,255,.9);
}
.ag-asso-visio__embed {
    background: var(--asso-black);
    aspect-ratio: 16 / 10;
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(0,0,0,.3);
}
@media (max-width: 700px) { .ag-asso-visio__embed { aspect-ratio: 4 / 5; } }
.ag-asso-visio__embed iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
.ag-asso-visio__share {
    background: var(--asso-bg-alt, #F5F5F2);
    padding: 14px 20px;
    margin: 0;
    text-align: center;
    border-radius: 0 0 8px 8px;
    color: var(--asso-text-light, #5A5A66);
    font-size: .9rem;
}
.ag-asso-visio__share code {
    background: #fff;
    border: 1px solid rgba(0,0,0,.1);
    padding: 4px 10px;
    border-radius: 4px;
    color: var(--asso-red);
    font-weight: 600;
    user-select: all;
    cursor: text;
    word-break: break-all;
}
.ag-asso-visio__help {
    margin: 24px 0 0;
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-left: 4px solid var(--asso-red);
    padding: 18px 22px;
    border-radius: 4px;
}
.ag-asso-visio__help summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--asso-black);
    list-style: none;
}
.ag-asso-visio__help summary::-webkit-details-marker { display: none; }
.ag-asso-visio__help[open] summary { margin-bottom: 14px; }
.ag-asso-visio__help ol { padding-left: 24px; line-height: 1.8; }
.ag-asso-visio__help ol li { margin-bottom: 6px; }

/* Locked state (members only, not logged) */
.ag-asso-visio-locked {
    max-width: 720px;
    margin: 50px auto;
    background: linear-gradient(135deg, var(--asso-black) 0%, #1a1a22 100%);
    color: #fff;
    padding: 50px 36px;
    text-align: center;
    border-radius: 8px;
    border: 2px solid rgba(225,15,26,.5);
}
.ag-asso-visio-locked h3 {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.8rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 14px;
    color: #fff;
}
.ag-asso-visio-locked p { color: rgba(255,255,255,.85); margin: 0; line-height: 1.7; }
.ag-asso-visio-locked a {
    color: var(--asso-yellow);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid var(--asso-yellow);
}

/* ── Combats : icone coloree en haut de chaque carte ── */
.ag-asso-combat {
    position: relative;
    overflow: visible;
}
.ag-asso-combat__icon {
    width: 64px;
    height: 64px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.9rem;
    line-height: 1;
    color: #fff;
    margin: -52px 0 18px 0;
    box-shadow: 0 8px 22px rgba(0,0,0,.18);
    border: 4px solid #fff;
}

/* Carte event entierement cliquable (front-page) */
.ag-asso-event--link {
    text-decoration: none;
    color: inherit;
    transition: transform .25s ease, box-shadow .25s ease;
}
.ag-asso-event--link:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(225,15,26,.12);
    text-decoration: none;
}
.ag-asso-event__cta {
    color: var(--asso-red);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: .85rem;
}

/* ── Sticky pub a gauche : pilule verticale -> panneau au clic ── */
.ag-asso-sticky-pub {
    position: fixed;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 9000;
    display: flex;
    align-items: stretch;
}
.ag-asso-sticky-pub__toggle {
    background: linear-gradient(180deg, #080808 0%, #1a1a22 100%);
    border: 1px solid rgba(212,180,92,.35);
    border-left: 0;
    border-radius: 0 10px 10px 0;
    box-shadow: 0 12px 30px rgba(0,0,0,.35);
    padding: 18px 8px;
    color: #fff;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    width: 42px;
    transition: transform .25s ease, background .2s ease;
}
.ag-asso-sticky-pub__toggle:hover { background: linear-gradient(180deg, #18181f 0%, #2a2a35 100%); transform: translateX(3px); }
.ag-asso-sticky-pub__emoji {
    font-size: 1.4rem;
    animation: ag-bob 2.5s ease-in-out infinite;
    flex-shrink: 0;
}
.ag-asso-sticky-pub__text {
    color: #D4B45C;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    line-height: 1;
    white-space: nowrap;
}
.ag-asso-sticky-pub__panel {
    width: 320px;
    max-width: calc(100vw - 60px);
    background: linear-gradient(135deg, #080808 0%, #18181f 50%, #0a0a0d 100%);
    color: #fff;
    border: 1px solid rgba(212,180,92,.4);
    border-left: 0;
    border-radius: 0 12px 12px 0;
    box-shadow: 0 30px 80px rgba(0,0,0,.6), 0 0 50px rgba(212,180,92,.12);
    padding: 26px 24px 22px;
    margin-left: -2px;
    position: relative;
    transform: translateX(-12px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform .35s cubic-bezier(.34,1.56,.64,1), opacity .25s ease, visibility 0s linear .25s;
}
.ag-asso-sticky-pub.is-open .ag-asso-sticky-pub__panel,
.ag-asso-sticky-pub__toggle:hover ~ .ag-asso-sticky-pub__panel,
.ag-asso-sticky-pub__panel:hover {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: transform .35s cubic-bezier(.34,1.56,.64,1), opacity .25s ease, visibility 0s linear 0s;
}
.ag-asso-sticky-pub.is-open .ag-asso-sticky-pub__toggle,
.ag-asso-sticky-pub__toggle:hover { background: linear-gradient(180deg, #18181f 0%, #2a2a35 100%); }
@media (max-width: 1100px) {
    .ag-asso-sticky-pub { display: none !important; }
}

/* ── Sticky DROITE : "Soutenir" — MIRROR EXACT du sticky pub gauche ── */
.ag-asso-sticky-soutien {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 9000;
    display: flex;
    align-items: stretch;
    flex-direction: row-reverse; /* miroir : toggle a DROITE, panel a GAUCHE du toggle */
}
.ag-asso-sticky-soutien__toggle {
    background: var(--asso-red);
    border: 1px solid rgba(255,255,255,.18);
    border-right: 0;
    border-radius: 10px 0 0 10px;
    box-shadow: 0 12px 30px rgba(0,0,0,.35);
    padding: 18px 8px;
    color: #fff;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    width: 42px;
    transition: transform .25s ease, background .2s ease;
}
.ag-asso-sticky-soutien__toggle:hover { background: var(--asso-red-dark); transform: translateX(-3px); }
.ag-asso-sticky-soutien__emoji {
    font-size: 1.4rem;
    animation: ag-bob 2.5s ease-in-out infinite;
    flex-shrink: 0;
}
.ag-asso-sticky-soutien__text {
    color: #fff;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    line-height: 1;
    white-space: nowrap;
}
.ag-asso-sticky-soutien__panel {
    width: 320px;
    max-width: calc(100vw - 60px);
    background: linear-gradient(135deg, #080808 0%, #18181f 50%, #0a0a0d 100%);
    color: #fff;
    border: 1px solid rgba(255,255,255,.18);
    border-right: 0;
    border-radius: 12px 0 0 12px;
    box-shadow: 0 30px 80px rgba(0,0,0,.6);
    padding: 26px 24px 22px;
    margin-right: -2px;
    position: relative;
    transform: translateX(12px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform .35s cubic-bezier(.34,1.56,.64,1), opacity .25s ease, visibility 0s linear .25s;
}
.ag-asso-sticky-soutien.is-open .ag-asso-sticky-soutien__panel,
.ag-asso-sticky-soutien__toggle:hover ~ .ag-asso-sticky-soutien__panel,
.ag-asso-sticky-soutien__panel:hover {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: transform .35s cubic-bezier(.34,1.56,.64,1), opacity .25s ease, visibility 0s linear 0s;
}
.ag-asso-sticky-soutien.is-open .ag-asso-sticky-soutien__toggle,
.ag-asso-sticky-soutien__toggle:hover { background: var(--asso-red-dark); }
.ag-asso-sticky-soutien__close {
    position: absolute;
    top: 10px;
    left: 12px;
    background: none;
    border: none;
    color: #888;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
}
.ag-asso-sticky-soutien__close:hover { background: rgba(255,255,255,.1); color: #fff; }
.ag-asso-sticky-soutien__title {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.2rem;
    margin: 10px 0 8px;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.ag-asso-sticky-soutien__sub {
    font-size: .9rem;
    line-height: 1.5;
    color: #ddd;
    margin: 0 0 12px;
}
.ag-asso-sticky-soutien__cta {
    display: block;
    text-align: center;
    margin: 14px 0 10px;
    font-weight: 700;
}
.ag-asso-sticky-soutien__more {
    display: block;
    text-align: center;
    color: #FFD23F;
    font-size: .85rem;
    text-decoration: none;
}
.ag-asso-sticky-soutien__more:hover { text-decoration: underline; }
@media (max-width: 1100px) {
    .ag-asso-sticky-soutien { display: none !important; }
}
.ag-asso-sticky-pub__close {
    position: absolute;
    top: 8px; right: 10px;
    background: transparent;
    border: 0;
    color: rgba(255,255,255,.55);
    font-size: 1.6rem;
    cursor: pointer;
    width: 32px; height: 32px;
    line-height: 1;
    border-radius: 50%;
    transition: background .2s ease, color .2s ease;
}
.ag-asso-sticky-pub__close:hover { background: rgba(255,255,255,.1); color: #fff; }
.ag-asso-sticky-pub__emojis { display: flex; gap: 10px; margin-bottom: 14px; }
.ag-asso-sticky-pub__emojis span {
    display: inline-block;
    font-size: 1.6rem;
    animation: ag-emoji-dance 2.4s ease-in-out infinite;
    animation-delay: var(--d, 0s);
}
.ag-asso-sticky-pub__title {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.6rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 10px;
    background: linear-gradient(135deg, #D4B45C 0%, #FFD23F 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.ag-asso-sticky-pub__h4 {
    color: #FFD23F;
    font-size: .88rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin: 18px 0 8px;
}
.ag-asso-sticky-pub__sub { color: rgba(255,255,255,.85); font-size: .9rem; line-height: 1.6; margin: 0 0 12px; }
.ag-asso-sticky-pub__actions { display: flex; flex-direction: column; gap: 8px; margin: 18px 0 14px; }
.ag-asso-sticky-pub__cta-primary {
    background: linear-gradient(135deg, #D4B45C 0%, #B8973F 100%);
    color: #080808;
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: .95rem;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    padding: 13px 18px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 700;
    text-align: center;
    transition: transform .2s ease, box-shadow .2s ease;
}
.ag-asso-sticky-pub__cta-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(212,180,92,.4); text-decoration: none; }
.ag-asso-sticky-pub__cta-secondary {
    background: transparent;
    border: 1px solid rgba(255,255,255,.25);
    color: rgba(255,255,255,.85);
    padding: 11px 18px;
    border-radius: 6px;
    font-size: .85rem;
    text-decoration: none;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.ag-asso-sticky-pub__cta-secondary:hover { background: rgba(255,255,255,.06); color: #fff; border-color: rgba(255,255,255,.4); text-decoration: none; }
.ag-asso-sticky-pub__credit {
    margin: 14px 0 0;
    color: rgba(255,255,255,.55);
    font-size: .75rem;
    letter-spacing: .5px;
    text-align: center;
    border-top: 1px solid rgba(255,255,255,.08);
    padding-top: 10px;
}
.ag-asso-sticky-pub__credit strong { color: #D4B45C; }

/* ── Bouton retour haut (fixed bottom right) ── */
.ag-asso-backtop {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 9001;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--asso-red);
    color: #fff;
    border: 0;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(225,15,26,.35);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .25s ease, transform .25s ease, background .2s ease;
}
.ag-asso-backtop[hidden] { display: none; }
.ag-asso-backtop.is-visible { opacity: 1; transform: translateY(0); }
.ag-asso-backtop:hover { background: var(--asso-red-dark); transform: translateY(-3px); }

/* ── Header sticky scroll-aware (cache au scroll bas) ── */
.ag-asso-header {
    transition: transform .3s ease;
    will-change: transform;
}
.ag-asso-header.is-hidden { transform: translateY(-100%); }

/* ── Menu sur 1 ligne : reduit gap + padding ── */
.ag-asso-header__inner { gap: 14px; flex-wrap: nowrap; }
.ag-asso-header__nav { gap: 14px; flex-wrap: nowrap; }
.ag-asso-header__menu { gap: 14px; flex-wrap: nowrap; }
.ag-asso-header__menu a,
.ag-asso-header__nav a {
    font-size: .82rem;
    letter-spacing: .8px;
    white-space: nowrap;
}
.ag-asso-header__menu li:last-child a.ag-asso-cta,
.ag-asso-cta { padding: 8px 14px; font-size: .8rem; }
@media (max-width: 1100px) {
    .ag-asso-header__inner { flex-wrap: wrap; }
    .ag-asso-header__nav { flex-wrap: wrap; }
    .ag-asso-header__menu { flex-wrap: wrap; }
}
@media (max-width: 1100px) { .ag-asso-sticky-pub { display: none; } }

/* ── Visuels SVG auto-generes (combats / articles) ── */
.ag-asso-visual {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: #1a1a22;
    background-size: cover;
    background-position: center;
}
.ag-asso-visual img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Archive Combats (template archive-ag_combat) */
.ag-asso-combats-grid--archive { gap: 26px; }
.ag-asso-combat--card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-top: 0;
    border-radius: 6px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    padding: 0;
    transition: transform .25s ease, box-shadow .25s ease;
}
.ag-asso-combat--card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 36px rgba(225,15,26,.12);
    text-decoration: none;
}
.ag-asso-combat__visual {
    aspect-ratio: 16 / 9;
    width: 100%;
    border-bottom: 4px solid var(--asso-red);
}
.ag-asso-combat__body { padding: 22px 24px; }
.ag-asso-combat__body h3 {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 1.3rem;
    margin: 0 0 10px;
    color: var(--asso-black);
}
.ag-asso-combat__body p {
    color: var(--asso-text-light, #5A5A66);
    line-height: 1.6;
    margin: 0 0 12px;
}
.ag-asso-combat__cta {
    display: inline-block;
    color: var(--asso-red);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: .85rem;
    border-bottom: 2px solid var(--asso-red);
    padding-bottom: 2px;
}

/* Actu : visuel toujours present (front-page + index) */
.ag-asso-actu__imglink { display: block; text-decoration: none; }
.ag-asso-actu__img {
    aspect-ratio: 16 / 10;
    margin-bottom: 14px;
    border-radius: 4px;
}

/* Single article : grand visuel header */
.ag-asso-single__visual {
    aspect-ratio: 21 / 9;
    margin-bottom: 28px;
    border-radius: 6px;
    border-bottom: 4px solid var(--asso-red);
}

/* Banner promo placee dans le footer (au-dessus des colonnes contact/liens) */
.ag-asso-promo-banner--in-footer {
    background: linear-gradient(90deg, rgba(225,15,26,0.10) 0%, rgba(212,180,92,0.10) 50%, rgba(225,15,26,0.10) 100%);
    border-top: 1px solid rgba(212,180,92,.15);
    border-bottom: 1px solid rgba(212,180,92,.15);
    margin: 0 0 32px;
}
.ag-asso-promo-banner--in-footer .ag-asso-promo-banner__text { color: rgba(255,255,255,.9); }

/* ── Page RDV Cal.com ── */
.ag-asso-rdv { max-width: 1180px; margin: 30px auto; }
.ag-asso-rdv__header {
    background: linear-gradient(135deg, var(--asso-black) 0%, #1a1a22 100%);
    color: #fff;
    padding: 32px 30px;
    border-radius: 8px 8px 0 0;
    border-bottom: 4px solid var(--asso-red);
}
.ag-asso-rdv__header h2 {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: clamp(1.5rem, 3vw, 2rem);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin: 0 0 12px;
    color: #fff;
}
.ag-asso-rdv__header p { color: rgba(255,255,255,.85); margin: 0 0 16px; line-height: 1.65; }
.ag-asso-rdv__header strong { color: var(--asso-yellow); }
.ag-asso-rdv__features {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.ag-asso-rdv__features li {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    padding: 6px 14px;
    border-radius: 100px;
    font-size: .85rem;
    color: rgba(255,255,255,.9);
}
.ag-asso-rdv__embed {
    background: #fff;
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(0,0,0,.15);
    border: 1px solid rgba(0,0,0,.08);
    border-top: 0;
}
.ag-asso-rdv__embed iframe { width: 100%; min-height: 700px; border: 0; display: block; }
.ag-asso-rdv__share {
    background: var(--asso-bg-alt, #F5F5F2);
    padding: 14px 20px;
    margin: 0;
    text-align: center;
    border-radius: 0 0 8px 8px;
    color: var(--asso-text-light, #5A5A66);
    font-size: .9rem;
}
.ag-asso-rdv__share code {
    background: #fff;
    border: 1px solid rgba(0,0,0,.1);
    padding: 4px 10px;
    border-radius: 4px;
    color: var(--asso-red);
    font-weight: 600;
    user-select: all;
}
.ag-asso-rdv__setup {
    background: #fff;
    padding: 36px 32px;
    border-radius: 0 0 8px 8px;
    border: 1px solid rgba(0,0,0,.08);
    border-top: 0;
}
.ag-asso-rdv__setup h3 {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 18px;
    color: var(--asso-black);
}
.ag-asso-rdv__setup ol { padding-left: 22px; line-height: 1.85; font-size: 1rem; }
.ag-asso-rdv__setup ol li { margin-bottom: 10px; }
.ag-asso-rdv__setup code {
    background: var(--asso-bg-alt, #F5F5F2);
    border: 1px solid rgba(0,0,0,.1);
    padding: 2px 8px;
    border-radius: 4px;
    color: var(--asso-red);
    font-weight: 600;
}
.ag-asso-rdv__setup a { color: var(--asso-red); font-weight: 700; }

/* ── Logo : taille raisonnable + mobile ── */
.ag-asso-header__logo img,
.ag-asso-header__logolink img,
.ag-asso-header .custom-logo,
.ag-asso-header img.custom-logo {
    max-height: 56px !important;
    min-height: 40px !important;
    height: auto !important;
    width: auto !important;
    max-width: 220px !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.ag-asso-header__logolink,
.ag-asso-header .custom-logo-link,
.ag-asso-header .ag-asso-header__logolink {
    display: inline-flex !important;
    align-items: center !important;
    text-decoration: none !important;
    color: inherit !important;
    gap: 10px;
    flex: 0 0 auto !important;
    min-width: 56px;
    min-height: 56px;
    visibility: visible !important;
    opacity: 1 !important;
}
.ag-asso-header__logolink .ag-asso-header__name {
    font-family: var(--asso-font-heading), Impact, sans-serif;
    font-size: 1.3rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #fff;
}
@media (max-width: 768px) {
    .ag-asso-header__logo img,
    .ag-asso-header__logolink img,
    .ag-asso-header .custom-logo { max-height: 40px !important; max-width: 160px !important; }
    .ag-asso-header__name { font-size: 1.1rem; letter-spacing: 1px; }
    .ag-asso-header__inner { padding: 10px 16px; gap: 10px; }
}
.ag-asso-footer__logo { max-height: 80px; width: auto; }
@media (max-width: 768px) { .ag-asso-footer__logo { max-height: 60px; } }

/* ── Fix : header au-dessus de la sticky pub + reserve espace logo ── */
.ag-asso-header { z-index: 9100 !important; }
@media (min-width: 1101px) {
    .ag-asso-header__inner { padding-left: 60px; }
}
/* Sticky pub : limiter hauteur du panneau pour ne pas couvrir le header */
.ag-asso-sticky-pub__panel {
    max-height: calc(100vh - 140px);
    overflow-y: auto;
}
.ag-asso-sticky-pub { top: 55%; }

/* Compteur signatures cliquable */
a.ag-asso-hero__counter {
    text-decoration: none;
    color: #fff;
    cursor: pointer;
    transition: background .2s ease, transform .2s ease;
}
a.ag-asso-hero__counter:hover {
    background: rgba(255,255,255,.14);
    transform: translateY(-2px);
    text-decoration: none;
}

.ag-asso-team__date { color: var(--asso-red); font-size: .8rem; font-weight: 600; margin: 8px 0 0; letter-spacing: .3px; }

/* ── Menu mobile : hamburger + accordeon ── */
.ag-asso-burger {
    display: none;
    background: transparent;
    border: 0;
    padding: 8px;
    cursor: pointer;
    margin-left: auto;
    flex-direction: column;
    gap: 5px;
    width: 38px; height: 38px;
    align-items: center;
    justify-content: center;
}
.ag-asso-burger span {
    display: block;
    width: 22px; height: 2px;
    background: #fff;
    transition: transform .25s ease, opacity .2s ease;
}
.ag-asso-header.is-mobile-open .ag-asso-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ag-asso-header.is-mobile-open .ag-asso-burger span:nth-child(2) { opacity: 0; }
.ag-asso-header.is-mobile-open .ag-asso-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 900px) {
    .ag-asso-burger { display: flex; }
    .ag-asso-header__nav {
        position: absolute;
        top: 100%;
        left: 0; right: 0;
        background: var(--asso-black, #0F0F12);
        border-top: 1px solid rgba(255,255,255,.08);
        max-height: 0;
        overflow: hidden;
        transition: max-height .35s ease;
        padding: 0;
    }
    .ag-asso-header.is-mobile-open .ag-asso-header__nav {
        max-height: calc(100vh - 80px);
        overflow-y: auto;
        padding: 18px 24px 24px;
    }
    .ag-asso-header__menu,
    .ag-asso-header__nav {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }
    .ag-asso-header__menu li, .ag-asso-header__menu, .ag-asso-header__nav > a {
        width: 100%;
    }
    .ag-asso-header__menu a, .ag-asso-header__nav > a {
        display: block;
        padding: 14px 4px;
        font-size: 1rem;
        border-bottom: 1px solid rgba(255,255,255,.08);
        text-align: left;
    }
    .ag-asso-header__menu a:last-child { border-bottom: 0; }
    .ag-asso-header__menu li:last-child a, .ag-asso-cta {
        margin-top: 12px;
        text-align: center !important;
        background: var(--asso-red) !important;
        border-radius: 6px;
        padding: 14px 22px !important;
    }
    .ag-asso-header__inner { padding: 12px 18px; padding-left: 18px !important; }
}
