.wrapper {
    --typo-topbar-height: 4rem;
}
@media screen and (min-width:40em){
    .wrapper {
        --typo-topbar-height: 5rem;
    }
}

@media screen and (min-width:90em){
    .wrapper { 
        --typo-topbar-height: calc(var(--typo-font-size-default) * 6); 
    }
    .topbar.scrolled {
        --typo-topbar-height: calc(var(--typo-font-size-default) * 4.5);
    }
}

/****************************************************************************
 * Topbar Container
 ****************************************************************************/
.wrapper { padding-top: var(--typo-topbar-height); } 
.topbar {
    position: fixed; left: 0; right: 0; top: 0; bottom: auto;
    /*height: 4rem;*/ height: var(--typo-topbar-height); width: 100%; margin: 0 auto;
    padding: 0; z-index: 1000;
    /*box-shadow: 0 0 1rem rgba(0,0,0,0.25);*/
    transition: all .25s ease;
    background-color: #FFFFFF;
}

.topbar > .row{ height: 100%; position: relative; }
.topbar .columns.row{ position: relative; }
.topbar .columns{ padding-top: 0; padding-bottom: 0;}

/*
@media screen and (min-width:40em){
    .wrapper { padding-top: 5rem; }
    .topbar {height: 5rem;}
}

@media screen and (min-width:90em){
    .wrapper { padding-top: calc(var(--typo-font-size-default) * 6); }
    .topbar {height: 6em;}
    .topbar.scrolled {height: 4.5em;}
}
*/

/****************************************************************************
 * Logo
 *
 * PNG => .logo_wrapper > img.logo
 * SVG => .logo_wrapper figure.logo.figure .svg_wrapper.data_ratio svg
 ****************************************************************************/
.logo_wrapper{ 
    position: relative;
    padding: 0;
    display: block;
}
.topbar .logo_wrapper {
    z-index: 1010;
}

.logo_wrapper picture.data_ratio {
    font-size: 1em;
    width: 9em;
    height: 2em;
}
.logo_wrapper picture.data_ratio:before {
    content: none;
}
.logo_wrapper picture.data_ratio img {
    object-fit: contain;
    object-position: 0 50%;
}

.logo_wrapper .svg_wrapper {
    position: relative;
    width: 9em;
}
.logo_wrapper  > .logo .svg_wrapper.data_ratio svg {
    transform: translate(0,-50%);
    left: 0;
}
@media screen and (max-width:25em){
    .logo_wrapper picture.data_ratio {
        font-size: 0.75em;
    }
}

/*
@media screen and (min-width:40em){
    .logo_wrapper picture.data_ratio {
        font-size: 1.125rem;
    }
}

@media screen and (min-width:90em){
    .logo_wrapper picture.data_ratio {
        font-size: 1.25rem;
    }
}
*/


/****************************************************************************
 * Toggler
 ****************************************************************************/
.navigation_toggle_wrapper {
    position: relative; z-index: 1010;
}
.navigation_toggle_wrapper .navigation_toggle{
    position: relative; width: 2.25rem; height: 1.4125rem;
    text-align: center; display: inline-block; cursor: pointer;
    transition: all .25s ease;
}

.navigation_toggle_wrapper .navigation_toggle:before,
.navigation_toggle_wrapper .navigation_toggle:after{
    position: absolute; left: 50%; top: auto; bottom: auto; margin: 0 auto;
    width: 2.25rem; height: .125rem; background-color: currentColor; content: '';
    transform: translateY(0) translateX(-50%) rotate(0);
    transition: all .25s ease;
}

.navigation_toggle_wrapper .navigation_toggle:before{
    top: 0; box-shadow: 0 .625rem 0 0 currentColor;
}
.navigation_toggle_wrapper .navigation_toggle:after{
    bottom: 0;
}


