/*!
 * ci-template-webseite – Menü „Barrierefreiheit“
 * Wird nur geladen, wenn das Menü aktiviert ist (Config\Accessibility, .env accessibility.enabled).
 * Schriften: Atkinson Hyperlegible (Braille Institute, SIL OFL), OpenDyslexic (SIL OFL) – lokal, nur bei Bedarf geladen.
 *
 * Aufbau: Einstellungen stehen als data-a11y-*-Attribute am <html>-Element (siehe a11y-init.js).
 * Inhaltsregeln gelten nur für die Seite (body > :not(.a11y)), nicht für das Menü selbst.
 */

/* ---------- Schriften ---------- */
@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/atkinson-hyperlegible-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/atkinson-hyperlegible-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/atkinson-hyperlegible-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/atkinson-hyperlegible-latin-ext-700-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "OpenDyslexic"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/opendyslexic-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "OpenDyslexic"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/opendyslexic-latin-700-normal.woff2") format("woff2"); }

/* =====================================================================
   1. Symbol und Menü (feste Farben, unabhängig von den Kontrastmodi)
   ===================================================================== */
.a11y-trigger {
  position: fixed; right: 20px; bottom: calc(20px + var(--consent-offset, 0px)); z-index: 60;
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; padding: 0;
  color: #fff; background: var(--ui-primary); border: 2px solid #fff; border-radius: 50%;
  box-shadow: 0 4px 18px rgb(0 0 0 / 28%); cursor: pointer;
}
.a11y-trigger[hidden] { display: none; }
.a11y--left .a11y-trigger { right: auto; left: 20px; }
.a11y-trigger:hover { background: #1a2232; }
.a11y-trigger:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
.a11y-trigger .icon { width: 30px; height: 30px; }
body.menu-open .a11y-trigger { display: none; }

.a11y-panel {
  position: fixed; inset: 0 0 0 auto;
  width: min(440px, 100%); max-width: 100%; height: 100%; max-height: 100%;
  margin: 0; padding: 0; border: 0; overflow: hidden;
  color: #1a1a2e; background: #fff;
  font: 400 16px/1.5 "Lato", "Helvetica Neue", Arial, sans-serif;
  letter-spacing: normal; word-spacing: normal; text-align: left;
  box-shadow: -12px 0 40px rgb(0 0 0 / 25%);
}
.a11y--left .a11y-panel { inset: 0 auto 0 0; box-shadow: 12px 0 40px rgb(0 0 0 / 25%); }
.a11y-panel[open] { display: flex; flex-direction: column; }
.a11y-panel::backdrop { background: rgb(15 20 30 / 22%); }
.a11y-panel .icon { flex: none; width: 20px; height: 20px; }
.a11y-panel :focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.a11y-panel a { color: #a8362a; text-decoration: underline; text-underline-offset: 3px; }

.a11y-panel__head { display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; padding: 18px 20px; color: #fff; background: var(--ui-primary); }
.a11y-panel__title { margin: 0; color: #fff; font-size: 20px; font-weight: 700; line-height: 1.3; }
.a11y-panel__desc { margin: 4px 0 0; color: rgb(255 255 255 / 86%); font-size: 14px; line-height: 1.45; }
.a11y-panel__head .a11y-icon-btn { color: #fff; background: transparent; border-color: rgb(255 255 255 / 55%); }
.a11y-panel__head .a11y-icon-btn:hover { background: rgb(255 255 255 / 12%); }
.a11y-panel__head :focus-visible { outline-color: #ff8478; }

.a11y-panel__body { flex: 1; overflow-y: auto; padding: 16px 20px 6px; background: #f5f6f8; overscroll-behavior: contain; }
.a11y-section { margin: 0 0 20px; }
.a11y-section__title { margin: 0 0 10px; color: #4b5263; font-size: 13px; font-weight: 700; line-height: 1.3; letter-spacing: .08em; text-transform: uppercase; }

.a11y-profiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.a11y-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }

.a11y-profile, .a11y-tile {
  position: relative; margin: 0; color: #1a1a2e; background: #fff;
  border: 1px solid #c9ced8; border-radius: 12px; font: inherit; cursor: pointer;
}
.a11y-profile { display: flex; gap: 10px; align-items: flex-start; padding: 12px 26px 12px 12px; text-align: left; }
.a11y-profile .a11y-profile__icon { width: 24px; height: 24px; margin-top: 2px; color: var(--ui-primary); }
.a11y-profile__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.a11y-profile__label { font-size: 14.5px; font-weight: 700; line-height: 1.3; }
.a11y-profile__hint { color: #4b5263; font-size: 12.5px; line-height: 1.35; }

.a11y-tile { display: flex; flex-direction: column; align-items: center; gap: 6px; min-height: 100px; padding: 14px 6px 10px; text-align: center; }
.a11y-tile .a11y-tile__icon { width: 26px; height: 26px; color: var(--ui-primary); }
.a11y-tile__label { font-size: 13.5px; font-weight: 700; line-height: 1.25; overflow-wrap: break-word; }
.a11y-tile__value { color: #4b5263; font-size: 12px; line-height: 1.2; }
.a11y-tile__dots { display: flex; gap: 4px; margin-top: auto; }
.a11y-tile__dots i { display: block; width: 14px; height: 4px; background: #c9ced8; border-radius: 2px; }
.a11y-tile__dots i.is-on { background: var(--ui-primary); }

.a11y-profile:hover, .a11y-tile:hover { border-color: var(--ui-primary); }
.a11y-profile[aria-pressed="true"], .a11y-tile[aria-pressed="true"] { background: #e8edf6; border-color: var(--ui-primary); box-shadow: inset 0 0 0 1px var(--ui-primary); }
.a11y-profile[aria-pressed="true"]::after, .a11y-tile[aria-pressed="true"]::after {
  content: "✓"; position: absolute; top: 5px; right: 8px; color: var(--ui-primary); font-size: 14px; font-weight: 700; line-height: 1;
}
.a11y-tile[aria-disabled="true"] { cursor: not-allowed; opacity: .6; }

.a11y-stepper {
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 8px; align-items: center;
  margin: 0 0 8px; padding: 10px 12px; background: #fff; border: 1px solid #c9ced8; border-radius: 12px;
}
.a11y-stepper__label { display: flex; gap: 8px; align-items: center; font-size: 14.5px; font-weight: 700; }
.a11y-stepper__label .icon { width: 26px; height: 26px; color: var(--ui-primary); }
.a11y-stepper__value { min-width: 58px; font-size: 15px; font-weight: 700; text-align: center; }

.a11y-icon-btn {
  display: inline-flex; flex: none; align-items: center; justify-content: center;
  width: 40px; height: 40px; padding: 0; color: #1a1a2e; background: #fff;
  border: 1px solid #9aa2b1; border-radius: 10px; font-family: inherit; font-size: 22px; font-weight: 700; line-height: 1; cursor: pointer;
}
.a11y-icon-btn:hover { border-color: var(--ui-primary); background: #eef1f6; }
.a11y-icon-btn[aria-disabled="true"] { cursor: not-allowed; opacity: .45; }

.a11y-panel__foot { display: grid; gap: 10px; padding: 14px 20px 16px; background: #fff; border-top: 1px solid #d5d9e1; }
.a11y-btn {
  display: inline-flex; gap: 8px; align-items: center; justify-content: center;
  padding: 10px 14px; color: #1a1a2e; background: #fff; border: 1px solid #9aa2b1; border-radius: 10px;
  font-family: inherit; font-size: 14px; font-weight: 700; line-height: 1.3; cursor: pointer;
}
.a11y-btn:hover { border-color: var(--ui-primary); background: #eef1f6; }
.a11y-btn--primary { width: 100%; color: #fff; background: var(--ui-primary); border-color: var(--ui-primary); }
.a11y-btn--primary:hover { background: #1a2232; }
.a11y-hide summary { display: inline-flex; gap: 8px; align-items: center; padding: 4px 0; font-size: 14px; font-weight: 700; cursor: pointer; }
.a11y-hide p { margin: 4px 0 8px; color: #4b5263; font-size: 13px; line-height: 1.45; }
.a11y-hide__options { display: flex; flex-wrap: wrap; gap: 8px; }
.a11y-panel__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: space-between; margin: 0; color: #4b5263; font-size: 13px; }
.a11y-panel kbd { padding: 1px 5px; font: inherit; background: #f3f5f8; border: 1px solid #c9ced8; border-radius: 4px; }

@media (max-width: 400px) {
  .a11y-grid, .a11y-profiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Kleine Bildschirme: das ganze Menü scrollt, der Kopf bleibt stehen */
@media (max-width: 480px), (max-height: 720px) {
  .a11y-panel[open] { display: block; overflow-y: auto; overscroll-behavior: contain; }
  .a11y-panel__head { position: sticky; top: 0; z-index: 1; }
  .a11y-panel__body { overflow: visible; }
  .a11y-panel__desc { display: none; }
}

/* Footer-Schaltfläche „Darstellung anpassen“ */
.a11y-footer-btn {
  padding: 0; color: inherit; background: none; border: 0; font: inherit;
  text-decoration: none; cursor: pointer;
}
.a11y-footer-btn:hover { text-decoration: underline; }
.site-footer .a11y-footer-btn { color: rgb(var(--on-dark-rgb) / 88%); }
.a11y-footer-btn[hidden] { display: none; }

/* Leselinie, Lesemaske, Textlupe */
.a11y-line, .a11y-mask, .a11y-lens { display: none; position: fixed; pointer-events: none; }
.a11y-line { left: 0; right: 0; top: 33vh; z-index: 70; height: 8px; margin-top: -4px; background: #ffd400; box-shadow: 0 0 0 2px #1a1a2e; }
.a11y-mask { left: 0; right: 0; z-index: 70; background: rgb(10 14 22 / 62%); }
.a11y-mask--top { top: 0; height: 25vh; }
.a11y-mask--bottom { top: 40vh; bottom: 0; }
html[data-a11y-reading-line] .a11y-line,
html[data-a11y-reading-mask] .a11y-mask { display: block; }

.a11y-lens {
  z-index: 80; max-width: min(520px, calc(100vw - 16px)); padding: 12px 16px;
  color: #fff; background: #1a1a2e; border: 2px solid #ffd400; border-radius: 10px;
  font: 700 26px/1.35 "Lato", Arial, sans-serif; letter-spacing: normal; text-align: left;
  box-shadow: 0 8px 30px rgb(0 0 0 / 35%);
}
html[data-a11y-magnifier] .a11y-lens.is-visible { display: block; }

.a11y-speaking { outline: 3px solid #ffd400 !important; outline-offset: 4px; background-color: rgb(255 212 0 / 20%) !important; }

/* =====================================================================
   2. Inhalt und Schrift
   ===================================================================== */
html[data-a11y-font-size="1"] { font-size: 115%; }
html[data-a11y-font-size="2"] { font-size: 130%; }
html[data-a11y-font-size="3"] { font-size: 150%; }
html[data-a11y-font-size="4"] { font-size: 175%; }

html[data-a11y-line-height="1"] body > :not(.a11y), html[data-a11y-line-height="1"] body > :not(.a11y) * { line-height: 1.9 !important; }
html[data-a11y-line-height="2"] body > :not(.a11y), html[data-a11y-line-height="2"] body > :not(.a11y) * { line-height: 2.2 !important; }
html[data-a11y-line-height="3"] body > :not(.a11y), html[data-a11y-line-height="3"] body > :not(.a11y) * { line-height: 2.5 !important; }

html[data-a11y-letter-spacing="1"] body > :not(.a11y) * { letter-spacing: .06em !important; word-spacing: .14em !important; }
html[data-a11y-letter-spacing="2"] body > :not(.a11y) * { letter-spacing: .1em !important; word-spacing: .22em !important; }
html[data-a11y-letter-spacing="3"] body > :not(.a11y) * { letter-spacing: .14em !important; word-spacing: .3em !important; }

html[data-a11y-font-weight] body > :not(.a11y), html[data-a11y-font-weight] body > :not(.a11y) * { font-weight: 700 !important; }

html[data-a11y-text-align="1"] body > :not(.a11y) * { text-align: left !important; }
html[data-a11y-text-align="2"] body > :not(.a11y) * { text-align: center !important; }
html[data-a11y-text-align="3"] body > :not(.a11y) * { text-align: right !important; }

html[data-a11y-readable-font] body > :not(.a11y), html[data-a11y-readable-font] body > :not(.a11y) * {
  font-family: "Atkinson Hyperlegible", Verdana, Tahoma, sans-serif !important;
}
html[data-a11y-dyslexia-font] body > :not(.a11y), html[data-a11y-dyslexia-font] body > :not(.a11y) * {
  font-family: "OpenDyslexic", "Comic Sans MS", Verdana, sans-serif !important;
}

/* Große bzw. breite Schrift (nur wenn im Menü „Barrierefreiheit“ gewählt): lange Wörter (z. B. „Datenschutzerklärung“)
   dürfen umbrechen, damit auch auf schmalen Bildschirmen nichts seitlich herausragt. Sonst gibt es keine Silbentrennung. */
html:is([data-a11y-font-size], [data-a11y-letter-spacing], [data-a11y-dyslexia-font], [data-a11y-readable-font], [data-a11y-font-weight]) body > :not(.a11y) * {
  overflow-wrap: anywhere; hyphens: auto; -webkit-hyphens: auto;
}
/* Bei großer Schrift dürfen auch zusammengehaltene Begriffe umbrechen – sonst ragen sie seitlich heraus. */
html:is([data-a11y-font-size], [data-a11y-letter-spacing], [data-a11y-dyslexia-font], [data-a11y-readable-font], [data-a11y-font-weight]) .nowrap { white-space: normal; }
html:is([data-a11y-font-size], [data-a11y-letter-spacing], [data-a11y-dyslexia-font], [data-a11y-readable-font], [data-a11y-font-weight]) body > :not(.a11y) .btn { max-width: 100%; }

html[data-a11y-cursor="1"], html[data-a11y-cursor="1"] * { cursor: url("../img/a11y/cursor-black.svg") 7 4, auto !important; }
html[data-a11y-cursor="1"] :is(a, button, summary, label, select, [role="button"]),
html[data-a11y-cursor="1"] :is(a, button, summary, label, select, [role="button"]) * { cursor: url("../img/a11y/pointer-black.svg") 16 4, pointer !important; }
html[data-a11y-cursor="2"], html[data-a11y-cursor="2"] * { cursor: url("../img/a11y/cursor-white.svg") 7 4, auto !important; }
html[data-a11y-cursor="2"] :is(a, button, summary, label, select, [role="button"]),
html[data-a11y-cursor="2"] :is(a, button, summary, label, select, [role="button"]) * { cursor: url("../img/a11y/pointer-white.svg") 16 4, pointer !important; }

/* =====================================================================
   3. Farbe und Kontrast (über die Design-Tokens aus site.css)
   ===================================================================== */
html[data-a11y-contrast-dark] {
  color-scheme: dark;
  --bg: #12161f; --surface: #1c222d; --soft: #171c26; --line: #3a4252; --white: #fff;
  --ink: #f4f5f7; --text: #d9dde4; --muted: #b6bcc7;
  --navy: #0b0f16; --navy-deep: #070a10;
  /* Akzent- und Zweitfarbe für diesen Modus: brand.css */
  --on-accent: #12161f;
  --shadow: 0 0 0 1px #343c4b; --shadow-hover: 0 0 0 1px #59647a;
}
html[data-a11y-contrast-dark] .feature-box { background: var(--teal-soft); }
html[data-a11y-contrast-dark] .cta-band { background: var(--accent-soft); }
html[data-a11y-contrast-dark] .cta-band .btn-light { color: var(--accent-ink); }

html[data-a11y-contrast-light] {
  --bg: #fff; --surface: #fff; --soft: #fff; --line: #6b6b6b; --white: #fff;
  --ink: #000; --text: #111; --muted: #2e2e2e;
  --navy: #fff; --navy-deep: #fff; --on-dark-rgb: 0 0 0;
  /* Akzent- und Zweitfarbe für diesen Modus: brand.css */
  --on-accent: #fff;
  --shadow: 0 0 0 1px #6b6b6b; --shadow-hover: 0 0 0 2px #000;
}
html[data-a11y-contrast-light] .site-header { box-shadow: 0 2px 0 #000; }
html[data-a11y-contrast-light] :is(.brand, .site-footer__brand) img { filter: invert(1); }
html[data-a11y-contrast-light] :is(.feature-box, .panel-navy) { background: #fff; border: 2px solid #000; }
html[data-a11y-contrast-light] .mega__inner { border: 2px solid #000; }
html[data-a11y-contrast-light] .mega__intro { border-right: 2px solid #000; }
html[data-a11y-contrast-light] .mega__intro::after { display: none; }
html[data-a11y-contrast-light] :is(.cta-band, .hero--compact, .site-footer) { background: #fff; border-block: 2px solid #000; }
html[data-a11y-contrast-light] :is(.btn-light, .btn-teal, .btn-outline, .eyebrow, .badge, .tag-new) { border: 2px solid currentColor; }

html[data-a11y-contrast-high] {
  color-scheme: dark;
  --bg: #000; --surface: #000; --soft: #000; --line: #fff; --white: #fff;
  --ink: #fff; --text: #fff; --muted: #fff;
  --navy: #000; --navy-deep: #000; --on-dark-rgb: 255 255 255;
  --accent: #ff0; --accent-strong: #ff0; --accent-hover: #ff6; --accent-soft: #000; --accent-ink: #ff0; --accent-grad-end: #ff0;
  --teal: #0ff; --teal-strong: #0ff; --teal-soft: #000; --teal-ink: #0ff; --teal-grad-end: #0ff;
  --on-accent: #000; --accent-on-navy: #ff0; --accent-rgb: 255 255 0; --accent-strong-rgb: 255 255 0;
  --check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300ffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --shadow: 0 0 0 2px #fff; --shadow-hover: 0 0 0 3px #ff0;
}
html[data-a11y-contrast-high] :is(.feature-box, .panel-navy) { background: #000; border: 2px solid #fff; }
html[data-a11y-contrast-high] .mega__inner { border: 2px solid #fff; }
html[data-a11y-contrast-high] .mega__intro { border-right: 2px solid #fff; }
html[data-a11y-contrast-high] .mega__intro::after { display: none; }
html[data-a11y-contrast-high] :is(.cta-band, .hero--compact, .site-header, .site-footer) { background: #000; border-block: 2px solid #fff; }
html[data-a11y-contrast-high] body > :not(.a11y, .consent) a:not(.btn):not(:has(h2, h3, h4, p, ul, img, picture)) { color: #ff0; text-decoration: underline; }
html[data-a11y-contrast-high] body > :not(.a11y, .consent) a:has(h2, h3, h4, p, ul, img, picture) :is(h2, h3, h4) { color: #ff0; text-decoration: underline; }
html[data-a11y-contrast-high] :is(.btn, .eyebrow, .badge, .card__icon, .tag-new) { border: 2px solid currentColor; }
/* Hinweis-Banner: Gelb auf Gelb vermeiden (Links sind in diesem Modus gelb) */
html[data-a11y-contrast-high] .notice-bar { color: #fff; background: #000; border-bottom: 2px solid #ff0; }
html[data-a11y-contrast-high] .notice-bar--wichtig { border: 2px solid #ff0; }
html[data-a11y-contrast-high] .notice-bar__text a { color: #ff0; }
html[data-a11y-contrast-high] .btn-primary { border-color: #ff0; }

html[data-a11y-monochrome] { filter: grayscale(1); }
html[data-a11y-saturation="1"] { filter: saturate(.35); }
html[data-a11y-saturation="2"] { filter: saturate(1.9); }

/* =====================================================================
   4. Orientierung und Hilfen
   ===================================================================== */
html[data-a11y-links] body > :not(.a11y) a {
  color: #1a1a2e !important; background-color: #fff3a6 !important;
  text-decoration: underline 2px !important; text-underline-offset: 3px;
  outline: 2px solid #1a1a2e; outline-offset: 1px;
}
html[data-a11y-links] body > :not(.a11y) a * { color: inherit !important; }
/* Links mit Bild (Logo, Personenkarten): nur Rahmen, keine Füllung – sonst wird z. B. das weiße Logo unlesbar */
html[data-a11y-links] body > :not(.a11y) a:has(img, picture) { background-color: transparent !important; color: inherit !important; }

html[data-a11y-headings] body > :not(.a11y) :is(h1, h2, h3, h4, h5, h6, .h3-like) {
  outline: 3px dashed currentColor; outline-offset: 6px;
}

html[data-a11y-focus] :focus { outline: 4px solid #ffd400 !important; outline-offset: 3px !important; box-shadow: 0 0 0 7px #1a1a2e !important; }

html[data-a11y-hide-images] body > :not(.a11y) :is(main img, main picture, main video, main iframe, main .map) { display: none !important; }

html[data-a11y-stop-animations] *, html[data-a11y-stop-animations] *::before, html[data-a11y-stop-animations] *::after {
  animation: none !important; transition: none !important; scroll-behavior: auto !important;
}

@media print {
  .a11y { display: none !important; }
  /* Kontrastmodi gelten nur am Bildschirm – gedruckt wird immer schwarz auf weiß */
  html[data-a11y-contrast-dark], html[data-a11y-contrast-high] {
    color-scheme: light;
    --bg: #fff; --surface: #fff; --soft: #fff; --line: #ccc; --white: #fff;
    --ink: #000; --text: #000; --muted: #333; --navy: #fff; --navy-deep: #fff; --on-dark-rgb: 0 0 0;
    --accent: #000; --accent-strong: #000; --accent-hover: #000; --accent-soft: #fff; --accent-ink: #000;
    --teal: #000; --teal-strong: #000; --teal-soft: #fff; --teal-ink: #000; --on-accent: #000; --accent-on-navy: #000;
  }
  html[data-a11y-contrast-high] body > :not(.a11y, .consent) a:not(.btn),
  html[data-a11y-contrast-high] body > :not(.a11y, .consent) a :is(h2, h3, h4) { color: #000 !important; }
}
