/* =====================================================
   CSSA 74 — Design System (Site Public)
   ===================================================== */

:root {
    --cssa-primary:    #002D5A;
    --cssa-red:        #D12027;
    --cssa-green:      #1A7B45;
    --cssa-yellow:     #FFD100;
    --cssa-blue-light: #2B90C6;
    --cssa-bg:         #F8FAFC;
    --cssa-text:       #0F172A;
    --cssa-border:     #E2E8F0;
    --cssa-muted:      #64748B;
}

/* ── Base ──────────────────────────────────────────── */
html { scroll-behavior: smooth; font-size: 15px; }

body {
    background-color: var(--cssa-bg);
    color: var(--cssa-text);
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    margin: 0;
}

/* ── Navbar ────────────────────────────────────────── */
.cssa-nav {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--cssa-border);
    padding: .9rem 0;
}

.cssa-nav-logo {
    width: 38px;
    height: 38px;
    background: var(--cssa-primary);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .7rem;
    font-weight: 800;
    color: white;
    flex-shrink: 0;
    letter-spacing: -.01em;
}

.cssa-nav .nav-link {
    color: var(--cssa-muted) !important;
    font-weight: 500;
    font-size: .875rem;
    padding: .25rem 0 !important;
    position: relative;
    margin: 0 .75rem;
    transition: color .2s;
}
.cssa-nav .nav-link::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--cssa-yellow);
    border-radius: 2px;
    transition: width .25s ease;
}
.cssa-nav .nav-link:hover,
.cssa-nav .nav-link.active {
    color: var(--cssa-primary) !important;
}
.cssa-nav .nav-link:hover::after,
.cssa-nav .nav-link.active::after {
    width: 100%;
}

.btn-nav-yellow {
    background: var(--cssa-yellow);
    color: var(--cssa-primary);
    font-weight: 700;
    font-size: .8rem;
    border-radius: 50px;
    padding: .5rem 1.1rem;
    border: none;
    transition: all .2s;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    white-space: nowrap;
}
.btn-nav-yellow:hover {
    background: #e6bd00;
    color: var(--cssa-primary);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,.12);
}

.navbar-logo-wrap {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    padding: 1px;              /* épaisseur du cercle rouge */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}
.navbar-logo-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 50%;
}
@media (max-width: 767px) {
    .navbar-logo-wrap { width: 70px; height: 70px; }
}

/* Titre de l'association à côté du logo — visible aussi en mobile (auparavant masqué en dessous
   de "sm"), avec troncature au lieu d'un retour à la ligne si l'espace manque à côté du bouton
   hamburger. */
.navbar-brand-title {
    font-size: 1.05rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}
@media (max-width: 575px) {
    .navbar-logo-wrap { width: 48px; height: 48px; }
    .navbar-brand-title { font-size: .8rem; }
}
@media (max-width: 360px) {
    .navbar-brand-title { font-size: .72rem; }
}

/* ── Hero ─────────────────────────────────────────── */
.hero {
    background: linear-gradient(rgba(0,45,90,.85), rgba(0,45,90,.95)),
                url('/img/hero-bg.jpg') center/cover no-repeat;
    color: white;
    padding: 7rem 0;
}
.hero-tag {
    display: inline-block;
    padding: .4rem 1rem;
    border-radius: 50px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
}
.hero h1 {
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 800;
    line-height: 1.12;
    margin-bottom: 1.25rem;
}
.hero h1 .accent { color: var(--cssa-yellow); }
.hero p { font-size: 1.05rem; color: rgba(255,255,255,.8); max-width: 580px; margin-bottom: 2rem; }

.btn-hero-primary {
    background: var(--cssa-yellow);
    color: var(--cssa-primary);
    font-weight: 700;
    padding: .875rem 2rem;
    border-radius: .75rem;
    border: none;
    font-size: .9rem;
    text-decoration: none;
    transition: all .2s;
    display: inline-block;
}
.btn-hero-primary:hover {
    background: white;
    color: var(--cssa-primary);
    transform: translateY(-2px);
}
.btn-hero-ghost {
    background: rgba(255,255,255,.1);
    color: white;
    font-weight: 700;
    padding: .875rem 2rem;
    border-radius: .75rem;
    border: 1px solid rgba(255,255,255,.3);
    font-size: .9rem;
    text-decoration: none;
    transition: all .2s;
    display: inline-block;
}
.btn-hero-ghost:hover {
    background: rgba(255,255,255,.2);
    color: white;
}

/* ── Stat cards (floating) ────────────────────────────── */
.stats-row {
    margin-top: -3.5rem;
    position: relative;
    z-index: 10;
    margin-bottom: 4rem;
}
.stat-hero-card {
    background: white;
    border-radius: 1rem;
    padding: 1.75rem 1.25rem;
    text-align: center;
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    border-bottom: 4px solid transparent;
    height: 100%;
}
.stat-hero-card .big-num {
    font-size: 2.25rem;
    font-weight: 900;
    line-height: 1;
    margin-bottom: .375rem;
}
.stat-hero-card .big-label {
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--cssa-muted);
}

/* ── Section headings ─────────────────────────────────── */
.section-heading { color: var(--cssa-primary); font-weight: 800; }
.section-divider {
    width: 3rem;
    height: 4px;
    background: var(--cssa-yellow);
    border-radius: 4px;
    margin: .75rem auto .25rem;
}
.section-divider-left {
    width: 3rem;
    height: 4px;
    background: var(--cssa-yellow);
    border-radius: 4px;
    margin: .75rem 0 .25rem;
}

/* ── Mission cards ────────────────────────────────────── */
.mission-card {
    background: white;
    border-radius: 1.25rem;
    padding: 2.25rem;
    border: 1px solid var(--cssa-border);
    transition: all .25s ease;
    height: 100%;
}
.mission-card:hover {
    box-shadow: 0 12px 30px rgba(0,0,0,.1);
    transform: translateY(-3px);
}
.mission-icon {
    width: 52px;
    height: 52px;
    border-radius: .875rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
    transition: all .25s;
}
.mission-card:hover .mission-icon svg { stroke: white; }

/* ── Event / news cards ──────────────────────────────── */
.event-card {
    background: white;
    border-radius: 1rem;
    border: 1px solid var(--cssa-border);
    overflow: hidden;
    transition: all .2s ease;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.event-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,.1);
    transform: translateY(-2px);
}
.event-card-body { padding: 1.375rem; flex: 1; display: flex; flex-direction: column; }
.event-card-footer {
    padding: .875rem 1.375rem;
    border-top: 1px solid var(--cssa-border);
    background: #FAFAFA;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: .78rem;
    color: var(--cssa-muted);
}
.event-tag {
    display: inline-block;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: .25em .6em;
    border-radius: .3rem;
    margin-bottom: .5rem;
}

/* ── Event cards v2 (premium horizontal) ─────────────── */
.event-card-v2 {
    background: #fff;
    border-radius: 20px;
    border: 1px solid var(--cssa-border);
    overflow: hidden;
    display: flex;
    flex-direction: row;
    transition: transform .25s ease, box-shadow .25s ease;
    box-shadow: 0 2px 12px rgba(0,0,0,.05);
    height: 100%;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}