.nav_opened .navigation_toggle_wrapper .navigation_toggle:before{
    transform: translateY(-50%) translateX(-50%) rotate(-45deg);
    top: 50%; box-shadow: 0 0 0 0 transparent;
}

.nav_opened .navigation_toggle_wrapper .navigation_toggle:after{
    transform: translateY(50%) translateX(-50%) rotate(45deg);
    bottom: 50%;
}

@media screen and (min-width:90em){
    .large_no_hamburger .navigation_toggle_wrapper {
        display: none;
    }
}


/****************************************************************************
 * Navigation-Wrapper
 ****************************************************************************/
.navigation_wrapper{
    position: fixed; right: auto; left: 100%; top: 0; 
    height: 100%; height: 100vh; 
    width: 100%; z-index: 1001; color: inherit;
    backface-visibility: hidden;
    transition: all 0.25s ease;
    background-color: #FFFFFF;
}
.topbar .navigation_wrapper {
    padding-top: 2em;
    padding-bottom: 2em;
}
.nav_opened .navigation_wrapper {
    left: 0;
}
.navigation_toggle_wrapper:focus-within + .navigation_wrapper, 
.navigation_wrapper:focus-within { 
    left: 0; 
}

@media screen and (min-width:90em){
    .large_no_hamburger .navigation_wrapper,
    .nav_opened .large_no_hamburger  .navigation_wrapper{
        position: relative; left: auto; right: auto; top: auto; bottom: auto;
        background-color: transparent; height: auto;
        transition: none;
    }
    .topbar .large_no_hamburger  .navigation_wrapper {
        padding: 0;
    }
}



/****************************************************************************
 * Menu Wrapper
 ****************************************************************************/
.navigation_wrapper .menu_wrapper{
    display: block; width: 100%; height: 100%;
    position: relative; z-index: 0; padding: 6em 1em 4em;
    overflow-y: auto; margin: 0 auto; 
}

@media screen and (min-width:40em){
    .navigation_wrapper .menu_wrapper {
        padding: 6em 2em 4em;
    }
}

@media screen and (min-width:90em){
    .navigation_wrapper .menu_wrapper {
        padding: 6em 4em 4em;
    }
    .large_no_hamburger .navigation_wrapper .menu_wrapper{
        padding: 0; overflow: visible;
    }
}


/****************************************************************************
 * Menu
 ****************************************************************************/
.navigation_wrapper .menu {
    margin: 0;
    padding: 0 2rem;
    flex-wrap: nowrap;
    flex-direction: column;
    justify-content: end;
}
.navigation_wrapper .menu li {
    text-align: left;
}
.navigation_wrapper .menu a {
    position: relative;
    font-size: 1.75rem;
    padding: 0;
    line-height: 1.6;
}


.navigation_wrapper .menu .sub-menu {
    margin: 0;
}

.menu .button_item {
    border-radius: 0.25em;
    overflow: hidden;
    transform: skewX(-15deg);
    margin-top: 2rem;
}
.navigation_wrapper .menu li.button_item a {
    padding: 1em 1.5em;
    position: relative;
    width: 150%; left: 50%;
    background-color: var(--typo-color-red);
    color: #FFFFFF;
    font-size: 1.25em;
    font-weight: 700;
    transform: skewX(15deg) translate(-50%,0);
    text-align: center;
}

@media screen and (max-width:89.9375em){
    .navigation_wrapper .menu > li { 
        padding: 1rem 2rem;
        border-bottom: 1px solid rgba(0,0,0,0.2);
    }
    .navigation_wrapper .menu > li:last-child {border-bottom: none;}
    .navigation_wrapper .menu > li.button_item {order: 2; border-bottom: none;}
    .navigation_wrapper .menu > li > a {font-weight: 700; font-style: italic; line-height: 1.2; font-size: 2rem;}
    .navigation_wrapper .menu .sub-menu a {line-height: 1.2; font-size: 1.75rem;}
}


