/* ==========================================================================
   SV Fortuna Schneidlingen 1919 e.V.
   Barrierefreiheits- & Inklusions-Styles (A11y Engine)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Schriftgrößen-Skalierung (Root-Level für flüssiges Container-Wachstum)
   -------------------------------------------------------------------------- */
html.a11y-font-lg {
  font-size: 115% !important;
}

html.a11y-font-xl {
  font-size: 130% !important;
}

/* --------------------------------------------------------------------------
   2. Topbar Barrierefreiheits-Button (.a11y-toggle-btn)
   -------------------------------------------------------------------------- */
.a11y-toggle-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--text-light, #ffffff);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 1.25rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  flex-shrink: 0;
}

.a11y-toggle-btn:hover,
.a11y-toggle-btn:focus-visible {
  background: rgba(255, 255, 255, 0.22);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.45);
  transform: scale(1.08);
  outline: 2px solid #93c5fd;
  outline-offset: 2px;
}

.a11y-toggle-btn.active {
  background: #3b82f6;
  border-color: #60a5fa;
  color: #ffffff;
  box-shadow: 0 0 15px rgba(59, 130, 246, 0.6);
}

/* --------------------------------------------------------------------------
   3. Barrierefreiheits-Drawer (Flyout von rechts)
   -------------------------------------------------------------------------- */
.a11y-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2500;
  background: rgba(10, 15, 35, 0.65);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}

.a11y-backdrop.active {
  opacity: 1;
  visibility: visible;
}

.a11y-drawer {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100vw;
  max-width: 440px;
  height: 100vh;
  background: #0f172a;
  color: #f8fafc;
  z-index: 2600;
  transition: right 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: -12px 0 35px rgba(0, 0, 0, 0.6);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 1.8rem 1.6rem;
  box-sizing: border-box;
}

.a11y-drawer.active {
  right: 0;
}

.a11y-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  padding-bottom: 1.2rem;
  margin-bottom: 1.5rem;
}

.a11y-drawer-title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.3rem;
  font-weight: 800;
  color: #ffffff;
  margin: 0;
}

.a11y-drawer-close {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #ffffff;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 1.1rem;
}

.a11y-drawer-close:hover {
  background: #ef4444;
  color: #ffffff;
  transform: scale(1.08);
}

.a11y-group-card {
  background: #1e293b;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  padding: 1.2rem;
  margin-bottom: 1.2rem;
}

.a11y-group-label {
  font-size: 0.92rem;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0.8rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.a11y-group-label i {
  color: #60a5fa;
}

.a11y-btn-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

.a11y-btn-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
}

.a11y-option-btn {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #e2e8f0;
  padding: 0.65rem 0.4rem;
  border-radius: 10px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
}

.a11y-option-btn:hover {
  background: rgba(255, 255, 255, 0.14);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.3);
}

.a11y-option-btn.active {
  background: #3b82f6;
  border-color: #60a5fa;
  color: #ffffff;
  font-weight: 800;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

.a11y-blue-icon {
  color: #60a5fa;
}

.a11y-sun-icon {
  font-size: 1.1rem;
  color: #fbbf24;
}

.a11y-moon-icon {
  font-size: 1.1rem;
  color: #60a5fa;
}

.a11y-rate-section {
  margin-top: 0.8rem;
}

.a11y-rate-label {
  font-size: 0.8rem;
  color: #94a3b8;
  margin-bottom: 0.4rem;
  font-weight: 600;
}

.a11y-rate-sub {
  font-size: 0.75rem;
  opacity: 0.8;
}

.a11y-switch-row-bordered {
  margin-top: 1rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 0.9rem;
}

.font-normal {
  font-size: 0.95rem;
}

.font-bold {
  font-size: 1.15rem;
  font-weight: 700;
}

.font-black {
  font-size: 1.35rem;
  font-weight: 900;
}

/* --------------------------------------------------------------------------
   4. Vorlese-Assistent Player & Controls
   -------------------------------------------------------------------------- */
.a11y-speech-player {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.8rem;
}

.a11y-speech-main-btn {
  flex: 1;
  background: #059669;
  color: #ffffff;
  border: none;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.95rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  transition: all 0.2s ease;
}

.a11y-speech-main-btn:hover {
  background: #10b981;
  transform: translateY(-2px);
}

.a11y-speech-main-btn.speaking {
  background: #dc2626;
}

.a11y-speech-stop-btn {
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.15);
  padding: 0.75rem 1rem;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 1rem;
}

.a11y-speech-stop-btn:hover {
  background: rgba(255, 255, 255, 0.2);
}

