/* Astro2Match 8v56 – Barrierefreiheits-Basis
   Sicherer Grundschutz: Fokus, Lesbarkeit, reduzierte Bewegung und Screenreader-Hilfen. */

:root {
    --am-a11y-focus: #ffd166;
    --am-a11y-focus-soft: rgba(255, 209, 102, .28);
    --am-a11y-text-strong: #f7f8ff;
    --am-a11y-text-soft: rgba(226, 232, 255, .82);
}

.sr-only,
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--am-a11y-focus) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 6px var(--am-a11y-focus-soft) !important;
}

:where(button, input[type="button"], input[type="submit"], input[type="reset"], .nav-link, .button, .btn) {
    min-height: 38px;
}

:where(input, select, textarea) {
    font-size: 16px;
}

:where(label) {
    cursor: pointer;
}

:where(input[type="checkbox"], input[type="radio"]) {
    min-width: 18px;
    min-height: 18px;
    accent-color: #8b5cf6;
}

:where(.form-error, .fehler, .error, [role="alert"]) {
    border-radius: 12px;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.001ms !important;
    }

    .css-starfield,
    .seiten-hintergrund,
    [data-animation],
    .matrix-rain {
        animation: none !important;
    }
}

@media (forced-colors: active) {
    :where(a, button, input, select, textarea) {
        forced-color-adjust: auto;
    }
}

/* 8v57 – Zusatzklassen für den sichtbaren Barrierefreiheits-Schalter. */
html.am-a11y-large-text{font-size:18px}html.am-a11y-high-contrast body{color:#fff!important}

/* 8v58 – Skip-Link für Tastaturbedienung auf öffentlichen Seiten */
.am-skip-link {
    position: fixed;
    left: 16px;
    top: 12px;
    z-index: 10050;
    transform: translateY(-160%);
    padding: 10px 14px;
    border-radius: 999px;
    background: #fff;
    color: #141026;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 12px 32px rgba(0,0,0,.35);
}
.am-skip-link:focus,
.am-skip-link:focus-visible {
    transform: translateY(0);
}


/* 8v59 – Floating-Buttons entzerren: A11y nicht mehr unten mit Footer/anderen Symbolen überlappen lassen. */
.am-a11y-toggle{
    right:18px!important;
    bottom:92px!important;
    z-index:10020!important;
    min-width:58px!important;
    min-height:48px!important;
    box-shadow:0 10px 26px rgba(0,0,0,.42)!important;
}
.am-a11y-toggle:hover{
    transform:none!important;
    box-shadow:0 12px 30px rgba(0,0,0,.48)!important;
}
.am-a11y-panel{
    right:18px!important;
    bottom:154px!important;
    z-index:10019!important;
}
.footer-links{padding-right:110px;}
@media(max-width:640px){
    .am-a11y-toggle{
        right:12px!important;
        bottom:calc(146px + env(safe-area-inset-bottom, 0px))!important;
    }
    .am-a11y-panel{
        right:12px!important;
        bottom:calc(202px + env(safe-area-inset-bottom, 0px))!important;
        width:calc(100vw - 24px)!important;
        max-height:calc(100dvh - 150px)!important;
    }
    .footer-links{padding-right:86px;}
}

