/**
 * Accessibility Widget - Custom Styling für NBH Grünwald
 * Überschreibt das Standard-Styling des accessibility_widget Moduls
 *
 * Farben basierend auf der NBH Grünwald Farbpalette:
 * - Primär: #005d83 (Petrol)
 * - Sekundär: #f9b000 (Orange)
 * - Accent: #17a2b8 (Cyan)
 */

/* ==========================================================================
   CRITICAL FIX: Filter-Eigenschaften brechen position:fixed
   Problem: CSS filter auf body erstellt einen neuen containing block,
   dadurch werden position:fixed Elemente relativ zum body statt viewport.
   Lösung: Filter vom body entfernen und auf Content-Wrapper anwenden.
   ========================================================================== */

/* Filter vom body entfernen */
body.high-saturation,
body.low-saturation,
body.monochrome {
    filter: none !important;
}

/* Filter auf alle Elemente anwenden AUSSER dem Accessibility Widget */
body.high-saturation > *:not(#accessibility-toggle):not(#accessibility-sidebar):not(.accessibility-toggle):not(.accessibility-sidebar):not(script):not(style) {
    filter: saturate(2) !important;
}

body.low-saturation > *:not(#accessibility-toggle):not(#accessibility-sidebar):not(.accessibility-toggle):not(.accessibility-sidebar):not(script):not(style) {
    filter: saturate(0.5) !important;
}

body.monochrome > *:not(#accessibility-toggle):not(#accessibility-sidebar):not(.accessibility-toggle):not(.accessibility-sidebar):not(script):not(style) {
    filter: grayscale(100%) !important;
}

/* Stelle sicher, dass das Accessibility Widget NIEMALS einen Filter bekommt
   und IMMER sichtbar bleibt (auch bei Schriftgrößen-Skalierung) */
#accessibility-toggle,
#accessibility-sidebar,
.accessibility-toggle,
.accessibility-sidebar {
    filter: none !important;
    position: fixed !important;
    transform: none !important;
    contain: none !important;
}

.accessibility-toggle {
    z-index: 9999 !important;
    visibility: visible !important;
    opacity: 1 !important;
    display: flex !important;
    pointer-events: auto !important;
}

/* ==========================================================================
   Toggle Button - Minimalistisch & Modern
   ========================================================================== */

.accessibility-toggle {
    position: fixed !important;
    bottom: 20px !important;
    left: 20px !important;
    width: 60px !important;
    height: 60px !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #005d83 !important;
    border: none !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
    transition: all 0.3s ease !important;
    z-index: 9999 !important;
    padding: 0 !important;
}

.accessibility-toggle:hover {
    transform: scale(1.1) !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4) !important;
}

.accessibility-toggle:focus {
    outline: 3px solid #f9b000 !important;
    outline-offset: 2px !important;
}

/* Verstecke das alte Icon */
.accessibility-toggle > span {
    display: none !important;
}

/* Neues Universal Access SVG Icon */
.accessibility-toggle::before {
    content: '' !important;
    display: block !important;
    width: 60px !important;
    height: 60px !important;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle fill='%23f5f5f7' stroke='%23005d83' stroke-width='32' stroke-miterlimit='10' cx='250.06' cy='251.06' r='223.9'%3E%3C/circle%3E%3Cpath fill='%23005d83' d='M322.34,415.45c-6.77-0.02-11.76-3.11-15.38-8.74c-16.74-26.05-33.5-52.1-50.3-78.11c-1.48-2.3-2.54-4.93-4.82-6.67c-1.51,2.2-3.07,4.36-4.51,6.6c-16.51,25.65-33.05,51.28-49.48,76.98c-4,6.25-9.1,10.17-16.87,9.94c-11.45-0.33-19.64-11.98-15.81-22.79c0.73-2.07,1.85-4.04,3.04-5.9c18.54-28.93,37.01-57.91,55.75-86.71c7.19-11.05,10.92-22.85,10.52-36.05c-0.23-7.36-0.09-14.74-0.01-22.11c0.02-1.86-0.14-2.81-2.47-3.06c-42.89-4.7-83.39-18.25-123.41-33.57c-6.68-2.56-12.34-6.15-14.02-13.86c-1.49-6.83,0.48-12.52,5.52-17.1c4.89-4.45,10.76-5.78,16.94-3.44c13.98,5.29,27.95,10.61,42.17,15.26c24.02,7.86,48.35,14.35,73.51,17.51c20.23,2.54,40.13,0.55,59.93-3.44c31.26-6.3,61.44-16.21,90.87-28.3c12.2-5.01,23.46,0.98,25.98,11.81c1.74,7.51-1.72,15.51-8.7,18.92c-11.99,5.85-24.71,9.9-37.28,14.27c-24.2,8.42-48.85,15.17-74.09,19.66c-5.86,1.04-11.8,1.63-17.71,2.39c-1.18,0.15-2.24,0.02-2.2,1.84c0.23,10.64-0.37,21.29,0.34,31.93c0.63,9.45,4.17,17.88,9.25,25.77c18.98,29.48,37.92,58.98,56.85,88.49c6.83,10.65,4.15,21.65-6.48,26.96C327.22,415.05,324.85,415.5,322.34,415.45z'%3E%3C/path%3E%3Ccircle fill='%23005d83' cx='251.31' cy='128.42' r='56.77'%3E%3C/circle%3E%3C/svg%3E") !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
}

/* ==========================================================================
   Sidebar - Clean & Aufgeräumt
   ========================================================================== */

.accessibility-sidebar {
    position: fixed !important;
    top: 0 !important;
    left: -400px !important;
    width: 380px !important;
    max-width: 100vw !important;
    height: 100vh !important;
    background: #f8f9fa !important;
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15) !important;
    transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 10000 !important;
    overflow-y: auto !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

.accessibility-sidebar.active {
    left: 0 !important;
}

/* ==========================================================================
   Sidebar Header
   ========================================================================== */

.accessibility-sidebar .sidebar-header {
    background: #e84622 !important;
    color: #ffffff !important;
    padding: 16px 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 10 !important;
}

.accessibility-sidebar .sidebar-header h2 {
    margin: 0 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
}

.accessibility-sidebar .reset-btn,
.accessibility-sidebar .close-btn {
    background: transparent !important;
    border: none !important;
    color: #ffffff !important;
    cursor: pointer !important;
    font-size: 20px !important;
    padding: 8px !important;
    border-radius: 4px !important;
    transition: background 0.2s ease !important;
    line-height: 1 !important;
}

.accessibility-sidebar .reset-btn:hover,
.accessibility-sidebar .close-btn:hover {
    background: rgba(255, 255, 255, 0.15) !important;
}

.accessibility-sidebar .reset-btn:focus,
.accessibility-sidebar .close-btn:focus {
    outline: 2px solid #f9b000 !important;
    outline-offset: 2px !important;
}

/* ==========================================================================
   Setting Groups & Sections
   ========================================================================== */

.accessibility-sidebar .setting-group {
    background: #ffffff !important;
    margin: 12px !important;
    border-radius: 8px !important;
    overflow: visible !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important;
}

.accessibility-sidebar .setting-section {
    padding: 16px !important;
}

.accessibility-sidebar .setting-section h3 {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #005d83 !important;
    margin: 0 0 12px 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}

/* ==========================================================================
   Dropdown Toggle (Sprache)
   ========================================================================== */

.accessibility-sidebar .dropdown-toggle {
    width: 100% !important;
    padding: 14px 16px !important;
    background: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    cursor: pointer !important;
    font-size: 14px !important;
    transition: background 0.2s ease !important;
}

.accessibility-sidebar .dropdown-toggle:hover {
    background: #f0f4f7 !important;
}

.accessibility-sidebar .dropdown-toggle .icon {
    font-size: 18px !important;
    margin-right: 10px !important;
}

.accessibility-sidebar .dropdown-toggle .arrow {
    color: #6c757d !important;
    font-size: 12px !important;
}

.accessibility-sidebar .dropdown-content {
    background: #ffffff !important;
    border: 1px solid #e9ecef !important;
    border-radius: 0 0 8px 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}

.accessibility-sidebar .language-option {
    width: 100% !important;
    padding: 12px 16px !important;
    background: transparent !important;
    border: none !important;
    text-align: left !important;
    cursor: pointer !important;
    font-size: 14px !important;
    transition: background 0.2s ease !important;
}

.accessibility-sidebar .language-option:hover {
    background: #f0f4f7 !important;
}

/* ==========================================================================
   Font Size Control
   ========================================================================== */

.accessibility-sidebar .font-size-control {
    background: #ffffff !important;
    border-radius: 8px !important;
    padding: 16px !important;
    margin-bottom: 16px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important;
}

.accessibility-sidebar .font-size-control .label {
    display: block !important;
    font-size: 13px !important;
    color: #495057 !important;
    margin-bottom: 12px !important;
    text-align: center !important;
}

.accessibility-sidebar .control-group {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
}

.accessibility-sidebar .control-btn {
    width: 40px !important;
    height: 40px !important;
    border: 2px solid #dee2e6 !important;
    background: #ffffff !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #005d83 !important;
    transition: all 0.2s ease !important;
}

.accessibility-sidebar .control-btn:hover {
    border-color: #005d83 !important;
    background: #f0f4f7 !important;
}

.accessibility-sidebar .control-btn:focus {
    outline: 2px solid #f9b000 !important;
    outline-offset: 2px !important;
}

.accessibility-sidebar .value {
    font-size: 16px !important;
    font-weight: 600 !important;
    min-width: 60px !important;
    text-align: center !important;
    color: #212529 !important;
}

/* ==========================================================================
   Option Grid - Feature Buttons
   ========================================================================== */

.accessibility-sidebar .option-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
}

.accessibility-sidebar .option-btn {
    background: #ffffff !important;
    border: 2px solid #e9ecef !important;
    border-radius: 8px !important;
    padding: 12px 8px !important;
    cursor: pointer !important;
    text-align: center !important;
    transition: all 0.2s ease !important;
}

.accessibility-sidebar .option-btn:hover {
    border-color: #005d83 !important;
    background: #f0f4f7 !important;
}

.accessibility-sidebar .option-btn:focus {
    outline: 2px solid #f9b000 !important;
    outline-offset: 2px !important;
}

.accessibility-sidebar .option-btn.active {
    border-color: #005d83 !important;
    background: rgba(0, 93, 131, 0.08) !important;
    box-shadow: inset 0 0 0 1px #005d83 !important;
}

.accessibility-sidebar .option-icon {
    display: block !important;
    font-size: 20px !important;
    margin-bottom: 6px !important;
    color: #005d83 !important;
}

.accessibility-sidebar .option-btn span:last-child {
    font-size: 11px !important;
    display: block !important;
    color: #495057 !important;
    line-height: 1.3 !important;
}

.accessibility-sidebar .option-btn.active .option-icon,
.accessibility-sidebar .option-btn.active span:last-child {
    color: #005d83 !important;
}

/* ==========================================================================
   Color Picker
   ========================================================================== */

.accessibility-sidebar .color-picker-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
    margin-top: 12px !important;
}

.accessibility-sidebar .color-picker-group {
    background: #ffffff !important;
    border-radius: 8px !important;
    padding: 10px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important;
}

.accessibility-sidebar .color-picker-group label {
    display: block !important;
    font-size: 10px !important;
    margin-bottom: 8px !important;
    text-align: center !important;
    color: #6c757d !important;
}

.accessibility-sidebar .color-options {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 4px !important;
}

.accessibility-sidebar .color-btn {
    width: 100% !important;
    height: 28px !important;
    border: 2px solid #e9ecef !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.accessibility-sidebar .color-btn:hover {
    transform: scale(1.05) !important;
    border-color: #005d83 !important;
}

.accessibility-sidebar .color-btn:focus {
    outline: 2px solid #f9b000 !important;
    outline-offset: 1px !important;
}

.accessibility-sidebar .cancel-btn {
    grid-column: span 2 !important;
    background: #f8f9fa !important;
    border: 1px solid #dee2e6 !important;
    padding: 6px !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    font-size: 10px !important;
    color: #6c757d !important;
    transition: all 0.2s ease !important;
}

.accessibility-sidebar .cancel-btn:hover {
    background: #e9ecef !important;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.accessibility-sidebar .sidebar-footer {
    padding: 16px !important;
    text-align: center !important;
    border-top: 1px solid #e9ecef !important;
    background: #f8f9fa !important;
}

.accessibility-sidebar .footer-link {
    display: inline-block !important;
    color: #005d83 !important;
    text-decoration: none !important;
    font-size: 13px !important;
    margin: 6px 12px !important;
    transition: color 0.2s ease !important;
}

.accessibility-sidebar .footer-link:hover {
    color: #004a69 !important;
    text-decoration: underline !important;
}

.accessibility-sidebar .powered-by {
    margin-top: 12px !important;
    font-size: 11px !important;
    color: #6c757d !important;
}

/* ==========================================================================
   Reading Guide
   ========================================================================== */

.reading-guide {
    background: rgba(249, 176, 0, 0.25) !important;
}

/* ==========================================================================
   Responsive Design
   ========================================================================== */

@media (max-width: 480px) {
    .accessibility-sidebar {
        width: 100% !important;
        left: -100% !important;
    }

    .accessibility-sidebar.active {
        left: 0 !important;
    }

    .accessibility-sidebar .option-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .accessibility-sidebar .color-picker-grid {
        grid-template-columns: 1fr !important;
    }

    .accessibility-toggle {
        bottom: 16px !important;
        left: 16px !important;
        width: 48px !important;
        height: 48px !important;
    }

    .accessibility-toggle::before {
        width: 48px !important;
        height: 48px !important;
    }
}