.a11y-status-box {
  font-size: 0.84rem;
  color: #cbd5e1;
  margin-top: 0.6rem;
  padding: 0.5rem 0.8rem;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 8px;
  min-height: 2.2rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  line-height: 1.4;
}

.a11y-switch-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.4rem 0;
}

.a11y-switch-label {
  font-size: 0.88rem;
  color: #e2e8f0;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.a11y-switch {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
}

.a11y-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.a11y-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #475569;
  transition: 0.3s;
  border-radius: 24px;
}

.a11y-slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: 0.3s;
  border-radius: 50%;
}

.a11y-switch input:checked + .a11y-slider {
  background-color: #3b82f6;
}

.a11y-switch input:checked + .a11y-slider:before {
  transform: translateX(20px);
}

.a11y-reset-btn {
  background: none;
  border: 1px dashed rgba(255, 255, 255, 0.25);
  color: #94a3b8;
  padding: 0.7rem;
  border-radius: 10px;
  width: 100%;
  font-weight: 600;
  font-size: 0.88rem;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 0.6rem;
}

.a11y-reset-btn:hover {
  background: rgba(239, 68, 68, 0.15);
  border-color: #ef4444;
  color: #ef4444;
}

.a11y-privacy-badge {
  text-align: center;
  font-size: 0.78rem;
  color: #64748b;
  margin-top: 1rem;
  line-height: 1.4;
}

.a11y-speaking-active {
  outline: 4px solid #f59e0b !important;
  outline-offset: 6px !important;
  background-color: rgba(245, 158, 11, 0.12) !important;
  border-radius: 12px !important;
  transition: all 0.3s ease !important;
}

.a11y-section-speaker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #3b82f6;
  color: #ffffff;
  border: 2px solid #ffffff;
  cursor: pointer;
  margin-left: 0.75rem;
  font-size: 0.88rem;
  vertical-align: middle;
  transition: transform 0.2s ease, background 0.2s ease;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
}

.a11y-section-speaker:hover {
  background: #2563eb;
  transform: scale(1.18);
}

.a11y-section-speaker.speaking {
  background: #ef4444;
}

/* ==========================================================================
   5. HOHER KONTRAST THEME (WCAG 2.1 AAA - Design Tokens & Universelle Kaskade)
   ========================================================================== */

/* 5.1 Semantische Theme-Variablen Umschaltung */
body.a11y-high-contrast,
html.a11y-high-contrast {
  --theme-bg-body: #020617;
  --theme-bg-surface: #0f172a;
  --theme-bg-surface-elevated: #0f172a;
  --theme-bg-surface-subtle: #1e293b;
  --theme-bg-surface-alt: #0f172a;
  --theme-bg-hero: #020617;
  --theme-bg-section-dark: #020617;
  --theme-bg-section-light: #020617;

  --theme-text-main: #ffffff;
  --theme-text-muted: #e2e8f0;
  --theme-text-dim: #cbd5e1;
  --theme-text-heading: #ffffff;
  --theme-text-inverse: #ffffff;

  --theme-border-card: #ffffff;
  --theme-border-subtle: #ffffff;
  --theme-border-divider: #ffffff;

  --theme-badge-bg: #fbbf24;
  --theme-badge-text: #000000;
  --theme-badge-gold-bg: #fbbf24;
  --theme-badge-gold-text: #000000;

  --theme-icon-box-bg: #1e293b;
  --theme-icon-box-color: #fbbf24;

  --theme-btn-primary-bg: #fbbf24;
  --theme-btn-primary-text: #000000;
  --theme-btn-primary-border: #ffffff;
  --theme-btn-gold-bg: #fbbf24;
  --theme-btn-gold-text: #000000;
  --theme-btn-gold-border: #ffffff;

  --theme-card-shadow: none;

  background-color: #020617 !important;
  color: #ffffff !important;
}

/* 5.2 Alle Hauptsektionen & Seitenhintergründe */
body.a11y-high-contrast .header,
body.a11y-high-contrast .section,
body.a11y-high-contrast .bg-white,
body.a11y-high-contrast .bg-light,
body.a11y-high-contrast .container,
body.a11y-high-contrast .footer,
body.a11y-high-contrast main,
body.a11y-high-contrast .trial-hero,
body.a11y-high-contrast .youth-page-hero,
body.a11y-high-contrast .projects-page-hero,
body.a11y-high-contrast .sponsors-page-hero,
body.a11y-high-contrast .contact-page-hero,
body.a11y-high-contrast .ticker-wrap,
body.a11y-high-contrast .ticker-section {
  background-color: #020617 !important;
  background: #020617 !important;
  color: #ffffff !important;
}

