/* ==========================================================================
   M&B Barrierefreiheit – Widget-Styles und Anpassungsmodi
   Alle Modi hängen an Klassen auf <html> (a11y-*), die vom Skript gesetzt
   werden. Die Widget-Oberfläche selbst ist von den Modi ausgenommen.
   ========================================================================== */

@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/atkinson-hyperlegible-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/atkinson-hyperlegible-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/atkinson-hyperlegible-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/atkinson-hyperlegible-latin-ext-700-normal.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "OpenDyslexic"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/OpenDyslexic-Regular.woff2") format("woff2"); }
@font-face { font-family: "OpenDyslexic"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/OpenDyslexic-Bold.woff2") format("woff2"); }

/* --------------------------------------------------------------------------
   Grundlegende WCAG-Härtung für die ganze Seite (unabhängig vom Widget)
   -------------------------------------------------------------------------- */
.mba11y-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

/* Sichtbarer Tastaturfokus auf allen Bedienelementen (WCAG 2.4.7, 2.4.11) */
html body a:focus-visible,
html body button:focus-visible,
html body input:focus-visible,
html body select:focus-visible,
html body textarea:focus-visible,
html body summary:focus-visible,
html body [tabindex]:focus-visible,
html body [role="button"]:focus-visible,
html body .menu-link:focus-visible,
html body .ast-custom-button-link:focus-visible {
  outline-style: solid !important;
  outline-width: 3px !important;
  outline-color: var(--mba11y-focus, #0d1f4f) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 3px #fff !important;
  border-radius: 3px;
  z-index: 5;
  transition-duration: 0s !important;
}
body .skip-link:focus,
body .skip-link:focus-visible {
  position: fixed !important; top: 12px !important; left: 12px !important; width: auto !important; height: auto !important;
  padding: 12px 18px !important; margin: 0 !important; clip: auto !important; clip-path: none !important; overflow: visible !important;
  background: #0d1f4f !important; color: #fff !important; font-size: 1rem !important; font-weight: 600 !important; text-decoration: none !important; z-index: 100000 !important;
}
/* Links im Fließtext erkennbar machen (WCAG 1.4.1) */
.entry-content .elementor-widget-text-editor a:not(.elementor-button):not(.ast-button),
.entry-content .elementor-widget-heading a,
.is24-details a, .ff-el-tc a, .entry-content p a:not(.elementor-button):not(.ast-button) { text-decoration: underline; text-underline-offset: 0.15em; }
/* Zielgrößen (WCAG 2.5.8) */
.custom-logo-link { display: inline-block; padding: 4px 0; }
.ff-el-form-check-input[type="checkbox"], .ff-el-form-check-input[type="radio"] { width: 22px !important; height: 22px !important; min-width: 22px; margin-top: 2px; accent-color: #0d1f4f; }
.ff-el-form-check-label { display: flex; gap: 10px; align-items: flex-start; }
.swiper-pagination-bullet { width: 24px !important; height: 24px !important; margin: 0 2px !important; background: transparent !important; opacity: 1 !important; position: relative; }
.swiper-pagination-bullet::after { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: currentColor; opacity: 0.35; }
.swiper-pagination-bullet-active::after { opacity: 1; }
.owl-dots .owl-dot { min-width: 24px !important; min-height: 24px !important; }
.leaflet-control-zoom a { width: 32px !important; height: 32px !important; line-height: 32px !important; }
/* Exposé-Fakten (waren vorher h3) optisch unverändert */
.is24-fact { font-size: 1.25em; font-weight: 700; margin: 0; line-height: 1.3; }
/* Hero: Text über Foto lesbar halten (WCAG 1.4.3) */
.home .elementor-element-4e595e85 { box-shadow: inset 0 0 0 100vmax rgba(7, 6, 20, 0.38); }
.home .elementor-element-4e595e85 .elementor-heading-title, .home .elementor-element-4e595e85 .elementor-widget-text-editor { text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); }
.home .elementor-element-4e595e85 .elementor-element-5682e18 .elementor-heading-title { font-weight: 600; }
/* Bewegung nur, wenn das System nichts anderes wünscht (WCAG 2.3.3) */
@media (prefers-reduced-motion: reduce) {
  html:not(.a11y-motion-forced) *, html:not(.a11y-motion-forced) *::before, html:not(.a11y-motion-forced) *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
  html:not(.a11y-motion-forced) .elementor-invisible { visibility: visible !important; }
}

/* --------------------------------------------------------------------------
   Widget
   -------------------------------------------------------------------------- */
.mba11y {
  --w-bg: #fff; --w-surface: #f3f5f9; --w-text: #0f172a; --w-muted: #4b5563; --w-border: #cdd3de;
  --w-accent: #0d1f4f; --w-accent-text: #fff; --w-highlight: #e9c24a; --w-focus: #0d1f4f;
  position: relative; z-index: 100000; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: var(--w-text); font-size: 16px; line-height: 1.4; letter-spacing: normal; word-spacing: normal; text-align: left;
}
.mba11y *, .mba11y *::before, .mba11y *::after { box-sizing: border-box; }
.mba11y button { font: inherit; letter-spacing: inherit; text-transform: none; }
.mba11y button:focus-visible, .mba11y a:focus-visible, .mba11y select:focus-visible { outline: 3px solid var(--w-highlight) !important; outline-offset: 2px !important; box-shadow: 0 0 0 2px var(--w-accent) !important; }
.mba11y__launcher {
  position: fixed; bottom: clamp(16px, 2.2vw, 28px); z-index: 100002;
  width: 60px; height: 60px; display: grid; place-items: center; padding: 0;
  border: 3px solid #fff; border-radius: 50%; background: var(--w-accent); color: var(--w-accent-text);
  box-shadow: 0 6px 22px rgba(13, 31, 79, 0.35); cursor: pointer; transition: transform 160ms ease-out, box-shadow 160ms ease-out;
}
.mba11y--left .mba11y__launcher, .mba11y--left .mba11y__panel { left: clamp(16px, 2.2vw, 28px); }
.mba11y--right .mba11y__launcher, .mba11y--right .mba11y__panel { right: clamp(16px, 2.2vw, 28px); }
.mba11y__launcher:hover { transform: translateY(-2px); box-shadow: 0 9px 26px rgba(13, 31, 79, 0.42); }
.mba11y__launcher svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mba11y__launcher circle { fill: currentColor; stroke: none; }
.mba11y__launcher[aria-expanded="true"] { background: var(--w-highlight); color: #0f172a; }
.mba11y__backdrop { position: fixed; inset: 0; z-index: 100000; background: rgba(13, 31, 79, 0.45); }
.mba11y__panel {
  position: fixed; bottom: clamp(88px, calc(2.2vw + 72px), 104px); z-index: 100001;
  width: min(420px, calc(100vw - 32px)); max-height: min(760px, calc(100vh - 120px)); overflow: auto; overscroll-behavior: contain;
  background: var(--w-bg); color: var(--w-text); border: 1px solid var(--w-border); border-radius: 14px; box-shadow: 0 22px 55px rgba(13, 31, 79, 0.3);
}
.mba11y__header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 14px 12px 20px; background: var(--w-accent); color: var(--w-accent-text); }
.mba11y__header h2 { margin: 0; font-size: 1.2rem; font-weight: 700; line-height: 1.25; color: inherit; font-family: inherit; }
.mba11y__header p { margin: 2px 0 0; font-size: 0.8rem; opacity: 0.85; }
.mba11y__close { flex: none; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 2px solid rgba(255,255,255,0.5); border-radius: 50%; background: transparent; color: inherit; font-size: 1.8rem; line-height: 1; cursor: pointer; }
.mba11y__close:hover { background: rgba(255, 255, 255, 0.15); }
.mba11y__content { padding: 4px 16px 16px; }
.mba11y__group { margin: 0; padding: 14px 0 12px; border: 0; border-bottom: 1px solid var(--w-border); min-width: 0; }
.mba11y__group:last-of-type { border-bottom: 0; }
.mba11y__group > legend, .mba11y__group > h3 { display: block; width: 100%; margin: 0 0 10px; padding: 0; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--w-muted); font-family: inherit; }
.mba11y__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.mba11y__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mba11y__tile {
  min-height: 74px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 8px 6px;
  border: 2px solid var(--w-border); border-radius: 10px; background: var(--w-bg); color: var(--w-text); font-size: 0.8rem; font-weight: 600; line-height: 1.2; text-align: center; cursor: pointer;
}
.mba11y__tile:hover { background: var(--w-surface); border-color: var(--w-muted); }
.mba11y__tile svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.mba11y__tile[aria-pressed="true"], .mba11y__tile[aria-checked="true"] { border-color: var(--w-accent); background: var(--w-accent); color: var(--w-accent-text); }
.mba11y__tile[aria-pressed="true"]::after, .mba11y__tile[aria-checked="true"]::after { content: "✓ aktiv"; font-size: 0.68rem; font-weight: 500; opacity: 0.9; }
.mba11y__swatch { width: 26px; height: 26px; border-radius: 50%; border: 2px solid #555; }
.mba11y__swatch--standard { background: linear-gradient(90deg, #fff 50%, #0d1f4f 50%); }
.mba11y__swatch--high { background: linear-gradient(90deg, #000 50%, #ffea00 50%); border-color: #000; }
.mba11y__swatch--dark { background: linear-gradient(90deg, #111 50%, #f5f5f5 50%); border-color: #777; }
.mba11y__swatch--gray { background: linear-gradient(90deg, #333 50%, #bbb 50%); border-color: #555; }
.mba11y__stepper { display: grid; grid-template-columns: 56px 1fr 56px; align-items: stretch; min-height: 52px; border: 1px solid var(--w-border); border-radius: 10px; overflow: hidden; }
.mba11y__stepper button { border: 0; background: var(--w-surface); color: var(--w-text); font-size: 1.15rem; font-weight: 700; cursor: pointer; }
.mba11y__stepper button:hover:not(:disabled) { background: var(--w-border); }
.mba11y__stepper button:disabled { cursor: not-allowed; opacity: 0.4; }
.mba11y__stepper output { display: grid; place-items: center; background: var(--w-bg); font-weight: 600; border-inline: 1px solid var(--w-border); }
.mba11y__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.mba11y__row label { font-weight: 600; font-size: 0.9rem; }
.mba11y__select { min-height: 44px; padding: 6px 10px; border: 2px solid var(--w-border); border-radius: 8px; background: var(--w-bg); color: var(--w-text); font: inherit; max-width: 60%; }
.mba11y__seg { display: grid; grid-template-columns: repeat(3, 1fr); border: 2px solid var(--w-border); border-radius: 10px; overflow: hidden; }
.mba11y__seg button { min-height: 44px; border: 0; border-right: 1px solid var(--w-border); background: var(--w-bg); color: var(--w-text); font-size: 0.85rem; font-weight: 600; cursor: pointer; }
.mba11y__seg button:last-child { border-right: 0; }
.mba11y__seg button[aria-pressed="true"] { background: var(--w-accent); color: var(--w-accent-text); }
.mba11y__footer { display: flex; flex-direction: column; gap: 10px; padding-top: 14px; }
.mba11y__reset { width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: center; gap: 9px; padding: 10px 14px; border: 2px solid var(--w-accent); border-radius: 8px; background: transparent; color: var(--w-accent); font-weight: 700; cursor: pointer; }
.mba11y__reset:hover { background: var(--w-accent); color: var(--w-accent-text); }
.mba11y__reset svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mba11y__links { display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: center; font-size: 0.82rem; color: var(--w-muted); }
.mba11y__links a { color: var(--w-accent); text-decoration: underline; font-weight: 600; }
.mba11y__links kbd { font-family: inherit; border: 1px solid var(--w-border); border-radius: 4px; padding: 0 5px; background: var(--w-surface); }
.mba11y__hint { margin: 8px 0 0; font-size: 0.78rem; color: var(--w-muted); }
/* Vorlesen-Leiste */
.mba11y__speech { position: fixed; top: 12px; left: 50%; transform: translateX(-50%); z-index: 100003; display: flex; align-items: center; gap: 10px; padding: 8px 10px 8px 16px; background: var(--w-accent); color: #fff; border-radius: 999px; box-shadow: 0 8px 24px rgba(13,31,79,0.35); font-size: 0.9rem; font-weight: 600; max-width: calc(100vw - 24px); }
.mba11y__speech button { min-width: 44px; min-height: 36px; padding: 0 12px; border: 2px solid rgba(255,255,255,0.6); border-radius: 999px; background: transparent; color: #fff; font-weight: 700; cursor: pointer; }
.mba11y__speech button:hover { background: rgba(255,255,255,0.15); }
body.mba11y-scroll-locked { overflow: hidden; }
@media (max-width: 480px) {
  .mba11y__panel { width: calc(100vw - 16px); left: 8px !important; right: 8px !important; bottom: 80px; max-height: calc(100vh - 92px); }
  .mba11y__grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --------------------------------------------------------------------------
   Modus: Hoher Kontrast (Schwarz auf Weiß, Gelb-auf-Schwarz für Aktionen)
   -------------------------------------------------------------------------- */
html.a11y-contrast-high { color-scheme: light; --ast-global-color-0: #000; --ast-global-color-1: #000; --ast-global-color-2: #000; --ast-global-color-3: #000; --ast-global-color-4: #fff; --ast-global-color-5: #fff; --ast-global-color-6: #000; --ast-global-color-7: #000; --ast-global-color-8: #000; --e-global-color-primary: #000; --e-global-color-secondary: #000; --e-global-color-text: #000; --e-global-color-accent: #000; --mba11y-focus: #d90000; }
html.a11y-contrast-high body, html.a11y-contrast-high .e-con, html.a11y-contrast-high .elementor-section, html.a11y-contrast-high .elementor-widget-container, html.a11y-contrast-high .site-header, html.a11y-contrast-high .ast-above-header, html.a11y-contrast-high .ast-primary-header-bar, html.a11y-contrast-high .ast-mobile-header-content, html.a11y-contrast-high .site-footer, html.a11y-contrast-high .ast-footer-row, html.a11y-contrast-high .site-footer .ast-builder-grid-row, html.a11y-contrast-high .is24-card, html.a11y-contrast-high .mb-immosuche, html.a11y-contrast-high .mb-immosuche__form, html.a11y-contrast-high .ff-el-form-control, html.a11y-contrast-high .sub-menu, html.a11y-contrast-high .elementor-element:not(.elementor-widget-image):not(.elementor-widget-button) { background-color: #fff !important; color: #000 !important; }
html.a11y-contrast-high .e-con[data-mba11y-bg], html.a11y-contrast-high .e-con:has(> .e-con-inner > .elementor-widget-image), html.a11y-contrast-high .home .elementor-element-4e595e85 { background-color: transparent !important; }
html.a11y-contrast-high :where(body *:not(img):not(svg):not(video):not(iframe):not(.mba11y *):not(.elementor-button):not(.ast-button):not(.ast-custom-button):not(button):not(.mb-immosuche__submit):not(.mb-immosuche__pill):not(input[type="submit"]):not(.ff-btn)) { color: #000 !important; border-color: #000 !important; text-shadow: none !important; box-shadow: none !important; }
html.a11y-contrast-high a:not(.mba11y a):not(.elementor-button):not(.ast-button):not(.ast-custom-button):not(.mb-immosuche__pill) { text-decoration: underline !important; }
html.a11y-contrast-high .elementor-button, html.a11y-contrast-high .ast-button, html.a11y-contrast-high .ast-custom-button, html.a11y-contrast-high button:not(.mba11y button):not(.ast-menu-toggle), html.a11y-contrast-high .mb-immosuche__submit, html.a11y-contrast-high .mb-immosuche__pill, html.a11y-contrast-high input[type="submit"], html.a11y-contrast-high .ff-btn { background: #000 !important; color: #ffea00 !important; border: 2px solid #000 !important; text-shadow: none !important; }
html.a11y-contrast-high .elementor-button:hover, html.a11y-contrast-high .ast-custom-button:hover, html.a11y-contrast-high .mb-immosuche__submit:hover, html.a11y-contrast-high .mb-immosuche__pill:hover { background: #ffea00 !important; color: #000 !important; }
html.a11y-contrast-high .is24-card, html.a11y-contrast-high .ff-el-form-control, html.a11y-contrast-high .mb-immosuche__form, html.a11y-contrast-high .elementor-widget-icon-box .elementor-widget-container, html.a11y-contrast-high .elementor-widget-call-to-action .elementor-cta, html.a11y-contrast-high select, html.a11y-contrast-high textarea { border: 2px solid #000 !important; box-shadow: none !important; }
html.a11y-contrast-high .elementor-icon, html.a11y-contrast-high .elementor-icon svg, html.a11y-contrast-high .elementor-icon-box-icon svg, html.a11y-contrast-high .elementor-icon-box-icon i { color: #000 !important; fill: #000 !important; }
html.a11y-contrast-high .e-con[class*="elementor-element"]:has(> .e-con-inner > .e-con img), html.a11y-contrast-high .elementor-widget-image { background: #fff !important; }
html.a11y-contrast-high .home .elementor-element-4e595e85 { box-shadow: none; }
html.a11y-contrast-high .elementor-background-overlay { display: none !important; }
html.a11y-contrast-high .elementor-widget-divider .elementor-divider-separator { border-color: #000 !important; }

html.a11y-contrast-high :is(.elementor-button, .ast-button, .ast-custom-button, .ast-custom-button-link, button:not(.mba11y button), .mb-immosuche__submit, .mb-immosuche__pill, .ff-btn) :is(span, i, svg, strong, b) { color: #ffea00 !important; fill: #ffea00 !important; }
html.a11y-contrast-high :is(.elementor-button, .ast-custom-button, .mb-immosuche__submit, .mb-immosuche__pill):hover :is(span, i, svg) { color: #000 !important; fill: #000 !important; }

/* --------------------------------------------------------------------------
   Modus: Dunkler Kontrast
   -------------------------------------------------------------------------- */
html.a11y-contrast-dark { color-scheme: dark; --ast-global-color-0: #f5f5f5; --ast-global-color-1: #ffffff; --ast-global-color-2: #f5f5f5; --ast-global-color-3: #e6e6e6; --ast-global-color-4: #1d1d1d; --ast-global-color-5: #121212; --ast-global-color-6: #5a5a5a; --ast-global-color-7: #f5f5f5; --ast-global-color-8: #eeeeee; --e-global-color-primary: #f5f5f5; --e-global-color-secondary: #e6e6e6; --e-global-color-text: #e6e6e6; --e-global-color-accent: #ffd34d; --mba11y-focus: #ffd34d; }
html.a11y-contrast-dark body { background: #121212 !important; }
html.a11y-contrast-dark .e-con, html.a11y-contrast-dark .elementor-section, html.a11y-contrast-dark .elementor-widget-container, html.a11y-contrast-dark .site-header, html.a11y-contrast-dark .ast-above-header, html.a11y-contrast-dark .ast-primary-header-bar, html.a11y-contrast-dark .ast-mobile-header-content, html.a11y-contrast-dark .site-footer, html.a11y-contrast-dark .ast-footer-row, html.a11y-contrast-dark .site-footer .ast-builder-grid-row, html.a11y-contrast-dark .sub-menu, html.a11y-contrast-dark .elementor-element:not(.elementor-widget-image):not(.elementor-widget-button), html.a11y-contrast-dark .ast-separate-container .ast-article-single, html.a11y-contrast-dark #content { background-color: #121212 !important; }
html.a11y-contrast-dark .home .elementor-element-4e595e85 { background-image: var(--mba11y-hero-image, none) !important; box-shadow: inset 0 0 0 100vmax rgba(0, 0, 0, 0.6); }
html.a11y-contrast-dark :where(body *:not(img):not(svg):not(video):not(iframe):not(.mba11y *):not(.elementor-button):not(.ast-button):not(.ast-custom-button):not(button):not(.mb-immosuche__submit):not(.mb-immosuche__pill):not(input[type="submit"]):not(.ff-btn):not(a)) { color: #f2f2f2 !important; text-shadow: none !important; }
html.a11y-contrast-dark a:not(.mba11y a):not(.elementor-button):not(.ast-button):not(.ast-custom-button):not(.mb-immosuche__pill):not(.menu-link):not(.is24-card) { color: #9ed0ff !important; text-decoration: underline !important; }
html.a11y-contrast-dark .menu-link, html.a11y-contrast-dark .is24-card, html.a11y-contrast-dark .is24-card * { color: #f2f2f2 !important; }
html.a11y-contrast-dark .elementor-button, html.a11y-contrast-dark .ast-button, html.a11y-contrast-dark .ast-custom-button, html.a11y-contrast-dark button:not(.mba11y button):not(.ast-menu-toggle), html.a11y-contrast-dark .mb-immosuche__submit, html.a11y-contrast-dark .mb-immosuche__pill, html.a11y-contrast-dark input[type="submit"], html.a11y-contrast-dark .ff-btn { background: #ffd34d !important; color: #121212 !important; border-color: #ffd34d !important; }
html.a11y-contrast-dark .is24-card, html.a11y-contrast-dark .mb-immosuche__form, html.a11y-contrast-dark .elementor-widget-icon-box .elementor-widget-container { background: #1d1d1d !important; border: 1px solid #5a5a5a !important; box-shadow: none !important; }
html.a11y-contrast-dark .ff-el-form-control, html.a11y-contrast-dark select, html.a11y-contrast-dark textarea, html.a11y-contrast-dark input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]) { background: #1d1d1d !important; color: #f2f2f2 !important; border: 2px solid #8a8a8a !important; }
html.a11y-contrast-dark .elementor-icon, html.a11y-contrast-dark .elementor-icon svg, html.a11y-contrast-dark .elementor-icon-box-icon svg, html.a11y-contrast-dark .elementor-icon-box-icon i, html.a11y-contrast-dark .ast-menu-toggle, html.a11y-contrast-dark .ast-menu-toggle svg { color: #f2f2f2 !important; fill: #f2f2f2 !important; }
html.a11y-contrast-dark .elementor-widget-divider .elementor-divider-separator { border-color: #8a8a8a !important; }
html.a11y-contrast-dark .custom-logo-link img { background: #fff; padding: 4px; border-radius: 4px; }
html.a11y-contrast-dark .elementor-background-overlay { display: none !important; }
html.a11y-contrast-dark .mba11y { --w-bg: #1d1d1d; --w-surface: #2a2a2a; --w-text: #f2f2f2; --w-muted: #c9c9c9; --w-border: #5a5a5a; --w-accent: #ffd34d; --w-accent-text: #121212; --w-highlight: #ffffff; }
html.a11y-contrast-dark .mba11y__launcher { border-color: #121212; }

html.a11y-contrast-dark :is(.elementor-button, .ast-button, .ast-custom-button, .ast-custom-button-link, button:not(.mba11y button):not(.ast-menu-toggle), .mb-immosuche__submit, .mb-immosuche__pill, .ff-btn) :is(span, i, svg, strong, b) { color: #121212 !important; fill: #121212 !important; }

html.a11y-contrast-dark body .elementor-button .elementor-button-text, html.a11y-contrast-dark body .elementor-button .elementor-button-icon { color: #121212 !important; }
html.a11y-contrast-high body .elementor-button .elementor-button-text, html.a11y-contrast-high body .elementor-button .elementor-button-icon { color: #ffea00 !important; }

/* Graustufen */
html.a11y-grayscale body > *:not(.mba11y) { filter: grayscale(1); }

/* --------------------------------------------------------------------------
   Text-Anpassungen
   -------------------------------------------------------------------------- */
html.a11y-font-readable body :not(.mba11y *):not(i):not(.fa):not(.fas):not(.far):not(.eicon):not([class*="fa-"]):not([class*="eicon-"]):not(svg):not(kbd):not(code) { font-family: "Atkinson Hyperlegible", Verdana, Arial, sans-serif !important; }
html.a11y-font-dyslexic body :not(.mba11y *):not(i):not(.fa):not(.fas):not(.far):not(.eicon):not([class*="fa-"]):not([class*="eicon-"]):not(svg):not(kbd):not(code) { font-family: "OpenDyslexic", "Comic Sans MS", Verdana, sans-serif !important; }
html.a11y-line-wide body :not(.mba11y *) { line-height: 1.8 !important; }
html.a11y-line-wider body :not(.mba11y *) { line-height: 2.2 !important; }
html.a11y-letter-wide body :not(.mba11y *) { letter-spacing: 0.08em !important; word-spacing: 0.16em !important; }
html.a11y-letter-wider body :not(.mba11y *) { letter-spacing: 0.15em !important; word-spacing: 0.3em !important; }
html.a11y-align-left body :not(.mba11y *) { text-align: left !important; }
html.a11y-align-left .elementor-widget-heading .elementor-heading-title, html.a11y-align-left .elementor-widget-text-editor { text-align: left !important; }

/* Hervorhebungen */
html.a11y-links body a:not(.mba11y a):not(.custom-logo-link) { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 0.15em; outline: 2px solid #0d1f4f !important; outline-offset: 2px; background-color: #fff4bf !important; color: #0d1f4f !important; border-radius: 2px; }
html.a11y-links.a11y-contrast-dark body a:not(.mba11y a) { background-color: #3a3200 !important; color: #ffd34d !important; outline-color: #ffd34d !important; }
html.a11y-headings body :is(h1, h2, h3, h4, h5, h6):not(.mba11y *) { background-color: #fff4bf !important; color: #0d1f4f !important; outline: 2px solid #0d1f4f !important; outline-offset: 2px; padding: 0.05em 0.25em !important; box-decoration-break: clone; -webkit-box-decoration-break: clone; text-shadow: none !important; }
html.a11y-headings body :is(h1, h2, h3, h4, h5, h6)::before { content: attr(data-mba11y-level) " "; font-size: 0.55em; font-weight: 700; vertical-align: middle; opacity: 0.8; }
html.a11y-focus-strong body :is(a, button, input, select, textarea, summary, [tabindex], [role="button"]):focus, html.a11y-focus-strong body :is(a, button, input, select, textarea, summary, [tabindex], [role="button"]):focus-visible { outline: 5px solid #d90000 !important; outline-offset: 4px !important; box-shadow: 0 0 0 4px #fff, 0 0 0 9px #d90000 !important; }
html.a11y-focus-strong body :focus-visible { scroll-margin: 120px; }

/* Großer Cursor (Pfeil + Hand als SVG-Data-URI, weiß mit schwarzem Rand) */
html.a11y-cursor-big, html.a11y-cursor-big body, html.a11y-cursor-big body * { cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'><path d='M5 3l14 9-6.5 1.2L16 20l-3 1.4-3.5-6.8L5 19z' fill='%23fff' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/></svg>") 10 6, auto !important; }
html.a11y-cursor-big body :is(a, button, [role="button"], label, select, summary, input[type="submit"], input[type="button"], input[type="checkbox"], input[type="radio"], .swiper-button-next, .swiper-button-prev, .swiper-pagination-bullet, .owl-dot, .owl-prev, .owl-next), html.a11y-cursor-big body :is(a, button, [role="button"], label, select, summary) * { cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'><path d='M9 21c-1.5 0-2.6-.8-3.5-2.3L3 14.5c-.5-.9-.2-1.8.6-2.2.8-.4 1.6 0 2.1.7L7 14V5.3C7 4.6 7.6 4 8.3 4c.7 0 1.2.6 1.2 1.3V11l.2-.1V3.4c0-.8.6-1.4 1.3-1.4.7 0 1.3.6 1.3 1.4V11h.2V4.6c0-.8.6-1.3 1.3-1.3s1.3.6 1.3 1.3V11h.2V6.6c0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3V15c0 3.5-2.4 6-5.6 6H9z' fill='%23fff' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/></svg>") 14 4, pointer !important; }
html.a11y-cursor-big body :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], input[type="url"], textarea) { cursor: text !important; }

/* Leselineal + Lesemaske */
.mba11y-ruler { position: fixed; left: 0; right: 0; height: 64px; margin-top: -32px; z-index: 99990; pointer-events: none; background: rgba(233, 194, 74, 0.28); border-top: 2px solid #0d1f4f; border-bottom: 2px solid #0d1f4f; }
.mba11y-mask { position: fixed; left: 0; right: 0; z-index: 99989; pointer-events: none; background: rgba(0, 0, 0, 0.62); }
.mba11y-mask--top { top: 0; }
.mba11y-mask--bottom { bottom: 0; }

/* Bewegung stoppen */
html.a11y-reduce-motion *, html.a11y-reduce-motion *::before, html.a11y-reduce-motion *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
html.a11y-reduce-motion .elementor-invisible { visibility: visible !important; }
html.a11y-reduce-motion .swiper-wrapper { transition-timing-function: linear; }

/* Bilder ausblenden */
html.a11y-hide-images body img:not(.mba11y img):not(.custom-logo), html.a11y-hide-images body video, html.a11y-hide-images body picture, html.a11y-hide-images body .elementor-widget-image-carousel, html.a11y-hide-images body .elementor-widget-google_maps, html.a11y-hide-images body .leaflet-container, html.a11y-hide-images body .owl-carousel { visibility: hidden !important; }
html.a11y-hide-images body [data-mba11y-bg] { background-image: none !important; }
html.a11y-hide-images body .elementor-background-overlay { display: none !important; }

/* Vorlesen: markiert das gerade vorgelesene Element */
.mba11y-speaking { outline: 4px solid #e9c24a !important; outline-offset: 3px; }
html.a11y-speech body :is(p, h1, h2, h3, h4, h5, h6, li, td, th, a, button, label, span, div, strong)::selection { background: #e9c24a; }