/* ==========================================================================
   High Contrast Override für Focus States
   ========================================================================== */

@media (prefers-contrast: high) {
    .accessibility-toggle:focus,
    .accessibility-sidebar .option-btn:focus,
    .accessibility-sidebar .control-btn:focus {
        outline: 3px solid #000000 !important;
        outline-offset: 3px !important;
    }
}

/* ==========================================================================
   Reduced Motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    .accessibility-toggle,
    .accessibility-sidebar,
    .accessibility-sidebar .option-btn,
    .accessibility-sidebar .control-btn,
    .accessibility-sidebar .color-btn {
        transition: none !important;
    }
}

/* ==========================================================================
   Font Size Scaling Fix für rem-basierte Schriftgrößen
   Das Widget setzt font-size auf body, aber rem ist relativ zu html.
   Diese Regeln stellen sicher, dass rem-Werte korrekt skalieren.
   ========================================================================== */

html:has(body.font-size-125) {
    font-size: 125% !important;
}

html:has(body.font-size-150) {
    font-size: 150% !important;
}

html:has(body.font-size-175) {
    font-size: 175% !important;
}

html:has(body.font-size-200) {
    font-size: 200% !important;
}

/* Fix: Widget setzt font-size auch auf body (200% von html 200% = 400% Doppel-Skalierung).
   Neutralisiere die body-Regel, damit nur html die Skalierung steuert. */
body.font-size-125,
body.font-size-150,
body.font-size-175,
body.font-size-200 {
    font-size: 1.1875rem !important;
}

@media screen and (min-width: 992px) {
    body.font-size-125,
    body.font-size-150,
    body.font-size-175,
    body.font-size-200 {
        font-size: 1.4375rem !important;
    }
}

/* ==========================================================================
   Dark Mode / Kontrast-Modi - Header & Navigation Overrides
   ========================================================================== */

/* Dark Contrast Mode */
body.dark-contrast .site-header,
body.dark-contrast .site-header .container,
body.dark-contrast header,
body.dark-contrast nav,
body.dark-contrast .navbar,
body.dark-contrast .brand-nav,
body.dark-contrast #block-branding,
body.dark-contrast .menu-text,
body.dark-contrast .subheader,
body.dark-contrast .sf-menu,
body.dark-contrast .sf-menu li,
body.dark-contrast .sf-menu ul {
    background-color: #000 !important;
    color: #fff !important;
}

body.dark-contrast .site-header a,
body.dark-contrast #block-branding a,
body.dark-contrast .sf-menu a,
body.dark-contrast .sf-menu span.nolink,
body.dark-contrast .menu-text,
body.dark-contrast nav a {
    color: #4dabf7 !important;
}

body.dark-contrast .hamburger-inner,
body.dark-contrast .hamburger-inner::before,
body.dark-contrast .hamburger-inner::after {
    background-color: #fff !important;
}

/* Dark Mode */
body.dark-mode .site-header,
body.dark-mode .site-header .container,
body.dark-mode header,
body.dark-mode nav,
body.dark-mode .navbar,
body.dark-mode .brand-nav,
body.dark-mode #block-branding,
body.dark-mode .menu-text,
body.dark-mode .subheader,
body.dark-mode .sf-menu,
body.dark-mode .sf-menu li,
body.dark-mode .sf-menu ul {
    background-color: #1a1a1a !important;
    color: #e0e0e0 !important;
}

body.dark-mode .site-header a,
body.dark-mode #block-branding a,
body.dark-mode .sf-menu a,
body.dark-mode .sf-menu span.nolink,
body.dark-mode .menu-text,
body.dark-mode nav a {
    color: #e0e0e0 !important;
}

body.dark-mode .hamburger-inner,
body.dark-mode .hamburger-inner::before,
body.dark-mode .hamburger-inner::after {
    background-color: #e0e0e0 !important;
}

/* High Contrast Mode */
body.high-contrast .site-header,
body.high-contrast .site-header .container,
body.high-contrast header,
body.high-contrast nav,
body.high-contrast .navbar,
body.high-contrast .brand-nav,
body.high-contrast #block-branding,
body.high-contrast .menu-text,
body.high-contrast .subheader,
body.high-contrast .sf-menu,
body.high-contrast .sf-menu li,
body.high-contrast .sf-menu ul {
    background-color: #000 !important;
    color: #ff0 !important;
}

body.high-contrast .site-header a,
body.high-contrast #block-branding a,
body.high-contrast .sf-menu a,
body.high-contrast .sf-menu span.nolink,
body.high-contrast .menu-text,
body.high-contrast nav a {
    color: #0ff !important;
}

body.high-contrast .hamburger-inner,
body.high-contrast .hamburger-inner::before,
body.high-contrast .hamburger-inner::after {
    background-color: #ff0 !important;
}

/* Light Contrast Mode */
body.light-contrast .site-header,
body.light-contrast .site-header .container,
body.light-contrast header,
body.light-contrast nav,
body.light-contrast .navbar,
body.light-contrast .brand-nav,
body.light-contrast #block-branding,
body.light-contrast .menu-text,
body.light-contrast .subheader,
body.light-contrast .sf-menu,
body.light-contrast .sf-menu li,
body.light-contrast .sf-menu ul {
    background-color: #fff !important;
    color: #000 !important;
}

body.light-contrast .site-header a,
body.light-contrast #block-branding a,
body.light-contrast .sf-menu a,
body.light-contrast .sf-menu span.nolink,
body.light-contrast .menu-text,
body.light-contrast nav a {
    color: #000 !important;
}

/* Footer in Dark/Contrast Modes - mit Overlay statt hartem Schwarz */

/* Dark Contrast Footer - Overlay */
body.dark-contrast .footer-container {
    position: relative !important;
}

body.dark-contrast .footer-container::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.75) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-contrast .footer-container > *,
body.dark-contrast footer,
body.dark-contrast footer .container,
body.dark-contrast footer .block,
body.dark-contrast footer .body,
body.dark-contrast footer nav {
    position: relative !important;
    z-index: 1 !important;
    background-color: transparent !important;
    color: #fff !important;
}

body.dark-contrast footer a,
body.dark-contrast footer li,
body.dark-contrast footer p,
body.dark-contrast footer strong,
body.dark-contrast .footer-container a,
body.dark-contrast .social-media a,
body.dark-contrast .social-media i {
    color: #4dabf7 !important;
}

body.dark-contrast footer li,
body.dark-contrast footer p,
body.dark-contrast footer strong {
    color: #fff !important;
}

/* Dark Mode Footer - Overlay */
body.dark-mode .footer-container {
    position: relative !important;
}

body.dark-mode .footer-container::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.7) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-mode .footer-container > *,
body.dark-mode footer,
body.dark-mode footer .container,
body.dark-mode footer .block,
body.dark-mode footer .body,
body.dark-mode footer nav {
    position: relative !important;
    z-index: 1 !important;
    background-color: transparent !important;
    color: #e0e0e0 !important;
}

body.dark-mode footer a,
body.dark-mode .footer-container a,
body.dark-mode .social-media a,
body.dark-mode .social-media i {
    color: #e0e0e0 !important;
}

body.dark-mode footer li,
body.dark-mode footer p,
body.dark-mode footer strong {
    color: #e0e0e0 !important;
}

/* High Contrast Footer - Overlay */
body.high-contrast .footer-container {
    position: relative !important;
}

body.high-contrast .footer-container::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.85) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.high-contrast .footer-container > *,
body.high-contrast footer,
body.high-contrast footer .container,
body.high-contrast footer .block,
body.high-contrast footer .body,
body.high-contrast footer nav {
    position: relative !important;
    z-index: 1 !important;
    background-color: transparent !important;
    color: #ff0 !important;
}

body.high-contrast footer a,
body.high-contrast .footer-container a,
body.high-contrast .social-media a,
body.high-contrast .social-media i {
    color: #0ff !important;
}

body.high-contrast footer li,
body.high-contrast footer p,
body.high-contrast footer strong {
    color: #ff0 !important;
}

/* Light Contrast Footer */
body.light-contrast .footer-container,
body.light-contrast footer,
body.light-contrast footer .container,
body.light-contrast footer .block,
body.light-contrast footer .body,
body.light-contrast footer nav {
    background-color: #fff !important;
    color: #000 !important;
}

body.light-contrast footer a,
body.light-contrast footer li,
body.light-contrast footer p,
body.light-contrast footer strong,
body.light-contrast .footer-container a,
body.light-contrast .social-media a,
body.light-contrast .social-media i {
    color: #000 !important;
}

/* ==========================================================================
   Content / Body Wrapper - Dark/Contrast Modes
   ========================================================================== */

/* Dark Contrast - Content */
body.dark-contrast .body-wrapper,
body.dark-contrast .body-wrapper .container,
body.dark-contrast .body-wrapper .body,
body.dark-contrast main,
body.dark-contrast .main-content,
body.dark-contrast article,
body.dark-contrast .node,
body.dark-contrast .block,
body.dark-contrast .region-content,
body.dark-contrast .field {
    background-color: #000 !important;
    color: #fff !important;
}

body.dark-contrast .body-wrapper h1,
body.dark-contrast .body-wrapper h2,
body.dark-contrast .body-wrapper h3,
body.dark-contrast .body-wrapper h4,
body.dark-contrast .body-wrapper h5,
body.dark-contrast .body-wrapper h6,
body.dark-contrast .body-wrapper p,
body.dark-contrast .body-wrapper li,
body.dark-contrast .body-wrapper strong,
body.dark-contrast main h1,
body.dark-contrast main h2,
body.dark-contrast main h3,
body.dark-contrast main p,
body.dark-contrast main li,
body.dark-contrast main strong {
    color: #fff !important;
}

body.dark-contrast .body-wrapper a,
body.dark-contrast main a {
    color: #4dabf7 !important;
}

/* Dark Mode - Content */
body.dark-mode .body-wrapper,
body.dark-mode .body-wrapper .container,
body.dark-mode .body-wrapper .body,
body.dark-mode main,
body.dark-mode .main-content,
body.dark-mode article,
body.dark-mode .node,
body.dark-mode .block,
body.dark-mode .region-content,
body.dark-mode .field {
    background-color: #1a1a1a !important;
    color: #e0e0e0 !important;
}

body.dark-mode .body-wrapper h1,
body.dark-mode .body-wrapper h2,
body.dark-mode .body-wrapper h3,
body.dark-mode .body-wrapper h4,
body.dark-mode .body-wrapper h5,
body.dark-mode .body-wrapper h6,
body.dark-mode .body-wrapper p,
body.dark-mode .body-wrapper li,
body.dark-mode .body-wrapper strong,
body.dark-mode main h1,
body.dark-mode main h2,
body.dark-mode main h3,
body.dark-mode main p,
body.dark-mode main li,
body.dark-mode main strong {
    color: #e0e0e0 !important;
}

body.dark-mode .body-wrapper a,
body.dark-mode main a {
    color: #e0e0e0 !important;
}

/* High Contrast - Content */
body.high-contrast .body-wrapper,
body.high-contrast .body-wrapper .container,
body.high-contrast .body-wrapper .body,
body.high-contrast main,
body.high-contrast .main-content,
body.high-contrast article,
body.high-contrast .node,
body.high-contrast .block,
body.high-contrast .region-content,
body.high-contrast .field {
    background-color: #000 !important;
    color: #ff0 !important;
}

body.high-contrast .body-wrapper h1,
body.high-contrast .body-wrapper h2,
body.high-contrast .body-wrapper h3,
body.high-contrast .body-wrapper h4,
body.high-contrast .body-wrapper h5,
body.high-contrast .body-wrapper h6,
body.high-contrast .body-wrapper p,
body.high-contrast .body-wrapper li,
body.high-contrast .body-wrapper strong,
body.high-contrast main h1,
body.high-contrast main h2,
body.high-contrast main h3,
body.high-contrast main p,
body.high-contrast main li,
body.high-contrast main strong {
    color: #ff0 !important;
}

body.high-contrast .body-wrapper a,
body.high-contrast main a {
    color: #0ff !important;
}

/* Light Contrast - Content */
body.light-contrast .body-wrapper,
body.light-contrast .body-wrapper .container,
body.light-contrast .body-wrapper .body,
body.light-contrast main,
body.light-contrast .main-content,
body.light-contrast article,
body.light-contrast .node,
body.light-contrast .block,
body.light-contrast .region-content,
body.light-contrast .field {
    background-color: #fff !important;
    color: #000 !important;
}

body.light-contrast .body-wrapper h1,
body.light-contrast .body-wrapper h2,
body.light-contrast .body-wrapper h3,
body.light-contrast .body-wrapper h4,
body.light-contrast .body-wrapper h5,
body.light-contrast .body-wrapper h6,
body.light-contrast .body-wrapper p,
body.light-contrast .body-wrapper li,
body.light-contrast .body-wrapper strong,
body.light-contrast main h1,
body.light-contrast main h2,
body.light-contrast main h3,
body.light-contrast main p,
body.light-contrast main li,
body.light-contrast main strong {
    color: #000 !important;
}

body.light-contrast .body-wrapper a,
body.light-contrast main a {
    color: #000 !important;
}

/* ==========================================================================
   Slider - Ausnahmen für Dark/Contrast Modes
   Der Slider soll transparent bleiben, damit Bilder sichtbar sind.
   ========================================================================== */

