/* ==========================================================================
   DIVI HALLOWEEN : habillage « nuit des citrouilles » du site SCOPE
   --------------------------------------------------------------------------
   Citrouilles lumineuses, toiles d'araignée, brume, chauves-souris et cimetière, plus les photos d'ambiance de l'équipe (zombies à l'entraînement).
   Toutes les illustrations sont ORIGINALES (assets/img/*.svg) ; aucune police ni aucune image externe n'est chargée.
   Tout est préfixé par « body.halloween » (classe ajoutée par inc/halloween.php) : plus spécifique que le CSS de Divi, du CSS personnalisé du
   site et de l'extension athlete-dashboard, sans dépendre de leur ordre de chargement.
   Pensé pour rester pleinement utilisable : textes contrastés (4,5:1 mesuré sur les trois palettes), boutons et champs de 44 px,
   aucun effet sur les zones de lecture, décors qui ne captent aucun clic et qui se règlent ou se coupent dans Personnaliser.

   Sommaire
     0. Palettes (citrouille, sorcière, os)                     7. DataTables
     1. Base : fond, texte, titres, liens                       8. Extension athlete-dashboard (séance, scores, cartes « sc »)
     2. Divi : en-tête, menu, pied de page                      9. CSS du site (tuiles, accordéons, pages produit, MemberPress…)
     3. Divi : sections, modules, blog (palettes sombres)      10. Palettes sombres : fonds clairs du CSS du site
     4. Boutons                                                 11. Accessibilité et impression
     5. Formulaires                                             12. Décors : photos, brume, chauves-souris, toiles, cimetière, citrouilles
     6. Composants Bootstrap                                    13. Clins d'œil : volée de chauves-souris, bilan des zombies, page 404
                                                               (fin de fichier) Compléments du 18/10/2026 : pages programmes et mobilité
   ========================================================================== */

/* --- 0. Palettes ------------------------------------------------------------------------------------------------ */
/* Palette claire (« os ») : la valeur de base, et le CONTENU des pages du Builder dans les palettes sombres (les sections du Builder portent leurs propres fonds
   blancs et leurs textes sombres, posés avec !important : en palette sombre, l'en-tête et le pied de page s'assombrissent, pas elles). */

body.halloween,
body.halloween-dark.et_pb_pagebuilder_layout #main-content {
	--ha-bg: #f3ece0;                  /* fond de page */
	--ha-bg-rgb: 243, 236, 224;
	--ha-bg2: #fffaf2;                 /* panneaux, cartes */
	--ha-bg3: #e8dfcf;                 /* panneaux relevés, en-têtes, survols */
	--ha-line: #8a7a6c;                /* bordures des champs et des cartes (3:1 sur le fond) */
	--ha-soft: #d9ccb8;                /* filets décoratifs */
	--ha-text: #2a1f24;                /* texte courant */
	--ha-text-rgb: 42, 31, 36;
	--ha-dim: #5a4c52;                 /* texte secondaire */
	--ha-head: #1b1017;                /* titres */
	--ha-link: #a8380a;                /* liens */
	--ha-link-rgb: 168, 56, 10;
	--ha-link2: #7f2a07;               /* liens au survol */
	--ha-link2-rgb: 127, 42, 7;
	--ha-acc: #b3390a;                 /* boutons pleins, accents */
	--ha-acc-rgb: 179, 57, 10;
	--ha-acc2: #8f2d08;                /* survol des boutons pleins */
	--ha-on-acc: #ffffff;              /* texte sur fond d'accent */
	--ha-bar: #2b1a3a;                 /* barres : tableaux, volets, pied de page, bannière */
	--ha-bar-rgb: 43, 26, 58;
	--ha-bar2: #3a2450;                /* barres, survol */
	--ha-on-bar: #f7ece2;              /* texte sur les barres */
	--ha-on-bar-rgb: 247, 236, 226;
	--ha-bar-dim: #cdbfd9;             /* texte secondaire sur les barres */
	--ha-tag: #ff8a1f;                 /* repères numérotés, pastilles, surlignage */
	--ha-tag-rgb: 255, 138, 31;
	--ha-on-tag: #2a1200;              /* texte sur repère */
	--ha-alt: #5b2a86;                 /* accent secondaire, anneau de focus */
	--ha-warn: #7a4a00;                /* texte d'avertissement */
	--ha-warn-rgb: 122, 74, 0;
	--ha-warn-fill: #ffb020;           /* fond d'avertissement */
	--ha-on-warn: #2a1800;             /* texte sur fond d'avertissement */
	--ha-bad: #a4161a;                 /* erreur */
	--ha-bad-rgb: 164, 22, 26;
	--ha-ok: #1e6b3a;                  /* réussite */
	--ha-ok-rgb: 30, 107, 58;
	--ha-on-ok: #ffffff;               /* texte sur fond de réussite */
	--ha-grid: rgba(42, 31, 36, .05);
	--ha-shadow: rgba(27, 16, 23, .16);
	--ha-display: "Palatino Linotype", "Book Antiqua", Palatino, "URW Palladio L", Georgia, "Times New Roman", serif;
}

body.halloween.halloween-pal-citrouille {
	--ha-bg: #130d12;                  /* fond de page */
	--ha-bg-rgb: 19, 13, 18;
	--ha-bg2: #1d1419;                 /* panneaux, cartes */
	--ha-bg3: #2a1d24;                 /* panneaux relevés, en-têtes, survols */
	--ha-line: #8c7480;                /* bordures des champs et des cartes (3:1 sur le fond) */
	--ha-soft: #3e2d36;                /* filets décoratifs */
	--ha-text: #f7ece2;                /* texte courant */
	--ha-text-rgb: 247, 236, 226;
	--ha-dim: #cfbfb8;                 /* texte secondaire */
	--ha-head: #fff6ea;                /* titres */
	--ha-link: #ff9a47;                /* liens */
	--ha-link-rgb: 255, 154, 71;
	--ha-link2: #ffb878;               /* liens au survol */
	--ha-link2-rgb: 255, 184, 120;
	--ha-acc: #ff7a18;                 /* boutons pleins, accents */
	--ha-acc-rgb: 255, 122, 24;
	--ha-acc2: #ff9440;                /* survol des boutons pleins */
	--ha-on-acc: #1a0c04;              /* texte sur fond d'accent */
	--ha-bar: #2b1a3a;                 /* barres : tableaux, volets, pied de page, bannière */
	--ha-bar-rgb: 43, 26, 58;
	--ha-bar2: #3a2450;                /* barres, survol */
	--ha-on-bar: #f7ece2;              /* texte sur les barres */
	--ha-on-bar-rgb: 247, 236, 226;
	--ha-bar-dim: #cdbfd9;             /* texte secondaire sur les barres */
	--ha-tag: #9be22d;                 /* repères numérotés, pastilles, surlignage */
	--ha-tag-rgb: 155, 226, 45;
	--ha-on-tag: #14200a;              /* texte sur repère */
	--ha-alt: #b98cff;                 /* accent secondaire, anneau de focus */
	--ha-warn: #ffd166;                /* texte d'avertissement */
	--ha-warn-rgb: 255, 209, 102;
	--ha-warn-fill: #ffd166;           /* fond d'avertissement */
	--ha-on-warn: #2a2200;             /* texte sur fond d'avertissement */
	--ha-bad: #ff8a8a;                 /* erreur */
	--ha-bad-rgb: 255, 138, 138;
	--ha-ok: #7be0a3;                  /* réussite */
	--ha-ok-rgb: 123, 224, 163;
	--ha-on-ok: #052b1c;               /* texte sur fond de réussite */
	--ha-grid: rgba(247, 236, 226, .04);
	--ha-shadow: rgba(0, 0, 0, .55);
}

body.halloween.halloween-pal-sorciere {
	--ha-bg: #0f0b1d;                  /* fond de page */
	--ha-bg-rgb: 15, 11, 29;
	--ha-bg2: #181230;                 /* panneaux, cartes */
	--ha-bg3: #231a45;                 /* panneaux relevés, en-têtes, survols */
	--ha-line: #7c6fb3;                /* bordures des champs et des cartes (3:1 sur le fond) */
	--ha-soft: #31285a;                /* filets décoratifs */
	--ha-text: #f1ecff;                /* texte courant */
	--ha-text-rgb: 241, 236, 255;
	--ha-dim: #c3b8e6;                 /* texte secondaire */
	--ha-head: #ffffff;                /* titres */
	--ha-link: #b6f35a;                /* liens */
	--ha-link-rgb: 182, 243, 90;
	--ha-link2: #d0ff8a;               /* liens au survol */
	--ha-link2-rgb: 208, 255, 138;
	--ha-acc: #9be22d;                 /* boutons pleins, accents */
	--ha-acc-rgb: 155, 226, 45;
	--ha-acc2: #b4f04d;                /* survol des boutons pleins */
	--ha-on-acc: #0f1a05;              /* texte sur fond d'accent */
	--ha-bar: #2d1a5c;                 /* barres : tableaux, volets, pied de page, bannière */
	--ha-bar-rgb: 45, 26, 92;
	--ha-bar2: #3b2578;                /* barres, survol */
	--ha-on-bar: #f1ecff;              /* texte sur les barres */
	--ha-on-bar-rgb: 241, 236, 255;
	--ha-bar-dim: #cfc4ee;             /* texte secondaire sur les barres */
	--ha-tag: #ff8a1f;                 /* repères numérotés, pastilles, surlignage */
	--ha-tag-rgb: 255, 138, 31;
	--ha-on-tag: #2a1200;              /* texte sur repère */
	--ha-alt: #ff9a47;                 /* accent secondaire, anneau de focus */
	--ha-warn: #ffd166;                /* texte d'avertissement */
	--ha-warn-rgb: 255, 209, 102;
	--ha-warn-fill: #ffd166;           /* fond d'avertissement */
	--ha-on-warn: #2a2200;             /* texte sur fond d'avertissement */
	--ha-bad: #ff8a8a;                 /* erreur */
	--ha-bad-rgb: 255, 138, 138;
	--ha-ok: #7be0a3;                  /* réussite */
	--ha-ok-rgb: 123, 224, 163;
	--ha-on-ok: #052b1c;               /* texte sur fond de réussite */
	--ha-grid: rgba(247, 236, 226, .04);
	--ha-shadow: rgba(0, 0, 0, .55);
}

/* Variables Bootstrap 5.3 : cartes, tableaux, panneaux, formulaires, liens… du site prennent la palette. Variables du CSS du site (--ux, --prog, --mob, --gp,
   --scope) : un seul accent, la couleur d'accent de la palette (orange, vert potion ou orange brûlé). */
body.halloween,
body.halloween-dark.et_pb_pagebuilder_layout #main-content {
	--bs-body-bg: var(--ha-bg);
	--bs-body-bg-rgb: var(--ha-bg-rgb);
	--bs-body-color: var(--ha-text);
	--bs-body-color-rgb: var(--ha-text-rgb);
	--bs-emphasis-color: var(--ha-head);
	--bs-emphasis-color-rgb: var(--ha-text-rgb);
	--bs-secondary-color: var(--ha-dim);
	--bs-secondary-bg: var(--ha-bg3);
	--bs-tertiary-color: var(--ha-dim);
	--bs-tertiary-bg: var(--ha-bg2);
	--bs-heading-color: var(--ha-head);
	--bs-border-color: var(--ha-line);
	--bs-border-color-translucent: rgba(var(--ha-text-rgb), .2);
	--bs-link-color: var(--ha-link);
	--bs-link-color-rgb: var(--ha-link-rgb);
	--bs-link-hover-color: var(--ha-link2);
	--bs-link-hover-color-rgb: var(--ha-link2-rgb);
	--bs-primary: var(--ha-acc);
	--bs-primary-rgb: var(--ha-acc-rgb);
	--bs-secondary: var(--ha-bar);
	--bs-success: var(--ha-ok);
	--bs-warning: var(--ha-warn-fill);
	--bs-danger: var(--ha-bad);
	--bs-info: var(--ha-alt);
	--bs-light: var(--ha-bg3);
	--bs-dark: var(--ha-bar);
	--bs-code-color: var(--ha-link);
	--bs-highlight-bg: rgba(var(--ha-tag-rgb), .35);
	--bs-highlight-color: var(--ha-text);
	--ux-brand: var(--ha-acc);
	--ux-brand-2: var(--ha-acc2);
	--ux-focus: var(--ha-alt);
}
body.halloween .scopePrograms {
	--prog-brand: var(--ha-acc);
	--prog-accent: var(--ha-tag);
	--prog-line: var(--ha-soft);
	--scope-accent: var(--ha-tag);
	--scope-dark: var(--ha-text);
}
body.halloween .container-mobility {
	--mob-brand: var(--ha-acc);
	--mob-accent: var(--ha-tag);
	--mob-line: var(--ha-soft);
}
body.halloween .gym-preferences {
	--gp-brand: var(--ha-acc);
	--gp-line: var(--ha-soft);
}


/* --- 1. Base ---------------------------------------------------------------------------------------------------- */
html:has(body.halloween-dark) {
	color-scheme: dark;
}
body.halloween {
	background-color: var(--ha-bg);
	color: var(--ha-text);
	font-size: 1rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	scrollbar-color: var(--ha-line) var(--ha-bg);
}
@media (min-width: 1200px) {
	body.halloween {
		font-size: 1.0625rem;
	}
}
body.halloween ::selection {
	background: var(--ha-tag);
	color: var(--ha-on-tag);
}
body.halloween h1,
body.halloween h2,
body.halloween h3,
body.halloween h4,
body.halloween h5,
body.halloween h6,
body.halloween .entry-title,
body.halloween .entry-title a,
body.halloween .widgettitle {
	color: var(--ha-head);
	line-height: 1.22;
}
body.halloween h1,
body.halloween h2 {
	text-wrap: balance;
}
body.halloween p,
body.halloween li,
body.halloween td,
body.halloween th,
body.halloween label {
	color: inherit;
}
body.halloween strong,
body.halloween b {
	color: var(--ha-head);
}
body.halloween small,
body.halloween .small,
body.halloween .text-muted,
body.halloween .text-body-secondary,
body.halloween .form-text {
	color: var(--ha-dim) !important;
}
/* les enveloppes de page laissent voir le fond du <body> (Divi les peint en blanc) */
body.halloween #page-container,
body.halloween #et-main-area,
body.halloween #main-content {
	background-color: transparent;
}
/* liens : « html body a » (0,0,3) passe devant la règle générale « a » de Divi (CSS du Personnaliseur, chargé en dernier) mais reste sous toute règle
   propre à un module (couleur de lien choisie dans le Builder), un bouton ou un menu. Soulignés dans le texte courant (un lien ne se reconnaît pas qu'à sa couleur). */
html body a {
	color: var(--ha-link);
}
html body a:hover,
html body a:focus {
	color: var(--ha-link2);
}
body.halloween p a:not(.et_pb_button):not(.btn):not(.button),
body.halloween .et_pb_text_inner a:not(.et_pb_button):not(.btn):not(.button),
body.halloween .entry-content li a:not(.et_pb_button):not(.btn):not(.button) {
	text-decoration: underline;
	text-underline-offset: .18em;
}
body.halloween code,
body.halloween kbd,
body.halloween pre {
	background: var(--ha-bg3);
	color: var(--ha-text);
	border: 1px solid var(--ha-soft);
	border-radius: 4px;
}
body.halloween blockquote {
	border-left: 4px solid var(--ha-acc);
	background: var(--ha-bg2);
	color: var(--ha-text);
	padding: .7em 1em;
	border-radius: 0 6px 6px 0;
}
body.halloween hr {
	border: 0;
	border-top: 1px solid var(--ha-line);
	background: none;
	opacity: 1;
}
body.halloween .et_pb_divider::before {
	border-top-color: var(--ha-line);
}
body.halloween ::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}
body.halloween ::-webkit-scrollbar-track {
	background: var(--ha-bg);
}
body.halloween ::-webkit-scrollbar-thumb {
	background: var(--ha-line);
	border: 2px solid var(--ha-bg);
	border-radius: 6px;
}
/* logo : le fichier du site est un JPG sur fond blanc. En palette sombre on l'inverse (silhouette claire sur fond noir) et on arrondit les coins : une pastille noire
   assumée. Pas de mode de fusion (« mix-blend-mode » ne passe pas dans l'en-tête de Divi, ni dans toutes les WebView). Pour un logo transparent : voir LISEZMOI.txt. */
