#side-menu {
    --mobile-menu-padding: clamp(1.5rem, -9.9rem + 48vw, 3rem); /* @link https://utopia.fyi/clamp/calculator?a=380,430,24—48 */
    --color-text: var(--color-white);
    --outline-color: var(--color-white);
}

#header {
    --navbar-padding: 1rem;
    --color-text: var(--color-white);

    position: fixed;
    top: 0;
    transform: translateX(-50%);
    left: 50%;
    
    width: var(--wrapper-width);

    z-index: 8000;

    --outline-color: var(--color-white);

    transition: background-color var(--transition-duration) var(--transition-style);

    --current-header-bg: var(--hero-bg);

    /* background-color: var(--hero-bg); */
    background-color: var(--current-header-bg);

    padding-top: env(safe-area-inset-top);
    padding-right: env(safe-area-inset-right);
    padding-left: env(safe-area-inset-left);
}

#side-menu a,
#header a {
    text-decoration: none;
}

#header-wrapper {
    display: flex;    
    align-items: center;
    justify-content: space-between;

    padding-inline: var(--navbar-padding);
    padding-top: var(--navbar-padding);
    padding-bottom: calc(var(--navbar-padding) / 2);
}

#branding {
    grid-area: branding;
    justify-self: start;
    align-self: center;
}

.hamburger-wrapper {
    grid-area: hamburger;
    justify-self: end;
    align-self: center;
    z-index: 1;

    display: flex;
    gap: 3rem;
}

#branding a {
    opacity: 1 !important;
    text-decoration: none !important;
    display: block;
}

#branding .logo {
    height: 3.1875rem;
    width: auto;
    display: block;
}


.hamburger {
    padding: 0;
    opacity: 1 !important;
    background: none;
    border: 0;
    cursor: pointer;

    color: var(--color-white);
    transition: var(--transition-color);
    font-size: 1.25rem;
    font-weight: bold;
    font-family: var(--font-family-headline);

    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.hamburger span {
    transition: var(--transition-color);
    color: currentColor;
}

.hamburger i {
    font-size: 1.75rem;
}

.hamburger:is(:focus-visible, :hover) {
    color: var(--color-danger);
}

.hamburger-wrapper .hamburger-widgets .btn {
    padding-inline: 1rem;
}

.hamburger-widgets {
    display: none;
}

.hamburger span {
    display: none;
}

@media screen and (min-width: 28rem) {
    .hamburger span {
        display: block;
    }
}

#side-menu {
    position: fixed;
    top: 0;
    right: -27rem;
    width: min(100%, 27rem);
    height: 0;

    overflow-y: auto;
	overflow-x: hidden;

    transition: var(--transition-right);

    pointer-events: none;

    background-color: var(--color-secondary);

    height: 100vh;

    z-index: 999999999999999;
}

#side-menu:focus-within,
body.mobile-menu-open #side-menu {
    overflow: auto;
    pointer-events: all;
    right: 0;
}


body.mobile-menu-open #wrapper::after {
    content: ' ';
    display: block;

    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background-color: #000;
    opacity: 0.75;
    z-index: 99999;
}


#side-menu nav#menu ul.menu {
    display: flex;
    flex-direction: column;
    gap: 0.75em;

    padding-inline: var(--mobile-menu-padding);
}

#side-menu nav#menu ul.menu {
    transition: var(--transition-all);
}

#side-menu nav#menu ul.menu li {
    width: 80%;
    padding-left: 0;
    padding-right: 0;
}

#side-menu nav#menu ul.menu li a {
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 0;

    flex-grow: 1;
    display: flex;
    align-items: center;
    align-content: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    flex-direction: row;
    gap: 0.5rem;
}

#side-menu nav#menu ul.menu#menu-hauptmenue-1 {
    font-weight: bold;
    font-size: 1.125rem;
    font-family: var(--font-family-headline);
}

