:root:has(.top-bar.top-bar--medium, .top-bar.top-bar--medium.top-bar--fixed) {
    --top-bar-height: 3rem;
    --top-bar-height-fixed: 3rem;
}

@media screen and (min-width: 840px) {
    :root:has(.top-bar.top-bar--medium, .top-bar.top-bar--medium.top-bar--fixed) {
        --top-bar-height: 8rem;
        --top-bar-height-fixed: 4rem;
    }
}

/* noinspection CssUnknownTarget */

* {
    --fuerstgruppe-icon-angle-down: url("../Icons/ui-icons/icon-angle-down.svg");
}

.top-bar-.top-bar--medium {
    height: var(--top-bar-height);
}

@media only screen and (min-width: 840px) {
    .top-bar.top-bar--medium {
        background: #fff;
    }

    .top-bar.top-bar--medium.top-bar--fixed {
        height: var(--top-bar-height-fixed) !important;
    }

    .navigation-item--first-level > .navigation-item__link {
        color: #3365cc;
        text-shadow: none;
    }

    .navigation-item--first-level > .navigation-item__link:focus,
    .navigation-item--first-level > .navigation-item__link:hover {
        color: #3365cc;
    }

    .wrap--content {
        padding-top: var(--top-bar-height);
    }
}

@media only screen and (max-width: 839px) {
    .wrap--navigation.wrap--navigation-light {
        background: #fff;
    }

    .wrap--navigation-light .navigation--main .navigation-item,
    .wrap--navigation-light .navigation--sub-nav .navigation-item {
        border-bottom: 1px solid #fff;
    }

    .navigation-item__state ~ .navigation-item__link {
        flex-basis: calc(100% - 2.5em);
        font-size: 1em;
    }

    .wrap--navigation-light .navigation-item__toggle-state,
    .wrap--navigation-light .navigation-item__link {
        color: var(--font-color);
    }

    .navigation-item__link {
        padding: .25em;
        line-height: 1.75;
    }

    .navigation--main .navigation-item,
    .navigation--sub-nav .navigation-item {
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-wrap: wrap;
        flex: 1 0 100%;
        font-size: .875rem;
        width: 100%;
    }

    .navigation-item__toggle-state {
        display: flex;
        justify-content: center;
        align-self: stretch;
        align-items: center;
        width: 2.5em;
        cursor: pointer;
        color: #fff;
        transition: color .25s ease-in-out, background .25s ease-in-out;
    }

    .navigation--sub-nav {
        display: flex;
        flex-basis: calc(100% - .5em);
        flex-wrap: wrap;
        opacity: 0;
        position: relative;
        z-index: -1;
        max-height: 0;
        transition: max-height .5s ease-in-out, opacity .25s ease-in-out;
    }

    .navigation-item__toggle-state::before {
        display: inline-block;
        content: "";
        transition: .25s ease-in-out;
        width: 14px;
        height: 14px;
        -webkit-mask-image: var(--fuerstgruppe-icon-angle-down);
                mask-image: var(--fuerstgruppe-icon-angle-down);
        -webkit-mask-size: contain;
                mask-size: contain;
        -webkit-mask-position: center;
                mask-position: center;
        -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
        background-color: var(--font-color);
    }

    .navigation-item__state:checked ~ .navigation-item__toggle-state {
        transform: rotate(180deg);
    }

    .navigation-item__state:checked ~ .navigation--sub-nav {
        z-index: 1;
        opacity: 1;
        max-height: none;
        flex-basis: 100%;
    }

    .wrap--navigation-light .navigation--sub-nav {
        background: rgb(0 0 0 / 10%);
    }
}

@media screen and (min-width: 840px) {
    .top-bar.top-bar--medium.top-bar--fixed ~ .wrap--navigation {
        height: var(--top-bar-height-fixed);
    }
}

/* IMAGE TEASER SLIDER */

.slider--image-teaser .teaser.teaser--beside.teaser--right.teaser--image {
    width: 100%;
    max-width: 60rem;
}

.slider--image-teaser .teaser__image {
    margin: 1rem 0;
}

.slider--image-teaser .teaser__image picture {
    position: relative !important;
}

.slider--image-teaser .teaser__image img {
    -o-object-fit: contain;
       object-fit: contain;
}

.slider--image-teaser .teaser__image,
.slider--image-teaser .teaser__image img {
    aspect-ratio: auto;
}

.header--ratio-3-1 .header__content > .header-content--12 {
    width: auto;
}