@media screen and (min-width:90em){
    .large_no_hamburger .navigation_wrapper .menu {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
        align-items: center;
        padding: 0;
    }
    .navigation_wrapper .menu li a {
        font-size: 0.875em;
        padding: 0 1.25em;
    }

    .navigation_wrapper .menu > li > a {
        height: var(--typo-topbar-height);
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
    }

    .menu .button_item {
        margin: 0;
        margin-left: 3em;
    }
    .navigation_wrapper .menu li.button_item a {
        font-size: 0.875em;
        height: auto;
    }

    .navigation_wrapper .menu > li {
        position: relative;
    }
    .navigation_wrapper .menu > li > .sub-menu {
        position: absolute; top: 100%;
        left: 0%; transform: translate(0%,0);
        width: 12em; text-align: center; padding: 1em 0.5em;
        transition: all .25s ease; background-color: #FFFFFF;
        /*background-color: var(--typo-color-grey);*/
        opacity: 0; visibility: hidden; pointer-events: none;
        border-bottom-left-radius: 0.375em;
        border-bottom-right-radius: 0.375em;
    }
    .navigation_wrapper .menu > li:hover > .sub-menu,
    .navigation_wrapper .menu > li > .sub-menu:hover {
        opacity: 1; visibility: visible; pointer-events: all;
    }
    /*.navigation_wrapper .menu > li > .sub-menu:after {
        content:''; position: absolute;
        top: 1em; left: 0; right: 0; bottom: 0;
        width: auto; height: auto;
        background-color: var(--typo-color-red);
        border-radius: 0.375em;
    }
    .navigation_wrapper .menu > li > .sub-menu:before {
        content: ''; position: absolute;
        top: 1em; left: 50%; z-index: 20;
        transform: translate(-50%,-99%);
        border-bottom: 0.5em solid var(--typo-color-red);
        border-left: 0.75em solid transparent;
        border-right: 0.75em solid transparent;
    }
    */
    .navigation_wrapper .menu > li > .sub-menu > * {
        position: relative;
        z-index: 20;
    }
    /*.navigation_wrapper .menu > li > .sub-menu a {
        padding: 0.25rem;
    }*/
}

@media screen and (min-width:130em){
    .menu .button_item {
        margin-left: 6em;
    }
}

.icon_column {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: end;
}
.icon_column > * {
    flex: 0 0 auto;
}

/****************************************************************************
 * Search
 ****************************************************************************/
.topbar_search_wrapper {
    display: inline-flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: center;
    position: relative;
    height: var(--typo-topbar-height);
}
.search_toggle {
    width: 2em; height: 2em;
    border-radius: 50%;
    background-image: var(--typo-svg-search);
    background-position: 50% 50%;
    background-size: 60% auto;
    background-repeat: no-repeat;
    display: inline-block;
    vertical-align: middle;
    margin: 0 0.5em;
    cursor: pointer;
}
.active .search_toggle {
    background-color: var(--typo-color-red);
    background-image: var(--typo-svg-search-white);
}
.topbar_search_wrapper .search_form {
    display: none;
    position: fixed; top: var(--typo-topbar-height);
    right: 0; width: 100%;
    background-color: var(--typo-color-grey);
    padding: 0.5em;
}
.topbar_search_wrapper.active .search_form {
    display: block;
}
.topbar:has(.typo_language_switch_wrapper:hover) .topbar_search_wrapper.active .search_form,
.topbar:has(.typo_language_switch_nav:hover) .topbar_search_wrapper.active .search_form,
.topbar:has(li.menu-item-has-children:hover) .topbar_search_wrapper.active .search_form {
    display: none;
}


@media screen and (min-width:40em){
    .topbar_search_wrapper .search_form {
        position: absolute;
        top: 100%; right: 0;
        width: 25em;
        border-bottom-left-radius: 0.375em;
        border-bottom-right-radius: 0.375em;
    }
}

/****************************************************************************
 * Language Switch
 ****************************************************************************/