body.halloween-dark #logo,
body.halloween-dark .logo_container img,
body.halloween-dark .custom-logo {
	filter: invert(1) grayscale(1) contrast(1.15);
	border-radius: 8px;
}

/* titres : empattement du système (Palatino, sinon Georgia) : une touche de « livre de sorcières » sans charger aucune police */
body.halloween h1,
body.halloween h2,
body.halloween h3,
body.halloween .entry-title,
body.halloween .widgettitle,
body.halloween .accordion-button,
body.halloween .card-header,
body.halloween .modal-title {
	font-family: var(--ha-display);
	letter-spacing: .01em;
}
/* onglets du site (ul.nav-tabs) : le CSS du site pose un fond blanc sur l'onglet actif et un fond aubergine pâle sur les autres */
body.halloween ul.nav-tabs li a {
	background-color: var(--ha-bg3);
	border-color: var(--ha-line) var(--ha-line) var(--ha-bg2);
}
body.halloween ul.nav-tabs .nav-link.active {
	background-color: var(--ha-bg2);
	border-color: var(--ha-line) var(--ha-line) var(--ha-bg2);
	color: var(--ha-head);
}

/* --- 2. Divi : en-tête, menu, pied de page ---------------------------------------------------------------------- */
body.halloween #main-header,
body.halloween #main-header.et-fixed-header,
body.halloween #top-header,
body.halloween .et_slide_in_menu_container {
	background-color: var(--ha-bg2);
	border-bottom: 3px solid var(--ha-acc);
	box-shadow: 0 1px 0 var(--ha-soft), 0 6px 16px -10px var(--ha-shadow);
}
body.halloween #top-header,
body.halloween #top-header a {
	color: var(--ha-dim);
}
body.halloween #top-menu a,
body.halloween #et-top-navigation nav > ul > li > a,
body.halloween #main-header .et-cart-info,
body.halloween .et_close_search_field::after,
body.halloween #et_search_icon::before {
	color: var(--ha-text) !important;
	font-weight: 600;
	opacity: 1;
}
body.halloween .mobile_menu_bar::before {
	color: var(--ha-acc) !important;
}
body.halloween #top-menu a:hover,
body.halloween #top-menu li.current-menu-item > a,
body.halloween #top-menu li.current-menu-ancestor > a,
body.halloween #top-menu li.current_page_item > a {
	color: var(--ha-link) !important;
	opacity: 1;
}
body.halloween #top-menu > li.current-menu-item > a,
body.halloween #top-menu > li.current-menu-ancestor > a,
body.halloween #top-menu > li.current_page_item > a {
	background: linear-gradient(var(--ha-acc), var(--ha-acc)) no-repeat 0 100% / 100% 3px;
}
body.halloween .nav li ul,
body.halloween #top-menu .sub-menu,
body.halloween #et-secondary-nav li ul {
	background: var(--ha-bg2);
	border: 1px solid var(--ha-line);
	border-top: 3px solid var(--ha-acc);
	box-shadow: 0 10px 24px -12px var(--ha-shadow);
}
body.halloween .nav li li a:hover,
body.halloween #top-menu li li a:hover {
	background: var(--ha-bg3);
	color: var(--ha-link) !important;
}
body.halloween .et_mobile_menu {
	background: var(--ha-bg2);
	border-top: 3px solid var(--ha-acc);
	box-shadow: 0 12px 24px -12px var(--ha-shadow);
}
body.halloween .et_mobile_menu li a {
	color: var(--ha-text);
	font-weight: 600;
	min-height: 44px;
	padding: 12px 14px;
	border-bottom: 1px solid var(--ha-soft);
}
body.halloween .et_mobile_menu li a:hover {
	background: var(--ha-bg3);
}
body.halloween .menu_cta {
	background: var(--ha-acc);
	color: var(--ha-on-acc) !important;
	border: 1px solid var(--ha-acc);
	border-radius: 4px;
}
body.halloween .menu_cta:hover {
	background: var(--ha-acc2);
	border-color: var(--ha-acc2);
}
/* pied de page : barre violette ; le ruban d'accent reprend celui de l'en-tête */
body.halloween #main-footer {
	background-color: var(--ha-bar);
	color: var(--ha-bar-dim);
	border-top: 3px solid var(--ha-acc);
}
body.halloween #footer-widgets .footer-widget,
body.halloween #footer-widgets .footer-widget a,
body.halloween #footer-widgets .footer-widget li a {
	color: var(--ha-bar-dim);
}
body.halloween #footer-widgets .widgettitle,
body.halloween #footer-widgets h4 {
	color: var(--ha-on-bar);
}
body.halloween #footer-bottom {
	background-color: rgba(0, 0, 0, .28);
}
body.halloween #footer-info,
body.halloween #footer-info a,
body.halloween #footer-bottom a,
body.halloween #footer-bottom .et-social-icon a {
	color: var(--ha-bar-dim);
}
body.halloween #footer-bottom a:hover,
body.halloween #footer-widgets a:hover {
	color: var(--ha-on-bar);
}

/* --- 3. Divi : sections, modules, blog -------------------------------------------------------------------------- */
/* Palettes sombres : les fonds clairs et les textes sombres posés par Divi laissent la place à la palette (pages ordinaires : blog, pages de l'extension...).
   Les pages construites avec le Builder sont traitées plus bas : leur contenu garde ses couleurs. */
body.halloween-dark:not(.et_pb_pagebuilder_layout) #page-container,
body.halloween-dark:not(.et_pb_pagebuilder_layout) #et-main-area,
body.halloween-dark:not(.et_pb_pagebuilder_layout) #main-content,
body.halloween-dark:not(.et_pb_pagebuilder_layout) #content-area,
body.halloween-dark:not(.et_pb_pagebuilder_layout) #left-area,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .container,
body.halloween-dark:not(.et_pb_pagebuilder_layout) article,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .entry-content,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_post,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_row,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_column,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_module,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_text,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_section,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et-l,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_builder_inner_content,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_post .post-content {
	background-color: transparent;
	color: inherit;
}
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_text_inner,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_module_header,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_module_header a {
	color: inherit;
}
/* ... sauf sur les pages construites avec le Builder (accueil, pages de présentation) : leurs sections portent leurs propres fonds (blanc, photos, dégradés) et
   leurs propres couleurs de texte (aubergine, gris), posés avec !important. Les assombrir rendrait des textes invisibles : le CONTENU de ces pages reste clair
   (variables de la palette « os », voir 0.), l'en-tête et le pied de page prennent la palette sombre. */
body.halloween-dark.et_pb_pagebuilder_layout #main-content {
	color-scheme: light;
	background-color: var(--ha-bg);
	color: var(--ha-text);
}
body.halloween-dark.et_pb_pagebuilder_layout #main-content .btn-close,
body.halloween-dark.et_pb_pagebuilder_layout #main-content .accordion-button::after {
	filter: none;
}
/* Blocs « carte » du Builder : parchemin en palette claire, panneau en palette sombre */
body.halloween .et_pb_blurb,
body.halloween .et_pb_pricing_table,
body.halloween .et_pb_toggle,
body.halloween .et_pb_tab,
body.halloween .et_pb_promo,
body.halloween .et_pb_contact_form_container,
body.halloween .et_pb_login,
body.halloween .et_pb_newsletter {
	border-color: var(--ha-line);
}
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_blurb,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_pricing_table,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_toggle,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_tab,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_tabs_controls li,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_promo,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_contact_form_container,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_login,
body.halloween-dark:not(.et_pb_pagebuilder_layout) .et_pb_newsletter {
	background-color: var(--ha-bg2);
	color: var(--ha-text);
}
/* sections sombres du Builder (fond choisi dans le module) : les titres gardent le texte clair */
body.halloween .et_pb_bg_layout_dark h1,
body.halloween .et_pb_bg_layout_dark h2,
body.halloween .et_pb_bg_layout_dark h3,
body.halloween .et_pb_bg_layout_dark h4,
body.halloween .et_pb_bg_layout_dark h5,
body.halloween .et_pb_bg_layout_dark h6,
body.halloween .et_pb_bg_layout_dark .et_pb_module_header,
body.halloween .et_pb_bg_layout_dark strong {
	color: #fff;
}
body.halloween .et_pb_toggle_title,
body.halloween .et_pb_tabs_controls li a {
	color: var(--ha-head) !important;
}
body.halloween .et_pb_tabs_controls li.et_pb_tab_active {
	background: var(--ha-bg3);
	box-shadow: inset 0 3px 0 var(--ha-acc);
}
/* Articles (blog, recherche, archives) : fiches à bord supérieur d'accent */
body.halloween .et_pb_post,
body.halloween .et_pb_widget,
body.halloween #sidebar .et_pb_widget,
body.halloween.search article.post,
body.halloween.archive article.post {
	border: 1px solid var(--ha-line);
	border-top: 3px solid var(--ha-acc);
	border-radius: 6px;
	background: var(--ha-bg2);
	padding: 1em;
}
body.halloween .post-meta,
body.halloween .post-meta a,
body.halloween #left-area .post-meta a,
body.halloween .et_pb_post .post-meta {
	color: var(--ha-dim);
}
body.halloween #left-area .post-meta a:hover {
	color: var(--ha-link2);
}
body.halloween .pagination a,
body.halloween .wp-pagenavi a,
body.halloween .page-numbers {
	background: var(--ha-bg2) !important;
	color: var(--ha-text) !important;
	border: 1px solid var(--ha-line) !important;
	border-radius: 4px;
}
body.halloween .page-numbers.current,
body.halloween .pagination a:hover,
body.halloween.search .pagination a,
body.halloween.archive .pagination a {
	background: var(--ha-acc) !important;
	color: var(--ha-on-acc) !important;
	border-color: var(--ha-acc) !important;
}
body.halloween #main-content .container::before,
body.halloween #sidebar::before {
	background: none;
	border: 0;
	display: none;
}
body.halloween .et_pb_scroll_top,
body.halloween .et_pb_scroll_top.et-pb-icon {
	background: var(--ha-acc);
	color: var(--ha-on-acc);
	border-radius: 4px;
}

/* --- 4. Boutons Divi + tout bouton générique ---------------------------------------------------------------------- */
body.halloween .et_pb_button,
body.halloween .et_pb_promo_button,
body.halloween .et_pb_more_button,
body.halloween a.button,
body.halloween button.button,
body.halloween .wp-block-button__link,
body.halloween input[type="submit"],
body.halloween input[type="button"],
body.halloween input[type="reset"],
body.halloween .btn-scope,
body.halloween .mepr-submit,
body.halloween .mepr-btn {
	background: var(--ha-acc) !important;
	color: var(--ha-on-acc) !important;
	border: 1px solid var(--ha-acc) !important;
	border-radius: 4px !important;
	font-weight: 600;
	letter-spacing: .01em;
	text-shadow: none;
	box-shadow: none;
	transition: background .15s, border-color .15s;
}
body.halloween .et_pb_button:hover,
body.halloween .et_pb_promo_button:hover,
body.halloween .et_pb_more_button:hover,
body.halloween a.button:hover,
body.halloween button.button:hover,
body.halloween .wp-block-button__link:hover,
body.halloween input[type="submit"]:hover,
body.halloween input[type="button"]:hover,
body.halloween input[type="reset"]:hover,
body.halloween .btn-scope:hover,
body.halloween .mepr-submit:hover,
body.halloween .mepr-btn:hover {
	background: var(--ha-acc2) !important;
	border-color: var(--ha-acc2) !important;
	color: var(--ha-on-acc) !important;
	transform: none;
}
/* boutons des modules du Builder : leur CSS (« body #page-container .et_pb_section .et_pb_cta_0 ... .et_pb_button { color: ... !important } ») est plus spécifique que le
   nôtre ; deux identifiants (#page-container + :not(#ha)) l'emportent quel que soit le nombre de classes, et fond, texte et bord changent ensemble */
body.halloween #page-container .et_pb_button:not(#ha),
body.halloween #page-container .et_pb_promo_button:not(#ha),
body.halloween #page-container .et_pb_more_button:not(#ha) {
	background: var(--ha-acc) !important;
	color: var(--ha-on-acc) !important;
	border: 1px solid var(--ha-acc) !important;
	border-radius: 4px !important;
}
body.halloween #page-container .et_pb_button:not(#ha):hover,
body.halloween #page-container .et_pb_promo_button:not(#ha):hover,
body.halloween #page-container .et_pb_more_button:not(#ha):hover {
	background: var(--ha-acc2) !important;
	border-color: var(--ha-acc2) !important;
	color: var(--ha-on-acc) !important;
}
body.halloween .btn-scope-secondary {
	background: var(--ha-bar) !important;
	color: var(--ha-on-bar) !important;
	border: 1px solid var(--ha-bar) !important;
	border-radius: 4px !important;
}
body.halloween input[type="submit"],
body.halloween input[type="button"],
body.halloween input[type="reset"],
body.halloween button.button,
body.halloween a.button,
body.halloween .btn-scope,
body.halloween .btn-scope-secondary,
body.halloween .mepr-submit,
body.halloween .mepr-btn {
	min-height: 44px;
}
body.halloween .et_pb_button::after {
	color: inherit;
}

/* --- 5. Formulaires --------------------------------------------------------------------------------------------- */
body.halloween input[type="text"],
body.halloween input[type="email"],
body.halloween input[type="password"],
body.halloween input[type="number"],
body.halloween input[type="search"],
body.halloween input[type="tel"],
body.halloween input[type="url"],
body.halloween input[type="date"],
body.halloween input[type="time"],
body.halloween input.text,
body.halloween input.title,
body.halloween select,
body.halloween textarea,
body.halloween .form-control,
body.halloween .form-select,
body.halloween .input-group-text {
	background-color: var(--ha-bg2) !important;
	color: var(--ha-text) !important;
	border: 1px solid var(--ha-line) !important;
	border-radius: 4px !important;
	caret-color: var(--ha-acc);
	min-height: 44px;
}
body.halloween textarea,
body.halloween textarea.form-control {
	min-height: 0;
}
body.halloween .input-group-text {
	background-color: var(--ha-bg3) !important;
}
body.halloween input:focus,
body.halloween select:focus,
body.halloween textarea:focus,
body.halloween .form-control:focus,
body.halloween .form-select:focus {
	border-color: var(--ha-acc) !important;
	outline: 0;
	box-shadow: 0 0 0 3px rgba(var(--ha-acc-rgb), .28);
}
body.halloween ::placeholder,
body.halloween .form-control::placeholder {
	color: var(--ha-dim) !important;
	opacity: 1;
}
body.halloween option,
body.halloween optgroup {
	background: var(--ha-bg2);
	color: var(--ha-text);
}
body.halloween input[type="checkbox"],
body.halloween input[type="radio"],
body.halloween .form-check-input {
	accent-color: var(--ha-acc);
}
body.halloween .form-check-input {
	background-color: var(--ha-bg2);
	border-color: var(--ha-line);
}
body.halloween .form-check-input:checked {
	background-color: var(--ha-acc);
	border-color: var(--ha-acc);
}
body.halloween input:disabled,
body.halloween select:disabled,
body.halloween textarea:disabled,
body.halloween .form-control:disabled {
	background-color: var(--ha-bg3) !important;
	color: var(--ha-dim) !important;
	border-style: dashed !important;
}
body.halloween .mp_wrapper,
body.halloween .mepr-form,
body.halloween .mepr_price_cell,
body.halloween #mepr-account-nav,
body.halloween .mepr-account-row {
	background: transparent;
	color: var(--ha-text);
}
body.halloween .mp-form-row.mepr_bold.mepr_price {
	background: var(--ha-bar);
	border: 1px solid var(--ha-bar);
	border-bottom: 3px solid var(--ha-acc);
	border-radius: 6px;
	color: var(--ha-on-bar);
	box-shadow: none;
}
body.halloween #mepr-account-nav .mepr-nav-item a {
	color: var(--ha-text);
}
body.halloween #mepr-account-nav .mepr-active-nav-tab a {
	color: var(--ha-link);
	border-bottom: 3px solid var(--ha-acc);
}
/* MemberPress : le style de la couche de confort (style.css) utilise déjà --ux-brand ; le texte sur le bouton suit la palette */
body.halloween .mp_wrapper input[type="submit"],
body.halloween .mp_wrapper .mepr-submit,
body.halloween .mp_wrapper .mepr-share-button {
	color: var(--ha-on-acc);
}

