/* ============================================================
   Barrierefreiheit – Hilfsklassen, Fokus, Hochkontrast,
   Bedien-Leiste, „Einfache Sprache"
   ============================================================ */

/* Skip-Link "Zum Inhalt springen" */
.skip-link {
  position: absolute; left: 8px; top: -52px; z-index: 100000;
  background: #34598c; color: #fff; padding: 11px 18px; border-radius: 8px;
  font-weight: 700; font-family: 'Source Sans 3', system-ui, sans-serif;
  text-decoration: none; transition: top .15s ease;
}
.skip-link:focus { top: 8px; outline: 3px solid #fff; outline-offset: 2px; }

/* Nur für Screenreader */
.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0;
  margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Deutlich sichtbarer Tastatur-Fokus */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #1d4e89; outline-offset: 2px; border-radius: 4px;
}
main:focus { outline: none; }

/* ---------- Hochkontrast-Modus ---------- */
html.a11y-contrast {
  --bg: #ffffff; --bg-soft: #ffffff; --bg-mint: #eaf1fb; --bg-warm: #ffffff;
  --petrol: #08315f; --petrol-deep: #061f3d; --petrol-ink: #000000;
  --teal: #08315f; --teal-soft: #08315f; --mint: #cfe0f5;
  --ink: #000000; --ink-soft: #141414; --ink-faint: #2b2b2b;
  --line: #000000;
  --amber: #7a4d00; --amber-deep: #5c3a00; --sun-soft: #fff3df; --coral: #8a2b15;
}
html.a11y-contrast a { text-decoration: underline; }
html.a11y-contrast .btn { border: 2px solid currentColor; }
html.a11y-contrast .schwer-card,
html.a11y-contrast .cert,
html.a11y-contrast .info-card,
html.a11y-contrast .acc-item,
html.a11y-contrast .booking-embed { border: 1.5px solid #000 !important; }

/* ---------- Bewegung reduzieren (erzwungen) ---------- */
html.a11y-reduce-motion *,
html.a11y-reduce-motion *::before,
html.a11y-reduce-motion *::after {
  animation-duration: .001s !important; animation-iteration-count: 1 !important;
  transition-duration: .001s !important; scroll-behavior: auto !important;
}

/* ============================================================
   Barrierefreiheits-Leiste (unten links – kollidiert nicht mit 321)
   ============================================================ */
#a11y-widget { position: fixed; left: 16px; bottom: 16px; z-index: 2147483645;
  font-family: 'Source Sans 3', system-ui, sans-serif; }
#a11y-btn {
  width: 52px; height: 52px; border-radius: 50%; border: 0; background: #34598c;
  color: #fff; cursor: pointer; box-shadow: 0 6px 20px rgba(20,40,70,.30);
  display: grid; place-items: center;
}
#a11y-btn:hover { background: #27496e; }
#a11y-btn svg { width: 27px; height: 27px; }
#a11y-panel {
  position: absolute; left: 0; bottom: 64px; width: 248px; background: #fff;
  border: 1px solid #d3dce8; border-radius: 14px; box-shadow: 0 16px 44px rgba(20,40,70,.22);
  padding: 16px 16px 14px;
}
#a11y-panel[hidden] { display: none; }
#a11y-panel h2 { font-size: 15px; margin: 0 0 12px; color: #27496e; font-family: inherit; }
.a11y-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 14px; color: #333; }
.a11y-zoom { display: flex; gap: 6px; }
.a11y-zoom button { width: 38px; height: 36px; border: 1px solid #bcd0e6; border-radius: 8px; background: #f3f7fb; font-weight: 700; cursor: pointer; color: #27496e; font-size: 15px; }
.a11y-zoom button:hover { background: #e6eef8; }
.a11y-toggle { display: block; width: 100%; text-align: left; padding: 11px 13px; margin-bottom: 8px; border: 1px solid #bcd0e6; border-radius: 8px; background: #fff; cursor: pointer; font-size: 14px; color: #27496e; font-weight: 600; }
.a11y-toggle:hover { background: #f3f7fb; }
.a11y-toggle[aria-pressed="true"] { background: #34598c; color: #fff; border-color: #34598c; }
.a11y-link { display: block; text-align: center; padding: 10px; margin-top: 4px; background: #eef3fb; border-radius: 8px; color: #27496e; font-weight: 700; text-decoration: none; }
.a11y-link:hover { background: #e0eaf8; }

/* ============================================================
   „Einfache Sprache" – große, ruhige Darstellung
   ============================================================ */
.leicht { max-width: 760px; }
.leicht h2 { font-family: 'Source Serif 4', Georgia, serif; font-size: 27px; color: #1c3a5e; margin: 36px 0 10px; line-height: 1.25; }
.leicht p, .leicht li { font-size: 21px; line-height: 1.7; color: #20303f; margin: 0 0 14px; }
.leicht ul { padding-left: 0; list-style: none; }
.leicht li { position: relative; padding-left: 34px; }
.leicht li::before { content: ""; position: absolute; left: 0; top: 12px; width: 14px; height: 14px; border-radius: 50%; background: #34598c; }
.leicht .big-box { background: #eef3fb; border: 1px solid #d3dce8; border-radius: 16px; padding: 22px 26px; margin: 18px 0; }
.leicht .big-box strong { color: #1c3a5e; }
.leicht a { color: #1d4e89; font-weight: 700; }