body.dark-contrast .slick,
body.dark-contrast .slick__slider,
body.dark-contrast .slick-list,
body.dark-contrast .slick-track,
body.dark-contrast .slick__slide,
body.dark-contrast .slick-slide,
body.dark-contrast .media,
body.dark-contrast .media--blazy,
body.dark-contrast .media--image,
body.dark-contrast .views-field-field-slide-image,
body.dark-contrast .field-content,
body.dark-contrast .view--blazy,
body.dark-contrast #block-vanity-views-block-slider-block-1,
body.dark-contrast #block-vanity-views-block-slider-block-1 *,
body.dark-mode .slick,
body.dark-mode .slick__slider,
body.dark-mode .slick-list,
body.dark-mode .slick-track,
body.dark-mode .slick__slide,
body.dark-mode .slick-slide,
body.dark-mode .media,
body.dark-mode .media--blazy,
body.dark-mode .media--image,
body.dark-mode .views-field-field-slide-image,
body.dark-mode .field-content,
body.dark-mode .view--blazy,
body.dark-mode #block-vanity-views-block-slider-block-1,
body.dark-mode #block-vanity-views-block-slider-block-1 *,
body.high-contrast .slick,
body.high-contrast .slick__slider,
body.high-contrast .slick-list,
body.high-contrast .slick-track,
body.high-contrast .slick__slide,
body.high-contrast .slick-slide,
body.high-contrast .media,
body.high-contrast .media--blazy,
body.high-contrast .media--image,
body.high-contrast .views-field-field-slide-image,
body.high-contrast .field-content,
body.high-contrast .view--blazy,
body.high-contrast #block-vanity-views-block-slider-block-1,
body.high-contrast #block-vanity-views-block-slider-block-1 *,
body.light-contrast .slick,
body.light-contrast .slick__slider,
body.light-contrast .slick-list,
body.light-contrast .slick-track,
body.light-contrast .slick__slide,
body.light-contrast .slick-slide,
body.light-contrast .media,
body.light-contrast .media--blazy,
body.light-contrast .media--image,
body.light-contrast .views-field-field-slide-image,
body.light-contrast .field-content,
body.light-contrast .view--blazy,
body.light-contrast #block-vanity-views-block-slider-block-1,
body.light-contrast #block-vanity-views-block-slider-block-1 * {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* ==========================================================================
   Views Blocks (Termine, Aktuelles, Pressemitteilungen)
   ========================================================================== */

/* Dark Contrast - Views Blocks (Container) */
body.dark-contrast .views-element-container,
body.dark-contrast .view-content,
body.dark-contrast .views-row,
body.dark-contrast .press-row,
body.dark-contrast .eventdate-wrapper,
body.dark-contrast .eventdate-title,
body.dark-contrast .eventdate-text,
body.dark-contrast .eventdate-teaser,
body.dark-contrast .grid,
body.dark-contrast #block-vanity-views-block-termine-block-1,
body.dark-contrast #block-vanity-views-block-pressemitteilung-block-1 {
    background-color: transparent !important;
    color: #fff !important;
}

/* Dark Contrast - Press Wrapper: dunkler Hintergrund, Bilder unberührt */
body.dark-contrast .press-wrapper {
    background-color: #1a1a1a !important;
    border-bottom-color: #333 !important;
}

body.dark-contrast .press-wrapper::after {
    content: none !important;
}

body.dark-contrast .press-wrapper .press-image img {
    filter: none !important;
    opacity: 1 !important;
}

body.dark-contrast .press-title,
body.dark-contrast .press-body {
    background-color: transparent !important;
}

body.dark-contrast .views-element-container h2,
body.dark-contrast .views-element-container h3,
body.dark-contrast .press-title h3,
body.dark-contrast .eventdate-title h3,
body.dark-contrast .press-body p,
body.dark-contrast .eventdate-text {
    color: #fff !important;
}

body.dark-contrast .views-element-container a,
body.dark-contrast .press-title a,
body.dark-contrast .eventdate-title a,
body.dark-contrast .press-body a {
    color: #4dabf7 !important;
}

/* Dark Mode - Views Blocks (Container) */
body.dark-mode .views-element-container,
body.dark-mode .view-content,
body.dark-mode .views-row,
body.dark-mode .press-row,
body.dark-mode .eventdate-wrapper,
body.dark-mode .eventdate-title,
body.dark-mode .eventdate-text,
body.dark-mode .eventdate-teaser,
body.dark-mode .grid,
body.dark-mode #block-vanity-views-block-termine-block-1,
body.dark-mode #block-vanity-views-block-pressemitteilung-block-1 {
    background-color: transparent !important;
    color: #e0e0e0 !important;
}

/* Dark Mode - Press Wrapper: dunkler Hintergrund, Bilder unberührt */
body.dark-mode .press-wrapper {
    background-color: #2a2a2a !important;
    border-bottom-color: #444 !important;
}

body.dark-mode .press-wrapper::after {
    content: none !important;
}

body.dark-mode .press-wrapper .press-image img {
    filter: none !important;
    opacity: 1 !important;
}

body.dark-mode .press-title,
body.dark-mode .press-body {
    background-color: transparent !important;
}

body.dark-mode .views-element-container h2,
body.dark-mode .views-element-container h3,
body.dark-mode .press-title h3,
body.dark-mode .eventdate-title h3,
body.dark-mode .press-body p,
body.dark-mode .eventdate-text {
    color: #e0e0e0 !important;
}

body.dark-mode .views-element-container a,
body.dark-mode .press-title a,
body.dark-mode .eventdate-title a,
body.dark-mode .press-body a {
    color: #e0e0e0 !important;
}

/* High Contrast - Views Blocks (Container) */
body.high-contrast .views-element-container,
body.high-contrast .view-content,
body.high-contrast .views-row,
body.high-contrast .press-row,
body.high-contrast .eventdate-wrapper,
body.high-contrast .eventdate-title,
body.high-contrast .eventdate-text,
body.high-contrast .eventdate-teaser,
body.high-contrast .grid,
body.high-contrast #block-vanity-views-block-termine-block-1,
body.high-contrast #block-vanity-views-block-pressemitteilung-block-1 {
    background-color: transparent !important;
    color: #ff0 !important;
}

/* High Contrast - Press Wrapper mit Overlay */
body.high-contrast .press-wrapper {
    position: relative !important;
    background-color: transparent !important;
}

body.high-contrast .press-wrapper::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.85) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.high-contrast .press-wrapper > *:not(.press-image) {
    position: relative !important;
    z-index: 1 !important;
}

body.high-contrast .press-wrapper > .press-image {
    z-index: 1 !important;
}

body.high-contrast .press-title,
body.high-contrast .press-body {
    background-color: transparent !important;
}

body.high-contrast .views-element-container h2,
body.high-contrast .views-element-container h3,
body.high-contrast .press-title h3,
body.high-contrast .eventdate-title h3,
body.high-contrast .press-body p,
body.high-contrast .eventdate-text {
    color: #ff0 !important;
}

body.high-contrast .views-element-container a,
body.high-contrast .press-title a,
body.high-contrast .eventdate-title a,
body.high-contrast .press-body a {
    color: #0ff !important;
}

/* Light Contrast - Views Blocks */
body.light-contrast .views-element-container,
body.light-contrast .view-content,
body.light-contrast .views-row,
body.light-contrast .press-row,
body.light-contrast .press-wrapper,
body.light-contrast .press-title,
body.light-contrast .press-body,
body.light-contrast .eventdate-wrapper,
body.light-contrast .eventdate-title,
body.light-contrast .eventdate-text,
body.light-contrast .eventdate-teaser,
body.light-contrast .grid,
body.light-contrast #block-vanity-views-block-termine-block-1,
body.light-contrast #block-vanity-views-block-pressemitteilung-block-1 {
    background-color: #fff !important;
    color: #000 !important;
}

body.light-contrast .views-element-container h2,
body.light-contrast .views-element-container h3,
body.light-contrast .press-title h3,
body.light-contrast .eventdate-title h3,
body.light-contrast .press-body p,
body.light-contrast .eventdate-text {
    color: #000 !important;
}

body.light-contrast .views-element-container a,
body.light-contrast .press-title a,
body.light-contrast .eventdate-title a,
body.light-contrast .press-body a {
    color: #000 !important;
}

/* ==========================================================================
   Boxen / Kacheln (field-boxen-bereich)
   ========================================================================== */

/* Dark Contrast - Boxen (Hintergrundfarben bleiben erhalten, Overlay verdunkelt) */
body.dark-contrast .field-boxen-bereich-1,
body.dark-contrast .field-boxen-bereich-2 {
    background-color: transparent !important;
}

/* section.box behält seine Original-Hintergrundfarbe (term-2, term-5, term-6, term-19, etc.) */

body.dark-contrast section.box h2,
body.dark-contrast section.box h2 span,
body.dark-contrast section.box .field-teaser,
body.dark-contrast section.box .field-teaser p,
body.dark-contrast section.box a.field-link {
    color: #fff !important;
}

body.dark-contrast section.box a.read-more {
    color: #4dabf7 !important;
}

body.dark-contrast .bereich {
    background-color: #333 !important;
    color: #fff !important;
}

/* Dark Mode - Boxen (Hintergrundfarben bleiben erhalten, Overlay verdunkelt) */
body.dark-mode .field-boxen-bereich-1,
body.dark-mode .field-boxen-bereich-2 {
    background-color: transparent !important;
}

/* section.box behält seine Original-Hintergrundfarbe (term-2, term-5, term-6, term-19, etc.) */

body.dark-mode section.box h2,
body.dark-mode section.box h2 span,
body.dark-mode section.box .field-teaser,
body.dark-mode section.box .field-teaser p,
body.dark-mode section.box a.field-link {
    color: #e0e0e0 !important;
}

body.dark-mode section.box a.read-more {
    color: #e0e0e0 !important;
}

body.dark-mode .bereich {
    background-color: #333 !important;
    color: #e0e0e0 !important;
}

/* High Contrast - Boxen (Hintergrundfarben bleiben erhalten, Overlay verdunkelt) */
body.high-contrast .field-boxen-bereich-1,
body.high-contrast .field-boxen-bereich-2 {
    background-color: transparent !important;
}

/* section.box behält seine Original-Hintergrundfarbe (term-2, term-5, term-6, term-19, etc.) */

body.high-contrast section.box h2,
body.high-contrast section.box h2 span,
body.high-contrast section.box .field-teaser,
body.high-contrast section.box .field-teaser p,
body.high-contrast section.box a.field-link {
    color: #ff0 !important;
}

body.high-contrast section.box a.read-more {
    color: #0ff !important;
}

body.high-contrast .bereich {
    background-color: #333 !important;
    color: #ff0 !important;
}

/* Light Contrast - Boxen (Hintergrundfarben bleiben erhalten) */
body.light-contrast .field-boxen-bereich-1,
body.light-contrast .field-boxen-bereich-2 {
    background-color: transparent !important;
}

/* section.box behält seine Original-Hintergrundfarbe (term-2, term-5, term-6, term-19, etc.) */

body.light-contrast section.box h2,
body.light-contrast section.box h2 span,
body.light-contrast section.box .field-teaser,
body.light-contrast section.box .field-teaser p,
body.light-contrast section.box a.field-link {
    color: #000 !important;
}

body.light-contrast section.box a.read-more {
    color: #000 !important;
}

body.light-contrast .bereich {
    background-color: #eee !important;
    color: #000 !important;
}

/* Bilder in Boxen transparent halten */
body.dark-contrast .media-image,
body.dark-contrast .field-bild,
body.dark-mode .media-image,
body.dark-mode .field-bild,
body.high-contrast .media-image,
body.high-contrast .field-bild,
body.light-contrast .media-image,
body.light-contrast .field-bild {
    background-color: transparent !important;
}

/* ==========================================================================
   Box Hintergrundbilder - Dark Mode Overlay
   Legt einen dunklen Filter über die Hintergrundbilder der Boxen,
   damit der Text lesbar bleibt.
   ========================================================================== */

/* Dark Contrast - Hintergrundbilder abdunkeln mit Overlay */
body.dark-contrast section.box {
    position: relative !important;
}

body.dark-contrast section.box::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.7) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-contrast section.box > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Dark Mode - Hintergrundbilder abdunkeln mit Overlay */
body.dark-mode section.box {
    position: relative !important;
}

body.dark-mode section.box::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.65) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-mode section.box > * {
    position: relative !important;
    z-index: 1 !important;
}

/* High Contrast - Hintergrundbilder stark abdunkeln mit Overlay */
body.high-contrast section.box {
    position: relative !important;
}

body.high-contrast section.box::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.8) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.high-contrast section.box > * {
    position: relative !important;
    z-index: 1 !important;
}

/* ==========================================================================
   Paragraph Background Sections - Dark Mode Overlay
   .background-signature-secondary hat background: #dfeefb (hellblau)
   .background-signature-primary hat background: #005d83 (dunkelblau)
   ========================================================================== */

/* Dark Contrast - Paragraph Backgrounds mit Overlay */
body.dark-contrast .paragraph.background-signature-secondary,
body.dark-contrast .paragraph.background-signature-primary {
    position: relative !important;
}

body.dark-contrast .paragraph.background-signature-secondary::before,
body.dark-contrast .paragraph.background-signature-primary::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.75) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-contrast .paragraph.background-signature-secondary > *,
body.dark-contrast .paragraph.background-signature-primary > * {
    position: relative !important;
    z-index: 1 !important;
}