body.a11y-high-contrast .header {
  border-bottom: 2px solid #ffffff !important;
}

/* 5.3 Alle Cards, Panels, Boxen, Banner & Container */
body.a11y-high-contrast .step-card,
body.a11y-high-contrast .schedule-card,
body.a11y-high-contrast .social-card,
body.a11y-high-contrast .team-card,
body.a11y-high-contrast .koop-card,
body.a11y-high-contrast .checklist-card-item,
body.a11y-high-contrast .checklist-box,
body.a11y-high-contrast .value-card,
body.a11y-high-contrast .youth-team-showcase,
body.a11y-high-contrast .youth-team-body,
body.a11y-high-contrast .youth-pill-item,
body.a11y-high-contrast .project-facts-bar,
body.a11y-high-contrast .supporter-badge-card,
body.a11y-high-contrast .sponsor-card-main,
body.a11y-high-contrast .sponsor-card-team,
body.a11y-high-contrast .masterplan-showcase-box,
body.a11y-high-contrast .status-card,
body.a11y-high-contrast .baustein-card,
body.a11y-high-contrast .help-option-card,
body.a11y-high-contrast .clubhouse-showcase-box,
body.a11y-high-contrast .clubhouse-feature-item,
body.a11y-high-contrast .leadership-card,
body.a11y-high-contrast .need-card,
body.a11y-high-contrast .support-card,
body.a11y-high-contrast .donation-card,
body.a11y-high-contrast .partner-card,
body.a11y-high-contrast .bank-details-box,
body.a11y-high-contrast .qr-code-box,
body.a11y-high-contrast .cta-card-gradient,
body.a11y-high-contrast .question-cta-box,
body.a11y-high-contrast .youth-placeholder-wrap,
body.a11y-high-contrast .project-teaser-banner,
body.a11y-high-contrast .partner-contact-box,
body.a11y-high-contrast .benefit-item,
body.a11y-high-contrast .about-highlight-item,
body.a11y-high-contrast .projects-baustein-item,
body.a11y-high-contrast .timeline-step-card,
body.a11y-high-contrast .support-tier-card,
body.a11y-high-contrast .spenden-info-card,
body.a11y-high-contrast .sponsor-level-card,
body.a11y-high-contrast .spenden-bank-box,
body.a11y-high-contrast .contact-form-card,
body.a11y-high-contrast .contact-info-card,
body.a11y-high-contrast .coach-wanted-box,
body.a11y-high-contrast .coach-benefit-item,
body.a11y-high-contrast .trainer-recruiting-card,
body.a11y-high-contrast .stichtag-notice-card,
body.a11y-high-contrast .girl-rule-note,
body.a11y-high-contrast .hecklingen-partner-box,
body.a11y-high-contrast .support-hub-section,
body.a11y-high-contrast .legal-content-card,
body.a11y-high-contrast .legal-highlight-box,
body.a11y-high-contrast .legal-toc,
body.a11y-high-contrast .legal-intro-box,
body.a11y-high-contrast .privacy-card,
body.a11y-high-contrast .privacy-toc,
body.a11y-high-contrast .imprint-card,
body.a11y-high-contrast .faq-item,
body.a11y-high-contrast .faq-card,
body.a11y-high-contrast .qr-code-wrapper,
body.a11y-high-contrast .partnership-perk-item,
body.a11y-high-contrast .iban-display-box {
  background-color: #0f172a !important;
  background: #0f172a !important;
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
  box-shadow: none !important;
}

/* 2x2 Grid für Checklisten & Feature-Cards bei Sehbehinderung (mehr Platz für große Schrift) */
body.a11y-high-contrast .checklist-grid,
body.a11y-high-contrast .trial-steps-grid,
body.a11y-high-contrast .support-tiers-grid,
body.a11y-high-contrast .about-highlights-grid,
body.a11y-high-contrast .projects-bausteine-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1.5rem !important;
}

body.a11y-high-contrast .checklist-card-item,
body.a11y-high-contrast .trial-step-card,
body.a11y-high-contrast .support-tier-card,
body.a11y-high-contrast .about-highlight-item,
body.a11y-high-contrast .schedule-card {
  min-width: 0 !important;
  overflow-wrap: break-word !important;
  word-break: break-word !important;
}

@media (max-width: 820px) {
  body.a11y-high-contrast .checklist-grid,
  body.a11y-high-contrast .trial-steps-grid,
  body.a11y-high-contrast .support-tiers-grid,
  body.a11y-high-contrast .about-highlights-grid,
  body.a11y-high-contrast .projects-bausteine-grid {
    grid-template-columns: 1fr !important;
  }
}

