/* Seitliche Barrierefreiheit Toolbar */
.accessibility-toolbar { position: fixed; right: 20px; top: 50%; transform: translateY(-50%); z-index: 1050; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); border: 1px solid #dee2e6; border-radius: 8px; padding: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }

/* Toggle Button (immer sichtbar) */
.accessibility-toggle { display: flex; align-items: center; justify-content: center; }

/* Toolbar Content (versteckbar) */
.accessibility-content { display: none; flex-direction: column; gap: 8px; margin-top: 8px; padding-top: 8px; border-top: 1px solid #dee2e6; }
.accessibility-content.show { display: flex; }

/* Mobile: Toolbar unten */
@media (max-width: 768px) { .accessibility-toolbar { position: fixed; bottom: 20px; left: 50%; right: auto; top: auto; transform: translateX(-50%); } .accessibility-content { flex-direction: row; margin-top: 0; margin-left: 8px; padding-top: 0; padding-left: 8px; border-top: none; border-left: 1px solid #dee2e6; } .accessibility-toggle { flex-shrink: 0; } }

/* Desktop: Buttons vertikal */
@media (min-width: 769px) { .accessibility-toolbar { display: flex; flex-direction: column; } }

/* Links Hervorhebung */
.links-highlighted a { outline: 2px solid #ffc107 !important; outline-offset: 2px !important; }
.links-highlighted a:focus { outline: 3px solid #ffc107 !important; }
.links-highlighted a img, .links-highlighted a svg, .links-highlighted a picture, .links-highlighted a canvas { outline: 3px solid #ffc107 !important; outline-offset: 3px !important; }
.links-highlighted a[style*="background-image"], .links-highlighted a.bg-image, .links-highlighted a figure { outline: 3px solid #ffc107 !important; outline-offset: 3px !important; min-height: 40px !important; display: inline-block !important; }

/* Schriftgrößen */
.font-large { font-size: 1.1em !important; }
.font-large h1 { font-size: 2.8rem !important; }
.font-large h2 { font-size: 2.2rem !important; }
.font-large h3 { font-size: 1.8rem !important; }
.font-large p, .font-large li, .font-large span { font-size: 1.1em !important; }

.font-xlarge { font-size: 1.25em !important; }
.font-xlarge h1 { font-size: 3.2rem !important; }
.font-xlarge h2 { font-size: 2.6rem !important; }
.font-xlarge h3 { font-size: 2.2rem !important; }
.font-xlarge p, .font-xlarge li, .font-xlarge span { font-size: 1.25em !important; }

/* Hoher Kontrast */
.high-contrast { background: #ffffff !important; color: #000000 !important; }
.high-contrast *, .high-contrast *:before, .high-contrast *:after { color: #000000 !important; background: transparent !important; }
.high-contrast .navbar, .high-contrast .card, .high-contrast .bg-light, .high-contrast .bg-secondary, .high-contrast .bg-primary, .high-contrast .bg-info, .high-contrast .bg-warning, .high-contrast .bg-danger, .high-contrast .bg-success, .high-contrast .bg-dark, .high-contrast .alert, .high-contrast .badge { background: #ffffff !important; color: #000000 !important; border: 2px solid #000000 !important; }
.high-contrast .text-muted, .high-contrast .text-secondary, .high-contrast .text-dark, .high-contrast .text-light, .high-contrast .text-primary, .high-contrast .text-info, .high-contrast .text-warning, .high-contrast .text-danger, .high-contrast .text-success, .high-contrast .text-white { color: #000000 !important; }
.high-contrast [class*="bg-"] { background: #ffffff !important; color: #000000 !important; border: 2px solid #000000 !important; }
.high-contrast [style*="color"] { color: #000000 !important; }
.high-contrast [style*="background"] { background: #ffffff !important; }
.high-contrast h1, .high-contrast h2, .high-contrast h3, .high-contrast h4, .high-contrast h5, .high-contrast h6 { color: #000000 !important; background: transparent !important; }
.high-contrast p, .high-contrast span, .high-contrast div, .high-contrast li, .high-contrast td, .high-contrast th { color: #000000 !important; background: transparent !important; }
.high-contrast a { color: #0000ff !important; text-decoration: underline !important; font-weight: bold !important; background: transparent !important; }
.high-contrast a:hover, .high-contrast a:focus { color: #ffffff !important; background: #0000ff !important; }
.high-contrast .btn { background: #ffffff !important; color: #000000 !important; border: 3px solid #000000 !important; font-weight: bold !important; }
.high-contrast .btn:hover, .high-contrast .btn:focus { background: #000000 !important; color: #ffffff !important; }
.high-contrast .accessibility-toolbar { background: #ffffff !important; border: 3px solid #000000 !important; }
.high-contrast .accessibility-btn { background: #ffffff !important; color: #000000 !important; border: 2px solid #000000 !important; }
.high-contrast .accessibility-btn:hover { background: #f0f0f0 !important; color: #000000 !important; border-color: #000000 !important; transform: scale(1.02) !important; }
.high-contrast .accessibility-btn.active { background: #0000ff !important; color: #ffffff !important; border-color: #0000ff !important; }

/* Bilder in Graustufen - Komplett ohne Rahmen/Outlines */
.grayscale-images img, .grayscale-images video, .grayscale-images picture, .grayscale-images svg, .grayscale-images canvas, .grayscale-images figure, .grayscale-images .card-img, .grayscale-images .hero, .grayscale-images .banner, .grayscale-images [style*="background-image"], .grayscale-images .bg-image, .grayscale-images [class*="bg-"] { filter: grayscale(100%) !important; -webkit-filter: grayscale(100%) !important; transition: filter 0.3s ease !important; outline: none !important; border: none !important; 
 box-shadow: none !important; }
.grayscale-images img:hover, .grayscale-images video:hover, .grayscale-images picture:hover, .grayscale-images svg:hover, .grayscale-images canvas:hover,
.grayscale-images figure:hover, .grayscale-images .card-img:hover, .grayscale-images .hero:hover, .grayscale-images .banner:hover,
.grayscale-images [style*="background-image"]:hover, .grayscale-images .bg-image:hover { filter: grayscale(0%) !important; -webkit-filter: grayscale(0%) !important; outline: none !important; border: none !important; box-shadow: none !important; }
.grayscale-images ::before, .grayscale-images ::after { filter: grayscale(100%) !important; -webkit-filter: grayscale(100%) !important; outline: none !important; border: none !important; box-shadow: none !important; }
.grayscale-images *:hover::before, .grayscale-images *:hover::after { filter: grayscale(0%) !important; -webkit-filter: grayscale(0%) !important; outline: none !important; border: none !important; box-shadow: none !important; }

/* Auch Parent-Container ohne Rahmen */
.grayscale-images div, .grayscale-images section, .grayscale-images article, .grayscale-images a { outline: none !important; box-shadow: none !important; }

/* Bilder komplett ausblenden - Verstärkt */
.hide-images img, .hide-images video, .hide-images picture, .hide-images svg, .hide-images canvas { display: none !important; visibility: hidden !important; }
.hide-images figure, .hide-images .card-img, .hide-images .hero, .hide-images .banner { display: none !important; visibility: hidden !important; }
.hide-images [style*="background-image"], .hide-images .bg-image, .hide-images [class*="bg-"] { background-image: none !important; display: none !important; }
.hide-images .logo, .hide-images .icon, .hide-images .thumbnail { display: none !important; visibility: hidden !important; }
.hide-images ::before, .hide-images ::after { background-image: none !important; content: none !important; display: none !important; }
.hide-images iframe[src*="youtube"], .hide-images iframe[src*="vimeo"], .hide-images iframe[src*="video"] { display: none !important; }

/* Lesemodus - Gezielter Ansatz: Nur bestimmte Inhalte anzeigen */
.reading-mode { background: white !important; color: #000000 !important; font-size: 1.3em !important; line-height: 1.8 !important; }

/* Alles ausblenden außer spezifischen Inhalten */
.reading-mode * { display: none !important; visibility: hidden !important; }

/* Nur diese Klassen und die Accessibility Toolbar anzeigen */
.reading-mode .inhalt, 
.reading-mode .inhalt *, 
.reading-mode .headliner, 
.reading-mode .headliner *, 
.reading-mode .termin, 
.reading-mode .termin *,
.reading-mode .accessibility-toolbar,
.reading-mode .accessibility-toolbar * { 
 display: block !important; 
 visibility: visible !important; 
}

/* Flex-Container für Toolbar */
.reading-mode .accessibility-toolbar { display: flex !important; }
.reading-mode .accessibility-content { display: flex !important; }
.reading-mode .accessibility-toggle { display: flex !important; }
.reading-mode .accessibility-btn { display: flex !important; }

/* Styling für sichtbare Inhalte */
.reading-mode .inhalt, .reading-mode .headliner, .reading-mode .termin { max-width: none !important; width: 100% !important; margin: 0 auto !important; padding: 40px 20px !important; background: white !important; }
.reading-mode .inhalt h1, .reading-mode .inhalt h2, .reading-mode .inhalt h3, .reading-mode .inhalt h4, .reading-mode .inhalt h5, .reading-mode .inhalt h6,
.reading-mode .headliner h1, .reading-mode .headliner h2, .reading-mode .headliner h3, .reading-mode .headliner h4, .reading-mode .headliner h5, .reading-mode .headliner h6,
.reading-mode .termin h1, .reading-mode .termin h2, .reading-mode .termin h3, .reading-mode .termin h4, .reading-mode .termin h5, .reading-mode .termin h6 { color: #000000 !important; font-weight: bold !important; margin: 2.5rem 0 1.5rem 0 !important; font-size: 1.4em !important; }
.reading-mode .inhalt h1, .reading-mode .headliner h1, .reading-mode .termin h1 { font-size: 2em !important; }
.reading-mode .inhalt h2, .reading-mode .headliner h2, .reading-mode .termin h2 { font-size: 1.8em !important; }
.reading-mode .inhalt h3, .reading-mode .headliner h3, .reading-mode .termin h3 { font-size: 1.6em !important; }
.reading-mode .inhalt p, .reading-mode .inhalt li, .reading-mode .inhalt blockquote, .reading-mode .inhalt .text,
.reading-mode .headliner p, .reading-mode .headliner li, .reading-mode .headliner blockquote, .reading-mode .headliner .text,
.reading-mode .termin p, .reading-mode .termin li, .reading-mode .termin blockquote, .reading-mode .termin .text { color: #000000 !important; margin-bottom: 2rem !important; text-align: justify !important; font-size: 1.3em !important; }
.reading-mode .inhalt a, .reading-mode .headliner a, .reading-mode .termin a { color: #0066cc !important; text-decoration: underline !important; font-weight: normal !important; }

/* Bilder in den sichtbaren Bereichen ausblenden */
.reading-mode .inhalt img, .reading-mode .inhalt video, .reading-mode .inhalt picture, .reading-mode .inhalt svg, .reading-mode .headliner img, .reading-mode .headliner video, .reading-mode .headliner picture, .reading-mode .headliner svg, .reading-mode .termin img, .reading-mode .termin video, .reading-mode .termin picture, .reading-mode .termin svg { display: none !important; }
.reading-mode .accessibility-toolbar { background: #ffffff !important; border: 2px solid #000000 !important; }

/* Verhindere doppelte Outlines: Links haben Vorrang */
.links-highlighted.grayscale-images a img, .links-highlighted.grayscale-images a svg, .links-highlighted.grayscale-images a picture, .links-highlighted.grayscale-images a canvas, .links-highlighted.grayscale-images a[style*="background-image"], .links-highlighted.grayscale-images a figure { outline: 3px solid #ffc107 !important; outline-offset: 3px !important; }

/* Button Styles */
.accessibility-btn { border: 1px solid #6c757d; background: white; color: #495057; transition: all 0.2s ease; min-width: 45px; min-height: 45px; display: flex; align-items: center; justify-content: center; border-radius: 6px; position: relative; }
.accessibility-btn:hover { background: #f8f9fa; border-color: #495057; transform: scale(1.05); }
.accessibility-btn.active { background: #ffc107; color: #000; border-color: #ffc107; }
.accessibility-btn i { font-size: 18px; }

/* Font Size Indicator */
.accessibility-btn .font-indicator { position: absolute; bottom: 2px; right: 2px; font-size: 8px; background: #ffc107; color: #000; border-radius: 2px; padding: 1px 3px; display: none; }
.accessibility-btn.active .font-indicator { display: block; }

/* Tastatur Navigation */
.accessibility-btn:focus { outline: 3px solid #007bff !important; outline-offset: 2px !important; }
.accessibility-toolbar:focus-within { box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25) !important; }

/* Tooltip für Desktop */
@media (min-width: 769px) { .accessibility-btn::before { content: attr(data-tooltip); position: absolute; right: 55px; top: 50%; transform: translateY(-50%); background: #333; color: white; padding: 6px 10px; border-radius: 4px; font-size: 12px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity 0.2s; z-index: 1060; } .accessibility-btn::after { content: ''; position: absolute; right: 47px; top: 50%; transform: translateY(-50%); border: 5px solid transparent; border-left-color: #333; opacity: 0; transition: opacity 0.2s; z-index: 1060; } .accessibility-btn:hover::before, .accessibility-btn:hover::after { opacity: 1; } }