/* --- 6. Composants Bootstrap ------------------------------------------------------------------------------------ */
body.halloween .btn {
	--bs-btn-border-radius: 4px;
	--bs-btn-focus-shadow-rgb: var(--ha-acc-rgb);
	border-radius: 4px;
	font-weight: 600;
	min-height: 44px;
	padding-top: .5rem;
	padding-bottom: .5rem;
}
body.halloween .btn-sm {
	min-height: 38px;
	padding-top: .35rem;
	padding-bottom: .35rem;
}
/* boutons pleins : couleur d'accent de la palette */
body.halloween .btn-primary,
body.halloween .btn-dark,
body.halloween .btn-success {
	--bs-btn-color: var(--ha-on-acc);
	--bs-btn-bg: var(--ha-acc);
	--bs-btn-border-color: var(--ha-acc);
	--bs-btn-hover-color: var(--ha-on-acc);
	--bs-btn-hover-bg: var(--ha-acc2);
	--bs-btn-hover-border-color: var(--ha-acc2);
	--bs-btn-active-color: var(--ha-on-acc);
	--bs-btn-active-bg: var(--ha-acc2);
	--bs-btn-active-border-color: var(--ha-acc2);
	--bs-btn-disabled-color: var(--ha-on-acc);
	--bs-btn-disabled-bg: var(--ha-acc);
	--bs-btn-disabled-border-color: var(--ha-acc);
}
/* contours : trait de la palette (accent au survol) */
body.halloween .btn-outline-primary,
body.halloween .btn-outline-dark,
body.halloween .btn-outline-secondary,
body.halloween .btn-outline-success {
	--bs-btn-color: var(--ha-head);
	--bs-btn-bg: transparent;
	--bs-btn-border-color: var(--ha-line);
	--bs-btn-hover-color: var(--ha-on-acc);
	--bs-btn-hover-bg: var(--ha-acc);
	--bs-btn-hover-border-color: var(--ha-acc);
	--bs-btn-active-color: var(--ha-on-acc);
	--bs-btn-active-bg: var(--ha-acc2);
	--bs-btn-active-border-color: var(--ha-acc2);
	--bs-btn-disabled-color: var(--ha-dim);
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: var(--ha-soft);
}
/* boutons secondaires : barre violette */
body.halloween .btn-secondary,
body.halloween .btn-light,
body.halloween .btn-info {
	--bs-btn-color: var(--ha-on-bar);
	--bs-btn-bg: var(--ha-bar);
	--bs-btn-border-color: var(--ha-line);
	--bs-btn-hover-color: var(--ha-on-bar);
	--bs-btn-hover-bg: var(--ha-bar2);
	--bs-btn-hover-border-color: var(--ha-acc);
	--bs-btn-active-color: var(--ha-on-bar);
	--bs-btn-active-bg: var(--ha-bar2);
	--bs-btn-active-border-color: var(--ha-acc);
	--bs-btn-disabled-color: var(--ha-bar-dim);
	--bs-btn-disabled-bg: var(--ha-bar);
	--bs-btn-disabled-border-color: var(--ha-soft);
}
body.halloween .btn-warning {
	--bs-btn-color: var(--ha-on-warn);
	--bs-btn-bg: var(--ha-warn-fill);
	--bs-btn-border-color: var(--ha-warn-fill);
	--bs-btn-hover-color: var(--ha-on-warn);
	--bs-btn-hover-bg: var(--ha-warn-fill);
	--bs-btn-hover-border-color: var(--ha-text);
	--bs-btn-active-color: var(--ha-on-warn);
	--bs-btn-active-bg: var(--ha-warn-fill);
}
body.halloween .btn-danger,
body.halloween .btn-outline-danger {
	--bs-btn-color: var(--ha-bad);
	--bs-btn-bg: transparent;
	--bs-btn-border-color: var(--ha-bad);
	--bs-btn-hover-color: var(--ha-bg);
	--bs-btn-hover-bg: var(--ha-bad);
	--bs-btn-hover-border-color: var(--ha-bad);
	--bs-btn-active-color: var(--ha-bg);
	--bs-btn-active-bg: var(--ha-bad);
}
body.halloween .btn-link {
	--bs-btn-color: var(--ha-link);
	--bs-btn-hover-color: var(--ha-link2);
	--bs-btn-bg: transparent;
	--bs-btn-border-color: transparent;
	--bs-btn-hover-bg: transparent;
	--bs-btn-hover-border-color: transparent;
	text-decoration: underline;
}
body.halloween-dark .btn-close {
	filter: invert(1) grayscale(1) brightness(1.4);
}
/* cartes, listes, volets, modales : parchemin (panneau en palette sombre) à bord fin, coins de 10 px */
body.halloween .card,
body.halloween .list-group,
body.halloween .list-group-item,
body.halloween .modal-content,
body.halloween .offcanvas,
body.halloween .dropdown-menu,
body.halloween .popover,
body.halloween .toast,
body.halloween .accordion-item {
	--bs-card-bg: var(--ha-bg2);
	--bs-card-cap-bg: var(--ha-bg3);
	--bs-card-border-color: var(--ha-line);
	--bs-card-color: var(--ha-text);
	--bs-list-group-bg: var(--ha-bg2);
	--bs-list-group-color: var(--ha-text);
	--bs-list-group-border-color: var(--ha-soft);
	--bs-list-group-action-hover-bg: var(--ha-bg3);
	--bs-list-group-action-hover-color: var(--ha-head);
	--bs-accordion-bg: var(--ha-bg2);
	--bs-accordion-color: var(--ha-text);
	--bs-accordion-border-color: var(--ha-line);
	--bs-accordion-btn-bg: var(--ha-bg3);
	--bs-accordion-btn-color: var(--ha-head);
	--bs-accordion-active-bg: var(--ha-bg3);
	--bs-accordion-active-color: var(--ha-head);
	--bs-accordion-btn-focus-box-shadow: 0 0 0 3px rgba(var(--ha-acc-rgb), .28);
	--bs-modal-bg: var(--ha-bg2);
	--bs-modal-color: var(--ha-text);
	--bs-modal-border-color: var(--ha-line);
	--bs-offcanvas-bg: var(--ha-bg2);
	--bs-offcanvas-color: var(--ha-text);
	--bs-offcanvas-border-color: var(--ha-line);
	--bs-dropdown-bg: var(--ha-bg2);
	--bs-dropdown-color: var(--ha-text);
	--bs-dropdown-link-color: var(--ha-text);
	--bs-dropdown-link-hover-bg: var(--ha-bg3);
	--bs-dropdown-link-hover-color: var(--ha-head);
	--bs-dropdown-border-color: var(--ha-line);
}
body.halloween .card {
	border: 1px solid var(--ha-line);
	border-radius: 6px;
	box-shadow: 0 1px 0 var(--ha-soft);
}
body.halloween .list-group-item.active {
	background: var(--ha-acc);
	border-color: var(--ha-acc);
	color: var(--ha-on-acc);
}
body.halloween .card-header,
body.halloween .modal-header,
body.halloween .offcanvas-header,
body.halloween .accordion-button {
	background: var(--ha-bg3);
	color: var(--ha-head);
	border-color: var(--ha-line);
	font-weight: 700;
}
body.halloween .accordion-button:not(.collapsed) {
	box-shadow: inset 4px 0 0 var(--ha-acc);
}
body.halloween-dark .accordion-button::after {
	filter: invert(1) brightness(1.4);
}
body.halloween .card-footer,
body.halloween .modal-footer,
body.halloween .offcanvas-footer {
	background: var(--ha-bg2);
	border-color: var(--ha-soft);
}
body.halloween .modal-content,
body.halloween .offcanvas {
	border: 1px solid var(--ha-line);
	box-shadow: 0 18px 40px -16px var(--ha-shadow);
}
body.halloween .modal-backdrop,
body.halloween .offcanvas-backdrop {
	--bs-backdrop-bg: #000;
	--bs-backdrop-opacity: .6;
}
body.halloween .nav-tabs,
body.halloween .nav-pills {
	--bs-nav-tabs-border-color: var(--ha-line);
	--bs-nav-tabs-link-active-bg: var(--ha-bg2);
	--bs-nav-tabs-link-active-color: var(--ha-head);
	--bs-nav-tabs-link-active-border-color: var(--ha-line) var(--ha-line) var(--ha-bg2);
	--bs-nav-link-color: var(--ha-link);
	--bs-nav-link-hover-color: var(--ha-link2);
	--bs-nav-pills-link-active-bg: var(--ha-acc);
	--bs-nav-pills-link-active-color: var(--ha-on-acc);
}
body.halloween .nav-tabs .nav-link.active {
	box-shadow: inset 0 3px 0 var(--ha-acc);
}
/* tableaux : en-tête violet, filet d'accent dessous */
body.halloween .table {
	--bs-table-color: var(--ha-text);
	--bs-table-bg: transparent;
	--bs-table-border-color: var(--ha-soft);
	--bs-table-striped-color: var(--ha-text);
	--bs-table-striped-bg: rgba(var(--ha-text-rgb), .045);
	--bs-table-hover-color: var(--ha-head);
	--bs-table-hover-bg: rgba(var(--ha-acc-rgb), .08);
	--bs-table-active-bg: rgba(var(--ha-acc-rgb), .14);
	color: var(--ha-text);
}
body.halloween table th,
body.halloween .table > thead th,
body.halloween .table-dark,
body.halloween .table-dark > :not(caption) > * > * {
	background-color: var(--ha-bar) !important;
	color: var(--ha-on-bar) !important;
	border-color: var(--ha-bar2) !important;
	border-bottom: 2px solid var(--ha-acc) !important;
	font-weight: 700;
}
body.halloween .table > tbody > tr > th,
body.halloween table.dataTable > tbody > tr > th {
	border-bottom-width: 1px !important;
}
body.halloween .table-secondary,
body.halloween .table-secondary > :not(caption) > * > * {
	--bs-table-bg: var(--ha-bg3);
	--bs-table-color: var(--ha-text);
	background-color: var(--ha-bg3);
	color: var(--ha-text);
	border-color: var(--ha-soft);
}
body.halloween td {
	border-color: var(--ha-soft);
}
/* pastilles : repères verts (ou orange en palette sorcière et os) */
body.halloween .badge {
	background-color: var(--ha-tag) !important;
	color: var(--ha-on-tag) !important;
	border-radius: 3px;
	font-weight: 700;
	letter-spacing: .02em;
	text-shadow: none;
}
body.halloween .text-bg-light,
body.halloween .bg-light {
	background-color: var(--ha-bg3) !important;
	color: var(--ha-text) !important;
}
body.halloween .text-bg-primary,
body.halloween .bg-primary,
body.halloween .badge-scope,
body.halloween .bg-scope {
	background-color: var(--ha-acc) !important;
	color: var(--ha-on-acc) !important;
}
body.halloween .text-bg-secondary,
body.halloween .bg-secondary,
body.halloween .bg-body-secondary,
body.halloween .bg-body-tertiary {
	background-color: var(--ha-bar) !important;
	color: var(--ha-on-bar) !important;
}
body.halloween .text-bg-warning,
body.halloween .bg-warning {
	background-color: var(--ha-warn-fill) !important;
	color: var(--ha-on-warn) !important;
}
body.halloween .text-bg-danger,
body.halloween .bg-danger {
	background-color: var(--ha-bad) !important;
	color: var(--ha-bg) !important;
}
body.halloween .text-bg-success,
body.halloween .bg-success {
	background-color: var(--ha-ok) !important;
	color: var(--ha-on-ok) !important;
}
body.halloween .bg-white,
body.halloween .bg-body {
	background-color: var(--ha-bg2) !important;
	color: var(--ha-text) !important;
}
body.halloween .bg-dark {
	background-color: var(--ha-bar) !important;
	color: var(--ha-on-bar) !important;
}
body.halloween .text-dark,
body.halloween .text-body {
	color: var(--ha-text) !important;
}
body.halloween .text-primary,
body.halloween .link-primary,
body.halloween .link-primary-color {
	color: var(--ha-link) !important;
}
body.halloween .border,
body.halloween .border-top,
body.halloween .border-bottom,
body.halloween .border-start,
body.halloween .border-end {
	border-color: var(--ha-line) !important;
}
/* alertes : fond teinté, filet de couleur à gauche */
body.halloween .alert {
	--bs-alert-bg: var(--ha-bg2);
	--bs-alert-color: var(--ha-text);
	--bs-alert-border-color: var(--ha-line);
	border-radius: 0 6px 6px 0;
	border: 1px solid var(--ha-line);
	border-left: 5px solid var(--ha-alt);
}
body.halloween .alert-warning {
	--bs-alert-bg: rgba(var(--ha-warn-rgb), .16);
	--bs-alert-color: var(--ha-text);
	border-color: rgba(var(--ha-warn-rgb), .6);
	border-left-color: var(--ha-warn-fill);
}
body.halloween .alert-danger {
	--bs-alert-bg: rgba(var(--ha-bad-rgb), .12);
	--bs-alert-color: var(--ha-text);
	border-color: rgba(var(--ha-bad-rgb), .55);
	border-left-color: var(--ha-bad);
}
body.halloween .alert-success {
	--bs-alert-bg: rgba(var(--ha-ok-rgb), .12);
	--bs-alert-color: var(--ha-text);
	border-color: rgba(var(--ha-ok-rgb), .55);
	border-left-color: var(--ha-ok);
}
body.halloween .alert-info,
body.halloween .alert-secondary,
body.halloween .alert-light {
	--bs-alert-bg: var(--ha-bg2);
	--bs-alert-color: var(--ha-text);
}
body.halloween .alert .alert-heading,
body.halloween .alert h4,
body.halloween .alert h5 {
	color: var(--ha-head);
}
body.halloween .progress {
	--bs-progress-bg: var(--ha-bg3);
	--bs-progress-bar-bg: var(--ha-acc);
	--bs-progress-bar-color: var(--ha-on-acc);
	border: 1px solid var(--ha-soft);
	border-radius: 6px;
}
body.halloween .pagination {
	--bs-pagination-bg: var(--ha-bg2);
	--bs-pagination-color: var(--ha-text);
	--bs-pagination-border-color: var(--ha-line);
	--bs-pagination-hover-bg: var(--ha-bg3);
	--bs-pagination-hover-color: var(--ha-head);
	--bs-pagination-hover-border-color: var(--ha-acc);
	--bs-pagination-focus-bg: var(--ha-bg3);
	--bs-pagination-focus-color: var(--ha-head);
	--bs-pagination-active-bg: var(--ha-acc);
	--bs-pagination-active-color: var(--ha-on-acc);
	--bs-pagination-active-border-color: var(--ha-acc);
	--bs-pagination-disabled-bg: var(--ha-bg3);
	--bs-pagination-disabled-color: var(--ha-dim);
	--bs-pagination-disabled-border-color: var(--ha-soft);
	--bs-pagination-border-radius: 4px;
}
body.halloween .page-link {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
body.halloween .tooltip {
	--bs-tooltip-bg: var(--ha-bar);
	--bs-tooltip-color: var(--ha-on-bar);
}

/* --- 7. DataTables ---------------------------------------------------------------------------------------------- */
body.halloween .dt-container,
body.halloween .dataTables_wrapper {
	--dt-html-background: var(--ha-bg);
	--dt-row-stripe: var(--ha-text-rgb);
	--dt-row-hover: var(--ha-acc-rgb);
	--dt-row-selected: var(--ha-acc-rgb);
	--dt-column-ordering: var(--ha-text-rgb);
	color: var(--ha-text);
}
body.halloween table.dataTable,
body.halloween table.dataTable tbody tr,
body.halloween table.dataTable > tbody > tr > * {
	background-color: transparent;
	color: var(--ha-text);
	border-color: var(--ha-soft);
}
/* DataTables repeint la dernière colonne en #dee2e6 (« table.dataTable.table-bordered td:last-child ») : sur fond sombre cela fait un liseré blanc */
body.halloween table.dataTable.table-bordered th:last-child,
body.halloween table.dataTable.table-bordered td:last-child {
	border-right-color: var(--ha-soft);
}
body.halloween table.dataTable > thead > tr > th,
body.halloween table.dataTable > thead > tr > td {
	border-bottom-color: var(--ha-acc);
}
body.halloween table.dataTable.table-striped > tbody > tr:nth-of-type(odd) > * {
	box-shadow: inset 0 0 0 9999px rgba(var(--ha-text-rgb), .045);
}
body.halloween table.dataTable.table-striped > tbody > tr:hover > * {
	box-shadow: inset 0 0 0 9999px rgba(var(--ha-acc-rgb), .09);
}
body.halloween .dt-length select,
body.halloween .dt-search input,
body.halloween .dataTables_length select,
body.halloween .dataTables_filter input {
	background-color: var(--ha-bg2) !important;
	color: var(--ha-text) !important;
}
body.halloween .dt-info,
body.halloween .dataTables_info,
body.halloween .dt-length label,
body.halloween .dt-search label {
	color: var(--ha-dim);
}
body.halloween table.dataTable > thead .dt-orderable-asc,
body.halloween table.dataTable > thead .dt-orderable-desc,
body.halloween table.dataTable > thead .dt-ordering-asc,
body.halloween table.dataTable > thead .dt-ordering-desc {
	color: var(--ha-on-bar) !important;
}
body.halloween table.dataTable > thead .dt-column-order::before,
body.halloween table.dataTable > thead .dt-column-order::after {
	color: var(--ha-on-bar);
}

/* --- 8. Extension athlete-dashboard ------------------------------------------------------------------------------- */
/* 8.1 variables des composants : séance du jour (.scope-plan), planning (.planningHebdo), cartes (.sc) : un seul accent, celui de la palette */
body.halloween .scope-plan,
body.halloween #sp-root {
	--sp-p: var(--ha-acc);
	--sp-p2: var(--ha-acc2);
	--sp-p3: var(--ha-dim);
	--sp-gold: var(--ha-tag);
	--sp-ink: var(--ha-text);
	--sp-mut: var(--ha-dim);
	--sp-line: var(--ha-soft);
	--sp-ok: var(--ha-ok);
	--sp-blue: var(--ha-acc);
	--sp-blue2: var(--ha-acc2);
	--sp-blue-tint: var(--ha-bg3);
	--sp-fs: 1.0625rem;
	--sp-fs2: .975rem;
	--sp-fs3: .875rem;
}
body.halloween .planningHebdo {
	--pl-p: var(--ha-acc);
	--pl-p2: var(--ha-acc2);
	--pl-p3: var(--ha-dim);
	--pl-ink: var(--ha-text);
	--pl-mut: var(--ha-dim);
	--pl-line: var(--ha-soft);
	--pl-blue: var(--ha-acc);
}
body.halloween .sc {
	--sc-p: var(--ha-acc);
	--sc-p2: var(--ha-acc2);
	--sc-p3: var(--ha-dim);
	--sc-ink: var(--ha-text);
	--sc-mut: var(--ha-dim);
	--sc-line: var(--ha-soft);
	--sc-soft: var(--ha-bg2);
	--sc-tint: var(--ha-bg3);
	--sc-gold: var(--ha-warn);
	--sc-ok: var(--ha-ok);
}
/* 8.2 fonds blancs écrits en dur : panneaux de la palette */
body.halloween .scope-plan .sp-blk,
body.halloween .scope-plan .sp-mbtn,
body.halloween .scope-plan .sp-btn,
body.halloween .scope-plan .sp-lv,
body.halloween .scope-plan .sp-grp button,
body.halloween .scope-plan .sp-formcard .sc-card .sc-panel,
body.halloween .scope-plan.sp-wb .sp-wb-rest,
body.halloween .scope-plan.sp-wb a.sp-wb-btn-o,
body.halloween #sp-root .scope-score-workout .form-select,
body.halloween #sp-root .scope-score-workout .btn-outline-dark,
body.halloween .planningHebdo .pl-row,
body.halloween .planningHebdo .pl-card,
body.halloween .sc-card,
body.halloween .sc-panel,
body.halloween .sc-bd {
	background: var(--ha-bg2);
	color: var(--ha-text);
	border-color: var(--ha-soft);
}
body.halloween .scope-plan .sp-bar {
	background: var(--ha-bg2);
	border-top: 3px solid var(--ha-acc);
	box-shadow: 0 -8px 20px -12px var(--ha-shadow);
}
body.halloween .scope-plan .sp-seg,
body.halloween .scope-score-workout .sw-seg,
body.halloween .scope-scores .sc-seg {
	background: var(--ha-bg3);
	border: 1px solid var(--ha-soft);
	border-radius: 6px;
}
body.halloween .scope-plan .sp-seg button,
body.halloween .scope-score-workout .sw-seg button,
body.halloween .scope-scores .sc-seg button {
	border-radius: 5px;
	color: var(--ha-dim);
	font-weight: 700;
}
/* 8.2b teintes violettes et fonds clairs de l'extension : panneaux neutres, survols */
body.halloween .planningHebdo .pl-row,
body.halloween .planningHebdo .pl-box,
body.halloween .planningHebdo .pl-opts button,
body.halloween .planningHebdo .pl-ol,
body.halloween .sc-tog,
body.halloween .sc-why-panel,
body.halloween .sc-opt,
body.halloween .sc .scaling-filter-chips .btn,
body.halloween .sc .btn-outline-secondary,
body.halloween .sc-legacy .btn-light,
body.halloween .scope-readiness-score-circle,
body.halloween .scope-readiness-summary,
body.halloween .scope-plan .sp-keys,
body.halloween .scope-plan .sp-more.sp-info,
body.halloween .scope-plan .sp-formcard .sc-card,
body.halloween .scope-plan .sc-more,
body.halloween .sc-more,
body.halloween .sc-card--bm .sc-more {
	background: var(--ha-bg2);
	color: var(--ha-text);
	border-color: var(--ha-soft);
}
/* « Voir plus » du tableau des scores : un lien-bouton sans fond (comme dans l'extension) */
body.halloween .scope-scores .sc-more {
	background: transparent;
	border-color: transparent;
}
body.halloween .sc-legacy .card-body.bg-light {
	background: var(--ha-bg2) !important;
}
body.halloween .scope-plan .sp-keys {
	border-left: 4px solid var(--ha-acc);
}
body.halloween .scope-plan .sp-more.sp-info {
	border-color: var(--ha-line);
}
body.halloween .scope-plan .sp-info > .sp-in {
	border-top-color: var(--ha-soft);
}
body.halloween .planningHebdo .pl-rh:hover,
body.halloween .planningHebdo .pl-bh:hover,
body.halloween .planningHebdo .pl-ps span,
body.halloween .planningHebdo .pl-tag.opt,
body.halloween .planningHebdo .pl-ct .pl-blk,
body.halloween .scope-plan .sp-dur,
body.halloween .scope-plan .sp-chip.sp-gray,
body.halloween .scope-plan .sp-sub-more > .sp-in > .sp-more > .sp-mbtn,
body.halloween .sc-card--bm > button.sc-head:hover,
body.halloween .sc-tog:hover,
body.halloween .sc .btn-outline-secondary:hover,
body.halloween .sc .scaling-filter-chips .btn:hover {
	background: var(--ha-bg3);
	color: var(--ha-head);
	border-color: var(--ha-soft);
}
/* 8.2c réussite, avertissement (jaune), erreur */
body.halloween .planningHebdo .pl-tag.team,
body.halloween .scope-plan .sp-tag,
body.halloween .sc-tag--ok,
body.halloween .sc .alert-success,
body.halloween .sc.alert-success {
	background: rgba(var(--ha-ok-rgb), .12);
	color: var(--ha-ok);
	border-color: rgba(var(--ha-ok-rgb), .55);
}
body.halloween .planningHebdo .pl-tag.bm,
body.halloween .planningHebdo .pl-star,
body.halloween .scope-plan .sp-chip,
body.halloween .scope-plan .sp-alert,
body.halloween .scope-plan .sp-more.sp-base,
body.halloween .sc-tag--todo,
body.halloween .sc-card--warn > .sc-head,
body.halloween .sc-card--warn > .sc-body,
body.halloween .sc-card--bm > .sc-head,
body.halloween .sc-panel--warn,
body.halloween .sc .alert-warning,
body.halloween .sc.alert-warning {
	background: rgba(var(--ha-warn-rgb), .16);
	color: var(--ha-warn);
	border-color: rgba(var(--ha-warn-rgb), .65);
}
body.halloween .sc-card--warn,
body.halloween .sc-card--bm,
body.halloween .sc-card--warn > .sc-body,
body.halloween .sc-card--bm .sc-tog {
	border-color: rgba(var(--ha-warn-rgb), .65);
}
body.halloween .scope-plan .sp-base > .sp-mbtn,
body.halloween .scope-plan .sp-base > .sp-in,
body.halloween .scope-plan .sp-base .sp-bs {
	background: transparent;
	color: var(--ha-warn);
	border-color: rgba(var(--ha-warn-rgb), .65);
}
body.halloween .scope-plan .sp-base > .sp-mbtn:before {
	background: var(--ha-warn-fill);
	color: var(--ha-on-warn);
}
body.halloween .scope-plan .sp-base > .sp-mbtn:after {
	color: var(--ha-warn);
}
body.halloween .sc-panel--bad,
body.halloween .sc .alert-danger,
body.halloween .sc.alert-danger {
	background: rgba(var(--ha-bad-rgb), .1);
	color: var(--ha-bad);
	border-color: rgba(var(--ha-bad-rgb), .55);
}
body.halloween .sc-ico--warn,
body.halloween .sc-ico--bm {
	background: var(--ha-warn-fill);
	color: var(--ha-on-warn);
}
body.halloween .sc .form-control,
body.halloween .sc .form-select {
	background-color: var(--ha-bg2) !important;
	color: var(--ha-text) !important;
}
body.halloween .sc-adv .advice-result,
body.halloween .sc-calc .scaling-load-result,
body.halloween .sc-kg {
	color: var(--ha-link);
}
body.halloween .sc.sc-bd {
	background: rgba(var(--ha-acc-rgb), .1);
	border: 1px solid var(--ha-acc);
	border-radius: 4px;
	color: var(--ha-head);
}
/* 8.2d textes d'accent : l'extension écrit ses titres, liens et puces avec la même variable que ses boutons pleins (--sp-p, --pl-p, --sc-p...).
   Le TEXTE d'accent prend la couleur de lien de la palette (plus claire que le fond des boutons pleins : AA partout). */