/* 5.4 Alle Texte, Überschriften, Paragraphen, Listen & Labels ausnahmslos reinweiß */
body.a11y-high-contrast h1,
body.a11y-high-contrast h2,
body.a11y-high-contrast h3,
body.a11y-high-contrast h4,
body.a11y-high-contrast h5,
body.a11y-high-contrast h6,
body.a11y-high-contrast p,
body.a11y-high-contrast span:not(.badge):not(.team-badge):not(.section-pill-badge):not(.trial-badge-item):not(.youth-team-badge):not(.schedule-badge):not(.pill-badge-girls):not(.sponsor-tag):not(.sponsor-location-tag):not(.coach-wanted-badge):not(.step-number):not(.checklist-icon-badge):not(.support-tier-price-badge):not(.baustein-badge):not(.baustein-number-badge):not(.need-price-badge):not(.qr-badge):not(.support-badge):not(.project-teaser-badge):not(.sponsor-link-btn):not(.sponsor-link-btn-sm):not(.copy-label):not([class*="btn"]):not([class*="-btn"]),
body.a11y-high-contrast li,
body.a11y-high-contrast strong,
body.a11y-high-contrast b,
body.a11y-high-contrast em,
body.a11y-high-contrast label,
body.a11y-high-contrast td,
body.a11y-high-contrast th,
body.a11y-high-contrast dt,
body.a11y-high-contrast dd,
body.a11y-high-contrast .section-headline,
body.a11y-high-contrast .section-intro-text,
body.a11y-high-contrast .schedule-team-title,
body.a11y-high-contrast .schedule-team-subtitle,
body.a11y-high-contrast .schedule-detail-text strong,
body.a11y-high-contrast .schedule-detail-text span,
body.a11y-high-contrast .checklist-heading,
body.a11y-high-contrast .checklist-intro,
body.a11y-high-contrast .checklist-card-item strong,
body.a11y-high-contrast .checklist-card-item span,
body.a11y-high-contrast .fact-item strong,
body.a11y-high-contrast .fact-item span,
body.a11y-high-contrast .youth-pill-item strong,
body.a11y-high-contrast .youth-pill-item span,
body.a11y-high-contrast .youth-pill-item div,
body.a11y-high-contrast .supporter-info h4,
body.a11y-high-contrast .supporter-info p,
body.a11y-high-contrast .sponsor-name,
body.a11y-high-contrast .social-info h3,
body.a11y-high-contrast .social-info p,
body.a11y-high-contrast .support-tier-title,
body.a11y-high-contrast .support-tier-desc,
body.a11y-high-contrast .partnership-perk-text strong,
body.a11y-high-contrast .partnership-perk-text span,
body.a11y-high-contrast .bank-info-label,
body.a11y-high-contrast .bank-info-val,
body.a11y-high-contrast .qr-code-caption,
body.a11y-high-contrast .trainer-recruiting-title,
body.a11y-high-contrast .trainer-recruiting-text,
body.a11y-high-contrast .baustein-content h3,
body.a11y-high-contrast .baustein-content p,
body.a11y-high-contrast .baustein-bullets li,
body.a11y-high-contrast .baustein-features-list li,
body.a11y-high-contrast .detail-label,
body.a11y-high-contrast .detail-value,
body.a11y-high-contrast .purpose-code,
body.a11y-high-contrast .hecklingen-title,
body.a11y-high-contrast .hecklingen-text,
body.a11y-high-contrast .stichtag-title,
body.a11y-high-contrast .stichtag-desc,
body.a11y-high-contrast .text-primary,
body.a11y-high-contrast .text-dark,
body.a11y-high-contrast .text-dim {
  color: #ffffff !important;
  text-shadow: none !important;
  opacity: 1 !important;
}

body.a11y-high-contrast .iban-code {
  background-color: #020617 !important;
  background: #020617 !important;
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
  display: inline-block !important;
  padding: 6px 12px !important;
  border-radius: 8px !important;
  letter-spacing: 1px !important;
}