body.dark-contrast .paragraph.background-signature-secondary h2,
body.dark-contrast .paragraph.background-signature-secondary h3,
body.dark-contrast .paragraph.background-signature-secondary p,
body.dark-contrast .paragraph.background-signature-secondary li,
body.dark-contrast .paragraph.background-signature-primary h2,
body.dark-contrast .paragraph.background-signature-primary h3,
body.dark-contrast .paragraph.background-signature-primary p,
body.dark-contrast .paragraph.background-signature-primary li {
    color: #fff !important;
}

body.dark-contrast .paragraph.background-signature-secondary a,
body.dark-contrast .paragraph.background-signature-primary a {
    color: #4dabf7 !important;
}

/* Dark Mode - Paragraph Backgrounds mit Overlay */
body.dark-mode .paragraph.background-signature-secondary,
body.dark-mode .paragraph.background-signature-primary {
    position: relative !important;
}

body.dark-mode .paragraph.background-signature-secondary::before,
body.dark-mode .paragraph.background-signature-primary::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.7) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-mode .paragraph.background-signature-secondary > *,
body.dark-mode .paragraph.background-signature-primary > * {
    position: relative !important;
    z-index: 1 !important;
}

body.dark-mode .paragraph.background-signature-secondary h2,
body.dark-mode .paragraph.background-signature-secondary h3,
body.dark-mode .paragraph.background-signature-secondary p,
body.dark-mode .paragraph.background-signature-secondary li,
body.dark-mode .paragraph.background-signature-primary h2,
body.dark-mode .paragraph.background-signature-primary h3,
body.dark-mode .paragraph.background-signature-primary p,
body.dark-mode .paragraph.background-signature-primary li {
    color: #e0e0e0 !important;
}

body.dark-mode .paragraph.background-signature-secondary a,
body.dark-mode .paragraph.background-signature-primary a {
    color: #e0e0e0 !important;
}

/* High Contrast - Paragraph Backgrounds mit Overlay */
body.high-contrast .paragraph.background-signature-secondary,
body.high-contrast .paragraph.background-signature-primary {
    position: relative !important;
}

body.high-contrast .paragraph.background-signature-secondary::before,
body.high-contrast .paragraph.background-signature-primary::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.85) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.high-contrast .paragraph.background-signature-secondary > *,
body.high-contrast .paragraph.background-signature-primary > * {
    position: relative !important;
    z-index: 1 !important;
}

body.high-contrast .paragraph.background-signature-secondary h2,
body.high-contrast .paragraph.background-signature-secondary h3,
body.high-contrast .paragraph.background-signature-secondary p,
body.high-contrast .paragraph.background-signature-secondary li,
body.high-contrast .paragraph.background-signature-primary h2,
body.high-contrast .paragraph.background-signature-primary h3,
body.high-contrast .paragraph.background-signature-primary p,
body.high-contrast .paragraph.background-signature-primary li {
    color: #ff0 !important;
}

body.high-contrast .paragraph.background-signature-secondary a,
body.high-contrast .paragraph.background-signature-primary a {
    color: #0ff !important;
}

/* ==========================================================================
   Ansprechpartner Paragraph - Dark Mode Overlay
   .paragraph--type--ansprechpartner hat background: #dfeefb (hellblau)
   ========================================================================== */

/* Dark Contrast - Ansprechpartner mit Overlay */
body.dark-contrast .paragraph--type--ansprechpartner {
    position: relative !important;
}

body.dark-contrast .paragraph--type--ansprechpartner::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.75) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-contrast .paragraph--type--ansprechpartner > * {
    position: relative !important;
    z-index: 1 !important;
}

body.dark-contrast .paragraph--type--ansprechpartner h2,
body.dark-contrast .paragraph--type--ansprechpartner h3,
body.dark-contrast .paragraph--type--ansprechpartner p,
body.dark-contrast .paragraph--type--ansprechpartner span,
body.dark-contrast .paragraph--type--ansprechpartner .kontakt,
body.dark-contrast .paragraph--type--ansprechpartner .kontaktdaten,
body.dark-contrast .paragraph--type--ansprechpartner .field-telefonnumer,
body.dark-contrast .paragraph--type--ansprechpartner .field-e-mail {
    color: #fff !important;
}

body.dark-contrast .paragraph--type--ansprechpartner a {
    color: #4dabf7 !important;
}

/* Dark Mode - Ansprechpartner mit Overlay */
body.dark-mode .paragraph--type--ansprechpartner {
    position: relative !important;
}

body.dark-mode .paragraph--type--ansprechpartner::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.7) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-mode .paragraph--type--ansprechpartner > * {
    position: relative !important;
    z-index: 1 !important;
}

body.dark-mode .paragraph--type--ansprechpartner h2,
body.dark-mode .paragraph--type--ansprechpartner h3,
body.dark-mode .paragraph--type--ansprechpartner p,
body.dark-mode .paragraph--type--ansprechpartner span,
body.dark-mode .paragraph--type--ansprechpartner .kontakt,
body.dark-mode .paragraph--type--ansprechpartner .kontaktdaten,
body.dark-mode .paragraph--type--ansprechpartner .field-telefonnumer,
body.dark-mode .paragraph--type--ansprechpartner .field-e-mail {
    color: #e0e0e0 !important;
}

body.dark-mode .paragraph--type--ansprechpartner a {
    color: #e0e0e0 !important;
}

/* High Contrast - Ansprechpartner mit Overlay */
body.high-contrast .paragraph--type--ansprechpartner {
    position: relative !important;
}

body.high-contrast .paragraph--type--ansprechpartner::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.85) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.high-contrast .paragraph--type--ansprechpartner > * {
    position: relative !important;
    z-index: 1 !important;
}

body.high-contrast .paragraph--type--ansprechpartner h2,
body.high-contrast .paragraph--type--ansprechpartner h3,
body.high-contrast .paragraph--type--ansprechpartner p,
body.high-contrast .paragraph--type--ansprechpartner span,
body.high-contrast .paragraph--type--ansprechpartner .kontakt,
body.high-contrast .paragraph--type--ansprechpartner .kontaktdaten,
body.high-contrast .paragraph--type--ansprechpartner .field-telefonnumer,
body.high-contrast .paragraph--type--ansprechpartner .field-e-mail {
    color: #ff0 !important;
}

body.high-contrast .paragraph--type--ansprechpartner a {
    color: #0ff !important;
}

/* ==========================================================================
   Speisekarte / Mittagstisch Block - Dark Mode Overlay
   .pricing-item hat background-color: #f9f9f9 (hellgrau)
   .card (Bootstrap) hat typischerweise weißen Hintergrund
   ========================================================================== */

/* Dark Contrast - Speisekarte mit Overlay */
body.dark-contrast #block-vanity-speisekarte .pricing-card,
body.dark-contrast #block-vanity-speisekarte .card {
    position: relative !important;
}

body.dark-contrast #block-vanity-speisekarte .pricing-card::before,
body.dark-contrast #block-vanity-speisekarte .card::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.75) !important;
    z-index: 0 !important;
    pointer-events: none !important;
    border-radius: inherit !important;
}

body.dark-contrast #block-vanity-speisekarte .pricing-card > *,
body.dark-contrast #block-vanity-speisekarte .card > *,
body.dark-contrast #block-vanity-speisekarte .card-body {
    position: relative !important;
    z-index: 1 !important;
}

/* Dark Contrast - Pricing Items mit direkter Hintergrundfarbe (kein Overlay wegen Text-Nodes) */
body.dark-contrast .pricing-item,
body.dark-contrast li.pricing-item {
    background-color: #1a1a1a !important;
    color: #fff !important;
}

body.dark-contrast .pricing-item strong,
body.dark-contrast li.pricing-item strong {
    color: #fff !important;
}

body.dark-contrast .pricing-description,
body.dark-contrast .pricing-card,
body.dark-contrast .pricing-section .card,
body.dark-contrast .pricing-section .card-body {
    background-color: #000 !important;
    color: #fff !important;
}

body.dark-contrast #block-vanity-speisekarte h2,
body.dark-contrast #block-vanity-speisekarte p,
body.dark-contrast #block-vanity-speisekarte li,
body.dark-contrast #block-vanity-speisekarte strong,
body.dark-contrast #block-vanity-speisekarte span {
    color: #fff !important;
}

body.dark-contrast #block-vanity-speisekarte a,
body.dark-contrast .pricing-item a {
    color: #4dabf7 !important;
}

/* Dark Contrast - Speisekarte PDF Box mit Overlay */
body.dark-contrast .field-speisekarte-pdf {
    position: relative !important;
}

body.dark-contrast .field-speisekarte-pdf::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.75) !important;
    z-index: 0 !important;
    pointer-events: none !important;
    border-radius: inherit !important;
}

body.dark-contrast .field-speisekarte-pdf > *,
body.dark-contrast .field-speisekarte-pdf .file,
body.dark-contrast .field-speisekarte-pdf span {
    position: relative !important;
    z-index: 1 !important;
    color: #fff !important;
}

body.dark-contrast .field-speisekarte-pdf a {
    color: #4dabf7 !important;
}

/* Dark Mode - Speisekarte mit Overlay */
body.dark-mode #block-vanity-speisekarte .pricing-card,
body.dark-mode #block-vanity-speisekarte .card {
    position: relative !important;
}

body.dark-mode #block-vanity-speisekarte .pricing-card::before,
body.dark-mode #block-vanity-speisekarte .card::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.7) !important;
    z-index: 0 !important;
    pointer-events: none !important;
    border-radius: inherit !important;
}

body.dark-mode #block-vanity-speisekarte .pricing-card > *,
body.dark-mode #block-vanity-speisekarte .card > *,
body.dark-mode #block-vanity-speisekarte .card-body {
    position: relative !important;
    z-index: 1 !important;
}

/* Dark Mode - Pricing Items mit direkter Hintergrundfarbe (kein Overlay wegen Text-Nodes) */
body.dark-mode .pricing-item,
body.dark-mode li.pricing-item {
    background-color: #2a2a2a !important;
    color: #fff !important;
}

body.dark-mode .pricing-item strong,
body.dark-mode li.pricing-item strong {
    color: #fff !important;
}

body.dark-mode .pricing-description,
body.dark-mode .pricing-card,
body.dark-mode .pricing-section .card,
body.dark-mode .pricing-section .card-body {
    background-color: #1a1a1a !important;
    color: #fff !important;
}

body.dark-mode #block-vanity-speisekarte h2,
body.dark-mode #block-vanity-speisekarte p,
body.dark-mode #block-vanity-speisekarte li,
body.dark-mode #block-vanity-speisekarte strong,
body.dark-mode #block-vanity-speisekarte span {
    color: #fff !important;
}

body.dark-mode #block-vanity-speisekarte a {
    color: #fff !important;
}

/* Dark Mode - Speisekarte PDF Box mit Overlay */
body.dark-mode .field-speisekarte-pdf {
    position: relative !important;
}

body.dark-mode .field-speisekarte-pdf::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.7) !important;
    z-index: 0 !important;
    pointer-events: none !important;
    border-radius: inherit !important;
}

body.dark-mode .field-speisekarte-pdf > *,
body.dark-mode .field-speisekarte-pdf .file,
body.dark-mode .field-speisekarte-pdf span {
    position: relative !important;
    z-index: 1 !important;
    color: #fff !important;
}

body.dark-mode .field-speisekarte-pdf a {
    color: #fff !important;
}

/* High Contrast - Speisekarte mit Overlay */
body.high-contrast #block-vanity-speisekarte .pricing-card,
body.high-contrast #block-vanity-speisekarte .card {
    position: relative !important;
}

body.high-contrast #block-vanity-speisekarte .pricing-card::before,
body.high-contrast #block-vanity-speisekarte .card::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.85) !important;
    z-index: 0 !important;
    pointer-events: none !important;
    border-radius: inherit !important;
}

body.high-contrast #block-vanity-speisekarte .pricing-card > *,
body.high-contrast #block-vanity-speisekarte .card > *,
body.high-contrast #block-vanity-speisekarte .card-body {
    position: relative !important;
    z-index: 1 !important;
}

/* High Contrast - Pricing Items mit direkter Hintergrundfarbe (kein Overlay wegen Text-Nodes) */
body.high-contrast .pricing-item,
body.high-contrast li.pricing-item {
    background-color: #000 !important;
    color: #ff0 !important;
}

body.high-contrast .pricing-item strong,
body.high-contrast li.pricing-item strong {
    color: #ff0 !important;
}

body.high-contrast .pricing-description,
body.high-contrast .pricing-card,
body.high-contrast .pricing-section .card,
body.high-contrast .pricing-section .card-body {
    background-color: #000 !important;
    color: #ff0 !important;
}

body.high-contrast #block-vanity-speisekarte h2,
body.high-contrast #block-vanity-speisekarte p,
body.high-contrast #block-vanity-speisekarte li,
body.high-contrast #block-vanity-speisekarte strong,
body.high-contrast #block-vanity-speisekarte span {
    color: #ff0 !important;
}

body.high-contrast #block-vanity-speisekarte a,
body.high-contrast .pricing-item a {
    color: #0ff !important;
}

/* High Contrast - Speisekarte PDF Box mit Overlay */
body.high-contrast .field-speisekarte-pdf {
    position: relative !important;
}

body.high-contrast .field-speisekarte-pdf::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.85) !important;
    z-index: 0 !important;
    pointer-events: none !important;
    border-radius: inherit !important;
}

body.high-contrast .field-speisekarte-pdf > *,
body.high-contrast .field-speisekarte-pdf .file,
body.high-contrast .field-speisekarte-pdf span {
    position: relative !important;
    z-index: 1 !important;
    color: #ff0 !important;
}