.typo_language_switch_wrapper {
    display: inline-flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: center;
    position: relative;
    height: var(--typo-topbar-height);
}
.typo_language_switch_wrapper > .current {
    display: inline-block;
    color: transparent; width: 2em; height: 2em;
    background: var(--typo-svg-globe);
    background-position: 50% 50%;
    background-size: 60% auto;
    background-repeat: no-repeat;
    background-color: transparent;
    border-radius: 50%;
}
.typo_language_switch_wrapper > .current:hover,
.typo_language_switch_wrapper:hover > .current {
    background-color: var(--typo-color-red);
    background-image: var(--typo-svg-globe-white);
}

.typo_language_switch_wrapper .typo_language_switch_nav {
    position: absolute; top: 100%; left:auto; right: -3em;
    transform: translate(0%,0);
    padding: 1em; width: 15em;
    /*color: #FFFFFF;*/ margin: 0;
    text-align: center; 
    border-bottom-left-radius: 0.375em;
    border-bottom-right-radius: 0.375em;
    background-color: var(--typo-color-grey);
    /*background-color: #FFFFFF;*/
    display: flex; flex-direction: row; flex-wrap: wrap;
    transition: all .25s ease; justify-content: center;
    opacity: 0; visibility: hidden; pointer-events: none;
}
.typo_language_switch_wrapper:hover .typo_language_switch_nav,
.typo_language_switch_wrapper .typo_language_switch_nav:hover {
    opacity: 1; visibility: visible; pointer-events: all;
}

.typo_language_switch_wrapper .typo_language_switch_nav:after {
    content:''; position: absolute;
    top: 0.5em; left: 0.5em; right: 0.5em; bottom: 0.5em;
    width: auto; height: auto;
    background-color: #FFFFFF;
    border-radius: 0.375em;
}
/*
.typo_language_switch_wrapper .typo_language_switch_nav:before {
    content: ''; position: absolute;
    top: 1em; left: 50%; z-index: 20;
    transform: translate(-50%,-99%);
    border-bottom: 0.5em solid var(--typo-color-red);
    border-left: 0.75em solid transparent;
    border-right: 0.75em solid transparent;
}
*/
.typo_language_switch_wrapper .typo_language_switch_nav  > * {
    position: relative;
    z-index: 10;
    list-style: none;
    flex: 0 0 100%;
}
.typo_language_switch_wrapper .typo_language_switch_nav  > .language {
    flex: 0 0 80%;
    margin-bottom: 0.25em;
    padding: 0.25em 0.5em;
    border-top: 1px solid rgba(0,0,0,0.25);
}
.typo_language_switch_wrapper .typo_language_switch_nav  > .language:first-child {
    border-top: none;
}

.typo_language_switch_wrapper .typo_language_switch_nav .current {
    /*font-weight: 700;
    text-decoration: underline;*/
    color: var(--typo-color-red);
}
.typo_language_switch_wrapper .typo_language_switch_nav .country a {
    padding: 0.5em 1em;
    border-radius: 0.375em;
    line-height: 1;
    border: 0.125em solid currentColor;
    display: block;
    margin-bottom: 0.25em;
}
.typo_language_switch_wrapper .typo_language_switch_nav .country.first {
    margin-top: 1em;
}
.typo_language_switch_wrapper .typo_language_switch_nav .country:last-child a{
    margin-bottom: 0;
}
/*
.typo_language_switch_wrapper .typo_language_switch_nav .country a:after {
    content: ''; display: inline-block;
    vertical-align: middle;
    width: 1em; height: 1em; margin-left: 0.375em;
    background: var(--typo-svg-extern-white);
    background-position: 50% 50%;
    background-size: contain;
}
    */


@media screen and (max-width:25em){
    .search_toggle,
    .typo_language_switch_wrapper > .current {
        font-size: 0.875em;
        margin: 0;
    }
}