body.halloween .planningHebdo .pl-link,
body.halloween .planningHebdo .pl-bt,
body.halloween .planningHebdo .pl-bh,
body.halloween .planningHebdo .pl-bb .pl-st,
body.halloween .planningHebdo .pl-list ul.pl-it > li::before,
body.halloween .planningHebdo .pl-bb ul.pl-it > li::before,
body.halloween .sc .btn-link,
body.halloween .sc-why,
body.halloween .sc-opt-t,
body.halloween .sc .scaling-criteria-group .btn,
body.halloween .sc .scaling-benchmarks summary,
body.halloween .sc .input-group > .input-group-text,
body.halloween .sc-tag,
body.halloween .scope-readiness-summary a.scope-readiness-link,
body.halloween .scope-plan .sp-small a,
body.halloween .scope-plan .sp-in a,
body.halloween .scope-plan .sp-keys a,
body.halloween .scope-plan .sp-h,
body.halloween .scope-plan .sp-mv::before,
body.halloween .scope-plan .sp-kh,
body.halloween .scope-plan ul.sp-bl > li::before,
body.halloween .scope-plan .sp-mbtn::after,
body.halloween .scope-score-workout b.sw-h,
body.halloween .scope-plan.sp-wb .sp-wb-rest-t,
body.halloween .scope-plan.sp-wb .sp-wb-login-t {
	color: var(--ha-link);
}
body.halloween .scope-readiness-summary a.scope-readiness-link:hover {
	color: var(--ha-link2);
}
/* les mêmes, quand l'extension impose sa couleur avec !important */
body.halloween .sc .text-primary,
body.halloween .sc-opt .scaling-criteria-badge,
body.halloween .scope-plan a.vp-yt-type,
body.halloween .scope-plan.sp-wb a.sp-wb-btn-o {
	color: var(--ha-link) !important;
}
body.halloween .scope-plan .sp-step::before {
	color: var(--ha-on-tag);
}
/* tableau des scores du formulaire de séance : même en-tête violet que les autres tableaux */
body.halloween #sp-root .scope-score-workout table.dataTable > thead > tr > th {
	background: var(--ha-bar);
	color: var(--ha-on-bar);
	border-bottom: 3px solid var(--ha-acc);
}
/* 8.3 éléments pleins (fond = couleur d'accent de la palette) : le texte devient celui qui contraste (brun foncé, vert très foncé ou blanc) */
body.halloween .scope-plan .sp-seg button.on,
body.halloween .scope-plan .sp-grp button.on,
body.halloween .scope-plan .sp-lv.on,
body.halloween .scope-plan .sp-btn:active,
body.halloween .scope-plan .sp-bar-btn,
body.halloween .scope-plan .sp-info > .sp-mbtn::before,
body.halloween #sp-root .scope-score-workout input[type="submit"].btn,
body.halloween #sp-root .scope-score-workout .btn-dark:active,
body.halloween #sp-root .scope-score-workout .btn-outline-dark:active,
body.halloween #sp-root .scope-score-workout .pagination .active > .page-link,
body.halloween .scope-plan.sp-wb a.sp-wb-btn,
body.halloween .planningHebdo .pl-no,
body.halloween .planningHebdo .pl-opts button.on,
body.halloween .planningHebdo .pl-r1:checked ~ .pl-opts .pl-ol1,
body.halloween .planningHebdo .pl-r2:checked ~ .pl-opts .pl-ol2,
body.halloween .sc-ico,
body.halloween .sc-num,
body.halloween .sc .btn-primary,
body.halloween .sc .btn-dark,
body.halloween .sc .btn-primary:hover,
body.halloween .sc .btn-dark:hover,
body.halloween .sc .scaling-filter-chips .btn.active,
body.halloween .sc .scaling-criteria-group .btn.active,
body.halloween .scope-readiness-pill,
body.halloween .scope-readiness-toggle,
body.halloween .scope-readiness-submit,
body.halloween .scope-scores .sc-chip.on,
body.halloween .sc-legacy > .card-header {
	color: var(--ha-on-acc) !important;
	-webkit-text-fill-color: var(--ha-on-acc);
	text-shadow: none;
}
body.halloween .scope-plan .sp-seg.sm button.on,
body.halloween .scope-score-workout .sw-seg button.on,
body.halloween .scope-scores .sc-seg button.on {
	background: var(--ha-acc);
	color: var(--ha-on-acc);
	box-shadow: none;
}
/* repères numérotés : le numéro de chaque exercice est une pastille ronde de couleur « repère » */
body.halloween .scope-plan .sp-num {
	background: var(--ha-tag);
	color: var(--ha-on-tag);
	border-radius: 4px;
	font-weight: 800;
}
body.halloween .scope-plan .sp-blk.done .sp-num,
body.halloween .scope-plan .sp-done {
	background: var(--ha-ok);
	color: var(--ha-on-ok);
}
body.halloween .scope-plan .sp-blk.done .sp-done {
	background: var(--ha-dim);
	color: var(--ha-bg2);
}
/* 8.4 bannière de la séance du jour : fiche violette à filet d'accent (la photo et les décors viennent en 12.11) */
body.halloween .scope-plan .sp-hero {
	background: linear-gradient(135deg, var(--ha-bar), var(--ha-bar2));
	border: 1px solid var(--ha-line);
	border-left: 6px solid var(--ha-acc);
	border-radius: 10px;
	color: var(--ha-on-bar);
}
body.halloween .scope-plan .sp-h1,
body.halloween .scope-plan .sp-hero * {
	color: var(--ha-on-bar);
}
body.halloween .scope-plan .sp-blk,
body.halloween .sc-card {
	border-radius: 8px;
}
body.halloween .scope-plan .sp-blk > .sp-bh,
body.halloween .scope-plan .sp-bh {
	background: transparent;
}
body.halloween .scope-plan .sp-title,
body.halloween .scope-plan .sp-t {
	color: var(--ha-head);
	font-weight: 700;
}
body.halloween .scope-plan .sp-note,
body.halloween .scope-plan .sp-small,
body.halloween .scope-plan .sp-sub {
	color: var(--ha-dim);
}
body.halloween .scope-plan .sp-link,
body.halloween .sc a {
	color: var(--ha-link);
}
/* 8.4b affinage du 17/10/2026 de l'extension : onglets « Ma séance solo | Cours collectif » soulignés (plus de pastille pleine) ; l'onglet actif prend la
   couleur de lien de la palette et un soulignement d'accent (la règle 8.3 lui donnait le texte des boutons pleins : illisible sur la page) */