body.high-contrast .field-speisekarte-pdf a {
    color: #0ff !important;
}

/* ==========================================================================
   Paragraph Box (z.B. "Helfen Sie mit") - Dark Mode Overlay
   .box-background hat background-color: #ececec (hellgrau)
   .box-title > h2 hat background-color: #005d83 (dunkelblau)
   ========================================================================== */

/* Dark Contrast - Paragraph Box mit Overlay */
body.dark-contrast .paragraph--type--box .box-background {
    position: relative !important;
}

body.dark-contrast .paragraph--type--box .box-background::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.75) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-contrast .paragraph--type--box .box-background > * {
    position: relative !important;
    z-index: 1 !important;
}

body.dark-contrast .paragraph--type--box .box-title > h2 {
    position: relative !important;
}

body.dark-contrast .paragraph--type--box .box-title > h2::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-contrast .paragraph--type--box h2,
body.dark-contrast .paragraph--type--box p,
body.dark-contrast .paragraph--type--box span {
    color: #fff !important;
}

body.dark-contrast .paragraph--type--box a {
    color: #4dabf7 !important;
}

/* Dark Mode - Paragraph Box mit Overlay */
body.dark-mode .paragraph--type--box .box-background {
    position: relative !important;
}

body.dark-mode .paragraph--type--box .box-background::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.7) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-mode .paragraph--type--box .box-background > * {
    position: relative !important;
    z-index: 1 !important;
}

body.dark-mode .paragraph--type--box .box-title > h2 {
    position: relative !important;
}

body.dark-mode .paragraph--type--box .box-title > h2::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.4) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.dark-mode .paragraph--type--box h2,
body.dark-mode .paragraph--type--box p,
body.dark-mode .paragraph--type--box span {
    color: #fff !important;
}

body.dark-mode .paragraph--type--box a {
    color: #fff !important;
}

/* High Contrast - Paragraph Box mit Overlay */
body.high-contrast .paragraph--type--box .box-background {
    position: relative !important;
}

body.high-contrast .paragraph--type--box .box-background::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.85) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.high-contrast .paragraph--type--box .box-background > * {
    position: relative !important;
    z-index: 1 !important;
}

body.high-contrast .paragraph--type--box .box-title > h2 {
    position: relative !important;
}

body.high-contrast .paragraph--type--box .box-title > h2::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.6) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

body.high-contrast .paragraph--type--box h2,
body.high-contrast .paragraph--type--box p,
body.high-contrast .paragraph--type--box span {
    color: #ff0 !important;
}

body.high-contrast .paragraph--type--box a {
    color: #0ff !important;
}

/* ==========================================================================
   Suchformular - Dark Mode Styles
   ========================================================================== */

/* Dark Contrast - Suchformular */
body.dark-contrast .views-exposed-form,
body.dark-contrast #block-views-suche-page1,
body.dark-contrast #views-exposed-form-suche-page-1 {
    background-color: transparent !important;
}

body.dark-contrast .views-exposed-form .form-control,
body.dark-contrast .views-exposed-form input[type="text"],
body.dark-contrast .views-exposed-form input[type="search"] {
    background-color: #2a2a2a !important;
    color: #fff !important;
    border-color: #444 !important;
}

body.dark-contrast .views-exposed-form .form-control::placeholder {
    color: #888 !important;
}

body.dark-contrast .views-exposed-form .search-submit,
body.dark-contrast .views-exposed-form .btn {
    background-color: #333 !important;
    border-color: #555 !important;
    color: #fff !important;
}

body.dark-contrast .views-exposed-form .search-submit:hover,
body.dark-contrast .views-exposed-form .btn:hover {
    background-color: #444 !important;
}

/* Dark Mode - Suchformular */
body.dark-mode .views-exposed-form,
body.dark-mode #block-views-suche-page1,
body.dark-mode #views-exposed-form-suche-page-1 {
    background-color: transparent !important;
}

body.dark-mode .views-exposed-form .form-control,
body.dark-mode .views-exposed-form input[type="text"],
body.dark-mode .views-exposed-form input[type="search"] {
    background-color: #333 !important;
    color: #fff !important;
    border-color: #555 !important;
}

body.dark-mode .views-exposed-form .form-control::placeholder {
    color: #999 !important;
}

body.dark-mode .views-exposed-form .search-submit,
body.dark-mode .views-exposed-form .btn {
    background-color: #444 !important;
    border-color: #666 !important;
    color: #fff !important;
}

body.dark-mode .views-exposed-form .search-submit:hover,
body.dark-mode .views-exposed-form .btn:hover {
    background-color: #555 !important;
}

body.dark-mode .views-exposed-form .icon,
body.dark-mode .views-exposed-form [class*="flow-icon-"] {
    color: #fff !important;
}

/* High Contrast - Suchformular */
body.high-contrast .views-exposed-form,
body.high-contrast #block-views-suche-page1,
body.high-contrast #views-exposed-form-suche-page-1 {
    background-color: transparent !important;
}

body.high-contrast .views-exposed-form .form-control,
body.high-contrast .views-exposed-form input[type="text"],
body.high-contrast .views-exposed-form input[type="search"] {
    background-color: #000 !important;
    color: #ff0 !important;
    border: 2px solid #ff0 !important;
}

body.high-contrast .views-exposed-form .form-control::placeholder {
    color: #aa0 !important;
}

body.high-contrast .views-exposed-form .search-submit,
body.high-contrast .views-exposed-form .btn {
    background-color: #000 !important;
    border: 2px solid #ff0 !important;
    color: #ff0 !important;
}

body.high-contrast .views-exposed-form .search-submit:hover,
body.high-contrast .views-exposed-form .btn:hover {
    background-color: #ff0 !important;
    color: #000 !important;
}

body.high-contrast .views-exposed-form .icon,
body.high-contrast .views-exposed-form [class*="flow-icon-"] {
    color: #ff0 !important;
}

/* ==========================================================================
   Webforms - Dark Mode Styles
   ========================================================================== */

/* Dark Contrast - Webforms */
body.dark-contrast .webform-submission-form,
body.dark-contrast [class*="webform-submission-"] {
    background-color: #1a1a1a !important;
}

body.dark-contrast .webform-submission-form .form-control,
body.dark-contrast .webform-submission-form input[type="text"],
body.dark-contrast .webform-submission-form input[type="email"],
body.dark-contrast .webform-submission-form input[type="number"],
body.dark-contrast .webform-submission-form input[type="date"],
body.dark-contrast .webform-submission-form input[type="tel"],
body.dark-contrast .webform-submission-form textarea,
body.dark-contrast .webform-submission-form select,
body.dark-contrast .webform-submission-form .form-select {
    background-color: #2a2a2a !important;
    color: #fff !important;
    border-color: #444 !important;
}

body.dark-contrast .webform-submission-form .form-control::placeholder,
body.dark-contrast .webform-submission-form input::placeholder,
body.dark-contrast .webform-submission-form textarea::placeholder {
    color: #888 !important;
}

body.dark-contrast .webform-submission-form label,
body.dark-contrast .webform-submission-form .form-item label,
body.dark-contrast .webform-submission-form h3,
body.dark-contrast .webform-submission-form p,
body.dark-contrast .webform-submission-form span,
body.dark-contrast .webform-submission-form strong,
body.dark-contrast .webform-submission-form em {
    color: #fff !important;
}

body.dark-contrast .webform-submission-form a {
    color: #4dabf7 !important;
}

body.dark-contrast .webform-submission-form .border,
body.dark-contrast .webform-submission-form [class*="container"] {
    border-color: #444 !important;
    background-color: #222 !important;
}

body.dark-contrast .webform-submission-form .btn-primary,
body.dark-contrast .webform-submission-form .webform-button--submit {
    background-color: #005d83 !important;
    border-color: #007bff !important;
    color: #fff !important;
}

body.dark-contrast .webform-submission-form input[type="radio"],
body.dark-contrast .webform-submission-form input[type="checkbox"] {
    accent-color: #4dabf7 !important;
}

/* Dark Mode - Webforms */
body.dark-mode .webform-submission-form,
body.dark-mode [class*="webform-submission-"] {
    background-color: #2a2a2a !important;
}

body.dark-mode .webform-submission-form .form-control,
body.dark-mode .webform-submission-form input[type="text"],
body.dark-mode .webform-submission-form input[type="email"],
body.dark-mode .webform-submission-form input[type="number"],
body.dark-mode .webform-submission-form input[type="date"],
body.dark-mode .webform-submission-form input[type="tel"],
body.dark-mode .webform-submission-form textarea,
body.dark-mode .webform-submission-form select,
body.dark-mode .webform-submission-form .form-select {
    background-color: #333 !important;
    color: #fff !important;
    border-color: #555 !important;
}

body.dark-mode .webform-submission-form .form-control::placeholder,
body.dark-mode .webform-submission-form input::placeholder,
body.dark-mode .webform-submission-form textarea::placeholder {
    color: #999 !important;
}

body.dark-mode .webform-submission-form label,
body.dark-mode .webform-submission-form .form-item label,
body.dark-mode .webform-submission-form h3,
body.dark-mode .webform-submission-form p,
body.dark-mode .webform-submission-form span,
body.dark-mode .webform-submission-form strong,
body.dark-mode .webform-submission-form em {
    color: #fff !important;
}

body.dark-mode .webform-submission-form a {
    color: #6db3f2 !important;
}

body.dark-mode .webform-submission-form .border,
body.dark-mode .webform-submission-form [class*="container"]:not(.form-actions) {
    border-color: #555 !important;
    background-color: #333 !important;
}

body.dark-mode .webform-submission-form .btn-primary,
body.dark-mode .webform-submission-form .webform-button--submit {
    background-color: #005d83 !important;
    border-color: #0077a8 !important;
    color: #fff !important;
}

body.dark-mode .webform-submission-form .btn-primary:hover,
body.dark-mode .webform-submission-form .webform-button--submit:hover {
    background-color: #007399 !important;
}

body.dark-mode .webform-submission-form input[type="radio"],
body.dark-mode .webform-submission-form input[type="checkbox"] {
    accent-color: #6db3f2 !important;
}

body.dark-mode .webform-submission-form .form-item.form-group {
    color: #fff !important;
}

/* High Contrast - Webforms */
body.high-contrast .webform-submission-form,
body.high-contrast [class*="webform-submission-"] {
    background-color: #000 !important;
}

body.high-contrast .webform-submission-form .form-control,
body.high-contrast .webform-submission-form input[type="text"],
body.high-contrast .webform-submission-form input[type="email"],
body.high-contrast .webform-submission-form input[type="number"],
body.high-contrast .webform-submission-form input[type="date"],
body.high-contrast .webform-submission-form input[type="tel"],
body.high-contrast .webform-submission-form textarea,
body.high-contrast .webform-submission-form select,
body.high-contrast .webform-submission-form .form-select {
    background-color: #000 !important;
    color: #ff0 !important;
    border: 2px solid #ff0 !important;
}

body.high-contrast .webform-submission-form .form-control::placeholder,
body.high-contrast .webform-submission-form input::placeholder,
body.high-contrast .webform-submission-form textarea::placeholder {
    color: #aa0 !important;
}

body.high-contrast .webform-submission-form label,
body.high-contrast .webform-submission-form .form-item label,
body.high-contrast .webform-submission-form h3,
body.high-contrast .webform-submission-form p,
body.high-contrast .webform-submission-form span,
body.high-contrast .webform-submission-form strong,
body.high-contrast .webform-submission-form em {
    color: #ff0 !important;
}

body.high-contrast .webform-submission-form a {
    color: #0ff !important;
}

body.high-contrast .webform-submission-form .border,
body.high-contrast .webform-submission-form [class*="container"]:not(.form-actions) {
    border: 2px solid #ff0 !important;
    background-color: #000 !important;
}

body.high-contrast .webform-submission-form .btn-primary,
body.high-contrast .webform-submission-form .webform-button--submit {
    background-color: #000 !important;
    border: 2px solid #ff0 !important;
    color: #ff0 !important;
}

body.high-contrast .webform-submission-form .btn-primary:hover,
body.high-contrast .webform-submission-form .webform-button--submit:hover {
    background-color: #ff0 !important;
    color: #000 !important;
}

body.high-contrast .webform-submission-form input[type="radio"],
body.high-contrast .webform-submission-form input[type="checkbox"] {
    accent-color: #ff0 !important;
}

/* ==========================================================================
   Custom Text Color - Accessibility Widget Color Picker Fix
   Wenn der User eine benutzerdefinierte Textfarbe wählt (über den Color Picker),
   setzt das Widget nur document.body.style.color. Das CSS hier vererbt diese
   Farbe an alle Text-Elemente, die eigene Farbregeln haben.

   WICHTIG: Wir verwenden spezifische Selektoren für jede mögliche Textfarbe,
   da body[style*="color"] auch auf background-color matcht.
   ========================================================================== */

/* Schwarze Textfarbe (#000000 / rgb(0, 0, 0)) */
body[style*="color: rgb(0, 0, 0)"] p,
body[style*="color: rgb(0, 0, 0)"] span,
body[style*="color: rgb(0, 0, 0)"] li,
body[style*="color: rgb(0, 0, 0)"] .press-body,
body[style*="color: rgb(0, 0, 0)"] .press-body p,
body[style*="color: rgb(0, 0, 0)"] .press-body span,
body[style*="color: rgb(0, 0, 0)"] .field p,
body[style*="color: rgb(0, 0, 0)"] .field span,
body[style*="color: rgb(0, 0, 0)"] article p,
body[style*="color: rgb(0, 0, 0)"] article span,
body[style*="color: rgb(0, 0, 0)"] main p,
body[style*="color: rgb(0, 0, 0)"] main span,
body[style*="color:#000000"] p,
body[style*="color:#000000"] span,
body[style*="color:#000000"] li,
body[style*="color:#000000"] .press-body p,
body[style*="color:#000000"] .press-body span {
    color: #000000 !important;
}

