/* Passages Imaginaires — options d'accessibilité (toutes pages) */
@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@400;500;600;700&display=swap');

/* ── Panneau flottant (responsive, safe-area) ── */
#ab {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right, 0px));
  bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
  z-index: 200;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--vert, #36463d);
  color: var(--creme, #fff4cd);
  border: 2.5px solid var(--sauge, #b6c6aa);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 32px rgba(30, 43, 36, 0.12);
  transition: background 0.35s ease, transform 0.35s ease;
}
#ab:hover {
  background: var(--vert-deep, #1e2b24);
  transform: scale(1.06);
}
#ap {
  position: fixed;
  z-index: 201;
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px));
  width: min(300px, calc(100vw - 1.5rem));
  max-height: min(78vh, 520px);
  overflow: hidden;
  display: none;
  flex-direction: column;
  background: #fff;
  border: 2px solid var(--sauge, #b6c6aa);
  border-radius: var(--r-lg, 22px);
  box-shadow: 0 20px 60px rgba(30, 43, 36, 0.18);
}
#ap.open {
  display: flex;
}
#ap .a11y-body {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 1.25rem;
  flex: 1;
  min-height: 0;
}
.a11y-hd {
  background: var(--vert, #36463d);
  color: var(--creme, #fff4cd);
  padding: 1.1rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}
.a11y-hd h3 {
  font-family: var(--font-b, system-ui, sans-serif);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin: 0;
  color: var(--creme, #fff4cd);
}
.a11y-close {
  background: none;
  border: none;
  color: var(--creme, #fff4cd);
  cursor: pointer;
  font-size: 1.2rem;
  padding: 4px;
  border-radius: 50%;
  transition: background 0.35s ease;
}
.a11y-close:hover {
  background: rgba(255, 244, 205, 0.15);
}
.a11y-group {
  margin-bottom: 1.25rem;
}
.a11y-group:last-of-type {
  margin-bottom: 0;
}
.a11y-group-title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted, #4a6355);
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.ao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--creme-mid, #fdf6d8);
  gap: 0.75rem;
}
.ao:last-child {
  border-bottom: none;
}
.ao-info {
  flex: 1;
  min-width: 0;
}
.ao label {
  font-size: 0.88rem;
  cursor: pointer;
  font-weight: 600;
  color: var(--text, #1e2b24);
  display: block;
}
.ao .ao-desc {
  font-size: 0.74rem;
  color: var(--text-muted, #4a6355);
  margin-top: 1px;
  line-height: 1.4;
}
.as {
  position: relative;
  width: 44px;
  height: 24px;
  flex-shrink: 0;
}
.as input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}
.ast {
  position: absolute;
  inset: 0;
  background: var(--creme-dark, #f0e8b0);
  border-radius: 9999px;
  cursor: pointer;
  transition: background 0.35s ease;
}
.ast::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  background: #fff;
  border-radius: 50%;
  top: 3px;
  left: 3px;
  transition: transform 0.35s ease;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
}
.as input:checked + .ast {
  background: var(--vert, #36463d);
}
.as input:focus-visible + .ast {
  outline: 3px solid var(--sauge-dark, #4a7040);
  outline-offset: 2px;
}
.as input:checked + .ast::after {
  transform: translateX(20px);
}
.a11y-font-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.a11y-font-btn {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: var(--r-sm, 8px);
  border: 2px solid var(--creme-dark, #f0e8b0);
  background: var(--creme-soft, #fffdf0);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: var(--text, #1e2b24);
  transition: border-color 0.35s ease, background 0.35s ease, color 0.35s ease;
  font-family: var(--font-b, system-ui, sans-serif);
}
.a11y-font-btn:hover,
.a11y-font-btn:focus-visible,
.a11y-font-btn.active {
  border-color: var(--vert, #36463d);
  background: var(--vert, #36463d);
  color: var(--creme, #fff4cd);
}
.a11y-spacing {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.a11y-sp-btn {
  flex: 1 1 calc(33.333% - 0.35rem);
  min-width: 5.5rem;
  padding: 0.5rem 0.35rem;
  border-radius: var(--r-sm, 8px);
  border: 2px solid var(--creme-dark, #f0e8b0);
  background: var(--creme-soft, #fffdf0);
  cursor: pointer;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--text, #1e2b24);
  transition: border-color 0.35s ease, background 0.35s ease, color 0.35s ease;
  font-family: var(--font-b, system-ui, sans-serif);
  text-align: center;
}
.a11y-sp-btn:hover,
.a11y-sp-btn:focus-visible,
.a11y-sp-btn.active {
  border-color: var(--vert, #36463d);
  background: var(--vert, #36463d);
  color: var(--creme, #fff4cd);
}
.a11y-reset {
  width: 100%;
  padding: 0.65rem;
  border: 2px solid var(--creme-dark, #f0e8b0);
  border-radius: var(--r-sm, 8px);
  background: none;
  cursor: pointer;
  font-family: var(--font-b, system-ui, sans-serif);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-muted, #4a6355);
  transition: border-color 0.35s ease, color 0.35s ease;
  margin-top: 0.5rem;
}
.a11y-reset:hover,
.a11y-reset:focus-visible {
  border-color: var(--vert, #36463d);
  color: var(--vert, #36463d);
}

/* ── Taille de texte (racine) ── */
html.lt-sm {
  font-size: 19px !important;
}
html.lt-lg {
  font-size: 22px !important;
}
html.lt-xl {
  font-size: 26px !important;
}

/* ── Espacement ── */
body.sp-md {
  letter-spacing: 0.03em;
  word-spacing: 0.1em;
}
body.sp-md p,
body.sp-md li,
body.sp-md .fqa-in {
  line-height: 2.1;
}
body.sp-lg {
  letter-spacing: 0.06em;
  word-spacing: 0.2em;
}
body.sp-lg p,
body.sp-lg li,
body.sp-lg .fqa-in {
  line-height: 2.4;
}

/* ── Réduction des mouvements : ciblé (sans casser #ap / #ab) ── */
body.na main *,
body.na #hd *,
body.na #ft *,
body.na #mm *,
body.na #ck * {
  animation-duration: 0.01ms !important;
  transition-duration: 0.01ms !important;
}
body.na .lc-track {
  animation: none !important;
  transform: none !important;
  width: auto !important;
  max-width: 100%;
  flex-wrap: wrap;
  justify-content: center;
}
body.na .hpt {
  animation: none !important;
  opacity: 0.35;
}
html.a11y-reduce-motion {
  scroll-behavior: auto !important;
}

/* ── Lecture dyslexie (Lexend, lisible) ── */
body.dyslexia,
body.dyslexia h1,
body.dyslexia h2,
body.dyslexia h3,
body.dyslexia h4 {
  font-family: "Lexend", "Segoe UI", system-ui, sans-serif !important;
}

/* ── Liens soulignés ── */
body.underline-links a {
  text-decoration: underline !important;
}

/* ── Curseur agrandi (sauf saisie texte) ── */
body.big-cursor,
body.big-cursor button,
body.big-cursor a,
body.big-cursor [role="button"],
body.big-cursor input[type="checkbox"],
body.big-cursor input[type="radio"],
body.big-cursor label {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Ccircle cx='16' cy='16' r='14' fill='%2336463D' stroke='%23FFF4CD' stroke-width='3'/%3E%3C/svg%3E")
    16 16, pointer !important;
}
body.big-cursor input[type="text"],
body.big-cursor input[type="email"],
body.big-cursor input[type="tel"],
body.big-cursor input[type="search"],
body.big-cursor input[type="url"],
body.big-cursor textarea,
body.big-cursor [contenteditable="true"] {
  cursor: text !important;
}

/* ── Images désaturées ── */
body.saturation-off img:not(.leaflet-tile) {
  filter: grayscale(1) !important;
}


/* ============================================================
   MODE CONTRASTE ÉLEVÉ — APPROCHE UNIVERSELLE (mai 2026 v2)
   ============================================================
   Principe : on neutralise TOUS les styles décoratifs sur TOUS
   les descendants de body.hc, puis on déclare explicitement les
   sections sombres. Les couleurs de texte sont héritées via le
   sélecteur universel — plus aucune chance qu'un descendant
   échappe à la règle.
   ============================================================ */

/* 1. Variables CSS du thème → noir/blanc pur */
body.hc {
  --vert: #000;
  --vert-deep: #000;
  --vert-mid: #000;
  --vert-light: #000;
  --creme: #fff;
  --creme-soft: #fff;
  --creme-mid: #fff;
  --creme-dark: #000;
  --sauge: #000;
  --sauge-light: #000;
  --sauge-dark: #000;
  --text: #000;
  --text-body: #000;
  --text-muted: #000;
  --white: #fff;
  background: #fff !important;
  color: #000 !important;
  /* IMPORTANT : neutralise la règle utilitaire .hc{display:inline-flex} de
     certaines pages (le nom de classe est en collision). Sans ce override, le
     body devient flex et le footer remonte à côté du contenu. */
  display: block !important;
}

/* 2. SLEDGEHAMMER : tous les descendants héritent de leur parent.
   Ça neutralise les couleurs hardcodées, les rgba(), les variables
   utilisées localement, et force la cascade à fonctionner.
   On exclut les éléments médias et formulaires qui ont besoin de
   leurs propres couleurs. */
/* Universal — spécificité minimale (body.hc *) pour que les ID-rules gagnent.
   Pas de :not() avec IDs, sinon la spécificité explose. */
body.hc * {
  color: inherit !important;
  background-color: transparent !important;
  background-image: none !important;
  border-color: currentColor !important;
  box-shadow: none !important;
  text-shadow: none !important;
  /* PAS d'opacity: 1 ici : ça casserait les dropdowns (opacity:0)
     et les sliders d'accessibilité. */
}

/* Le slider de toggle utilise une animation par opacity/transform : on le préserve */
body.hc .slider,
body.hc .slider::before,
body.hc .switch input,
body.hc .nd-sub,
body.hc .nd-sub a,
body.hc #ap *,
body.hc .a11y-font-btn,
body.hc .a11y-sp-btn {
  /* aucune contrainte d'opacity ici, l'opacity native s'applique */
}

/* Pseudos : on les neutralise aussi */
body.hc *::before,
body.hc *::after {
  color: inherit !important;
  background: transparent !important;
  background-image: none !important;
  border-color: currentColor !important;
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;
}

/* Désactivation du grain global */
body.hc::after,
body.hc::before {
  display: none !important;
}

/* 3. Body, main, sections par défaut → fond blanc */
body.hc,
body.hc main,
body.hc #main,
body.hc section,
body.hc article,
body.hc aside,
body.hc nav,
body.hc div {
  background-color: transparent !important;
}
body.hc {
  background-color: #fff !important;
  color: #000 !important;
}

/* 4. SECTIONS SOMBRES — fond noir + texte blanc.
   Le texte blanc se propage aux descendants via color:inherit. */
body.hc #hd,
body.hc #ft,
body.hc #hero,
body.hc #ph,
body.hc #zo,
body.hc #rse,
body.hc #pr,
body.hc #ct,
body.hc #ct2,
body.hc #integral,
body.hc #temoignage,
body.hc #tr,
body.hc #st,
body.hc #lc,
body.hc #csm-section,
body.hc #gg-section,
body.hc #fo,
body.hc #mm,
body.hc .hc-dark,
body.hc body > header,
body.hc body > footer,
body.hc html > body > header,
body.hc html > body > footer {
  background-color: #000 !important;
  color: #fff !important;
}

/* 5. CARTES sur sections sombres — bordure blanche, fond noir transparent.
   Les enfants héritent du blanc via le sélecteur universel. */
body.hc #integral .int-step,
body.hc #integral .int-pt,
body.hc #integral .int-livr-item,
body.hc #integral .int-pricing,
body.hc #pr .sp,
body.hc #rse .rse-card,
body.hc #ct .ctf,
body.hc #ct2 .ct2-in,
body.hc #temoignage .tem-quote,
body.hc #temoignage .tem-cite,
body.hc #zo .zo-city,
body.hc #zo .zo-sidebar,
body.hc #csm-section .csm-step,
body.hc #gg-section .gg-feat,
body.hc #gg-section .gg-stat,
body.hc #gg-section .gg-stat-sm,
body.hc .hc-dark .pe,
body.hc .hc-dark .va-card,
body.hc .hc-dark .blc,
body.hc .hc-dark .tc2,
body.hc .hc-dark .sy-card,
body.hc .hmo .mi {
  border: 2px solid #fff !important;
  border-radius: 8px !important;
}

/* Strip horizontal #tr / #st (trust badges) : on garde le format strip
   continu avec séparateurs verticaux blancs, pas de cards individuelles */
body.hc #tr .ti,
body.hc #st .sti {
  border: 0 !important;
  border-right: 1px solid #fff !important;
  border-radius: 0 !important;
}
body.hc #tr .ti:last-child,
body.hc #st .sti:last-child,
body.hc #tr .ti:nth-child(4n),
body.hc #st .sti:nth-child(4n) {
  border-right: 0 !important;
}

/* 6. CARTES sur sections claires — bordure noire */
body.hc .pe,
body.hc .blc,
body.hc .tc2,
body.hc .csm-step:not(#csm-section .csm-step),
body.hc .ofe,
body.hc .oc,
body.hc .pl,
body.hc .va-card,
body.hc .sy-card,
body.hc .eg6-card,
body.hc .hub-card,
body.hc .hub-body,
body.hc .mod-card,
body.hc .gi,
body.hc .anim-incl,
body.hc .acc-note,
body.hc .ti:not(#tr .ti):not(#st .ti),
body.hc .lc-item,
body.hc .lc-card,
body.hc .fqt,
body.hc .art-box,
body.hc .art-box-light,
body.hc article.eg6-card,
body.hc #malles {
  border: 2px solid #000 !important;
  border-radius: 8px !important;
}

/* 7. NUMÉROS / DOTS / BADGES de processus (cercles) */
body.hc .csm-num,
body.hc .spn,
body.hc .proc-dot,
body.hc .int-step-num {
  background-color: #fff !important;
  color: #000 !important;
  border: 2px solid #fff !important;
}
/* Sur fond clair (csm sur index, accompagnement modules) */
body.hc #csm .csm-num {
  background-color: #000 !important;
  color: #fff !important;
  border: 2px solid #000 !important;
}

/* 8. BOUTONS — règles explicites (exclus du sledgehammer) */
body.hc .btn-p,
body.hc .btn-v,
body.hc button.btn-p,
body.hc a.btn-p {
  background-color: #000 !important;
  color: #fff !important;
  border: 2px solid #000 !important;
  text-decoration: none !important;
}
body.hc .btn-o,
body.hc .btn-g {
  background-color: #fff !important;
  color: #000 !important;
  border: 2px solid #000 !important;
  text-decoration: none !important;
}
/* Boutons dans les sections sombres : inversion */
body.hc #hd .btn-p,
body.hc #ft .btn-p,
body.hc #hero .btn-p,
body.hc #ph .btn-p,
body.hc #ct .btn-p,
body.hc #ct2 .btn-p,
body.hc #zo .btn-p,
body.hc #integral .btn-p,
body.hc #csm-section .btn-p,
body.hc #gg-section .btn-p,
body.hc .hc-dark .btn-p {
  background-color: #fff !important;
  color: #000 !important;
  border: 2px solid #fff !important;
}
body.hc #hd .btn-o,
body.hc #ft .btn-o,
body.hc #hero .btn-o,
body.hc #ph .btn-o,
body.hc #ct2 .btn-o,
body.hc #integral .btn-o,
body.hc .hc-dark .btn-o {
  background-color: transparent !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}
body.hc .btn:hover,
body.hc .btn:focus-visible {
  outline: 3px solid #ffeb3b !important;
  outline-offset: 2px !important;
}

/* 9. LIENS — couleur héritée. Souligner tous les liens est géré par
   la classe séparée .underline-links (toggle indépendant). HC ne force pas. */
body.hc a:not(.btn):not(.btn-p):not(.btn-v):not(.btn-o):not(.btn-g):not(.skip) {
  color: inherit !important;
}
body.hc a:hover {
  background-color: #ffeb3b !important;
  color: #000 !important;
  outline: 2px solid #000 !important;
}
body.hc #hd a:hover,
body.hc #ft a:hover,
body.hc #ct a:hover,
body.hc .hc-dark a:hover,
body.hc body > header a:hover,
body.hc body > footer a:hover {
  background-color: #fff !important;
  color: #000 !important;
}
/* Logo — pas de surlignage */
body.hc .sl,
body.hc .sl:hover {
  text-decoration: none !important;
  background-color: transparent !important;
}
/* Page courante (lien actif dans la nav) — texte NOIR sur fond BLANC.
   On NE modifie PAS le padding pour ne pas changer la taille du bouton
   par rapport aux autres items du menu. */
body.hc #hd [aria-current="page"],
body.hc #hd a[aria-current="page"],
body.hc #hd .nd-link[aria-current="page"],
body.hc [aria-current="page"] {
  background-color: #fff !important;
  color: #000 !important;
}

/* 10. FORMULAIRES */
body.hc input:not([type="checkbox"]):not([type="radio"]),
body.hc select,
body.hc textarea {
  background-color: #fff !important;
  color: #000 !important;
  border: 2px solid #000 !important;
}
body.hc #ct input:not([type="checkbox"]):not([type="radio"]),
body.hc #ct select,
body.hc #ct textarea {
  background-color: #000 !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}
body.hc #ct .fg select option {
  background-color: #fff !important;
  color: #000 !important;
}
body.hc ::placeholder {
  color: #555 !important;
  opacity: 1 !important;
}
body.hc #ct ::placeholder {
  color: #ccc !important;
}
body.hc input[type="checkbox"],
body.hc input[type="radio"] {
  accent-color: #000 !important;
}

/* 11. IMAGES — grayscale dans sections sombres */
body.hc #hero img,
body.hc #ph img,
body.hc #fo img,
body.hc #zo img,
body.hc #rse img,
body.hc #temoignage img,
body.hc #integral img,
body.hc #csm-section img,
body.hc #gg-section img,
body.hc #pr img,
body.hc #ct2 img,
body.hc .hc-dark img,
body.hc .fo-img img,
body.hc .anim-img img {
  filter: grayscale(1) brightness(0.6) !important;
  opacity: 0.6 !important;
}
/* Backgrounds décoratifs du hero/page-hero : on les masque complètement
   pour éviter qu'ils transparaissent à travers les cartes du hero */
body.hc .hbg,
body.hc .ph-bg,
body.hc .hbg img,
body.hc .ph-bg img {
  display: none !important;
}
/* Cartes hero (.hmo .mi) : images opaques, fond noir solide derrière.
   Préfixé par #hero pour battre la spécificité de "body.hc #hero img". */
body.hc #hero .hmo .mi {
  background-color: #000 !important;
  overflow: hidden !important;
}
body.hc #hero .hmo .mi img,
body.hc .hmo .mi img {
  filter: grayscale(1) brightness(0.7) !important;
  opacity: 1 !important;
}
/* Logos clients en blanc inversé */
body.hc #lc img {
  filter: invert(1) brightness(2) grayscale(1) !important;
  opacity: 1 !important;
}

/* 12. PANNEAU ACCESSIBILITÉ (#ap) — toujours blanc */
body.hc #ap,
body.hc #ap * {
  background-color: #fff !important;
  color: #000 !important;
}
body.hc #ap {
  border: 2px solid #000 !important;
}
body.hc .a11y-hd {
  background-color: #000 !important;
}
body.hc .a11y-hd h3,
body.hc .a11y-close,
body.hc .a11y-hd * {
  color: #fff !important;
  background-color: transparent !important;
}
body.hc #ab {
  background-color: #000 !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}

/* Toggles dans le panneau (classes réelles : .as / .ast).
   IMPORTANT : on prefixe par #ap pour AUGMENTER la spécificité au-delà de
   "body.hc #ap *" qui sinon écraserait l'état checked. */
body.hc #ap .as {
  background-color: transparent !important;
}
body.hc #ap .ast {
  background-color: #fff !important;
  border: 2px solid #000 !important;
  box-shadow: none !important;
}
body.hc #ap .ast::after {
  background-color: #000 !important;
  border: 1px solid #000 !important;
}
body.hc #ap .as input:checked + .ast {
  background-color: #000 !important;
  border: 2px solid #000 !important;
}
body.hc #ap .as input:checked + .ast::after {
  background-color: #fff !important;
  border: 1px solid #fff !important;
}
body.hc #ap .as input:focus-visible + .ast {
  outline: 3px solid #ffeb3b !important;
}
body.hc .a11y-font-btn,
body.hc .a11y-sp-btn {
  background-color: #fff !important;
  color: #000 !important;
  border: 2px solid #000 !important;
}
body.hc .a11y-font-btn.active,
body.hc .a11y-sp-btn.active {
  background-color: #000 !important;
  color: #fff !important;
}

/* 13. Header / Nav */
body.hc #hd {
  background-color: #000 !important;
  border-bottom: 2px solid #fff !important;
  backdrop-filter: none !important;
}
body.hc #hd.sc {
  background-color: #000 !important;
}
body.hc .nd-link:hover,
body.hc .nd-sub a:hover {
  background-color: #fff !important;
  color: #000 !important;
}
body.hc .nd-sub {
  background-color: #000 !important;
  border: 2px solid #fff !important;
}
body.hc .bg span {
  background-color: #fff !important;
}

/* 14. Skip link */
body.hc .skip {
  background-color: #000 !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}

/* 15. Galerie / overlays */
body.hc .gi {
  border: 2px solid #000 !important;
}
body.hc .go,
body.hc .gtk {
  background-color: #000 !important;
  color: #fff !important;
}

/* 16. FAQ accordéons */
body.hc .fqb,
body.hc .fqa,
body.hc .fqa-in {
  background-color: #fff !important;
  color: #000 !important;
}
body.hc .fqb {
  border-bottom: 2px solid #000 !important;
}

/* 17. Témoignages */
body.hc .tav {
  background-color: #000 !important;
  color: #fff !important;
}

/* 18. Tableaux (pages légales) */
body.hc table {
  border-collapse: collapse !important;
}
body.hc table th,
body.hc table td {
  border: 1px solid #000 !important;
  padding: .65rem .75rem !important;
}
body.hc table th {
  background-color: #000 !important;
  color: #fff !important;
}

/* 19. Articles blog */
body.hc .art-box-dark {
  background-color: #000 !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}

/* 20. Cookie banner */
body.hc [id*="cookie" i],
body.hc [class*="cookie" i],
body.hc [id*="consent" i],
body.hc [class*="consent" i] {
  background-color: #fff !important;
  color: #000 !important;
  border: 2px solid #000 !important;
}
body.hc [id*="cookie" i] button,
body.hc [class*="cookie" i] button {
  background-color: #000 !important;
  color: #fff !important;
  border: 2px solid #000 !important;
}

/* 21. Focus visible */
body.hc :focus-visible {
  outline: 3px solid #ffeb3b !important;
  outline-offset: 3px !important;
}

/* 22. Scrollbar */
body.hc {
  scrollbar-color: #000 #fff;
}
body.hc::-webkit-scrollbar {
  width: 14px;
  background: #fff;
}
body.hc::-webkit-scrollbar-thumb {
  background: #000;
  border: 2px solid #fff;
}
body.hc::-webkit-scrollbar-track {
  background: #fff;
  border: 1px solid #000;
}

/* 23. Page mobile menu */
body.hc #mm {
  background-color: #000 !important;
}

/* 24. Ajustement final pour éléments avec style inline difficile à toucher */
body.hc [style*="color"] {
  color: inherit !important;
}

/* 25. @media small */
@media (max-width: 380px) {
  body.hc #ap {
    left: 0.75rem;
    right: 0.75rem;
    width: auto;
  }
}
