/* Shared accessibility improvements, loaded after the visual theme. */
[hidden] { display: none !important; }

html { scroll-padding-top: calc(4.25em + 1rem); }
body { min-width: 0; }
main { min-width: 0; }
main :is(h1, h2, h3, p, a),
.ik-footer a { overflow-wrap: anywhere; }
img { height: auto; }

body #page-wrapper,
body.ik-startseite #page-wrapper { padding-top: 4.25em; }
.ik-home--impact .ik-home-hero { padding-top: clamp(2rem, 4vw, 3.25rem); }
.ik-home--impact .ik-home-hero:before { background: rgba(12, 38, 43, 0.5); }
.ik-home--impact .ik-home-hero__content > span { color: #fff; }
.ik-home--impact .ik-home-hero__content p { color: #fff !important; }
.ik-home-command__tile { background: #294c51; }
.ik-home-command__tile p { color: #fff !important; }
.ik-footer__intro > span { color: #40575c; }
.ik-home-section__head > div > span { color: #705500; }
.ik-carousel-card__label { color: #705500; }
.ik-content-card-grid__item > span { color: #525d63; }

:focus-visible {
    outline: 3px solid #005fcc !important;
    outline-offset: 4px !important;
    box-shadow: 0 0 0 7px #fff !important;
}
:target,
[tabindex="-1"] { scroll-margin-top: calc(4.25em + 1rem); }
.ik-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.ik-skip-link {
    position: fixed;
    top: 0.5rem;
    left: 0.5rem;
    z-index: 2000;
    transform: translateY(-180%);
    background: #fff;
    color: #17202a;
    border: 2px solid #17202a;
    border-radius: 0.35rem;
    padding: 0.75rem 1rem;
    font-weight: 700;
}
.ik-skip-link:focus { transform: none; }

button,
.ik-block-button__link,
.ik-home-hero__actions a,
.ik-footer__bottom a,
.ik-footer__card a,
.ik-contact-card a {
    min-height: 44px;
}
.ik-footer__bottom a,
.ik-footer__card a { display: inline-flex; align-items: center; }
.ik-footer a { text-decoration: underline; text-underline-offset: 0.18em; }
.ik-footer a:hover,
.ik-footer a:focus-visible,
#nav li a:hover,
#nav li a:focus-visible,
.ik-mobile-panel a:hover,
.ik-mobile-panel a:focus-visible { color: #174c54; }
#nav > ul > li:hover > a { color: #174c54; }
#nav a[aria-current="page"],
.ik-mobile-panel a[aria-current="page"] {
    text-decoration: underline;
    text-decoration-thickness: 3px;
    text-underline-offset: 0.35em;
}

#nav > ul > li { padding: 0 0.55em; }
#nav > ul > li > a { letter-spacing: 0.1em; min-height: 44px; }
#nav li ul li { white-space: normal; }
#nav li ul a { min-height: 44px; letter-spacing: 0.04em; }
#nav li ul .has-submenu > a { padding-right: 3.5em; }




#nav:not(.ik-nav-enhanced) li:hover > ul,
#nav:not(.ik-nav-enhanced) li:focus-within > ul { display: block; }

.ik-mobile-backdrop { position: fixed; inset: 0; background: rgb(0 0 0 / 45%); z-index: 600; }
.ik-mobile-close {
    background: #343b3d;
    border: 2px solid #343b3d;
    border-radius: 0.45rem;
    color: #fff;
    font-weight: 700;
    margin: 0 0 1rem;
    padding: 0.65rem 1rem;
}
.ik-mobile-panel a { overflow-wrap: anywhere; }
.ik-mobile-panel ul ul a { font-size: 1em; }
.ik-mobile-panel { overscroll-behavior: contain; }







.ik-carousel__control { min-height: 44px; min-width: 44px; }


.ik-carousel__pause {
    background: #fff;
    border: 2px solid #47545a;
    border-radius: 0.45rem;
    color: #263638;
    display: block;
    grid-column: 1 / -1;
    margin: 1rem auto 0;
    max-width: calc(100% - 2rem);
    padding: 0.5rem 0.8rem;
    position: relative;
    z-index: 6;
}
.ik-carousel__pause:disabled { cursor: default; }
[data-carousel-track] { touch-action: pan-y pinch-zoom; }
.ik-history-back { min-height: 44px; min-width: 44px; }

@media screen and (max-width: 980px) {
    body { font-size: 1rem; }
    .ik-mobile-panel {
        height: 100vh;
        height: 100dvh;
        max-width: 100%;
        padding: 1.25rem;
        width: min(28rem, 92vw);
    }
    .ik-mobile-toggle { height: 44px; width: 44px; }
    #nav .ik-mobile-toggle { right: 1rem; }
    #nav .ik-nav-partner-logo { right: 5rem; }
    #nav .ik-nav-partner-logo img { max-width: 12rem; }
    #nav:not(.ik-nav-enhanced) { position: relative; height: auto; padding: 4.25em 1rem 1rem; }
    #nav:not(.ik-nav-enhanced) > ul { display: block !important; height: auto; padding: 0; }
    #nav:not(.ik-nav-enhanced) > ul > li { display: block; padding: 0; }
    #nav:not(.ik-nav-enhanced) > ul > li > a { justify-content: flex-start; padding: 0.75rem; }
    #nav:not(.ik-nav-enhanced) li ul { display: block; position: static; transform: none; box-shadow: none; border: 0; }
    body:has(#nav:not(.ik-nav-enhanced)) #page-wrapper { padding-top: 0; }
}
@media screen and (max-width: 640px) {
    body { font-size: 1rem; }
    .ik-home--impact .ik-home-hero { padding-top: 2rem; }
    .ik-home-hero__actions a { text-align: center; }
    .ik-history-back,
.ik-history-back--docked { top: auto; bottom: 0.75rem; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *,
*::before,
*::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
    :focus-visible { outline-color: Highlight !important; box-shadow: none !important; }
    
    .ik-carousel__control { border: 1px solid ButtonText; }
}