/* Weiße Textfarbe (#FFFFFF / rgb(255, 255, 255)) */
body[style*="color: rgb(255, 255, 255)"] p,
body[style*="color: rgb(255, 255, 255)"] span,
body[style*="color: rgb(255, 255, 255)"] li,
body[style*="color: rgb(255, 255, 255)"] .press-body,
body[style*="color: rgb(255, 255, 255)"] .press-body p,
body[style*="color: rgb(255, 255, 255)"] .press-body span,
body[style*="color: rgb(255, 255, 255)"] .field p,
body[style*="color: rgb(255, 255, 255)"] .field span,
body[style*="color: rgb(255, 255, 255)"] article p,
body[style*="color: rgb(255, 255, 255)"] article span,
body[style*="color: rgb(255, 255, 255)"] main p,
body[style*="color: rgb(255, 255, 255)"] main span,
body[style*="color:#FFFFFF"] p,
body[style*="color:#FFFFFF"] span,
body[style*="color:#FFFFFF"] li,
body[style*="color:#FFFFFF"] .press-body p,
body[style*="color:#FFFFFF"] .press-body span,
body[style*="color:#ffffff"] p,
body[style*="color:#ffffff"] span,
body[style*="color:#ffffff"] li,
body[style*="color:#ffffff"] .press-body p,
body[style*="color:#ffffff"] .press-body span {
    color: #FFFFFF !important;
}

/* Rote Textfarbe (#FF0000 / rgb(255, 0, 0)) */
body[style*="color: rgb(255, 0, 0)"] p,
body[style*="color: rgb(255, 0, 0)"] span,
body[style*="color: rgb(255, 0, 0)"] li,
body[style*="color: rgb(255, 0, 0)"] .press-body,
body[style*="color: rgb(255, 0, 0)"] .press-body p,
body[style*="color: rgb(255, 0, 0)"] .press-body span,
body[style*="color: rgb(255, 0, 0)"] .field p,
body[style*="color: rgb(255, 0, 0)"] .field span,
body[style*="color: rgb(255, 0, 0)"] article p,
body[style*="color: rgb(255, 0, 0)"] article span,
body[style*="color: rgb(255, 0, 0)"] main p,
body[style*="color: rgb(255, 0, 0)"] main span,
body[style*="color:#FF0000"] p,
body[style*="color:#FF0000"] span,
body[style*="color:#FF0000"] li,
body[style*="color:#FF0000"] .press-body p,
body[style*="color:#FF0000"] .press-body span,
body[style*="color:#ff0000"] p,
body[style*="color:#ff0000"] span,
body[style*="color:#ff0000"] li,
body[style*="color:#ff0000"] .press-body p,
body[style*="color:#ff0000"] .press-body span {
    color: #FF0000 !important;
}

/* Blaue Textfarbe (#0000FF / rgb(0, 0, 255)) */
body[style*="color: rgb(0, 0, 255)"] p,
body[style*="color: rgb(0, 0, 255)"] span,
body[style*="color: rgb(0, 0, 255)"] li,
body[style*="color: rgb(0, 0, 255)"] .press-body,
body[style*="color: rgb(0, 0, 255)"] .press-body p,
body[style*="color: rgb(0, 0, 255)"] .press-body span,
body[style*="color: rgb(0, 0, 255)"] .field p,
body[style*="color: rgb(0, 0, 255)"] .field span,
body[style*="color: rgb(0, 0, 255)"] article p,
body[style*="color: rgb(0, 0, 255)"] article span,
body[style*="color: rgb(0, 0, 255)"] main p,
body[style*="color: rgb(0, 0, 255)"] main span,
body[style*="color:#0000FF"] p,
body[style*="color:#0000FF"] span,
body[style*="color:#0000FF"] li,
body[style*="color:#0000FF"] .press-body p,
body[style*="color:#0000FF"] .press-body span,
body[style*="color:#0000ff"] p,
body[style*="color:#0000ff"] span,
body[style*="color:#0000ff"] li,
body[style*="color:#0000ff"] .press-body p,
body[style*="color:#0000ff"] .press-body span {
    color: #0000FF !important;
}

/* ==========================================================================
   Accessibility Widget Sidebar & Toggle - Dark Mode Styles
   Die Sidebar und der Toggle-Button sollen auch im Dark Mode angepasst werden.
   ========================================================================== */

/* Dark Mode - Sidebar */
body.dark-mode .accessibility-sidebar {
    background: #1e1e1e !important;
}

body.dark-mode .accessibility-sidebar .sidebar-header {
    background: #a33218 !important;
}

