/* Barrierefreier Modus: konsistente, kontraststarke Farb- und Lesbarkeits-Overrides.
   Diese Datei wird zuletzt geladen und überschreibt bewusst Seiten-, Header- und Footer-Styles. */
html.accessibility-mode {
    color-scheme: light;
    --brand-yellow: #ffcc00;
    --brand-yellow-soft: #ffe680;
    --brand-yellow-pale: #fff3b0;
    --brand-black: #000000;
    --brand-ink: #0a0a0a;
    --brand-muted: #1f2933;
    --brand-bg: #fffdf2;
    --surface: #ffffff;
    --border: #000000;
    --error: #9b1c13;
    --error-soft: #fff0ed;
    --success: #005f2f;
    --focus-ring: #005fcc;
    --shadow-hard: 0 0 0 3px var(--brand-black);
    --shadow-soft: none;
}

html.accessibility-mode,
html.accessibility-mode body {
    background: var(--brand-bg);
}

html.accessibility-mode body {
    color: var(--brand-ink);
    font-size: 112.5%;
    line-height: 1.75;
}

html.accessibility-mode *,
html.accessibility-mode *::before,
html.accessibility-mode *::after {
    text-shadow: none !important;
}

html.accessibility-mode h1,
html.accessibility-mode h2,
html.accessibility-mode h3,
html.accessibility-mode p,
html.accessibility-mode li,
html.accessibility-mode small,
html.accessibility-mode label,
html.accessibility-mode legend,
html.accessibility-mode address,
html.accessibility-mode strong,
html.accessibility-mode .lead,
html.accessibility-mode .eyebrow {
    color: var(--brand-ink);
}

html.accessibility-mode h1,
html.accessibility-mode h2,
html.accessibility-mode h3 {
    letter-spacing: -0.02em;
}

html.accessibility-mode :where(a:not(.btn):not(.brand):not(.icon-link):not(.contact-option)) {
    color: #000000;
    text-decoration-line: underline;
    text-decoration-thickness: .16em;
    text-underline-offset: .2em;
}

html.accessibility-mode :where(a:not(.btn):not(.brand):not(.icon-link):not(.contact-option)):hover,
html.accessibility-mode :where(a:not(.btn):not(.brand):not(.icon-link):not(.contact-option)):focus-visible {
    color: #000000;
    background: var(--brand-yellow-soft);
}

html.accessibility-mode :where(a, button, input, textarea, select, [tabindex]):focus-visible {
    outline: 4px solid var(--focus-ring);
    outline-offset: 4px;
    box-shadow: 0 0 0 4px #ffffff, 0 0 0 8px var(--focus-ring) !important;
}

html.accessibility-mode .skip-link {
    color: #000000;
    background: var(--brand-yellow);
    border-color: #000000;
}

html.accessibility-mode .site-header {
    background: #ffffff;
    border-bottom: 5px solid #000000;
    box-shadow: none;
}

html.accessibility-mode .brand,
html.accessibility-mode .brand:hover,
html.accessibility-mode .brand:focus-visible {
    color: #000000;
    background: transparent;
}

html.accessibility-mode .nav-links>a,
html.accessibility-mode .nav-links>a.btn,
html.accessibility-mode .nav-toggle,
html.accessibility-mode .accessibility-toggle,
html.accessibility-mode .btn,
html.accessibility-mode .icon-link,
html.accessibility-mode .contact-option,
html.accessibility-mode .file-upload-box input[type="file"]::file-selector-button {
    color: #000000;
    background: var(--brand-yellow);
    border: 3px solid #000000;
    box-shadow: none;
    text-decoration: none !important;
}

html.accessibility-mode .nav-links>a:hover,
html.accessibility-mode .nav-links>a:focus-visible,
html.accessibility-mode .nav-toggle:hover,
html.accessibility-mode .nav-toggle:focus-visible,
html.accessibility-mode .accessibility-toggle:hover,
html.accessibility-mode .accessibility-toggle:focus-visible,
html.accessibility-mode .btn:hover,
html.accessibility-mode .btn:focus-visible,
html.accessibility-mode .icon-link:hover,
html.accessibility-mode .icon-link:focus-visible,
html.accessibility-mode .contact-option:hover,
html.accessibility-mode .contact-option:focus-visible,
html.accessibility-mode .file-upload-box input[type="file"]::file-selector-button:hover {
    color: #000000;
    background: #ffffff;
    border-color: #000000;
    transform: none;
}

html.accessibility-mode .nav-links>a[aria-current="page"],
html.accessibility-mode .nav-links>a.btn[aria-current="page"],
html.accessibility-mode .accessibility-toggle[aria-pressed="true"] {
    color: #ffffff;
    background: #000000;
    border-color: var(--brand-yellow);
}

html.accessibility-mode .nav-links>a[aria-current="page"]:hover,
html.accessibility-mode .nav-links>a[aria-current="page"]:focus-visible,
html.accessibility-mode .nav-links>a.btn[aria-current="page"]:hover,
html.accessibility-mode .nav-links>a.btn[aria-current="page"]:focus-visible,
html.accessibility-mode .accessibility-toggle[aria-pressed="true"]:hover,
html.accessibility-mode .accessibility-toggle[aria-pressed="true"]:focus-visible {
    color: #000000;
    background: var(--brand-yellow);
    border-color: #000000;
}

html.accessibility-mode .nav-links {
    color: #000000;
}

@media (max-width: 820px) {
    html.accessibility-mode .nav-links {
        background: #ffffff;
        border: 3px solid #000000;
    }
}

html.accessibility-mode .brand-hero,
html.accessibility-mode .application-hero {
    background: var(--brand-yellow);
    border-bottom: 5px solid #000000;
}

