@charset "utf-8";
/* CSS Document */

:root
{
    --menuLinkClr: #2F2F2F;
    --menuFont: "NeueHaasDisplay Medium", sanserif;
}

#page.indexPage
{
    --teaserHeight: calc(100vh - var(--headerHeight));
}

#stoerer
{
    display: none;
}

#page:not(.indexPage) #teaser:has(.headerImageWrapper),
#page:not(.indexPage) #teaser:has(.ce-gallery)
{
    --teaserHeight: auto;
}

#outerWrapper
{
    display: grid;
    grid-template-columns: auto var(--maxOuterWidth) auto;
    max-width: unset;
}

#outerWrapper > *
{
    grid-column: 2;
}

#headerWrapper
{
    box-shadow: 0.5rem 0.5rem 0.5rem rgba(0,0,0,0.5);
}

#headerWrapper:hover
{
    box-shadow: 1rem 1rem 1rem rgba(0,0,0,0.6);
}

.indexPage #centreAreaWrapper
{
    padding-inline: 0;
}

.indexPage #contentWrapper
{
    grid-column: 1 / -1;
}

.indexPage #centreAreaWrapper > .frame-layout-3
{
    padding-inline: var(--stdInset);
}

#page:not(.indexPage) #headerWrapper,
#page:not(.indexPage) #centreAreaWrapper
{
    display: grid;
    grid-template-columns: auto var(--contentWidth) auto;
}

#topMenu
{
    display: flex;

    font-family: var(--menuFont);
}

.indexPage #topMenu
{
    gap: 0.2rem;
}

#topMenu > *
{
    position: relative;
}
.menuToggleWrapper
{
    display: none;
}
#menuButton
{
    display: none;
}

.menuItem:hover,
.menuItem.clicked
{
    position: relative;
}

.subMenu
{
    position: absolute;
    left: 100%;
    top: 0.8rem;
    max-height: 0;
    max-width: 0;
    height: auto;
    width: auto;
    margin-top: 1rem;
    padding-top: 0;
    padding-bottom: 0;
    overflow: clip;
    border-bottom-left-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;

    transition: max-height 0.3s ease-in, padding-top 0.1s ease-in, padding-bottom 0.1s ease-in;
}

.subMenu span
{
    white-space: nowrap;
}

.subMenu span b,
.subMenu span strong
{
    font-weight: 500;
    font-family: "NeueHaasDisplay Medium", sanserif;
    color: black;
}

.menuItem:hover > .subMenu,
.menuItem.clicked > .subMenu
{
    padding-top: 2.55rem;
    max-height: 100vh;
    max-width: 50vw;
    min-width: 120%;
    box-shadow: 1rem 1rem 1rem rgba(0,0,0,0.5);

    transition: max-height 0.5s ease-in, padding-top 0.2s ease-in, padding-bottom 0.2s ease-in;
}

.subMenuLevel2
{
    left: 50%;
    top: 0.6rem;

    transform: translate(-50%,0);
}

.subMenuLevel2 > div
{
    width: 100%;
}

.subMenuLevel2 > div:last-child
{
}

.veryLargeSubMenu
{
    --menuLinkClr: #4f4f5f;
    --menuFont: "NeueHaasDisplay", sanserif;

    font-weight: 300;
}

.largeSubMenuWrapper
{
    display: grid;
    grid-template-columns: repeat(2,1fr);
    grid-column-gap: 1.5rem;
    grid-row-gap: 1rem;
    width: 50rem;
    background-color: white;
    border-radius: 0.5rem;
}

.verylargeSubMenuWrapper
{
    width: auto;
}

.menuItem:hover > .largeSubMenu,
.menuItem.clicked > .largeSubMenu
{
    max-width: 95vw;
}

.veryLargeSubMenu .largeSubMenuWrapper
{
    grid-template-columns: repeat(3, 1fr);
    width: 57rem;
}

.menuItem:hover .largeSubMenuWrapper,
.menuItem.clicked .largeSubMenuWrapper
{
    padding-top: 2rem;
    padding-bottom: 2rem;
    padding-inline: 2rem;
}

.largeSubMenuWrapper > div
{
    display: table-cell;
    height: 100%;
}

.menuItemLink,
.menuItemLink:visited
{
    display: block;
    color: var(--menuLinkClr);
    text-decoration: none;
}

.menuItemLinkLevel1
{
    padding-inline: 1rem;
    padding-block: 0.5rem;
    /*font-size: 1.1rem;*/
    letter-spacing: 1px;

    transition: all 1s ease-in;
}

