
:root
{
    --headerHeight: 4.5em;
    --mobileMenuTransitionTime: 1s;
    --hamburgerColour: #000;
    --maxMobileMenuWidth: 440px;
    --mobileMenuBG: #E0E0E0;
}

#mainMenuWrapper
{
    top: 1em;
    left: auto;
    right: 1em;
    top: env(safe-area-inset-top, 0);
    background-color: transparent;
    font-size: 1.2rem;

    transition: all var(--mobileMenuTransitionTime) ease-in-out;
}

div.specialSubMenu
{
    display: none !important;
}

#mainMenu
{
    display:  none;
}
#mainMenuWrapper ul.level1 li.level1
{
    margin-left: 0;
    margin-right: 0;
}
#mainMenuWrapper li.level1.current-item li.level2 a
{
    width: auto;
    background-color: unset;
}
#mainMenuWrapper ul.level1 li.level1 ul.level2
{
    position: relative;
    top: auto;
    left: 0;
    height: auto;
    max-height: 0;
    width: 100%;
    padding-top: 0;
    background-color: #ffffff !important;
    overflow: hidden;
    transition: all var(--mobileMenuTransitionTime) ease-in-out;
}

#mainMenuWrapper ul.level1 li.level1 ul.level2 li
{
    display: block;
    width: calc(100% - 1.5em);
    background: transparent !important;
    border-bottom: 1px rgba(0,0,0,0.6) solid;
}

#mainMenuWrapper li.level1 li.level2 a
{
    border: none !important;
}

#mainMenuMobile
{
    display: flex;
    justify-content: space-between;
    flex-flow: row-reverse;
}

#mainMenuMobile a#menuButton
{
    display: flex;
    justify-content: space-between;
    flex-flow: column;
    width: 1.5em;
    height: 1em;
    padding-bottom: 0.5em !important;
    padding-top: 0.5em !important;
    background-color: transparent;
    /*transform: scale(0.85);*/

    transition: all var(--mobileMenuTransitionTime) ease-in-out;
}

#mainMenuMobile a,
#mainMenuMobile a:visited
{
    color: var(--hamburgerColour);
}

#mainMenu a,
#mainMenu a:visited
{
    padding-top: 0.6em;
    padding-bottom: 0.6em;
    padding-left: 1em;
    color: #2E2E2E !important;
}

.subMenuOpener
{
    display: block;
    width: fit-content;
    padding-left: 0.3em;
    padding-right: 0.3em;

    transform: rotate(90deg);
    transition: all var(--mobileMenuTransitionTime) ease-in-out;
}

.opened .subMenuOpener
{
    transform: rotate(0deg);
}

#mainMenuWrapper ul.level1 li.level1.opened ul.level2
{
    display: block !important;
    max-height: 80vh;
    padding-top: 0.2em;
    padding-bottom: 0.3em;
    padding-left: 0.5em;
}

#mainMenuWrapper ul.level1 li.level1
{
    display: revert;
    padding-left: 0;
    font-size: unset !important;
    border-bottom: 1px #FFFFFF solid;
}

#mainMenuWrapper ul.level1 li.level1:last-child
{
    border-bottom: none;
}

#mainMenu a:hover
{
    background-color: revert !important;
    color: revert !important;
}

#mainMenuMobile div.menu-button
{
    margin-top: 4px;
}

.menuInfoItemWrap
{
    display: none !important;
}
/************** mobile menu settings ******************/
.menuTitle
{
    display: none;
}
.toggle-button:active
{
    background-color: transparent;
}
#mainMenuWrapper .bar
{
    height: 3px;
    width: 100%;
    background-color: var(--hamburgerColour);
}
#mainMenu
{
    display: block;
    width: 0;
    max-width: 100%;
    height: 0;
    overflow: hidden;
}
#mainMenuWrapper.active
{
    position: fixed;
    right: 0;
    /*box-shadow: -0.2em 0.2em 0.3em 0.2em rgba(255, 255, 255, 0.2);*/
}
ul#mainMenu
{
    max-height: 0;

    transition: max-height var(--mobileMenuTransitionTime) ease-in-out;
}
.active ul#mainMenu,
#mainMenuWrapper.active
{
    width: var(--maxMobileMenuWidth);
    max-width: 100vw;
    height: fit-content;
    max-height: 100vh;
    padding-top: 0;
    /*border-bottom: 2px #000000 solid;
    border-left: 1px #000000 solid;*/
    z-index: 1;
}
#mainMenuWrapper.active
{
    padding-bottom: 1em;
}

.active #mainMenuMobile a#menuButton
{
    transform: scale(0.7);
}

.active #hamburgerBar1
{
    position: absolute;
    top: 50%;
    left: 0;
    transform: rotate(45deg);
}
.active #hamburgerBar2
{
    opacity: 0;
}
.active #hamburgerBar3
{
    position: absolute;
    top: 50%;
    right: 0;
    transform: rotate(-45deg);
}

#mainMenuWrapper.active
{
    background-color: var(--mobileMenuBG);
}

#headerWrapper[data-pageuid="1"] #mainMenuWrapper li#menuItem5.current-item a
{
    background: unset;
}

.hasLongSubMenu .level2menuItems
{
    margin-left: 0;
    width: auto;
    padding-left: 0.1em;
    padding-right: 0.1em;
}

.subMenuWrapper,
li.level1:hover .subMenuWrapper
{
    position: relative;
    top: auto;
    left: auto;
    min-height: unset;
    max-height: 0;
    height: auto;
    width: auto;
    max-width: calc(100% - 1em);
    padding-left: 0;
    padding-right: 0;
    margin-left: -0.5em;
    overflow: hidden;
    transition: max-height var(--mobileMenuTransitionTime) ease-in;
}

li.level1.opened .subMenuWrapper,
li.level1.opened:hover .subMenuWrapper
{
    max-height: 100vh;
}

#mainMenu .menuLinkLevel1:hover
{
    border-top: none;
}

.level2menuItem
{
    width: auto !important;
}

.longSubMenu
{
    width: 100%;
    padding-left: 0.5em;
    padding-right: 0.5em;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
}

.longSubMenu .level2menuItem > a
{
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 3.2em;
    padding-left: 0.5em;
    padding-right: 0.5em;
    white-space: normal;
}

.menuInfoItemWrapLevel2
{
    display: none;
}
#page:has(#mainMenuWrapper.active) #stoererRechts
{
    display: none !important;
}

@media screen and (max-width: 560px)
{
    #mainMenuWrapper.active + div#logo
    {
        height: 3em;
        opacity: 0.8;
    }
}