html.accessibility-mode .brand-hero::after,
html.accessibility-mode .application-hero::after {
    display: none;
}

html.accessibility-mode .brand-hero h1 span,
html.accessibility-mode .highlight-title,
html.accessibility-mode .application-hero h1 span {
    color: var(--brand-yellow);
    background: #000000;
    border: 2px solid #000000;
}

html.accessibility-mode .hero-pills li,
html.accessibility-mode .application-benefits li,
html.accessibility-mode .area-list li,
html.accessibility-mode code,
html.accessibility-mode .card-kicker,
html.accessibility-mode .application-card-kicker,
html.accessibility-mode .file-upload-box,
html.accessibility-mode .form-check,
html.accessibility-mode .checkbox,
html.accessibility-mode .contact-option {
    color: #000000;
    background: #ffffff;
    border: 3px solid #000000;
}

html.accessibility-mode .card-kicker,
html.accessibility-mode .application-card-kicker,
html.accessibility-mode .service-card::before {
    background: var(--brand-yellow);
}

html.accessibility-mode .card,
html.accessibility-mode .cta,
html.accessibility-mode .panel-card,
html.accessibility-mode .hero-info-card,
html.accessibility-mode .application-info-card,
html.accessibility-mode .application-form-card,
html.accessibility-mode .application-contact-card,
html.accessibility-mode .contact-form-card,
html.accessibility-mode .legal-card {
    color: var(--brand-ink);
    background: #ffffff;
    border: 3px solid #000000;
    box-shadow: none;
    transform: none;
}

html.accessibility-mode .section,
html.accessibility-mode .section-alt,
html.accessibility-mode .home-section,
html.accessibility-mode .services-section,
html.accessibility-mode .contact-section,
html.accessibility-mode .application-section,
html.accessibility-mode .legal-section,
html.accessibility-mode main {
    background: var(--brand-bg);
}

html.accessibility-mode .service-card::before,
html.accessibility-mode .legal-card h2,
html.accessibility-mode .form-section legend {
    border-color: #000000;
}

html.accessibility-mode .application-steps li>span,
html.accessibility-mode .file-upload-icon,
html.accessibility-mode .contact-option>span:first-child {
    color: var(--brand-yellow);
    background: #000000;
}

html.accessibility-mode .application-form-heading {
    border-bottom-color: #000000;
}

html.accessibility-mode .form input,
html.accessibility-mode .form textarea,
html.accessibility-mode .application-form input:not([type="checkbox"]):not([type="file"]),
html.accessibility-mode .application-form textarea,
html.accessibility-mode .application-form select {
    color: #000000;
    background: #ffffff;
    border: 3px solid #000000;
}

html.accessibility-mode .form input::placeholder,
html.accessibility-mode .form textarea::placeholder,
html.accessibility-mode .application-form input::placeholder,
html.accessibility-mode .application-form textarea::placeholder {
    color: #3a3a3a;
    opacity: 1;
}

html.accessibility-mode .form .help-text,
html.accessibility-mode .form-help,
html.accessibility-mode .file-upload-box p,
html.accessibility-mode .form-security-note,
html.accessibility-mode .optional-label {
    color: #1f2933;
}

html.accessibility-mode .optional-label {
    background: #f0f0f0;
    border: 1px solid #000000;
}

html.accessibility-mode .errorlist,
html.accessibility-mode .field-error,
html.accessibility-mode .form-error-summary,
html.accessibility-mode .form-error-summary h3,
html.accessibility-mode .form-error-summary p,
html.accessibility-mode .form-error-summary a,
html.accessibility-mode .required-marker {
    color: #7a120b;
}

html.accessibility-mode .field-error,
html.accessibility-mode .form-error-summary {
    background: var(--error-soft);
    border-color: var(--error);
}

html.accessibility-mode .message {
    color: #003f20;
    background: #e7fff0;
    border: 3px solid var(--success);
}

html.accessibility-mode .footer {
    background: #000000;
    color: #ffffff;
    border-top: 5px solid var(--brand-yellow);
}

html.accessibility-mode .footer p,
html.accessibility-mode .footer .small,
html.accessibility-mode .footer strong,
html.accessibility-mode .footer address {
    color: #ffffff;
}

html.accessibility-mode .footer a,
html.accessibility-mode .footer a:visited {
    color: #ffffff;
    background: transparent;
    text-decoration-line: underline;
    text-decoration-thickness: .14em;
    text-underline-offset: .2em;
}

html.accessibility-mode .footer a:hover,
html.accessibility-mode .footer a:focus-visible {
    color: #000000;
    background: var(--brand-yellow);
}

html.accessibility-mode .footer .social-icons a,
html.accessibility-mode .footer .social-icons a:visited {
    color: #ffffff;
    background: transparent;
}

html.accessibility-mode .footer .social-icons a:hover,
html.accessibility-mode .footer .social-icons a:focus-visible {
    color: var(--brand-yellow);
    background: transparent;
    opacity: 1;
}


html.accessibility-mode .shortcut-hint {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  min-height: 1.75rem;
  margin-left: 0.5rem;
  border: 2px solid currentColor;
  border-radius: 0.4rem;
  font-weight: 900;
  line-height: 1;
}

html.accessibility-mode .accessibility-toggle:focus-visible,
html.accessibility-mode [data-accessibility-key]:focus-visible {
  outline: 4px solid #ffdd00;
  outline-offset: 4px;
  box-shadow: 0 0 0 8px #000000;
}

html.accessibility-mode .toggle-shortcut-key {
  min-width: 1.75rem;
  min-height: 1.75rem;
  border-width: 2px;
  border-radius: 0.4rem;
}
