/* ============================================
   Innovity Accessibility Plugin – Modes
   ============================================ */

/* Fokus-Indikator erzwingen */
body.inno-a11y-focus *:focus {
    outline: 3px solid #ffbf00 !important;
    outline-offset: 3px !important;
}

/* Hoher Kontrast */
body.inno-a11y-high-contrast {
    background: #000 !important;
    color: #fff !important;
    filter: none !important;
}
body.inno-a11y-high-contrast p,
body.inno-a11y-high-contrast li,
body.inno-a11y-high-contrast span,
body.inno-a11y-high-contrast div {
    color: #fff !important;
    background: #000 !important;
}
body.inno-a11y-high-contrast a {
    color: #ffff00 !important;
}
body.inno-a11y-high-contrast h1,
body.inno-a11y-high-contrast h2,
body.inno-a11y-high-contrast h3,
body.inno-a11y-high-contrast h4 {
    color: #ffff00 !important;
    background: #000 !important;
}
body.inno-a11y-high-contrast button,
body.inno-a11y-high-contrast input,
body.inno-a11y-high-contrast textarea {
    background: #000 !important;
    color: #fff !important;
    border: 2px solid #fff !important;
}
body.inno-a11y-high-contrast img {
    filter: contrast(1.2) brightness(0.9) !important;
}

/* Invertierte Farben */
body.inno-a11y-invert > *:not(#inno-a11y-toggle):not(#inno-a11y-panel):not(#inno-a11y-banner) {
    filter: invert(1) hue-rotate(180deg) !important;
}
body.inno-a11y-invert img,
body.inno-a11y-invert video,
body.inno-a11y-invert iframe {
    filter: invert(1) hue-rotate(180deg) !important;
}

/* Graustufen */
body.inno-a11y-grayscale > *:not(#inno-a11y-toggle):not(#inno-a11y-panel):not(#inno-a11y-banner) {
    filter: grayscale(1) !important;
}

/* Farblindheits-Filter via SVG-Filter */
body.inno-a11y-deutan > *:not(#inno-a11y-toggle):not(#inno-a11y-panel):not(#inno-a11y-banner) {
    filter: url('#inno-a11y-filter-deutan') !important;
}
body.inno-a11y-protan > *:not(#inno-a11y-toggle):not(#inno-a11y-panel):not(#inno-a11y-banner) {
    filter: url('#inno-a11y-filter-protan') !important;
}
body.inno-a11y-tritan > *:not(#inno-a11y-toggle):not(#inno-a11y-panel):not(#inno-a11y-banner) {
    filter: url('#inno-a11y-filter-tritan') !important;
}

/* Animationen deaktivieren */
body.inno-a11y-no-animations *,
body.inno-a11y-no-animations *::before,
body.inno-a11y-no-animations *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
}

/* Legasthenie-Schrift */
@font-face {
    font-family: 'OpenDyslexic';
    src: url('../fonts/OpenDyslexic/OpenDyslexic-Regular.woff2') format('woff2'),
         url('../fonts/OpenDyslexic/OpenDyslexic-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}
body.inno-a11y-dyslexia,
body.inno-a11y-dyslexia p,
body.inno-a11y-dyslexia li,
body.inno-a11y-dyslexia span,
body.inno-a11y-dyslexia a,
body.inno-a11y-dyslexia h1,
body.inno-a11y-dyslexia h2,
body.inno-a11y-dyslexia h3,
body.inno-a11y-dyslexia h4 {
    font-family: 'OpenDyslexic', sans-serif !important;
    line-height: 1.8 !important;
    letter-spacing: 0.05em !important;
    word-spacing: 0.2em !important;
}

/* Zeilenabstand */
body.inno-a11y-line-height-1 {
    line-height: 1.8 !important;
}
body.inno-a11y-line-height-1 p,
body.inno-a11y-line-height-1 li {
    line-height: 1.8 !important;
}
body.inno-a11y-line-height-2 {
    line-height: 2.4 !important;
}
body.inno-a11y-line-height-2 p,
body.inno-a11y-line-height-2 li {
    line-height: 2.4 !important;
}

/* Buchstabenabstand */
body.inno-a11y-letter-spacing-1 p,
body.inno-a11y-letter-spacing-1 li,
body.inno-a11y-letter-spacing-1 span {
    letter-spacing: 0.1em !important;
}
body.inno-a11y-letter-spacing-2 p,
body.inno-a11y-letter-spacing-2 li,
body.inno-a11y-letter-spacing-2 span {
    letter-spacing: 0.2em !important;
}

/* Großer Cursor */
body.inno-a11y-big-cursor,
body.inno-a11y-big-cursor * {
    cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><path d="M5 2 L5 35 L13 27 L19 38 L23 36 L17 25 L28 25 Z" fill="black" stroke="white" stroke-width="2"/></svg>') 5 2, auto !important;
}

/* Links hervorheben */
body.inno-a11y-highlight-links a {
    text-decoration: underline !important;
    text-decoration-thickness: 2px !important;
    outline: 1px dashed currentColor !important;
    outline-offset: 2px !important;
}

/* Schriftgröße */
body.inno-a11y-font-size-1 { font-size: 110% !important; }
body.inno-a11y-font-size-2 { font-size: 125% !important; }
body.inno-a11y-font-size-3 { font-size: 150% !important; }

/* SVG-Filter Container (unsichtbar) */
.inno-a11y-svg-filters {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}