.menuItemLinkLevel1:hover,
.menuItemLevel1:hover .menuItemLinkLevel1
{
    background-color: white;
    border-radius: 1rem;
}

.menuItem.target_blank .menuItemLinkLevel1
{
    color: white;
    background-color: var(--menuLinkClr);
    border-radius: 1rem;
    border: 1px solid var(--menuLinkClr);

    transition: all 1s ease-in;
}

.menuItem.target_blank .menuItemLinkLevel1:hover,
.menuItem.target_blank .menuItemLinkLevel1:active
{
    color: var(--menuLinkClr);
    background-color: white;
}

.menuItemLinkLevel2
{
    padding-inline: 1rem;
    padding-block: 0.5rem;
    background-color: white;
    border-bottom: 1px solid black;
}

.smallSubMenu .menuItemLinkLevel2:has(img)
{
    display: flex;
    align-items: center;
    column-gap: 1rem;
}

.largeSubMenu .menuItemLinkLevel2
{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    column-gap: 2rem;
    height: 100%;
    padding-left: 0;
    font-size: 1rem;
    background-color: white;
}

.largeSubMenu .menuItemLinkLevel2:hover
{
    background-color: #DEDEDE;
}

.menuImgWrapper
{
    max-height: 3rem;
    width: 4rem;
}

.menuImgWrapper img
{
    margin-left: 0.4rem;
    max-height: 64px;
    width: auto;
}

.menuItem[data-current="1"] > .menuItemLink
{
    background-color: #DEDEDE;
}

.menuItemLinkLevel2:hover
{
    background-color: var(--greyClr);
}
/*
@media screen and (min-width: 1915px)
{
    .frame-type-mask_element_group:has( > *:nth-child(4))
    {
        grid-template-columns: repeat(4,minmax(0, 1fr));
    }
}
*/

#langSwitcherMenu
{
    display: flex;
    align-items: center;
    width: 3.5rem;
    margin-right: 0.5rem;
}

#langSwitcherMenu > div
{
    height: 65%;
    width: 3.5rem;
    border-radius: 0.5rem;
    overflow: clip;
}

#langSwitcherMenu > div:hover
{
    box-shadow: 0.3rem 0.3rem 0.5rem rgba(0,0,0,0.4);
}
#langSwitcherMenu a
{
    display: block;
    height: 100%;
}
#langSwitcherMenu img
{
    width: 100%;
    height: 100%;
}

@media screen and (min-width: 800px)
{
    .indexPage #teaserBox
    {
        grid-column: 1 / -1;
    }
}

.indexPage .teaserText
{
    right: unset;
    left: max(var(--stdInset), calc((100vw - var(--maxContentWidth))/2) - var(--stdInset)*2);
    width: max(var(--contentWidth)/2, var(--contentWidth) / 2 - var(--imgSpacing) - var(--stdInset) - 4rem);
}

@media screen and (min-height: 840px)
{
    .indexPage .teaserText
    {
        top: 50%;

        transform: translateY(-50%);
    }
}

#page:not(.indexPage) #teaserBox
{
    display: grid;
    grid-template-columns: auto var(--contentWidth) auto;
}

#page:not(.indexPage) #teaser,
#page:not(.indexPage) #centreAreaWrapper
{
    padding-inline: 0;
}

.boxItem .imageText
{
    row-gap: var(--stdColGap);
}

.ce-intext .ce-gallery
{
    float: right;
    margin-left: var(--boxPadding);
    margin-bottom: var(--boxPadding);
}

.ce-left.ce-intext .ce-gallery
{
    float: left;
    margin-left: 0;
    margin-right: var(--boxPadding);
}

@media screen and (max-width: 1222px)
{
    .indexPage .teaserText
    {
        margin-top: 80px;
    }
}
@media screen and (max-width: 1350px)
{
    .frame-type-mask_element_group.frame-layout-0:has(.frame-type-mask_shortcut)
    {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    }
}
@media screen and (max-width: 1000px)
{
    .frame-type-mask_element_group.frame-layout-0:has(.frame-type-mask_shortcut)
    {
        grid-template-columns: 1fr 1fr;
    }
    /*
    .frame-type-mask_element_group.frame-layout-1[data-maxcols="2"]
    {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(380px,1fr));
    }
     */
}

@media screen and (min-width: 1990px)
{
    .imageText > *
    {
        max-width: calc(var(--contentWidth) / 2 - var(--stdColGap) + 15px);
    }
}