#side-menu nav#menu ul.menu li:is(.current-menu-parent, .current-menu-item) > a {
    --color-text: var(--color-danger);
}

#side-menu a.btn {
    width: min(100%, 12rem);
}

.side-menu-close-wrapper {
    margin-top: 0.5rem;
    margin-right: var(--mobile-menu-padding);
    margin-bottom: 0.5rem;
    text-align: right;
}

#side-menu-close-button {
    background: none;
    border: none;
    color: var(--color-white);
    padding: 0;
    margin: 0;
    display: inline-block;
    cursor: pointer;

    transition: var(--transition-color);
}

#side-menu-close-button:hover {
    color: var(--color-danger);
}

#side-menu nav#menu ul.menu#menu-hauptmenue-1 li.menu-item a::after {
    display: block;
    background-color: var(--color-primary);
    height: 2rem;
    width: 2rem;
    border-radius: 50%;
    aspect-ratio: 1 / 1;

    content: '\f054';
    font-family: var(--font-family-icons);
    box-sizing: inherit;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: var(--fa-display, inline-block);
    font-style: normal;
    font-variant: normal;
    line-height: 2rem;
    text-align: center;
    text-rendering: auto;
    font-weight: 900;
    transition: var(--transition-all);
}

#side-menu nav#menu ul.menu#menu-hauptmenue-1 li.menu-item a:hover::after {
    background-color: var(--color-danger);
    color: var(--color-white);
}


header .social-media-links {
    justify-content: center;
}

#topbar {
    display: none;
}

#menu-footer {
    padding-inline: var(--mobile-menu-padding);
    padding-block: var(--mobile-menu-padding);
    text-align: center;
}

#menu-footer .menu-footer-container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

#menu-footer .social-media-links {
    justify-content: center;
}

#menu-footer p {
    margin-bottom: 0;
}

.mobile-navigation-seperator {
    display: block;
    width: 100%;
    height: 0.1875rem;
    background-color: var(--color-primary);
    margin-block: 2rem;

    position: relative;
}

.mobile-navigation-seperator::after {
    position: absolute;
    left: 17%;
    top: 50%;

    transform: translateY(-50%);

    content: ' ';
    display: block;
    width: 9rem;
    height: 1.5rem;
    background-color: var(--color-primary);
    border-radius: 3.125rem;
}

@media screen and (min-width: 62rem) {

    #branding {
        padding-bottom: 0;
    }

    #header-wrapper {
        

        margin-top: 1.875rem;
        padding-bottom: 1rem;

        width: var(--container-width);

        margin-inline: auto;

        padding-inline: 0;
    }

    #side-menu {
        pointer-events: all !important;
    }

    #topbar {
        display: block;

        width: var(--wrapper-width);

        position: fixed;
        top: 0;
        transform: translateX(-50%);
        left: 50%;

        z-index: 8001;
        font-size: var(--fs-small);

        background-color: var(--tobar-bg);
        --color-text: var(--color-white);

        padding-inline: 0;
        padding-block: 0.1875rem;

        text-align: center;

        z-index: -1;
        
    }

    #topbar p {
        margin-bottom: 0;
    }

    #topbar a {
        text-decoration: none;
    }

    #topbar > .topbar-container {
        display: flex;
        flex-direction: row;
        justify-content: flex-end;
        align-items: center;
        gap: 6rem;
        align-content: center;
        flex-wrap: nowrap;

        width: var(--container-width);
        margin-inline: auto;
    }

    #topbar .btn {
        line-height: unset;
        padding-block: unset;
        width: unset;
        text-align: unset;
        font-size: var(--fs-small);
        background-color: unset;
        border-radius: unset;
        font-weight: unset;
        font-family: unset;

        border: none;

        --color-text: var(--color-white);
    }

    #topbar .btn:is(:focus-visible, :hover) {
        --color-text: var(--color-danger);
    }

    #topbar .social-media-links {
        font-size: 1rem;
    }
    

    .hamburger-widgets {
        display: block;
    }
    
}