/*
 * Site internet et boutique Eventicom — système de design (docs/design_site.md) :
 * toile blanche, encre #222, une seule couleur d'accent (#c02942) utilisée avec parcimonie, formes arrondies,
 * une seule ombre, police Inter, cartes centrées sur la photo.
 * Surcharge Bootstrap 5.3 (variables --bs-*) puis composants propres (préfixe ev-).
 * Thème sombre : mêmes jetons redéfinis sous [data-bs-theme="dark"] (choix du visiteur, public/js/theme.js) ; les
 * composants n'utilisent que les jetons, jamais une couleur écrite en dur.
 */

/* police Inter fournie avec le nouveau design (variable 100-900, licence public/fonts/inter/OFL.txt) */
@font-face { font-family: Inter; src: url('../fonts/inter/InterVariable.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }

/* ---------- Jetons ---------- */
:root {
    --ev-primary: #c02942;
    --ev-primary-active: #9e2136;
    --ev-primary-disabled: #ebc6cd;
    --ev-canvas: #ffffff;
    --ev-surface-soft: #f7f7f7;
    --ev-surface-strong: #f2f2f2;
    --ev-hairline: #dddddd;
    --ev-hairline-soft: #ebebeb;
    --ev-border-strong: #c1c1c1;
    --ev-ink: #222222;
    --ev-body: #3f3f3f;
    --ev-muted: #6a6a6a;
    --ev-muted-soft: #929292;
    --ev-error: #c13515;
    /* texte et icônes posés sur l'encre, l'accent ou une photo */
    --ev-on-strong: #ffffff;
    /* pied de page, posé sur l'encre : texte discret (7.7:1 sur #222), filet et survol */
    --ev-on-ink-muted: #b4b4b4;
    --ev-ink-hairline: #3d3d3d;
    --ev-ink-raised: #2e2e2e;
    /* texte posé sur un aplat d'encre (pastille active, étape en cours, avatar) : s'inverse avec le thème */
    --ev-on-ink: #ffffff;
    /* aplat qui reste sombre dans les deux thèmes : pied de page, bandeau d'accueil sans vidéo */
    --ev-fond-sombre: #222222;
    /* fond des logos (partenaires, paiement) : toujours blanc, les logos sont faits pour lui */
    --ev-fond-logo: #ffffff;

    /* nouveau design vert (Ressources communes/nouveau design Vert) : barre du haut */
    --ev-vert: #087f5b;
    --ev-vert-actif: #066348;
    --ev-foret: #073c2f;
    --ev-menthe: #e8f3ec;
    --ev-filet-vert: #e6ece8;
    /* fond des pages (maquette) ; cartes, barre du haut et blocs restent sur --ev-canvas (blanc) */
    --ev-fond-page: #f6f8f5;
    /* boutons principaux (btn-primary, Rechercher) : vert de la maquette, texte blanc (contraste 5.2:1), dans les deux thèmes */
    --ev-bouton: #087f5b;
    --ev-bouton-actif: #066348;
    --ev-bouton-inactif: #a7cfbf;

    /* tons d'état : fond clair, encre foncée de la même teinte (contraste ≥ 4.5:1), bordure. Un sens = un ton,
       partout : pastilles d'état (ev-statut, ev-etiquette), minuteur, bandeaux, alertes Bootstrap. */
    --ev-success-bg: #e7f5ec;
    --ev-success-ink: #0a6b35;
    --ev-success-border: #b8e0c6;
    --ev-warning-bg: #fff4e0;
    --ev-warning-ink: #8a5300;
    --ev-warning-border: #f5d49c;
    --ev-danger-bg: #fdecea;
    --ev-danger-ink: var(--ev-error);
    --ev-danger-border: #f6c7c1;
    --ev-info-bg: #eef4ff;
    --ev-info-ink: #1d3f86;
    --ev-info-border: #c9dafc;

    --ev-rounded-sm: 4px;
    --ev-rounded-md: 6px;
    --ev-rounded-xl: 8px;
    --ev-rounded-full: 9999px;

    --ev-shadow: rgba(0, 0, 0, .02) 0 0 0 1px, rgba(0, 0, 0, .04) 0 2px 6px 0, rgba(0, 0, 0, .1) 0 4px 8px 0;
    --ev-section: 64px;
    --ev-font: Inter, Circular, -apple-system, system-ui, Roboto, "Helvetica Neue", sans-serif;

    /* Bootstrap */
    --bs-body-font-family: var(--ev-font);
    --bs-body-color: var(--ev-ink);
    --bs-body-bg: var(--ev-fond-page);
    --bs-emphasis-color: var(--ev-ink);
    --bs-secondary-color: var(--ev-muted);
    --bs-border-color: var(--ev-hairline);
    --bs-border-radius: var(--ev-rounded-sm);
    --bs-border-radius-lg: var(--ev-rounded-md);
    /* liens et couleur primaire (badges, cases cochées…) : vert du nouveau design */
    --bs-link-color: var(--ev-bouton);
    --bs-link-color-rgb: 8, 127, 91;
    --bs-link-hover-color: var(--ev-bouton-actif);
    --bs-link-hover-color-rgb: 6, 99, 72;
    --bs-primary: var(--ev-bouton);
    --bs-primary-rgb: 8, 127, 91;
    --bs-danger: var(--ev-error);
    --bs-focus-ring-color: rgba(34, 34, 34, .25);
    /* alertes et fonds « subtle » de Bootstrap sur les tons d'état */
    --bs-success-text-emphasis: var(--ev-success-ink);
    --bs-success-bg-subtle: var(--ev-success-bg);
    --bs-success-border-subtle: var(--ev-success-border);
    --bs-warning-text-emphasis: var(--ev-warning-ink);
    --bs-warning-bg-subtle: var(--ev-warning-bg);
    --bs-warning-border-subtle: var(--ev-warning-border);
    --bs-danger-text-emphasis: var(--ev-danger-ink);
    --bs-danger-bg-subtle: var(--ev-danger-bg);
    --bs-danger-border-subtle: var(--ev-danger-border);
    --bs-info-text-emphasis: var(--ev-info-ink);
    --bs-info-bg-subtle: var(--ev-info-bg);
    --bs-info-border-subtle: var(--ev-info-border);
}

/* ---------- Thème sombre ----------
   Choisi par le visiteur (menu « Thème » de la barre du haut) ou suivi du réglage de l'appareil : public/js/theme.js
   pose data-bs-theme="dark" sur <html>, ce qui active aussi le thème sombre des composants Bootstrap. Mêmes rôles
   qu'en clair ; contrastes vérifiés sur le fond : encre 16:1, texte secondaire 7.4:1, tons d'état ≥ 7.8:1, blanc sur
   l'accent 5.8:1 (l'accent garde sa teinte : les boutons restent reconnaissables). */
:root[data-bs-theme="dark"] {
    color-scheme: dark;
    --ev-vert: #4fc995;
    --ev-vert-actif: #74d8ab;
    --ev-foret: #d6efe2;
    --ev-menthe: #173f33;
    --ev-filet-vert: #2b2b2b;
    --ev-fond-page: #161616;
    --ev-bouton-inactif: #1f4a3c;
    --ev-primary-disabled: #5a2530;
    --ev-canvas: #161616;
    --ev-surface-soft: #1f1f1f;
    --ev-surface-strong: #2a2a2a;
    --ev-hairline: #3a3a3a;
    --ev-hairline-soft: #2b2b2b;
    --ev-border-strong: #6b6b6b;
    --ev-ink: #f1f1f1;
    --ev-body: #d0d0d0;
    --ev-muted: #a6a6a6;
    --ev-muted-soft: #8a8a8a;
    --ev-error: #f5968a;
    --ev-on-ink: #161616;
    --ev-fond-sombre: #0b0b0b;

    --ev-success-bg: #10281a;
    --ev-success-ink: #7ad19b;
    --ev-success-border: #1f4d31;
    --ev-warning-bg: #2d2210;
    --ev-warning-ink: #f0c270;
    --ev-warning-border: #5a4318;
    --ev-danger-bg: #2e1513;
    --ev-danger-border: #5c2a24;
    --ev-info-bg: #131e33;
    --ev-info-ink: #a9c2f5;
    --ev-info-border: #2a3f66;

    /* sur fond sombre une ombre ne se voit pas : un filet clair très léger dessine le bord */
    --ev-shadow: rgba(255, 255, 255, .07) 0 0 0 1px, rgba(0, 0, 0, .4) 0 2px 6px 0, rgba(0, 0, 0, .5) 0 4px 12px 0;

    /* liens verts éclaircis pour le fond sombre */
    --bs-link-color: var(--ev-vert);
    --bs-link-color-rgb: 79, 201, 149;
    --bs-link-hover-color: var(--ev-vert-actif);
    --bs-link-hover-color-rgb: 116, 216, 171;
    --bs-focus-ring-color: rgba(241, 241, 241, .3);
    /* bouton « danger » : fond foncé lisible sous du blanc (le ton clair ci-dessus sert au texte) */
    --bs-danger: #c13515;
    --bs-danger-rgb: 193, 53, 21;
    --bs-secondary-bg: var(--ev-surface-strong);
    --bs-tertiary-bg: var(--ev-surface-soft);
}
/* case cochée : l'encre claire effacerait la coche blanche de Bootstrap, l'accent la garde lisible */
[data-bs-theme="dark"] .form-check-input:checked { background-color: var(--ev-bouton); border-color: var(--ev-bouton); }
/* boutons « dark » de Bootstrap (restés sombres sur fond sombre) : sur l'encre, comme en clair */
[data-bs-theme="dark"] .btn-outline-dark {
    --bs-btn-color: var(--ev-ink);
    --bs-btn-border-color: var(--ev-ink);
    --bs-btn-hover-bg: var(--ev-ink);
    --bs-btn-hover-border-color: var(--ev-ink);
    --bs-btn-hover-color: var(--ev-on-ink);
    --bs-btn-active-bg: var(--ev-ink);
    --bs-btn-active-border-color: var(--ev-ink);
    --bs-btn-active-color: var(--ev-on-ink);
}
[data-bs-theme="dark"] .btn-dark {
    --bs-btn-bg: var(--ev-ink);
    --bs-btn-border-color: var(--ev-ink);
    --bs-btn-color: var(--ev-on-ink);
    --bs-btn-hover-bg: var(--ev-body);
    --bs-btn-hover-border-color: var(--ev-body);
    --bs-btn-hover-color: var(--ev-on-ink);
}
[data-bs-theme="dark"] .table-light { --bs-table-bg: var(--ev-surface-strong); --bs-table-color: var(--ev-ink); --bs-table-border-color: var(--ev-hairline); }
/* logos et affiches sur fond blanc : un coin arrondi pour qu'ils ne fassent pas « trou » dans la page */
[data-bs-theme="dark"] .ev-partenaires img,
[data-bs-theme="dark"] .ev-partenaire > img { background: var(--ev-fond-logo); border-radius: var(--ev-rounded-sm); padding: 6px; }
/* photos : un peu moins lumineuses sur fond sombre */
[data-bs-theme="dark"] .ev-bandeau-fond { opacity: .25; }

/* menu du thème : coche devant le choix en cours */
.ev-theme-choix { display: flex; align-items: center; gap: 10px; }
.ev-theme-choix .ev-theme-coche { visibility: hidden; margin-left: auto; }
.ev-theme-choix[aria-pressed="true"] { font-weight: 600; }
.ev-theme-choix[aria-pressed="true"] .ev-theme-coche { visibility: visible; }

body {
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

h1, .h1 { font-size: 28px; font-weight: 700; line-height: 1.43; }
h2, .h2 { font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: -.2px; }
h3, .h3 { font-size: 20px; font-weight: 600; line-height: 1.2; }
h4, .h4, h5, .h5 { font-size: 16px; font-weight: 600; line-height: 1.25; }

a { text-underline-offset: 2px; }
.text-muted, .text-body-secondary { color: var(--ev-muted) !important; }

.ev-conteneur {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}
.ev-section { padding-top: var(--ev-section); padding-bottom: var(--ev-section); }
.ev-section-titre { font-size: 22px; font-weight: 600; margin-bottom: 24px; }

/* ---------- Boutons ---------- */
.btn {
    --bs-btn-font-weight: 500;
    --bs-btn-border-radius: var(--ev-rounded-sm);
    --bs-btn-padding-x: 24px;
    --bs-btn-padding-y: 12px;
}
.btn-sm { --bs-btn-padding-x: 14px; --bs-btn-padding-y: 6px; --bs-btn-font-size: 14px; }
.btn-primary {
    --bs-btn-bg: var(--ev-bouton);
    --bs-btn-border-color: var(--ev-bouton);
    --bs-btn-hover-bg: var(--ev-bouton-actif);
    --bs-btn-hover-border-color: var(--ev-bouton-actif);
    --bs-btn-active-bg: var(--ev-bouton-actif);
    --bs-btn-active-border-color: var(--ev-bouton-actif);
    --bs-btn-disabled-bg: var(--ev-bouton-inactif);
    --bs-btn-disabled-border-color: var(--ev-bouton-inactif);
    --bs-btn-focus-shadow-rgb: 8, 127, 91;
    --bs-btn-disabled-color: var(--ev-on-strong);
    --bs-btn-color: var(--ev-on-strong);
    --bs-btn-hover-color: var(--ev-on-strong);
    --bs-btn-active-color: var(--ev-on-strong);
}
.btn-outline-primary, .btn-secondary, .btn-outline-secondary, .btn-light {
    --bs-btn-bg: var(--ev-canvas);
    --bs-btn-color: var(--ev-ink);
    --bs-btn-border-color: var(--ev-ink);
    --bs-btn-hover-bg: var(--ev-surface-soft);
    --bs-btn-hover-color: var(--ev-ink);
    --bs-btn-hover-border-color: var(--ev-ink);
    --bs-btn-active-bg: var(--ev-surface-strong);
    --bs-btn-active-color: var(--ev-ink);
    --bs-btn-active-border-color: var(--ev-ink);
}
.btn-lien {
    background: none;
    border: 0;
    padding: 0;
    color: var(--ev-ink);
    font-weight: 600;
    text-decoration: underline;
}
.ev-pilule-primaire {
    border-radius: var(--ev-rounded-sm);
    padding: 10px 20px;
    font-size: 14px;
}

/* ---------- Formulaires ---------- */
.form-label { font-size: 14px; font-weight: 500; color: var(--ev-ink); }
.form-control, .form-select {
    min-height: 56px;
    padding: 14px 12px;
    border: 1px solid var(--ev-hairline);
    border-radius: var(--ev-rounded-sm);
    color: var(--ev-ink);
}
.form-control-sm, .form-select-sm { min-height: 40px; padding: 8px 10px; }
textarea.form-control { min-height: 120px; }
.form-control:focus, .form-select:focus {
    border-color: var(--ev-ink);
    box-shadow: inset 0 0 0 1px var(--ev-ink);
}
.form-control::placeholder { color: var(--ev-muted); }
.invalid-feedback, .text-danger { color: var(--ev-error) !important; }
.form-control.is-invalid, .form-select.is-invalid { border-color: var(--ev-error); }
.form-check-input:checked { background-color: var(--ev-ink); border-color: var(--ev-ink); }

/* ---------- Cartes, alertes, tableaux ---------- */
.card {
    --bs-card-border-color: var(--ev-hairline);
    --bs-card-border-radius: var(--ev-rounded-md);
    --bs-card-inner-border-radius: calc(var(--ev-rounded-md) - 1px);
    --bs-card-spacer-x: 24px;
    --bs-card-spacer-y: 24px;
}
.alert { border-radius: var(--ev-rounded-sm); }
.table { --bs-table-border-color: var(--ev-hairline-soft); }
.badge { font-weight: 600; }
.breadcrumb { font-size: 14px; --bs-breadcrumb-divider-color: var(--ev-muted); }
.breadcrumb a { color: var(--ev-muted); }
.nav-pills .nav-link.active { background: var(--ev-ink); color: var(--ev-on-ink); }
.dropdown-menu {
    border: 0;
    border-radius: var(--ev-rounded-md);
    box-shadow: var(--ev-shadow);
    padding: 8px 0;
}
.dropdown-item { padding: 10px 16px; }

/* ---------- Barre du haut (design vert) ---------- */
.ev-entete {
    position: sticky;
    top: 0;
    z-index: 1020;
    background: var(--ev-canvas);
    border-bottom: 1px solid var(--ev-filet-vert);
}
.ev-entete-barre {
    height: 82px;
    display: flex;
    align-items: center;
    gap: 24px;
}
.ev-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    text-decoration: none;
    border-radius: var(--ev-rounded-md);
}
.ev-logo img { display: block; width: auto; height: 54px; }
.ev-logo .ev-logo-sombre { display: none; }
[data-bs-theme="dark"] .ev-logo .ev-logo-clair { display: none; }
[data-bs-theme="dark"] .ev-logo .ev-logo-sombre { display: block; }
.ev-nav-produits { display: flex; gap: 26px; margin-left: 16px; margin-right: auto; }
.ev-nav-produits a {
    color: var(--ev-ink);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    padding: 30px 2px 28px;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
}
.ev-nav-produits a:hover { color: var(--ev-vert); }
.ev-nav-produits a[aria-current="page"] { color: var(--ev-vert); border-bottom-color: var(--ev-vert); }
.ev-outils { display: flex; align-items: center; gap: 6px; }
.ev-outils .ev-lien-orga {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    margin-right: 10px;
    padding: 9px 18px;
    border: 1px solid var(--ev-vert);
    border-radius: 10px;
    background: var(--ev-canvas);
    color: var(--ev-foret);
    font-size: 14px;
    font-weight: 650;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .18s, border-color .18s;
}
.ev-outils .ev-lien-orga:hover { background: var(--ev-menthe); border-color: var(--ev-foret); }
.ev-bouton-rond {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    border: 0;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--ev-ink);
}
.ev-bouton-rond:hover, .ev-bouton-rond[aria-expanded="true"] { background: var(--ev-menthe); color: var(--ev-foret); }
.ev-menu-compte {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 44px;
    margin-left: 6px;
    padding: 6px 10px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--ev-ink);
    font-size: 14px;
    white-space: nowrap;
}
.ev-menu-compte:hover, .ev-menu-compte[aria-expanded="true"] { color: var(--ev-vert); background: var(--ev-menthe); }
.ev-bouton-menu {
    display: none;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 8px 12px;
    border: 1px solid var(--ev-hairline);
    border-radius: 9px;
    background: transparent;
    color: var(--ev-foret);
    font-size: 13px;
}
.ev-bouton-menu[aria-expanded="true"] { background: var(--ev-menthe); border-color: var(--ev-vert); }
.ev-menu-mobile { border-top: 1px solid var(--ev-filet-vert); }
.ev-menu-mobile .ev-conteneur { display: flex; flex-direction: column; padding-top: 8px; padding-bottom: 16px; }
.ev-menu-mobile a { color: var(--ev-ink); font-weight: 500; text-decoration: none; padding: 12px 4px; border-bottom: 1px solid var(--ev-filet-vert); }
.ev-menu-mobile a:hover, .ev-menu-mobile a[aria-current="page"] { color: var(--ev-vert); }
.ev-menu-mobile .ev-menu-mobile-orga { border-bottom: 0; margin-top: 12px; text-align: center; border: 1px solid var(--ev-vert); border-radius: 10px; color: var(--ev-foret); font-weight: 650; }
.ev-avatar {
    width: 30px;
    height: 30px;
    border-radius: var(--ev-rounded-full);
    background: var(--ev-ink);
    color: var(--ev-on-ink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
}
.ev-entete .ev-avatar { background: var(--ev-vert); color: #fff; }
/* barre verte décorative au-dessus du menu (maquette), défile avec la page */
.ev-barre-verte { height: 29px; background: #073c2f; }
.ev-bandeau-dev { background: var(--ev-warning-bg); color: var(--ev-warning-ink); font-size: 12px; text-align: center; padding: 2px 0; }

/* ---------- Bloc de recherche (nouveau design vert) ---------- */
.ev-recherche {
    display: grid;
    grid-template-columns: 1.25fr 1fr 1fr auto;
    align-items: center;
    min-height: 96px;
    padding: 14px;
    background: var(--ev-canvas);
    border: 1px solid var(--ev-filet-vert);
    border-radius: 15px;
    box-shadow: 0 7px 22px rgba(7, 60, 47, .05);
    text-align: left;
}
.ev-recherche-champ { display: flex; align-items: center; gap: 15px; min-width: 0; padding: 6px 22px; border-right: 1px solid var(--ev-filet-vert); }
.ev-recherche-champ > svg { flex-shrink: 0; color: var(--ev-foret); }
.ev-recherche-champ > div { width: 100%; min-width: 0; }
.ev-recherche-champ label { display: block; margin: 0 0 3px; font-size: 12px; font-weight: 600; line-height: 1.5; color: var(--ev-ink); }
.ev-recherche-champ input, .ev-recherche-champ select {
    display: block; width: 100%; min-height: 30px; padding: 2px 0; border: 0; border-radius: 3px;
    background-color: transparent; color: var(--ev-muted); font: inherit; font-size: 13px; line-height: 1.5; text-overflow: ellipsis;
}
.ev-recherche-champ select { cursor: pointer; }
.ev-recherche-champ select option { color: var(--ev-ink); background: var(--ev-canvas); }
.ev-recherche-champ input::placeholder { color: var(--ev-muted); opacity: 1; }
.ev-recherche-champ input:focus, .ev-recherche-champ select:focus { outline: 2px solid var(--ev-vert); outline-offset: 4px; }
.ev-recherche-bouton {
    display: inline-flex; align-items: center; justify-content: center; gap: 12px;
    min-height: 64px; margin-left: 20px; padding: 11px 27px;
    border: 1px solid var(--ev-bouton); border-radius: 10px; background: var(--ev-bouton); color: #fff;
    font-size: 14px; font-weight: 650; transition: background-color .18s, border-color .18s;
}
.ev-recherche-bouton:hover { background: var(--ev-bouton-actif); border-color: var(--ev-bouton-actif); }
.ev-recherche-bouton:focus-visible { outline: 3px solid var(--ev-foret); outline-offset: 3px; }

/* ---------- Bande de catégories ---------- */
.ev-categories {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 4px 2px 12px;
    scrollbar-width: thin;
}
.ev-categorie {
    flex: 0 0 auto;
    border: 1px solid var(--ev-hairline);
    border-radius: var(--ev-rounded-md);
    padding: 8px 16px;
    font-size: 14px;
    font-weight: 500;
    color: var(--ev-ink);
    text-decoration: none;
    background: var(--ev-canvas);
    white-space: nowrap;
}
.ev-categorie:hover { border-color: var(--ev-ink); }
.ev-categorie[aria-current="true"] { background: var(--ev-ink); border-color: var(--ev-ink); color: var(--ev-on-ink); }

/* ---------- Cartes d'événements ---------- */
.ev-grille {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 40px 24px;
}
.ev-carte { position: relative; color: var(--ev-ink); text-decoration: none; display: block; }
.ev-carte:hover { color: var(--ev-ink); }
.ev-carte-photo {
    position: relative;
    /* format affiche (A4 portrait) : celui de 3 illustrations sur 4 */
    aspect-ratio: 1 / 1.414;
    border-radius: var(--ev-rounded-md);
    overflow: hidden;
    background: var(--ev-surface-strong);
}
.ev-carte-photo img { position: relative; width: 100%; height: 100%; object-fit: contain; transition: transform .3s ease; }
/* fond flou fait de la même image, visible autour d'une image carrée ou en paysage */
.ev-carte-affiche::before { content: ""; position: absolute; inset: -24px; background: var(--ev-affiche) center / cover no-repeat; filter: blur(20px) brightness(.92); transform: scale(1.1); }
.ev-carte:hover .ev-carte-photo img { transform: scale(1.03); }
/* affiche de repli (événement sans illustration) : le nom de la course en lettrage, comme une affiche imprimée */
.ev-carte-photo .ev-sans-photo {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px;
    color: var(--ev-ink);
    box-shadow: inset 0 0 0 1px var(--ev-hairline);
    border-radius: inherit;
}
.ev-sans-photo-titre { font-size: 22px; font-weight: 700; line-height: 1.2; letter-spacing: -.2px; text-align: center; text-wrap: balance; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.ev-badge-flottant {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--ev-menthe);
    color: var(--ev-foret);
    border-radius: var(--ev-rounded-sm);
    padding: 5px 10px;
    font-size: 11px;
    font-weight: 600;
    box-shadow: var(--ev-shadow);
}
.ev-carte-meta { padding-top: 12px; font-size: 14px; line-height: 1.43; }
.ev-carte-titre { font-size: 16px; font-weight: 600; line-height: 1.25; margin: 0 0 2px; }
.ev-carte-meta .ev-discret { color: var(--ev-muted); }
.ev-carte-prix { margin-top: 4px; }
.ev-carte-prix strong { font-weight: 600; }

/* ---------- Fiche d'un événement ---------- */
.ev-fiche { max-width: 1120px; margin: 0 auto; padding: 24px 24px var(--ev-section); }
.ev-fiche h1 { font-size: 26px; font-weight: 600; line-height: 1.2; letter-spacing: -.44px; }
.ev-bandeau-photo {
    position: relative;
    border-radius: var(--ev-rounded-md);
    overflow: hidden;
    aspect-ratio: 2 / 1;
    background: var(--ev-surface-strong);
}
/* l'illustration en fond, estompée */
.ev-bandeau-fond { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; }
/* l'affiche entière par-dessus, à gauche */
.ev-bandeau-affiche {
    position: absolute;
    top: 6%;
    bottom: 6%;
    left: 4%;
    aspect-ratio: 1 / 1.414;
    display: block;
    border-radius: var(--ev-rounded-sm);
    overflow: hidden;
    background: var(--ev-canvas);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
    transition: transform .2s ease;
}
.ev-bandeau-affiche:hover { transform: translateY(-2px); }
.ev-bandeau-affiche:focus-visible { outline: 3px solid var(--ev-ink); outline-offset: 3px; }
.ev-bandeau-affiche img { width: 100%; height: 100%; object-fit: contain; }
/* téléphone : bandeau plus haut, pour que l'affiche reste lisible */
@media (max-width: 575.98px) {
    .ev-bandeau-photo { aspect-ratio: 4 / 3; }
    /* la gouttière des grilles g-5 dépassait la marge de 16 px des pages : défilement horizontal */
    .row.g-5 { --bs-gutter-x: 2rem; }
}
.ev-separateur { border-top: 1px solid var(--ev-hairline); margin: 32px 0; }
.ev-infos-ligne { display: flex; gap: 16px; align-items: flex-start; padding: 12px 0; }
.ev-infos-ligne svg { flex: 0 0 24px; margin-top: 2px; }
.ev-contenu-riche { color: var(--ev-body); }
.ev-contenu-riche img { max-width: 100%; height: auto; }
.ev-carte-inscription {
    position: sticky;
    top: 104px;
    border: 1px solid var(--ev-hairline);
    border-radius: var(--ev-rounded-md);
    box-shadow: var(--ev-shadow);
    padding: 24px;
    background: var(--ev-canvas);
}
.ev-prix-grand { font-size: 22px; font-weight: 600; }
.ev-epreuve {
    border: 1px solid var(--ev-hairline);
    border-radius: var(--ev-rounded-md);
    padding: 20px 24px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.ev-epreuve + .ev-epreuve { margin-top: 16px; }
.ev-etiquette {
    display: inline-block;
    border-radius: var(--ev-rounded-md);
    padding: 3px 10px;
    font-size: 12px;
    font-weight: 600;
    background: var(--ev-surface-strong);
    color: var(--ev-ink);
}
.ev-etiquette-ouverte { background: var(--ev-success-bg); color: var(--ev-success-ink); }
.ev-etiquette-complet { background: var(--ev-danger-bg); color: var(--ev-danger-ink); }
.ev-galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.ev-galerie img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ev-rounded-sm); }
.ev-documents a { font-weight: 500; }

/* questionnaire de santé du tunnel : une rubrique par encadré */
.ev-encadre { border: 1px solid var(--ev-hairline); border-radius: var(--ev-rounded-xl); padding: 16px 20px; background: var(--ev-surface-soft); }
.ev-encadre ul { padding-left: 1.2rem; }
.ev-question-oui-non.is-invalid legend { color: var(--ev-error); }

/* suivi en direct : page du chronométreur dans une fenêtre intégrée, haute pour limiter le défilement interne */
.ev-live-timing { display: block; width: 100%; height: 80vh; min-height: 520px; border: 1px solid var(--ev-hairline); border-radius: var(--ev-rounded-xl); background: var(--ev-canvas); }

/* page d'accueil : vidéo de fond derrière le titre et la recherche */
/* accueil (nouveau design vert) : carrousel de photos (CarrouselAccueil) sous un fondu vert, titre à gauche, commandes
   en bas ; sans photo, l'image de fond de la section */
.ev-hero { position: relative; isolation: isolate; display: flex; align-items: center; min-height: 440px; overflow: hidden; background: #073c2f center / cover no-repeat; color: #fff; }
.ev-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(3, 49, 36, .98) 0%, rgba(3, 49, 36, .87) 27%, rgba(3, 49, 36, .48) 51%, rgba(3, 49, 36, .02) 78%); }
.ev-carrousel { position: absolute; inset: 0; z-index: -2; }
.ev-carrousel .carousel-inner, .ev-carrousel .carousel-item { height: 100%; }
.ev-carrousel .carousel-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ev-hero-contenu { position: relative; z-index: 1; width: 100%; padding-top: 60px; padding-bottom: 134px; pointer-events: none; }
.ev-hero h1 { margin: 0 0 19px; color: #fff; font-size: 80px; font-weight: 770; line-height: 1.05; letter-spacing: -3px; }
.ev-hero h1 span { color: #a5dbbd; }
.ev-hero-slogan { margin: 0; max-width: 550px; color: #f2f7f4; font-size: 22px; font-weight: 500; line-height: 1.55; text-wrap: balance; }
.ev-carrousel-barre { position: absolute; z-index: 3; left: 0; right: 0; bottom: 64px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ev-carrousel-etat { display: flex; align-items: center; gap: 15px; flex-shrink: 0; }
.ev-carrousel-pause { display: inline-flex; align-items: center; gap: 9px; min-height: 38px; padding: 6px 11px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 7px; background: rgba(7, 60, 47, .46); color: #fff; font-size: 12px; font-weight: 600; }
.ev-carrousel-pause:hover { background: rgba(7, 60, 47, .78); }
.ev-carrousel-compteur { font-size: 12px; letter-spacing: .4px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ev-carrousel-reperes { display: flex; align-items: center; gap: 2px; }
.ev-carrousel-reperes button { position: relative; display: grid; place-items: center; width: 24px; height: 38px; padding: 0; border: 0; background: transparent; }
.ev-carrousel-reperes button::after { content: ''; width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .5); transition: background-color .2s, transform .2s; }
.ev-carrousel-reperes button.active::after { background: #fff; transform: scale(1.4); }
.ev-carrousel-fleches { display: flex; gap: 9px; }
.ev-carrousel-fleches button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid rgba(255, 255, 255, .5); border-radius: 50%; background: rgba(7, 60, 47, .46); color: #fff; }
.ev-carrousel-fleches button:hover { background: rgba(255, 255, 255, .17); }
.ev-carrousel-barre button:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.ev-zone-recherche { position: relative; z-index: 2; margin-top: -44px; }
.ev-reseaux { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.ev-reseaux a { display: inline-block; padding: 8px 16px; border: 1px solid var(--ev-hairline); border-radius: var(--ev-rounded-sm); font-weight: 600; color: var(--ev-ink); text-decoration: none; }
.ev-reseaux a:hover { border-color: var(--ev-ink); }
.ev-reseau-cadre iframe { width: 100%; max-width: 500px; height: 480px; border: 0; }
.ev-reseau-explication { padding: 24px; border: 1px dashed var(--ev-border-strong); border-radius: var(--ev-rounded-md); background: var(--ev-surface-soft); }

/* boutique de produits : vitrine et fiche */
.ev-grille-produits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
.ev-produit-image { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1; border-radius: var(--ev-rounded-md); overflow: hidden; background: var(--ev-surface-strong); }
.ev-produit-image img { width: 100%; height: 100%; object-fit: contain; transition: transform .3s ease; }
.ev-produit-image, .ev-produit-image:hover { text-decoration: none; }
.ev-produit-image:has(.ev-produit-repli) { box-shadow: inset 0 0 0 1px var(--ev-hairline); }
.ev-produit-carte:hover .ev-produit-image img { transform: scale(1.03); }
.ev-produit-repli { padding: 24px; font-size: 20px; font-weight: 700; line-height: 1.2; letter-spacing: -.2px; text-align: center; text-wrap: balance; color: var(--ev-ink); overflow-wrap: anywhere; }
.ev-produit-prix { font-weight: 600; font-variant-numeric: tabular-nums; }
.ev-produits-filtres { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px; margin-bottom: 20px; }
.ev-produits-filtre { flex: 0 1 220px; }
.ev-produits-filtre-q { flex: 1 1 280px; }
.ev-produits-filtre-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 16px; }
.ev-produit-fiche { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: start; }
.ev-produit-vignettes { list-style: none; padding: 0; margin: 12px 0 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.ev-produit-vignette { display: block; width: 100%; padding: 0; border: 1px solid var(--ev-hairline); border-radius: var(--ev-rounded-sm); background: var(--ev-surface-strong); overflow: hidden; aspect-ratio: 1; }
.ev-produit-vignette img { width: 100%; height: 100%; object-fit: contain; }
.ev-produit-vignette:hover { border-color: var(--ev-ink); }
.ev-produit-vignette[aria-current="true"] { border-color: var(--ev-ink); box-shadow: inset 0 0 0 1px var(--ev-ink); }
.ev-produit-titre { font-size: 28px; font-weight: 700; line-height: 1.2; letter-spacing: -.3px; margin-bottom: 12px; text-wrap: balance; }
.ev-produit-prix-grand { font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; }
.ev-produit-quantite { width: 6rem; }
.ev-produit-ajouter { flex: 1 1 200px; }
.ev-produit-epuise { display: inline-block; padding: 6px 12px; border-radius: var(--ev-rounded-md); background: var(--ev-danger-bg); color: var(--ev-danger-ink); border: 1px solid var(--ev-danger-border); font-weight: 600; font-size: 14px; }
.ev-produit-bloc { border-top: 1px solid var(--ev-hairline-soft); margin-top: 32px; padding-top: 24px; }
.ev-produit-sous-titre { font-size: 16px; font-weight: 600; margin-bottom: 12px; }
.ev-produit-livraisons { padding-left: 1.1rem; margin: 0; color: var(--ev-body); }
.ev-produit-livraisons li + li { margin-top: 6px; }
.ev-produit-description { color: var(--ev-body); max-width: 65ch; }
.ev-grille-produits-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1128px) { .ev-grille-produits { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 950px) {
    .ev-grille-produits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ev-produit-fiche { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 575.98px) {
    .ev-grille-produits { gap: 28px 16px; }
    .ev-produit-titre { font-size: 24px; }
    .ev-produit-vignettes { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) { .ev-produit-image img { transition: none; } }

/* accueil : bandes grises (vérification et résultats ; carte des courses chronométrées et appel aux organisateurs) */
.ev-bande { background: var(--ev-surface-soft); border-top: 1px solid var(--ev-hairline-soft); border-bottom: 1px solid var(--ev-hairline-soft); }
/* sans actualités, les deux bandes se suivent : une seule bordure entre elles */
.ev-bande + .ev-bande { border-top: 0; }
.ev-bande-grille { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px; align-items: stretch; }
.ev-bande-grille-seule { grid-template-columns: minmax(0, 1fr); }
.ev-bande-bloc { display: flex; flex-direction: column; background: var(--ev-canvas); border: 1px solid var(--ev-hairline); border-radius: var(--ev-rounded-md); padding: 32px; }
.ev-bande-intro { color: var(--ev-muted); font-size: 14px; margin-bottom: 20px; }
.ev-lien-action { color: var(--ev-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.ev-lien-action:hover { color: var(--ev-ink); text-decoration-thickness: 2px; }
.ev-carte-cadre { position: relative; flex: 1; min-height: 380px; border-radius: var(--ev-rounded-sm); overflow: hidden; }
.ev-carte-cadre iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ev-carte-explication { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; border-radius: var(--ev-rounded-sm); color: var(--ev-body); font-size: 14px; }
.ev-carte-explication p { max-width: 42ch; }
.ev-carte-picto { color: var(--ev-muted); }
.ev-carte-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 20px; font-size: 14px; }
@media (max-width: 950px) {
    .ev-bande-grille { grid-template-columns: minmax(0, 1fr); }
    .ev-carte-cadre { flex: none; min-height: 0; aspect-ratio: 4 / 3; }
}
@media (max-width: 575.98px) {
    .ev-bande-bloc { padding: 24px 20px; }
    .ev-carte-cadre { aspect-ratio: 3 / 4; }
}

/* actualités */
.ev-grille-actus { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; }
.ev-grille-actus-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ev-actu-image { position: relative; display: block; aspect-ratio: 3 / 2; border-radius: var(--ev-rounded-md); overflow: hidden; background: var(--ev-surface-strong); }
.ev-actu-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.ev-actu-carte:hover .ev-actu-image img { transform: scale(1.03); }
.ev-actu-resume { color: var(--ev-body); font-size: 15px; margin: 6px 0 4px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ev-actu-texte { max-width: 760px; }
.ev-actu-principale { width: 100%; max-height: 520px; object-fit: cover; border-radius: var(--ev-rounded-md); }
.ev-actu-galerie { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.ev-actu-galerie img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ev-rounded-sm); }
.ev-actu-galerie a:focus-visible { outline: 3px solid var(--ev-ink); outline-offset: 2px; display: block; border-radius: var(--ev-rounded-sm); }
.ev-commentaire { padding: 16px 0; border-bottom: 1px solid var(--ev-hairline); }
@media (max-width: 950px) { .ev-grille-actus { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .ev-grille-actus, .ev-grille-actus-2 { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .ev-actu-image img { transition: none; } }

/* minuteur de réservation d'une place */
.ev-minuteur { display: flex; gap: 10px; align-items: flex-start; padding: 12px 16px; margin: 0 0 16px; border-radius: var(--ev-rounded-sm); background: var(--ev-info-bg); color: var(--ev-info-ink); border: 1px solid var(--ev-info-border); }
.ev-minuteur-icone { flex-shrink: 0; margin-top: 2px; }
.ev-minuteur-temps { font-variant-numeric: tabular-nums; font-size: 1.05em; }
.ev-minuteur-urgent { background: var(--ev-warning-bg); color: var(--ev-warning-ink); border-color: var(--ev-warning-border); }
.ev-minuteur-compact { padding: 6px 12px; margin: -4px 0 12px; font-size: 14px; }

/* consentement aux cookies : bandeau en bas de l'écran, non bloquant */
.ev-consentement { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1080; background: var(--ev-canvas); border-top: 1px solid var(--ev-hairline); box-shadow: 0 -6px 24px rgba(0, 0, 0, .08); padding: 16px 0; max-height: 70vh; overflow-y: auto; }
.ev-consentement h2:focus { outline: 2px solid var(--ev-ink); outline-offset: 2px; }
.ev-consentement .btn { min-width: 140px; }
.ev-consentement-choix { padding: 12px 0 4px; border-top: 1px solid var(--ev-hairline-soft); margin-top: 8px; }
body.ev-avec-consentement .ev-pied { padding-bottom: 180px; }
.ev-lien-pied { color: inherit; font-size: inherit; text-decoration: none; vertical-align: baseline; }
.ev-lien-pied:hover { text-decoration: underline; }
.ev-texte-legal { max-width: 860px; }

/* résultats et contact */
.ev-vignette { width: 48px; height: 64px; object-fit: cover; border-radius: var(--ev-rounded-sm); }
.ev-affiche-resultat { width: 200px; max-width: 100%; border-radius: var(--ev-rounded-md); }
.ev-pdf-resultat { width: 100%; height: 80vh; border: 1px solid var(--ev-hairline); border-radius: var(--ev-rounded-sm); }
.ev-tableau-resultats { max-height: 75vh; }
.ev-tableau-resultats thead th { position: sticky; top: 0; white-space: nowrap; }
.ev-carte-contact { padding: 24px; border: 1px solid var(--ev-hairline); border-radius: var(--ev-rounded-md); }
.ev-piege { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* pages de contenu */
.ev-page-entete { background: var(--ev-surface-soft); padding: 48px 0 32px; }
.ev-page-entete h1 { font-size: 32px; font-weight: 600; }
.ev-page-entete-photo { background-size: cover; background-position: center; color: var(--ev-on-strong); padding-top: 160px; position: relative; }
.ev-page-entete-photo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, .1), rgba(0, 0, 0, .6)); }
.ev-page-entete-photo .ev-conteneur { position: relative; }
.ev-page-cms h2 { font-size: 22px; font-weight: 600; margin: 0 0 16px; }
.ev-page-section + .ev-page-section { margin-top: 48px; }
.ev-partenaires { list-style: none; padding: 0; margin: 24px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 16px; }
.ev-partenaires img { width: 100%; height: 80px; object-fit: contain; }
.ev-liste-partenaires { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 24px; }
.ev-partenaire { display: flex; gap: 20px; align-items: flex-start; padding: 24px; border: 1px solid var(--ev-hairline); border-radius: var(--ev-rounded-md); }
.ev-partenaire > img { width: 120px; max-height: 90px; object-fit: contain; flex-shrink: 0; }
@media (max-width: 575.98px) { .ev-partenaire { flex-direction: column; } }

/* ---------- Pages de la boutique (compte, connexion, inscription) ---------- */
.ev-page { max-width: 1120px; margin: 0 auto; padding: 32px 24px var(--ev-section); }
.ev-page-etroite { max-width: 568px; margin: 0 auto; padding: 48px 24px var(--ev-section); }

/* panier : inscriptions et produits de la boutique */
.ev-page-etroite.ev-page-panier { max-width: 720px; }
.ev-panier-titre { font-size: 18px; font-weight: 600; margin: 8px 0 4px; }
.ev-panier-vignette { flex: 0 0 64px; width: 64px; height: 64px; border-radius: var(--ev-rounded-sm); background: var(--ev-surface-strong); overflow: hidden; }
.ev-panier-vignette img { width: 100%; height: 100%; object-fit: contain; }
.ev-panier-quantite { width: 5rem; }
.ev-panier-produit > .text-end { white-space: nowrap; }
.ev-panier-livraison { border-top: 1px solid var(--ev-hairline-soft); padding-top: 24px; margin-top: 8px; }
.ev-panier-recap { margin: 32px 0 24px; }
.ev-panier-recap > div { display: flex; justify-content: space-between; gap: 16px; padding: 6px 0; }
.ev-panier-recap dt { font-weight: 400; color: var(--ev-body); }
.ev-panier-recap dd { margin: 0; font-variant-numeric: tabular-nums; }
.ev-panier-recap .ev-panier-total { border-top: 1px solid var(--ev-hairline); margin-top: 8px; padding-top: 14px; font-size: 20px; font-weight: 600; }
.ev-panier-recap .ev-panier-total dt { font-weight: 600; color: var(--ev-ink); }

/* ---------- Tunnel d'inscription et espace membre ---------- */
.ev-etapes { display: flex; flex-wrap: wrap; gap: 8px 24px; list-style: none; padding: 0; margin: 0 0 32px; }
.ev-etapes li { display: flex; align-items: center; gap: 8px; color: var(--ev-muted); font-size: 14px; font-weight: 500; }
.ev-etape-numero {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border-radius: var(--ev-rounded-full);
    border: 1px solid var(--ev-hairline); font-size: 13px; font-weight: 600;
}
.ev-etapes li.active { color: var(--ev-ink); }
.ev-etapes li.active .ev-etape-numero { background: var(--ev-ink); border-color: var(--ev-ink); color: var(--ev-on-ink); }
.ev-etapes li.faite .ev-etape-numero { background: var(--ev-surface-strong); color: var(--ev-ink); }
.ev-participant {
    display: flex; align-items: center; gap: 16px;
    padding: 16px 0; border-bottom: 1px solid var(--ev-hairline-soft);
}
.ev-participant .ev-avatar { flex: 0 0 40px; }
.ev-statut { display: inline-block; padding: 2px 10px; border-radius: var(--ev-rounded-md); font-size: 13px; font-weight: 500; background: var(--ev-surface-strong); color: var(--ev-ink); }
.ev-statut-ok { background: var(--ev-success-bg); color: var(--ev-success-ink); }
.ev-statut-attente { background: var(--ev-warning-bg); color: var(--ev-warning-ink); }
.ev-statut-refus { background: var(--ev-danger-bg); color: var(--ev-danger-ink); }

/* ---------- Accueil par discipline ---------- */
/* vidéo plein cadre : le bas laisse la place à la barre des disciplines, posée dessus */

/* pastilles sous la recherche de l'accueil : catégories des événements à venir (liens vers la page Événements) */
.ev-disciplines { padding: 22px 0 6px; }
.ev-disciplines-liste { list-style: none; margin-top: 0; margin-bottom: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.ev-discipline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 4px 17px;
    border: 1px solid #7ba893;
    border-radius: var(--ev-rounded-full);
    background: rgba(255, 255, 255, .38);
    color: var(--ev-foret);
    font-size: 12px;
    font-weight: 550;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .2s, border-color .2s;
}
.ev-discipline:hover { background: var(--ev-menthe); border-color: var(--ev-vert); color: var(--ev-foret); }
.ev-discipline:focus-visible { outline: 3px solid var(--ev-vert); outline-offset: 2px; }
.ev-discipline[aria-current="true"] { background: var(--ev-menthe); border-color: var(--ev-vert); }

/* « Prochains évènements » (nouveau design vert) : cartes avec bandeau de date et affiche au format portrait */
.ev-prochains { padding-top: 54px; }
.ev-prochains-entete { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.ev-prochains-entete h2 { margin: 0; font-size: clamp(26px, 3vw, 37px); font-weight: 750; line-height: 1.15; letter-spacing: -1.4px; }
.ev-lien-fleche { display: inline-flex; align-items: center; gap: 12px; min-height: 36px; color: var(--ev-foret); font-size: 13px; font-weight: 650; text-decoration: none; white-space: nowrap; }
.ev-lien-fleche:hover { color: var(--ev-vert); text-decoration: underline; text-underline-offset: 4px; }
.ev-prochains-grille { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.ev-prochain { display: flex; flex-direction: column; height: 100%; overflow: hidden; background: var(--ev-canvas); border: 1px solid var(--ev-filet-vert); border-radius: 13px; box-shadow: 0 2px 5px rgba(7, 60, 47, .02); transition: box-shadow .2s, transform .2s; }
.ev-prochain:hover { box-shadow: 0 10px 25px rgba(7, 60, 47, .06); transform: translateY(-3px); }
.ev-prochain-date { display: flex; align-items: center; gap: 12px; padding: 14px 20px; background: var(--ev-menthe); color: var(--ev-foret); font-size: 14px; font-weight: 650; }
.ev-prochain-affiche.ev-carte-photo { display: block; border-radius: 0; color: var(--ev-foret); text-decoration: none; }
.ev-prochain-affiche .ev-sans-photo { background: var(--ev-menthe); box-shadow: none; }
.ev-prochain:hover .ev-carte-photo img { transform: scale(1.03); }
.ev-prochain-prix, .ev-prochain-bas .ev-lien-fleche { white-space: nowrap; }
.ev-prochain-corps { display: flex; flex-direction: column; align-items: flex-start; flex: 1; padding: 18px 20px 16px; }
.ev-prochain-etiquettes { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 10px; width: 100%; margin-bottom: 11px; }
.ev-prochain-sport { display: inline-block; padding: 3px 10px; border-radius: 5px; background: var(--ev-menthe); color: var(--ev-foret); font-size: 11px; font-weight: 600; line-height: 1.6; }
.ev-prochain-statut { color: var(--ev-vert); font-size: 11px; font-weight: 600; }
.ev-prochain-titre { margin: 0 0 5px; font-size: 20px; font-weight: 720; line-height: 1.3; letter-spacing: -.6px; }
.ev-prochain-titre a { color: var(--ev-ink); text-decoration: none; }
.ev-prochain-titre a:hover { color: var(--ev-vert); text-decoration: underline; }
.ev-prochain-lieu { margin: 0 0 11px; color: var(--ev-muted); font-size: 13px; line-height: 1.6; }
.ev-prochain-bas { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 15px; width: 100%; margin-top: auto; padding-top: 6px; }
.ev-prochain-prix { color: var(--ev-foret); font-size: 13px; font-weight: 650; }
/* raccourcis de l'accueil (maquette) : trois accès sur fond menthe */
.ev-raccourcis { padding-top: 29px; }
.ev-raccourcis-liste { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 26px 12px; border-radius: 13px; background: var(--ev-menthe); }
.ev-raccourcis a { display: flex; align-items: center; justify-content: center; gap: 22px; min-height: 55px; padding: 0 20px; border-right: 1px solid #bfd7c8; color: var(--ev-foret); font-size: 13px; font-weight: 650; text-decoration: none; }
.ev-raccourcis a:last-child { border-right: 0; }
.ev-raccourcis a:hover span { text-decoration: underline; }
.ev-raccourcis svg { stroke-width: 1.6; flex-shrink: 0; }
[data-bs-theme="dark"] .ev-raccourcis a { border-right-color: #2f5a4b; }
/* bandeau organisateurs (maquette) : dégradé vert, symbole Eventicom en filigrane, bouton menthe */
.ev-organisateurs { padding-top: 27px; padding-bottom: 32px; }
.ev-organisateurs-bloc { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-height: 340px; padding: 40px; border-radius: 16px; background: linear-gradient(110deg, #073c2f, #087f5b); color: #fff; }
.ev-organisateurs-bloc::before { content: ''; position: absolute; z-index: -1; right: 9%; top: 28px; width: 175px; height: 290px; opacity: .12; background: url('../images/logo/eventicom-symbole.svg') center / contain no-repeat; filter: brightness(0) invert(1); }
.ev-surtitre { display: flex; align-items: center; gap: 16px; margin: 0 0 15px; color: #e6f4ed; font-size: 9px; font-weight: 650; letter-spacing: 2px; text-transform: uppercase; }
.ev-surtitre::before { content: ''; flex-shrink: 0; width: 42px; height: 1px; background: currentColor; }
.ev-organisateurs h2 { max-width: 650px; margin: 0 0 17px; color: #fff; font-size: clamp(28px, 3.3vw, 40px); font-weight: 730; line-height: 1.14; letter-spacing: -1.4px; }
.ev-organisateurs-texte { max-width: 290px; margin: 0 0 24px; color: #ecf5ef; font-size: 14px; line-height: 1.6; }
.ev-bouton-menthe { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; padding: 11px 23px; border: 1px solid #e8f3ec; border-radius: 10px; background: #e8f3ec; color: #073c2f; font-size: 14px; font-weight: 650; text-decoration: none; transition: background-color .18s, border-color .18s; }
.ev-bouton-menthe:hover { background: #fff; border-color: #fff; color: #073c2f; }
.ev-bouton-menthe:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

@media (max-width: 744px) {
    .ev-disciplines { padding: 18px 0 6px; }
    .ev-disciplines-liste { justify-content: flex-start; gap: 8px; }
}
@media (max-width: 575.98px) {
}
@media (prefers-reduced-motion: reduce) {
    .ev-discipline { transition: none; }
}
/* ---------- Pied de page : fond encre, la page se ferme comme une ligne d'arrivée ---------- */
/* pied de page clair (maquette du nouveau design vert) : seuls le fond, les textes et le logo changent ; les teintes
   « sur fond sombre » sont redéfinies pour le fond blanc */
.ev-pied {
    --ev-on-ink-muted: var(--ev-muted);
    --ev-on-strong: var(--ev-ink);
    --ev-ink-hairline: var(--ev-hairline);
    --ev-ink-raised: var(--ev-surface-soft);
    background: var(--ev-canvas); color: var(--ev-muted); border-top: 1px solid var(--ev-hairline-soft);
    margin-top: var(--ev-section); font-size: 14px;
}
.ev-pied a, .ev-pied .ev-lien-pied { color: var(--ev-on-ink-muted); text-decoration: none; text-underline-offset: 3px; }
.ev-pied .ev-lien-pied { background: none; border: 0; padding: 0; font: inherit; }
.ev-pied a:hover, .ev-pied .ev-lien-pied:hover { color: var(--ev-on-strong); text-decoration: underline; }
.ev-pied a:focus-visible, .ev-pied button:focus-visible { outline: 3px solid var(--ev-on-strong); outline-offset: 3px; }
/* les liens texte seuls prennent un contour arrondi ; pilules et tuiles gardent leur forme */
.ev-pied-rubrique a:focus-visible, .ev-bande-legale a:focus-visible, .ev-pied .ev-pied-contact:focus-visible, .ev-pied .ev-lien-pied:focus-visible { border-radius: 4px; }
.ev-pied ul { list-style: none; padding: 0; margin: 0; }
.ev-pied-haut { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 11fr); gap: 48px; padding: 64px 0 56px; }
.ev-pied-logo { display: inline-block; border-radius: var(--ev-rounded-md); line-height: 0; }
.ev-pied-logo img { width: auto; height: 44px; display: block; }
.ev-pied-logo .ev-logo-sombre { display: none; }
[data-bs-theme="dark"] .ev-pied-logo .ev-logo-clair { display: none; }
[data-bs-theme="dark"] .ev-pied-logo .ev-logo-sombre { display: block; }
.ev-pied-phrase { margin: 24px 0 16px; max-width: 30ch; font-size: 16px; line-height: 1.5; text-wrap: pretty; }
.ev-pied-phrase strong { color: var(--ev-on-strong); font-weight: 600; font-variant-numeric: tabular-nums; }
.ev-pied .ev-pied-contact { color: var(--ev-on-strong); font-size: 16px; font-weight: 500; text-decoration: underline; text-decoration-color: var(--ev-muted); }
.ev-pied .ev-pied-contact:hover { text-decoration-color: currentColor; }
.ev-pied-reseaux { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px !important; }
.ev-pied-reseaux a { display: inline-block; padding: 8px 16px; border: 1px solid var(--ev-ink-hairline); border-radius: var(--ev-rounded-sm); color: var(--ev-on-strong); font-weight: 500; }
.ev-pied-reseaux a:hover { border-color: var(--ev-on-ink-muted); background: var(--ev-ink-raised); text-decoration: none; }
.ev-pied-rubriques { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.ev-pied-rubrique h2 { font-size: 16px; font-weight: 600; line-height: 1.25; color: var(--ev-on-strong); margin: 0 0 16px; }
.ev-pied-rubrique li { margin-bottom: 12px; line-height: 1.43; text-wrap: pretty; }
.ev-pied-confiance { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 32px 0; border-top: 1px solid var(--ev-ink-hairline); }
/* partenaires et paiement : une seule tuile blanche, une seule hauteur */
.ev-pied-partenaires { display: flex; flex-wrap: wrap; gap: 12px; }
.ev-pied-tuile { display: flex; align-items: center; justify-content: center; width: 136px; height: 64px; padding: 8px 12px; background: var(--ev-fond-logo); border-radius: var(--ev-rounded-md); }
.ev-pied-tuile img { max-width: 100%; max-height: 44px; object-fit: contain; }
.ev-pied-paiement .ev-pied-tuile { width: 184px; }
a.ev-pied-tuile:hover { outline: 2px solid var(--ev-on-ink-muted); outline-offset: 2px; }
.ev-pied-paiement { display: flex; align-items: center; gap: 16px; }
.ev-bande-legale { border-top: 1px solid var(--ev-ink-hairline); padding: 24px 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 13px; }
.ev-pied-langues { display: inline-flex; align-items: center; gap: 12px; }
.ev-pied .ev-pied-langues a[aria-current="true"] { color: var(--ev-on-strong); font-weight: 600; }
@media (max-width: 950px) {
    .ev-pied-haut { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .ev-pied-rubriques { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 16px; }
}
@media (max-width: 744px) {
    .ev-pied-haut { padding: 48px 0 32px; gap: 32px; }
    .ev-pied-rubriques { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .ev-pied-rubrique { border-top: 1px solid var(--ev-ink-hairline); }
    .ev-pied-rubrique:last-child { border-bottom: 1px solid var(--ev-ink-hairline); }
    .ev-pied-rubrique h2 { margin: 0; padding: 14px 0; }
    .ev-pied-rubrique h2:has(.ev-pied-bascule) { padding: 0; }
    .ev-pied-bascule { display: flex; width: 100%; min-height: 52px; align-items: center; justify-content: space-between; padding: 14px 0; background: none; border: 0; color: inherit; font: inherit; text-align: left; }
    .ev-pied-bascule svg { color: var(--ev-on-ink-muted); transition: transform .2s cubic-bezier(.16, 1, .3, 1); }
    .ev-pied-bascule[aria-expanded="true"] svg { transform: rotate(90deg); }
    .ev-js .ev-pied-rubrique ul:not(.est-ouverte) { display: none; }
    .ev-pied-rubrique ul { padding-bottom: 12px; }
    .ev-pied-rubrique li { margin-bottom: 0; }
    .ev-pied-rubrique li a, .ev-pied-rubrique li button { display: inline-block; padding: 8px 0; }
    .ev-pied-confiance { flex-direction: column; align-items: stretch; border-top: 0; padding-top: 0; }
    .ev-pied-partenaires { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ev-pied-partenaires .ev-pied-tuile { width: auto; }
    .ev-pied-paiement { justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) {
    .ev-pied-bascule svg { transition: none; }
}
/* ---------- Réactif ---------- */
@media (max-width: 1128px) {
    .ev-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    /* « Mon compte » sans son libellé sur les écrans moyens */
    .ev-menu-compte-libelle { display: none; }
}
@media (max-width: 950px) {
    /* navigation et « Organisateurs » dans le panneau du bouton Menu */
    .ev-nav-produits, .ev-outils .ev-lien-orga { display: none; }
    .ev-outils { margin-left: auto; }
    .ev-bouton-menu { display: inline-flex; }
    .ev-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ev-carte-inscription { position: static; }
}
@media (max-width: 744px) {
    .ev-conteneur, .ev-fiche, .ev-page { padding-left: 16px; padding-right: 16px; }
    .ev-entete-barre { height: 64px; gap: 8px; }
    .ev-logo img { height: 40px; }
    .ev-outils { gap: 0; }
    .ev-bouton-menu span { display: none; }
    .ev-grille { grid-template-columns: minmax(0, 1fr); }
    .ev-section { padding-top: 40px; padding-bottom: 40px; }
}

@media (prefers-reduced-motion: reduce) {
    .ev-carte-photo img, .ev-bandeau-affiche { transition: none; }
}

/* ---------- Boutique : conteneurs Bootstrap et menus du compte ---------- */
main .container { max-width: 1120px; }
.list-group {
    --bs-list-group-border-color: var(--ev-hairline);
    --bs-list-group-border-radius: var(--ev-rounded-md);
    --bs-list-group-active-bg: var(--ev-ink);
    --bs-list-group-active-border-color: var(--ev-ink);
    --bs-list-group-active-color: var(--ev-on-ink);
    --bs-list-group-action-hover-bg: var(--ev-surface-soft);
    --bs-list-group-item-padding-y: 12px;
}
.form-floating > .form-control { min-height: 56px; }

/* questionnaire aux inscrits : même titre pour une question à champ (label) et à choix (legend) */
.ev-question-titre { font-size: 15px; font-weight: 600; color: var(--ev-ink); }

/* impression (liste des participants d'un club) : ni en-tête, ni pied, ni menu ; contenu sur toute la largeur */
@media print {
    .ev-entete, .ev-pied, .ev-consentement, .alert { display: none !important; }
    .ev-impression-pleine { flex: 0 0 100%; max-width: 100%; }
    .ev-tableau-impression { font-size: 11px; }
    .ev-tableau-impression tr, .ev-bloc-impression h2 { break-inside: avoid; }
    .ev-bloc-impression h2 { break-after: avoid; }
    .ev-statut { padding: 0; background: none !important; color: inherit !important; }
}

/* photos de profil : avatar des commentaires, page « Photo de profil », licenciés et participants d'un club */
img.ev-avatar { object-fit: cover; background: var(--ev-surface-strong); }
.ev-avatar-commentaire { width: 40px; height: 40px; flex: 0 0 40px; font-size: 16px; }
.ev-avatar-liste { width: 40px; height: 40px; flex: 0 0 40px; font-size: 15px; background: var(--ev-surface-strong); color: var(--ev-ink); }
.ev-photo-profil { width: 120px; height: 120px; border-radius: var(--ev-rounded-full); object-fit: cover; display: inline-flex; }
.ev-photo-vide { align-items: center; justify-content: center; background: var(--ev-surface-strong); color: var(--ev-muted); }
@media print { .ev-avatar-liste { border: 1px solid #ccc; } }

/* menu des langues : drapeau devant le nom */
.ev-langue { display: flex; align-items: center; gap: 10px; }
.ev-drapeau { width: 20px; height: 14px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .12); flex: 0 0 20px; }
.ev-langue-pied { display: inline-flex; align-items: center; gap: 6px; }
.ev-pied-langues { flex-wrap: wrap; }

/* panier dans l'en-tête : nombre d'articles (inscriptions à régler et produits) */
.ev-panier { position: relative; text-decoration: none; }
.ev-panier[aria-current="page"] { background: var(--ev-menthe); color: var(--ev-foret); }
.ev-panier-nombre {
    position: absolute; top: 3px; right: 1px; min-width: 18px; height: 18px; padding: 0 5px;
    border-radius: 9px; background: var(--ev-vert); color: #fff;
    font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
}

/* inscription : bloc « personne à prévenir en cas d'urgence » */
.ev-urgence {
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
    padding: .75rem 1rem 1rem;
}
.ev-urgence legend {
    float: none;
    width: auto;
    font-size: 1rem;
    padding: 0 .25rem;
}

/* jauge de remplissage d'une épreuve (partials/jauge_inscrits) */
.ev-jauge {
    max-width: 22rem;
    margin-top: .5rem;
    font-size: .875rem;
}
.ev-jauge-texte {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .25rem;
}
.ev-jauge-pourcentage {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.ev-jauge-barre {
    height: .5rem;
    border-radius: 1rem;
    background: var(--bs-secondary-bg, #e9ecef);
    overflow: hidden;
}
.ev-jauge-barre > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #2e9d5b;
}
.ev-jauge-presque .ev-jauge-barre > span { background: #e08a00; }
.ev-jauge-plein .ev-jauge-barre > span { background: #d4343c; }
.ev-jauge-libre .ev-jauge-pourcentage { color: #23804a; }
.ev-jauge-presque .ev-jauge-pourcentage { color: #b46f00; }
.ev-jauge-plein .ev-jauge-pourcentage { color: #c0282f; }

/* connexion : séparateur « ou » avant le bouton « Continuer avec Google » */
.ev-ou {
    display: flex;
    align-items: center;
    gap: .75rem;
}
.ev-ou::before,
.ev-ou::after {
    content: "";
    flex: 1;
    border-top: 1px solid var(--bs-border-color);
}

/* Formulaire Info Santé FFTri (adulte) : présentation du document de la fédération (FIS 2024) */
.fis { border: 1px solid #d5dbe5; border-radius: 6px; overflow: hidden; background: #fff; color: #1d1d1b; font-size: .95rem; color-scheme: light; }
.fis-bandeau { display: flex; align-items: center; gap: 16px; padding: 10px 18px; background: linear-gradient(90deg, #0072bc 0%, #05508d 45%, #2b2560 100%); color: #fff; }
.fis-bandeau img { width: 104px; height: auto; flex: 0 0 auto; }
.fis-bandeau-titre { flex: 1; text-align: center; font-weight: 700; line-height: 1.1; }
.fis-bandeau-titre span { display: block; font-size: 1.35rem; letter-spacing: .02em; }
.fis-bandeau-titre .fis-sigle { font-size: 2.6rem; }
.fis-pied { min-height: 26px; padding: 0; }
.fis-intro { text-align: center; margin: 22px 7% 18px; }
.fis-identite { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; margin: 0 9% 22px; font-weight: 700; }
.fis-identite dd { margin: 0; font-weight: 400; }
.fis-encadre { margin: 0 3% 18px; padding: 14px 18px 8px; }
.fis-encadre h3 { font-size: 1.6rem; font-weight: 700; margin: 0 0 12px; color: #1d1d1b; }
.fis-encadre ul { padding-left: 1.6rem; margin-bottom: 12px; }
.fis-encadre ul ul { list-style: circle; margin: 4px 0; }
.fis-encadre a { color: #0b6e99; text-decoration: underline; font-weight: 600; word-break: break-word; }
.fis-alerte { background: #e8a1a1; }
.fis-attention { background: #fde3d2; }
.fis-vigilance { background: #fff1c9; }
.fis-pratiques { background: #d8ecd1; }
.fis-case { display: flex; gap: 12px; align-items: flex-start; margin: 4px 0 14px; flex-wrap: wrap; }
.fis-case .fis-coche { flex: 0 0 auto; width: 1.3rem; height: 1.3rem; margin: .1rem 0 0; cursor: pointer; accent-color: #05508d; }
.fis-case .fis-coche.is-invalid { outline: 2px solid #b3261e; outline-offset: 2px; }
.fis-case label { flex: 1; font-weight: 700; cursor: pointer; }
.fis-case .invalid-feedback { flex-basis: 100%; margin: 0 0 0 2.1rem; }
@media (max-width: 575px) {
    .fis-bandeau img { width: 72px; }
    .fis-bandeau-titre span { font-size: 1rem; }
    .fis-bandeau-titre .fis-sigle { font-size: 1.8rem; }
    .fis-encadre { margin: 0 0 14px; padding: 12px 12px 6px; }
    .fis-encadre h3 { font-size: 1.3rem; }
}
[data-bs-theme="dark"] .fis { color: #1d1d1b; }

/* barre du haut sur les petits téléphones : logo et boutons resserrés pour que tout tienne sur une ligne */
@media (max-width: 420px) {
    .ev-logo img { height: 32px; }
    .ev-bouton-rond, .ev-bouton-menu { width: 36px; height: 36px; min-height: 36px; padding: 0; justify-content: center; }
    .ev-menu-compte { margin-left: 0; padding: 4px; min-height: 36px; }
}

/* accueil et bloc de recherche : tablette et mobile (maquette) */
@media (max-width: 991.98px) {
    .ev-hero { min-height: 410px; }
    .ev-recherche { grid-template-columns: 1fr 1fr; }
    .ev-recherche-champ { padding: 14px; }
    .ev-recherche-quoi { border-bottom: 1px solid var(--ev-filet-vert); }
    .ev-recherche-champ:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--ev-filet-vert); }
    .ev-recherche-bouton { margin: 10px 0 10px 14px; min-height: 55px; }
}
@media (max-width: 767.98px) {
    .ev-hero h1 { font-size: 64px; }
    .ev-hero-slogan { font-size: 20px; max-width: 460px; }
    .ev-carrousel-reperes { display: none; }
}
@media (max-width: 575.98px) {
    .ev-hero { align-items: flex-end; }
    .ev-hero::after { background: linear-gradient(90deg, rgba(3, 49, 36, .9), rgba(3, 49, 36, .48)), linear-gradient(0deg, rgba(3, 49, 36, .75), transparent 70%); }
    .ev-hero h1 { font-size: 54px; letter-spacing: -2px; }
    .ev-hero-slogan { font-size: 17px; line-height: 1.6; max-width: 330px; }
    .ev-carrousel-barre { gap: 10px; }
    .ev-carrousel-etat { gap: 12px; }
    .ev-zone-recherche { margin-top: -42px; }
    .ev-recherche { grid-template-columns: 1fr; padding: 9px; border-radius: 13px; }
    .ev-recherche-champ, .ev-recherche-quoi, .ev-recherche-champ:nth-child(2) { padding: 12px; gap: 13px; border-right: 0; border-bottom: 1px solid var(--ev-filet-vert); }
    .ev-recherche-champ input, .ev-recherche-champ select { font-size: 14px; min-height: 32px; }
    .ev-recherche-bouton { width: 100%; margin: 9px 0 0; min-height: 51px; }
}

/* messages flash sous la barre du haut (conteneur sans marge, collé au carrousel quand il n'y a pas de message) */
#contenu > .ev-conteneur > .alert:first-child { margin-top: 16px; }

/* « Prochains évènements » : trois, deux puis une carte par rangée */
@media (max-width: 1128px) { .ev-prochains-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .ev-prochains-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {
    .ev-prochains { padding-top: 35px; }
    .ev-prochains-entete h2 { font-size: 28px; letter-spacing: -1px; }
    .ev-prochains-grille { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .ev-prochain { transition: none; } .ev-prochain:hover { transform: none; } }

/* raccourcis et bandeau organisateurs : tablette et mobile (maquette) */
@media (max-width: 991.98px) { .ev-raccourcis a { gap: 12px; padding-inline: 12px; } .ev-raccourcis svg { width: 30px; height: 30px; } }
@media (max-width: 767.98px) { .ev-organisateurs-bloc::before { right: 3%; width: 140px; } }
@media (max-width: 575.98px) {
    .ev-raccourcis { padding-top: 24px; }
    .ev-raccourcis-liste { grid-template-columns: minmax(0, 1fr); padding: 8px 16px; }
    .ev-raccourcis a { justify-content: flex-start; border-right: 0; border-bottom: 1px solid #bfd7c8; }
    .ev-raccourcis a:last-child { border-bottom: 0; }
    .ev-organisateurs { padding-top: 24px; padding-bottom: 24px; }
    .ev-organisateurs-bloc { padding: 26px 22px; }
    .ev-organisateurs h2 { font-size: 30px; letter-spacing: -1.1px; }
    .ev-surtitre { font-size: 8px; letter-spacing: 1.1px; }
    .ev-organisateurs-texte { font-size: 13px; }
}

/* « Ils nous font confiance » : carrousel horizontal de logos sans fond (le blanc des images se fond dans la page),
   6 visibles sur grand écran, 4 sur tablette, 3 sur téléphone */
.ev-confiance-entete { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 24px; }
.ev-confiance-outils { display: flex; align-items: center; gap: 8px; }
.ev-confiance-outils a { margin-right: 8px; }
.ev-confiance-bouton { display: inline-grid; place-items: center; min-width: 36px; height: 36px; padding: 0 10px; border: 1px solid var(--ev-filet-vert); border-radius: var(--ev-rounded-full); background: var(--ev-canvas); color: var(--ev-foret); font-size: 13px; font-weight: 600; }
.ev-confiance-bouton:hover { background: var(--ev-menthe); border-color: var(--ev-vert); }
.ev-logos { --ev-logos-visibles: 6; list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--ev-logos-visibles) - 1) * 24px) / var(--ev-logos-visibles)); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.ev-logos::-webkit-scrollbar { display: none; }
.ev-logos li { scroll-snap-align: start; display: flex; align-items: center; justify-content: center; height: 96px; }
.ev-logos a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; border-radius: var(--ev-rounded-md); }
.ev-logos img { max-width: 100%; max-height: 72px; object-fit: contain; mix-blend-mode: multiply; transition: opacity .2s; }
.ev-logos a:hover img { opacity: .75; }
/* thème sombre : « multiply » assombrirait les logos ; ils gardent un fond blanc arrondi */
[data-bs-theme="dark"] .ev-logos img { mix-blend-mode: normal; background: var(--ev-fond-logo); border-radius: var(--ev-rounded-sm); padding: 6px; }
@media (max-width: 991.98px) { .ev-logos { --ev-logos-visibles: 4; } }
@media (max-width: 575.98px) { .ev-logos { --ev-logos-visibles: 3; gap: 16px; grid-auto-columns: calc((100% - 32px) / 3); } }
@media (prefers-reduced-motion: reduce) { .ev-logos { scroll-behavior: auto; } }

/* accueil : blocs de la carte et des réseaux sociaux aux couleurs du bandeau organisateurs (vert foncé, textes blancs,
   boutons vert clair) */
.ev-bloc-vert { border: 0; border-radius: 16px; background: linear-gradient(110deg, #073c2f, #087f5b); color: #fff; }
.ev-bloc-vert .ev-section-titre { color: #fff; }
.ev-bloc-vert .ev-bande-intro, .ev-bloc-vert .text-muted { color: #ecf5ef !important; }
.ev-bloc-vert .ev-reseaux a, .ev-bloc-vert .btn-outline-dark { border: 1px solid #e8f3ec; border-radius: 10px; background: #e8f3ec; color: #073c2f; font-weight: 650; }
.ev-bloc-vert .ev-reseaux a:hover, .ev-bloc-vert .btn-outline-dark:hover { background: #fff; border-color: #fff; color: #073c2f; }
.ev-bloc-vert .ev-reseau-explication { border-color: rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .08); color: #fff; }
.ev-bloc-vert .ev-carte-explication, .ev-bloc-vert .ev-carte-picto { color: #fff; }
.ev-bloc-vert .ev-lien-action, .ev-bloc-vert .ev-lien-action:hover { color: #fff; }
.ev-bloc-vert a:focus-visible, .ev-bloc-vert button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

/* accueil : derniers résultats en tableau, lignes alternées blanc / vert clair */
.ev-table-resultats { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; }
.ev-table-resultats th { padding: 0 12px 8px; color: var(--ev-muted); font-size: 12px; font-weight: 600; text-align: left; }
.ev-table-resultats td { padding: 8px 12px; vertical-align: middle; }
.ev-table-resultats tbody tr:nth-child(odd) td { background: var(--ev-canvas); }
.ev-table-resultats tbody tr:nth-child(even) td { background: var(--ev-menthe); }
.ev-table-resultats tbody td:first-child { border-radius: 8px 0 0 8px; }
.ev-table-resultats tbody td:last-child { border-radius: 0 8px 8px 0; }
.ev-table-resultats-affiche { width: 60px; }
.ev-table-resultats-affiche img, .ev-table-resultats-vide { display: block; width: 36px; height: 48px; object-fit: cover; border-radius: 4px; background: var(--ev-menthe); }
.ev-table-resultats-titre { color: var(--ev-ink); font-weight: 650; text-decoration: none; }
.ev-table-resultats-titre:hover { color: var(--ev-vert); text-decoration: underline; }

.ev-table-resultats-voir { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: var(--ev-foret); }
.ev-table-resultats-voir:hover { background: var(--ev-vert); color: #fff; }
.ev-table-resultats td:last-child { width: 44px; }
