/* Shared keyboard, contrast and text-resizing fixes. */
.skip-link {
    position: fixed; top: 12px; left: 12px; z-index: 10001;
    padding: 12px 18px; color: #243240; background: #ffcf59;
    font-weight: 700; border-radius: 8px; transform: translateY(-200%);
}
.skip-link:focus { transform: none; color: #243240; }
.nav-open .skip-link { visibility: hidden; }
.angebot-button:focus-visible, .skip-link:focus-visible,
.header .responsive-nav .nav-request:focus-visible {
    outline: 3px solid #ffcf59 !important; outline-offset: 4px !important;
    box-shadow: 0 0 0 4px #243240;
}
main, #audio-section-title { scroll-margin-top: 140px; }
#audio-section-title:focus { outline: 3px solid #ffcf59 !important; outline-offset: 6px !important; }
main :is(a, button, input, textarea, select, summary) {
    scroll-margin-top: 140px; scroll-margin-bottom: 100px;
}
main p, main li, main h1, main h2, main h3 { overflow-wrap: anywhere; }
.section.started .started-content .h-subtitles { height: auto; min-height: 22px; }
a.btn, .btn {
    display: inline-flex; align-items: center; justify-content: center;
    max-width: 100%; height: auto; min-height: 64px; padding: 18px 28px;
    line-height: 1.5; white-space: normal; overflow-wrap: anywhere;
}
.btn .animated-button { min-width: 0; line-height: inherit; }
.btn .animated-button span { overflow: visible; text-shadow: none; }
.btn .animated-button span em { display: inline; transform: none !important; }
.btn .icon { flex-shrink: 0; }
.audio-player-wrap { overflow: visible; }
.audio-ai-note summary, .image-ai-note summary {
    color: #f7f9fc; background: #243240; min-width: 32px; min-height: 32px;
    justify-content: center;
}
.audio-info-header { padding-right: 32px; }
.audio-info-box h2, .audio-info-box h3 { overflow-wrap: anywhere; }
/* Escape must hide the submenu even while its trigger still has focus/hover. */
.header .top-menu ul li.submenu-dismissed > .sub-menu {
    visibility: hidden; opacity: 0; pointer-events: none;
}
@media (min-width: 1200px) {
    .header .top-menu-nav .sub-menu {
        max-height: calc(100dvh - 160px); overflow-y: auto; overscroll-behavior: contain;
    }
    .header .top-menu-nav .sub-menu li a { min-height: 24px; padding: 4px 0; }
}
@media (max-width: 1199px) {
    main, #audio-section-title, main :is(a, button, input, textarea, select, summary) { scroll-margin-top: 100px; }
    .footer { padding-bottom: 85px; }
}
@media (max-width: 575.98px) {
    .audio-info-header { flex-wrap: wrap; padding-right: 32px; }
    .audio-info-heading { flex-basis: 100%; }
    .audio-info-box h2, .audio-info-box h3 { flex-wrap: wrap; }
    .angebot-button { max-width: calc(100% - 32px); }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
    .skip-link, .angebot-button { border: 2px solid ButtonText; }
    :focus-visible, #audio-section-title:focus { outline-color: Highlight !important; }
}