/* 5.5 Badges, Schrittzähler & Preis-Tags in Signal-Gelb */
body.a11y-high-contrast .step-number,
body.a11y-high-contrast .section-pill-badge,
body.a11y-high-contrast .team-badge,
body.a11y-high-contrast .youth-team-badge,
body.a11y-high-contrast .schedule-badge,
body.a11y-high-contrast .trial-badge-item,
body.a11y-high-contrast .checklist-icon-badge,
body.a11y-high-contrast .sponsor-tag,
body.a11y-high-contrast .sponsor-location-tag,
body.a11y-high-contrast .pill-badge-girls,
body.a11y-high-contrast .coach-wanted-badge,
body.a11y-high-contrast .form-badge-preset,
body.a11y-high-contrast .support-tier-price-badge,
body.a11y-high-contrast .baustein-badge,
body.a11y-high-contrast .baustein-number-badge,
body.a11y-high-contrast .need-price-badge,
body.a11y-high-contrast .qr-badge,
body.a11y-high-contrast .support-badge,
body.a11y-high-contrast .project-teaser-badge,
body.a11y-high-contrast .ui-badge-pill,
body.a11y-high-contrast .cta-badge-pill,
body.a11y-high-contrast .clubhouse-badge-vision,
body.a11y-high-contrast .youth-zoom-hint,
body.a11y-high-contrast .hecklingen-badge {
  background-color: #fbbf24 !important;
  background: #fbbf24 !important;
  color: #000000 !important;
  font-weight: 900 !important;
  border: 2px solid #ffffff !important;
  box-shadow: none !important;
}

body.a11y-high-contrast .step-number,
body.a11y-high-contrast .section-pill-badge *,
body.a11y-high-contrast .team-badge *,
body.a11y-high-contrast .youth-team-badge *,
body.a11y-high-contrast .schedule-badge *,
body.a11y-high-contrast .trial-badge-item *,
body.a11y-high-contrast .sponsor-tag *,
body.a11y-high-contrast .sponsor-location-tag *,
body.a11y-high-contrast .pill-badge-girls *,
body.a11y-high-contrast .coach-wanted-badge *,
body.a11y-high-contrast .support-tier-price-badge *,
body.a11y-high-contrast .baustein-badge *,
body.a11y-high-contrast .baustein-number-badge *,
body.a11y-high-contrast .need-price-badge *,
body.a11y-high-contrast .qr-badge *,
body.a11y-high-contrast .support-badge *,
body.a11y-high-contrast .project-teaser-badge *,
body.a11y-high-contrast .ui-badge-pill *,
body.a11y-high-contrast .cta-badge-pill *,
body.a11y-high-contrast .clubhouse-badge-vision *,
body.a11y-high-contrast .youth-zoom-hint *,
body.a11y-high-contrast .hecklingen-badge * {
  color: #000000 !important;
  font-weight: 900 !important;
}

/* 5.6 Standard Hyperlinks (nur im Fließtext) */
body.a11y-high-contrast a:not(.btn):not([class*="btn"]):not([class*="-btn"]):not(.footer-social-icon):not(.logo):not(.a11y-option-btn):not(.nav-links-desktop a):not(.nav-links-overlay a):not(.social-card):not(.supporter-badge-card):not(.sponsor-card-main):not(.sponsor-card-team):not(.route-btn):not(.copy-btn-inline) {
  color: #fbbf24 !important;
  text-decoration: underline !important;
  font-weight: 700 !important;
}

/* 5.7 Icons in Runden & Quadratischen Boxen */
body.a11y-high-contrast .schedule-icon-wrap,
body.a11y-high-contrast .checklist-icon,
body.a11y-high-contrast .fact-icon,
body.a11y-high-contrast .supporter-icon,
body.a11y-high-contrast .status-icon-box,
body.a11y-high-contrast .contact-info-icon,
body.a11y-high-contrast .value-icon,
body.a11y-high-contrast .social-icon,
body.a11y-high-contrast .stichtag-icon-box,
body.a11y-high-contrast .support-tier-icon,
body.a11y-high-contrast .partnership-perk-icon,
body.a11y-high-contrast .hecklingen-partner-icon,
body.a11y-high-contrast .hecklingen-icon,
body.a11y-high-contrast .leadership-icon,
body.a11y-high-contrast .help-icon,
body.a11y-high-contrast .need-icon,
body.a11y-high-contrast .benefit-icon,
body.a11y-high-contrast .about-highlight-icon,
body.a11y-high-contrast .team-placeholder-icon,
body.a11y-high-contrast .coach-benefit-item i,
body.a11y-high-contrast .clubhouse-feature-item i {
  background-color: #1e293b !important;
  background: #1e293b !important;
  border: 2px solid #fbbf24 !important;
  color: #fbbf24 !important;
}

