/* Barrierefreiheits-Werkzeug (Imployo, #41, 26.10.2026). Gehoert zu barrierefrei.js.
 * Aufbau: 1. Oberflaeche des Werkzeugs (alles unter #a11y-root, damit Elementor-Kit-Regeln wie ".elementor-kit-N button" nicht durchschlagen)
 *         2. Wirkung der Einstellungen ueber html[data-a11y-*] und --a11y-*-Variablen.
 * Die Wirkungen fassen weder die Farbvariablen des Kits noch die des Design-Umschalters (Body-Variablen) an, sie setzen nur eigene Werte mit hoeherer Spezifitaet. */

/* ============ 1. Oberflaeche ============ */
#a11y-root{position:static;font:400 16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#111;letter-spacing:normal;word-spacing:normal;text-align:left;text-transform:none}
#a11y-root *,#a11y-root *::before,#a11y-root *::after{box-sizing:border-box}
#a11y-root button{all:unset;box-sizing:border-box;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent}
#a11y-root button:disabled{cursor:default;opacity:.45}
#a11y-root :focus-visible{outline:3px solid #ffbf00;outline-offset:2px;box-shadow:0 0 0 6px #111}
#a11y-root [hidden]{display:none !important}

#a11y-root .a11y-knopf{position:fixed;left:max(12px,env(safe-area-inset-left,0px));bottom:calc(12px + var(--a11y-versatz,env(safe-area-inset-bottom,0px)));z-index:99998;width:56px;height:56px;border-radius:50%;background:#14305c;color:#fff;border:3px solid #fff;box-shadow:0 0 0 1px #14305c,0 6px 18px rgba(0,0,0,.4);display:grid;place-items:center}
#a11y-root .a11y-knopf:hover{background:#0b1f3d}
#a11y-root .a11y-knopf svg{display:block}
#a11y-root .a11y-schleier{position:fixed;inset:0;z-index:100001;background:transparent}
#a11y-root .a11y-dialog{position:fixed;z-index:100002;left:16px;bottom:calc(88px + var(--a11y-versatz,0px));width:min(26rem,calc(100vw - 32px));max-height:calc(100vh - 104px - var(--a11y-versatz,0px));max-height:calc(100dvh - 104px - var(--a11y-versatz,0px));display:flex;flex-direction:column;background:#fff;color:#111;border:2px solid #14305c;border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.4);overflow:hidden}
#a11y-root .a11y-dialog:focus{outline:none}
#a11y-root .a11y-kopf{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 18px;background:#14305c;color:#fff}
#a11y-root .a11y-titel{margin:0;padding:0;font:700 19px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#fff;letter-spacing:0;text-transform:none}
#a11y-root .a11y-zu{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:30px;line-height:1}
#a11y-root .a11y-zu:hover{background:rgba(255,255,255,.18)}
#a11y-root .a11y-zu:focus-visible{box-shadow:0 0 0 5px #111;outline-color:#ffbf00}
#a11y-root .a11y-inhalt{flex:1 1 auto;overflow:auto;overscroll-behavior:contain;padding:14px 18px 6px}
#a11y-root .a11y-intro{margin:0 0 6px;font-size:14px;color:#333}
#a11y-root .a11y-status{margin:0 0 6px;min-height:0;font-size:14px;font-weight:600;color:#14305c}
#a11y-root .a11y-status:empty{display:none}
#a11y-root .a11y-gruppe{margin:0 0 6px;padding:0}
#a11y-root .a11y-gh{margin:16px 0 8px;padding:0 0 6px;border-bottom:2px solid #d5dbe6;font:700 13px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#14305c}
#a11y-root .a11y-vorgaben{display:grid;gap:8px}
#a11y-root .a11y-vorgabe{display:block;width:100%;padding:10px 14px;border:2px solid #14305c;border-radius:12px;background:#fff;color:#111}
#a11y-root .a11y-vorgabe:hover{background:#eef2fa}
#a11y-root .a11y-vorgabe-t{display:block;font-weight:700;font-size:16px;color:#14305c}
#a11y-root .a11y-vorgabe-d{display:block;margin-top:2px;font-size:13px;line-height:1.4;color:#333}
#a11y-root .a11y-zeile{margin:0 0 10px}
#a11y-root .a11y-label{margin:0 0 4px;font-weight:600;font-size:15px;color:#111}
#a11y-root .a11y-wahl{display:flex;border:2px solid #14305c;border-radius:10px;overflow:hidden}
#a11y-root .a11y-opt{flex:1 1 0;min-height:44px;display:grid;place-items:center;padding:6px 8px;text-align:center;background:#fff;color:#14305c;font-weight:600;font-size:15px}
#a11y-root .a11y-opt + .a11y-opt{border-left:2px solid #14305c}
#a11y-root .a11y-opt:hover{background:#eef2fa}
#a11y-root .a11y-opt[aria-pressed="true"]{background:#14305c;color:#fff}
#a11y-root .a11y-stufe{display:flex;align-items:stretch;border:2px solid #14305c;border-radius:10px;overflow:hidden}
#a11y-root .a11y-pm{flex:0 0 64px;font-size:24px;line-height:1}
#a11y-root .a11y-wert{flex:1 1 auto;display:grid;place-items:center;font-weight:700;font-size:17px;color:#111;border-left:2px solid #14305c;border-right:2px solid #14305c;min-height:44px}
#a11y-root .a11y-schalter{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:6px 10px 6px 14px;border:2px solid #14305c;border-radius:10px;background:#fff;color:#111}
#a11y-root .a11y-schalter:hover{background:#eef2fa}
#a11y-root .a11y-sw-t{flex:1 1 auto;font-weight:600;font-size:15px}
#a11y-root .a11y-sw-z{font-size:13px;font-weight:700;color:#14305c;min-width:2.2em;text-align:right}
#a11y-root .a11y-sw-k{flex:none;position:relative;width:44px;height:26px;border-radius:13px;background:#fff;border:2px solid #14305c}
#a11y-root .a11y-sw-k::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#14305c;transition:left .15s}
#a11y-root .a11y-schalter[aria-checked="true"] .a11y-sw-k{background:#14305c}
#a11y-root .a11y-schalter[aria-checked="true"] .a11y-sw-k::after{left:20px;background:#fff}
#a11y-root .a11y-lesen{display:flex;gap:8px;margin:0 0 10px}
#a11y-root .a11y-btn{flex:1 1 0;min-height:44px;display:grid;place-items:center;padding:6px 10px;border:2px solid #14305c;border-radius:10px;background:#14305c;color:#fff;font-weight:700;font-size:15px;text-align:center}
#a11y-root .a11y-btn:hover:not(:disabled){background:#0b1f3d}
#a11y-root .a11y-btn:disabled{background:#e3e7ef;color:#333;border-color:#9aa4b8;opacity:1}
#a11y-root .a11y-hinweis{margin:0 0 8px;font-size:14px;color:#333}
#a11y-root .a11y-hinweis:empty{display:none}
#a11y-root .a11y-fuss{flex:none;padding:12px 18px calc(14px + env(safe-area-inset-bottom,0px));border-top:2px solid #d5dbe6;background:#f4f6fb}
#a11y-root .a11y-reset{width:100%;background:#fff;color:#14305c}
#a11y-root .a11y-reset:hover:not(:disabled){background:#eef2fa}
#a11y-root .a11y-klein{margin:10px 0 0;font-size:13px;color:#333}
#a11y-root .a11y-link{display:inline-block;margin-top:6px;color:#14305c;font-weight:600;font-size:14px;text-decoration:underline}
@media (max-width:600px){
  #a11y-root .a11y-dialog{left:0;right:0;bottom:0;width:auto;max-height:88vh;max-height:88dvh;border-radius:16px 16px 0 0;border-width:2px 0 0}
  #a11y-root .a11y-inhalt{padding:12px 16px 4px}
  #a11y-root .a11y-fuss{padding-left:16px;padding-right:16px}
}
@media (prefers-reduced-motion:reduce){#a11y-root *{transition:none !important;animation:none !important}}

/* Blaulichtfilter: orange Folie ueber der Seite, unter dem Werkzeug */
#a11y-root .a11y-blau{display:none;position:fixed;inset:0;z-index:99980;pointer-events:none;background:rgb(255,150,40);mix-blend-mode:multiply}
html[data-a11y-blau="leicht"] #a11y-root .a11y-blau{display:block;opacity:.3}
html[data-a11y-blau="stark"] #a11y-root .a11y-blau{display:block;opacity:.55}

/* ============ 2. Wirkung ============ */
html[data-a11y-messen] *,html[data-a11y-messen] *::before,html[data-a11y-messen] *::after{transition:none !important}
/* Die Kit-CSS setzt einzelne Groessen mit !important und bis zu drei Klassen (z. B. html[data-design="C"] .vm-hero-text h1.elementor-heading-title); die verdoppelten Attribute heben die Spezifitaet darueber. */
/* Schriftgroesse: Basisgroesse je Textelement wird von barrierefrei.js als --a11y-fs gemessen (Elementor nutzt px), hier nur multipliziert */
html[data-a11y-schrift][data-a11y-schrift] [data-a11y-t][data-a11y-t][data-a11y-t]{font-size:calc(var(--a11y-fs) * var(--a11y-font-scale,1)) !important;line-height:var(--a11y-lh,1.4) !important;overflow-wrap:break-word;hyphens:auto}
/* Zeilenabstand (nicht kleiner als der Entwurf des Elements; Ueberschriften bleiben eng) */
html[data-a11y-zeile][data-a11y-zeile] [data-a11y-t][data-a11y-t][data-a11y-t]:not(h1,h2,h3,h4,h5,h6,.elementor-heading-title){line-height:max(var(--a11y-lh,1.4),var(--a11y-line-height,1.8)) !important}
html[data-a11y-buchstaben][data-a11y-buchstaben] [data-a11y-t][data-a11y-t][data-a11y-t]{letter-spacing:var(--a11y-letter-spacing,.06em) !important}
html[data-a11y-legasthenie][data-a11y-legasthenie] [data-a11y-t][data-a11y-t][data-a11y-t],html[data-a11y-legasthenie] input,html[data-a11y-legasthenie] textarea,html[data-a11y-legasthenie] select,html[data-a11y-legasthenie] button{font-family:Verdana,"Trebuchet MS",Tahoma,"Segoe UI",system-ui,sans-serif !important}
html[data-a11y-breite] :is(p,li,dd,blockquote,figcaption,.elementor-widget-text-editor,.elementor-widget-heading,.elementor-icon-list-text):not(#a11y-root *){max-width:62ch}

/* Links hervorheben */
html[data-a11y-links] a[href]:not(#a11y-root a){text-decoration-line:underline !important;text-decoration-thickness:.12em !important;text-underline-offset:.22em !important}
html[data-a11y-links] :is(.elementor-button,button,input[type="submit"],[role="button"]):not(#a11y-root *){outline:2px dashed currentColor;outline-offset:3px}

/* Fokus stark hervorheben */
html[data-a11y-fokus] :focus-visible:not(#a11y-root *),html[data-a11y-fokus] :is(input,textarea,select):focus:not(#a11y-root *){outline:4px solid #ffbf00 !important;outline-offset:3px !important;box-shadow:0 0 0 8px #111 !important}

/* Bilder ausblenden (Bild-Elemente unsichtbar, Hintergrundbilder durch Textfarbe des Kits ersetzt, damit heller Text lesbar bleibt) */
html[data-a11y-bilder] :is(img,picture,video,canvas,iframe):not(#a11y-root *){visibility:hidden !important}
html[data-a11y-bilder] [data-a11y-bg]{background-image:none !important;background-color:var(--e-global-color-text,#1f2a37) !important}
html[data-a11y-bilder] .elementor-background-overlay{opacity:0 !important}

/* Bewegung reduzieren */
html[data-a11y-bewegung],html[data-a11y-bewegung] *{scroll-behavior:auto !important}
html[data-a11y-bewegung] *:not(#a11y-root *),html[data-a11y-bewegung] *:not(#a11y-root *)::before,html[data-a11y-bewegung] *:not(#a11y-root *)::after{animation:none !important;animation-delay:0s !important;transition:none !important;transition-delay:0s !important}
html[data-a11y-bewegung] .elementor-invisible{visibility:visible !important;opacity:1 !important}
html[data-a11y-bewegung] :is(.animated,[class*="elementor-animation-"],.elementor-motion-effects-element,.elementor-motion-effects-layer){transform:none !important}
html[data-a11y-bewegung] :is(.vm-karte,a.e-con.vm-kachel,.elementor-button):hover{translate:none !important;transform:none !important}

/* Hoher Kontrast: Text, Flaechen und Rahmen als Schwarz/Weiss-Paare, Links unterstrichen; Bilder bleiben. Die Marken-Variablen bleiben unangetastet.
 * "body > :not(#a11y-root)" nimmt das Werkzeug selbst aus und liefert die Spezifitaet, die Elementor-Selektoren schlaegt. */
html[data-a11y-kontrast] body > :not(#a11y-root),html[data-a11y-kontrast] body > :not(#a11y-root) *,
html[data-a11y-kontrast] body > :not(#a11y-root)::before,html[data-a11y-kontrast] body > :not(#a11y-root) *::before,
html[data-a11y-kontrast] body > :not(#a11y-root)::after,html[data-a11y-kontrast] body > :not(#a11y-root) *::after{background-image:none !important;text-shadow:none !important;box-shadow:none !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important}
html[data-a11y-kontrast] body > :not(#a11y-root) .elementor-background-overlay,html[data-a11y-kontrast] body > :not(#a11y-root) .elementor-background-video-container{display:none !important}
html[data-a11y-kontrast] body > :not(#a11y-root) :is(a[href],a[href] *){text-decoration-line:underline !important;text-underline-offset:.2em !important}
html[data-a11y-kontrast] body > :not(#a11y-root) :is(input,textarea,select){border:2px solid currentColor !important}
html[data-a11y-kontrast] body > :not(#a11y-root) ::placeholder{opacity:1;color:inherit}

html[data-a11y-kontrast="hell"],html[data-a11y-kontrast="hell"] body{background:#fff !important;color:#000 !important}
html[data-a11y-kontrast="hell"] body > :not(#a11y-root),html[data-a11y-kontrast="hell"] body > :not(#a11y-root) *{background-color:#fff !important;color:#000 !important;border-color:#000 !important;outline-color:#000}
html[data-a11y-kontrast="hell"] body > :not(#a11y-root) :is(a[href],a[href] *){color:#0000b8 !important}
html[data-a11y-kontrast="hell"] body > :not(#a11y-root) :is(button,input[type="submit"],input[type="button"],[role="button"],a[href].elementor-button,a[href].elementor-button *){background-color:#000 !important;color:#fff !important;border-color:#000 !important}
html[data-a11y-kontrast="hell"] body > :not(#a11y-root) :is(a[href].elementor-button){border:2px solid #000 !important}

html[data-a11y-kontrast="dunkel"],html[data-a11y-kontrast="dunkel"] body{background:#000 !important;color:#fff !important}
html[data-a11y-kontrast="dunkel"] body > :not(#a11y-root),html[data-a11y-kontrast="dunkel"] body > :not(#a11y-root) *{background-color:#000 !important;color:#fff !important;border-color:#fff !important;outline-color:#fff}
html[data-a11y-kontrast="dunkel"] body > :not(#a11y-root) :is(a[href],a[href] *){color:#ffff3a !important}
html[data-a11y-kontrast="dunkel"] body > :not(#a11y-root) :is(button,input[type="submit"],input[type="button"],[role="button"],a[href].elementor-button,a[href].elementor-button *){background-color:#ffff3a !important;color:#000 !important;border-color:#fff !important}
html[data-a11y-kontrast="dunkel"] body > :not(#a11y-root) :is(a[href].elementor-button){border:2px solid #fff !important}
html[data-a11y-kontrast="dunkel"] body > :not(#a11y-root) svg{fill:currentColor}
html[data-a11y-kontrast="hell"] body > :not(#a11y-root) :is(button,[role="button"]) *{background-color:transparent !important;color:#fff !important}
html[data-a11y-kontrast="dunkel"] body > :not(#a11y-root) :is(button,[role="button"]) *{background-color:transparent !important;color:#000 !important}