body.halloween .scope-plan #sp-mode.sp-seg {
	background: none;
	border: 0;
	border-bottom: 1px solid var(--ha-soft);
	border-radius: 0;
}
body.halloween .scope-plan #sp-mode.sp-seg button {
	border-radius: 0;
	color: var(--ha-dim);
}
body.halloween .scope-plan #sp-mode.sp-seg button.on {
	background: none;
	box-shadow: none;
	color: var(--ha-link) !important;
	-webkit-text-fill-color: var(--ha-link);
	border-bottom-color: var(--ha-acc);
}
/* choix de l'option dans la carte d'en-tête : pastille claire sur le violet de la bannière */
body.halloween .scope-plan .sp-hero .sp-seg[id="sp-opt"] button.on,
body.halloween .scope-plan .sp-hero .sp-seg[id="sp-sub"] button.on {
	background: var(--ha-acc);
	color: var(--ha-on-acc) !important;
	-webkit-text-fill-color: var(--ha-on-acc);
}
/* étiquette du thème de la séance dans la bannière (« Deload », « Team WOD »…, 17/10/2026) : pastille « repère » à texte foncé (la règle .sp-hero * lui donnait le texte clair) */
body.halloween .scope-plan .sp-hero .sp-hero-tag {
	background: var(--ha-tag);
	color: var(--ha-on-tag);
	-webkit-text-fill-color: var(--ha-on-tag);
}
/* cours spécifiques : grille des cours (.sp-grp), le cours choisi est plein */
body.halloween .scope-plan .sp-grp button.on {
	background: var(--ha-acc);
	border-color: var(--ha-acc);
	color: var(--ha-on-acc) !important;
	-webkit-text-fill-color: var(--ha-on-acc);
}
/* « Détails et lien avec le cours » : ligne de texte à chevron */
body.halloween .scope-plan .sp-info > .sp-mbtn {
	background: transparent;
	color: var(--ha-link);
}

/* 8.4c gamification (carte « Mon niveau », [athlete_dashboard_gamification]) : l'extension écrit quelques fonds en blanc (#fff) ; ici ils prennent le panneau de la palette.
   --gam-c est la couleur du niveau (choisie par le thème de gamification, pas par ce thème) : en palette sombre le TEXTE qui la porte est éclairci pour rester lisible. */
body.halloween .scope-gam-top {
	background: linear-gradient(135deg, color-mix(in srgb, var(--gam-c) 22%, var(--ha-bg2)), var(--ha-bg2) 70%);
}
body.halloween .scope-gam-badge {
	box-shadow: 0 0 0 4px var(--ha-bg2), 0 0 0 6px color-mix(in srgb, var(--gam-c) 60%, var(--ha-bg2));
}
body.halloween .scope-gam-badge--sm {
	box-shadow: 0 0 0 2px var(--ha-bg2), 0 0 0 3px color-mix(in srgb, var(--gam-c) 60%, var(--ha-bg2));
}
body.halloween .scope-gam-tabs button.on {
	background: var(--ha-bg2);
	color: var(--ha-link);
	box-shadow: 0 0 0 1px var(--ha-line);
}
body.halloween .scope-gam-m {
	background: var(--ha-bg2);
}
body.halloween .scope-gam-m.is-done {
	border-color: color-mix(in srgb, var(--gam-c) 60%, var(--ha-bg2));
	background: color-mix(in srgb, var(--gam-c) 16%, var(--ha-bg2));
}
body.halloween .scope-gam-ladder li.is-now {
	background: color-mix(in srgb, var(--gam-c) 18%, var(--ha-bg2));
	border-color: color-mix(in srgb, var(--gam-c) 60%, var(--ha-bg2));
}
body.halloween-dark .scope-gam-name,
body.halloween-dark .scope-gam-stat.is-on i,
body.halloween-dark .scope-gam-msgroup-t i,
body.halloween-dark .scope-gam-log li > i,
body.halloween-dark .scope-gam-log-p {
	color: color-mix(in srgb, var(--gam-c) 55%, var(--ha-head));
}
body.halloween-light .scope-gam-name,
body.halloween-light .scope-gam-stat.is-on i,
body.halloween-light .scope-gam-msgroup-t i,
body.halloween-light .scope-gam-log li > i,
body.halloween-light .scope-gam-log-p {
	color: color-mix(in srgb, var(--gam-c) 62%, var(--ha-head));
}

/* 8.5 page des scores : puces, pastilles, surlignage, champs */
body.halloween .scope-scores .sc-search input {
	background: var(--ha-bg2) !important;
	color: var(--ha-text) !important;
	border-radius: 4px !important;
}
body.halloween .scope-scores .sc-chip {
	background: var(--ha-bg2);
	color: var(--ha-text);
	border-color: var(--ha-line);
	border-radius: 4px;
}
body.halloween .scope-scores .sc-chip:hover {
	background: var(--ha-bg3);
}
body.halloween .scope-scores .sc-chip.on {
	background: var(--ha-acc);
	border-color: var(--ha-acc);
}
body.halloween .scope-scores .sc-cat-select.is-set {
	border-color: var(--ha-acc) !important;
	color: var(--ha-head) !important;
}
body.halloween .scope-scores .sc-desc-t,
body.halloween .scope-scores .sc-count {
	color: var(--ha-dim);
}
body.halloween .scope-scores .sc-more,
body.halloween .scope-scores .sc-reset {
	color: var(--ha-link);
}
body.halloween .scope-pill {
	border-radius: 4px;
}
body.halloween .scope-pill.scope-pill--var {
	background-color: var(--ha-bg3) !important;
	border-color: var(--ha-line);
	color: var(--ha-text) !important;
	-webkit-text-fill-color: var(--ha-text);
}
body.halloween .scope-pill.scope-pill--best {
	background-color: var(--ha-warn-fill) !important;
	color: var(--ha-on-warn) !important;
	-webkit-text-fill-color: var(--ha-on-warn);
}
body.halloween .scope-pill.scope-pill--me {
	background-color: var(--ha-acc) !important;
	color: var(--ha-on-acc) !important;
	-webkit-text-fill-color: var(--ha-on-acc);
}
body.halloween .scope-scores mark.sc-hl {
	background-color: var(--ha-tag) !important;
	color: var(--ha-on-tag) !important;
	-webkit-text-fill-color: var(--ha-on-tag);
	border-radius: 3px;
}
body.halloween .scope-bottom-sheet {
	background: var(--ha-bg2);
	border-top: 3px solid var(--ha-acc);
	box-shadow: 0 -10px 28px -14px var(--ha-shadow);
}
body.halloween .scope-bottom-sheet::before {
	background: var(--ha-line);
}
body.halloween .scope-delta-up { color: var(--ha-ok); }
body.halloween .scope-delta-down { color: var(--ha-bad); }
body.halloween table.scopeLeaderboard tr.scope-me > td {
	background-color: rgba(var(--ha-acc-rgb), .12) !important;
	color: var(--ha-head) !important;
}
body.halloween .scope-my-level > th,
body.halloween .scope-my-level > td {
	background-color: transparent !important;
	box-shadow: inset 0 0 0 9999px rgba(var(--ha-acc-rgb), .14) !important;
	color: var(--ha-head) !important;
}

/* --- 9. CSS propre au site SCOPE (barres repliables, tuiles, accordéons, pages produit) ------------------------------- */
body.halloween .container-scope .title-bar,
body.halloween .planningHebdo .title-bar,
body.halloween .container-programme .title-bar,
body.halloween .container-scope .accordion .accordion-button,
body.halloween .container-scope .card-accordion .accordion-button,
body.halloween .container-scope .accordion-button,
body.halloween .scope-score-workout .accordion-button,
body.halloween .planningHebdo .accordion .accordion-button,
body.halloween .container-programme .accordion .accordion-button,
body.halloween .container-scope .modal-header,
body.halloween .container-scope .card-header,
body.halloween .planningHebdo .card-header {
	background: var(--ha-bar);
	color: var(--ha-on-bar);
	border-color: var(--ha-bar2);
}
body.halloween .container-scope .accordion .accordion-button.collapsed,
body.halloween .container-scope .card-accordion .accordion-button.collapsed,
body.halloween .container-programme .accordion .accordion-button.collapsed,
body.halloween .planningHebdo .accordion .accordion-button.collapsed,
body.halloween .scope-score-workout .accordion-button.collapsed,
body.halloween .accordion .scope-score-workout .accordion-button.collapsed {
	background: var(--ha-bar);
	color: var(--ha-on-bar);
}
body.halloween .container-scope .title-bar.disabled,
body.halloween .title-bar.disabled {
	background: var(--ha-bg3);
	color: var(--ha-dim);
}
body.halloween .container-scope .title-bar.active,
body.halloween .planningHebdo .title-bar.active,
body.halloween .container-programme .title-bar.active,
body.halloween .active-accordion-highlight .accordion-button {
	background: var(--ha-acc);
	color: var(--ha-on-acc);
}
body.halloween .active-accordion-highlight {
	border: 3px solid var(--ha-acc) !important;
	box-shadow: 0 6px 16px -10px var(--ha-shadow);
}
body.halloween .scope-score-workout .title-bar {
	background: var(--ha-bg3);
	color: var(--ha-head);
}
body.halloween .scope-score-workout .title-bar.active {
	background: var(--ha-tag);
	color: var(--ha-on-tag);
}
body.halloween .container-scope .title-bar:focus-visible,
body.halloween .container-programme .title-bar:focus-visible,
body.halloween .planningHebdo .title-bar:focus-visible {
	outline: 3px solid var(--ha-tag);
	outline-offset: 2px;
}
body.halloween .bg-card-program,
body.halloween .accordion-item,
body.halloween .planning-card-common,
body.halloween .planning-card-common .list-group-item,
body.halloween .cardGymnastics li.list-group-item,
body.halloween .alertWorkoutGenerator,
body.halloween .alert-intensity {
	background: var(--ha-bg2);
	color: var(--ha-text);
	border-color: var(--ha-soft);
}
body.halloween .planning-grid .card,
body.halloween .dropdown-scope-planning .planning-card:hover {
	border-color: var(--ha-acc);
}
body.halloween .planning-grid::-webkit-scrollbar-thumb {
	background: var(--ha-acc);
}
body.halloween .container-scope ul.list-group li,
body.halloween .container-scope ul.list-group li h6 {
	color: var(--ha-text);
}
/* ancienne grille de tuiles de l'accueil */
body.halloween .bs-glyphicons li,
body.halloween .bs-glyphicons li.owner,
body.halloween .bs-glyphicons li.account,
body.halloween .bs-glyphicons li.programs,
body.halloween .bs-glyphicons li.planning,
body.halloween .bs-glyphicons li.seances,
body.halloween .bs-glyphicons li.specifiques,
body.halloween .bs-glyphicons li.tools,
body.halloween .bs-glyphicons li.bonus {
	background-color: var(--ha-bar);
	color: var(--ha-on-bar);
	border: 1px solid var(--ha-line);
	border-style: solid;
	border-radius: 6px;
}
body.halloween .bs-glyphicons li a,
body.halloween .bs-glyphicons li i,
body.halloween .bs-glyphicons li.bonus a,
body.halloween .bs-glyphicons li.programs a,
body.halloween .bs-glyphicons li.account a,
body.halloween .bs-glyphicons li.seances a,
body.halloween .bs-glyphicons li.bonus i,
body.halloween .bs-glyphicons li.programs i,
body.halloween .bs-glyphicons li.account i,
body.halloween .bs-glyphicons li.seances i {
	color: var(--ha-on-bar);
}
body.halloween .bs-glyphicons li:hover {
	background-color: var(--ha-acc);
	border-color: var(--ha-acc);
}
body.halloween .bs-glyphicons li:hover a,
body.halloween .bs-glyphicons li:hover i {
	color: var(--ha-on-acc);
}
/* tableau de bord : outils en barre violette à icône « repère », compte en panneaux, communauté en texte */
body.halloween .scope-home-tools li {
	background-color: var(--ha-bar);
	border: 1px solid var(--ha-line);
	border-bottom: 3px solid var(--ha-acc);
	border-radius: 8px;
}
body.halloween .scope-home-tools li a,
body.halloween .scope-home-tools .glyphicon-class {
	color: var(--ha-on-bar);
}
body.halloween .scope-home-tools li i.bi {
	color: var(--ha-tag);
}
body.halloween .scope-home-account li {
	background-color: var(--ha-bg2);
	border: 1px solid var(--ha-soft);
	border-radius: 6px;
}
body.halloween .scope-home-account li a,
body.halloween .scope-home-account .glyphicon-class {
	color: var(--ha-text);
}
body.halloween .scope-home-account li i.bi {
	color: var(--ha-acc);
}
/* « Ma salle » (17/10/2026, rangée réservée aux coachs) : mêmes tuiles que « Mon compte » (le CSS de l'extension les écrit en gris clair) */
body.halloween .scope-home-section ul.scope-home-gym li {
	background-color: var(--ha-bg2);
	border: 1px solid var(--ha-soft);
	border-radius: 6px;
}
body.halloween .scope-home-section ul.scope-home-gym li a,
body.halloween .scope-home-section ul.scope-home-gym .glyphicon-class {
	color: var(--ha-text);
}
body.halloween .scope-home-section ul.scope-home-gym li i.bi {
	color: var(--ha-acc);
}
body.halloween .scope-home-section ul.scope-home-gym li:hover {
	border-color: var(--ha-acc);
}
body.halloween .scope-home-community li a,
body.halloween .scope-home-community li i.bi,
body.halloween .scope-home-section-label {
	color: var(--ha-dim);
}
body.halloween .scope-home-tools li:hover,
body.halloween .scope-home-account li:hover {
	border-color: var(--ha-acc);
}
body.halloween .evaluation_scope a,
body.halloween .button-linktree {
	background: var(--ha-acc);
	color: var(--ha-on-acc) !important;
	border: 1px solid var(--ha-acc);
	border-radius: 4px;
}
body.halloween #allWorkouts button,
body.halloween #listResults button {
	background: var(--ha-bg2);
	color: var(--ha-text);
	border: 1px solid var(--ha-soft);
}
body.halloween .scopePrograms .btn,
body.halloween .scopePrograms .card {
	border-radius: 6px;
}
body.halloween .scopePrograms .prog-price {
	color: var(--ha-link);
}
body.halloween .scopePrograms .prog-actions .btn-dark {
	color: var(--ha-on-acc) !important;
}
body.halloween .scopePrograms .scope-help-btn,
body.halloween .scopePrograms .scope-owned-go {
	color: var(--ha-on-acc) !important;
}
body.halloween .scope-legal-page a {
	color: var(--ha-link);
}

/* 9b. pages SCOPE sans Divi (FAQ, aide, contact, accueil...) : elles lisent les jetons --scope-* (scope-themes.css). Seul ajout : la règle « small » ci-dessus (texte
   secondaire en !important) ne doit pas griser le compteur d'une puce choisie (texte sur fond d'accent) */
body.halloween .scope-faq .sf-chip small {
	color: inherit !important;
	opacity: 1;
}
/* pastille « PR » (record) : le doré de l'extension avec du texte blanc n'atteint que 3,3:1 */
body.halloween .scope-pill.scope-pill--pr {
	background-color: var(--ha-warn-fill) !important;
	color: var(--ha-on-warn) !important;
	-webkit-text-fill-color: var(--ha-on-warn);
}

