/* Barrierefreiheit – WCAG 2.2 AA, Version 1.5.0 */
:root{--focus:#ffbf47;--focus-dark:#111}
html{scroll-padding-top:110px}
body{overflow-wrap:break-word}
main:focus{outline:0}

/* Der Sprunglink ist auf jeder Seite der erste interaktive Inhalt. */
.skip{position:fixed!important;z-index:1000;top:10px;left:10px!important;transform:translateY(-160%);padding:12px 18px!important;border-radius:8px;background:#fff!important;color:#111!important;font-weight:700;box-shadow:0 4px 18px rgba(0,0,0,.35);transition:transform .15s ease}
.skip:focus{transform:translateY(0)}

/* Einheitlich gut sichtbarer Tastaturfokus. */
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:3px solid var(--focus)!important;outline-offset:4px!important;box-shadow:0 0 0 2px var(--focus-dark)!important}
:where(a,button,summary){touch-action:manipulation}
:where(button,.button,.nav-cta,.service-more,.footer-social a,.privacy-settings-link,.nav-dropdown-toggle){min-width:44px;min-height:44px}
.footer-links a,.contact-direct a,.training-map>a,.level-info a,.offer-card>a,.service-more{text-decoration:none}
.legal-content a,main p a,main li a{font-weight:600;text-decoration:none}
.nav-cta,.button{text-decoration:none}
[aria-current="page"]{text-decoration:none}

/* Inhalte bleiben sichtbar, auch wenn JavaScript oder Animationen ausfallen. */
.reveal,.fly-in{opacity:1!important;transform:none!important;translate:none!important}
.motion-enabled .reveal:not(.visible){opacity:0!important;transform:translateY(24px)!important}
.motion-enabled .fly-in:not(.is-visible){opacity:0!important;transform:translateY(28px)!important}
.motion-enabled .fly-in[data-fly="left"]:not(.is-visible){transform:translateX(-36px)!important}
.motion-enabled .fly-in[data-fly="right"]:not(.is-visible){transform:translateX(36px)!important}

/* Formulare: größere Felder, verständliche Pflichtfeldanzeige und Fehlerzustände. */
.form-field input,.form-field textarea{min-height:48px;border-width:2px!important}
.form-field textarea{min-height:150px}
.form-consent{font-size:.82rem!important;line-height:1.55!important}
.form-consent input{width:22px;height:22px;margin:0!important;accent-color:var(--forest)}
.form-field input:user-invalid,.form-field textarea:user-invalid,.form-consent input:user-invalid{border-color:#b3261e!important}
.form-status:not(:empty){padding:12px 14px;border-left:5px solid currentColor;background:#fff;color:#263b32}

/* Dialoge und Datenschutzanzeige. */
dialog{overscroll-behavior:contain}
.message-modal-close,.service-modal-close{min-width:48px;min-height:48px}
.consent-banner{max-height:calc(100vh - 20px);overflow:auto}
.consent-card{color:#20251f}
.consent-note{color:#4c554e!important;font-size:.8rem!important}
.consent-note a{text-decoration:none}
.consent-actions button{min-height:48px}
.privacy-settings-link{text-decoration:none!important}

/* Kontraste und lesbare Kleinschrift. */
.steps p,.principles p,.trust span{color:#4f5751!important}
.eyebrow,.contact-direct small,.contact-kicker,.service-facts small{font-size:max(.75rem,12px)!important}
.contact-details small{color:#d5ddd8!important}
footer{color:#e0e6e2!important}
footer a{color:#fff}
.footer-copy,.footer-links{line-height:1.6}

/* Screenreader-Hilfstext. */
.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}

/* Zoom und schmale Ansichten: keine horizontale Seitennavigation. */
@media(max-width:900px){
  .site-header nav a,.nav-dropdown-main{min-height:48px;display:flex;align-items:center}
  .nav-toggle{min-width:48px;min-height:48px;justify-content:center}
  .site-header nav.open{max-height:calc(100vh - 80px);overflow:auto}
}
@media(max-width:420px){
  .consent-card{padding:20px 16px}
  .hero h1{font-size:clamp(2.8rem,15vw,4rem)}
}

/* Nutzerwunsch nach weniger Bewegung hat immer Vorrang. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal,.fly-in{opacity:1!important;transform:none!important;translate:none!important}
  [data-parallax]{transform:none!important}
}

/* Windows-Kontrastmodus respektieren. */
@media(forced-colors:active){
  :where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid Highlight!important;box-shadow:none!important}
  .button,.nav-cta,.consent-actions button{border:2px solid ButtonText}
}