body.a11y-high-contrast .schedule-icon-wrap i,
body.a11y-high-contrast .checklist-icon i,
body.a11y-high-contrast .fact-icon i,
body.a11y-high-contrast .supporter-icon i,
body.a11y-high-contrast .status-icon-box i,
body.a11y-high-contrast .contact-info-icon i,
body.a11y-high-contrast .value-icon i,
body.a11y-high-contrast .social-icon i,
body.a11y-high-contrast .youth-pill-item i,
body.a11y-high-contrast .about-highlight-icon i,
body.a11y-high-contrast .stichtag-icon-box i,
body.a11y-high-contrast .support-tier-icon i,
body.a11y-high-contrast .partnership-perk-icon i,
body.a11y-high-contrast .hecklingen-partner-icon i,
body.a11y-high-contrast .hecklingen-icon i,
body.a11y-high-contrast .leadership-icon i,
body.a11y-high-contrast .team-placeholder-icon i,
body.a11y-high-contrast .help-icon i,
body.a11y-high-contrast .need-icon i,
body.a11y-high-contrast .benefit-icon i,
body.a11y-high-contrast .baustein-bullets li i,
body.a11y-high-contrast .baustein-features-list li i {
  color: #fbbf24 !important;
  background: none !important;
  -webkit-text-fill-color: #fbbf24 !important;
}