body.dark-mode .accessibility-sidebar .setting-group {
    background: #2a2a2a !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

body.dark-mode .accessibility-sidebar .setting-section h3 {
    color: #7cb8d4 !important;
}

body.dark-mode .accessibility-sidebar .dropdown-toggle {
    background: #2a2a2a !important;
    color: #e0e0e0 !important;
}

body.dark-mode .accessibility-sidebar .dropdown-toggle:hover {
    background: #333333 !important;
}

body.dark-mode .accessibility-sidebar .dropdown-toggle .arrow {
    color: #888888 !important;
}

body.dark-mode .accessibility-sidebar .dropdown-content {
    background: #2a2a2a !important;
    border-color: #444444 !important;
}

body.dark-mode .accessibility-sidebar .language-option {
    color: #e0e0e0 !important;
}

body.dark-mode .accessibility-sidebar .language-option:hover {
    background: #333333 !important;
}

body.dark-mode .accessibility-sidebar .font-size-control {
    background: #2a2a2a !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

body.dark-mode .accessibility-sidebar .font-size-control .label {
    color: #b0b0b0 !important;
}

body.dark-mode .accessibility-sidebar .control-btn {
    background: #333333 !important;
    border-color: #555555 !important;
    color: #7cb8d4 !important;
}

body.dark-mode .accessibility-sidebar .control-btn:hover {
    background: #444444 !important;
    border-color: #7cb8d4 !important;
}

body.dark-mode .accessibility-sidebar .value {
    color: #e0e0e0 !important;
}

body.dark-mode .accessibility-sidebar .option-btn {
    background: #2a2a2a !important;
    border-color: #444444 !important;
}

body.dark-mode .accessibility-sidebar .option-btn:hover {
    background: #333333 !important;
    border-color: #7cb8d4 !important;
}

body.dark-mode .accessibility-sidebar .option-btn.active {
    background: rgba(124, 184, 212, 0.15) !important;
    border-color: #7cb8d4 !important;
    box-shadow: inset 0 0 0 1px #7cb8d4 !important;
}

body.dark-mode .accessibility-sidebar .option-icon {
    color: #7cb8d4 !important;
}

body.dark-mode .accessibility-sidebar .option-btn span:last-child {
    color: #b0b0b0 !important;
}

body.dark-mode .accessibility-sidebar .option-btn.active .option-icon,
body.dark-mode .accessibility-sidebar .option-btn.active span:last-child {
    color: #7cb8d4 !important;
}

body.dark-mode .accessibility-sidebar .color-picker-group {
    background: #2a2a2a !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

body.dark-mode .accessibility-sidebar .color-picker-group label {
    color: #888888 !important;
}

body.dark-mode .accessibility-sidebar .color-btn {
    border-color: #444444 !important;
}

body.dark-mode .accessibility-sidebar .color-btn:hover {
    border-color: #7cb8d4 !important;
}

body.dark-mode .accessibility-sidebar .cancel-btn {
    background: #333333 !important;
    border-color: #555555 !important;
    color: #888888 !important;
}

body.dark-mode .accessibility-sidebar .cancel-btn:hover {
    background: #444444 !important;
}

body.dark-mode .accessibility-sidebar .sidebar-footer {
    background: #1e1e1e !important;
    border-color: #444444 !important;
}

body.dark-mode .accessibility-sidebar .footer-link {
    color: #7cb8d4 !important;
}

body.dark-mode .accessibility-sidebar .powered-by {
    color: #888888 !important;
}

/* Dark Mode - Toggle Button mit Overlay-Effekt */
body.dark-mode .accessibility-toggle::before {
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle fill='%231e1e1e' stroke='%237cb8d4' stroke-width='32' stroke-miterlimit='10' cx='250.06' cy='251.06' r='223.9'%3E%3C/circle%3E%3Cpath fill='%237cb8d4' d='M322.34,415.45c-6.77-0.02-11.76-3.11-15.38-8.74c-16.74-26.05-33.5-52.1-50.3-78.11c-1.48-2.3-2.54-4.93-4.82-6.67c-1.51,2.2-3.07,4.36-4.51,6.6c-16.51,25.65-33.05,51.28-49.48,76.98c-4,6.25-9.1,10.17-16.87,9.94c-11.45-0.33-19.64-11.98-15.81-22.79c0.73-2.07,1.85-4.04,3.04-5.9c18.54-28.93,37.01-57.91,55.75-86.71c7.19-11.05,10.92-22.85,10.52-36.05c-0.23-7.36-0.09-14.74-0.01-22.11c0.02-1.86-0.14-2.81-2.47-3.06c-42.89-4.7-83.39-18.25-123.41-33.57c-6.68-2.56-12.34-6.15-14.02-13.86c-1.49-6.83,0.48-12.52,5.52-17.1c4.89-4.45,10.76-5.78,16.94-3.44c13.98,5.29,27.95,10.61,42.17,15.26c24.02,7.86,48.35,14.35,73.51,17.51c20.23,2.54,40.13,0.55,59.93-3.44c31.26-6.3,61.44-16.21,90.87-28.3c12.2-5.01,23.46,0.98,25.98,11.81c1.74,7.51-1.72,15.51-8.7,18.92c-11.99,5.85-24.71,9.9-37.28,14.27c-24.2,8.42-48.85,15.17-74.09,19.66c-5.86,1.04-11.8,1.63-17.71,2.39c-1.18,0.15-2.24,0.02-2.2,1.84c0.23,10.64-0.37,21.29,0.34,31.93c0.63,9.45,4.17,17.88,9.25,25.77c18.98,29.48,37.92,58.98,56.85,88.49c6.83,10.65,4.15,21.65-6.48,26.96C327.22,415.05,324.85,415.5,322.34,415.45z'%3E%3C/path%3E%3Ccircle fill='%237cb8d4' cx='251.31' cy='128.42' r='56.77'%3E%3C/circle%3E%3C/svg%3E") !important;
}

/* Dark Contrast - Sidebar */
body.dark-contrast .accessibility-sidebar {
    background: #000000 !important;
}

body.dark-contrast .accessibility-sidebar .sidebar-header {
    background: #000000 !important;
    border-bottom: 1px solid #4dabf7 !important;
}

body.dark-contrast .accessibility-sidebar .sidebar-header h2 {
    color: #ffffff !important;
}

body.dark-contrast .accessibility-sidebar .setting-group {
    background: #1a1a1a !important;
}

body.dark-contrast .accessibility-sidebar .setting-section h3 {
    color: #4dabf7 !important;
}

body.dark-contrast .accessibility-sidebar .dropdown-toggle,
body.dark-contrast .accessibility-sidebar .font-size-control,
body.dark-contrast .accessibility-sidebar .option-btn,
body.dark-contrast .accessibility-sidebar .color-picker-group {
    background: #1a1a1a !important;
    color: #ffffff !important;
    border-color: #333333 !important;
}

body.dark-contrast .accessibility-sidebar .dropdown-toggle:hover,
body.dark-contrast .accessibility-sidebar .option-btn:hover {
    background: #2a2a2a !important;
    border-color: #4dabf7 !important;
}

body.dark-contrast .accessibility-sidebar .option-btn.active {
    background: rgba(77, 171, 247, 0.15) !important;
    border-color: #4dabf7 !important;
}

body.dark-contrast .accessibility-sidebar .control-btn {
    background: #1a1a1a !important;
    border-color: #333333 !important;
    color: #4dabf7 !important;
}

body.dark-contrast .accessibility-sidebar .option-icon,
body.dark-contrast .accessibility-sidebar .option-btn span:last-child,
body.dark-contrast .accessibility-sidebar .font-size-control .label,
body.dark-contrast .accessibility-sidebar .value,
body.dark-contrast .accessibility-sidebar .color-picker-group label,
body.dark-contrast .accessibility-sidebar .language-option {
    color: #ffffff !important;
}

body.dark-contrast .accessibility-sidebar .dropdown-content,
body.dark-contrast .accessibility-sidebar .cancel-btn {
    background: #1a1a1a !important;
    border-color: #333333 !important;
    color: #ffffff !important;
}

body.dark-contrast .accessibility-sidebar .sidebar-footer {
    background: #000000 !important;
    border-color: #333333 !important;
}

body.dark-contrast .accessibility-sidebar .footer-link {
    color: #4dabf7 !important;
}

/* Dark Contrast - Toggle Button */
body.dark-contrast .accessibility-toggle::before {
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle fill='%23000000' stroke='%234dabf7' stroke-width='32' stroke-miterlimit='10' cx='250.06' cy='251.06' r='223.9'%3E%3C/circle%3E%3Cpath fill='%234dabf7' d='M322.34,415.45c-6.77-0.02-11.76-3.11-15.38-8.74c-16.74-26.05-33.5-52.1-50.3-78.11c-1.48-2.3-2.54-4.93-4.82-6.67c-1.51,2.2-3.07,4.36-4.51,6.6c-16.51,25.65-33.05,51.28-49.48,76.98c-4,6.25-9.1,10.17-16.87,9.94c-11.45-0.33-19.64-11.98-15.81-22.79c0.73-2.07,1.85-4.04,3.04-5.9c18.54-28.93,37.01-57.91,55.75-86.71c7.19-11.05,10.92-22.85,10.52-36.05c-0.23-7.36-0.09-14.74-0.01-22.11c0.02-1.86-0.14-2.81-2.47-3.06c-42.89-4.7-83.39-18.25-123.41-33.57c-6.68-2.56-12.34-6.15-14.02-13.86c-1.49-6.83,0.48-12.52,5.52-17.1c4.89-4.45,10.76-5.78,16.94-3.44c13.98,5.29,27.95,10.61,42.17,15.26c24.02,7.86,48.35,14.35,73.51,17.51c20.23,2.54,40.13,0.55,59.93-3.44c31.26-6.3,61.44-16.21,90.87-28.3c12.2-5.01,23.46,0.98,25.98,11.81c1.74,7.51-1.72,15.51-8.7,18.92c-11.99,5.85-24.71,9.9-37.28,14.27c-24.2,8.42-48.85,15.17-74.09,19.66c-5.86,1.04-11.8,1.63-17.71,2.39c-1.18,0.15-2.24,0.02-2.2,1.84c0.23,10.64-0.37,21.29,0.34,31.93c0.63,9.45,4.17,17.88,9.25,25.77c18.98,29.48,37.92,58.98,56.85,88.49c6.83,10.65,4.15,21.65-6.48,26.96C327.22,415.05,324.85,415.5,322.34,415.45z'%3E%3C/path%3E%3Ccircle fill='%234dabf7' cx='251.31' cy='128.42' r='56.77'%3E%3C/circle%3E%3C/svg%3E") !important;
}

/* High Contrast - Sidebar */
body.high-contrast .accessibility-sidebar {
    background: #000000 !important;
}

body.high-contrast .accessibility-sidebar .sidebar-header {
    background: #000000 !important;
    border-bottom: 2px solid #ff0 !important;
}

body.high-contrast .accessibility-sidebar .sidebar-header h2 {
    color: #ff0 !important;
}

body.high-contrast .accessibility-sidebar .reset-btn,
body.high-contrast .accessibility-sidebar .close-btn {
    color: #ff0 !important;
}

body.high-contrast .accessibility-sidebar .setting-group {
    background: #000000 !important;
    border: 1px solid #ff0 !important;
}

body.high-contrast .accessibility-sidebar .setting-section h3 {
    color: #ff0 !important;
}

body.high-contrast .accessibility-sidebar .dropdown-toggle,
body.high-contrast .accessibility-sidebar .font-size-control,
body.high-contrast .accessibility-sidebar .option-btn,
body.high-contrast .accessibility-sidebar .color-picker-group {
    background: #000000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

body.high-contrast .accessibility-sidebar .dropdown-toggle:hover,
body.high-contrast .accessibility-sidebar .option-btn:hover {
    background: #1a1a00 !important;
}

body.high-contrast .accessibility-sidebar .option-btn.active {
    background: #1a1a00 !important;
    box-shadow: inset 0 0 0 2px #ff0 !important;
}

body.high-contrast .accessibility-sidebar .control-btn {
    background: #000000 !important;
    border: 2px solid #ff0 !important;
    color: #ff0 !important;
}

body.high-contrast .accessibility-sidebar .option-icon,
body.high-contrast .accessibility-sidebar .option-btn span:last-child,
body.high-contrast .accessibility-sidebar .font-size-control .label,
body.high-contrast .accessibility-sidebar .value,
body.high-contrast .accessibility-sidebar .color-picker-group label,
body.high-contrast .accessibility-sidebar .language-option {
    color: #ff0 !important;
}

body.high-contrast .accessibility-sidebar .dropdown-content,
body.high-contrast .accessibility-sidebar .cancel-btn {
    background: #000000 !important;
    border-color: #ff0 !important;
    color: #ff0 !important;
}

body.high-contrast .accessibility-sidebar .sidebar-footer {
    background: #000000 !important;
    border-color: #ff0 !important;
}

body.high-contrast .accessibility-sidebar .footer-link {
    color: #0ff !important;
}

/* High Contrast - Toggle Button */
body.high-contrast .accessibility-toggle::before {
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle fill='%23000000' stroke='%23ffff00' stroke-width='32' stroke-miterlimit='10' cx='250.06' cy='251.06' r='223.9'%3E%3C/circle%3E%3Cpath fill='%23ffff00' d='M322.34,415.45c-6.77-0.02-11.76-3.11-15.38-8.74c-16.74-26.05-33.5-52.1-50.3-78.11c-1.48-2.3-2.54-4.93-4.82-6.67c-1.51,2.2-3.07,4.36-4.51,6.6c-16.51,25.65-33.05,51.28-49.48,76.98c-4,6.25-9.1,10.17-16.87,9.94c-11.45-0.33-19.64-11.98-15.81-22.79c0.73-2.07,1.85-4.04,3.04-5.9c18.54-28.93,37.01-57.91,55.75-86.71c7.19-11.05,10.92-22.85,10.52-36.05c-0.23-7.36-0.09-14.74-0.01-22.11c0.02-1.86-0.14-2.81-2.47-3.06c-42.89-4.7-83.39-18.25-123.41-33.57c-6.68-2.56-12.34-6.15-14.02-13.86c-1.49-6.83,0.48-12.52,5.52-17.1c4.89-4.45,10.76-5.78,16.94-3.44c13.98,5.29,27.95,10.61,42.17,15.26c24.02,7.86,48.35,14.35,73.51,17.51c20.23,2.54,40.13,0.55,59.93-3.44c31.26-6.3,61.44-16.21,90.87-28.3c12.2-5.01,23.46,0.98,25.98,11.81c1.74,7.51-1.72,15.51-8.7,18.92c-11.99,5.85-24.71,9.9-37.28,14.27c-24.2,8.42-48.85,15.17-74.09,19.66c-5.86,1.04-11.8,1.63-17.71,2.39c-1.18,0.15-2.24,0.02-2.2,1.84c0.23,10.64-0.37,21.29,0.34,31.93c0.63,9.45,4.17,17.88,9.25,25.77c18.98,29.48,37.92,58.98,56.85,88.49c6.83,10.65,4.15,21.65-6.48,26.96C327.22,415.05,324.85,415.5,322.34,415.45z'%3E%3C/path%3E%3Ccircle fill='%23ffff00' cx='251.31' cy='128.42' r='56.77'%3E%3C/circle%3E%3C/svg%3E") !important;
}

/* ==========================================================================
   Gin Admin Toolbar - Dark Mode Styles
   Die Drupal Admin Toolbar (Gin Theme) im Dark Mode anpassen.
   ========================================================================== */

/* Dark Mode - Gin Toolbar */
body.dark-mode #toolbar-administration,
body.dark-mode #gin-toolbar-bar,
body.dark-mode .toolbar-bar {
    background-color: #1e1e1e !important;
}

body.dark-mode .toolbar-tab > a,
body.dark-mode .toolbar-tab > button,
body.dark-mode .toolbar-item {
    color: #e0e0e0 !important;
}

body.dark-mode .toolbar-tab > a:hover,
body.dark-mode .toolbar-tab > button:hover,
body.dark-mode .toolbar-item:hover {
    background-color: #333333 !important;
    color: #ffffff !important;
}

body.dark-mode .toolbar-tab > a.is-active,
body.dark-mode .toolbar-item.is-active {
    background-color: #2a2a2a !important;
    color: #7cb8d4 !important;
}

body.dark-mode .toolbar-tray,
body.dark-mode .toolbar-tray-horizontal {
    background-color: #252525 !important;
    border-color: #444444 !important;
}

body.dark-mode .toolbar-menu {
    background-color: #252525 !important;
}

body.dark-mode .toolbar-menu a,
body.dark-mode .toolbar-menu span.nolink {
    color: #e0e0e0 !important;
}

body.dark-mode .toolbar-menu a:hover {
    background-color: #333333 !important;
    color: #ffffff !important;
}

body.dark-mode .toolbar-menu a.is-active {
    color: #7cb8d4 !important;
}

body.dark-mode .toolbar-menu__title,
body.dark-mode .toolbar-menu__title a,
body.dark-mode .toolbar-menu__sub-title,
body.dark-mode .toolbar-menu__sub-title a {
    color: #7cb8d4 !important;
}

/* Dark Mode - Gin Secondary Toolbar */
body.dark-mode .gin-secondary-toolbar {
    background-color: #1e1e1e !important;
    border-color: #444444 !important;
}

body.dark-mode .gin-breadcrumb__link,
body.dark-mode .gin-breadcrumb__item {
    color: #b0b0b0 !important;
}

body.dark-mode .gin-breadcrumb__link:hover {
    color: #7cb8d4 !important;
}

body.dark-mode #toolbar-administration-secondary,
body.dark-mode .toolbar-secondary {
    background-color: #1e1e1e !important;
}

/* Dark Mode - Toolbar Icons */
body.dark-mode .toolbar-icon::before {
    filter: invert(0.8) !important;
}

body.dark-mode .toolbar-menu__logo {
    filter: brightness(0.8) !important;
}

/* Dark Contrast - Gin Toolbar */
body.dark-contrast #toolbar-administration,
body.dark-contrast #gin-toolbar-bar,
body.dark-contrast .toolbar-bar {
    background-color: #000000 !important;
}

body.dark-contrast .toolbar-tab > a,
body.dark-contrast .toolbar-tab > button,
body.dark-contrast .toolbar-item {
    color: #ffffff !important;
}

body.dark-contrast .toolbar-tab > a:hover,
body.dark-contrast .toolbar-tab > button:hover,
body.dark-contrast .toolbar-item:hover {
    background-color: #1a1a1a !important;
}

body.dark-contrast .toolbar-tab > a.is-active,
body.dark-contrast .toolbar-item.is-active {
    background-color: #1a1a1a !important;
    color: #4dabf7 !important;
}

body.dark-contrast .toolbar-tray,
body.dark-contrast .toolbar-tray-horizontal {
    background-color: #0a0a0a !important;
    border-color: #333333 !important;
}

body.dark-contrast .toolbar-menu {
    background-color: #0a0a0a !important;
}

body.dark-contrast .toolbar-menu a,
body.dark-contrast .toolbar-menu span.nolink {
    color: #ffffff !important;
}

body.dark-contrast .toolbar-menu a:hover {
    background-color: #1a1a1a !important;
}

body.dark-contrast .toolbar-menu a.is-active {
    color: #4dabf7 !important;
}

body.dark-contrast .toolbar-menu__title,
body.dark-contrast .toolbar-menu__title a,
body.dark-contrast .toolbar-menu__sub-title,
body.dark-contrast .toolbar-menu__sub-title a {
    color: #4dabf7 !important;
}

body.dark-contrast .gin-secondary-toolbar {
    background-color: #000000 !important;
    border-color: #333333 !important;
}

body.dark-contrast .gin-breadcrumb__link,
body.dark-contrast .gin-breadcrumb__item {
    color: #cccccc !important;
}

body.dark-contrast .gin-breadcrumb__link:hover {
    color: #4dabf7 !important;
}

body.dark-contrast #toolbar-administration-secondary,
body.dark-contrast .toolbar-secondary {
    background-color: #000000 !important;
}

body.dark-contrast .toolbar-icon::before {
    filter: invert(1) !important;
}

/* High Contrast - Gin Toolbar */
body.high-contrast #toolbar-administration,
body.high-contrast #gin-toolbar-bar,
body.high-contrast .toolbar-bar {
    background-color: #000000 !important;
    border-bottom: 2px solid #ff0 !important;
}

body.high-contrast .toolbar-tab > a,
body.high-contrast .toolbar-tab > button,
body.high-contrast .toolbar-item {
    color: #ff0 !important;
}

body.high-contrast .toolbar-tab > a:hover,
body.high-contrast .toolbar-tab > button:hover,
body.high-contrast .toolbar-item:hover {
    background-color: #1a1a00 !important;
}

body.high-contrast .toolbar-tab > a.is-active,
body.high-contrast .toolbar-item.is-active {
    background-color: #1a1a00 !important;
    text-decoration: underline !important;
}

body.high-contrast .toolbar-tray,
body.high-contrast .toolbar-tray-horizontal {
    background-color: #000000 !important;
    border: 1px solid #ff0 !important;
}

body.high-contrast .toolbar-menu {
    background-color: #000000 !important;
}

body.high-contrast .toolbar-menu a,
body.high-contrast .toolbar-menu span.nolink {
    color: #ff0 !important;
}

body.high-contrast .toolbar-menu a:hover {
    background-color: #1a1a00 !important;
    text-decoration: underline !important;
}

body.high-contrast .toolbar-menu a.is-active {
    color: #0ff !important;
}

body.high-contrast .toolbar-menu__title,
body.high-contrast .toolbar-menu__title a,
body.high-contrast .toolbar-menu__sub-title,
body.high-contrast .toolbar-menu__sub-title a {
    color: #0ff !important;
}

body.high-contrast .gin-secondary-toolbar {
    background-color: #000000 !important;
    border: 1px solid #ff0 !important;
}

body.high-contrast .gin-breadcrumb__link,
body.high-contrast .gin-breadcrumb__item {
    color: #ff0 !important;
}

body.high-contrast .gin-breadcrumb__link:hover {
    color: #0ff !important;
}

body.high-contrast #toolbar-administration-secondary,
body.high-contrast .toolbar-secondary {
    background-color: #000000 !important;
}

body.high-contrast .toolbar-icon::before {
    filter: invert(1) sepia(1) saturate(5) hue-rotate(10deg) !important;
}

/* ==========================================================================
   Dark Mode: Hauptfarbe #e75428 → #b43214 (dunkleres Orange)
   Gilt für dark-contrast UND dark-mode
   ========================================================================== */

/* --- Links --- */
body.dark-contrast a,
body.dark-mode a {
    color: #b43214 !important;
}
body.dark-contrast a:hover,
body.dark-mode a:hover {
    color: #b43214 !important;
}

/* --- Buttons --- */
body.dark-contrast .btn-primary,
body.dark-mode .btn-primary {
    background-color: #b43214 !important;
    border-color: #b43214 !important;
}

/* --- News Ticker --- */
body.dark-contrast .news-ticker-wrapper,
body.dark-mode .news-ticker-wrapper {
    background-color: #b43214 !important;
}

/* --- Boxen: Überschriften und Read-More --- */
body.dark-contrast .field-boxen-bereich-1 h2,
body.dark-mode .field-boxen-bereich-1 h2 {
    color: #b43214 !important;
}

body.dark-contrast .field-boxen-bereich-1 .read-more,
body.dark-contrast .field-box .read-more,
body.dark-contrast .field-boxen-bereich-2 .read-more,
body.dark-mode .field-boxen-bereich-1 .read-more,
body.dark-mode .field-box .read-more,
body.dark-mode .field-boxen-bereich-2 .read-more {
    background: #b43214 !important;
}

/* --- Bereich-Default --- */
body.dark-contrast .bereich-default .term-1,
body.dark-contrast .bereich-default .term-2,
body.dark-contrast .bereich-default .term-3,
body.dark-contrast .bereich-default .term-4,
body.dark-contrast .bereich-default .term-5,
body.dark-contrast .bereich-default .term-6,
body.dark-contrast .bereich-default .term-19,
body.dark-contrast .bereich-default span.bereich,
body.dark-mode .bereich-default .term-1,
body.dark-mode .bereich-default .term-2,
body.dark-mode .bereich-default .term-3,
body.dark-mode .bereich-default .term-4,
body.dark-mode .bereich-default .term-5,
body.dark-mode .bereich-default .term-6,
body.dark-mode .bereich-default .term-19,
body.dark-mode .bereich-default span.bereich {
    background-color: #b43214 !important;
}

/* --- Startseite Body-Wrapper Button --- */
body.dark-contrast .startseite .body-wrapper a,
body.dark-mode .startseite .body-wrapper a {
    background: #b43214 !important;
}

/* --- Header Elemente --- */
body.dark-contrast .site-header .flow-icon-Suche,
body.dark-mode .site-header .flow-icon-Suche {
    color: #b43214 !important;
}

/* --- Startseite Sektionen --- */
body.dark-contrast .angebote-header,
body.dark-contrast .nachrichten-header,
body.dark-mode .angebote-header,
body.dark-mode .nachrichten-header {
    background-color: #b43214 !important;
}

/* --- Speisekarte --- */
body.dark-contrast #block-vanity-speisekarte h2,
body.dark-mode #block-vanity-speisekarte h2 {
    border-top-color: #b43214 !important;
    border-bottom-color: #b43214 !important;
}

/* --- Termine --- */
body.dark-contrast #block-vanity-views-block-termine-block-1 h2,
body.dark-contrast #block-vanity-views-block-termine-block-2 h2,
body.dark-mode #block-vanity-views-block-termine-block-1 h2,
body.dark-mode #block-vanity-views-block-termine-block-2 h2 {
    border-top-color: #b43214 !important;
    border-bottom-color: #b43214 !important;
}

/* --- Pricing --- */
body.dark-contrast .pricing-low,
body.dark-contrast .pricing-fair,
body.dark-contrast .pricing-support,
body.dark-mode .pricing-low,
body.dark-mode .pricing-fair,
body.dark-mode .pricing-support {
    border-color: #b43214 !important;
}

/* --- Speisekarte PDF --- */
body.dark-contrast .field-speisekarte-pdf,
body.dark-mode .field-speisekarte-pdf {
    border-color: #b43214 !important;
}
body.dark-contrast .field-speisekarte-pdf .file a,
body.dark-mode .field-speisekarte-pdf .file a {
    color: #b43214 !important;
}

/* --- Veranstaltungsart --- */
body.dark-contrast .date-art,
body.dark-contrast .field-art,
body.dark-mode .date-art,
body.dark-mode .field-art {
    color: #fff !important;
}

/* --- Event Details --- */
body.dark-contrast .event-details,
body.dark-mode .event-details {
    background-color: #1a1a1a !important;
    border-color: #444 !important;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4) !important;
    color: #e0e0e0 !important;
}

body.dark-contrast .start-time,
body.dark-mode .start-time {
    background-color: #2a2a2a !important;
    border-left-color: #b43214 !important;
}

body.dark-contrast .start-time span,
body.dark-mode .start-time span {
    color: #e0e0e0 !important;
}

body.dark-contrast .event-dates .date-eventdate,
body.dark-contrast .event-dates .date-eventextern,
body.dark-mode .event-dates .date-eventdate,
body.dark-mode .event-dates .date-eventextern {
    color: #ccc !important;
}

body.dark-contrast .event-dates strong,
body.dark-mode .event-dates strong {
    color: #fff !important;
}

body.dark-contrast .event-body,
body.dark-contrast .event-body p,
body.dark-contrast .event-body span,
body.dark-contrast .event-body strong,
body.dark-mode .event-body,
body.dark-mode .event-body p,
body.dark-mode .event-body span,
body.dark-mode .event-body strong {
    color: #e0e0e0 !important;
}

body.dark-contrast .event-body a,
body.dark-mode .event-body a {
    color: #4dabf7 !important;
}

/* --- Event Button --- */
body.dark-contrast .event-link .btn,
body.dark-mode .event-link .btn {
    background-color: #b43214 !important;
    border-color: #b43214 !important;
    color: #fff !important;
}

body.dark-contrast .event-link .btn:hover,
body.dark-mode .event-link .btn:hover {
    background-color: #8a2710 !important;
}

/* --- Aktuelles Block (Pressemitteilung) --- */
body.dark-contrast #block-vanity-views-block-pressemitteilung-block-1::before,
body.dark-mode #block-vanity-views-block-pressemitteilung-block-1::before {
    background-color: #b43214 !important;
}

/* --- Press-Wrapper Border --- */
body.dark-contrast .press-wrapper,
body.dark-mode .press-wrapper {
    border-bottom-color: #b43214 !important;
}

/* ==========================================================================
   Booking-Modal: Dark Mode
   ========================================================================== */

/* Modal-Content Hintergrund */
body.dark-contrast #vanity-booking-modal .modal-content,
body.dark-mode #vanity-booking-modal .modal-content {
    background-color: #1a1a1a !important;
    border-color: #444 !important;
}

