/*
 * Navigation und Footer der Hub-Seite, übernommen aus deren style-v2.css
 * (Abschnitte NAV und FOOTER). Anders als dort steht die Navigation nicht
 * fest oben: Beim Scrollen bleibt nur die Kopfzeile des Portals mit Suche
 * und Reitern stehen. Beide sind in jedem Farbschema Hub-Marineblau.
 */

.site-nav {
    background: var(--hub-brand-dark);
    font-family: "Inter", "Helvetica Neue", system-ui, sans-serif;
    position: relative;
    z-index: 5;
}

.site-nav__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 24px 48px;
    display: flex;
    align-items: center;
    gap: 48px;
}

.site-nav__logo {
    display: flex;
    align-items: center;
    height: 80px;
    flex-shrink: 0;
}

.site-nav__logo img {
    height: 80px;
    width: auto;
}

.site-nav__links {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(24px, calc(8.5vw - 66px), 56px);
}

.site-nav__link {
    white-space: nowrap;
    color: #fff;
    font-size: 17px;
    font-weight: 400;
    padding: 8px 0;
    text-decoration: none;
    transition: color 120ms cubic-bezier(0.16, 1, 0.3, 1);
}

.site-nav__link:hover,
.site-nav__link:focus-visible,
.site-nav__link--aktiv {
    color: #447ef2;
}

.site-nav a:focus-visible,
.site-nav__hamburger:focus-visible,
.footer a:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 4px;
    border-radius: 2px;
}

.site-nav__hamburger {
    display: none;
}

/* Menüpunkt nur als Icon, wie auf dem Hub. Der Tooltip bleibt beim
   Überfahren stehen und schließt mit Escape (WCAG 1.4.13, hub-rahmen.js). */
.site-nav__link--icon {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.site-nav__icon {
    width: 30px;
    height: 30px;
}

.site-nav__tip {
    position: absolute;
    top: 100%;
    right: 0;
    white-space: nowrap;
    border-top: 10px solid transparent;
    background-clip: padding-box;
    background-color: #1a1f5a;
    border-radius: 8px;
    padding: 6px 12px;
    font-size: 14px;
    color: #fff;
    opacity: 0;
    pointer-events: none;
    transition: opacity 120ms cubic-bezier(0.16, 1, 0.3, 1);
}

.site-nav__link--icon:hover .site-nav__tip,
.site-nav__link--icon:focus-visible .site-nav__tip {
    opacity: 1;
    pointer-events: auto;
}

.site-nav.tips-aus .site-nav__tip {
    opacity: 0;
    pointer-events: none;
}

/* Die Kopfzeile des Portals schließt ohne Linie und ohne eigenes Logo an
   die Hub-Navigation an; das Logo dort steht für beide. Auf schmalen
   Bildschirmen bleibt an seiner Stelle der Knopf für das Seitenmenü. */
.md-header__button.md-logo,
.md-nav__title .md-nav__button.md-logo {
    display: none;
}

/* Der Portalname steht schon in der Kopfzeile. Über dem Menü in der
   Seitenleiste nur auf schmalen Bildschirmen, dort ist er der Kopf des
   ausklappbaren Menüs. */
@media screen and (min-width: 76.25em) {
    .md-nav--primary > .md-nav__title {
        display: none;
    }
}

.footer {
    background: var(--hub-brand-dark);
    color: #fff;
    padding: 112px 0 80px;
    font-family: "Inter", "Helvetica Neue", system-ui, sans-serif;
}

.footer__inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
}

.footer__grid {
    display: grid;
    grid-template-columns: 1.5fr 0.7fr 1fr 1fr;
    gap: 48px;
}

.footer__brand img {
    height: 56px;
    width: auto;
    margin-top: -23px;
    margin-bottom: 24px;
}

.footer__brand p {
    font-size: 15px;
    line-height: 24px;
    color: #ffffffbf;
    margin: 0;
    max-width: 260px;
}

.footer__col h2 {
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #fff;
    margin: 8px 0 24px;
}

.footer__col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.footer__col a {
    font-size: 16px;
    color: #b3c8f2;
    text-decoration: none;
    transition: color 120ms cubic-bezier(0.16, 1, 0.3, 1);
}

.footer__col a:hover,
.footer__col a[aria-current] {
    color: #fff;
}

/* Lizenzzeile des Portals (copyright in mkdocs.yml) */
.footer__lizenz {
    margin: 64px 0 0;
    padding-top: 24px;
    border-top: 1px solid #ffffff1a;
    font-size: 14px;
    line-height: 22px;
    color: #ffffffa6;
}

.footer__lizenz a {
    color: #b3c8f2;
}

.footer__lizenz a:hover {
    color: #fff;
}

/* Wie auf dem Hub: Mit dem Konfigurations-Assistenten passen die sieben
   Menüpunkte erst ab 1241px in eine Zeile, darunter übernimmt der
   Hamburger. Der Rest bricht weiter bei 1024px um. */
@media (max-width: 1240px) {
    .site-nav__links {
        display: none;
    }

    .site-nav__hamburger {
        margin-left: auto;
        display: flex;
        flex-direction: column;
        gap: 5px;
        background: transparent;
        border: none;
        padding: 8px;
        cursor: pointer;
    }

    .site-nav__hamburger span {
        display: block;
        width: 24px;
        height: 2px;
        background: #fff;
        border-radius: 2px;
        transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1), opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    .site-nav.is-open .site-nav__hamburger span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .site-nav.is-open .site-nav__hamburger span:nth-child(2) {
        opacity: 0;
    }

    .site-nav.is-open .site-nav__hamburger span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .site-nav.is-open .site-nav__links {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--hub-brand-dark);
        padding: 12px 20px 24px;
        border-top: 1px solid #ffffff14;
        box-shadow: 0 16px 40px #00000066;
        gap: 0;
    }

    .site-nav.is-open .site-nav__link {
        display: block;
        padding: 14px 0;
        border-bottom: 1px solid #ffffff0f;
    }

    .site-nav.is-open .site-nav__link--icon {
        display: flex;
        gap: 10px;
    }

    .site-nav.is-open .site-nav__icon {
        width: 24px;
        height: 24px;
    }

    .site-nav.is-open .site-nav__tip,
    .site-nav.is-open.tips-aus .site-nav__tip {
        position: static;
        opacity: 1;
        pointer-events: auto;
        border: 0;
        background: none;
        padding: 0;
        font-size: inherit;
    }
}

@media (max-width: 1024px) {
    .site-nav__inner {
        padding: 17px 20px;
        gap: 12px;
        position: relative;
    }

    .site-nav__logo,
    .site-nav__logo img {
        height: 56px;
    }


    .footer {
        padding: 56px 0 40px;
    }

    .footer__inner {
        padding: 0 20px;
    }

    .footer__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .footer__brand img {
        margin-top: 0;
    }

    .footer__lizenz {
        margin-top: 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-nav__link,
    .site-nav__tip,
    .site-nav__hamburger span,
    .footer__col a {
        transition: none;
    }
}