.event-card-v2:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 40px rgba(0,0,0,.12);
    text-decoration: none;
    color: inherit;
}
.ev-cover {
    width: 38%;
    min-height: 190px;
    flex-shrink: 0;
    overflow: hidden;
    position: relative;
}
.ev-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
    display: block;
}
.event-card-v2:hover .ev-cover img { transform: scale(1.06); }
.ev-cover-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom right, rgba(0,0,0,.08) 0%, rgba(0,0,0,.25) 100%);
    pointer-events: none;
}
/* Default cover gradients per type */
.ev-cover-default   { background: linear-gradient(135deg, #002D5A 0%, #2B90C6 100%); }
.ev-cover-Sortie    { background: linear-gradient(135deg, #1A7B45 0%, #2B90C6 100%); }
.ev-cover-AG        { background: linear-gradient(135deg, #002D5A 0%, #4a7fbf 100%); }
.ev-cover-Competition { background: linear-gradient(135deg, #991515 0%, #D12027 100%); }
.ev-cover-Atelier   { background: linear-gradient(135deg, #1a5fa0 0%, #6aaa2a 100%); }
.ev-cover-Reunion   { background: linear-gradient(135deg, #6b21a8 0%, #2B90C6 100%); }
.ev-cover-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.8rem;
    height: 100%;
    opacity: .85;
    user-select: none;
}
.ev-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.ev-content-body {
    padding: 1.25rem 1.4rem 1rem;
    flex: 1;
}
.ev-title {
    font-size: 1rem;
    font-weight: 800;
    color: #002D5A;
    line-height: 1.3;
    margin: .4rem 0 .6rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ev-desc {
    font-size: .8rem;
    color: var(--cssa-muted);
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: .75rem;
    flex: 1;
}
.ev-meta {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    font-size: .78rem;
    color: var(--cssa-muted);
}
.ev-meta-row {
    display: flex;
    align-items: center;
    gap: .4rem;
    line-height: 1.2;
}
.ev-footer {
    border-top: 1px solid var(--cssa-border);
    padding: .85rem 1.4rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    background: #fafbfc;
}
.ev-price-block { display: flex; flex-direction: column; gap: .15rem; }
.ev-price-label { font-size: .65rem; color: var(--cssa-muted); text-transform: uppercase; letter-spacing: .05em; font-weight: 600; }
.ev-price-row { display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.ev-price-member { font-size: .9rem; font-weight: 800; color: #002D5A; }
.ev-price-public { font-size: .82rem; font-weight: 600; color: var(--cssa-muted); text-decoration: line-through; }
.ev-price-free   { font-size: .9rem; font-weight: 800; color: #1A7B45; }
.ev-badge-urgency {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: .25em .55em;
    border-radius: .4rem;
}
.ev-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .78rem;
    font-weight: 700;
    padding: .5rem 1rem;
    border-radius: 50px;
    background: #002D5A;
    color: #fff;
    border: none;
    text-decoration: none;
    white-space: nowrap;
    transition: background .18s, transform .18s;
    flex-shrink: 0;
}
.ev-btn:hover { background: #1a4780; color: #fff; transform: translateX(2px); }

/* Mobile: stack vertically */
@media (max-width: 575.98px) {
    .event-card-v2 { flex-direction: column; }
    .ev-cover { width: 100%; min-height: 160px; }
}

/* Hero image overlay for Details page */
.ev-hero {
    position: relative;
    width: 100%;
    max-height: 480px;
    overflow: hidden;
    border-radius: 0 0 24px 24px;
}
.ev-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    max-height: 480px;
}
.ev-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,10,30,.75) 0%, rgba(0,10,30,.2) 60%, transparent 100%);
}
.ev-hero-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 2rem 2.5rem;
    color: #fff;
}
.ev-hero-gradient-fallback {
    height: 360px;
    display: flex;
    align-items: flex-end;
    padding: 2rem 2.5rem;
    color: #fff;
    border-radius: 0 0 24px 24px;
}

/* Dark theme */
[data-theme="dark"] .event-card-v2 {
    background: #1e293b !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .ev-footer { background: #0f172a !important; border-color: #334155 !important; }
[data-theme="dark"] .ev-title  { color: #e2e8f0 !important; }

/* Contrast theme */
[data-theme="contrast"] .event-card-v2 {
    background: #000 !important;
    border: 2px solid #fff !important;
}
[data-theme="contrast"] .event-card-v2:hover { box-shadow: 0 0 0 3px #ffff00; transform: none; }
[data-theme="contrast"] .ev-footer { background: #0a0a0a; border-color: #555; }
[data-theme="contrast"] .ev-title  { color: #fff !important; }
[data-theme="contrast"] .ev-btn    { background: #ffff00; color: #000; }

/* ── Announcement list ───────────────────────────────── */
.ann-item {
    padding: 1rem 0;
    border-bottom: 1px solid var(--cssa-border);
}
.ann-item:last-child { border-bottom: none; }
.ann-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: .35rem;
}

/* ── Buttons ───────────────────────────────────────── */
.btn-cssa {
    background-color: var(--cssa-primary);
    border-color: var(--cssa-primary);
    color: white;
    font-weight: 600;
    border-radius: .6rem;
}
.btn-cssa:hover {
    background-color: #001f3e;
    border-color: #001f3e;
    color: white;
}
.btn-cssa-outline {
    border: 1.5px solid var(--cssa-primary);
    color: var(--cssa-primary);
    background: transparent;
    font-weight: 600;
    border-radius: .6rem;
}
.btn-cssa-outline:hover {
    background-color: var(--cssa-primary);
    color: white;
}
.btn-cssa-yellow {
    background-color: var(--cssa-yellow);
    border-color: var(--cssa-yellow);
    color: var(--cssa-primary);
    font-weight: 700;
    border-radius: .6rem;
}
.btn-cssa-yellow:hover {
    background-color: #e6bd00;
    border-color: #e6bd00;
    color: var(--cssa-primary);
}

/* ── Forms ─────────────────────────────────────────── */
.form-control, .form-select {
    border-radius: .5rem;
    border-color: var(--cssa-border);
    font-size: .9rem;
}
.form-control:focus, .form-select:focus {
    border-color: var(--cssa-blue-light);
    box-shadow: 0 0 0 3px rgba(43,144,198,.15);
}
.form-label { font-weight: 600; font-size: .85rem; }
.alert { border-radius: .625rem; border: none; font-size: .875rem; }

/* ── Login / auth page ──────────────────────────────── */
.auth-split {
    min-height: calc(100vh - 80px);
    display: flex;
}
.auth-panel-left {
    background: linear-gradient(160deg, var(--cssa-primary) 0%, #00428a 100%);
    color: white;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 4rem 3rem;
}
.auth-panel-right {
    flex: 0 0 480px;
    max-width: 480px;
    padding: 3rem 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: white;
}
@media (max-width: 767.98px) {
    .auth-panel-left { display: none; }
    .auth-panel-right { flex: 1; max-width: 100%; }
}

/* ── Footer ─────────────────────────────────────────── */
.cssa-footer {
    background: var(--cssa-primary);
    color: white;
    padding: 4rem 0 2rem;
}
.cssa-footer a { color: rgba(255,255,255,.6); text-decoration: none; font-size: .875rem; transition: color .2s; }
.cssa-footer a:hover { color: var(--cssa-yellow); }
.footer-logo {
    width: 38px; height: 38px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .65rem;
    font-weight: 800;
    color: var(--cssa-primary);
}
.footer-social {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all .2s;
    text-decoration: none;
    color: white !important;
}
.footer-social:hover {
    background: var(--cssa-yellow);
    color: var(--cssa-primary) !important;
}
.footer-newsletter input {
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    color: white;
    border-radius: .5rem 0 0 .5rem;
    padding: .5rem .875rem;
    font-size: .85rem;
    flex: 1;
    outline: none;
}
.footer-newsletter input::placeholder { color: rgba(255,255,255,.45); }
.footer-newsletter input:focus { border-color: var(--cssa-yellow); }
.footer-newsletter button {
    background: var(--cssa-yellow);
    color: var(--cssa-primary);
    border: none;
    border-radius: 0 .5rem .5rem 0;
    padding: .5rem 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s;
}
.footer-newsletter button:hover { background: white; }

/* ── Utility ────────────────────────────────────────── */
.text-cssa-primary  { color: var(--cssa-primary)  !important; }
.text-cssa-blue     { color: var(--cssa-blue-light)!important; }
.text-cssa-red      { color: var(--cssa-red)       !important; }
.text-cssa-green    { color: var(--cssa-green)     !important; }
.text-cssa-yellow   { color: var(--cssa-yellow)    !important; }
.bg-cssa-primary    { background-color: var(--cssa-primary)  !important; }

/* ── Page hero (interior pages) ───────────────────── */
.page-hero {
    background: linear-gradient(135deg, var(--cssa-primary) 0%, #00428a 100%);
    color: white;
    padding: 4rem 0 3.5rem;
}
.page-hero .hero-tag { margin-bottom: 1rem; }
.page-hero h1 {
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: .75rem;
}
.page-hero h1 .accent { color: var(--cssa-yellow); }
.page-hero p {
    font-size: 1rem;
    color: rgba(255,255,255,.75);
    max-width: 560px;
    margin-bottom: 0;
}

/* ── Breadcrumb ─────────────────────────────────── */
.cssa-breadcrumb {
    display: flex;
    align-items: center;
    gap: .5rem;
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
    font-size: .8rem;
}
.cssa-breadcrumb li { display: flex; align-items: center; gap: .5rem; }
.cssa-breadcrumb li + li::before { content: '›'; color: rgba(255,255,255,.4); }
.cssa-breadcrumb a { color: rgba(255,255,255,.65); text-decoration: none; transition: color .2s; }
.cssa-breadcrumb a:hover { color: var(--cssa-yellow); }
.cssa-breadcrumb .active { color: white; font-weight: 600; }

/* ── Pricing cards ──────────────────────────────── */
.pricing-card {
    background: white;
    border-radius: 1.25rem;
    border: 1.5px solid var(--cssa-border);
    padding: 2.25rem;
    transition: all .25s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
}
.pricing-card:hover {
    box-shadow: 0 12px 32px rgba(0,0,0,.1);
    transform: translateY(-4px);
}
.pricing-card.featured {
    background: var(--cssa-primary);
    border-color: var(--cssa-primary);
    color: white;
}
.pricing-card.featured .pricing-meta  { color: rgba(255,255,255,.65); }
.pricing-card.featured .pricing-divider { background: rgba(255,255,255,.2); }
.pricing-card .featured-badge {
    position: absolute;
    top: -1px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--cssa-yellow);
    color: var(--cssa-primary);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: .3em .9em;
    border-radius: 0 0 .6rem .6rem;
}
.pricing-amount {
    font-size: 3rem;
    font-weight: 900;
    line-height: 1;
    color: var(--cssa-primary);
}
.pricing-card.featured .pricing-amount { color: var(--cssa-yellow); }
.pricing-currency { font-size: 1.5rem; vertical-align: super; font-weight: 700; }
.pricing-meta { color: var(--cssa-muted); font-size: .8rem; margin-top: .25rem; }
.pricing-divider { height: 1px; background: var(--cssa-border); margin: 1.25rem 0; }
.pricing-btn { margin-top: auto; }

/* ── About / info sections ──────────────────────── */
.about-section { padding: 5rem 0; }
.about-section:nth-child(even) { background: white; }

/* Honeypot anti-spam (formulaire de contact) : hors écran et hors tabulation,
   invisible pour un humain — un robot qui remplit tous les champs le révèle. */
.hp-field { position: absolute; left: -9999px; top: -9999px; height: 0; width: 0; overflow: hidden; }
.about-feature-icon {
    width: 56px;
    height: 56px;
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.info-list { list-style: none; padding: 0; margin: 0; }
.info-list li {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
    padding: .7rem 0;
    border-bottom: 1px solid var(--cssa-border);
    font-size: .9rem;
}
.info-list li:last-child { border-bottom: none; }
.info-bullet {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--cssa-yellow);
    flex-shrink: 0;
    margin-top: .4rem;
}

/* ── Membership status badges ──────────────────── */
.membership-status-badge {
    display: inline-block;
    padding: .2rem .65rem;
    border-radius: 20px;
    font-size: .75rem;
    font-weight: 700;
}
.status-badge-active   { background: #F0FDF4; color: #16A34A; }
.status-badge-pending  { background: #FFFBEB; color: #D97706; }
.status-badge-inactive { background: #F3F4F6; color: #6B7280; }

[data-theme="dark"] .status-badge-active   { background: #052e16; color: #bbf7d0; }
[data-theme="dark"] .status-badge-pending  { background: #422006; color: #fde68a; }
[data-theme="dark"] .status-badge-inactive { background: #1e293b; color: #94a3b8; }

/* ── Event detail page ──────────────────────────── */
.detail-meta-item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .875rem 0;
    border-bottom: 1px solid var(--cssa-border);
    font-size: .9rem;
}
.detail-meta-item:last-child { border-bottom: none; }
.detail-meta-label {
    min-width: 110px;
    font-weight: 600;
    font-size: .8rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--cssa-muted);
    padding-top: .05rem;
}
.tier-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .75rem 1rem;
    border-radius: .5rem;
    background: var(--cssa-bg);
    margin-bottom: .5rem;
    font-size: .9rem;
}
.tier-price { font-weight: 700; color: var(--cssa-primary); }

/* ==========================================================================
   HOMEPAGE V2 — CSSA 74
   ========================================================================== */

/* ── Hero split layout (legacy kept) ───────────────────── */
.hero-split { padding: 5rem 0 6.5rem; }

/* ==========================================================================
   HOMEPAGE V3 — CSSA 74 — Immersive Experience
   ========================================================================== */

/* ── Hero immersif plein écran ─────────────────────────── */
.hero-v3 {
    position: relative;
    min-height: 90vh;
    background-color: #001f42;
    background-image:
        url('/img/hero-bg.jpg'),
        linear-gradient(160deg, #001833 0%, #003366 45%, #1188ca 100%);
    background-size: cover;
    background-position: center 30%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
}
.hero-v3-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0,20,50,.65) 0%,
        rgba(0,20,50,.5) 50%,
        rgba(0,20,50,.85) 100%
    );
    pointer-events: none;
}
.hero-v3-mountain {
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    pointer-events: none;
    line-height: 0;
}
.hero-v3-content {
    position: relative;
    z-index: 2;
    padding: 6rem 0 5rem;
}
.hero-v3-tag {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .4rem 1rem;
    border-radius: 50px;
    background: rgba(255,215,0,.15);
    border: 1px solid rgba(255,215,0,.35);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #ffd700;
    margin-bottom: 1.75rem;
}
.hero-v3 h1 {
    font-size: clamp(2.2rem, 6vw, 4.2rem);
    font-weight: 900;
    line-height: 1.08;
    color: #fff;
    margin-bottom: 1.25rem;
    text-shadow: 0 2px 16px rgba(0,0,0,.3);
}
.hero-v3 h1 .accent-yellow { color: #ffd700; }
.hero-v3 h1 .accent-green  { color: #7bba24; }
.hero-v3-sub {
    font-size: 1.1rem;
    color: rgba(255,255,255,.8);
    max-width: 520px;
    line-height: 1.65;
    margin-bottom: 2.5rem;
}
.hero-v3-ctas { display: flex; flex-wrap: wrap; gap: 1rem; }
.btn-hero-v3-primary {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: #ffd700;
    color: #002D5A;
    font-weight: 800;
    font-size: .95rem;
    padding: .9rem 2rem;
    border-radius: 50px;
    border: none;
    text-decoration: none;
    transition: all .22s;
    box-shadow: 0 4px 20px rgba(255,215,0,.35);
}
.btn-hero-v3-primary:hover {
    background: #fff;
    color: #002D5A;
    transform: translateY(-3px);
    box-shadow: 0 8px 28px rgba(0,0,0,.2);
}
.btn-hero-v3-ghost {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-weight: 700;
    font-size: .95rem;
    padding: .9rem 2rem;
    border-radius: 50px;
    border: 1.5px solid rgba(255,255,255,.35);
    text-decoration: none;
    transition: all .22s;
}
.btn-hero-v3-ghost:hover {
    background: rgba(255,255,255,.22);
    color: #fff;
}
/* Scroll indicator */
.hero-scroll-indicator {
    position: absolute;
    bottom: 5.5rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
    color: rgba(255,255,255,.5);
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    z-index: 2;
    animation: scrollBounce 2s infinite;
}
@keyframes scrollBounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50%       { transform: translateX(-50%) translateY(6px); }
}

/* ── Carte "Prochain événement" (widget hero) ─────────── */
.hero-next-event {
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 1.5rem;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    overflow: hidden;
    max-width: 440px;
    transition: transform .25s;
}
.hero-next-event:hover { transform: translateY(-4px); }
.hero-next-event-badge {
    padding: .5rem 1.25rem;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255,255,255,.9);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.hero-next-event-body {
    padding: 1.25rem 1.5rem 1.5rem;
    display: flex;
    gap: 1.1rem;
    align-items: flex-start;
}
.hero-next-ev-date {
    background: rgba(255,255,255,.15);
    border-radius: .75rem;
    padding: .6rem .875rem;
    text-align: center;
    flex-shrink: 0;
    min-width: 58px;
}
.hero-next-ev-d  { font-size: 2.2rem; font-weight: 900; color: #fff; line-height: 1; display: block; }
.hero-next-ev-m  { font-size: .58rem; font-weight: 800; color: #ffd700; letter-spacing: .1em; text-transform: uppercase; }
.hero-next-ev-info { flex: 1; min-width: 0; }
.hero-next-ev-type { display: inline-block; font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: .2em .6em; border-radius: .3rem; background: rgba(255,255,255,.18); color: rgba(255,255,255,.9); margin-bottom: .4rem; }
.hero-next-ev-title { font-size: 1.05rem; font-weight: 800; color: #fff; line-height: 1.25; margin-bottom: .4rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hero-next-ev-loc  { font-size: .77rem; color: rgba(255,255,255,.7); margin-bottom: 1rem; display: flex; align-items: center; gap: .3rem; }
.hero-next-ev-cta  { display: inline-flex; align-items: center; gap: .35rem; background: #ffd700; color: #002D5A; font-weight: 800; font-size: .8rem; padding: .45rem 1rem; border-radius: 50px; text-decoration: none; transition: all .18s; }
.hero-next-ev-cta:hover { background: #fff; color: #002D5A; }

/* ── Carte événement à la une ─────────────────────────── */
.featured-event-card {
    border-radius: 24px;
    overflow: hidden;
    display: flex;
    background: #fff;
    border: 1px solid var(--cssa-border);
    box-shadow: 0 8px 40px rgba(0,0,0,.08);
    transition: transform .3s, box-shadow .3s;
    text-decoration: none;
    color: inherit;
}
.featured-event-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 60px rgba(0,0,0,.14);
    color: inherit;
    text-decoration: none;
}
.featured-event-img {
    width: 46%;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
    min-height: 280px;
}
.featured-event-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s;
    display: block;
}
.featured-event-card:hover .featured-event-img img { transform: scale(1.06); }
.featured-event-info {
    flex: 1;
    padding: 2rem 2.25rem;
    display: flex;
    flex-direction: column;
}
.featured-event-label {
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #1188ca;
    margin-bottom: .75rem;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.featured-event-label::before {
    content: '';
    display: inline-block;
    width: 24px;
    height: 2px;
    background: #1188ca;
}
.featured-event-title {
    font-size: clamp(1.3rem, 2.5vw, 1.75rem);
    font-weight: 900;
    color: #002D5A;
    line-height: 1.2;
    margin-bottom: 1rem;
}
.featured-event-meta {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    margin-bottom: 1.25rem;
}
.featured-event-meta-row {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .85rem;
    color: var(--cssa-muted);
}
.featured-event-price {
    margin-top: auto;
    padding-top: 1.25rem;
    border-top: 1px solid var(--cssa-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}
.featured-price-val { font-size: 1.5rem; font-weight: 900; color: #002D5A; }
.featured-price-label { font-size: .72rem; color: var(--cssa-muted); font-weight: 600; margin-bottom: .1rem; }
.btn-featured {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: #1188ca;
    color: #fff;
    font-weight: 800;
    font-size: .88rem;
    padding: .7rem 1.5rem;
    border-radius: 50px;
    text-decoration: none;
    transition: all .2s;
    white-space: nowrap;
}
.btn-featured:hover {
    background: #002D5A;
    color: #fff;
    transform: translateX(3px);
}
@media (max-width: 767.98px) {
    .featured-event-card { flex-direction: column; }
    .featured-event-img  { width: 100%; min-height: 200px; }
}

/* ── Section galerie photos ────────────────────────────── */
.photo-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 210px;
    gap: 12px;
    border-radius: 20px;
    overflow: hidden;
}
.gallery-cell {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
}
.gallery-cell.tall { grid-row: span 2; }
.gallery-cell.wide { grid-column: span 2; }
.gallery-cell-bg {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: flex-end;
    padding: 1rem;
    transition: transform .4s ease;
}
.gallery-cell:hover .gallery-cell-bg { transform: scale(1.04); }
.gallery-cell-label {
    background: rgba(0,0,0,.45);
    backdrop-filter: blur(6px);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    padding: .3em .7em;
    border-radius: .3rem;
    letter-spacing: .04em;
}

/* ── Blocs photos par événement (Nos dernières aventures) ── */
.event-photo-blocks {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}
.event-photo-block {
    border-bottom: 1px solid var(--cssa-border);
    padding-bottom: 2rem;
}
.event-photo-block:last-child {
    border-bottom: none;
    padding-bottom: 0;
}
.event-photo-block-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.event-photo-block-title {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--cssa-text);
    margin: 0 0 .25rem;
    line-height: 1.2;
}
.event-photo-block-date {
    font-size: .8rem;
    color: var(--cssa-muted);
    font-weight: 500;
}
.event-photo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .6rem;
}
.event-photo-thumb {
    display: block;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: var(--cssa-border);
}
.event-photo-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}
.event-photo-thumb:hover img { transform: scale(1.06); }
@media (max-width: 575.98px) {
    .event-photo-grid { gap: .4rem; }
}

/* ── Cartes "Pourquoi nous rejoindre" ──────────────────── */
.why-icon-card {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 1.25rem;
    padding: 1.75rem 1.5rem;
    text-align: center;
    transition: all .25s;
    height: 100%;
}
.why-icon-card:hover {
    background: rgba(255,255,255,.15);
    transform: translateY(-4px);
}
.why-icon-circle {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    font-size: 1.6rem;
    line-height: 1;
}
.why-icon-title { font-size: .95rem; font-weight: 800; color: #fff; margin-bottom: .4rem; }
.why-icon-desc  { font-size: .8rem; color: rgba(255,255,255,.65); line-height: 1.5; }

/* ── Bande chiffres clés ───────────────────────────────── */
.stats-band {
    background: var(--cssa-primary);
    padding: 3rem 0;
}
.stat-item { text-align: center; }
.stat-number {
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: 900;
    color: #ffd700;
    line-height: 1;
    margin-bottom: .3rem;
}
.stat-label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: rgba(255,255,255,.6);
}

/* Dark theme adaptations for v3 */
[data-theme="dark"] .featured-event-card {
    background: #1e293b;
    border-color: #334155;
}
[data-theme="dark"] .featured-event-title { color: #e2e8f0; }
[data-theme="dark"] .featured-event-price { border-color: #334155; }
[data-theme="dark"] .featured-price-val { color: #e2e8f0; }
[data-theme="dark"] .why-icon-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
[data-theme="contrast"] .featured-event-card { background: #000; border: 2px solid #fff; }
[data-theme="contrast"] .btn-featured { background: #ffff00; color: #000; }
[data-theme="contrast"] .stats-band { background: #000; border-top: 2px solid #fff; border-bottom: 2px solid #fff; }
[data-theme="contrast"] .stat-number { color: #ffff00; }

/* ── Hero event widget ──────────────────────────────── */
.hero-event-widget {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 1.25rem;
    overflow: hidden;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.hero-event-widget-empty {
    border: 2px dashed rgba(255,255,255,.25);
}
.hero-event-widget-top {
    padding: .55rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}
.hero-event-top-label {
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255,255,255,.9);
}
.hero-event-members-badge {
    background: rgba(255,255,255,.25);
    color: white;
    font-size: .62rem;
    font-weight: 700;
    padding: .2em .6em;
    border-radius: 20px;
}
.hero-event-widget-body {
    padding: 1.5rem;
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
}
.hero-event-date-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: rgba(255,255,255,.12);
    border-radius: .75rem;
    padding: .75rem .875rem;
    min-width: 64px;
    text-align: center;
    flex-shrink: 0;
}
.hero-ev-day   { font-size: 2.4rem; font-weight: 900; color: white; line-height: 1; }
.hero-ev-month { font-size: .62rem; font-weight: 800; color: var(--cssa-yellow); letter-spacing: .1em; }
.hero-ev-year  { font-size: .58rem; color: rgba(255,255,255,.5); margin-top: .1rem; }
.hero-event-details { flex: 1; min-width: 0; }
.hero-ev-type {
    display: inline-block;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: .25em .65em;
    border-radius: .3rem;
    background: rgba(255,255,255,.15);
    color: rgba(255,255,255,.9);
    margin-bottom: .5rem;
}
.hero-ev-title {
    font-size: 1.1rem;
    font-weight: 800;
    color: white;
    line-height: 1.25;
    margin: 0 0 .5rem;
}
.hero-ev-loc {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .8rem;
    color: rgba(255,255,255,.7);
    margin-bottom: 1rem;
}
.hero-ev-cta {
    display: inline-block;
    background: var(--cssa-yellow);
    color: var(--cssa-primary);
    font-weight: 700;
    font-size: .82rem;
    padding: .5rem 1rem;
    border-radius: .5rem;
    text-decoration: none;
    transition: all .2s;
}
.hero-ev-cta:hover {
    background: white;
    color: var(--cssa-primary);
    transform: translateY(-1px);
}

/* ── Event V2 cards ─────────────────────────────────── */
.event-v2-card {
    background: white;
    border-radius: 1.25rem;
    border: 1px solid var(--cssa-border);
    overflow: hidden;
    transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.event-v2-card:hover {
    box-shadow: 0 20px 50px rgba(0,0,0,.12);
    transform: translateY(-5px);
    border-color: transparent;
}
.event-v2-accent { height: 5px; width: 100%; flex-shrink: 0; }
.event-v2-card-body {
    padding: 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.event-v2-date-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 52px;
}
.event-v2-day  { font-size: 2.25rem; font-weight: 900; line-height: 1; }
.event-v2-month {
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--cssa-muted);
}
.event-v2-year { font-size: .6rem; color: var(--cssa-muted); margin-top: .1rem; }
.event-v2-badge {
    display: inline-block;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: .28em .65em;
    border-radius: .3rem;
}
.event-v2-badge-type {
    background: color-mix(in srgb, var(--ev-color, #002D5A) 12%, white);
    color: var(--ev-color, #002D5A);
}
.event-v2-title {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--cssa-primary);
    line-height: 1.3;
    margin-bottom: .5rem;
    flex: 1;
}
.event-v2-location {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
    color: var(--cssa-muted);
    margin-bottom: .75rem;
}
.event-v2-desc {
    font-size: .82rem;
    color: var(--cssa-muted);
    line-height: 1.55;
    margin-bottom: 0;
}
.event-v2-footer {
    padding: .875rem 1.5rem;
    border-top: 1px solid var(--cssa-border);
    background: #FAFAFA;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.event-v2-time {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .78rem;
    color: var(--cssa-muted);
}

/* ── Why join section ───────────────────────────────── */
.why-join {
    background: linear-gradient(135deg, var(--cssa-primary) 0%, #00428a 100%);
    color: white;
    padding: 5rem 0;
}
.why-join-benefit {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
    margin-bottom: 1.25rem;
}
.why-join-check {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--cssa-yellow);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: .1rem;
    color: var(--cssa-primary);
}
.why-join-cta-card {
    background: white;
    border-radius: 1.5rem;
    padding: 2.5rem;
    box-shadow: 0 24px 64px rgba(0,0,0,.25);
}
.why-join-price-badge {
    display: inline-flex;
    align-items: baseline;
    gap: .3rem;
}
.why-join-price {
    font-size: 3.5rem;
    font-weight: 900;
    color: var(--cssa-primary);
    line-height: 1;
}
.why-join-price-label {
    font-size: .875rem;
    font-weight: 600;
    color: var(--cssa-muted);
}
.why-join-ghost-btn {
    display: block;
    padding: .625rem 1rem;
    border: 1.5px solid var(--cssa-border);
    border-radius: .75rem;
    color: var(--cssa-muted);
    text-decoration: none;
    font-weight: 600;
    transition: all .2s;
    text-align: center;
}
.why-join-ghost-btn:hover {
    border-color: var(--cssa-primary);
    color: var(--cssa-primary);
}

/* ── Newsletter CTA box ─────────────────────────────── */
.newsletter-cta-box {
    background: var(--cssa-bg);
    border: 1px solid var(--cssa-border);
    border-radius: 1.25rem;
    padding: 2rem;
}
.newsletter-cta-icon {
    width: 52px;
    height: 52px;
    border-radius: .875rem;
    background: #EFF6FF;
    color: var(--cssa-blue-light);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
}
.newsletter-inline-form {
    display: flex;
    gap: .5rem;
}
.newsletter-inline-form .form-control {
    flex: 1;
    min-width: 0;
}

/* ── Scroll reveal ──────────────────────────────────── */
.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .55s ease, transform .55s ease;
}
.reveal.visible {
    opacity: 1;
    transform: none;
}
.reveal-delay-1 { transition-delay: .08s; }
.reveal-delay-2 { transition-delay: .16s; }
.reveal-delay-3 { transition-delay: .24s; }

/* ==========================================================================
   SYSTÈME D'ACCESSIBILITÉ — CSSA 74
   ========================================================================== */

/* --- Lien d'évitement ---------------------------------------------------- */
.skip-link {
    position: absolute;
    top: -50px;
    left: 0;
    background: var(--cssa-yellow);
    color: var(--cssa-primary);
    padding: .6rem 1.25rem;
    font-weight: 700;
    font-size: .9rem;
    z-index: 99999;
    text-decoration: none;
    border-radius: 0 0 .75rem 0;
    transition: top .15s ease;
    white-space: nowrap;
}
.skip-link:focus { top: 0; }

/* --- Indicateurs de focus clavier --------------------------------------- */
*:focus { outline: none; }
*:focus-visible {
    outline: 3px solid #FFD100 !important;
    outline-offset: 3px !important;
    border-radius: 4px !important;
}
[data-theme="contrast"] *:focus-visible {
    outline: 4px solid #ffff00 !important;
    outline-offset: 4px !important;
    box-shadow: 0 0 0 6px rgba(255,255,0,.35) !important;
}

/* --- Mouvement réduit ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    html { scroll-behavior: auto !important; }
}

/* --- Tailles de texte ---------------------------------------------------- */
[data-font="sm"] { font-size: 13px !important; }
[data-font="md"] { font-size: 15px !important; }
[data-font="lg"] { font-size: 18px !important; }
[data-font="xl"] { font-size: 22px !important; }

/* --- Barre d'accessibilité ----------------------------------------------- */
.a11y-bar {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 9998;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.a11y-toggle {
    background: var(--cssa-primary);
    color: white;
    border: none;
    border-radius: .5rem 0 0 .5rem;
    padding: .7rem .75rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s;
    box-shadow: -2px 2px 10px rgba(0,0,0,.25);
    line-height: 1;
}
.a11y-toggle:hover { background: #001f3e; }
.a11y-toggle svg { display: block; pointer-events: none; }
.a11y-panel {
    background: white;
    border: 1px solid var(--cssa-border);
    border-right: none;
    border-radius: .75rem 0 0 .75rem;
    padding: 1rem;
    width: 215px;
    box-shadow: -4px 0 20px rgba(0,0,0,.15);
    margin-top: .35rem;
}
.a11y-panel-title {
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--cssa-primary);
    margin-bottom: .75rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--cssa-border);
}
.a11y-section-lbl {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--cssa-muted);
    margin: .75rem 0 .4rem;
}
.a11y-btns { display: flex; gap: .3rem; }
.a11y-btn {
    flex: 1;
    padding: .35rem .2rem;
    border: 1.5px solid var(--cssa-border);
    border-radius: .375rem;
    background: transparent;
    color: var(--cssa-text);
    font-size: .72rem;
    font-weight: 600;
    cursor: pointer;
    transition: all .15s;
    text-align: center;
    white-space: nowrap;
    line-height: 1.3;
}
.a11y-btn:hover,
.a11y-btn[aria-pressed="true"] {
    background: var(--cssa-primary);
    border-color: var(--cssa-primary);
    color: white;
}
.a11y-reset {
    width: 100%;
    margin-top: .75rem;
    padding: .35rem .5rem;
    border: 1px solid var(--cssa-border);
    border-radius: .375rem;
    background: transparent;
    color: var(--cssa-muted);
    font-size: .72rem;
    cursor: pointer;
    transition: all .15s;
    text-align: center;
}
.a11y-reset:hover {
    background: #fee2e2;
    border-color: #ef4444;
    color: #dc2626;
}
@media (max-width: 767.98px) {
    .a11y-bar { top: auto; bottom: 5rem; transform: none; }
}

/* ==========================================================================
   MODE SOMBRE
   ========================================================================== */
[data-theme="dark"] {
    --cssa-bg:     #0f172a;
    --cssa-text:   #e2e8f0;
    --cssa-border: #334155;
    --cssa-muted:  #94a3b8;
    /* Bootstrap 5 tokens */
    --bs-body-bg:        #0f172a;
    --bs-body-color:     #e2e8f0;
    --bs-border-color:   #334155;
    --bs-secondary-bg:   #1e293b;
    --bs-tertiary-bg:    #0f172a;
    --bs-emphasis-color: #f8fafc;
    color-scheme: dark;
}
[data-theme="dark"] body { background-color: #0f172a; color: #e2e8f0; }
[data-theme="dark"] .cssa-nav { background: rgba(15,23,42,.97) !important; border-color: #334155; }
[data-theme="dark"] .cssa-nav .nav-link { color: #94a3b8 !important; }
[data-theme="dark"] .cssa-nav .nav-link:hover,
[data-theme="dark"] .cssa-nav .nav-link.active { color: #f1f5f9 !important; }
[data-theme="dark"] .cssa-nav-logo { background: #1d4ed8; }
[data-theme="dark"] .cssa-nav .fw-bold { color: #e2e8f0 !important; }

/* Cards & panels */
[data-theme="dark"] .mission-card,
[data-theme="dark"] .event-card,
[data-theme="dark"] .stat-hero-card,
[data-theme="dark"] .auth-panel-right {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: #e2e8f0;
}
[data-theme="dark"] .event-card-footer { background: #0f172a !important; border-color: #334155 !important; color: #94a3b8; }
[data-theme="dark"] .pricing-card { background: #1e293b !important; border-color: #334155 !important; color: #e2e8f0; }
[data-theme="dark"] .pricing-card.featured { background: #1d3461 !important; border-color: #2563eb !important; }
[data-theme="dark"] .pricing-amount { color: #93c5fd; }
[data-theme="dark"] .pricing-divider { background: #334155; }
[data-theme="dark"] .a11y-panel { background: #1e293b !important; border-color: #334155 !important; color: #e2e8f0; }
[data-theme="dark"] .a11y-panel-title { color: #93c5fd; border-color: #334155; }
[data-theme="dark"] .a11y-section-lbl { color: #64748b; }
[data-theme="dark"] .a11y-btn { border-color: #334155; color: #e2e8f0; }
[data-theme="dark"] .a11y-btn:hover,
[data-theme="dark"] .a11y-btn[aria-pressed="true"] { background: #2563eb; border-color: #2563eb; color: #fff; }
[data-theme="dark"] .a11y-reset { border-color: #334155; color: #64748b; }
[data-theme="dark"] .a11y-reset:hover { background: #3f1212; border-color: #dc2626; color: #fca5a5; }
[data-theme="dark"] .a11y-toggle { background: #334155; }
[data-theme="dark"] .a11y-toggle:hover { background: #2563eb; }

/* Formulaires */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select { background-color: #1e293b; border-color: #334155; color: #e2e8f0; }
[data-theme="dark"] .form-control::placeholder { color: #475569; }
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus { background-color: #1e293b; border-color: #3b82f6; color: #e2e8f0; box-shadow: 0 0 0 3px rgba(59,130,246,.2); }
[data-theme="dark"] .form-label { color: #cbd5e1; }
[data-theme="dark"] .form-text  { color: #64748b; }
[data-theme="dark"] select option { background: #1e293b; color: #e2e8f0; }

/* Alertes */
[data-theme="dark"] .alert          { border-width: 0; }
[data-theme="dark"] .alert-success  { background: #052e16; color: #bbf7d0; }
[data-theme="dark"] .alert-danger   { background: #300; color: #fca5a5; }
[data-theme="dark"] .alert-warning  { background: #422006; color: #fde68a; }
[data-theme="dark"] .alert-info     { background: #073455; color: #bae6fd; }
[data-theme="dark"] .alert-light    { background: #1e293b; color: #e2e8f0; border: 1px solid #334155; }

/* Badges */
[data-theme="dark"] .badge.bg-light,
[data-theme="dark"] .badge.bg-white { background: #334155 !important; color: #e2e8f0 !important; }

/* Tables */
[data-theme="dark"] .table { color: #e2e8f0; border-color: #334155; }
[data-theme="dark"] .table > :not(caption) > * > * { background-color: transparent; }
[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-striped-bg: rgba(255,255,255,.04); }
[data-theme="dark"] .table-hover > tbody > tr:hover > * { --bs-table-hover-bg: rgba(255,255,255,.08); }
[data-theme="dark"] .table thead th { border-color: #334155; color: #94a3b8; }

/* Boutons */
[data-theme="dark"] .btn-close { filter: invert(1); }
[data-theme="dark"] .btn-cssa-outline { border-color: #3b82f6; color: #93c5fd; }
[data-theme="dark"] .btn-cssa-outline:hover { background: #1d4ed8; border-color: #1d4ed8; color: white; }

/* Onglets */
[data-theme="dark"] .nav-tabs { border-color: #334155; }
[data-theme="dark"] .nav-tabs .nav-link { color: #94a3b8; }
[data-theme="dark"] .nav-tabs .nav-link.active { background: #1e293b; border-color: #334155 #334155 #1e293b; color: #e2e8f0; }

/* Override couleurs bg inline */
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background:white"],
[data-theme="dark"] [style*="background: white"],
[data-theme="dark"] [style*="background-color:#fff"],
[data-theme="dark"] [style*="background-color: #fff"],
[data-theme="dark"] [style*="background-color:white"],
[data-theme="dark"] [style*="background-color: white"] { background-color: #1e293b !important; }
[data-theme="dark"] [style*="background:#f9fafb"],
[data-theme="dark"] [style*="background: #f9fafb"],
[data-theme="dark"] [style*="background:#F9FAFB"],
[data-theme="dark"] [style*="background:#fafafa"],
[data-theme="dark"] [style*="background:#FAFAFA"],
[data-theme="dark"] [style*="background:#FFFBEB"],
[data-theme="dark"] [style*="background:#EFF6FF"],
[data-theme="dark"] [style*="background:#F0FDF4"],
[data-theme="dark"] [style*="background:#F1F5F9"],
[data-theme="dark"] [style*="background:#F8FAFC"],
[data-theme="dark"] [style*="background:#FEF3C7"] { background-color: #0f172a !important; }
/* Espace membre (Profil/*) : encart « danger » suppression de compte, même ton que .alert-danger */
[data-theme="dark"] [style*="background:#fef2f2"] { background-color: #300 !important; }

/* Override couleurs texte inline */
[data-theme="dark"] [style*="color:#111"],
[data-theme="dark"] [style*="color: #111"],
[data-theme="dark"] [style*="color:#000"],
[data-theme="dark"] [style*="color:#1F2937"],
[data-theme="dark"] [style*="color:#374151"],
[data-theme="dark"] [style*="color:#1e293b"] { color: #e2e8f0 !important; }
[data-theme="dark"] [style*="color:#6B7280"],
[data-theme="dark"] [style*="color:#6b7280"],
[data-theme="dark"] [style*="color:#64748B"],
[data-theme="dark"] [style*="color:#64748b"],
[data-theme="dark"] [style*="color:#9CA3AF"] { color: #94a3b8 !important; }
[data-theme="dark"] [style*="color:#b91c1c"] { color: #fca5a5 !important; }

/* Override bordures inline */
[data-theme="dark"] [style*="border:1px solid #e5e7eb"],
[data-theme="dark"] [style*="border: 1px solid #e5e7eb"],
[data-theme="dark"] [style*="border:1.5px solid #e5e7eb"],
[data-theme="dark"] [style*="border:2px dashed #e5e7eb"],
[data-theme="dark"] [style*="border: 2px solid #e5e7eb"],
[data-theme="dark"] [style*="border-top:1px solid #e5e7eb"],
[data-theme="dark"] [style*="border-bottom:1px solid #e5e7eb"],
[data-theme="dark"] [style*="border-bottom:1px solid #F3F4F6"],
[data-theme="dark"] [style*="border-top:1px solid #f1f5f9"] { border-color: #334155 !important; }
[data-theme="dark"] [style*="border:1px solid #fca5a5"],
[data-theme="dark"] [style*="border:2px solid #fca5a5"],
[data-theme="dark"] [style*="border:1.5px solid #ef4444"] { border-color: #7f1d1d !important; }

/* ==========================================================================
   MODE CONTRASTE ÉLEVÉ
   ========================================================================== */
[data-theme="contrast"] {
    --cssa-bg:         #000000;
    --cssa-text:       #ffffff;
    --cssa-primary:    #ffff00;
    --cssa-red:        #ff6666;
    --cssa-green:      #00ff88;
    --cssa-yellow:     #ffff00;
    --cssa-blue-light: #66ccff;
    --cssa-border:     #ffffff;
    --cssa-muted:      #cccccc;
    /* Bootstrap 5 tokens */
    --bs-body-bg:          #000;
    --bs-body-color:       #fff;
    --bs-border-color:     #fff;
    --bs-secondary-bg:     #0a0a0a;
    --bs-tertiary-bg:      #000;
    --bs-emphasis-color:   #fff;
    --bs-link-color:       #66ccff;
    --bs-link-hover-color: #ffff00;
    color-scheme: dark;
}
[data-theme="contrast"] body { background-color: #000; color: #fff; }
[data-theme="contrast"] a { color: #66ccff; }
[data-theme="contrast"] a:hover { color: #ffff00; text-decoration: underline; }
[data-theme="contrast"] a:not([class]) { text-decoration: underline; }

[data-theme="contrast"] .cssa-nav { background: #000 !important; border-bottom: 3px solid #fff; }
[data-theme="contrast"] .cssa-nav .nav-link { color: #fff !important; }
[data-theme="contrast"] .cssa-nav .nav-link:hover,
[data-theme="contrast"] .cssa-nav .nav-link.active { color: #ffff00 !important; }
[data-theme="contrast"] .cssa-nav-logo { background: #ffff00; color: #000; }
[data-theme="contrast"] .btn-nav-yellow { background: #ffff00; color: #000; border: 2px solid #000; outline: 1px solid #fff; }
[data-theme="contrast"] .btn-cssa { background: #ffff00; color: #000; border: 2px solid #fff; font-weight: 800; }
[data-theme="contrast"] .btn-cssa:hover { background: #fff; color: #000; }
[data-theme="contrast"] .btn-cssa-outline { border-color: #ffff00; color: #ffff00; border-width: 2px; }
[data-theme="contrast"] .btn-cssa-outline:hover { background: #ffff00; color: #000; }
[data-theme="contrast"] .btn-hero-primary { background: #ffff00; color: #000; border: 2px solid #000; }
[data-theme="contrast"] .btn-hero-ghost { background: #000; color: #fff; border: 2px solid #fff; }

[data-theme="contrast"] .hero,
[data-theme="contrast"] .page-hero { background: #000 !important; border-bottom: 2px solid #ffff00; }
[data-theme="contrast"] .about-section:nth-child(even) { background: #000 !important; }
[data-theme="contrast"] .cssa-footer { background: #000; border-top: 2px solid #fff; }
[data-theme="contrast"] .cssa-footer a { color: #fff; }
[data-theme="contrast"] .cssa-footer a:hover { color: #ffff00; }

[data-theme="contrast"] .mission-card,
[data-theme="contrast"] .event-card,
[data-theme="contrast"] .stat-hero-card,
[data-theme="contrast"] .pricing-card,
[data-theme="contrast"] .auth-panel-right { background: #000 !important; border: 2px solid #fff !important; color: #fff; }
[data-theme="contrast"] .event-card:hover,
[data-theme="contrast"] .mission-card:hover,
[data-theme="contrast"] .pricing-card:hover { box-shadow: 0 0 0 3px #ffff00; transform: none; }
[data-theme="contrast"] .event-card-footer { background: #0a0a0a; border-color: #555; color: #ccc; }
[data-theme="contrast"] .pricing-card.featured { background: #0a0a0a !important; border-color: #ffff00 !important; }
[data-theme="contrast"] .pricing-amount { color: #ffff00; }

[data-theme="contrast"] .form-control,
[data-theme="contrast"] .form-select { background: #000; border: 2px solid #fff; color: #fff; }
[data-theme="contrast"] .form-control::placeholder { color: #888; }
[data-theme="contrast"] .form-control:focus,
[data-theme="contrast"] .form-select:focus { background: #000; border-color: #ffff00; color: #fff; box-shadow: 0 0 0 3px rgba(255,255,0,.5); }
[data-theme="contrast"] .form-label { color: #fff; font-weight: 700; }
[data-theme="contrast"] select option { background: #000; color: #fff; }

[data-theme="contrast"] .alert-success { background: #000; border: 2px solid #00ff88; color: #00ff88; }
[data-theme="contrast"] .alert-danger  { background: #000; border: 2px solid #ff6666; color: #ff6666; }
[data-theme="contrast"] .alert-warning { background: #000; border: 2px solid #ffff00; color: #ffff00; }
[data-theme="contrast"] .alert-info    { background: #000; border: 2px solid #66ccff; color: #66ccff; }
[data-theme="contrast"] .alert-light   { background: #0a0a0a; border: 2px solid #fff; color: #fff; }

[data-theme="contrast"] .badge.bg-success  { background: #000 !important; color: #00ff88 !important; border: 1px solid #00ff88 !important; }
[data-theme="contrast"] .badge.bg-danger   { background: #000 !important; color: #ff6666 !important; border: 1px solid #ff6666 !important; }
[data-theme="contrast"] .badge.bg-warning  { background: #ffff00 !important; color: #000 !important; }
[data-theme="contrast"] .badge.bg-secondary { background: #000 !important; color: #ccc !important; border: 1px solid #ccc !important; }
[data-theme="contrast"] .badge.bg-info     { background: #000 !important; color: #66ccff !important; border: 1px solid #66ccff !important; }
[data-theme="contrast"] .badge.bg-primary  { background: #ffff00 !important; color: #000 !important; }
[data-theme="contrast"] .badge.text-dark   { color: #000 !important; }

[data-theme="contrast"] .table { border-color: #fff; color: #fff; }
[data-theme="contrast"] .table > :not(caption) > * > * { background-color: transparent; color: #fff; border-color: #555; }
[data-theme="contrast"] .table-striped > tbody > tr:nth-of-type(odd) > * { background-color: rgba(255,255,255,.08); }
[data-theme="contrast"] .table th { border-color: #fff; color: #ffff00; }

[data-theme="contrast"] .a11y-panel { background: #000; border-color: #fff; color: #fff; }
[data-theme="contrast"] .a11y-panel-title { color: #ffff00; border-color: #555; }
[data-theme="contrast"] .a11y-section-lbl { color: #ccc; }
[data-theme="contrast"] .a11y-btn { border-color: #fff; color: #fff; background: transparent; }
[data-theme="contrast"] .a11y-btn:hover,
[data-theme="contrast"] .a11y-btn[aria-pressed="true"] { background: #ffff00; border-color: #ffff00; color: #000; }
[data-theme="contrast"] .a11y-reset { border-color: #fff; color: #ccc; }
[data-theme="contrast"] .a11y-reset:hover { background: #1a0000; border-color: #ff6666; color: #ff6666; }
[data-theme="contrast"] .a11y-toggle { background: #ffff00; color: #000; }
[data-theme="contrast"] .a11y-toggle:hover { background: #fff; color: #000; }
[data-theme="contrast"] .btn-close { filter: invert(1); }

/* Override couleurs bg inline */
[data-theme="contrast"] [style*="background:#fff"],
[data-theme="contrast"] [style*="background: #fff"],
[data-theme="contrast"] [style*="background:white"],
[data-theme="contrast"] [style*="background: white"],
[data-theme="contrast"] [style*="background:#f9fafb"],
[data-theme="contrast"] [style*="background:#F9FAFB"],
[data-theme="contrast"] [style*="background:#fafafa"],
[data-theme="contrast"] [style*="background:#FAFAFA"],
[data-theme="contrast"] [style*="background:#FFFBEB"],
[data-theme="contrast"] [style*="background:#EFF6FF"] { background-color: #000 !important; }

/* Override couleurs texte inline */
[data-theme="contrast"] [style*="color:#111"],
[data-theme="contrast"] [style*="color: #111"],
[data-theme="contrast"] [style*="color:#000"],
[data-theme="contrast"] [style*="color:#1F2937"],
[data-theme="contrast"] [style*="color:#374151"],
[data-theme="contrast"] [style*="color:#6B7280"],
[data-theme="contrast"] [style*="color:#6b7280"],
[data-theme="contrast"] [style*="color:#64748B"],
[data-theme="contrast"] [style*="color:#64748b"],
[data-theme="contrast"] [style*="color:#92400E"] { color: #fff !important; }

/* Override bordures inline */
[data-theme="contrast"] [style*="border:1px solid #e5e7eb"],
[data-theme="contrast"] [style*="border: 1px solid #e5e7eb"],
[data-theme="contrast"] [style*="border:2px dashed #e5e7eb"],
[data-theme="contrast"] [style*="border: 2px solid #e5e7eb"] { border-color: #fff !important; }

/* ── Contrast: auth-panel-left ─────────────────────────────────── */
[data-theme="contrast"] .auth-panel-left {
    background: #000 !important;
    border-right: 2px solid #fff;
}
[data-theme="contrast"] .auth-panel-left p,
[data-theme="contrast"] .auth-panel-left span { color: #fff !important; }
[data-theme="contrast"] .cssa-footer a { color: #fff !important; }
[data-theme="contrast"] .cssa-footer span,
[data-theme="contrast"] .cssa-footer p { color: rgba(255,255,255,.8) !important; }

/* ── Contrast: tier/detail helpers ─────────────────────────────── */
[data-theme="contrast"] .tier-row { background: #0a0a0a !important; border: 1px solid #333 !important; }
[data-theme="contrast"] .tier-price { color: #ffff00 !important; }
[data-theme="contrast"] .detail-meta-label { color: #ccc !important; }
[data-theme="contrast"] .event-description { color: #e2e8f0 !important; }
[data-theme="contrast"] .event-description * { color: inherit !important; background: transparent !important; }

/* ── Contrast: inline CSS-variable backgrounds ─────────────────── */
[data-theme="contrast"] [style*="background:var(--cssa-primary)"],
[data-theme="contrast"] [style*="background: var(--cssa-primary)"] {
    background-color: #000 !important;
    border: 2px solid #ffff00 !important;
}
[data-theme="contrast"] [style*="background:var(--cssa-yellow)"],
[data-theme="contrast"] [style*="background: var(--cssa-yellow)"] {
    background-color: #1a1a00 !important;
    border: 1px solid #ffff00 !important;
}
[data-theme="contrast"] [style*="linear-gradient"] {
    background: #000 !important;
    border: 2px solid #ffff00 !important;
}

/* ── Contrast: inline CSS-variable text ────────────────────────── */
[data-theme="contrast"] [style*="color:var(--cssa-primary)"],
[data-theme="contrast"] [style*="color: var(--cssa-primary)"] { color: #ffff00 !important; }
[data-theme="contrast"] [style*="color:var(--cssa-muted)"],
[data-theme="contrast"] [style*="color: var(--cssa-muted)"] { color: #cccccc !important; }

/* ── Contrast: additional inline backgrounds ───────────────────── */
[data-theme="contrast"] [style*="background:#fffbeb"],
[data-theme="contrast"] [style*="background:#fef2f2"],
[data-theme="contrast"] [style*="background:#f0fdf4"],
[data-theme="contrast"] [style*="background:#F0FDF4"],
[data-theme="contrast"] [style*="background:#DCFCE7"],
[data-theme="contrast"] [style*="background:#e6f4ec"],
[data-theme="contrast"] [style*="background:#fff8e0"],
[data-theme="contrast"] [style*="background:#fde8e8"],
[data-theme="contrast"] [style*="background:#FDE8E8"],
[data-theme="contrast"] [style*="background:#e0f0ff"],
[data-theme="contrast"] [style*="background:#f3e8ff"],
[data-theme="contrast"] [style*="background:#f1f5f9"],
[data-theme="contrast"] [style*="background:#F1F5F9"],
[data-theme="contrast"] [style*="background:#FFF3CD"],
[data-theme="contrast"] [style*="background:#FEF9C3"],
[data-theme="contrast"] [style*="background:#FEF3C7"],
[data-theme="contrast"] [style*="background:#F9FAFB"],
[data-theme="contrast"] [style*="background:#F8FAFC"],
[data-theme="contrast"] [style*="background:#F8FAFF"],
[data-theme="contrast"] [style*="background:#F3F4F6"],
[data-theme="contrast"] [style*="background:#F59E0B"],
[data-theme="contrast"] [style*="background:#D97706"],
[data-theme="contrast"] [style*="background-color:#fff"],
[data-theme="contrast"] [style*="background-color: #fff"],
[data-theme="contrast"] [style*="background-color:white"],
[data-theme="contrast"] [style*="background-color: white"] { background-color: #000 !important; }

/* ── Contrast: additional inline text colors ───────────────────── */
[data-theme="contrast"] [style*="color:#92400e"],
[data-theme="contrast"] [style*="color:#A16207"],
[data-theme="contrast"] [style*="color:#a16207"],
[data-theme="contrast"] [style*="color:#991515"],
[data-theme="contrast"] [style*="color:#B91C1C"],
[data-theme="contrast"] [style*="color:#b91c1c"],
[data-theme="contrast"] [style*="color:#166534"],
[data-theme="contrast"] [style*="color:#15803D"],
[data-theme="contrast"] [style*="color:#15803d"],
[data-theme="contrast"] [style*="color:#16A34A"],
[data-theme="contrast"] [style*="color:#16a34a"],
[data-theme="contrast"] [style*="color:#1A7B45"],
[data-theme="contrast"] [style*="color:#1a7b45"],
[data-theme="contrast"] [style*="color:#1A5FA0"],
[data-theme="contrast"] [style*="color:#1a5fa0"],
[data-theme="contrast"] [style*="color:#6B21A8"],
[data-theme="contrast"] [style*="color:#6b21a8"],
[data-theme="contrast"] [style*="color:#7C5E00"],
[data-theme="contrast"] [style*="color:#7c5e00"],
[data-theme="contrast"] [style*="color:#854D0E"],
[data-theme="contrast"] [style*="color:#854d0e"],
[data-theme="contrast"] [style*="color:#475569"],
[data-theme="contrast"] [style*="color:#D97706"],
[data-theme="contrast"] [style*="color:#d97706"],
[data-theme="contrast"] [style*="color:#9CA3AF"],
[data-theme="contrast"] [style*="color:#9ca3af"],
[data-theme="contrast"] [style*="color:#111827"],
[data-theme="contrast"] [style*="color:#1D4ED8"],
[data-theme="contrast"] [style*="color:#1d4ed8"],
[data-theme="contrast"] [style*="color:#F59E0B"],
[data-theme="contrast"] [style*="color:#f59e0b"],
[data-theme="contrast"] [style*="color:#1e293b"] { color: #fff !important; }

/* ── Contrast: additional inline borders ───────────────────────── */
[data-theme="contrast"] [style*="border:1px solid #FDE68A"],
[data-theme="contrast"] [style*="border-bottom:1px solid #FDE68A"],
[data-theme="contrast"] [style*="border:1.5px solid #fcd34d"],
[data-theme="contrast"] [style*="border:1.5px solid #fca5a5"],
[data-theme="contrast"] [style*="border:1px solid #fca5a5"],
[data-theme="contrast"] [style*="border:2px solid #fca5a5"],
[data-theme="contrast"] [style*="border:1.5px solid #ef4444"],
[data-theme="contrast"] [style*="border:1.5px solid #86efac"],
[data-theme="contrast"] [style*="border:1.5px solid #BBF7D0"],
[data-theme="contrast"] [style*="border:1px solid #F3F4F6"],
[data-theme="contrast"] [style*="border-bottom:1px solid #F3F4F6"],
[data-theme="contrast"] [style*="border-top:1px solid #f1f5f9"],
[data-theme="contrast"] [style*="border:1px solid #e5e7eb"],
[data-theme="contrast"] [style*="border-top:1px solid #e5e7eb"],
[data-theme="contrast"] [style*="border-bottom:1px solid #e5e7eb"],
[data-theme="contrast"] [style*="border:1.5px solid #FDE68A"] { border-color: #555 !important; }

/* ── Contrast: stat-hero-card coloured bottom border ───────────── */
[data-theme="contrast"] .stat-hero-card[style] { border-bottom-color: #ffff00 !important; }

/* ── Contrast: status badges (Razor-injected inline styles) ─────── */
[data-theme="contrast"] .status-badge-active   { background: #000 !important; color: #00ff88 !important; border: 1.5px solid #00ff88 !important; }
[data-theme="contrast"] .status-badge-pending  { background: #000 !important; color: #ffff00 !important; border: 1.5px solid #ffff00 !important; }
[data-theme="contrast"] .status-badge-inactive { background: #000 !important; color: #ccc    !important; border: 1.5px solid #ccc    !important; }

/* ── Contrast: low-opacity white text (fails WCAG AA on dark bg) ── */
[data-theme="contrast"] [style*="rgba(255,255,255,.35)"],
[data-theme="contrast"] [style*="rgba(255,255,255, .35)"] { color: rgba(255,255,255,.75) !important; }

/* ── Bouton officiel "Payer avec HelloAsso" ──────────────────────
   Markup recommandé par HelloAsso (branding partenaire) — voir
   Views/Shared/_HelloAssoPayButton.cshtml et _HelloAssoButtonContent.cshtml */
.HaPay {
    width: fit-content;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.HaPay-full { width: 100%; }
.HaPay * { transition: all .3s ease-out; }
.HaPayButton {
    align-items: stretch;
    background: none;
    border: none;
    display: flex;
    padding: 0;
    border-radius: 8px;
    text-decoration: none;
    width: fit-content;
}
.HaPay-full .HaPayButton { width: 100%; }
.HaPayButton:hover { cursor: pointer; }
.HaPayButton:not(:disabled):focus {
    box-shadow: 0 0 0 .25rem rgba(73,211,138,.25);
}
.HaPayButton:not(:disabled):hover .HaPayButtonLabel,
.HaPayButton:not(:disabled):focus .HaPayButtonLabel { background-color: #483dbe; }
.HaPayButton:not(:disabled):hover .HaPayButtonLogo,
.HaPayButton:not(:disabled):focus .HaPayButtonLogo,
.HaPayButton:not(:disabled):hover .HaPayButtonLabel,
.HaPayButton:not(:disabled):focus .HaPayButtonLabel { border: 1px solid #483dbe; }
.HaPayButton:disabled { cursor: not-allowed; }
.HaPayButton:disabled .HaPayButtonLogo,
.HaPayButton:disabled .HaPayButtonLabel { border: 1px solid #d1d6de; }
.HaPayButtonLogo {
    background-color: #ffffff;
    border: 1px solid #4c40cf;
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
    padding: 10px 16px;
    width: 30px;
    flex-shrink: 0;
}
.HaPayButtonLabel {
    align-items: center;
    justify-content: center;
    column-gap: 5px;
    background-color: #4c40cf;
    border: 1px solid #4c40cf;
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    display: flex;
    padding: 0 16px;
}
.HaPay-full .HaPayButtonLabel { flex: 1; }
.HaPayButton:disabled .HaPayButtonLabel { background-color: #d1d6de; color: #505870; }
.HaPaySecured {
    align-items: center;
    justify-content: center;
    display: flex;
    flex-wrap: wrap;
    column-gap: 5px;
    padding: 8px 16px;
    font-size: 12px;
    font-weight: 600;
    color: #2e2f5e;
}
.HaPay svg { fill: currentColor; }
.HaPayButton.btn-sm .HaPayButtonLogo { padding: 6px 10px; width: 22px; }
.HaPayButton.btn-sm .HaPayButtonLabel { font-size: 13px; padding: 0 10px; }

/* ── Note contribution volontaire HelloAsso ──────────────────────── */
.helloasso-contribution-note {
    font-size: .8rem;
    color: var(--cssa-muted);
    line-height: 1.5;
    margin: .6rem 0 0;
}

[data-theme="contrast"] .HaPayButtonLogo { background: #000 !important; border-color: #00ff88 !important; }
[data-theme="contrast"] .HaPayButtonLabel { background: #000 !important; border-color: #00ff88 !important; color: #00ff88 !important; }
[data-theme="contrast"] .HaPayButton:disabled .HaPayButtonLogo,
[data-theme="contrast"] .HaPayButton:disabled .HaPayButtonLabel { border-color: #555 !important; color: #888 !important; }
[data-theme="contrast"] .HaPaySecured { color: #ccc !important; }
[data-theme="contrast"] .helloasso-contribution-note { color: #ccc !important; }
[data-theme="contrast"] [style*="rgba(255,255,255,.1)"],
[data-theme="contrast"] [style*="rgba(255,255,255, .1)"]  { border-color: rgba(255,255,255,.4) !important; }
/* ── Statuts d'adhésion (cahier 2026-09 §17) ───────────────────────── */
.ms-badge { display:inline-flex; align-items:center; gap:.3rem; padding:.22rem .65rem; border-radius:999px; font-size:.78rem; font-weight:700; white-space:nowrap; }
.ms-active    { background:#DCFCE7; color:#166534; }
.ms-pending   { background:#FFEDD5; color:#9A3412; }
.ms-renew     { background:#DBEAFE; color:#1E40AF; }
.ms-ended     { background:#E5E7EB; color:#1F2937; }
.ms-cancelled { background:#FEE2E2; color:#991B1B; }
.ms-archived  { background:#F1F5F9; color:#475569; }
[data-theme="dark"] .ms-active    { background:#14532d; color:#bbf7d0; }
[data-theme="dark"] .ms-pending   { background:#7c2d12; color:#fed7aa; }
[data-theme="dark"] .ms-renew     { background:#1e3a8a; color:#bfdbfe; }
[data-theme="dark"] .ms-ended     { background:#374151; color:#e5e7eb; }
[data-theme="dark"] .ms-cancelled { background:#7f1d1d; color:#fecaca; }
[data-theme="dark"] .ms-archived  { background:#334155; color:#cbd5e1; }
[data-theme="contrast"] .ms-badge { background:#000 !important; color:#fff !important; border:2px solid #fff; }