/* Modal-Header */
body.dark-contrast #vanity-booking-modal .modal-header,
body.dark-mode #vanity-booking-modal .modal-header {
    background-color: #b43214 !important;
    border-bottom-color: #444 !important;
}

body.dark-contrast #vanity-booking-modal .modal-header .modal-title,
body.dark-mode #vanity-booking-modal .modal-header .modal-title {
    color: #fff !important;
}

body.dark-contrast #vanity-booking-modal .modal-header .btn-close::before,
body.dark-mode #vanity-booking-modal .modal-header .btn-close::before {
    color: #fff !important;
}

/* Modal-Body */
body.dark-contrast #vanity-booking-modal .modal-body,
body.dark-mode #vanity-booking-modal .modal-body {
    background-color: #1a1a1a !important;
    color: #e0e0e0 !important;
}

/* Spinner */
body.dark-contrast #vanity-booking-modal .spinner-border,
body.dark-mode #vanity-booking-modal .spinner-border {
    color: #b43214 !important;
}

/* Formular-Labels */
body.dark-contrast #vanity-booking-modal .modal-body label,
body.dark-mode #vanity-booking-modal .modal-body label {
    color: #e0e0e0 !important;
}

/* Formular-Inputs */
body.dark-contrast #vanity-booking-modal .modal-body input[type="text"],
body.dark-contrast #vanity-booking-modal .modal-body input[type="email"],
body.dark-contrast #vanity-booking-modal .modal-body input[type="number"],
body.dark-contrast #vanity-booking-modal .modal-body input[type="tel"],
body.dark-contrast #vanity-booking-modal .modal-body textarea,
body.dark-contrast #vanity-booking-modal .modal-body select,
body.dark-mode #vanity-booking-modal .modal-body input[type="text"],
body.dark-mode #vanity-booking-modal .modal-body input[type="email"],
body.dark-mode #vanity-booking-modal .modal-body input[type="number"],
body.dark-mode #vanity-booking-modal .modal-body input[type="tel"],
body.dark-mode #vanity-booking-modal .modal-body textarea,
body.dark-mode #vanity-booking-modal .modal-body select {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
    border-color: #555 !important;
}

body.dark-contrast #vanity-booking-modal .modal-body input:focus,
body.dark-contrast #vanity-booking-modal .modal-body textarea:focus,
body.dark-contrast #vanity-booking-modal .modal-body select:focus,
body.dark-mode #vanity-booking-modal .modal-body input:focus,
body.dark-mode #vanity-booking-modal .modal-body textarea:focus,
body.dark-mode #vanity-booking-modal .modal-body select:focus {
    border-color: #b43214 !important;
    box-shadow: 0 0 0 0.2rem rgba(180, 50, 20, 0.5) !important;
}

/* Placeholder-Farbe */
body.dark-contrast #vanity-booking-modal .modal-body input::placeholder,
body.dark-mode #vanity-booking-modal .modal-body input::placeholder {
    color: #888 !important;
}

/* Beschreibungstexte */
body.dark-contrast #vanity-booking-modal .modal-body .description,
body.dark-mode #vanity-booking-modal .modal-body .description {
    color: #aaa !important;
}

/* Hinweis-Box (field_notice) */
body.dark-contrast #vanity-booking-modal #edit-field-notice-wrapper,
body.dark-mode #vanity-booking-modal #edit-field-notice-wrapper {
    background-color: #2a2200 !important;
    border-color: #554400 !important;
}

body.dark-contrast #vanity-booking-modal #edit-field-notice-wrapper label,
body.dark-mode #vanity-booking-modal #edit-field-notice-wrapper label {
    color: #f0d080 !important;
}

/* Datenschutz-Box */
body.dark-contrast #vanity-booking-modal #edit-field-datenschutz-wrapper,
body.dark-mode #vanity-booking-modal #edit-field-datenschutz-wrapper {
    background-color: #0a1a2a !important;
    border-color: #1a3a5a !important;
}

body.dark-contrast #vanity-booking-modal #edit-field-datenschutz-wrapper label,
body.dark-mode #vanity-booking-modal #edit-field-datenschutz-wrapper label {
    color: #90c0e0 !important;
}

/* Checkboxen sichtbar machen */
body.dark-contrast #vanity-booking-modal .modal-body input[type="checkbox"],
body.dark-mode #vanity-booking-modal .modal-body input[type="checkbox"] {
    accent-color: #b43214 !important;
}

/* Submit-Button */
body.dark-contrast #vanity-booking-modal .btn-primary,
body.dark-mode #vanity-booking-modal .btn-primary {
    background-color: #b43214 !important;
    border-color: #b43214 !important;
    color: #fff !important;
}

body.dark-contrast #vanity-booking-modal .btn-primary:hover,
body.dark-mode #vanity-booking-modal .btn-primary:hover {
    background-color: #932a10 !important;
    border-color: #932a10 !important;
}

/* Erfolgs-/Fehlermeldungen */
body.dark-contrast #vanity-booking-modal .alert-success,
body.dark-mode #vanity-booking-modal .alert-success {
    background-color: #1a3a1a !important;
    border-color: #2a5a2a !important;
    color: #90d090 !important;
}

body.dark-contrast #vanity-booking-modal .alert-danger,
body.dark-mode #vanity-booking-modal .alert-danger {
    background-color: #3a1a1a !important;
    border-color: #5a2a2a !important;
    color: #d09090 !important;
}

body.dark-contrast #vanity-booking-modal .alert-warning,
body.dark-mode #vanity-booking-modal .alert-warning {
    background-color: #3a2a0a !important;
    border-color: #5a4a1a !important;
    color: #d0c090 !important;
}

/* Modal-Backdrop etwas dunkler */
body.dark-contrast .modal-backdrop,
body.dark-mode .modal-backdrop {
    background-color: #000 !important;
    opacity: 0.8 !important;
}

/* Form-Wrapper Hintergruende */
body.dark-contrast #vanity-booking-modal .form-wrapper,
body.dark-mode #vanity-booking-modal .form-wrapper {
    background-color: transparent !important;
}

/* ==========================================================================
   Bilder: NIEMALS filtern oder abdunkeln
   ========================================================================== */
body.dark-contrast img,
body.dark-mode img,
body.high-contrast img,
body.high-saturation img,
body.low-saturation img,
body.monochrome img {
    filter: none !important;
    opacity: 1 !important;
}