/* --- 10. Palettes sombres : fonds clairs écrits en dur dans le CSS du site ----------------------------------------------- */
body.halloween-dark .scopePrograms .program-card .card,
body.halloween-dark .scopePrograms .scope-owned,
body.halloween-dark .scopePrograms a.scope-owned-item,
body.halloween-dark .scopePrograms .scope-empty,
body.halloween-dark .scopePrograms .prog-meta span,
body.halloween-dark .container-mobility .mobility-options-intro,
body.halloween-dark .container-mobility .scopePrograms .card,
body.halloween-dark .container-scope .list-group-item-action,
body.halloween-dark .gym-preferences .gym-history-item,
body.halloween-dark .gym-preferences .gym-pref-item,
body.halloween-dark .scope-callout,
body.halloween-dark #sa-review-contest,
body.halloween-dark #sa-review-contest .list-group-item,
body.halloween-dark .linktree .et_pb_post {
	background: var(--ha-bg2) !important;
	color: var(--ha-text);
	border-color: var(--ha-soft);
}
body.halloween-dark .scopePrograms .scope-owned {
	border-color: rgba(var(--ha-warn-rgb), .6);
}
body.halloween-dark .scopePrograms .prog-media,
body.halloween-dark .scopePrograms .program-card .card-header,
body.halloween-dark .container-mobility .scopePrograms .card-text,
body.halloween-dark .container-scope .list-group-item-action > div:not(.text-center) > i:not([class]),
body.halloween-dark .gym-preferences .gym-pref-header,
body.halloween-dark .scope-attestation,
body.halloween-dark #sa-review-contest .lead {
	background: var(--ha-bg3) !important;
	color: var(--ha-text);
	border-color: var(--ha-soft);
}
body.halloween-dark .scopePrograms .scope-owned-title,
body.halloween-dark .scopePrograms a.scope-owned-item,
body.halloween-dark .scopePrograms .prog-meta span,
body.halloween-dark .scopePrograms .prog-pitch,
body.halloween-dark .scopePrograms .prog-list,
body.halloween-dark .container-mobility .scopePrograms .card-title,
body.halloween-dark .scope-legal-page {
	color: var(--ha-text);
}
body.halloween-dark .scopePrograms .scope-owned-meta,
body.halloween-dark .scopePrograms .scope-section-sub,
body.halloween-dark .gym-preferences .gym-history-meta,
body.halloween-dark .gym-preferences .gym-history-date,
body.halloween-dark .gym-preferences .gym-pref-label,
body.halloween-dark .scope-legal-page .scope-updated {
	color: var(--ha-dim);
}
body.halloween-dark .scopePrograms .program-card .card-header,
body.halloween-dark .scopePrograms .prog-title {
	border-color: var(--ha-soft) !important;
	color: var(--ha-head);
}
body.halloween-dark .scopePrograms .program-card .card-header .prog-title::after {
	background: var(--ha-tag);
}
body.halloween-dark .scope-legal-page {
	--scope-ink: var(--ha-text);
	--scope-muted: var(--ha-dim);
	--scope-line: var(--ha-soft);
	--scope-warning-bg: rgba(var(--ha-warn-rgb), .14);
	--scope-danger-bg: rgba(var(--ha-bad-rgb), .12);
	--scope-info-bg: var(--ha-bg3);
}
body.halloween-dark .mp_wrapper,
body.halloween-dark .mepr-signup-form {
	color: var(--ha-text);
}
body.halloween-dark .mepr-price-box,
body.halloween-dark .mp-form-row .mepr-password-strength,
body.halloween-dark .mp-password-strength-display {
	background: var(--ha-bg3) !important;
	color: var(--ha-text) !important;
}
body.halloween-dark .mepr-stripe-card-element,
body.halloween-dark .StripeElement {
	background: var(--ha-bg2);
	border: 1px solid var(--ha-line);
	border-radius: 4px;
	padding: 10px 12px;
}
/* vidéos, cartes de paiement et cadres intégrés gardent leurs couleurs */
body.halloween-dark iframe {
	color-scheme: normal;
}

/* --- 11. Accessibilité et impression ----------------------------------------------------------------------------- */
body.halloween :focus-visible {
	outline: 3px solid var(--ha-alt);
	outline-offset: 2px;
}
body.halloween .btn:focus-visible,
body.halloween .form-control:focus-visible {
	outline-offset: 2px;
}
/* impression et PDF : retour à un document lisible sur papier (les PDF utilisent print.css / print-coach.css) */
@media print {
	body.halloween,
	body.halloween * {
		background: #fff !important;
		color: #000 !important;
		text-shadow: none !important;
		box-shadow: none !important;
		-webkit-text-fill-color: #000 !important;
	}
	body.halloween img,
	body.halloween #logo {
		filter: none !important;
		mix-blend-mode: normal !important;
	}
}


/* --- 12. Décors : photos, brume, chauves-souris, toiles, cimetière, citrouilles ------------------------------------------------ */
/* Les SVG de assets/img sont des illustrations ORIGINALES. Les masques (web-corner, bat, spider, ghost, pumpkin-mask, divider, graveyard) sont noirs sur
   transparent : ils servent de masque à un aplat de la couleur de la palette. La citrouille lumineuse et la lune sont multicolores. Les photos viennent de
   l'équipe (assets/img/photos/web/). Réglages : Personnaliser > Ambiance d'Halloween (décors marqués, discrets ou aucun ; photo ; animations ; saison).
   Aucun décor ne capte de clic ; aucune animation sur les zones de lecture ; tout est coupé si le système demande moins de mouvement. */

/* 12.0 photo d'ambiance : variables (une version légère pour téléphone, une plus large pour ordinateur) */
/* « Au hasard » : body.halloween-photo-random + attribut data-ha-photo sur <html> (posé par le serveur, puis retiré au hasard par un petit script du <head>) ;
   sans attribut (JavaScript absent et serveur sans réglage) : le rameur */
body.halloween-photo-random { --ha-ph-sm: url("img/photos/web/halloween-rameur-640.webp"); --ha-ph-md: url("img/photos/web/halloween-rameur-1000.webp"); --ha-ph-lg: url("img/photos/web/halloween-rameur-1600.webp"); --ha-ph-pos: 50% 30%; }
html[data-ha-photo="rameur"] body.halloween-photo-random { --ha-ph-sm: url("img/photos/web/halloween-rameur-640.webp"); --ha-ph-md: url("img/photos/web/halloween-rameur-1000.webp"); --ha-ph-lg: url("img/photos/web/halloween-rameur-1600.webp"); --ha-ph-pos: 50% 30%; }
html[data-ha-photo="squat"] body.halloween-photo-random { --ha-ph-sm: url("img/photos/web/halloween-squat-640.webp"); --ha-ph-md: url("img/photos/web/halloween-squat-1000.webp"); --ha-ph-lg: url("img/photos/web/halloween-squat-1000.webp"); --ha-ph-pos: 50% 40%; }
html[data-ha-photo="nage"] body.halloween-photo-random { --ha-ph-sm: url("img/photos/web/halloween-nage-640.webp"); --ha-ph-md: url("img/photos/web/halloween-nage-1000.webp"); --ha-ph-lg: url("img/photos/web/halloween-nage-1000.webp"); --ha-ph-pos: 50% 38%; }
html[data-ha-photo="epaule"] body.halloween-photo-random { --ha-ph-sm: url("img/photos/web/halloween-epaule-640.webp"); --ha-ph-md: url("img/photos/web/halloween-epaule-1000.webp"); --ha-ph-lg: url("img/photos/web/halloween-epaule-1000.webp"); --ha-ph-pos: 50% 42%; }
html[data-ha-photo="sac"] body.halloween-photo-random { --ha-ph-sm: url("img/photos/web/halloween-sac-640.webp"); --ha-ph-md: url("img/photos/web/halloween-sac-1000.webp"); --ha-ph-lg: url("img/photos/web/halloween-sac-1000.webp"); --ha-ph-pos: 50% 30%; }
body.halloween-photo-rameur { --ha-ph-sm: url("img/photos/web/halloween-rameur-640.webp");  --ha-ph-md: url("img/photos/web/halloween-rameur-1000.webp"); --ha-ph-lg: url("img/photos/web/halloween-rameur-1600.webp"); --ha-ph-pos: 50% 30%; }
body.halloween-photo-squat  { --ha-ph-sm: url("img/photos/web/halloween-squat-640.webp");   --ha-ph-md: url("img/photos/web/halloween-squat-1000.webp");  --ha-ph-lg: url("img/photos/web/halloween-squat-1000.webp");  --ha-ph-pos: 50% 40%; }
body.halloween-photo-nage   { --ha-ph-sm: url("img/photos/web/halloween-nage-640.webp");    --ha-ph-md: url("img/photos/web/halloween-nage-1000.webp");   --ha-ph-lg: url("img/photos/web/halloween-nage-1000.webp");   --ha-ph-pos: 50% 38%; }
body.halloween-photo-epaule { --ha-ph-sm: url("img/photos/web/halloween-epaule-640.webp");  --ha-ph-md: url("img/photos/web/halloween-epaule-1000.webp"); --ha-ph-lg: url("img/photos/web/halloween-epaule-1000.webp"); --ha-ph-pos: 50% 42%; }
body.halloween-photo-sac    { --ha-ph-sm: url("img/photos/web/halloween-sac-640.webp");     --ha-ph-md: url("img/photos/web/halloween-sac-1000.webp");    --ha-ph-lg: url("img/photos/web/halloween-sac-1000.webp");    --ha-ph-pos: 50% 30%; }
body.halloween {
	--ha-photo: var(--ha-ph-sm);
	--ha-photo-o: .24;
	--ha-fog: 190, 170, 210;
	--ha-web: rgba(var(--ha-text-rgb), .26);
	--ha-bat: var(--ha-text);
}
body.halloween-light {
	--ha-photo-o: .16;
	--ha-fog: 90, 70, 100;
	--ha-web: rgba(var(--ha-text-rgb), .32);
	--ha-bat: var(--ha-bar);
}
@media (min-width: 768px) {
	body.halloween { --ha-photo: var(--ha-ph-md); }
}
@media (min-width: 1500px) {
	body.halloween { --ha-photo: var(--ha-ph-lg); }
}