/* 5.8 Buttons & Interaktive Links (IMMERSIV tiefschwarz auf Signal-Gelb) */
body.a11y-high-contrast .btn,
body.a11y-high-contrast a.btn,
body.a11y-high-contrast button.btn,
body.a11y-high-contrast .btn-primary,
body.a11y-high-contrast a.btn-primary,
body.a11y-high-contrast .btn-hero-primary,
body.a11y-high-contrast a.btn-hero-primary,
body.a11y-high-contrast .btn-hero-gold,
body.a11y-high-contrast a.btn-hero-gold,
body.a11y-high-contrast .btn-white-pill,
body.a11y-high-contrast a.btn-white-pill,
body.a11y-high-contrast .btn-schedule-contact,
body.a11y-high-contrast a.btn-schedule-contact,
body.a11y-high-contrast .btn-hero-cta,
body.a11y-high-contrast a.btn-hero-cta,
body.a11y-high-contrast .btn-social,
body.a11y-high-contrast .btn-submit-active,
body.a11y-high-contrast .sponsor-link-btn,
body.a11y-high-contrast a.sponsor-link-btn,
body.a11y-high-contrast .sponsor-link-btn-sm,
body.a11y-high-contrast a.sponsor-link-btn-sm,
body.a11y-high-contrast .route-btn,
body.a11y-high-contrast a.route-btn,
body.a11y-high-contrast .copy-btn-inline,
body.a11y-high-contrast button.copy-btn-inline,
body.a11y-high-contrast .btn-help-action,
body.a11y-high-contrast a.btn-help-action,
body.a11y-high-contrast .btn-teaser-action,
body.a11y-high-contrast a.btn-teaser-action,
body.a11y-high-contrast .whatsapp-channel-btn,
body.a11y-high-contrast a.whatsapp-channel-btn,
body.a11y-high-contrast .btn-copy,
body.a11y-high-contrast button.btn-copy {
  background-color: #fbbf24 !important;
  background: #fbbf24 !important;
  color: #000000 !important;
  font-weight: 900 !important;
  border: 2px solid #ffffff !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

body.a11y-high-contrast .btn *,
body.a11y-high-contrast a.btn *,
body.a11y-high-contrast button.btn *,
body.a11y-high-contrast .btn-primary *,
body.a11y-high-contrast a.btn-primary *,
body.a11y-high-contrast .btn-hero-primary *,
body.a11y-high-contrast a.btn-hero-primary *,
body.a11y-high-contrast .btn-hero-gold *,
body.a11y-high-contrast a.btn-hero-gold *,
body.a11y-high-contrast .btn-white-pill *,
body.a11y-high-contrast a.btn-white-pill *,
body.a11y-high-contrast .btn-schedule-contact *,
body.a11y-high-contrast a.btn-schedule-contact *,
body.a11y-high-contrast .btn-hero-cta *,
body.a11y-high-contrast a.btn-hero-cta *,
body.a11y-high-contrast .btn-social *,
body.a11y-high-contrast .sponsor-link-btn *,
body.a11y-high-contrast a.sponsor-link-btn *,
body.a11y-high-contrast .sponsor-link-btn-sm *,
body.a11y-high-contrast a.sponsor-link-btn-sm *,
body.a11y-high-contrast .route-btn *,
body.a11y-high-contrast a.route-btn *,
body.a11y-high-contrast .copy-btn-inline *,
body.a11y-high-contrast .btn-help-action *,
body.a11y-high-contrast a.btn-help-action *,
body.a11y-high-contrast .btn-teaser-action *,
body.a11y-high-contrast a.btn-teaser-action *,
body.a11y-high-contrast .whatsapp-channel-btn *,
body.a11y-high-contrast a.whatsapp-channel-btn *,
body.a11y-high-contrast .btn-copy *,
body.a11y-high-contrast button.btn-copy * {
  color: #000000 !important;
  font-weight: 900 !important;
}

body.a11y-high-contrast .btn:hover,
body.a11y-high-contrast a.btn:hover,
body.a11y-high-contrast button.btn:hover,
body.a11y-high-contrast .btn-hero-gold:hover,
body.a11y-high-contrast .btn-hero-primary:hover,
body.a11y-high-contrast .btn-white-pill:hover,
body.a11y-high-contrast .btn-schedule-contact:hover,
body.a11y-high-contrast a.btn-schedule-contact:hover,
body.a11y-high-contrast .sponsor-card-main:hover .sponsor-link-btn,
body.a11y-high-contrast .sponsor-card-team:hover .sponsor-link-btn-sm,
body.a11y-high-contrast .sponsor-link-btn:hover,
body.a11y-high-contrast .sponsor-link-btn-sm:hover,
body.a11y-high-contrast .btn-copy:hover {
  background-color: #fcd34d !important;
  background: #fcd34d !important;
  color: #000000 !important;
  border-color: #ffffff !important;
}

/* 5.9 Formulareingaben & Alerts */
body.a11y-high-contrast .form-control,
body.a11y-high-contrast .form-select,
body.a11y-high-contrast textarea,
body.a11y-high-contrast select,
body.a11y-high-contrast input {
  background-color: #020617 !important;
  background: #020617 !important;
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
}

body.a11y-high-contrast select.form-control {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-color: #020617 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23fbbf24'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
  background-size: 1.3rem !important;
  padding-right: 2.8rem !important;
}

body.a11y-high-contrast input::placeholder,
body.a11y-high-contrast textarea::placeholder {
  color: #94a3b8 !important;
  opacity: 1 !important;
}

body.a11y-high-contrast .form-team-note {
  color: #cbd5e1 !important;
}

body.a11y-high-contrast .field-hint.show-error {
  color: #f87171 !important;
  font-weight: 700 !important;
}

body.a11y-high-contrast .form-control:focus,
body.a11y-high-contrast .form-select:focus,
body.a11y-high-contrast textarea:focus,
body.a11y-high-contrast select:focus,
body.a11y-high-contrast input:focus {
  border-color: #fbbf24 !important;
  outline: 3px solid #fbbf24 !important;
  box-shadow: none !important;
}

body.a11y-high-contrast .ajax-alert.success {
  background-color: #022c22 !important;
  background: #022c22 !important;
  color: #ffffff !important;
  border: 3px solid #22c55e !important;
}

body.a11y-high-contrast .ajax-alert.success * {
  color: #ffffff !important;
}

body.a11y-high-contrast .ajax-alert.error {
  background-color: #450a0a !important;
  background: #450a0a !important;
  color: #ffffff !important;
  border: 3px solid #ef4444 !important;
}

body.a11y-high-contrast .ajax-alert.error * {
  color: #ffffff !important;
}

body.a11y-high-contrast .form-requirements-box {
  background-color: #0f172a !important;
  background: #0f172a !important;
  border: 2px solid #ffffff !important;
  color: #ffffff !important;
}

body.a11y-high-contrast .form-requirements-box * {
  color: #ffffff !important;
}

body.a11y-high-contrast .form-requirements-box i {
  color: #fbbf24 !important;
}

/* 5.10 Partner- und Sponsoren-Logos & Social Cards */
body.a11y-high-contrast .sponsor-logo-box,
body.a11y-high-contrast .sponsor-logo-box-team,
body.a11y-high-contrast .partner-logo-school,
body.a11y-high-contrast .partner-logo-white {
  background-color: #ffffff !important;
  background: #ffffff !important;
  border-radius: 10px !important;
  padding: 6px !important;
  border: 2px solid #ffffff !important;
}

body.a11y-high-contrast .contact-info-card.whatsapp-channel-card {
  background: #020617 !important;
  border: 2px solid #22c55e !important;
}

body.a11y-high-contrast .contact-info-card.whatsapp-channel-card h3,
body.a11y-high-contrast .contact-info-card.whatsapp-channel-card p,
body.a11y-high-contrast .contact-info-card.whatsapp-channel-card .whatsapp-channel-sub {
  color: #ffffff !important;
}

body.a11y-high-contrast .whatsapp-channel-btn {
  background: #22c55e !important;
  color: #000000 !important;
  font-weight: 900 !important;
  border: 2px solid #ffffff !important;
}

/* ==========================================================================
   5.11 A11Y-DRAWER SCHUTZ: Eigenständiges, sauberes Einstellungsmenü-Design
   ========================================================================== */
body.a11y-high-contrast .a11y-drawer {
  background: #0f172a !important;
  color: #f8fafc !important;
  border-left: 2px solid #ffffff !important;
  box-shadow: -12px 0 35px rgba(0, 0, 0, 0.8) !important;
}

body.a11y-high-contrast .a11y-drawer-header {
  border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
}

body.a11y-high-contrast .a11y-drawer-title,
body.a11y-high-contrast .a11y-drawer-title * {
  color: #ffffff !important;
}

body.a11y-high-contrast .a11y-drawer-close {
  background: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  color: #ffffff !important;
  border-radius: 50% !important;
}

body.a11y-high-contrast .a11y-drawer-close:hover {
  background: #ef4444 !important;
  color: #ffffff !important;
  border-color: #ef4444 !important;
}

body.a11y-high-contrast .a11y-group-card {
  background: #1e293b !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 16px !important;
}

body.a11y-high-contrast .a11y-group-label {
  color: #94a3b8 !important;
}

body.a11y-high-contrast .a11y-group-label i,
body.a11y-high-contrast .a11y-blue-icon {
  color: #60a5fa !important;
}

body.a11y-high-contrast .a11y-btn-grid,
body.a11y-high-contrast .a11y-btn-grid-2 {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Segmentierte Buttons: Inaktiv */
body.a11y-high-contrast .a11y-option-btn {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1.5px solid rgba(255, 255, 255, 0.2) !important;
  color: #e2e8f0 !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  border-radius: 10px !important;
}

body.a11y-high-contrast .a11y-option-btn * {
  color: #e2e8f0 !important;
  font-weight: 600 !important;
}

body.a11y-high-contrast .a11y-option-btn .a11y-sun-icon {
  color: #fbbf24 !important;
}

body.a11y-high-contrast .a11y-option-btn .a11y-moon-icon {
  color: #60a5fa !important;
}

body.a11y-high-contrast .a11y-option-btn:hover {
  background: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}

body.a11y-high-contrast .a11y-option-btn:hover * {
  color: #ffffff !important;
}

/* Segmentierte Buttons: Aktiv (blau hervorgehoben) */
body.a11y-high-contrast .a11y-option-btn.active {
  background: #2563eb !important;
  border: 2px solid #93c5fd !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.5) !important;
}

body.a11y-high-contrast .a11y-option-btn.active * {
  color: #ffffff !important;
  font-weight: 800 !important;
}

/* Vorlese-Assistent Player */
body.a11y-high-contrast .a11y-speech-main-btn {
  background: #059669 !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  font-weight: 700 !important;
  border-radius: 10px !important;
}

body.a11y-high-contrast .a11y-speech-main-btn * {
  color: #ffffff !important;
}

body.a11y-high-contrast .a11y-speech-main-btn:hover {
  background: #047857 !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}

body.a11y-high-contrast .a11y-speech-main-btn.speaking {
  background: #dc2626 !important;
}

body.a11y-high-contrast .a11y-speech-stop-btn {
  background: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 10px !important;
}

body.a11y-high-contrast .a11y-speech-stop-btn * {
  color: #ffffff !important;
}

body.a11y-high-contrast .a11y-speech-stop-btn:hover {
  background: #dc2626 !important;
  border-color: #ef4444 !important;
}

body.a11y-high-contrast .a11y-rate-label {
  color: #94a3b8 !important;
}

body.a11y-high-contrast .a11y-rate-sub {
  color: #cbd5e1 !important;
}

body.a11y-high-contrast .a11y-switch-row-bordered {
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
}

body.a11y-high-contrast .a11y-switch-label,
body.a11y-high-contrast .a11y-switch-label * {
  color: #e2e8f0 !important;
}

body.a11y-high-contrast .a11y-status-box {
  background: rgba(0, 0, 0, 0.45) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  color: #cbd5e1 !important;
}

body.a11y-high-contrast .a11y-status-box * {
  color: #cbd5e1 !important;
}

/* Reset & Datenschutz */
body.a11y-high-contrast .a11y-reset-btn {
  background: #d97706 !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  font-weight: 700 !important;
  border-radius: 10px !important;
}

body.a11y-high-contrast .a11y-reset-btn * {
  color: #ffffff !important;
}

body.a11y-high-contrast .a11y-reset-btn:hover {
  background: #b45309 !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}

body.a11y-high-contrast .a11y-privacy-badge {
  color: #64748b !important;
}