/* 12.1 photo d'ambiance : une bande en haut de la page, qui s'estompe vers le bas (derrière tout, très discrète) */
body.halloween:not(.halloween-no-photo):not(.halloween-off)::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: min(78vh, 640px);
	z-index: -2;
	pointer-events: none;
	background: var(--ha-photo) var(--ha-ph-pos, 50% 30%) / cover no-repeat;
	opacity: var(--ha-photo-o);
	-webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, .6) 50%, transparent 100%);
	mask-image: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, .6) 50%, transparent 100%);
}
/* 12.2 brume au bas de l'écran + lueur de citrouille (décors « marquée ») */
body.halloween.halloween-art-marked:not(.halloween-off)::after {
	content: "";
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	height: 44vh;
	z-index: -1;
	pointer-events: none;
	background:
		radial-gradient(42% 52% at 0% 100%, rgba(255, 122, 24, .14), transparent 72%),
		radial-gradient(70% 90% at 22% 100%, rgba(var(--ha-fog), .17), transparent 70%),
		radial-gradient(60% 80% at 72% 100%, rgba(var(--ha-fog), .13), transparent 70%),
		radial-gradient(50% 70% at 100% 96%, rgba(var(--ha-fog), .11), transparent 70%);
	background-size: 100% 100%, 190% 100%, 190% 100%, 100% 100%;
	background-repeat: no-repeat;
	animation: ha-fog 80s ease-in-out infinite alternate;
}
body.halloween-light.halloween-art-marked:not(.halloween-off)::after {
	background:
		radial-gradient(42% 52% at 0% 100%, rgba(255, 122, 24, .10), transparent 72%),
		radial-gradient(70% 90% at 22% 100%, rgba(var(--ha-fog), .10), transparent 70%),
		radial-gradient(60% 80% at 72% 100%, rgba(var(--ha-fog), .08), transparent 70%);
	background-size: 100% 100%, 190% 100%, 190% 100%;
	background-repeat: no-repeat;
}
@keyframes ha-fog {
	from { background-position: 0 0, 0 0, 100% 0, 0 0; }
	to { background-position: 0 0, 100% 0, 0 0, 0 0; }
}
/* 12.3 trois chauves-souris traversent l'écran, derrière le contenu (« marquée ») */
body.halloween.halloween-art-marked:not(.halloween-off) #et-main-area::before {
	content: "";
	position: fixed;
	left: 0;
	right: 0;
	top: 70px;
	height: 190px;
	z-index: -1;
	pointer-events: none;
	background: var(--ha-bat);
	opacity: .5;
	-webkit-mask: url("img/bat.svg") no-repeat, url("img/bat.svg") no-repeat, url("img/bat.svg") no-repeat;
	mask: url("img/bat.svg") no-repeat, url("img/bat.svg") no-repeat, url("img/bat.svg") no-repeat;
	-webkit-mask-size: 48px auto, 30px auto, 38px auto;
	mask-size: 48px auto, 30px auto, 38px auto;
	-webkit-mask-position: -10% 40%, -35% 8%, -60% 72%;
	mask-position: -10% 40%, -35% 8%, -60% 72%;
	animation: ha-bats 52s linear infinite;
}
@keyframes ha-bats {
	from { -webkit-mask-position: -10% 40%, -35% 8%, -60% 72%; mask-position: -10% 40%, -35% 8%, -60% 72%; }
	to { -webkit-mask-position: 112% 18%, 140% 62%, 170% 4%; mask-position: 112% 18%, 140% 62%, 170% 4%; }
}
/* 12.4 toiles d'araignée dans les coins du contenu (« marquée » et « discrète ») ; pas sur l'accueil bâti avec le Builder */
body.halloween:not(.halloween-art-none):not(.halloween-off) #main-content {
	position: relative;
}
body.halloween:not(.halloween-art-none):not(.halloween-off) #main-content::before,
body.halloween:not(.halloween-art-none):not(.halloween-off) #main-content::after {
	content: "";
	position: absolute;
	top: 0;
	width: min(30vw, 150px);
	aspect-ratio: 1;
	z-index: -1;
	pointer-events: none;
	background: var(--ha-web);
	-webkit-mask: url("img/web-corner.svg") top left / 100% 100% no-repeat;
	mask: url("img/web-corner.svg") top left / 100% 100% no-repeat;
}
body.halloween:not(.halloween-art-none):not(.halloween-off) #main-content::before {
	left: 0;
}
body.halloween:not(.halloween-art-none):not(.halloween-off) #main-content::after {
	right: 0;
	transform: scaleX(-1);
}
body.halloween.halloween-art-discreet #main-content::after {
	display: none;
}
@supports not (aspect-ratio: 1) {
	body.halloween:not(.halloween-art-none) #main-content::before,
	body.halloween:not(.halloween-art-none) #main-content::after {
		height: min(30vw, 150px);
	}
}
/* 12.4b une araignée descend de son fil sous l'en-tête (« marquée ») */
body.halloween.halloween-art-marked:not(.halloween-off) #main-header::after {
	content: "";
	position: absolute;
	top: 100%;
	right: clamp(60px, 12vw, 170px);
	width: 28px;
	height: 54px;
	z-index: 1;
	pointer-events: none;
	background: var(--ha-text);
	opacity: .55;
	-webkit-mask: url("img/spider.svg") center top / contain no-repeat;
	mask: url("img/spider.svg") center top / contain no-repeat;
	transform-origin: 50% 0;
	animation: ha-swing 5.5s ease-in-out infinite alternate;
}
@keyframes ha-swing {
	from { transform: rotate(-5deg); }
	to { transform: rotate(5deg); }
}
/* 12.5 titre de la page : une citrouille devant, un filet qui s'estompe dessous */
body.halloween:not(.halloween-art-none):not(.halloween-off) h1.entry-title::before,
body.halloween:not(.halloween-art-none):not(.halloween-off) h1.main_title::before {
	content: "";
	display: inline-block;
	width: .82em;
	height: .74em;
	margin-right: .34em;
	vertical-align: -.04em;
	background: var(--ha-acc);
	-webkit-mask: url("img/pumpkin-mask.svg") center / contain no-repeat;
	mask: url("img/pumpkin-mask.svg") center / contain no-repeat;
}
body.halloween:not(.halloween-art-none):not(.halloween-off) h1.entry-title::after,
body.halloween:not(.halloween-art-none):not(.halloween-off) h1.main_title::after {
	content: "";
	display: block;
	width: min(220px, 52%);
	height: 3px;
	margin-top: .28em;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--ha-acc), transparent);
}
/* 12.6 listes du contenu : une chauve-souris pour puce (listes sans classe : texte des modules Divi et des pages) */
body.halloween:not(.halloween-art-none):not(.halloween-off) .et_pb_text_inner ul:not([class]),
body.halloween:not(.halloween-art-none):not(.halloween-off) .entry-content > ul:not([class]) {
	list-style: none;
	padding-left: 0;
}
body.halloween:not(.halloween-art-none):not(.halloween-off) .et_pb_text_inner ul:not([class]) > li,
body.halloween:not(.halloween-art-none):not(.halloween-off) .entry-content > ul:not([class]) > li {
	position: relative;
	padding-left: 1.7em;
}
body.halloween:not(.halloween-art-none):not(.halloween-off) .et_pb_text_inner ul:not([class]) > li::before,
body.halloween:not(.halloween-art-none):not(.halloween-off) .entry-content > ul:not([class]) > li::before {
	content: "";
	position: absolute;
	left: .05em;
	top: .5em;
	width: 1.1em;
	height: .55em;
	background: var(--ha-acc);
	-webkit-mask: url("img/bat.svg") center / contain no-repeat;
	mask: url("img/bat.svg") center / contain no-repeat;
}
/* 12.7 séparateur : un filet interrompu par une petite citrouille (« marquée ») */
body.halloween.halloween-art-marked:not(.halloween-off) hr:not([class]) {
	height: 26px;
	margin: 1.8rem 0;
	border: 0;
	opacity: 1;
	position: relative;
	background: linear-gradient(var(--ha-line), var(--ha-line)) left center / calc(50% - 30px) 1px no-repeat, linear-gradient(var(--ha-line), var(--ha-line)) right center / calc(50% - 30px) 1px no-repeat;
}
body.halloween.halloween-art-marked:not(.halloween-off) hr:not([class])::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 28px;
	height: 25px;
	transform: translate(-50%, -50%);
	background: var(--ha-acc);
	-webkit-mask: url("img/divider.svg") center / contain no-repeat;
	mask: url("img/divider.svg") center / contain no-repeat;
}
/* 12.8 titres de section du texte : une petite chauve-souris devant (« marquée ») */
body.halloween.halloween-art-marked:not(.halloween-off) .et_pb_text_inner h2:not(.et_pb_module_header)::before,
body.halloween.halloween-art-marked:not(.halloween-off) .entry-content > h2::before {
	content: "";
	display: inline-block;
	width: 1.3em;
	height: .66em;
	margin-right: .4em;
	vertical-align: .02em;
	background: var(--ha-acc);
	-webkit-mask: url("img/bat.svg") center / contain no-repeat;
	mask: url("img/bat.svg") center / contain no-repeat;
}
/* 12.9 pied de page : le cimetière se dresse au-dessus de la barre ; lune et citrouilles lumineuses (« marquée ») */
body.halloween.halloween-art-marked:not(.halloween-off) #main-footer {
	position: relative;
	margin-top: 72px;
}
body.halloween.halloween-art-marked:not(.halloween-off) #main-footer::before {
	content: "";
	position: absolute;
	right: 0;
	bottom: 100%;
	left: 0;
	height: 72px;
	z-index: 0;
	pointer-events: none;
	background: var(--ha-bar);
	-webkit-mask: url("img/graveyard.svg") left bottom / auto 100% repeat-x;
	mask: url("img/graveyard.svg") left bottom / auto 100% repeat-x;
}
body.halloween.halloween-art-marked:not(.halloween-off) #main-footer::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 100%;
	left: 0;
	height: 78px;
	z-index: 1;
	pointer-events: none;
	background:
		url("img/moon.svg") right 7% top -22px / 54px 54px no-repeat,
		url("img/pumpkin.svg") left 5% bottom -2px / 52px auto no-repeat,
		url("img/pumpkin.svg") left 11% bottom -4px / 34px auto no-repeat,
		url("img/pumpkin.svg") right 22% bottom -2px / 44px auto no-repeat;
	filter: drop-shadow(0 0 10px rgba(255, 138, 30, .5));
	animation: ha-flame 3.6s ease-in-out infinite alternate;
}
@keyframes ha-flame {
	from { filter: drop-shadow(0 0 7px rgba(255, 138, 30, .42)); }
	to { filter: drop-shadow(0 0 15px rgba(255, 170, 60, .8)); }
}
@media (max-width: 767px) {
	body.halloween.halloween-art-marked:not(.halloween-off) #main-footer { margin-top: 56px; }
	body.halloween.halloween-art-marked:not(.halloween-off) #main-footer::before { height: 56px; }
	body.halloween.halloween-art-marked:not(.halloween-off) #main-footer::after { height: 60px; background-size: 40px 40px, 42px auto, 28px auto, 36px auto; }
}
/* 12.10 un fantôme flotte en bas à droite (grands écrans, « marquée ») */
@media (min-width: 992px) {
	body.halloween.halloween-art-marked:not(.halloween-off) #page-container::before {
		content: "";
		position: fixed;
		right: 22px;
		bottom: 26px;
		width: 54px;
		height: 60px;
		z-index: 0;
		pointer-events: none;
		background: var(--ha-text);
		opacity: .13;
		-webkit-mask: url("img/ghost.svg") center / contain no-repeat;
		mask: url("img/ghost.svg") center / contain no-repeat;
		animation: ha-ghost 9s ease-in-out infinite;
	}
}
@keyframes ha-ghost {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-16px); }
}
/* 12.11 bannière de la séance du jour : photo de l'équipe sous un voile violet, toile en haut à droite, citrouille en bas à droite */
body.halloween .scope-plan .sp-hero {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(105deg, rgba(var(--ha-bar-rgb), .94) 0%, rgba(var(--ha-bar-rgb), .84) 55%, rgba(var(--ha-bar-rgb), .66) 100%),
		var(--ha-photo, none) var(--ha-ph-pos, 50% 30%) / cover no-repeat,
		var(--ha-bar);
}
body.halloween.halloween-no-photo .scope-plan .sp-hero,
body.halloween.halloween-off .scope-plan .sp-hero {
	background: linear-gradient(135deg, var(--ha-bar), var(--ha-bar2));
}
body.halloween .scope-plan .sp-hero > * {
	position: relative;
	z-index: 1;
}
body.halloween.halloween-art-marked:not(.halloween-off) .scope-plan .sp-hero {
	padding-right: 64px;
}
body.halloween.halloween-art-marked:not(.halloween-off) .scope-plan .sp-hero::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 92px;
	height: 92px;
	z-index: 0;
	pointer-events: none;
	background: rgba(var(--ha-on-bar-rgb), .55);
	-webkit-mask: url("img/web-corner.svg") top left / 100% 100% no-repeat;
	mask: url("img/web-corner.svg") top left / 100% 100% no-repeat;
	transform: scaleX(-1);
}
body.halloween.halloween-art-marked:not(.halloween-off) .scope-plan .sp-hero::after {
	content: "";
	position: absolute;
	right: 12px;
	bottom: 12px;
	width: 44px;
	height: 40px;
	z-index: 0;
	pointer-events: none;
	background: url("img/pumpkin.svg") center / contain no-repeat;
	filter: drop-shadow(0 0 9px rgba(255, 138, 30, .55));
	animation: ha-flame 3.6s ease-in-out infinite alternate;
}
/* 12.12 fond photo pour n'importe quelle section ou module Divi : « Avancé > Classe CSS » = ha-photo (texte lisible par-dessus) */
body.halloween .ha-photo {
	background:
		linear-gradient(rgba(var(--ha-bar-rgb), .86), rgba(var(--ha-bar-rgb), .86)),
		var(--ha-photo, none) var(--ha-ph-pos, 50% 30%) / cover no-repeat,
		var(--ha-bar) !important;
	color: var(--ha-on-bar);
}
body.halloween .ha-photo h1,
body.halloween .ha-photo h2,
body.halloween .ha-photo h3,
body.halloween .ha-photo h4,
body.halloween .ha-photo p {
	color: var(--ha-on-bar);
}
/* 12.13 mouvement : tout se fige si l'utilisateur ou le réglage le demande */
body.halloween.halloween-no-motion::after,
body.halloween.halloween-no-motion #et-main-area::before,
body.halloween.halloween-no-motion #main-footer::after,
body.halloween.halloween-no-motion #page-container::before,
body.halloween.halloween-no-motion #main-header::after,
body.halloween.halloween-no-motion .scope-plan .sp-hero::after {
	animation: none !important;
}
body.halloween.halloween-no-motion #et-main-area::before {
	display: none !important;
}
@media (prefers-reduced-motion: reduce) {
	body.halloween::after,
	body.halloween #et-main-area::before,
	body.halloween #main-footer::after,
	body.halloween #page-container::before,
	body.halloween #main-header::after,
	body.halloween .scope-plan .sp-hero::after {
		animation: none !important;
	}
	body.halloween #et-main-area::before {
		display: none !important;
	}
}
/* 12.14 application : l'en-tête et le pied de page du site sont masqués par l'application ; les décors qui en dépendent disparaissent avec eux */
body.halloween.wpappninja #main-footer::before,
body.halloween.wpappninja #main-footer::after {
	display: none;
}
body.halloween.wpappninja #main-footer {
	margin-top: 0;
}
@media print {
	body.halloween::before,
	body.halloween::after,
	body.halloween #et-main-area::before,
	body.halloween #main-content::before,
	body.halloween #main-content::after,
	body.halloween #main-footer::before,
	body.halloween #main-footer::after,
	body.halloween #page-container::before,
	body.halloween #main-header::after,
	body.halloween h1.entry-title::before,
	body.halloween h1.entry-title::after,
	body.halloween .scope-plan .sp-hero::before,
	body.halloween .scope-plan .sp-hero::after {
		display: none !important;
	}
}

/* --- 13. Clins d'œil : volée de chauves-souris, bilan des zombies, page 404 ---------------------------------------------------------- */
/* Message du code Konami, bilan des zombies (cinq clics sur le titre), page 404 : assets/halloween-eggs.js + inc/halloween.php. */
body.halloween #ha-toast {
	position: fixed;
	left: 50%;
	bottom: 84px;
	z-index: 100000;
	width: max-content;
	max-width: min(92vw, 520px);
	padding: 12px 16px;
	transform: translateX(-50%);
	background: var(--ha-bar);
	color: var(--ha-on-bar);
	border: 1px solid var(--ha-line);
	border-left: 6px solid var(--ha-acc);
	border-radius: 10px;
	box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .55);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.4;
}
body.halloween .ha-egg-bat {
	position: fixed;
	z-index: 99999;
	left: -80px;
	width: 56px;
	height: 28px;
	pointer-events: none;
	background: var(--ha-acc);
	-webkit-mask: url("img/bat.svg") center / contain no-repeat;
	mask: url("img/bat.svg") center / contain no-repeat;
	animation: ha-egg-fly 5.5s linear forwards;
}
@keyframes ha-egg-fly {
	0% { transform: translate(0, 0) scale(.8); }
	25% { transform: translate(28vw, -40px) scale(1); }
	50% { transform: translate(56vw, 30px) scale(.9); }
	75% { transform: translate(84vw, -30px) scale(1); }
	100% { transform: translate(112vw, 20px) scale(.8); }
}
body.halloween #ha-panel {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	inset: 0;
	z-index: 100001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	background: rgba(0, 0, 0, .7);
}
body.halloween #ha-panel .ha-panel-box {
	width: min(94vw, 460px);
	padding: 18px 18px 16px;
	background: var(--ha-bg2);
	color: var(--ha-text);
	border: 1px solid var(--ha-line);
	border-top: 6px solid var(--ha-acc);
	border-radius: 12px;
	box-shadow: 0 24px 50px -16px rgba(0, 0, 0, .6);
}
body.halloween #ha-panel h2 {
	margin: 0 0 4px;
	padding: 0;
	font-size: 1.5rem;
	color: var(--ha-head);
}
body.halloween #ha-panel h2::before,
body.halloween #ha-panel h2::after {
	display: none;
}
body.halloween #ha-panel .ha-tag {
	display: inline-block;
	margin-right: .5em;
	padding: 1px 9px;
	background: var(--ha-tag);
	color: var(--ha-on-tag);
	border-radius: 999px;
	font: 800 .9rem sans-serif;
	vertical-align: .1em;
}
body.halloween #ha-panel p {
	margin: 0 0 12px;
	font-size: .95rem;
	color: var(--ha-dim);
}
body.halloween #ha-panel ul {
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
}
body.halloween #ha-panel li {
	display: grid;
	grid-template-columns: 8.5em 1fr 2em;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 5px 0;
	list-style: none;
}
body.halloween #ha-panel li::before {
	display: none;
}
body.halloween #ha-panel .ha-bar {
	height: 12px;
	border: 1px solid var(--ha-line);
	border-radius: 6px;
	background: var(--ha-bg3);
	overflow: hidden;
}
body.halloween #ha-panel .ha-bar i {
	display: block;
	height: 100%;
	background: var(--ha-acc);
}
body.halloween #ha-panel .ha-v {
	text-align: right;
	font: 700 1rem sans-serif;
	color: var(--ha-head);
}
body.halloween #ha-panel .ha-close {
	min-height: 44px;
	padding: .5em 1.2em;
	font-size: 1rem;
	font-weight: 700;
	color: var(--ha-on-acc);
	background: var(--ha-acc);
	border: 1px solid var(--ha-acc);
	border-radius: 8px;
	cursor: pointer;
}
body.halloween #ha-panel .ha-close:hover {
	background: var(--ha-acc2);
	border-color: var(--ha-acc2);
}
body.halloween .ha-term {
	margin: 0 0 24px;
	padding: 16px 18px;
	background: var(--ha-bg2);
	color: var(--ha-text);
	border: 1px solid var(--ha-line);
	border-left: 6px solid var(--ha-acc);
	border-radius: 0 12px 12px 0;
	line-height: 1.7;
}
body.halloween .ha-term p {
	margin: 0;
	padding: 0;
}
body.halloween .ha-term .ha-tag {
	display: inline-block;
	margin-right: .5em;
	padding: 1px 9px;
	background: var(--ha-tag);
	color: var(--ha-on-tag);
	border-radius: 999px;
	font: 800 .9rem sans-serif;
}
@media (max-width: 480px) {
	body.halloween #ha-panel li {
		grid-template-columns: 7.5em 1fr 1.8em;
		gap: 8px;
	}
}
@media (prefers-reduced-motion: reduce) {
	body.halloween .ha-egg-bat {
		display: none;
	}
}
@media print {
	body.halloween #ha-toast,
	body.halloween #ha-panel,
	body.halloween .ha-egg-bat {
		display: none !important;
	}
}

/* >>> COMPLÉMENTS 18/10/2026 (début) >>> */
/* --- Compléments du 18/10/2026 : changements récents de l'extension athlete-dashboard et du CSS du site (dernière section du fichier) ------------------- */

/* B7. pages « programmes » et « mobilité » du site : le texte posé sur la couleur d'accent prend le texte « sur accent » de la palette ; les titres écrits dans la couleur
   d'accent (trop sombre en palette sombre) prennent la couleur de lien ; le bouton « Voir + » (gris #495057 dans le CSS du site) prend le texte de la palette */
body.halloween .container-mobility .mobility-week-title {
	color: var(--ha-on-acc);
}
body.halloween .container-mobility .mobility-section-title,
body.halloween .scopePrograms .scope-section-title--owned h3 {
	color: var(--ha-link);
}
body.halloween .scopePrograms .prog-actions .prog-more {
	color: var(--ha-text);
	border-color: var(--ha-line);
}
body.halloween .scopePrograms .prog-actions .prog-more:hover {
	color: var(--ha-link);
	border-color: var(--ha-acc);
}


/* B9. composants vus sur le site réel le 18/10/2026 (les pages d'après le dernier balayage de l'extension et les pages à style propre) */
/* planning de la semaine : l'extension définit ses variables --pl-* sur .pl-list, .pl-box et .pl-perso (plus précis que .planningHebdo) */
body.halloween .planningHebdo .pl-list,
body.halloween .planningHebdo .pl-box,
body.halloween .planningHebdo .pl-perso {
	--pl-p: var(--ha-acc);
	--pl-p2: var(--ha-acc2);
	--pl-p3: var(--ha-dim);
	--pl-ink: var(--ha-text);
	--pl-mut: var(--ha-dim);
	--pl-line: var(--ha-soft);
	--pl-blue: var(--ha-acc);
}
body.halloween .planningHebdo .pl-list .pl-note {
	color: var(--ha-dim);
}
/* niveaux d'une séance (Rx, Scaled 1...) : le niveau choisi a le texte « sur accent » mais gardait le fond du panneau */
body.halloween .scope-plan .sp-lv.on {
	background: var(--ha-acc);
	border-color: var(--ha-acc);
	color: var(--ha-on-acc) !important;
	-webkit-text-fill-color: var(--ha-on-acc);
}
/* alerte « score de référence de plus d'un an » (.sc-stale) : fond jaune pâle et textes bruns écrits en dur */
body.halloween .sc-stale {
	border-top-color: rgba(var(--ha-warn-rgb), .6);
	background: rgba(var(--ha-warn-rgb), .16);
	color: var(--ha-warn);
}
body.halloween .sc-stale > i,
body.halloween .sc-stale-bd {
	color: var(--ha-warn);
}
body.halloween .sc-stale strong,
body.halloween .sc-stale a,
body.halloween .sc-stale a:hover {
	color: var(--ha-warn);
}
body.halloween .sc-stale--box {
	border-color: rgba(var(--ha-warn-rgb), .6);
}
/* page publique « Séance exemple » : bandeau et boutons d'inscription (fond blanc écrit en dur) */
body.halloween .scope-plan .sp-demo {
	background: var(--ha-bg2);
	border-color: var(--ha-line);
	box-shadow: none;
}
body.halloween .scope-plan .sp-demo-k {
	background: var(--ha-tag);
	color: var(--ha-on-tag);
}
body.halloween .scope-plan .sp-demo-t {
	color: var(--ha-head);
}
body.halloween .scope-plan .sp-cta {
	background: var(--ha-acc);
	border-color: var(--ha-acc);
	color: var(--ha-on-acc) !important;
}
body.halloween .scope-plan .sp-cta.sp-cta-2 {
	background: var(--ha-bg2);
	border-color: var(--ha-acc);
	color: var(--ha-link) !important;
}
/* calculateurs et « Mon analyse » : variables --cc-* de l'extension, cadres blancs et boutons blancs écrits en dur */
body.halloween .container-calculators-erg {
	--cc-p: var(--ha-acc);
	--cc-p2: var(--ha-acc2);
	--cc-gold: var(--ha-tag);
	--cc-ink: var(--ha-text);
	--cc-mut: var(--ha-dim);
	--cc-line: var(--ha-line);
	--cc-soft: var(--ha-bg3);
}
body.halloween .calculator-frame,
body.halloween #calculatorsTabsContent .calculator-frame {
	background: var(--ha-bg2);
	border-color: var(--ha-line);
	color: var(--ha-text);
}
body.halloween .section-frame {
	background: var(--ha-bg3);
	border-color: var(--ha-line);
	color: var(--ha-text);
}
body.halloween #calculatorsTabsContent #dist-content .calculator-frame,
body.halloween #calculatorsTabsContent #percentages-content .calculator-frame,
body.halloween #calculatorsTabsContent #row-content .calculator-frame,
body.halloween #calculatorsTabsContent #bike-content .calculator-frame,
body.halloween #calculatorsTabsContent #equivalency-content .calculator-frame {
	background: var(--ha-bg2);
	box-shadow: none;
}
body.halloween .container-calculators-erg:has(#calculatorsTabsContent > #dist-content) #analysisTabs {
	background: var(--ha-bg3);
}
body.halloween .container-calculators-erg:has(#calculatorsTabsContent > #dist-content) #analysisTabs .nav-link {
	color: var(--ha-link);
}
body.halloween .container-calculators-erg:has(#calculatorsTabsContent > #dist-content) #analysisTabs .nav-link.active {
	background: var(--ha-acc);
	color: var(--ha-on-acc);
}
body.halloween #calculatorsTabsContent #dist-content .calculator-frame > .d-flex h4,
body.halloween #calculatorsTabsContent #percentages-content .calculator-frame > .d-flex h4,
body.halloween #calculatorsTabsContent #row-content .calculator-frame > .d-flex h4,
body.halloween #calculatorsTabsContent #bike-content .calculator-frame > .d-flex h4,
body.halloween #calculatorsTabsContent #equivalency-content .calculator-frame > .d-flex h4,
body.halloween #calculatorsTabsContent #tableConversionResults tbody td,
body.halloween #calculatorsTabsContent #percentages-content .tablePercentages td:last-child,
body.halloween #calculatorsTabsContent #equivalency-content div.collapse-session li span {
	color: var(--ha-link);
}
body.halloween #calculatorsTabsContent #tableConversionResults thead th,
body.halloween #calculatorsTabsContent #percentages-content .tablePercentages thead th,
body.halloween #calculatorsTabsContent #equivalency-content p.p-session .btn-session {
	background: var(--ha-acc);
	color: var(--ha-on-acc);
}
body.halloween #calculatorsTabsContent #equivalency-content p.p-session .btn-session:hover {
	background: var(--ha-acc2);
}
body.halloween #calculatorsTabsContent #percentages-content .tablePercentages tbody tr:first-child > td {
	background: rgba(var(--ha-warn-rgb), .18);
}
body.halloween #calculatorsTabsContent #equivalency-content select.form-control,
body.halloween #calculatorsTabsContent #panelCalcPercentage,
body.halloween #calculatorsTabsContent #formCalcDistCalValue,
body.halloween #calculatorsTabsContent #formCalcEquivalenceWeight,
body.halloween #calculatorsTabsContent #btn-reset-rameur,
body.halloween #calculatorsTabsContent #btn-reset-bike,
body.halloween #calculatorsTabsContent #dist-content .btncalculator,
body.halloween #calculatorsTabsContent #percentages-content .btncalculator,
body.halloween #calculatorsTabsContent #equivalency-content .btncalculator {
	background: var(--ha-bg2);
	color: var(--ha-text);
}
body.halloween #calculatorsTabsContent #dist-content .btncalculator,
body.halloween #calculatorsTabsContent #percentages-content .btncalculator,
body.halloween #calculatorsTabsContent #equivalency-content .btncalculator,
body.halloween #calculatorsTabsContent #btn-reset-rameur,
body.halloween #calculatorsTabsContent #btn-reset-bike {
	color: var(--ha-link);
}
body.halloween #calculatorsTabsContent #dist-content .btncalculator:hover,
body.halloween #calculatorsTabsContent #percentages-content .btncalculator:hover,
body.halloween #calculatorsTabsContent #equivalency-content .btncalculator:hover,
body.halloween #calculatorsTabsContent #dist-content .btncalculator:active,
body.halloween #calculatorsTabsContent #percentages-content .btncalculator:active,
body.halloween #calculatorsTabsContent #equivalency-content .btncalculator:active,
body.halloween #calculatorsTabsContent #btn-reset-rameur:hover,
body.halloween #calculatorsTabsContent #btn-reset-bike:hover {
	background: var(--ha-acc);
	color: var(--ha-on-acc);
}
body.halloween #calculatorsTabsContent #row-content .section-frame .form-control:disabled,
body.halloween #calculatorsTabsContent #bike-content .section-frame .form-control:disabled {
	background: var(--ha-bg3) !important;
	color: var(--ha-dim) !important;
}
/* page « Programmations » (.spg) : variables et fonds écrits en dur dans le style de la page */
body.halloween .spg {
	--spg-brand: var(--ha-acc);
	--spg-accent: var(--ha-tag);
	--spg-ink: var(--ha-head);
	--spg-muted: var(--ha-dim);
	--spg-line: var(--ha-line);
	--spg-soft: var(--ha-bg3);
	background: transparent;
	color: var(--ha-text);
}
body.halloween .spg .spg-hero {
	background: linear-gradient(180deg, var(--ha-bg3), var(--ha-bg2));
}
body.halloween .spg .spg-links a,
body.halloween .spg a.spg-weeklink,
body.halloween .spg .spg-price strong {
	color: var(--ha-link) !important;
}
body.halloween .spg a.spg-btn--accent {
	color: var(--ha-on-tag) !important;
}
body.halloween .spg a.spg-btn--brand {
	color: var(--ha-on-acc) !important;
}
body.halloween .spg a.spg-btn--ghost,
body.halloween .spg .spg-filter label {
	background: var(--ha-bg2);
	border-color: var(--ha-acc);
	color: var(--ha-link) !important;
}
body.halloween .spg .spg-f-input:checked + label {
	background: var(--ha-acc);
	color: var(--ha-on-acc) !important;
}
body.halloween .spg .spg-card,
body.halloween .spg .spg-pt {
	background: var(--ha-bg2);
	border-color: var(--ha-line);
	box-shadow: none;
}
body.halloween .spg .spg-ico {
	background: var(--ha-bg3);
}
body.halloween .spg .spg-ico svg {
	stroke: var(--ha-tag);
}
body.halloween .spg .spg-ticks li::before {
	color: var(--ha-ok);
}
body.halloween .spg .spg-final {
	border-color: var(--ha-acc);
}
/* page « Programmes d'entraînement » (.pc) : mêmes causes */
body.halloween .pc {
	--pc-brand: var(--ha-acc);
	--pc-accent: var(--ha-tag);
	--pc-ink: var(--ha-head);
	--pc-muted: var(--ha-dim);
	--pc-line: var(--ha-line);
	--pc-soft: var(--ha-bg3);
	--pc-green: var(--ha-ok);
	color: var(--ha-text);
}
body.halloween .pc .pc-lead,
body.halloween .pc .pc-pitch {
	color: var(--ha-text);
}
body.halloween .pc .pc-help {
	background: var(--ha-bg3);
	border-color: var(--ha-line);
}
body.halloween .pc .pc-note {
	background: rgba(var(--ha-warn-rgb), .16);
	color: var(--ha-text);
}
body.halloween .pc a.pc-own,
body.halloween .pc .pc-card,
body.halloween .pc button.pc-chip,
body.halloween .pc .pc-none button.pc-reset {
	background: var(--ha-bg2);
}
body.halloween .pc button.pc-chip,
body.halloween .pc .pc-none button.pc-reset {
	color: var(--ha-link);
	border-color: var(--ha-acc);
}
body.halloween .pc button.pc-chip.is-on {
	background: var(--ha-acc);
	color: var(--ha-on-acc);
}
body.halloween .pc a.pc-btn,
body.halloween .pc .pc-own-go,
body.halloween .pc .pc-cta {
	color: var(--ha-on-acc) !important;
}
body.halloween .pc .pc-price strong {
	color: var(--ha-link);
}
body.halloween .pc .pc-foot {
	border-top-color: var(--ha-soft);
}
body.halloween .pc .pc-dur {
	background: var(--ha-bg3);
	color: var(--ha-head);
}
body.halloween .pc .pc-media,
body.halloween .pc .pc-own-img {
	background: var(--ha-bg3);
}


/* carte « legacy » de l'extension (Mon analyse) : l'en-tête sombre (bg-dark) portait le texte « sur accent » des éléments pleins */
body.halloween .sc-legacy > .card-header.bg-dark,
body.halloween .sc-legacy > .card-header.bg-dark * {
	color: var(--ha-on-bar) !important;
	-webkit-text-fill-color: var(--ha-on-bar);
}


/* B8. boutons Bootstrap posés sur un lien (<a class="btn btn-primary">) : la règle générale des liens de ce thème passait devant la couleur du bouton
   (texte clair sur fond clair) ; le bouton reprend la couleur que sa variante définit */
body.halloween a.btn {
	color: var(--bs-btn-color);
}
body.halloween a.btn:hover,
body.halloween a.btn:focus,
body.halloween a.btn:active {
	color: var(--bs-btn-hover-color);
}
body.halloween #mepr-account-nav .mepr-nav-item a.btn {
	color: var(--bs-btn-color);
}
body.halloween #mepr-account-nav .mepr-nav-item a.btn:hover,
body.halloween #mepr-account-nav .mepr-nav-item a.btn:focus {
	color: var(--bs-btn-hover-color);
}


/* B10. application mobile (WPMobile.App) : le CSS de l'application (réglages « couleurs » + app-ui.css) pose un fond blanc et un texte noir sur html, body, .page, .page-content, .posts
   (« .md .page » et « .ios .page » visent le <body> de WordPress, qui porte la classe « page » : 0,2,0 contre 0,1,1 pour « body.<thème> » ; « .page-content » est en !important).
   Sans cette section l'écran de l'application reste blanc sous des cartes sombres et le texte courant (la date du calendrier…) devient noir sur fond sombre. */
html:has(body.halloween) {
	background: transparent;
}
html body.halloween,
html body.halloween.page {
	background-color: var(--ha-bg);
	color: var(--ha-text);
}
body.halloween .view > .page,
body.halloween .view > .page > .page-content,
body.halloween .page-content > .content-block,
body.halloween .page-content > .posts {
	background-color: transparent !important;
	color: var(--ha-text);
}
/* l'<article> du contenu de la page porte aussi la classe « page » (post-123 page type-page) : « .md .page { background:#fff } » de l'application en faisait un grand rectangle blanc
   sur le tableau de bord, Workouts, Mon analyse, Calculateurs, Aide... (pages du Builder exclues : leurs sections gardent leurs propres fonds) */
body.halloween:not(.et_pb_pagebuilder_layout) .view article.page {
	background-color: transparent;
}


/* B11. fenêtre modale des adaptations (.sc-modal, déplacée dans <body> par le script de l'extension : fond blanc écrit en dur) et survols à fond clair écrit en dur.
   Trouvés en simulant le survol de toutes les règles :hover de la page (balayage des contrastes avec l'état « survolé » forcé) */
body.halloween .sc-modal-dialog {
	background: var(--ha-bg2);
	color: var(--ha-text);
	border: 1px solid var(--ha-soft);
}
/* « Objectif », « Adapter »... dans les blocs de séance : l'extension colore le survol en #f8f5f7 (0,6,0) */
body.halloween .scope-plan .sp-body > .sp-more:not(.sp-base) > .sp-mbtn:hover {
	background: var(--ha-bg3);
	color: var(--ha-head);
}
/* pastilles de contexte et de critère des adaptations (page et fenêtre modale) : le fond « panneau » des pastilles (0,4,1) passait devant le fond « actif » de l'extension (0,4,0) :
   texte « sur accent » sur fond sombre (1,1:1), y compris au survol */
body.halloween .sc .scaling-filter-chips .btn.active,
body.halloween .sc .scaling-filter-chips .btn.active:hover,
body.halloween .sc .scaling-criteria-group .btn.active,
body.halloween .sc .scaling-criteria-group .btn.active:hover {
	background: var(--ha-acc);
	border-color: var(--ha-acc);
}
/* lien « Aller au contenu » (visible au clavier) : fond blanc, texte de lien du thème */
body.halloween .scope-skip-link {
	background: var(--ha-bg2);
	color: var(--ha-text);
}


/* B12. calendrier du tableau de bord (FullCalendar 7, thème « classic », feuilles du CDN) : la grille avait un fond blanc (--fc-classic-background: #fff) et des filets / textes gris pour fond clair.
   Les variables du calendrier sont reprises ici : fond TRANSPARENT (la photo d'ambiance et le fond de la page se voient à travers), filets, texte et jour courant aux couleurs de la palette.
   Les pastilles de séances gardent les couleurs de l'extension. */
body.halloween .fullcalendar {
	--fc-classic-background: transparent;
	--fc-classic-faint: rgba(var(--ha-text-rgb), .05);
	--fc-classic-muted: rgba(var(--ha-text-rgb), .10);
	--fc-classic-strong: rgba(var(--ha-text-rgb), .16);
	--fc-classic-foreground: var(--ha-text);
	--fc-classic-faint-foreground: var(--ha-dim);
	--fc-classic-muted-foreground: var(--ha-dim);
	--fc-classic-border: rgba(var(--ha-text-rgb), .28);
	--fc-classic-strong-border: rgba(var(--ha-text-rgb), .45);
	--fc-classic-today: rgba(var(--ha-acc-rgb), .18);
	--fc-classic-highlight: rgba(var(--ha-acc-rgb), .22);
}


/* B13. pages d'inscription MemberPress (/register/...) : le prix (« €29,90 (prix TTC) ») est écrit dans « .mepr_price_cell », DANS la barre de couleur « .mepr_price » ; la règle générale
   « .mepr_price_cell { color: texte du thème } » faisait passer le texte courant sur la barre : texte sombre sur barre sombre dès qu'une palette claire est active (1,01:1 en palette « Os »).
   Le texte du prix reprend la couleur de la barre. Et l'indicateur « Force du mot de passe » (gris sur gris clair de l'extension, 4,3:1) prend les couleurs du thème. */
body.halloween .mp-form-row.mepr_price .mepr_price_cell,
body.halloween .mp-form-row.mepr_price .mepr_price_cell * {
	color: var(--ha-on-bar);
}
body.halloween .mp-password-strength-display {
	background: var(--ha-bg3);
	color: var(--ha-text);
}
/* page « Programmes » dans l'application : message d'achat (.pc-note) : bordure et pastilles numérotées à la couleur d'accent de la palette */
body.halloween .pc .pc-note {
	border-color: var(--ha-acc);
}
body.halloween .pc .pc-note-l li::before {
	background: var(--ha-acc);
	color: var(--ha-on-acc);
}

/* <<< COMPLÉMENTS 18/10/2026 (fin) <<< */
