* {
    box-sizing: border-box;
    position: relative
}

a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
    margin: 0;
    padding: 0;
    border: 0;
    font: inherit;
    vertical-align: baseline
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block
}

body {
    line-height: 1
}

ul {
    list-style: none
}

blockquote, q {
    quotes: none
}

blockquote:after, blockquote:before, q:after, q:before {
    content: '';
    content: none
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

a {
    text-decoration: none
}

strong {
    font-weight: bold
}

em {
    font-style: italic
}

img {
    max-width: 100%
}

.hamburger {
    font: inherit;
    display: inline-block;
    overflow: visible;
    margin: 0;
    padding: 15px;
    cursor: pointer;
    transition-timing-function: linear;
    transition-duration: .15s;
    transition-property: opacity,filter;
    text-transform: none;
    color: inherit;
    border: 0;
    background-color: transparent;
}

.hamburger:hover {
    opacity: .7
}

.hamburger-box {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 24px
}

.hamburger-inner {
    top: 50%;
    display: block;
    margin-top: -2px
}

.hamburger-inner,.hamburger-inner:after,.hamburger-inner:before {
    position: absolute;
    width: 40px;
    height: 4px;
    transition-timing-function: ease;
    transition-duration: .15s;
    transition-property: transform;
    border-radius: 4px;
    background-color: #000
}

.hamburger-inner:after,.hamburger-inner:before {
    display: block;
    content: ""
}

.hamburger-inner:before {
    top: -10px
}

.hamburger-inner:after {
    bottom: -10px
}

.hamburger--3dx .hamburger-box {
    perspective: 80px
}

.hamburger--3dx .hamburger-inner {
    transition: transform .15s cubic-bezier(.645,.045,.355,1),background-color 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dx .hamburger-inner:after,.hamburger--3dx .hamburger-inner:before {
    transition: transform 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dx.is-active .hamburger-inner {
    transform: rotateY(180deg);
    background-color: transparent
}

.hamburger--3dx.is-active .hamburger-inner:before {
    transform: translate3d(0,10px,0) rotate(45deg)
}

.hamburger--3dx.is-active .hamburger-inner:after {
    transform: translate3d(0,-10px,0) rotate(-45deg)
}

.hamburger--3dx-r .hamburger-box {
    perspective: 80px
}

.hamburger--3dx-r .hamburger-inner {
    transition: transform .15s cubic-bezier(.645,.045,.355,1),background-color 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dx-r .hamburger-inner:after,.hamburger--3dx-r .hamburger-inner:before {
    transition: transform 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dx-r.is-active .hamburger-inner {
    transform: rotateY(-180deg);
    background-color: transparent
}

.hamburger--3dx-r.is-active .hamburger-inner:before {
    transform: translate3d(0,10px,0) rotate(45deg)
}

.hamburger--3dx-r.is-active .hamburger-inner:after {
    transform: translate3d(0,-10px,0) rotate(-45deg)
}

.hamburger--3dy .hamburger-box {
    perspective: 80px
}

.hamburger--3dy .hamburger-inner {
    transition: transform .15s cubic-bezier(.645,.045,.355,1),background-color 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dy .hamburger-inner:after,.hamburger--3dy .hamburger-inner:before {
    transition: transform 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dy.is-active .hamburger-inner {
    transform: rotateX(-180deg);
    background-color: transparent
}

.hamburger--3dy.is-active .hamburger-inner:before {
    transform: translate3d(0,10px,0) rotate(45deg)
}

.hamburger--3dy.is-active .hamburger-inner:after {
    transform: translate3d(0,-10px,0) rotate(-45deg)
}

.hamburger--3dy-r .hamburger-box {
    perspective: 80px
}

.hamburger--3dy-r .hamburger-inner {
    transition: transform .15s cubic-bezier(.645,.045,.355,1),background-color 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dy-r .hamburger-inner:after,.hamburger--3dy-r .hamburger-inner:before {
    transition: transform 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dy-r.is-active .hamburger-inner {
    transform: rotateX(180deg);
    background-color: transparent
}

.hamburger--3dy-r.is-active .hamburger-inner:before {
    transform: translate3d(0,10px,0) rotate(45deg)
}

.hamburger--3dy-r.is-active .hamburger-inner:after {
    transform: translate3d(0,-10px,0) rotate(-45deg)
}

.hamburger--3dxy .hamburger-box {
    perspective: 80px
}

.hamburger--3dxy .hamburger-inner {
    transition: transform .15s cubic-bezier(.645,.045,.355,1),background-color 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dxy .hamburger-inner:after,.hamburger--3dxy .hamburger-inner:before {
    transition: transform 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dxy.is-active .hamburger-inner {
    transform: rotateX(180deg) rotateY(180deg);
    background-color: transparent
}

.hamburger--3dxy.is-active .hamburger-inner:before {
    transform: translate3d(0,10px,0) rotate(45deg)
}

.hamburger--3dxy.is-active .hamburger-inner:after {
    transform: translate3d(0,-10px,0) rotate(-45deg)
}

.hamburger--3dxy-r .hamburger-box {
    perspective: 80px
}

.hamburger--3dxy-r .hamburger-inner {
    transition: transform .15s cubic-bezier(.645,.045,.355,1),background-color 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dxy-r .hamburger-inner:after,.hamburger--3dxy-r .hamburger-inner:before {
    transition: transform 0s cubic-bezier(.645,.045,.355,1) .1s
}

.hamburger--3dxy-r.is-active .hamburger-inner {
    transform: rotateX(180deg) rotateY(180deg) rotate(-180deg);
    background-color: transparent
}

.hamburger--3dxy-r.is-active .hamburger-inner:before {
    transform: translate3d(0,10px,0) rotate(45deg)
}

.hamburger--3dxy-r.is-active .hamburger-inner:after {
    transform: translate3d(0,-10px,0) rotate(-45deg)
}

.hamburger--arrow.is-active .hamburger-inner:before {
    transform: translate3d(-8px,0,0) rotate(-45deg) scaleX(.7)
}

.hamburger--arrow.is-active .hamburger-inner:after {
    transform: translate3d(-8px,0,0) rotate(45deg) scaleX(.7)
}

.hamburger--arrow-r.is-active .hamburger-inner:before {
    transform: translate3d(8px,0,0) rotate(45deg) scaleX(.7)
}

.hamburger--arrow-r.is-active .hamburger-inner:after {
    transform: translate3d(8px,0,0) rotate(-45deg) scaleX(.7)
}

.hamburger--arrowalt .hamburger-inner:before {
    transition: top .1s ease .1s,transform .1s cubic-bezier(.165,.84,.44,1)
}

.hamburger--arrowalt .hamburger-inner:after {
    transition: bottom .1s ease .1s,transform .1s cubic-bezier(.165,.84,.44,1)
}

.hamburger--arrowalt.is-active .hamburger-inner:before {
    top: 0;
    transition: top .1s ease,transform .1s cubic-bezier(.895,.03,.685,.22) .1s;
    transform: translate3d(-8px,-10px,0) rotate(-45deg) scaleX(.7)
}

.hamburger--arrowalt.is-active .hamburger-inner:after {
    bottom: 0;
    transition: bottom .1s ease,transform .1s cubic-bezier(.895,.03,.685,.22) .1s;
    transform: translate3d(-8px,10px,0) rotate(45deg) scaleX(.7)
}

.hamburger--arrowalt-r .hamburger-inner:before {
    transition: top .1s ease .1s,transform .1s cubic-bezier(.165,.84,.44,1)
}

.hamburger--arrowalt-r .hamburger-inner:after {
    transition: bottom .1s ease .1s,transform .1s cubic-bezier(.165,.84,.44,1)
}

.hamburger--arrowalt-r.is-active .hamburger-inner:before {
    top: 0;
    transition: top .1s ease,transform .1s cubic-bezier(.895,.03,.685,.22) .1s;
    transform: translate3d(8px,-10px,0) rotate(45deg) scaleX(.7)
}

.hamburger--arrowalt-r.is-active .hamburger-inner:after {
    bottom: 0;
    transition: bottom .1s ease,transform .1s cubic-bezier(.895,.03,.685,.22) .1s;
    transform: translate3d(8px,10px,0) rotate(-45deg) scaleX(.7)
}

.hamburger--arrowturn.is-active .hamburger-inner {
    transform: rotate(-180deg)
}

.hamburger--arrowturn.is-active .hamburger-inner:before {
    transform: translate3d(8px,0,0) rotate(45deg) scaleX(.7)
}

.hamburger--arrowturn.is-active .hamburger-inner:after {
    transform: translate3d(8px,0,0) rotate(-45deg) scaleX(.7)
}

.hamburger--arrowturn-r.is-active .hamburger-inner {
    transform: rotate(-180deg)
}

.hamburger--arrowturn-r.is-active .hamburger-inner:before {
    transform: translate3d(-8px,0,0) rotate(-45deg) scaleX(.7)
}

.hamburger--arrowturn-r.is-active .hamburger-inner:after {
    transform: translate3d(-8px,0,0) rotate(45deg) scaleX(.7)
}

.hamburger--boring .hamburger-inner,.hamburger--boring .hamburger-inner:after,.hamburger--boring .hamburger-inner:before {
    transition-property: none
}

.hamburger--boring.is-active .hamburger-inner {
    transform: rotate(45deg)
}

.hamburger--boring.is-active .hamburger-inner:before {
    top: 0;
    opacity: 0
}

.hamburger--boring.is-active .hamburger-inner:after {
    bottom: 0;
    transform: rotate(-90deg)
}

.hamburger--collapse .hamburger-inner {
    top: auto;
    bottom: 0;
    transition-delay: .13s;
    transition-timing-function: cubic-bezier(.55,.055,.675,.19);
    transition-duration: .13s
}

.hamburger--collapse .hamburger-inner:after {
    top: -20px;
    transition: top .2s cubic-bezier(.33333,.66667,.66667,1) .2s,opacity .1s linear
}

.hamburger--collapse .hamburger-inner:before {
    transition: top .12s cubic-bezier(.33333,.66667,.66667,1) .2s,transform .13s cubic-bezier(.55,.055,.675,.19)
}

.hamburger--collapse.is-active .hamburger-inner {
    transition-delay: .22s;
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transform: translate3d(0,-10px,0) rotate(-45deg)
}

.hamburger--collapse.is-active .hamburger-inner:after {
    top: 0;
    transition: top .2s cubic-bezier(.33333,0,.66667,.33333),opacity .1s linear .22s;
    opacity: 0
}

.hamburger--collapse.is-active .hamburger-inner:before {
    top: 0;
    transition: top .1s cubic-bezier(.33333,0,.66667,.33333) .16s,transform .13s cubic-bezier(.215,.61,.355,1) .25s;
    transform: rotate(-90deg)
}

.hamburger--collapse-r .hamburger-inner {
    top: auto;
    bottom: 0;
    transition-delay: .13s;
    transition-timing-function: cubic-bezier(.55,.055,.675,.19);
    transition-duration: .13s
}

.hamburger--collapse-r .hamburger-inner:after {
    top: -20px;
    transition: top .2s cubic-bezier(.33333,.66667,.66667,1) .2s,opacity .1s linear
}

.hamburger--collapse-r .hamburger-inner:before {
    transition: top .12s cubic-bezier(.33333,.66667,.66667,1) .2s,transform .13s cubic-bezier(.55,.055,.675,.19)
}

.hamburger--collapse-r.is-active .hamburger-inner {
    transition-delay: .22s;
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transform: translate3d(0,-10px,0) rotate(45deg)
}

.hamburger--collapse-r.is-active .hamburger-inner:after {
    top: 0;
    transition: top .2s cubic-bezier(.33333,0,.66667,.33333),opacity .1s linear .22s;
    opacity: 0
}

.hamburger--collapse-r.is-active .hamburger-inner:before {
    top: 0;
    transition: top .1s cubic-bezier(.33333,0,.66667,.33333) .16s,transform .13s cubic-bezier(.215,.61,.355,1) .25s;
    transform: rotate(90deg)
}

.hamburger--elastic .hamburger-inner {
    top: 2px;
    transition-timing-function: cubic-bezier(.68,-.55,.265,1.55);
    transition-duration: .275s
}

.hamburger--elastic .hamburger-inner:before {
    top: 10px;
    transition: opacity .125s ease .275s
}

.hamburger--elastic .hamburger-inner:after {
    top: 20px;
    transition: transform .275s cubic-bezier(.68,-.55,.265,1.55)
}

.hamburger--elastic.is-active .hamburger-inner {
    transition-delay: 75ms;
    transform: translate3d(0,10px,0) rotate(135deg)
}

.hamburger--elastic.is-active .hamburger-inner:before {
    transition-delay: 0s;
    opacity: 0
}

.hamburger--elastic.is-active .hamburger-inner:after {
    transition-delay: 75ms;
    transform: translate3d(0,-20px,0) rotate(-270deg)
}

.hamburger--elastic-r .hamburger-inner {
    top: 2px;
    transition-timing-function: cubic-bezier(.68,-.55,.265,1.55);
    transition-duration: .275s
}

.hamburger--elastic-r .hamburger-inner:before {
    top: 10px;
    transition: opacity .125s ease .275s
}

.hamburger--elastic-r .hamburger-inner:after {
    top: 20px;
    transition: transform .275s cubic-bezier(.68,-.55,.265,1.55)
}

.hamburger--elastic-r.is-active .hamburger-inner {
    transition-delay: 75ms;
    transform: translate3d(0,10px,0) rotate(-135deg)
}

.hamburger--elastic-r.is-active .hamburger-inner:before {
    transition-delay: 0s;
    opacity: 0
}

.hamburger--elastic-r.is-active .hamburger-inner:after {
    transition-delay: 75ms;
    transform: translate3d(0,-20px,0) rotate(270deg)
}

.hamburger--emphatic {
    overflow: hidden
}

.hamburger--emphatic .hamburger-inner {
    transition: background-color .125s ease-in .175s
}

.hamburger--emphatic .hamburger-inner:before {
    left: 0;
    transition: transform .125s cubic-bezier(.6,.04,.98,.335),top .05s linear .125s,left .125s ease-in .175s
}

.hamburger--emphatic .hamburger-inner:after {
    top: 10px;
    right: 0;
    transition: transform .125s cubic-bezier(.6,.04,.98,.335),top .05s linear .125s,right .125s ease-in .175s
}

.hamburger--emphatic.is-active .hamburger-inner {
    transition-delay: 0s;
    transition-timing-function: ease-out;
    background-color: transparent
}

.hamburger--emphatic.is-active .hamburger-inner:before {
    top: -80px;
    left: -80px;
    transition: left .125s ease-out,top .05s linear .125s,transform .125s cubic-bezier(.075,.82,.165,1) .175s;
    transform: translate3d(80px,80px,0) rotate(45deg)
}

.hamburger--emphatic.is-active .hamburger-inner:after {
    top: -80px;
    right: -80px;
    transition: right .125s ease-out,top .05s linear .125s,transform .125s cubic-bezier(.075,.82,.165,1) .175s;
    transform: translate3d(-80px,80px,0) rotate(-45deg)
}

.hamburger--emphatic-r {
    overflow: hidden
}

.hamburger--emphatic-r .hamburger-inner {
    transition: background-color .125s ease-in .175s
}

.hamburger--emphatic-r .hamburger-inner:before {
    left: 0;
    transition: transform .125s cubic-bezier(.6,.04,.98,.335),top .05s linear .125s,left .125s ease-in .175s
}

.hamburger--emphatic-r .hamburger-inner:after {
    top: 10px;
    right: 0;
    transition: transform .125s cubic-bezier(.6,.04,.98,.335),top .05s linear .125s,right .125s ease-in .175s
}

.hamburger--emphatic-r.is-active .hamburger-inner {
    transition-delay: 0s;
    transition-timing-function: ease-out;
    background-color: transparent
}

.hamburger--emphatic-r.is-active .hamburger-inner:before {
    top: 80px;
    left: -80px;
    transition: left .125s ease-out,top .05s linear .125s,transform .125s cubic-bezier(.075,.82,.165,1) .175s;
    transform: translate3d(80px,-80px,0) rotate(-45deg)
}

.hamburger--emphatic-r.is-active .hamburger-inner:after {
    top: 80px;
    right: -80px;
    transition: right .125s ease-out,top .05s linear .125s,transform .125s cubic-bezier(.075,.82,.165,1) .175s;
    transform: translate3d(-80px,-80px,0) rotate(45deg)
}

.hamburger--minus .hamburger-inner:after,.hamburger--minus .hamburger-inner:before {
    transition: bottom .08s ease-out 0s,top .08s ease-out 0s,opacity 0s linear
}

.hamburger--minus.is-active .hamburger-inner:after,.hamburger--minus.is-active .hamburger-inner:before {
    transition: bottom .08s ease-out,top .08s ease-out,opacity 0s linear .08s;
    opacity: 0
}

.hamburger--minus.is-active .hamburger-inner:before {
    top: 0
}

.hamburger--minus.is-active .hamburger-inner:after {
    bottom: 0
}

.hamburger--slider .hamburger-inner {
    top: 2px
}

.hamburger--slider .hamburger-inner:before {
    top: 10px;
    transition-timing-function: ease;
    transition-duration: .15s;
    transition-property: transform,opacity
}

.hamburger--slider .hamburger-inner:after {
    top: 20px
}

.hamburger--slider.is-active .hamburger-inner {
    transform: translate3d(0,10px,0) rotate(45deg)
}

.hamburger--slider.is-active .hamburger-inner:before {
    transform: rotate(-45deg) translate3d(-5.71429px,-6px,0);
    opacity: 0
}

.hamburger--slider.is-active .hamburger-inner:after {
    transform: translate3d(0,-20px,0) rotate(-90deg)
}

.hamburger--slider-r .hamburger-inner {
    top: 2px
}

.hamburger--slider-r .hamburger-inner:before {
    top: 10px;
    transition-timing-function: ease;
    transition-duration: .15s;
    transition-property: transform,opacity
}

.hamburger--slider-r .hamburger-inner:after {
    top: 20px
}

.hamburger--slider-r.is-active .hamburger-inner {
    transform: translate3d(0,10px,0) rotate(-45deg)
}

.hamburger--slider-r.is-active .hamburger-inner:before {
    transform: rotate(45deg) translate3d(5.71429px,-6px,0);
    opacity: 0
}

.hamburger--slider-r.is-active .hamburger-inner:after {
    transform: translate3d(0,-20px,0) rotate(90deg)
}

.hamburger--spin .hamburger-inner {
    transition-timing-function: cubic-bezier(.55,.055,.675,.19);
    transition-duration: .22s
}

.hamburger--spin .hamburger-inner:before {
    transition: top .1s ease-in .25s,opacity .1s ease-in
}

.hamburger--spin .hamburger-inner:after {
    transition: bottom .1s ease-in .25s,transform .22s cubic-bezier(.55,.055,.675,.19)
}

.hamburger--spin.is-active .hamburger-inner {
    transition-delay: .12s;
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transform: rotate(225deg)
}

.hamburger--spin.is-active .hamburger-inner:before {
    top: 0;
    transition: top .1s ease-out,opacity .1s ease-out .12s;
    opacity: 0
}

.hamburger--spin.is-active .hamburger-inner:after {
    bottom: 0;
    transition: bottom .1s ease-out,transform .22s cubic-bezier(.215,.61,.355,1) .12s;
    transform: rotate(-90deg)
}

.hamburger--spin-r .hamburger-inner {
    transition-timing-function: cubic-bezier(.55,.055,.675,.19);
    transition-duration: .22s
}

.hamburger--spin-r .hamburger-inner:before {
    transition: top .1s ease-in .25s,opacity .1s ease-in
}

.hamburger--spin-r .hamburger-inner:after {
    transition: bottom .1s ease-in .25s,transform .22s cubic-bezier(.55,.055,.675,.19)
}

.hamburger--spin-r.is-active .hamburger-inner {
    transition-delay: .12s;
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transform: rotate(-225deg)
}

.hamburger--spin-r.is-active .hamburger-inner:before {
    top: 0;
    transition: top .1s ease-out,opacity .1s ease-out .12s;
    opacity: 0
}

.hamburger--spin-r.is-active .hamburger-inner:after {
    bottom: 0;
    transition: bottom .1s ease-out,transform .22s cubic-bezier(.215,.61,.355,1) .12s;
    transform: rotate(90deg)
}

.hamburger--spring .hamburger-inner {
    top: 2px;
    transition: background-color 0s linear .13s
}

.hamburger--spring .hamburger-inner:before {
    top: 10px;
    transition: top .1s cubic-bezier(.33333,.66667,.66667,1) .2s,transform .13s cubic-bezier(.55,.055,.675,.19)
}

.hamburger--spring .hamburger-inner:after {
    top: 20px;
    transition: top .2s cubic-bezier(.33333,.66667,.66667,1) .2s,transform .13s cubic-bezier(.55,.055,.675,.19)
}

.hamburger--spring.is-active .hamburger-inner {
    transition-delay: .22s;
    background-color: transparent
}

.hamburger--spring.is-active .hamburger-inner:before {
    top: 0;
    transition: top .1s cubic-bezier(.33333,0,.66667,.33333) .15s,transform .13s cubic-bezier(.215,.61,.355,1) .22s;
    transform: translate3d(0,10px,0) rotate(45deg)
}

.hamburger--spring.is-active .hamburger-inner:after {
    top: 0;
    transition: top .2s cubic-bezier(.33333,0,.66667,.33333),transform .13s cubic-bezier(.215,.61,.355,1) .22s;
    transform: translate3d(0,10px,0) rotate(-45deg)
}

.hamburger--spring-r .hamburger-inner {
    top: auto;
    bottom: 0;
    transition-delay: 0s;
    transition-timing-function: cubic-bezier(.55,.055,.675,.19);
    transition-duration: .13s
}

.hamburger--spring-r .hamburger-inner:after {
    top: -20px;
    transition: top .2s cubic-bezier(.33333,.66667,.66667,1) .2s,opacity 0s linear
}

.hamburger--spring-r .hamburger-inner:before {
    transition: top .1s cubic-bezier(.33333,.66667,.66667,1) .2s,transform .13s cubic-bezier(.55,.055,.675,.19)
}

.hamburger--spring-r.is-active .hamburger-inner {
    transition-delay: .22s;
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transform: translate3d(0,-10px,0) rotate(-45deg)
}

.hamburger--spring-r.is-active .hamburger-inner:after {
    top: 0;
    transition: top .2s cubic-bezier(.33333,0,.66667,.33333),opacity 0s linear .22s;
    opacity: 0
}

.hamburger--spring-r.is-active .hamburger-inner:before {
    top: 0;
    transition: top .1s cubic-bezier(.33333,0,.66667,.33333) .15s,transform .13s cubic-bezier(.215,.61,.355,1) .22s;
    transform: rotate(90deg)
}

.hamburger--stand .hamburger-inner {
    transition: transform 75ms cubic-bezier(.55,.055,.675,.19) .15s,background-color 0s linear 75ms
}

.hamburger--stand .hamburger-inner:before {
    transition: top 75ms ease-in 75ms,transform 75ms cubic-bezier(.55,.055,.675,.19) 0s
}

.hamburger--stand .hamburger-inner:after {
    transition: bottom 75ms ease-in 75ms,transform 75ms cubic-bezier(.55,.055,.675,.19) 0s
}

.hamburger--stand.is-active .hamburger-inner {
    transition: transform 75ms cubic-bezier(.215,.61,.355,1) 0s,background-color 0s linear .15s;
    transform: rotate(90deg);
    background-color: transparent
}

.hamburger--stand.is-active .hamburger-inner:before {
    top: 0;
    transition: top 75ms ease-out .1s,transform 75ms cubic-bezier(.215,.61,.355,1) .15s;
    transform: rotate(-45deg)
}

.hamburger--stand.is-active .hamburger-inner:after {
    bottom: 0;
    transition: bottom 75ms ease-out .1s,transform 75ms cubic-bezier(.215,.61,.355,1) .15s;
    transform: rotate(45deg)
}

.hamburger--stand-r .hamburger-inner {
    transition: transform 75ms cubic-bezier(.55,.055,.675,.19) .15s,background-color 0s linear 75ms
}

.hamburger--stand-r .hamburger-inner:before {
    transition: top 75ms ease-in 75ms,transform 75ms cubic-bezier(.55,.055,.675,.19) 0s
}

.hamburger--stand-r .hamburger-inner:after {
    transition: bottom 75ms ease-in 75ms,transform 75ms cubic-bezier(.55,.055,.675,.19) 0s
}

.hamburger--stand-r.is-active .hamburger-inner {
    transition: transform 75ms cubic-bezier(.215,.61,.355,1) 0s,background-color 0s linear .15s;
    transform: rotate(-90deg);
    background-color: transparent
}

.hamburger--stand-r.is-active .hamburger-inner:before {
    top: 0;
    transition: top 75ms ease-out .1s,transform 75ms cubic-bezier(.215,.61,.355,1) .15s;
    transform: rotate(-45deg)
}

.hamburger--stand-r.is-active .hamburger-inner:after {
    bottom: 0;
    transition: bottom 75ms ease-out .1s,transform 75ms cubic-bezier(.215,.61,.355,1) .15s;
    transform: rotate(45deg)
}

.hamburger--squeeze .hamburger-inner {
    transition-timing-function: cubic-bezier(.55,.055,.675,.19);
    transition-duration: 75ms
}

.hamburger--squeeze .hamburger-inner:before {
    transition: top 75ms ease .12s,opacity 75ms ease
}

.hamburger--squeeze .hamburger-inner:after {
    transition: bottom 75ms ease .12s,transform 75ms cubic-bezier(.55,.055,.675,.19)
}

.hamburger--squeeze.is-active .hamburger-inner {
    transition-delay: .12s;
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transform: rotate(45deg)
}

.hamburger--squeeze.is-active .hamburger-inner:before {
    top: 0;
    transition: top 75ms ease,opacity 75ms ease .12s;
    opacity: 0
}

.hamburger--squeeze.is-active .hamburger-inner:after {
    bottom: 0;
    transition: bottom 75ms ease,transform 75ms cubic-bezier(.215,.61,.355,1) .12s;
    transform: rotate(-90deg)
}

.hamburger--vortex .hamburger-inner {
    transition-timing-function: cubic-bezier(.19,1,.22,1);
    transition-duration: .2s
}

.hamburger--vortex .hamburger-inner:after,.hamburger--vortex .hamburger-inner:before {
    transition-delay: .1s;
    transition-timing-function: linear;
    transition-duration: 0s
}

.hamburger--vortex .hamburger-inner:before {
    transition-property: top,opacity
}

.hamburger--vortex .hamburger-inner:after {
    transition-property: bottom,transform
}

.hamburger--vortex.is-active .hamburger-inner {
    transition-timing-function: cubic-bezier(.19,1,.22,1);
    transform: rotate(765deg)
}

.hamburger--vortex.is-active .hamburger-inner:after,.hamburger--vortex.is-active .hamburger-inner:before {
    transition-delay: 0s
}

.hamburger--vortex.is-active .hamburger-inner:before {
    top: 0;
    opacity: 0
}

.hamburger--vortex.is-active .hamburger-inner:after {
    bottom: 0;
    transform: rotate(90deg)
}

.hamburger--vortex-r .hamburger-inner {
    transition-timing-function: cubic-bezier(.19,1,.22,1);
    transition-duration: .2s
}

.hamburger--vortex-r .hamburger-inner:after,.hamburger--vortex-r .hamburger-inner:before {
    transition-delay: .1s;
    transition-timing-function: linear;
    transition-duration: 0s
}

.hamburger--vortex-r .hamburger-inner:before {
    transition-property: top,opacity
}

.hamburger--vortex-r .hamburger-inner:after {
    transition-property: bottom,transform
}

.hamburger--vortex-r.is-active .hamburger-inner {
    transition-timing-function: cubic-bezier(.19,1,.22,1);
    transform: rotate(-765deg)
}

.hamburger--vortex-r.is-active .hamburger-inner:after,.hamburger--vortex-r.is-active .hamburger-inner:before {
    transition-delay: 0s
}

.hamburger--vortex-r.is-active .hamburger-inner:before {
    top: 0;
    opacity: 0
}

.hamburger--vortex-r.is-active .hamburger-inner:after {
    bottom: 0;
    transform: rotate(-90deg)
}

/* @import '~@fortawesome/fontawesome-pro/css/fontawesome.css'; */

/* @import '~@fortawesome/fontawesome-pro/css/light.css'; */

/*
- FONTS
- SIZES
- COLORS
- SPACING
*/

/* FONTS */

@font-face {
    font-family: 'GT Walsheim Pro';
    src: url('/dist/assets/GTWalsheimPro-Regular-CYelH4tI.woff2') format('woff2'),
        url('/dist/assets/GTWalsheimPro-Regular-i-Rw8Aee.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'GT Walsheim Pro';
    src: url('/dist/assets/GTWalsheimPro-RegularOblique-qRpA6VYR.woff2') format('woff2'),
        url('/dist/assets/GTWalsheimPro-RegularOblique-DnufZ8Ef.woff') format('woff');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'GT Walsheim Pro';
    src: url('/dist/assets/GTWalsheimPro-Medium-CdKFYecw.woff2') format('woff2'),
        url('/dist/assets/GTWalsheimPro-Medium-BpR8s-Qz.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'GT Walsheim Pro';
    src: url('/dist/assets/GTWalsheimPro-MediumOblique-B1WssXwy.woff2') format('woff2'),
        url('/dist/assets/GTWalsheimPro-MediumOblique-B0oC_kmN.woff') format('woff');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'GT Walsheim Pro';
    src: url('/dist/assets/GTWalsheimPro-Bold-LiuOaKk_.woff2') format('woff2'),
        url('/dist/assets/GTWalsheimPro-Bold-QYTJnFLW.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'GT Walsheim Pro';
    src: url('/dist/assets/GTWalsheimPro-BoldOblique-CigBFN7c.woff2') format('woff2'),
        url('/dist/assets/GTWalsheimPro-BoldOblique-B0bsz8zP.woff') format('woff');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'PP Watch';
    src: url('/dist/assets/PPWatch-Black-HWbIingb.woff2') format('woff2'),
        url('/dist/assets/PPWatch-Black-BbZYzhrt.woff') format('woff');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Watch';
    src: url('/dist/assets/PPWatch-Bold-XoTVd1qU.woff2') format('woff2'),
        url('/dist/assets/PPWatch-Bold-G_Ib_jbQ.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Watch';
    src: url('/dist/assets/PPWatch-Medium-v0o3XRFc.woff2') format('woff2'),
        url('/dist/assets/PPWatch-Medium-C5N6wChk.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Watch';
    src: url('/dist/assets/PPWatch-Extralight-khRoMfBb.woff2') format('woff2'),
        url('/dist/assets/PPWatch-Extralight-DoqcEKt2.woff') format('woff');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

:root {
    --mainFont: 'GT Walsheim Pro', Helvetica, Arial, sans-serif;
    --altFont: 'PP Watch', Helvetica, Arial, sans-serif;
}

.mainFont {
    font-family: var(--mainFont);
}

.altFont {
    font-family: var(--altFont);
}

:root {
    --fontFamilyHero: var(--altFont);
    --fontSizeHero: var(--fontSizeH2);
    --lineHeightHero: var(--lineHeightH2);
    --fontWeightHero: var(--fontWeightH2);
    --letterSpacingHero: var(--letterSpacingH2);
    --fontStyleHero: var(--fontStyleH2);
    --textTransformHero: var(--textTransformH2);

    --fontFamilyH1: var(--altFont);
    --fontSizeH1: 80px;
    --lineHeightH1: 1.1;
    --fontWeightH1: 700;
    --letterSpacingH1: normal;
    --fontStyleH1: normal;
    --textTransformH1: none;

    --fontFamilyH2: var(--altFont);
    --fontSizeH2: 60px;
    --lineHeightH2: 1.1;
    --fontWeightH2: 700;
    --letterSpacingH2: normal;
    --fontStyleH2: normal;
    --textTransformH2: none;

    --fontFamilyH3: var(--mainFont);
    --fontSizeH3: 46px;
    --lineHeightH3: 1.1;
    --fontWeightH3: 700;
    --letterSpacingH3: normal;
    --fontStyleH3: normal;
    --textTransformH3: none;

    --fontFamilyH4: var(--mainFont);
    --fontSizeH4: 36px;
    --lineHeightH4: 1.1;
    --fontWeightH4: 700;
    --letterSpacingH4: normal;
    --fontStyleH4: normal;
    --textTransformH4: none;

    --fontFamilyH5: var(--mainFont);
    --fontSizeH5: 26px;
    --lineHeightH5: 1.25;
    --fontWeightH5: 700;
    --letterSpacingH5: normal;
    --fontStyleH5: normal;
    --textTransformH5: none;

    --fontFamilyH6: var(--mainFont);
    --fontSizeH6: 22px;
    --lineHeightH6: 1.25;
    --fontWeightH6: 700;
    --letterSpacingH6: normal;
    --fontStyleH6: normal;
    --textTransformH6: none;

    --fontFamilyBody: var(--mainFont);
    --fontSizeBody: 22px;
    --lineHeightBody: 1.4;
    --fontWeightBody: 400;
    --letterSpacingBody: normal;
    --fontStyleBody: normal;
    --textTransformBody: none;

    --fontFamilyBodySmall: var(--mainFont);
    --fontSizeBodySmall: 18px;
    --lineHeightBodySmall: 1.4;
    --fontWeightBodySmall: 400;
    --letterSpacingBodySmall: normal;
    --fontStyleBodySmall: normal;
    --textTransformBodySmall: none;

    --fontFamilyLeadtext: var(--mainFont);
    --fontSizeLeadtext: 40px;
    --lineHeightLeadtext: 1.1;
    --fontWeightLeadtext: 400;
    --letterSpacingLeadtext: normal;
    --fontStyleLeadtext: normal;
    --textTransformLeadtext: normal;

    --fontFamilyLeadtextSmall: var(--mainFont);
    --fontSizeLeadtextSmall: 30px;
    --lineHeightLeadtextSmall: 1.1;
    --fontWeightLeadtextSmall: 300;
    --letterSpacingLeadtextSmall: normal;
    --fontStyleLeadtextSmall: normal;
    --textTransformLeadtextSmall: normal;

    --fontFamilyTestimonial: var(--altFont);
    --fontSizeTestimonial: 46px;
    --lineHeightTestimonial: 1.1;
    --fontWeightTestimonial: 200;
    --letterSpacingTestimonial: normal;
    --fontStyleTestimonial: normal;
    --textTransformTestimonial: normal;

    --fontFamilyOverline: var(--mainFont);
    --fontSizeOverline: 15px;
    --lineHeightOverline: 1.5;
    --fontWeightOverline: 700;
    --letterSpacingOverline: 0.15em;
    --fontStyleOverline: normal;
    --textTransformOverline: uppercase;

    --fontFamilyButton: var(--mainFont);
    --fontSizeButton: 14px;
    --lineHeightButton: 1.5;
    --fontWeightButton: 700;
    --letterSpacingButton: 0.08em;
    --fontStyleButton: normal;
    --textTransformButton: uppercase;

    --fontFamilyNavigation: var(--altFont);
    --fontSizeNavigation: 15px;
    --lineHeightNavigation: 1.5;
    --fontWeightNavigation: normal;
    --letterSpacingNavigation: normal;
    --fontStyleNavigation: normal;
    --textTransformNavigation: none;

    --transition-property: all;
    --transition-duration: 200ms;
    --transition-timing-function: ease-in-out;
    --transition-delay: 0s;
    --transition: var(--transition-property) var(--transition-duration) var(--transition-timing-function) var(--transition-delay);
}

@media screen and (max-width: 1500px) {
    :root {
        --fontSizeBody: 21px;
        --fontSizeBodySmall: 17px;
        --fontSizeButton: 13px;
        --fontSizeDisplayBig: 120px;
        --fontSizeDisplayMedium: 80px;
        --fontSizeDisplaySmall: 65px;
        --fontSizeH1: 65px;
        --fontSizeH2: 55px;
        --fontSizeH3: 42px;
        --fontSizeH4: 32px;
        --fontSizeH5: 24px;
        --fontSizeH6: 20px;
        --fontSizeLeadtext: 36px;
        --fontSizeLeadtextSmall: 26px;
        --fontSizeOverline: 15px;
        --fontSizeTestimonial: 40px;

        --fontSizeNavigation: 15px;
    }
}

@media screen and (max-width: 1200px) {
    :root {
        --fontSizeBody: 19px;
        --fontSizeBodySmall: 16px;
        --fontSizeButton: 13px;
        --fontSizeDisplayBig: 100px;
        --fontSizeDisplayMedium: 70px;
        --fontSizeDisplaySmall: 60px;
        --fontSizeH1: 50px;
        --fontSizeH2: 40px;
        --fontSizeH3: 38px;
        --fontSizeH4: 28px;
        --fontSizeH5: 22px;
        --fontSizeH6: 18px;
        --fontSizeLeadtext: 32px;
        --fontSizeLeadtextSmall: 24px;
        --fontSizeOverline: 14px;
        --fontSizeTestimonial: 36px;

        --fontSizeNavigation: 48px;
    }
}

@media screen and (max-width: 768px) {
    :root {
        --fontSizeBody: 18px;
        --fontSizeBodySmall: 15px;
        --fontSizeButton: 12px;
        --fontSizeDisplayBig: 80px;
        --fontSizeDisplayMedium: 60px;
        --fontSizeDisplaySmall: 50px;
        --fontSizeH1: 40px;
        --fontSizeH2: 35px;
        --fontSizeH3: 32px;
        --fontSizeH4: 24px;
        --fontSizeH5: 22px;
        --fontSizeH6: 17px;
        --fontSizeLeadtext: 28px;
        --fontSizeLeadtextSmall: 22px;
        --fontSizeOverline: 14px;
        --fontSizeTestimonial: 30px;

        --fontSizeNavigation: 40px;
    }
}

@media screen and (max-width: 600px) {
    :root {
        --fontSizeBody: 16px;
        --fontSizeBodySmall: 13px;
        --fontSizeButton: 12px;
        --fontSizeDisplayBig: 40px;
        --fontSizeDisplayMedium: 30px;
        --fontSizeDisplaySmall: 26px;
        --fontSizeH1: 30px;
        --fontSizeH2: 26px;
        --fontSizeH3: 24px;
        --fontSizeH4: 20px;
        --fontSizeH5: 18px;
        --fontSizeH6: 16px;
        --fontSizeLeadtext: 24px;
        --fontSizeLeadtextSmall: 20px;
        --fontSizeOverline: 14px;
        --fontSizeTestimonial: 20px;

        --fontSizeNavigation: 35px;
    }
}

/* COLORS */

:root {
    --colorDark: #000000;
    --colorDarkRGB: 0, 0, 0;

    --colorDarkHover: #828282;
    --colorDarkHoverRGB: 130, 130, 130;

    --colorHighlight: #D1055C;
    --colorHighlightRGB: 209, 5, 92;

    --colorHighlightLight: #E3699D;

    --colorHighlightHover: #E3699D;
    --colorHighlightHoverRGB: 227, 105, 157;

    --colorMuted: #efefef;
    --colorMutedRGB: 239, 239, 239;

    --colorMutedSalmon: #efe8e6;
    --colorMutedSalmonRGB: 239, 232, 230;

    --colorMutedHover: #fff;
    --colorMutedHoverRGB: 255, 255, 255;

    --colorReset: #ffffff;
    --colorResetRGB: 255, 255, 255;

    --formErrorColor: #D70042;

    --colorBodyBorder: transparent;
}

/* SPACING */

:root {
    --wrapperBigWidth: 1600px;
    --wrapperSmallWidth: 1100px;

    --verticalPadding: 200px;
    --horizontalMargin: 100px;
    --layoutMargin: 60px;

    --headerHeight: 110px;
    --logoSpacing: 30px;
    --mobileNavWidth: 100%;
    --bodyBorder: 0px;

    --borderRadius: 5px;

    --svgStrokeWidth: 1px;

    --hamburgerWidth: 40px;
    --hamburgerHeight: 18px;
    --hamburgerLineHeight: 2px;
}

@media screen and (max-width: 1500px) {
    :root {
        --verticalPadding: 175px;
        --horizontalMargin: 100px;
        --layoutMargin: 50px;
    }
}

@media screen and (max-width: 1200px) {
    :root {
        --verticalPadding: 150px;
        --horizontalMargin: 60px;
        --layoutMargin: 40px;
    }
}

@media screen and (max-width: 768px) {
    :root {
        --verticalPadding: 125px;
        --horizontalMargin: 45px;
        --layoutMargin: 30px;
    }
}

@media screen and (max-width: 600px) {
    :root {
        --verticalPadding: 100px;
        --horizontalMargin: 15px;
        --layoutMargin: 15px;

        --hamburgerWidth: 34px;
        --hamburgerHeight: 14px;
    }
}

/*
- BASE
- THEMES
- HELPER / CLASS
- RESET
- IMG EFFECT
- GRID / FLEX
- VIDEO
*/

/*BASE*/

html {
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--headerHeight) + 2rem);

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;

    font-family: var(--fontFamilyBody);
    font-size: var(--fontSizeBody);
    line-height: var(--lineHeightBody);
    font-weight: var(--fontWeightBody);
    letter-spacing: var(--letterSpacingBody);
    font-style: var(--fontStyleBody);
    text-transform: var(--textTransformBody);
}

body {
    font-family: var(--fontFamilyBody);
    font-size: var(--fontSizeBody);
    line-height: var(--lineHeightBody);
    font-weight: var(--fontWeightBody);
    letter-spacing: var(--letterSpacingBody);
    font-style: var(--fontStyleBody);
    text-transform: var(--textTransformBody);

    color: var(--colorDark);
    background: var(--colorReset);
}

body.mobileNavigationOpen {
    overflow-y: hidden;
}

.bodyBorder {
    background: var(--colorBodyBorder);
    padding: 0 var(--bodyBorder) var(--bodyBorder) var(--bodyBorder);
    overflow: hidden;
}

.mainContent {
    z-index: 3;
}

article:focus {
    outline: none;
}

.wrapper {
    margin: 0 auto;
    width: var(--wrapperBigWidth);
    max-width: calc(100% - var(--horizontalMargin) * 2);
    /* overflow: hidden; */
    z-index: 10;
}

.noWrapper {
    width: 100% !important;
    max-width: none;
}

.wrapperSmall {
    width: var(--wrapperSmallWidth);
}

a {
    color: inherit;
    transition: var(--transition);
    /* text-decoration: underline; */
}

a:hover {
    color: var(--colorHighlightHover);
}

strong,
.strong {
    font-weight: 700;
}

small,
.small {
    font-family: var(--fontFamilyBodySmall);
    font-size: var(--fontSizeBodySmall);
    line-height: var(--lineHeightBodySmall);
    font-weight: var(--fontWeightBodySmall);
    letter-spacing: var(--letterSpacingBodySmall);
    font-style: var(--fontStyleBodySmall);
    text-transform: var(--textTransformBodySmall);
}

ul,
ol,
p {
    margin: 1em 0;
}

p:first-child {
    margin-top: 0;
}

p:last-child {
    margin-bottom: 0;
}

li {
    margin-left: 25px;
}

ul li::before {
    font: var(--fa-font-light);
    display: inline-block;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;

    position: absolute;
    left: -30px;
    top: .2em;
    /*transform: translateY(-50%);*/
    line-height: 1;

    content: "\203a";
}

ul.checkmarks li {
    margin-left: 32px;
    line-height: 1.75;
}

ul.checkmarks li::before {
    font: var(--fa-font-regular);

    color: var(--colorHighlight);

    content: "\f058";
}

.mecato ul.checkmarks li::before {
    color: var(--colorHighlightMecato);
}

table {
    display: block;
    overflow-x: auto;
    width: 100%;
    text-align: left;
    margin: 1em 0;
}

table thead {
    display: table;
    width: 100%;
    font-weight: 700;
}

table tbody {
    display: table;
    width: 100%;
}

table tr td p {
    margin: 0;
}

table tr td,
table tr th {
    padding: .5em 0;
    border-bottom: 1px solid var(--colorMuted);
}

svg,
svg path,
svg line,
svg polyline {
    overflow: visible;
    stroke-width: var(--svgStrokeWidth);
}

[data-lottie] [data-lottie-svg="negativ"] {
    position: absolute;
    top: 0;
    left: 0;
    display: none;
}

[data-lottie] svg,
[data-lottie] svg path,
[data-lottie] svg line,
[data-lottie] svg polyline {
    vector-effect: non-scaling-stroke;
}

/*HELPER / CLASS*/

.verticalPadding {
    padding: var(--verticalPadding) 0;
}

.verticalPaddingTop {
    padding-top: var(--verticalPadding);
}

.verticalPaddingBottom {
    padding-bottom: var(--verticalPadding);
}

.verticalPaddingHalf {
    padding: calc(var(--verticalPadding) / 2) 0;
}

.verticalPaddingTopHalf {
    padding-top: calc(var(--verticalPadding) / 2);
}

.verticalPaddingBottomHalf {
    padding-bottom: calc(var(--verticalPadding) / 2);
}

.verticalPaddingBottomBig {
    padding-bottom: calc(var(--verticalPadding) * 1.5);
}

.verticalPaddingTopBig {
    padding-top: calc(var(--verticalPadding) * 1.5);
}

.verticalPaddingNone {
    padding: 0;
}

.verticalPaddingTopNone {
    padding-top: 0;
}

.verticalPaddingBottomNone {
    padding-bottom: 0;
}

.textAlignLeft {
    text-align: left;
}

.textAlignCenter {
    text-align: center;
}

.textAlignRight {
    text-align: right;
}

.floatLeft {
    float: left;
}

.floatRight {
    float: right;
}

.fontSizeNavigation {
    font-family: var(--fontFamilyNavigation);
    font-size: var(--fontSizeNavigation);
    line-height: var(--lineHeightNavigation);
    font-weight: var(--fontWeightNavigation);
    letter-spacing: var(--letterSpacingNavigation);
    font-style: var(--fontStyleNavigation);
    text-transform: var(--textTransformNavigation);
}

.fontSizeNavigationMeta {
    font-family: var(--fontFamilyNavigationMeta);
    font-size: var(--fontSizeNavigationMeta);
    line-height: var(--lineHeightNavigationMeta);
    font-weight: var(--fontWeightNavigationMeta);
    letter-spacing: var(--letterSpacingNavigationMeta);
    font-style: var(--fontStyleNavigationMeta);
    text-transform: var(--textTransformNavigationMeta);
}

.fontSizeNavigationSmall {
    font-family: var(--fontFamilyNavigationSmall);
    font-size: var(--fontSizeNavigationSmall);
    line-height: var(--lineHeightNavigationSmall);
    font-weight: var(--fontWeightNavigationSmall);
    letter-spacing: var(--letterSpacingNavigationSmall);
    font-style: var(--fontStyleNavigationSmall);
    text-transform: var(--textTransformNavigationSmall);
}

.fontSizeBody {
    font-family: var(--fontFamilyBody);
    font-size: var(--fontSizeBody);
    line-height: var(--lineHeightBody);
    font-weight: var(--fontWeightBody);
    letter-spacing: var(--letterSpacingBody);
    font-style: var(--fontStyleBody);
    text-transform: var(--textTransformBody);
}

.fontSizeBodySmall {
    font-family: var(--fontFamilyBodySmall);
    font-size: var(--fontSizeBodySmall);
    line-height: var(--lineHeightBodySmall);
    font-weight: var(--fontWeightBodySmall);
    letter-spacing: var(--letterSpacingBodySmall);
    font-style: var(--fontStyleBodySmall);
    text-transform: var(--textTransformBodySmall);
}

.fontSizeOverlineSmall,
.fontSizeOverline {
    font-family: var(--fontFamilyOverline);
    font-size: var(--fontSizeOverline);
    line-height: var(--lineHeightOverline);
    font-weight: var(--fontWeightOverline);
    letter-spacing: var(--letterSpacingOverline);
    font-style: var(--fontStyleOverline);
    text-transform: var(--textTransformOverline);
}

.fontSizeButton {
    font-family: var(--fontFamilyButton);
    font-size: var(--fontSizeButton);
    line-height: var(--lineHeightButton);
    font-weight: var(--fontWeightButton);
    letter-spacing: var(--letterSpacingButton);
    text-transform: var(--textTransformButton);
    text-decoration: none;
}

.fontSizeLeadtext {
    font-family: var(--fontFamilyLeadtext);
    font-size: var(--fontSizeLeadtext);
    line-height: var(--lineHeightLeadtext);
    font-weight: var(--fontWeightLeadtext);
    letter-spacing: var(--letterSpacingLeadtext);
    font-style: var(--fontStyleLeadtext);
    text-transform: var(--textTransformLeadtext);
}

.fontSizeLeadtextSmall {
    font-family: var(--fontFamilyLeadtextSmall);
    font-size: var(--fontSizeLeadtextSmall);
    line-height: var(--lineHeightLeadtextSmall);
    font-weight: var(--fontWeightLeadtextSmall);
    letter-spacing: var(--letterSpacingLeadtextSmall);
    font-style: var(--fontStyleLeadtextSmall);
    text-transform: var(--textTransformLeadtextSmall);
}

.fontSizeTestimonial {
    font-family: var(--fontFamilyTestimonial);
    font-size: var(--fontSizeTestimonial);
    line-height: var(--lineHeightTestimonial);
    font-weight: var(--fontWeightTestimonial);
    letter-spacing: var(--letterSpacingTestimonial);
    font-style: var(--fontStyleTestimonial);
    text-transform: var(--textTransformTestimonial);
}

.fontSizeHero {
    font-family: var(--fontFamilyHero);
    font-size: var(--fontSizeHero);
    line-height: var(--lineHeightHero);
    font-weight: var(--fontWeightHero);
    letter-spacing: var(--letterSpacingHero);
    font-style: var(--fontStyleHero);
    text-transform: var(--textTransformHero);
}

h1,
.fontSizeH1 {
    font-family: var(--fontFamilyH1);
    font-size: var(--fontSizeH1);
    line-height: var(--lineHeightH1);
    font-weight: var(--fontWeightH1);
    letter-spacing: var(--letterSpacingH1);
    font-style: var(--fontStyleH1);
    text-transform: var(--textTransformH1);
}

h2,
.fontSizeH2 {
    font-family: var(--fontFamilyH2);
    font-size: var(--fontSizeH2);
    line-height: var(--lineHeightH2);
    font-weight: var(--fontWeightH2);
    letter-spacing: var(--letterSpacingH2);
    font-style: var(--fontStyleH2);
    text-transform: var(--textTransformH2);
}

h3,
.fontSizeH3 {
    font-family: var(--fontFamilyH3);
    font-size: var(--fontSizeH3);
    line-height: var(--lineHeightH3);
    font-weight: var(--fontWeightH3);
    letter-spacing: var(--letterSpacingH3);
    font-style: var(--fontStyleH3);
    text-transform: var(--textTransformH3);
}

h4,
.fontSizeH4 {
    font-family: var(--fontFamilyH4);
    font-size: var(--fontSizeH4);
    line-height: var(--lineHeightH4);
    font-weight: var(--fontWeightH4);
    letter-spacing: var(--letterSpacingH4);
    font-style: var(--fontStyleH4);
    text-transform: var(--textTransformH4);
}

h5,
.fontSizeH5 {
    font-family: var(--fontFamilyH5);
    font-size: var(--fontSizeH5);
    line-height: var(--lineHeightH5);
    font-weight: var(--fontWeightH5);
    letter-spacing: var(--letterSpacingH5);
    font-style: var(--fontStyleH5);
    text-transform: var(--textTransformH5);
}

h6,
.fontSizeH6 {
    font-family: var(--fontFamilyH6);
    font-size: var(--fontSizeH6);
    line-height: var(--lineHeightH6);
    font-weight: var(--fontWeightH6);
    letter-spacing: var(--letterSpacingH6);
    font-style: var(--fontStyleH6);
    text-transform: var(--textTransformH6);
}

.contentLink {
    float: left;
    /* width: auto; */
    clear: left;
    /* width: auto; */
    display: flex;
    justify-content: center;
    flex-direction: row;
    max-width: 100%;
    margin-top: 20px;
    color: var(--colorHighlight);
    background-color: transparent;
}

.contentLink:first-child {
    margin-top: 0;
}

.contentLink > i {
    display: inline-block;
    margin-right: 5px;
}

/*IMG EFFECT*/

.imgEffect {
    display: block;
}

@media screen and (max-width: 550px) {
    .imgEffect {
        padding: 0;
    }
}

/*.imgEffect::before,
.imgEffect::after {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    position: absolute;
    z-index: 1;
    opacity: 0;
    transition: var(--transition);
}

.imgEffect:hover::before {
    opacity: .5;
}*/

.imgEffect::before {
    background: var(--colorDark);
}

/*.imgEffect::after {
    font: var(--fa-font-light);
    display: inline-block;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;

    content: "\2b";

    font-size: 50px;
    line-height: 50px;
    text-align: center;
    width: 50px;
    height: 50px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    opacity: 0;
    color: white;
}*/

.imgEffect:hover::after {
    opacity: 1;
}

.imgEffect video,
.imgEffect img,
.imgEffect picture {
    display: block;
    line-height: 0;
}

.imgEffect video
.imgEffect img,
.imgEffect picture {
    transition: var(--transition);
}

.imgEffect video::before,
.imgEffect picture::before {
    content: '';
    position: absolute;
    top: 0;
    display: block;
    height: 100%;
    width: 100%;
    z-index: 1;
    opacity: 0;
    transition: var(--transition);
    background-color: var(--colorDark);
}

.imgEffect:hover video::before,
.imgEffect:hover picture::before {
    opacity: .4;
}

/* GRID */

.gridBlocks {
    display: grid;
    width: 100%;
    grid-column-gap: var(--layoutMargin);
    grid-row-gap: max(20px, var(--layoutMargin));
}

.textAlignCenter .gridBlocks {
    display: inline-grid;
    justify-items: center;
}

.gridBlocks-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gridBlocks-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gridBlocks-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gridBlocks-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.gridBlocks-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.gridBlocks.mosaic > div:nth-of-type(1) {
    grid-area: col-1;
}

.gridBlocks.mosaic > div:nth-of-type(2) {
    grid-area: col-2;
}

.gridBlocks.mosaic > div:nth-of-type(3) {
    grid-area: col-3;
}

.gridBlocks.mosaic > div:nth-of-type(4) {
    grid-area: col-4;
}

.gridBlocks.mosaic {
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: auto;
    grid-template-areas:
        "col-1 col-1 col-2"
        "col-3 col-4 col-4";
}

.gridBlocks.mosaic.mirrored {
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: auto;
    grid-template-areas:
        "col-1 col-2 col-2"
        "col-3 col-3 col-4";
}

@media screen and (max-width: 1200px) {

    .gridBlocks-4,
    .gridBlocks-5,
    .gridBlocks-6 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media screen and (max-width: 1024px) {

    .gridBlocks-3,
    .gridBlocks-4,
    .gridBlocks-5,
    .gridBlocks-6 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 768px) {
    .gridBlocks.mosaic {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        grid-template-areas:
            "col-1 col-2"
            "col-3 col-4";
    }

    .gridBlocks.mosaic.mirrored {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        grid-template-areas:
            "col-1 col-2"
            "col-3 col-4";
    }
}

@media screen and (max-width: 600px) {

    .gridBlocks-2,
    .gridBlocks-3,
    .gridBlocks-4,
    .gridBlocks-5,
    .gridBlocks-6 {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .gridBlocks.mosaic,
    .gridBlocks.mosaic.mirrored {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        grid-template-areas:
            "col-1"
            "col-2"
            "col-3"
            "col-4";
    }
}

/* FLEX */

.flexBlocks {
    display: flex;
    flex-wrap: wrap;
    margin-left: calc(var(--horizontalMargin) * -1);
    margin-bottom: calc(var(--horizontalMargin) * -1);
}

.flexBlocks > div {
    margin-left: var(--horizontalMargin);
    margin-bottom: var(--horizontalMargin);
}

:root {
    --numBoxes: 3;
}

.flexBlocks-6 {
    --numBoxes: 6;
}

.flexBlocks-5 {
    --numBoxes: 5;
}

.flexBlocks-4 {
    --numBoxes: 4;
}

.flexBlocks-3 {
    --numBoxes: 3;
}

.flexBlocks-2 {
    --numBoxes: 2;
}

@media screen and (max-width: 1200px) {

    .flexBlocks-6,
    .flexBlocks-5 {
        --numBoxes: 4;
    }
}

@media screen and (max-width: 1024px) {

    .flexBlocks-6,
    .flexBlocks-5,
    .flexBlocks-4 {
        --numBoxes: 3;
    }
}

@media screen and (max-width: 768px) {

    :root,
    .flexBlocks-6,
    .flexBlocks-5,
    .flexBlocks-4,
    .flexBlocks-3,
    .flexBlocks-2 {
        --numBoxes: 1;
    }
}

.flexBlocks > div {
    width: calc(((100% / var(--numBoxes)) - var(--horizontalMargin) - 1px));
}

/*VIDEO*/

.imageVideo {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
}

.projectSelectorModal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 100;
    background-color: rgba(0, 0, 0, 0.5);
}

.projectSelectorModal:not([data-modal-status="open"]){
    pointer-events: none;
}

.projectSelectorModal article {
    position: absolute;
    right: 0;
    top: 0;
    width: 40%;
    height: 100%;
    z-index: 101;
    background-color: var(--colorReset);
    display: flex;
    flex-direction: column;
    padding-top: var(--verticalPadding);
    padding-bottom: calc(var(--verticalPadding) / 2);
}

.projectSelectorModal article .wrapper {
    height: 100%;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.projectSelectorModal .modalTrigger {
    aspect-ratio: 1/1;
    height: 30px;
    position: absolute;
    top: calc(var(--verticalPadding) / 2);
    right: var(--horizontalMargin);
    cursor: pointer;
    transition: var(--transition);
}

.projectSelectorModal .modalTrigger:hover {
    color: var(--colorHighlight);
}

.projectSelectorModal .modalTrigger path {
    stroke-width: 2px;
}

.projectSelectorModal article .wrapper button {
    line-height: 1.25;
    text-decoration: unset;
    background: unset;
    border: unset;
    outline: unset;
    padding: 0;
    margin: 0;
    transition: var(--transition);
    text-align: left;
    color: currentColor;
}

.projectSelectorModal article .wrapper button:hover{
    color: var(--colorHighlight);
    cursor: pointer;
}

.projectSelectorModal article .wrapper button.selected{
    color: var(--colorHighlight);
}

.projectSelectorModal article .wrapper h2 {
    margin-bottom: .5em;
}

.rounded {
    border-radius: var(--borderRadius);
}

.rounded-top {
    border-top-left-radius: var(--borderRadius);
    border-top-right-radius: var(--borderRadius);
}

.rounded-right {
    border-top-right-radius: var(--borderRadius);
    border-bottom-right-radius: var(--borderRadius);
}

.rounded-top-right {
    border-top-right-radius: var(--borderRadius);
}

.rounded-bottom {
    border-bottom-right-radius: var(--borderRadius);
    border-bottom-left-radius: var(--borderRadius);
}

.rounded-left {
    border-bottom-left-radius: var(--borderRadius);
    border-top-left-radius: var(--borderRadius);
}

.rounded-0 {
    border-radius: unset;
}

/*THEMES*/

.reset {
    background: var(--colorReset);
    color: var(--colorDark);
}

.reset a {
    color: var(--colorHighlight);
}

.reset a:hover {
    color: var(--colorHighlightHover);
}

.reset table tr td,
.reset table tr th {
    border-color: var(--colorMuted);
}

.muted {
    background: var(--colorMuted);
    color: var(--colorDark);
}

.muted a {
    color: var(--colorHighlight);
}

.muted a:hover {
    color: var(--colorHighlightHover);
}

.muted table tr td,
.muted table tr th {
    border-color: var(--colorReset);
}

.highlight {
    background: var(--colorHighlight);
    color: var(--colorReset);
}

.highlight a {
    color: var(--colorDark);
}

.highlight a:hover {
    color: var(--colorDarkHover);
}

.highlight table tr td,
.highlight table tr th {
    border-color: var(--colorDark);
}

.dark {
    background: var(--colorDark);
    color: var(--colorReset);
}

.dark a {
    color: var(--colorHighlight);
}

.dark a:hover {
    color: var(--colorHighlightHover);
}

/*** BUTTON ALLGEMEIN ***/

.button,
a.button {
    font-family: var(--fontFamilyButton);
    font-size: var(--fontSizeButton);
    line-height: var(--lineHeightButton);
    font-weight: var(--fontWeightButton);
    letter-spacing: var(--letterSpacingButton);
    text-transform: var(--textTransformButton);

    display: inline-block;
    min-width: 250px;
    width: max-content;
    max-width: min(100%, 350px);

    height: max-content;
    padding: 1.2em 1.7em;

    text-align: center;
    color: var(--colorDark);
    border: 3px solid var(--colorDark);

    cursor: pointer;
    transition: var(--transition);
    background: transparent;

    border-radius: 34px;
}

@media screen and (max-width: 1200px) {
    .button,
    a.button {
        min-width: 220px;
    }
}

@media screen and (max-width: 768px) {
    .button,
    a.button {
        min-width: 200px;
    }
}

.button:first-child,
a.button:first-child {
    margin-top: 0;
}

.button > span,
a.button > span {
    color: inherit;
    transition: var(--transition);
    display: inline-block;
    z-index: 1;
    width: 100%;
}

.dark .button,
.dark a.button {
    border-color: var(--colorReset);
    color: var(--colorReset);
}

.dark .button:hover,
.dark a.button:hover,
.button:hover,
a.button:hover {
    border-color: var(--colorHighlight);
    background: var(--colorHighlight);
    color: var(--colorReset);
}

/*** Button HIGHLIGHT ***/

.button.highlight,
a.button.highlight {
    border-color: var(--colorHighlight);
    background: var(--colorHighlight);
}

.button.highlight > span,
a.button.highlight > span {
    color: var(--colorReset);
}

.dark .button.highlight:hover,
.dark a.button.highlight:hover {
    border-color: var(--colorReset);
    background: transparent;
}

.dark .button.highlight:hover span,
.dark a.button.highlight:hover span{
    color: var(--colorReset);
}

.button.highlight:hover,
a.button.highlight:hover {
    border-color: var(--colorDark);
    background: transparent;
}

.button.highlight:hover span,
a.button.highlight:hover span{
    color: var(--colorDark);
}

article[data-wrapper-small-align="left"] .wrapper.wrapperSmall:has( >  .wrapperInner) {
    width: var(--wrapperWidth);
}

article[data-wrapper-small-align="left"] .wrapper.wrapperSmall > .wrapperInner {
    max-width: 100%;
    width: var(--wrapperSmallWidth);
}

.blockTopline {
    margin-bottom: .5em;
    color: var(--colorHighlight);
}

.highlight .blockTopline {
    color: var(--colorDark);
}

.blockTitle:has(+ .blockText) {
    margin-bottom: .5rem;
}

.blockText > h2:not(:first-child),
.blockText > h3:not(:first-child),
.blockText > h4:not(:first-child),
.blockText > h5:not(:first-child),
.blockText > h6:not(:first-child) {
    margin-top: 1em;
}

.blockText i {
    font-style: italic;
}

.blockContent {
    margin-top: 2rem;
}

.blockLinks {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: var(--layoutMargin);
}

.textAlignCenter .blockLinks {
    justify-content: center;
}

.textAlignCenter .blockLinks .button:first-child,
.textAlignCenter .blockLinks .button {
    margin: 10px;
}

/*** blockBackground ***/

.blockBackground.backgroundLogo {
    z-index: 1;
    position: absolute;
    bottom: 0;
    right: 0;
    width: 90%;
    height: auto;
    max-width: 400px;
    overflow: hidden;
    color: var(--colorMuted);
}

.mainContent > .backgroundLogo {
    position: absolute;
    top: 0;
    height: auto;
    width: 100%;
    z-index: 1;
    pointer-events: none
}

.blockBackground.backgroundLogo svg{
    height: 100%;
    width: 100%;
    object-fit: contain;
    transform: translateY(15%);
}

.muted .blockBackground.backgroundLogo{
    color: var(--colorReset);
}

.dark .blockBackground.backgroundLogo{
    color: var(--colorReset);
    opacity: .1;
}

@media screen and (max-width: 1200px) {
    .blockBackground.backgroundLogo {
        max-width: 320px;
    }
}

@media screen and (max-width: 1024px) {
    .blockBackground.backgroundLogo {
        max-width: 280px;
    }
}

@media screen and (max-width: 768px) {
    .blockBackground.backgroundLogo {
        max-width: 240px;
    }
}

@media screen and (max-width: 600px) {
    .blockBackground.backgroundLogo {
        max-width: 200px;
    }
}

.alertSmall {
    position: fixed;
    right: 0;
    bottom: 0;
    padding: var(--layoutMargin);
    max-width: 100%;
    z-index: 25;
    animation-name: bounce-small;
    animation-timing-function: ease;
    animation-delay: .5s;
    animation-fill-mode: forwards;
    animation-duration: 1s;
    transform: translateX(100%);
}

.alertSmall .alert {
    display: flex;
    width: 1000px;
    max-width: 100%;
    box-shadow: 0 0 10px -2px rgba(var(--colorDarkRGB), 0.4);
    max-height: calc(100svh - (var(--horizontalMargin) * 2) - var(--headerHeight));
    overflow: auto;
    transition: var(--transition);
}

@keyframes bounce-small {
    0% {
        transform: translateX(100%);
        padding: var(--layoutMargin) 0;
    }

    60% {
        transform: translateX(-10px);
    }

    80% {
        transform: translateX(5px);
    }

    100% {
        transform: translateX(0);
        padding: var(--layoutMargin);
    }
}

.alertSmall .alert.highlight .alertLink i {
    transition: var(--transition);
}

.alertSmall .alert.highlight .alertClose,
.alertSmall .alert.highlight .alertLink,
.alertSmall .alert.highlight a {
    color: var(--colorReset);
    transition: var(--transition);
}

.alertSmall .alert.highlight .alertClose:hover,
.alertSmall .alert.highlight .alertLink:hover,
.alertSmall .alert.highlight a:hover {
    color: var(--colorDark);
}

.alertSmall .alert.dark .alertClose,
.alertSmall .alert.dark .alertLink,
.alertSmall .alert.dark a {
    color: var(--colorReset);
    transition: var(--transition);
}

.alertSmall .alert.dark .alertClose:hover,
.alertSmall .alert.dark .alertLink:hover,
.alertSmall .alert.dark a:hover {
    color: var(--colorHighlight);
}

.alertOverlay .alertOverlayWrapper {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: auto;
}

.alertSmall .alertLink {
    display: block;
    margin-top: 2em;
}

.alertSmall .alertImage {
    width: 300px;
    min-height: 300px;
    overflow: hidden;
    flex-shrink: 0;
}

.alertSmall .alertImage picture,
.alertSmall .alertImage img,
.alertSmall .alertImage > * {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.alertSmall .alertContent {
    display: flex;
    align-items: center;
    padding: 1rem var(--layoutMargin);
}

/**/

.alertSmall .alertClose {
    position: absolute;
    top: 0;
    right: 0;
    padding: 10px 15px;
    cursor: pointer;
    z-index: 2;
    color: var(--colorDark);
    transition: var(--transition);
}

.alertSmall .alertClose:hover {
    color: var(--colorHighlight);
}

.alertSmall .alertClose svg {
    width: 1rem;
    height: 1rem;
}

@media only screen and (max-width: 768px) {
    .alertSmall .alert {
        flex-direction: column;
        width: 350px;
    }

    .alertSmall .alertImage {
        width: 100%;
        min-height: unset;
        aspect-ratio: 16/9;
        pointer-events: none;
    }

    .alertSmall .alertContent {
        padding: 2rem 1.5rem;
    }

    .alertSmall .alertClose {
        background: var(--colorReset);
        color: var(--colorDark);
        height: 35px;
        width: 35px;
        font-size: 28px;
        border-radius: 50%;
        padding: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        top: 10px;
        right: 10px;
        transition: var(--transition);
    }
}

@media only screen and (max-width: 500px) {
    .alertSmall .alertContent {
        padding: 1rem;
    }

    .alertSmall .alertClose {
        padding: 10px 15px;
    }
}

.alertMedium {
    position: fixed;
    right: 0;
    bottom: 0;
    padding: 0 var(--horizontalMargin);
    max-width: 100%;
    z-index: 25;
}

.alertMedium .alert {
    display: flex;
    flex-direction: column;
    width: 600px;
    max-width: 100%;
    box-shadow: 0 0 10px -2px rgba(var(--colorDarkRGB), 0.4);
    max-height: calc(100svh - (var(--horizontalMargin) * 2) - var(--headerHeight));
    overflow: auto;
    transition: var(--transition);
    transform: translateY(100%);
    animation-name: bounce-medium;
    animation-timing-function: ease;
    animation-delay: .5s;
    animation-fill-mode: forwards;
    animation-duration: 1s;
}

@keyframes bounce-medium {
    0% {
        transform: translateY(100%);
    }

    60% {
        transform: translateY(-10px);
    }

    80% {
        transform: translateY(5px);
    }

    100% {
        transform: translateY(0);
    }
}

.alertMedium .alert.highlight .alertLink i {
    transition: var(--transition);
}

.alertMedium .alert.highlight .alertClose,
.alertMedium .alert.highlight .alertLink,
.alertMedium .alert.highlight a {
    color: var(--colorReset);
    transition: var(--transition);
}

.alertMedium .alert.highlight .alertClose:hover,
.alertMedium .alert.highlight .alertLink:hover,
.alertMedium .alert.highlight a:hover {
    color: var(--colorDark);
}

.alertMedium .alert.dark .alertClose,
.alertMedium .alert.dark .alertLink,
.alertMedium .alert.dark a {
    color: var(--colorReset);
    transition: var(--transition);
}

.alertMedium .alert.dark .alertClose:hover,
.alertMedium .alert.dark .alertLink:hover,
.alertMedium .alert.dark a:hover {
    color: var(--colorHighlight);
}

.alertOverlay .alertOverlayWrapper {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: auto;
}

.alertMedium .alertLink {
    display: block;
    margin-top: 2em;
}

.alertMedium .alertImage {
    overflow: hidden;
    flex-shrink: 0;
    width: 100%;
    min-height: unset;
    aspect-ratio: 16/9;
    pointer-events: none;
}

.alertMedium .alertImage img,
.alertMedium .alertImage > * {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.alertMedium .alertContent {
    display: flex;
    padding: 1.5rem 2rem;
    min-height: 300px;
}

/**/

.alertMedium .alertClose {
    position: absolute;
    top: 0;
    right: 0;
    padding: 10px 15px;
    cursor: pointer;
    z-index: 2;
    color: var(--colorDark);
    transition: var(--transition);
}

.alertMedium .alertClose svg {
    width: 1.25rem;
    height: 1.25rem;
}

.alertMedium .alertClose:hover {
    color: var(--colorHighlight);
}

@media only screen and (max-width: 1200px) {
    .alertMedium .alert {
        width: 500px;
    }
}

@media only screen and (max-width: 768px) {
    .alertMedium .alert {
        width: 350px;
    }

    .alertMedium .alertContent {
        padding: 2rem 1.5rem;
        min-height: unset;
    }

    .alertMedium .alertClose {
        font-size: 30px;
        padding: 15px 20px;
    }
}

@media only screen and (max-width: 500px) {
    .alertMedium .alertContent {
        padding: 1rem;
    }

    .alertMedium .alertClose {
        padding: 10px 15px;
    }
}

.alertLarge.alertOverlay article {
    max-height: calc(100svh - (var(--horizontalMargin) * 2));
    max-width: calc(100% - var(--horizontalMargin) * 2);
    width: max-content;
    /* overflow: auto; */
    transition: var(--transition);
    border-radius: 50%;
    aspect-ratio: 1/1;
}

.alertLarge .alertLink {
    display: block;
    width: max-content;
    margin: 2em auto 0 auto;
}

.alertLarge article.highlight .alertLink i {
    transition: var(--transition);
}

.alertLarge article.highlight .alertLink,
.alertLarge article.highlight a {
    color: var(--colorReset);
    transition: var(--transition);
}

.alertLarge article.highlight .alertLink:hover,
.alertLarge article.highlight a:hover {
    color: var(--colorDark);
}

.alertLarge article.dark .alertLink,
.alertLarge article.dark a {
    color: var(--colorReset);
    transition: var(--transition);
}

.alertLarge article.dark .alertLink:hover,
.alertLarge article.dark a:hover {
    color: var(--colorHighlight);
}

.alertLarge.alertOverlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    background: rgba(var(--colorDarkRGB), 0.85);
}

.alertLarge.alertOverlay .alertOverlayWrapper {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: auto;
}

.alertLarge .alert {
    overflow: hidden;
    padding: 0;
    height: 100%;
    border-radius: 50%;
    box-shadow: 0 0 10px -2px rgba(var(--colorDarkRGB), 0.4);
}

.alertLarge .alertWrapper {
    overflow: hidden;
    margin-top: var(--horizontalMargin);
    display: flex;
    text-align: left;
    height: 100%;
}

.alertLarge .alertWrapper.textAlignCenter {
    text-align: center;
}

.alertLarge .alertWrapper:first-child {
    margin-top: 0;
}

.alertLarge .alertContent {
    max-width: 100%;
    height: 600px;
    max-height: 100%;
    width: 600px;
    aspect-ratio: 1/1;
    overflow: auto;
    display: flex;
    justify-content: center;
    align-self: center;
    overflow: auto;
}

/*
.alertLarge .alert.noImage .alertContent {
    width: 750px;
    aspect-ratio: unset;
} */

.alertLarge .alertImage {
    line-height: 0;
}

/**/

.alertLarge .alertImage a:first-child {
    display: block;
    width: 100%;
    height: 100%;
    background: #000;
}

.alertLarge .alertImage > picture > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.alertLarge .alertImage > a > picture > img {
    display: block;
    transition: 0.2s ease-out;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.alertLarge .alertContent {
    padding: 3rem 0;
}

.alertLarge .alertContentWrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
    text-align: center;
    margin: auto;
    width: 65%;
    overflow: auto;

}

.alertLarge .alertTitle {
    margin-bottom: 0.3em;
}

.alertLarge .alertLinks {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}

.alertLarge .alertLinks > a {
    color: var(--colorDark);
}

.dark .alertLarge .alertLinks > a {
    color: var(--colorHighlight);
}

.alertLarge .alertWrapper.textAlignCenter .alertLinks {
    justify-content: center;
}

.alertLarge .alertLinks {
    margin-top: 1rem;
}

.alertLarge .alertText p:first-child {
    margin-top: 1em;
}

.alertLarge .alertText p:last-child {
    margin-bottom: 0;
}

.alertLarge .alertLargeIcon > svg {
    width: 80px;
    height: 80px;
    color: var(--colorGreen);
}

.alertLarge .alertClose {
    position: absolute;
    top: 0;
    right: 0;
    padding: 15px;
    cursor: pointer;
    z-index: 2;
    color: var(--colorHighlight);
    transition: var(--transition);
}

.alertLarge .alertClose svg {
    height: 30px;
    width: 30px;
}

.alertLarge .alertClose:hover {
    color: var(--colorReset);
}

.alertLarge .alertImageShadow {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    background: linear-gradient(45deg, rgba(0, 0, 0, 0.1) 80%, rgb(0, 0, 0) 100%);
}

@media only screen and (max-width: 1024px) {
    .alertLarge .alertContent {
        height: 550px;
        width: 550px;
    }

    .alertLarge .alertContentWrapper {
        width: 75%;
    }
}

@media only screen and (max-width: 600px) {
    .alertLarge .alertContent {
        height: 450px;
        width: 450px;
    }

    .alertLarge .alertContentWrapper {
        width: 80%;
    }
}

@media only screen and (max-width: 500px) {
    .alertLarge .alertContent {
        height: 400px;
        width: 400px;
    }
}

.mood,
.moodPusher {
    --moodHeight: 100vh;
}

.mood,
.moodPusher {
    --aspectRatio: 1/1;
}

.moodPusher {
    box-sizing: content-box;
    height: calc(var(--moodHeight)*2.5);
    width: 100%;
    z-index: 1;
    pointer-events: none;
}

/* .moodSmall.mood {
    --aspectRatio: 6/3;
}

@media screen and (max-width: 1024px) {

    .moodSmall.mood {
        --aspectRatio: 5/3;
    }
}

@media screen and (max-width: 768px) {

    .moodSmall.mood {
        --aspectRatio: 5/4;
    }
}*/

.mood {
    z-index: 0;
    background: var(--colorDark);
    height: var(--moodHeight);
}

.mood::after {
    content: '';
    background: linear-gradient(180deg, rgba(0, 0, 0, .8) 0, rgba(0, 0, 0, 0) 33%);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100%;
    pointer-events: none;
}

.mood:not(.moodSmall) {
    position: fixed;
    width: calc(100% - var(--bodyBorder) * 2);
    left: var(--bodyBorder);
}

/* @media screen and (orientation: portrait) and (max-width: 1024px) {

    .mood,
    .moodPusher {
        height: auto;
    }
}

@media screen and (orientation: portrait) and (max-width: 1024px) {
    .mood:not(.moodSmall),
    .moodPusher:not(.moodSmall) {
        height: 0;
        line-height: 0;
        padding-bottom: calc(75svh / (var(--aspectRatio)));
    }

    .mood > .splide {
        position: absolute;
    }
} */

.heroShadowBottomDark {
    background: linear-gradient(0, rgba(0, 0, 0, .7) 0, rgba(0, 0, 0, 0) 50%);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100%;
    pointer-events: none;
}

.heroWrapper {
    pointer-events: none;
    z-index: 2;
    position: absolute;
    bottom: 0;
    height: 100%;
    width: 100%;
}

.heroWrapper > .wrapper {
    height: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.heroTitleContainer {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    margin: 0;
    z-index: 1;
    text-align: center;
    pointer-events: auto;
    color: var(--colorReset);
}

.heroTitle {
    text-align: center;
    width: 100%;
}

.heroTitle p {
    margin: 0;
}

.heroLinks {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 2em;
    gap: 1rem;
}

/* .goToMain {
    pointer-events: auto;
    position: absolute;
    bottom: var(--layoutMargin);
    z-index: 1;
    border-bottom: 2px solid var(--colorReset);
    border-right: 2px solid var(--colorReset);
    transform: rotate(45deg) translateX(5px) translateY(-5px);
    cursor: pointer;
    transition: var(--transition);
    width: 30px;
    height: 30px;
}

.goToMain:hover {
    transform: rotate(45deg) translateX(15px) translateY(5px);
} */

/* @media only screen and (max-width: 1500px) {
    .heroTitleContainer {
        bottom: calc(var(--layoutMargin) * 1.5);
    }

    .goToMain {
        display: none;
    }
}

@media only screen and (max-width: 1200px) {
    .heroTitleContainer {
        bottom: calc(var(--horizontalMargin) * 1);
    }
}

@media only screen and (max-width: 768px) {

    .heroTitleContainer {
        bottom: calc(var(--layoutMargin) * 2);
    }

    .mood.moodSmall .heroTitleContainer {
        bottom: 40px;
    }
}

@media only screen and (max-width: 600px) {
    .heroLinks {
        display: none;
    }


    .heroTitleContainer {
        bottom: 3rem;
    }
} */

.moodLogo svg {
    height: 100%;
    width: 100%;
    display: block;
    line-height: 0;
}

.moodLogo {
    position: absolute;
    top: 100dvh;
    width: 100%;
    transform: translateY(-27%);
}

.backgroundLogo {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 750px;
    height: max-content;
    transform: translate(-50%, -50%);
}

@media screen and (max-width: 1500px) {
    .backgroundLogo {
        width: 550px;
    }
}

@media screen and (max-width: 1200px) {
    .backgroundLogo {
        width: 480px;
    }
}

@media screen and (max-width: 768px) {
    .backgroundLogo {
        width: 440px;
    }
}

@media screen and (max-width: 600px) {
    .backgroundLogo {
        width: 80%;
        top: 0;
    }
}

/* General */

#content .contentWrapper {
    display: flex;
    gap: var(--horizontalMargin);
}

@media screen and (max-width: 768px) {
    #content .contentWrapper {
        gap: 1rem;
        flex-direction: column;
    }
}

h1 {
    margin-bottom: 0.25em;
}

.contentText > h2,
.contentText > h3,
.contentText > h4,
.contentText > h5,
.contentText > h6 {
    margin-top: 30px;
}

.contentText i {
    font-style: italic;
}

/* Partial specific */

.contentLead {
    margin-bottom: calc(var(--horizontalMargin) / 2);
}

.contentLead i {
    font-style: italic;
}

.contentSidebar {
    width: max-content;
}

.contentLinks {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media screen and (max-width: 768px) {
    .contentSidebar {
        width: 100%;
    }

    .contentLinks {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: left;
        gap: 1rem;
    }

    .contentLinks .button {
        margin-top: 0;
    }
}

.footerContactRow {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--layoutMargin);
}

footer {
    width: 100%;
    height: 650px;
    z-index: 10;
}

footer > svg {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: max-content;
    line-height: 0;
    fill: var(--colorReset);
}

footer > * {
    z-index: 2;
}

#footerBackgroundTarget {
    display: none;
}

/********* Navigation general Layout  *********/

.mobileNavigationOverlay {
    z-index: 40;
    position: fixed;
    top: 0;
    left: var(--bodyBorder);
    width: calc(100% - var(--bodyBorder) * 2);
    height: 100%;
    background-color: rgba(var(--colorDarkRGB), .5);
    transition: var(--transition);
    opacity: 0;
    pointer-events: none;
}

.mobileNavigationOverlay[data-modal-status="open"] {
    opacity: 1;
    pointer-events: all;
}

.mobileNavigation {
    position: fixed;
    z-index: 40;
    padding-top: calc(var(--headerHeight) + 1rem);
    padding-bottom: calc(var(--headerHeight));
    width: calc(var(--mobileNavWidth) - var(--bodyBorder) * 2);
    height: 100%;
    top: 0;
    right: calc(var(--mobileNavWidth) * -1);
    transition: var(--transition);
    background-color: var(--colorReset);
    overflow: hidden;
}

.mobileNavigationOverlay[data-modal-status="open"] .mobileNavigation {
    right: var(--bodyBorder);
}

.mainMobileNavigation {
    padding-left: calc(var(--verticalPadding) / 2);
    overflow-y: auto;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.mainMobileNavigation .iconNavLnk i {
    font-size: 1.5em;
}

.mainMobileNavigation .separator,
.mainMobileNavigation .metaNavigationLink,
.mainMobileNavigation .iconNavLnk,
.mainMobileNavigation .languageNavigationLink {
    color: rgba(var(--colorMutedHoverRGB), 0.75);
}

/********* Meta / lang / Icon  *********/

.mainMobileNavigation .languageNavigation div.target {
    left: unset;
    right: 0;
}

.mainMobileNavigation .languageNavigation {
    margin: 0;
    margin-bottom: 1em;
}

.mainMobileNavigation .mobileLangNav {
    margin-right: 1.5em;
    display: flex;
    gap: 7px;
}

.mainMobileNavigation .languageNavigationLink.active,
.mainMobileNavigation .languageNavigationLink:hover,
.mainMobileNavigation .iconNavLnk:hover,
.mainMobileNavigation .metaNavigationLink:hover {
    color: rgba(var(--colorDarkRGB), 1);
}

.mainMobileNavigation .languageNavigationLink.is-active:hover,
.mainMobileNavigation .languageNavigationLink.is-active {
    cursor: default;
}

.mainMobileNavigation .mobileIconNav {
    width: 100%;
    text-align: right;
    margin-bottom: 1.5em;
    display: flex;
    gap: 1em;
    flex-direction: row-reverse;
    flex-wrap: wrap;
}

.mainMobileNavigation .mobileIconNav a.iconNavLnk {
    font-size: calc(var(--fontSizeNavigationMobile) * 1.5);
    line-height: calc(var(--fontSizeNavigationMobile) * 1.5);
}

.mainMobileNavigation .metaMobileNavigation {
    display: flex;
    gap: 1.5em;
}

.onlineBooking.onlineBookingNavigation {
    transform: translateX(0);
    top: calc(var(--headerHeight) - 5px);
    right: var(--horizontalMargin);
}

/********* Main Navigation *********/

.mainNavigationWrapper {
    /* padding-left: 1rem; */
    padding-top: var(--layoutMargin);
    padding-right: var(--verticalPadding);
    width: 100%;
}

.mainMobileNavigationNode {
    display: block;
    color: var(--colorDark);
    padding-block: calc(var(--horizontalMargin) / 4);
    padding-inline: 0 calc(var(--horizontalMargin) + var(--lineHeightNavigationMobile));
    overflow: hidden;
    padding: 0.4rem 2rem 0.4rem 0;
}

.mainNavigationWrapper:has(.subMobileNavigationTrigger) .mainMobileNavigationNode {
    padding-left: 2rem;
}

.mainMobileNavigationNode:hover,
.mainMobileNavigationNode.active {
    color: var(--colorHighlight);
}

/********* Sub Navigation *********/

.subMobileNavigation {
    display: none;
}

.subMobileNavigationNode {
    display: block;
    text-transform: none;
    padding: .25rem 0 .25rem 3rem;
    color: var(--colorDark);
}

.subMobileNavigationNode,
.mainMobileNavigationNode[data-has-subnavigation="true"] {
    display: block;
}

.subMobileNavigationNode:last-child {
    padding-bottom: 1em;
}

.subMobileNavigationNode:hover,
.subMobileNavigationNode.active {
    color: var(--colorHighlight);
}

/********* Sub Navigation Trigger *********/

.subMobileNavigationTrigger {
    display: block;
    position: absolute;
    text-align: center;
    height: var(--fontSizeNavigation);
    width: var(--fontSizeNavigation);
    line-height: calc(var(--horizontalMargin) + var(--lineHeightNavigation));
    font-size: calc(var(--fontSizeNavigation) / 1.3);
    left: 0;
    top: 0;
    transition: var(--transition);
    transform: translateY(45%);
}

.subMobileNavigationTrigger::before {
    display: block;
    transition: var(--transition);
}

.navigationTriggerUp::before {
    transform: rotate(180deg);
}

/********* Navigation Footer *********/

.mobileNavigationFooter {
    padding: calc(var(--horizontalMargin) / 2);
    position: relative;
    margin-top: calc(var(--verticalPadding) * 0.5);
    bottom: 0;
    width: 100%;
}

@media only screen and (max-width: 768px) {
    .mobileNavigationFooter {
        padding: var(--horizontalMargin) calc(var(--horizontalMargin) / 2);
        position: relative;
        bottom: 0;
        width: 100%;
    }
}

.mobileNavigationFooterAddress {
    position: relative;
}

.mobileNavigationFooterAddress > a {
    color: var(--colorMutedSalmon);
}

.mobileNavigationFooterAddress > a:hover {
    color: var(--colorReset);
}

.mobileNavigationFooterSocial {
    position: relative;
    padding-top: 20px;
}

.mobileNavigationFooterSocial > a {
    font-size: 40px;
    color: var(--colorMutedSalmon);
    padding: 0 5px;
}

.mobileNavigationFooterSocial > a:first-child {
    padding-left: 0;
}

.mobileNavigationFooterSocial > a:hover {
    color: var(--colorReset);
}

.mobileNavigationFooterSocial svg {
    width: 40px;
    height: 40px;
}

.mobileNavigation a.button,
.mobileNavigation .button,
.mobileNavigation .button > span {
    color: var(--colorMutedSalmon);
}

.mobileNavigation a.button:hover,
.mobileNavigation .button:hover,
.mobileNavigation .button:hover > span {
    color: var(--colorReset);
}

.mobileNavigation .button:hover::before {
    color: var(--colorReset);
}

@media only screen and (max-width: 600px) {
    .onlineBooking.onlineBookingNavigation {
        opacity: 0;
        transform: translateX(0);
        top: auto;
        right: auto;
        width: 100%;
        position: relative;
    }

    .mainNavigationWrapper {
        padding-left: 0;
        padding-right: 0;
        padding-top: var(--horizontalMargin);
    }

    .mainMobileNavigation {
        padding: calc(var(--headerHeight)*1.5) var(--horizontalMargin) 0 var(--horizontalMargin);
    }
}

/**** DISPLAY / HIDE (Mobile) Navi *****/

@media only screen and (max-width: 1350px) {

    .topHeader .subNav,
    .topHeader .mainNav {
        display: none;
    }
}

@media only screen and (min-width: 1351px) {

    .mobileNavigation,
    .mobileNavigationOverlay,
    .hamburger {
        display: none !important;
    }
}

/**** LAYOUT ****/

.headerExtension > *:first-child > *:first-child {
    padding-top: var(--verticalPadding);
}

.topHeader {
    position: fixed;
    left: var(--bodyBorder);
    top: 0;
    z-index: 30;
    width: calc(100% - var(--bodyBorder)*2);
    height: var(--headerHeight);
    transition: var(--transition);
}

.topHeader .wrapper {
    height: 100%;
}

/* .topHeader[data-scrolling="true"] {
    background-color: var(--colorReset);
    box-shadow: 0 0 10px #00000050;
} */

.navContainer {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
}

/**** LOGO ****/

.topHeader .logoLink {
    display: block;
    position: absolute;
    left: 0;
    top: var(--logoSpacing);
    z-index: 10;
    transition: var(--transition);
}

.topHeader .logoLink:hover {
    transform: scale(1.1);
}

/*
.topHeader .logoLink picture,
.topHeader .logoLink img {
    height: 100%;
} */

/* .topHeader[data-scrolling="true"] .logoLink {
    top: var(--logoSpacingSmall);
    height: var(--logoHeightSmall);
} */

.topHeader .logoLink {
    color: var(--colorDark);
}

/**** MAIN NAV ****/

.mainNav {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    width: 100%;
    text-align: right;
}

.mainNav a {
    display: inline-block;
    border-radius: 5em;
    margin-left: 1em;
    padding: .75em 1em;
    background-color: transparent;
    color: var(--colorDark);
    overflow: hidden;
}

.mainNav a::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    width: 100%;
    background-color: transparent;
    backdrop-filter: blur(8px);
    transition: var(--transition);
    z-index: -3;
}

.mainNav a:last-child {
    background-color: rgba(var(--colorResetRGB), .25);
}

.mainNav a::after {
    content: "";
    display: block;
    position: absolute;
    top: 82%;
    left: 1em;
    width: calc(100% - 2em);
    height: 2px;
    background-color: currentColor;
    z-index: -2;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.3s;
}

.mainNav a.active::after,
.mainNav a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

/**** HAMBURGER ****/

.hamburger {
    display: inline-block;
    height: var(--hamburgerHeight);
    box-sizing: content-box;
    z-index: 50;
    padding: 0;
    transition: var(--transition);
}

.hamburger .hamburger-inner,
.hamburger .hamburger-inner::after,
.hamburger .hamburger-inner::before {
    border-radius: 0;
    height: var(--hamburgerLineHeight);
    width: var(--hamburgerWidth);
    background: currentColor;
    transition: var(--transition);
    opacity: 1;
}

.hamburger .hamburger-inner::before {
    top: calc(var(--hamburgerHeight) * -0.5);
}

.hamburger .hamburger-inner:after {
    bottom: calc(var(--hamburgerHeight) * -0.5);
}

.hamburger .hamburger-box {
    width: var(--hamburgerWidth);
    height: var(--hamburgerHeight);
}

.topHeader .hamburger:not(.is-active) .hamburger-inner::after {
    width: 50%;
    right: 0;
}

.topHeader .hamburger {
    position: absolute;
    top: auto;
    right: 23px;
}

.topHeader .hamburger::before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    height: 47px;
    width: 85px;
    border-radius: 25px;
    background-color: rgba(var(--colorResetRGB), .25);
    backdrop-filter: blur(8px);
    transition: var(--transition);
    z-index: -3;
}

@media screen and (max-width: 600px) {
    .topHeader .hamburger::before {
        height: 40px;
        width: 75px;
    }
}

/*! SCROLLED DOWN SHOULD BE THE DEFAULT STATE ON ALL LINKS  */

/*
* WHEN HERO/MOOD EXISTS
*/

.topHeader[data-scrolling="false"] {
    background-color: transparent;
    height: var(--headerHeight);
    box-shadow: 0 0 10px #00000000;
}

.topHeader .logoLink svg {
    height: 100%;
    width: 100%;
}

.topHeader .logoLink {
    top: var(--logoSpacing);
    width: max-content;
    height: calc(var(--headerHeight) - var(--logoSpacing) * 2);
}

.topHeader[data-scrolling="false"]:not(.noMood) .logoLink {
    color: var(--colorReset);
}

.topHeader[data-scrolling="false"]:not(.noMood):has(.mobileNavigationOverlay[data-modal-status="closed"]) .hamburger,
.topHeader[data-scrolling="false"]:not(.noMood):has(.mobileNavigationOverlay[data-modal-status="closed"]) .metanav a:not(.active, :hover),
.topHeader[data-scrolling="false"]:not(.noMood):has(.mobileNavigationOverlay[data-modal-status="closed"]) .mainNav a:not(.active, :hover) {
    color: var(--colorReset);
}

.topHeader .mainNav a.active,
.topHeader .mainNav a:hover {
    color: var(--colorReset);
}

.topHeader[data-scrolling="true"] .mainNav a.active,
.topHeader[data-scrolling="true"] .mainNav a:hover {
    color: var(--colorDark);
}

.topHeader[data-scrolling="true"] .hamburger::before {
    background-color: rgba(var(--colorDarkRGB), .25);
}

.topHeader[data-scrolling="true"] .hamburger {
    color: var(--colorDark);
}

/*
.topHeader .mainNav a.active {
    color: var(--colorHighlight);
}

.topHeader .mainNav a.active:hover {
    color: var(--colorHighlightHover);
} */

.topHeader[data-scrolling="true"]:not(.noMood) .mainNav a:last-child {
    background-color: rgba(var(--colorDarkRGB), .25);
}

/*
* WHEN FIRST BLOCK OR CONTENT IS LIGHT
* AND NO HERO/MOOD EXISTS
*/

body:has(.navTextAlternate) .topHeader[data-scrolling="false"]:has(.mobileNavigationOverlay[data-modal-status="closed"]) .logoLink {
    color: var(--colorReset);
}

body:has(.navTextAlternate) .topHeader[data-scrolling="false"]:has(.mobileNavigationOverlay[data-modal-status="closed"]) .hamburger,
body:has(.navTextAlternate) .topHeader[data-scrolling="false"]:has(.mobileNavigationOverlay[data-modal-status="closed"]) .metanav a:not(.active, :hover),
body:has(.navTextAlternate) .topHeader[data-scrolling="false"]:has(.mobileNavigationOverlay[data-modal-status="closed"]) .mainNav a:not(.active, :hover) {
    color: var(--colorReset);
}

/*
* NAVIGATION BUTTON HOVER AND ACTIVE STATE
*/

body:has(.navTextAlternate) .topHeader .metanav a.button.metaNavigationLink.active,
body .topHeader .metanav a.button.metaNavigationLink.active,
body:has(.navTextAlternate) .topHeader .metanav a.button.metaNavigationLink:hover,
body .topHeader .metanav a.button.metaNavigationLink:hover {
    border-color: var(--colorHighlight);
    background-color: var(--colorHighlight);
    color: var(--colorReset);
}

body:has(.navTextAlternate) .topHeader .metanav a.button.metaNavigationLink.active:hover,
body .topHeader .metanav a.button.metaNavigationLink.active:hover {
    border-color: var(--colorHighlightHover);
    background-color: var(--colorHighlightHover);
    color: var(--colorReset);
}

.testimonials blockquote {
    font-style: normal;
}

.testimonials cite {
    display: block;
    color: var(--colorHighlight);
    margin-bottom: 1em;
}

.testimonials .testimonial {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: var(--layoutMargin);
}

.testimonials .testimonialText {
    height: max-content;
}

.testimonials .testimonialImage {
    height: max-content;
    width: max-content;
    line-height: 0;
    overflow: hidden;
    flex-shrink: 0;
}

.testimonials .testimonialImage picture,
.testimonials .testimonialImage img {
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.testimonials .testimonialImage picture {
    position: absolute;
    line-height: 0;
    display: block;
    z-index: 1;
    padding-bottom: 1px;
}

.testimonials .testimonialImage svg {
    width: 450px;
    z-index: 2;
}

.muted .testimonials .testimonialImage svg > *[fill="#fff"] {
    fill: var(--colorMuted);
}

.dark .testimonials .testimonialImage svg > *[fill="#fff"] {
    fill: var(--colorDark);
}

.highlight .testimonials .testimonialImage svg > *[fill="#fff"] {
    fill: var(--colorHighlight);
}

@media screen and (max-width: 1200px) {
    .testimonials .testimonialImage svg {
        width: 350px;
    }
}

@media screen and (max-width: 1024px) {
    .testimonials .testimonialImage svg {
        width: 300px;
    }
}

@media screen and (max-width: 768px) {
    .testimonials .testimonialImage svg {
        width: 250px;
    }

    .testimonials .testimonial {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
        gap: calc(var(--layoutMargin)*2);
    }
}

@media screen and (max-width: 600px) {
    .testimonials .testimonialImage svg {
        width: 225px;
    }
}

/* General */

.usps.gridBlocks{
    row-gap: calc(var(--layoutMargin) * 2);
}

.usp >  :not(:first-child) {
    margin-top: .5rem;
}

.usp .button {
    margin-top: 1.5rem;
}

.textAlignCenter .usp {
    text-align: center;
}

.textAlignCenter .usp .button,
.textAlignCenter .uspIcon {
    margin-left: auto;
    margin-right: auto;
}

/* Partial specific */

.uspIcon {
    margin-bottom: 1.5rem;
}

.uspIcon > svg {
    display: block;
    width: 80px;
    height: 80px;
    overflow: visible;
}

.dark .uspIcon > svg {
    color: var(--colorReset);
}

@media screen and (max-width: 1700px) {

    .usps.gridBlocks-6,
    .usps.gridBlocks-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media screen and (max-width: 1500px) {

    .usps.gridBlocks-5,
    .usps.gridBlocks-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media screen and (max-width: 1023px) {
    .uspIcon > svg {
        width: 70px;
        height: 70px;
    }

    .uspIcon {
        margin-bottom: 1rem;
    }

    .usp .button {
        margin-top: 1rem;
    }

    .usps.gridBlocks-6,
    .usps.gridBlocks-5,
    .usps.gridBlocks-4,
    .usps.gridBlocks-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 768px) {
    .uspIcon > svg {
        width: 60px;
        height: 60px;
    }

    .usps.gridBlocks {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 600px) {
    .usps.gridBlocks {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        grid-column-gap: calc(var(--horizontalMargin) * 3);
        grid-row-gap: calc(var(--horizontalMargin) * 3);
    }
}

/****** Layout ******/

:root {
    --bigPictureBoxWidth: 600px;
}

.bigPictures {
    overflow: hidden;
}

.bigPictures .bigPicture {
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
    display: block;
}

.bigPicture {
    width: 100%;
    height: 100%;
    max-height: 900px;
    overflow: hidden;
    position: relative;
}

article[data-block-type="bigPicture"] > div {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding-bottom: 0;
    padding-top: 0;
    overflow: visible;
}

/****** Background Image ******/

.bigPictureBackground > picture {
    display: block;
    width: 100%;
    height: 100%;
    transition: all .2s ease-out;
}

.bigPictureBackground img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    vertical-align: top;
    transform: scale(1.1);
}

/****** Content Text Box ******/

article[data-block-type="bigPicture"] > div .bigPictureBoxTopWrapper {
    position: absolute;
    top: 0;
    height: 100%;
    left: 0;
    right: 0;
}

.bigPictureBox {
    z-index: 6;
    position: absolute;
    right: 0;
    bottom: 0;
    /* transform: translateY(calc(var(--horizontalMargin) * -1.5)); */
    width: var(--bigPictureBoxWidth);
    height: auto;
    padding: calc(var(--layoutMargin) * 1);
    padding-right: calc(var(--layoutMargin) * 2);
}

.bigPictureBox .button {
    margin-top: var(--layoutMargin);
}

.bigPictureBox > div > div {
    margin-top: calc(var(--layoutMargin) / 2);
}

/****** responsive ******/

@media only screen and (max-width: 1400px) {
    .bigPicture {
        max-height: 750px;
    }
}

@media only screen and (max-width: 1200px) {
    .bigPicture {
        max-height: 700px;
    }
}

@media screen and (max-width: 900px) {
    :root {
        --bigPictureBoxWidth: 500px;
    }

    .bigPictureBox {
        position: relative;
        right: unset;
        bottom: unset;
        width: 100%;
        padding: calc(var(--horizontalMargin)*2) var(--horizontalMargin);
    }
}

@media screen and (max-width: 600px) {

    /* :root {
        --bigPictureBoxWidth: 100%;
    } */
    .bigPicture .bigPictureBackground {
        height: unset;
    }

    .bigPictures .bigPicture img {
        height: 350px;
    }
}

.accordionHeader {
    padding-top: 35px;
    padding-bottom: 35px;
    border-top: solid 1px;
    overflow: hidden;
    transition: var(--transition);
}

.accordionEntries {
    text-align: left;
}

.accordionEntry:hover .accordionHeader {
    color: var(--colorHighlight);
}

.accordionTrigger {
    height: 103px;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1;
    cursor: pointer;
}

div.accordionEntry.accordionHeightIcon .accordionTrigger {
    height: 89px;
}

.accordionTriggerUp {
    top: 0;
    transition: .5s;
}

.accordionTriggerDown {
    transform: rotateX(180deg) translateY(-20px);
    transition: .5s;
    top: -20px;
}

.accordionEntry.accordionHeightIcon .accordionHeader {
    padding-top: 30px;
    padding-bottom: 30px;
}

.accordionEntries .accordionEntry:last-child {
    border-bottom: solid 1px;
}

.accordionEntry .accordionSvgWrapper {
    position: absolute;
    height: 100%;
    width: 90px;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.accordionEntry .accordionSvgWrapper svg {
    height: 50px;
    width: 50px;
}

.accordionEntry h6 {
    padding-right: 50px;
}

.accordionEntry.accordionHeightIcon .accordionHeader h6 {
    margin-left: 90px;
}

.accordionTriggerIcon {
    width: 60px;
    color: var(--colorHighlight)
}

.accordionWrapper {
    padding-top: 1rem;
    padding-bottom: 95px;
    display: flex;
    flex-direction: row;
}

.accordionImgWrapper {
    max-width: 400px;
    width: 40%;
    aspect-ratio: 3/2;
}

.accordionImgWrapper img {
    display: block;
    object-fit: cover;
    width: 100%;
    height: 100%;
    aspect-ratio: 3/2;
}

.accordionWrapper.accordionWithImg .accordionText {
    width: calc(100% - 400px);
    padding-left: 60px;
}

@media only screen and (max-width: 768px) {
    .accordionWrapper {
        flex-direction: column;
        padding-bottom: calc(var(--horizontalMargin)*3);
    }

    .accordionWrapper.accordionWithImg div.accordionText {
        width: 100%;
        padding-left: 0;
        padding-top: 15px;
    }

    .accordionImgWrapper {
        max-width: initial;
        width: 100%;
    }

    .accordionImgWrapper img {
        width: 100%;
    }
}

@media only screen and (max-width: 1100px) {
    .accordionWrapper.accordionWithImg .accordionText {
        width: 60%;
    }
}

/**/

/**/

/**/

article.reset .accordionEntries {
    color: var(--colorDark);
}

article.reset .accordionHeader {
    border-color: var(--colorDark);
}

article.reset .accordionEntries .accordionEntry:last-child {
    border-color: var(--colorDark);
}

article.reset .accordionSvgWrapper svg {
    fill: var(--colorHighlight);
}

/**/

article.muted .accordionEntries {
    color: var(--colorDark);
}

article.muted .accordionHeader {
    border-color: var(--colorDark);
}

article.muted .accordionEntries .accordionEntry:last-child {
    border-color: var(--colorDark);
}

article.muted .accordionSvgWrapper svg {
    fill: var(--colorHighlight);
}

/**/

article.highlight .accordionEntries {
    color: var(--colorMuted);
}

article.highlight .accordionHeader {
    border-color: var(--colorMuted);
}

article.highlight .accordionEntries .accordionEntry:last-child {
    border-color: var(--colorMuted);
}

article.highlight .accordionSvgWrapper svg {
    fill: var(--colorMuted);
}

/**/

article.dark .accordionEntries {
    color: var(--colorMuted);
}

article.dark .accordionHeader {
    border-color: var(--colorMuted);
}

article.dark .accordionEntries .accordionEntry:last-child {
    border-color: var(--colorMuted);
}

article.dark .accordionSvgWrapper svg {
    fill: var(--colorHighlight);
}

.logoCollection { --aspectRatio: 9/16; }

.logoCollection .logoCollectionImage {
    background: var(--colorMuted);
}

.muted .logoCollection .logoCollectionImage {
    background: var(--colorReset);
}

.logoCollection .logoCollectionImage {
    width: 100%;
    height: 0;
    padding-bottom: calc(var(--aspectRatio) * 100%);
}

.logoCollection .logoCollectionImage picture > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.logoCollection .logoCollectionImage > * {
    position: absolute;
    top: 20%;
    left: 20%;
    width: 60%;
    height: 60%;
    object-fit: contain;
}

.logoCollection .logoCollectionImage > a > * {
    display: inline-block;
    width: 100%;
    height: 100%;
    transition: var(--transition);
}

.logoCollection .logoCollectionImage > a:hover > * {
    transform: scale(1.05);
}

@media screen and (max-width: 1200px) {
    .logoCollection .gridBlocks-6 .logoCollectionImage:first-child {
        grid-column-start: unset !important;
    }

    .logoCollection .gridBlocks-5 .logoCollectionImage:first-child {
        grid-column-start: unset !important;
    }
}

@media screen and (min-width: 1025px) and (max-width: 1200px) {
    .logoCollection .gridBlocks-6 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media screen and (min-width: 601px) and (max-width: 1200px) {
    .logoCollection .gridBlocks-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/**** Layout ****/

.logoSlider { --aspectRatio: 9/16; }

.logoSlider{
    display: flex;
    flex-direction: column;
    gap: var(--layoutMargin);
}

.logoSlider,
.logoSlider .splide,
.logoSlider .splide .splide__track {
    overflow: visible;
}

.logoSlider .logoSliderImage {
    background: var(--colorMuted);
}

.muted .logoSlider .logoSliderImage {
    background: var(--colorReset);
}

.logoSlider .logoSliderImage {
    width: 100%;
    height: 0;
    padding-bottom: calc(var(--aspectRatio) * 100%);
}

.logoSlider .logoSliderImage picture > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.logoSlider .logoSliderImage > * {
    position: absolute;
    top: 20%;
    left: 20%;
    width: 60%;
    height: 60%;
    object-fit: contain;
}

.logoSlider .logoSliderImage > a > * {
    display: inline-block;
    width: 100%;
    height: 100%;
    transition: var(--transition);
}

.logoSlider li.splide__slide {
    transition: var(--transition);
}

.logoSlider li.splide__slide:hover {
    transform: scale(1.05);
}

/*** Slider ***/

.logoSlider .splide__pagination {
    display: none;
}

.logoSlider .splide__arrows {
    display: none;
}

.imageGallery .imageGalleryImage > a {
    display: block;
    max-width: 100%;
    line-height: 0;
}

.imageGallery img {
    object-fit: cover;
    width: 100%;
}

.imageGallery:not(.gridBlocks-1) img { aspect-ratio: 4/3; }

/* aspect-ratio fallback */

@supports not (aspect-ratio: auto) {
    .imageGallery:not(.gridBlocks-1) .imageGalleryImage {
        padding-top: calc(100% / (4/3));
        height: 0;
        position: relative;
        overflow: hidden;
    }

    .imageGallery:not(.gridBlocks-1) .imageGalleryImage > a > picture {
        position: relative;
        width: 100%;
        height: 100%;
        display: block;
    }

    .imageGallery:not(.gridBlocks-1) img,
    .imageGallery:not(.gridBlocks-1) .imageGalleryImage > a {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
    }
}

.imageGallery .imageGalleryImage > a > picture {
    position: relative;
    width: 100%;
}

.imageGallery .imageGalleryButton {
    grid-column: auto / span 4;
    width: 100%;
    display: flex;
    justify-content: center;
}

.imageGallery .imageGalleryImage > a {
    display: block;
    max-width: 100%;
    line-height: 0;
}

.imageGallery img {
    object-fit: cover;
    width: 100%;
    aspect-ratio: 3/2;
}

.imageGallery .imageGalleryImage > a > picture {
    position: relative;
    width: 100%;
}

.imageGallery .imageGalleryButton {
    grid-column: auto / span 4;
    width: 100%;
    display: flex;
    justify-content: center;
}

.textAlignCenter .gridBlocks {
    justify-items: unset;
}

.imageGalleryMosaik .imageGalleryMosaikImage > a {
    display: block;
    max-width: 100%;
    line-height: 0;
}

.imageGalleryMosaik img {
    object-fit: cover;
    width: 100%;
    aspect-ratio: 3/2;
}

.imageGalleryMosaik .imageGalleryMosaikImage > a > picture {
    position: relative;
    width: 100%;
    height: 100%;
}

.imageGalleryMosaik .imageGalleryMosaikButton {
    grid-column: auto / span 4;
    width: 100%;
    display: flex;
    justify-content: center;
}

.imageGalleryMosaik.gridBlocks-3.mosaik-1 .imageGalleryMosaikImage:nth-child(4n+2),
.imageGalleryMosaik.gridBlocks-3.mosaik-1 .imageGalleryMosaikImage:nth-child(4n+3) {
    grid-row: span 2;
    grid-column: span 2;
}

.imageGalleryMosaik.gridBlocks-3.mosaik-1 .imageGalleryMosaikImage:nth-child(4n+1) {
    grid-row-start: 2;
}

.imageGalleryMosaik.gridBlocks-3.mosaik-1 .imageGalleryMosaikImage img,
.imageGalleryMosaik.gridBlocks-3.mosaik-1 .imageGalleryMosaikImage a {
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.imageGalleryMosaik.gridBlocks-3.mosaik-2 .imageGalleryMosaikImage:nth-child(6n+1),
.imageGalleryMosaik.gridBlocks-3.mosaik-2 .imageGalleryMosaikImage:nth-child(6n-1) {
    grid-row: span 2;
    grid-column: span 2;
}

.imageGalleryMosaik.gridBlocks-3.mosaik-2 .imageGalleryMosaikImage img,
.imageGalleryMosaik.gridBlocks-3.mosaik-2 .imageGalleryMosaikImage a {
    object-fit: cover;
    height: 100%;
    width: 100%;
}

@media screen and (max-width: 1024px) {
    .imageGalleryMosaik.gridBlocks-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media screen and (max-width: 768px) {
    .imageGalleryMosaik.gridBlocks-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .imageGalleryMosaik.gridBlocks-3.mosaik-2 .imageGalleryMosaikImage:nth-child(6n+1),
    .imageGalleryMosaik.gridBlocks-3.mosaik-2 .imageGalleryMosaikImage:nth-child(6n-1) {
        grid-row: unset;
        grid-column: unset;
    }

    .imageGalleryMosaik.gridBlocks-3.mosaik-1 .imageGalleryMosaikImage:nth-child(4n+2),
    .imageGalleryMosaik.gridBlocks-3.mosaik-1 .imageGalleryMosaikImage:nth-child(4n+3) {
        grid-row: unset;
        grid-column: unset;
    }

    .imageGalleryMosaik.gridBlocks-3.mosaik-1 .imageGalleryMosaikImage:nth-child(4n+1) {
        grid-row-start: unset;
    }
}

@media screen and (max-width: 550px) {
    .imageGalleryMosaik.gridBlocks-3 {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
}

.tilesShifted .galleryFancybox {
    display: none;
}

.tilesShifted .imageGalleryInner {
    display: flex;
    position: relative;
}

.tilesShifted .imageGalleryLeft {
    width: 50%;
    padding-bottom: 60%;
    position: relative;
    margin-bottom: calc(var(--verticalPadding) * 1);
    margin-top: calc(var(--verticalPadding) * 1);
}

.tilesShifted .imageGalleryRight {
    width: 50%;
    margin-left: var(--layoutMargin);
}

.tilesShifted .imageGalleryTop {
    display: flex;
    width: 100%;
    height: 40%;
    margin-bottom: var(--layoutMargin);
}

.tilesShifted .imageGalleryBottom {
    display: flex;
    width: calc(60% + var(--layoutMargin) / 2);
    padding-bottom: 95%;
}

@media screen and (max-width: 1400px) {
    .tilesShifted .imageGalleryTop {
        height: 35%;
    }

    .tilesShifted .imageGalleryLeft {
        padding-bottom: 60%;
        margin-bottom: calc(var(--verticalPadding) * 1);
        margin-top: calc(var(--verticalPadding) * 0.6);
    }
}

/*@media only screen and (max-width: 600px) {
    .tilesShifted {
        padding: 0;
    }

    .tilesShifted .imageGalleryInner {
        display: block;
    }

    .tilesShifted .imageGalleryLeft {
        width: 100%;
        padding-bottom: 110%;
        margin-right: 0;
        margin-bottom: var(--horizontalMargin);
    }

    .tilesShifted .imageGalleryRight {
        width: 100%;
        display: grid;
        margin: 0;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-gap: var(--layoutMargin);
    }

    .tilesShifted .imageGalleryTop {
        padding-bottom: 66%;
    }

    .tilesShifted .imageGalleryBottom {
        padding-bottom: 100%;
        width: 100%;
    }
}*/

.tilesShifted a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transition: .2s ease-in-out;
    display: flex;
    padding: 0;
}

.tilesShifted picture {
    width: 100%;
}

.tilesShifted picture > img {
    object-fit: cover;
    height: 100%;
    width: 100%;
}

article[data-block-type="imageGallery"]{
    overflow: hidden;
}

.imageGallerySlider .splide__pagination {
    display: none;
}

.imageGallerySlider .splide {
    margin: auto;
    width: 900px;
    max-width: calc(100% - var(--horizontalMargin) * 2);
}

article[data-block-type="imageGallery"]:has(.imageGallerySlider) .blockTitle,
article[data-block-type="imageGallery"]:has(.imageGallerySlider) .blockText,
article[data-block-type="imageGallery"]:has(.imageGallerySlider) .blockTopline {
    display: none;
}

article[data-block-type="imageGallery"]:has(.imageGallerySlider) .blockElements .blockTitle,
article[data-block-type="imageGallery"]:has(.imageGallerySlider) .blockElements .blockText,
article[data-block-type="imageGallery"]:has(.imageGallerySlider) .blockElements .blockTopline {
    display: block;
    text-align: left;
}

.imageGallerySlider .imageGalleryContent {
    display: flex;
    margin: auto;
    justify-content: space-between;
    gap: var(--layoutMargin);
    width: 100%;
    max-width: 900px;
}

.imageGallerySlider .imageGalleryContent .blockTitle {
    margin-bottom: 0;
}

.imageGallerySlider .imageGalleryContent .blockTitle + .blockText {
    margin-top: 2rem;
}

.imageGallerySlider .imageGalleryContent .splide__arrows {
    height: 100%;
    width: max-content;
    position: relative;
    top: unset;
    left: unset;
    right: unset;
    bottom: unset;
    display: flex;
    flex-direction: row;
    gap: 20px;
}

.imageGallerySlider .imageGalleryContent .splide__arrow {
    background-color: transparent;
    border-radius: unset;
    height: 60px;
    width: 60px;
    color: currentColor;
    transition: var(--transition);
    position: relative;
    top: unset;
    left: unset;
    right: unset;
    bottom: unset;
    transform: unset;
}

.imageGallerySlider .imageGalleryContent .splide__arrow:hover {
    color: var(--colorHighlight);
}

.imageGallerySlider .imageGalleryContent .splide__arrow svg {
    height: 100%;
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: contain;
}

.imageGallerySlider .imageGalleryContent .splide__arrow svg * {
    stroke-width: 2px;
}

.imageGallerySlider .splide__track,
.imageGallerySlider .splide {
    overflow: visible;
}

.imageGallerySlider .splide .splide__slide::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: block;
    height: 100%;
    width: 100%;
    background-color: rgba(0, 0, 0, 0);
    z-index: 1;
    transition: var(--transition);
}

.imageGallerySlider .splide .splide__slide:not(.is-visible)::before {
    background-color: rgba(0, 0, 0, 0.6);
}

.imageGallerySlider img{
    aspect-ratio: 4/3;
}

@media screen and (max-width: 1200px) {
    .imageGallerySlider .imageGalleryContent .splide__arrow {
        height: 50px;
        width: 50px;
    }
}

@media screen and (max-width: 1023px) {
    .imageGallerySlider .imageGalleryContent .splide__arrow {
        height: 40px;
        width: 40px;
    }
}

@media screen and (max-width: 768px) {
    .imageGallerySlider .imageGalleryContent {
        flex-direction: column-reverse;
        justify-content: center;
        align-items: center;
    }

    article[data-block-type="imageGallery"]:has(.imageGallerySlider) .blockElements .blockTitle,
    article[data-block-type="imageGallery"]:has(.imageGallerySlider) .blockElements .blockText,
    article[data-block-type="imageGallery"]:has(.imageGallerySlider) .blockElements .blockTopline {
        text-align: center;
    }
}

/********* Layout *********/

article[data-block-type="imageGallery"]:has(.imageGallerySliderWeird) {
    overflow: hidden;
}

article[data-block-type="imageGallery"]:has(.imageGallerySliderWeird) > div:not(.footerDecoration) {
    overflow: visible;
    width: 1800px;
}

.imageGallerySliderWeird a {
    font-weight: 500;
}

/********* Image Gallery Slider *********/

.imageGallerySliderWeird .splide--slide,
.imageGallerySliderWeird .splide--loop {
    padding: calc(var(--verticalPadding) / 4) 0;
}

.imageGallerySliderWeird .splide__list {
    align-items: center;
}

.imageGallerySliderWeird .splide__track {
    overflow: visible;
}

.imageGallerySliderWeird .splide__slide {
    opacity: .3 !important;
    overflow: visible;
    transition: var(--transition);
}

.imageGallerySliderWeird .splide__slide.is-visible {
    opacity: 1 !important;
}

.imageGallerySliderWeird .splide__arrows {
    width: auto;
    left: unset;
    display: flex;

    bottom: 0;
    right: 50%;
    top: 100%;
    transform: translateX(50%);
}

.imageGallerySliderWeird .splide__arrow {
    font-size: 1.5rem;
    background: unset;
    color: var(--colorDark);
    opacity: 1;
    text-align: center;
}

.imageGallerySliderWeird .splide__arrow svg {
    height: 100%;
    width: 100%;
}

.imageGallerySliderWeird .splide__arrow svg * {
    stroke-width: 2px;
}

.darkGray .imageGallerySliderWeird .splide__arrow,
.highlight .imageGallerySliderWeird .splide__arrow {
    color: var(--colorReset);
}

.imageGallerySliderWeird .splide__arrow:disabled {
    opacity: 0.3;
}

.imageGallerySliderWeird .splide__arrow--prev {
    left: 0;
    transform: unset;
    top: 0;
    position: relative;
    margin-right: 10px;
}

.imageGallerySliderWeird .splide__arrow--next {
    right: 0;
    transform: unset;
    top: 0;
    position: relative;
    margin-left: 10px;
}

.imageGallerySliderWeird .splide__pagination {
    display: none;
}

[dir="rtl"] .imageGallerySliderWeird .splide__arrows {
    left: 0;
    right: unset;
    flex-direction: row-reverse;
}

[dir="rtl"] .imageGallerySliderWeird .splide__arrow--prev {
    right: unset;
}

[dir="rtl"] .imageGallerySliderWeird .splide__arrow--next {
    left: unset;
}

/********* Image Gallery Category *********/

.imageGallerySliderWeird .splide__slide .imageGalleryCategory {
    position: absolute;
    top: 0;
    /*! width: 100%; */
    z-index: 2;
    transform: translateY(-50%) rotate(-5deg);
    padding: 0 calc(var(--horizontalMargin) * 0.75);
    color: var(--colorHighlight);
}

.imageGallerySliderWeird .splide__slide video {
    z-index: -1;
}

/********* Image Gallery Read more *********/

.imageGallerySliderWeird .imageGallerySliderReadMore {
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, calc(-50% + 40px));
    width: 100%;
    padding: 0 20px;
    text-align: center;
    z-index: 1;
    transition: var(--transition);
}

.imageGallerySliderWeird a:hover > .imageGallerySliderReadMore {
    opacity: 1;
    color: var(--colorHighlight);
}

/********* Image Gallery Image *********/

:root {
    --aspectRatioLandspace: 4/3;
    --aspectRatioPortrait: 3/4;
}

.imageGallerySliderWeird .imageGallerySliderWeirdImage {
    line-height: 0;
}

.imageGallerySliderWeird .splide__slide:nth-child(odd) .imageGallerySliderWeirdImage {
    aspect-ratio: var(--aspectRatioLandspace);
}

.imageGallerySliderWeird .splide__slide:nth-child(even) .imageGallerySliderWeirdImage {
    aspect-ratio: var(--aspectRatioPortrait);
}

/* .imageGallerySliderWeird .imageGallerySliderWeirdImage::before {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(var(--colorDarkRGB), 0.75) 0%, rgba(var(--colorDarkRGB), 0) 25%);
    transition: opacity var(--transition-duration) var(--transition-timing-function) var(--transition-delay);
    z-index: 1;
} */

.imageGallerySliderWeird .imageGallerySliderWeirdImage.noGradient::before {
    display: none;
}

.imageGallerySliderWeirdImage a:not(.imageGallerySliderGalleryIcon) {
    height: 100%;
    width: 100%;
}

.imageGallerySliderWeirdImage picture > img,
.imageGallerySliderWeirdImage video {
    display: block;
    transition: 0.2s ease-out;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.imageGallerySliderGalleryIcon {
    display: block;
    position: absolute;
    width: 50px;
    height: 50px;
    line-height: 50px;
    font-size: 25px;
    z-index: 101;
    text-align: center;
    color: var(--colorReset);
    top: 0;
    right: 0;
}

.imageGallerySliderGalleryIcon i {
    color: var(--colorReset);
    z-index: 3;
    text-align: center;
    transition: var(--transition);
}

.imageGallerySliderGalleryIcon:hover i {
    color: var(--colorHighlightHover);
}

.multiImageGradiant {
    height: 100%;
    width: 100%;
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 2;
    background-image: linear-gradient(-145deg, rgba(var(--colorDarkRGB), 0.8) 0%, rgba(var(--colorDarkRGB), 0.02) 30%, rgba(var(--colorDarkRGB), 0) 50%);
    pointer-events: none;
}

/********* Image Gallery Content *********/

.imageGallerySliderContent {
    padding-top: 1rem;
}

.imageGallerySliderWeird .imageGalleryContent {
    padding: var(--horizontalMargin) calc(var(--horizontalMargin) / 2);
}

.imageGallerySliderTitle {
    /*! margin-bottom: calc(var(--horizontalMargin) / 2); */
    transition: var(--transition);
}

.imageGallerySliderLinks {
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
    margin-top: 1rem;
}

.imageGallery.textAlignCenter .imageGalleryLinks {
    justify-content: center;
}

.imageGallerySliderText *:last-child {
    margin-bottom: 0;
}

.imageGallerySliderWeird .splide__slide:nth-child(odd) {
    width: calc((100% + var(--horizontalMargin))/4 - var(--horizontalMargin) + 40px) !important;
}

.imageGallerySliderWeird .splide__slide:nth-child(even) {
    width: calc((100% + var(--horizontalMargin))/4 - var(--horizontalMargin) - 40px) !important;
}

/********* Color Variants *********/

.highlight .imageGallerySliderTitle.hoverActive {
    color: var(--colorDark);
}

/********* Responsive *********/

@media only screen and (max-width: 1500px) {
    .imageGallerySliderWeird .splide__slide:nth-child(odd) {
        width: calc((100% + var(--horizontalMargin))/4 - var(--horizontalMargin) + 30px) !important;
    }

    .imageGallerySliderWeird .splide__slide:nth-child(even) {
        width: calc((100% + var(--horizontalMargin))/4 - var(--horizontalMargin) - 30px) !important;
    }
}

@media only screen and (max-width: 1024px) {
    article[data-block-type="imageGallery-imageGallerySlider"] .blockText {
        width: 100%;
    }

    .imageGallerySliderWeird.blockContent {
        margin-top: calc(var(--horizontalMargin) * 1.5);
    }

    .imageGallerySliderWeird .splide__arrow--prev {
        margin-right: 10px;
    }

    .imageGallerySliderWeird .splide__arrow--next {
        margin-left: 10px;
    }

    /*
    .imageGallerySliderWeird .splide__slide0 {
        width: 230px !important;
    }

    .imageGallerySliderWeird .splide__slide1 {
        width: 170px !important;
    } */
    .imageGallerySliderWeird .splide__slide:nth-child(odd) {
        width: calc((100% + var(--horizontalMargin))/4 - var(--horizontalMargin) + 30px) !important;
    }

    .imageGallerySliderWeird .splide__slide:nth-child(even) {
        width: calc((100% + var(--horizontalMargin))/4 - var(--horizontalMargin) - 30px) !important;
    }
}

@media only screen and (max-width: 768px) {
    .imageGallerySliderWeird.blockContent {
        margin-top: calc(var(--horizontalMargin) * 2.5);
    }

    .imageGallerySliderWeird .splide__arrow {
        font-size: 20px;
    }

    .imageGallerySliderWeird .splide__arrow--prev {
        margin-right: calc(var(--horizontalMargin) / 4);
    }

    .imageGallerySliderWeird .splide__arrow--next {
        margin-left: calc(var(--horizontalMargin) / 4);
    }

    .imageGallerySliderWeird .splide__slide:nth-child(odd) {
        width: 230px !important;
    }

    .imageGallerySliderWeird .splide__slide:nth-child(even) {
        width: 170px !important;
    }
}

@media only screen and (max-width: 500px) {
    .imageGallerySliderWeird .splide {
        margin-bottom: calc(var(--horizontalMargin) + 40px);
    }
}

@media only screen and (max-width: 375px) {

    .imageGallerySliderWeird .splide__slide0 {
        width: 220px !important;
    }

    .imageGallerySliderWeird .splide__slide1 {
        width: 165px !important;
    }

    .imageGallerySliderWeird .splide__arrow--prev {
        margin-right: calc(var(--horizontalMargin) / 2);
    }

    .imageGallerySliderWeird .splide__arrow--next {
        margin-left: calc(var(--horizontalMargin) / 2);
    }
}

.teaserGrid {
    grid-row-gap: calc(var(--layoutMargin)*2);
}

.teaserGrid a {
    height: max-content;
    text-decoration: none;
    color: var(--colorDark);
}

.teaserGrid a:hover {
    color: unset;
    /* transform: scale(1.05); */
}

.teaserGrid a *{
    transition: var(--transition);
}

/* .teaserGrid a:hover .fontSizeButton {
    opacity: 1;
} */

.teaserGrid a:hover h3 {
    color: var(--colorHighlight);
}

.teaserGrid article {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: max-content;
}

.teaserGrid video,
.teaserGrid picture,
.teaserGrid img {
    display: block;
    line-height: 0;
    aspect-ratio: 1/1;
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.teaserGrid video::before,
.teaserGrid picture::before {
    content: unset;
}

.teaserGrid a video::before,
.teaserGrid a picture::before {
    content: '';
}

.teaserGrid .teaserLinks .fontSizeButton {
    margin-top: 1rem;
    /* opacity: 0; */
    color: var(--colorHighlight);
}

@media screen and (max-width: 768px) {
    .teaserGrid {
        grid-row-gap: calc(var(--layoutMargin)*3);
    }
}

@media screen and (max-width: 600px) {
    .teaserGrid {
        grid-row-gap: calc(var(--layoutMargin)*6);
    }
}

.teaserGrid.teaserOverlap video,
.teaserGrid.teaserOverlap picture,
.teaserGrid.teaserOverlap img {
    aspect-ratio: 4/3;
}

@media screen and (min-width: 600px) {
    .teaserGrid.teaserOverlap {
        grid-row-gap: 0;
        grid-auto-rows: 1fr;
    }

    .teaserGrid.teaserOverlap > * {
        grid-row: span 10 / auto;
        /* margin-bottom: var(--verticalPadding); */
    }

    .teaserGrid.teaserOverlap > *:nth-child(4n+1) {
        grid-column: 1;
    }

    .teaserGrid.teaserOverlap > *:nth-child(4n+3) {
        grid-column: 2;
    }

    /* .teaserGrid.teaserOverlap > *:nth-child(2){
        grid-row: span 10 / 17;
        grid-column: 2;
    } */

    .teaserGrid.teaserOverlap > *.overlapSpace {
        grid-row: span 4 / auto;
        grid-column: unset;
        height: 100%;
    }

    .teaserGrid.teaserOverlap > *.overlapSpace:nth-child(2) {
        grid-row: span 6 / auto;
    }
}

@media screen and (max-width: 600px) {
    .teaserGrid.teaserOverlap > *.overlapSpace {
        display: none;
    }
}

/********* Layout *********/

.teasersLeftRight .teaserLeftRightImg { --aspectRatio: 6/4; }

.teasersLeftRight .gridBlocks {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.teasersLeftRight .gridBlocks > div:first-of-type {
    order: 1;
    grid-column-end: span 4;
}

.teasersLeftRight .gridBlocks > div:last-of-type {
    order: 2;
    grid-column-end: span 2;
}

.teasersLeftRight:not(.reverse) .gridBlocks:nth-child(even) > div:last-of-type {
    order: -1;
}

.teasersLeftRight.reverse .gridBlocks:nth-child(odd) > div:last-of-type {
    order: -1;
}

.teasersLeftRight .gridBlocks:not(:first-of-type) {
    margin-top: var(--verticalPadding);
}

/********* Layout 100% width *********/

article[data-block-type="teasers"] > .noWrapper .teasersLeftRight .teaserLeftRight {
    width: calc(var(--wrapperBigWidth) + (100% - var(--wrapperBigWidth)) / 2);
    max-width: calc(100% - var(--horizontalMargin));
    margin-left: 0;
    margin-right: auto;

    grid-template-areas: "col-1 col-1 col-1 col-1 col-2 col-2";
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

article[data-block-type="teasers"] > .noWrapper .teasersLeftRight .teaserLeftRightImg {
    grid-area: col-1;
    order: unset;
}

article[data-block-type="teasers"] > .noWrapper .teasersLeftRight .teaserLeftRightContent {
    grid-area: col-2;
    order: unset;
}

article[data-block-type="teasers"] > .noWrapper .teasersLeftRight.reverse .teaserLeftRight:nth-child(odd),
article[data-block-type="teasers"] > .noWrapper .teasersLeftRight:not(.reverse) .teaserLeftRight:nth-child(even) {
    grid-template-areas: "col-2 col-2 col-1 col-1 col-1 col-1";
    margin-left: auto;
    margin-right: 0;
}

@media only screen and (max-width: 1024px) {
    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight .teaserLeftRight {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        grid-template-areas: "col-1 col-1 col-1 col-2 col-2";
    }

    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight.reverse .teaserLeftRight:nth-child(odd),
    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight:not(.reverse) .teaserLeftRight:nth-child(even) {
        grid-template-areas: "col-2 col-2 col-1 col-1 col-1";
    }
}

@media only screen and (max-width: 768px) {
    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight .teaserLeftRight {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-template-areas:
            "col-2 col-2 col-2 col-2"
            "col-1 col-1 col-1 none";
    }

    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight .teaserLeftRightContent {
        margin-left: var(--horizontalMargin);
        margin-right: 0;
    }

    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight.reverse .teaserLeftRight:nth-child(odd) .teaserLeftRightContent,
    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight:not(.reverse) .teaserLeftRight:nth-child(even) .teaserLeftRightContent {
        margin-right: var(--horizontalMargin);
        margin-left: 0;
    }

    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight.reverse .teaserLeftRight:nth-child(odd),
    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight:not(.reverse) .teaserLeftRight:nth-child(even) {
        grid-template-areas:
            "col-2 col-2 col-2 col-2"
            "none col-1 col-1 col-1";
    }
}

@media only screen and (max-width: 550px) {
    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight .teaserLeftRight {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-template-areas:
            "col-2 col-2 col-2 col-2"
            "col-1 col-1 col-1 col-1";
    }

    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight.reverse .teaserLeftRight:nth-child(odd),
    article[data-block-type="teasers"] > .noWrapper .teasersLeftRight:not(.reverse) .teaserLeftRight:nth-child(even) {
        grid-template-areas:
            "col-2 col-2 col-2 col-2"
            "col-1 col-1 col-1 col-1";
    }
}

/********* Teaser Image *********/

.teasersLeftRight .teaserLeftRightImg a:not(.button) {
    display: block;
    width: 100%;
    height: 100%;
    transition: var(--transition);
}

.teasersLeftRight .teaserLeftRight picture {
    width: 100%;
    height: 100%;
}

.teasersLeftRight .teaserLeftRight img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: var(--transition);
}

.teasersLeftRight .teaserLeftRightImg {
    aspect-ratio: var(--aspectRatio);
}

/* aspect-ratio fallback */

@supports not (aspect-ratio: auto) {
    .teasersLeftRight .teaserLeftRightImg {
        height: 0;
        padding-top: calc(100% / (var(--aspectRatio)));
    }

    .teasersLeftRight .teaserLeftRightImg > * {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
    }
}

/********* Teaser Text / Content *********/

.teasersLeftRight .teaserLeftRightContent h3 {
    margin-top: var(--horizontalMargin);
}

.teasersLeftRight .teaserLeftRightContent .teaserContentWrapper .teaserLeftRightText {
    margin-bottom: 0;
    margin-top: .5em;
    height: max-content;
}

.teasersLeftRight .teaserLeftRightContent .button {
    margin-top: 1rem;
}

/********* splide *********/

.teasersLeftRight .splide__arrows {
    bottom: -40px;
    top: unset;
    right: 0;
    left: unset;
    transition: var(--transition);
    width: 200px;
}

.teasersLeftRight .splide__arrow {
    background: transparent;
    height: 3em;
    opacity: 1;
}

.teasersLeftRight .splide__arrow svg {
    height: 1.7em;
    width: 1.7em;
    opacity: 1;
    transition: var(--transition);
    fill: var(--colorDark);
}

.teasersLeftRight .splide__arrow:hover svg {
    fill: var(--colorHighlight);
}

.teasersLeftRight .splide__arrow--next {
    right: 0;
}

.teasersLeftRight .splide__arrow--prev {
    left: 0;
}

.teasersLeftRight .slideNumberCurrent {
    margin: auto;
    width: max-content;
}

.teasersLeftRight .splide__pagination {
    right: 0;
    flex-direction: revert;
    /*bottom: .5em;*/
    top: auto;
    width: 100%;
    justify-content: center;
}

/********* Responsive *********/

@media screen and (max-width: 1200px) {
    .teasersLeftRight .gridBlocks {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .teasersLeftRight .gridBlocks > div:first-of-type {
        grid-column-end: span 3;
    }

    .teasersLeftRight .gridBlocks > div:last-of-type {
        grid-column-end: span 2;
    }
}

@media screen and (max-width: 768px) {
    .teaserLeftRightSliderWrapper {
        margin-bottom: 2em;
    }

    .teasersLeftRight .gridBlocks {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .teasersLeftRight .gridBlocks > div:first-of-type {
        grid-column: auto;
    }

    .teasersLeftRight .gridBlocks > div:last-of-type {
        order: 2 !important;
        grid-column: auto;
    }

    .teasersLeftRight .teaserLeftRightContent h3 {
        margin-top: 0;
    }

    .teasersLeftRight .splide__arrows {
        display: block;
        position: relative;
        top: 0.4em;
        right: unset;
        bottom: unset;
        left: unset;
        margin-left: auto;
    }
}

/********* Teaser Overlap *********/

article[data-block-type="teaser-teaserLeftRightHigh"] .verticalPadding:has(.teaserOverlap) {
    padding-top: 0;
}

article[data-block-type="teaser-teaserLeftRightHigh"] .wrapper:has(.teaserOverlap) {
    overflow: visible;
}

article[data-block-type="teaser-teaserLeftRightHigh"] .teasersLeftRightHigh.teaserOverlap {
    margin-bottom: calc(var(--verticalPadding) * -0.5);
    transform: translateY(calc(var(--verticalPadding) * -0.5));
}

@media screen and (min-width: 851px) {
    article[data-block-type="teaser-teaserLeftRightHigh"] .teasersLeftRightHigh.teaserOverlap .teaserLeftRight:first-child .teaserLeftRightContent {
        padding-top: calc(var(--verticalPadding) * 0.5);
    }
}

/********* Layout *********/

.teasersLeftRightHigh .gridBlocks-2 {
    display: grid;
    grid-template-columns: 12fr 10fr;
    grid-gap: calc(var(--verticalPadding)*.75);
}

.teasersLeftRightHigh .gridBlocks-2:nth-of-type(even) {
    grid-template-columns: 10fr 12fr;
}

.teasersLeftRightHigh .gridBlocks-2:not(:first-of-type) {
    margin-top: calc(var(--horizontalMargin) * 1.5);
}

.teasersLeftRightHigh .gridBlocks-2:nth-of-type(even) > div:first-of-type {
    order: 2;
}

.teasersLeftRightHigh .gridBlocks-2:nth-of-type(even) > div:last-of-type {
    order: 1;
}

/*** teaserAlternate / Bild start rechts ***/

.teasersLeftRightHigh.teaserAlternate .gridBlocks-2 {
    grid-template-columns: 10fr 12fr;
}

.teasersLeftRightHigh.teaserAlternate .gridBlocks-2:nth-of-type(even) {
    grid-template-columns: 12fr 10fr;
}

.teasersLeftRightHigh.teaserAlternate .gridBlocks-2 > div:first-of-type {
    order: 2;
}

.teasersLeftRightHigh.teaserAlternate .gridBlocks-2 > div:last-of-type {
    order: 1;
}

.teasersLeftRightHigh.teaserAlternate .gridBlocks-2:nth-of-type(even) > div:first-of-type {
    order: 1;
}

.teasersLeftRightHigh.teaserAlternate .gridBlocks-2:nth-of-type(even) > div:last-of-type {
    order: 2;
}

/********* Teaser Image *********/

.teasersLeftRightHigh .teaserLeftRightImg a:not(.button) {
    display: block;
    width: 100%;
    height: 100%;
    transition: var(--transition);
}

.teasersLeftRightHigh .teaserLeftRight picture,
.teasersLeftRightHigh .teaserLeftRight img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: var(--transition);
}

.teasersLeftRightHigh .teaserLeftRightImg {
    aspect-ratio: 4/5;
    max-width: 100%;
}

/********* Teaser Text / Content *********/

.teasersLeftRightHigh .teaserLeftRightContent {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.teasersLeftRightHigh .teaserLeftRightContent .teaserContentWrapper {
    padding: calc(var(--verticalPadding)) 0;
}

.teasersLeftRightHigh .teaserLeftRightContent .teaserLinks {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.teasersLeftRightHigh .teaserLeftRightContent .teaserLinks .button {
    width: max-content;
}

.teasersLeftRightHigh .teaserLeftRightContent .teaserContentWrapper > div {
    margin-bottom: 0;
    margin-top: 1em;
    height: max-content;
}

/********* splide *********/

.teasersLeftRightHigh .splide__arrows {
    bottom: -40px;
    top: unset;
    right: 0;
    left: unset;
    transition: var(--transition);
    width: 200px;
}

.teasersLeftRightHigh .splide__arrow {
    background: transparent;
    height: 3em;
    opacity: 1;
}

.teasersLeftRightHigh .splide__arrow svg {
    height: 1.7em;
    width: 1.7em;
    opacity: 1;
    transition: var(--transition);
    fill: var(--colorDark);
}

.teasersLeftRightHigh .splide__arrow:hover svg {
    fill: var(--colorHighlight);
}

.teasersLeftRightHigh .splide__arrow--next {
    right: 0;
}

.teasersLeftRightHigh .splide__arrow--prev {
    left: 0;
}

.teasersLeftRightHigh .slideNumberCurrent {
    margin: auto;
    width: max-content;
}

.teasersLeftRightHigh .splide__pagination {
    /*left: 50%;*/
    right: 0;
    flex-direction: revert;
    bottom: .5em;
    top: auto;
    /*transform: translateX(-50%);*/
    width: 100%;
    justify-content: center;
}

/********* Responsive *********/

@media screen and (max-width: 1200px) {
    .teasersLeftRightHigh .gridBlocks-2 {
        grid-gap: var(--horizontalMargin);
    }
}

@media screen and (max-width: 1024px) {
    .teasersLeftRightHigh .gridBlocks-2 {
        grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    }

    .teasersLeftRightHigh .gridBlocks-2:nth-of-type(even) {
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    }

    .teasersLeftRightHigh.teaserAlternate .gridBlocks-2 {
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    }

    .teasersLeftRightHigh.teaserAlternate .gridBlocks-2:nth-of-type(even) {
        grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    }
}

@media screen and (max-width: 850px) {

    .teasersLeftRightHigh.teaserAlternate .gridBlocks-2,
    .teasersLeftRightHigh.teaserAlternate .gridBlocks-2:nth-of-type(even),
    .teasersLeftRightHigh .gridBlocks-2:nth-of-type(even) {
        grid-template-columns: 1fr;
    }

    .teasersLeftRightHigh .gridBlocks-2 {
        grid-template-columns: 1fr;
        margin: auto;
        width: 100%;
        max-width: 500px;
        gap: 2rem;
    }

    .teasersLeftRightHigh .teaserLeftRightImg {
        aspect-ratio: 1/1;
    }

    /* aspect-ratio fallback */
    @supports not (aspect-ratio: auto) {
        .teasersLeftRightHigh .teaserLeftRightImg {
            padding-top: calc(100% / (1/1));
        }
    }

    .teasersLeftRightHigh .gridBlocks-2:not(:first-of-type) {
        margin-top: calc(var(--verticalPadding) * .75);
    }

    .teasersLeftRightHigh .teaserLeftRightContent .teaserContentWrapper {
        padding: 0 var(--layoutMargin);
    }

    .teasersLeftRightHigh .teaserLeftRightContent h3 {
        margin-top: 0;
    }

    .teasersLeftRightHigh .gridBlocks-2:nth-of-type(even) > div:first-of-type {
        order: 1;
    }

    .teasersLeftRightHigh .gridBlocks-2:nth-of-type(even) > div:last-of-type {
        order: 2;
    }

    .teasersLeftRightHigh.teaserAlternate .gridBlocks-2 > div:first-of-type,
    .teasersLeftRightHigh.teaserAlternate .gridBlocks-2:nth-of-type(even) > div:first-of-type {
        order: 1;
    }

    .teasersLeftRightHigh.teaserAlternate .gridBlocks-2 > div:last-of-type,
    .teasersLeftRightHigh.teaserAlternate .gridBlocks-2:nth-of-type(even) > div:last-of-type {
        order: 2;
    }
}

/********* Block Layout **********/

article[data-block-type="teaser-teaserSlider"] {
    overflow: hidden;
}

article[data-block-type="teaser-teaserSlider"] > .wrapper {
    overflow: visible;
}

/********* Teaser Layout *********/

.teaserSlider {
    --aspectRatio: 1/1;
}

.teasersSlider {
    --shadowWidth: 15px;

    padding: calc(var(--shadowWidth) * 2) 0;
}

.teasersSlider .teaserSlide {
    color: unset;
    text-decoration: unset;
}

.teasersSlider .teaserSlide:hover {
    color: inherit !important;
}

.teasersSlider .teaserslide:hover > .teaserSlideContent {
    transform: scale(1);
    box-shadow: 0 5px var(--shadowWidth) 0 rgba(0, 0, 0, 0.5);
    color: var(--colorReset);
    background: var(--colorDark);
}

/********* Teaser Content *********/

.teasersSlider .teaserSlideContent {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: max(20px, var(--layoutMargin));
    height: 100%;
    transition: var(--transition);
    transform: scale(0.96);
}

.teasersSlider .teaserslideIcon {
    width: 150px;
    height: 150px;
    margin: max(calc(var(--layoutMargin) * -1), -20px) max(calc(var(--layoutMargin) * -1), -20px) calc(var(--layoutMargin) * 0.25) max(calc(var(--layoutMargin) * -1), -20px);
}

.teasersSlider .teaserslideIcon.teaserslideIconStatic {
    display: flex;
    justify-content: center;
    align-items: center;
}

.teasersSlider .teaserslideIcon.teaserslideIconStatic > svg {
    max-width: 70%;
    max-height: 70%;
}

.teasersSlider .teaserslideTitle {
    margin-bottom: 0.3em;
    transition: var(--transition);
}

.teasersSlider .teaserslideLead {
    font-weight: 700;
}

.teasersSlider .teaserSlideLinks {
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
    margin-top: calc(var(--layoutMargin) * 0.75);
}

.teasersSlider .teaserSlideLinks .button {
    opacity: 0;
}

.teasersSlider .teaserSlideLinks .button > span {
    color: var(--colorReset);
}

.teasersSlider .teaserSlideLinks .button > span:before {
    border-color: var(--colorReset);
}

.teasersSlider .teaserSlide:hover .teaserSlideLinks .button {
    opacity: 1;
}

.teasersSlider a * {
    text-decoration: none;
}

.teasersSlider .teaserslideText *:last-child {
    margin-bottom: 0;
}

.teasersSlider .teaserSlide:hover .teaserSlideLinks .button {
    opacity: 1;
}

/********* Slider *********/

.teasersSlider .splide__track {
    padding: 30px 0;
}

.teasersSlider .splide__slide.last-visible:not(.is-active):not(:last-child),
.teasersSlider .splide__slide:not(.is-visible),
.teasersSlider .splide__slide.first-visible:not(:first-child) {
    transition: opacity var(--transition-duration) var(--transition-timing-function) var(--transition-delay);
    opacity: 0.5;
}

.teasersSlider .splide__pagination {
    display: none;
}

.teasersSlider .splide__arrows {
    --arrowsOverflow: 80px;
    width: calc(100% - var(--arrowsOverflow));
    left: calc(var(--arrowsOverflow) / 2);
}

.teasersSlider .splide__arrow {
    --arrowSize: 80px;
    background: var(--colorDark);
    opacity: 1;
    width: var(--arrowSize);
    height: var(--arrowSize);
    transition: var(--transition);
}

.teasersSlider .splide__arrow:disabled {
    opacity: 0;
}

.teasersSlider .splide__arrow > svg {
    height: 50%;
    width: auto;
}

.teasersSlider .splide__arrow > svg path {
    fill: var(--colorReset);
}

/********* RESPONSIVE *********/

@media screen and (max-width: 1500px) {
    .teasersSlider .teaserslideIcon {
        width: 110px;
        height: 110px;
    }
}

@media screen and (max-width: 1200px) {
    .teasersSlider .splide__arrows {
        --arrowsOverflow: 60px;
    }

    .teasersSlider .splide__arrow {
        --arrowSize: 60px;
    }
}

@media screen and (max-width: 1000px) {
    .teasersSlider .splide__arrows {
        width: calc(100% + var(--arrowsOverflow));
        left: calc(var(--arrowsOverflow) / -2);
    }

    .teasersSlider .splide__slide {
        opacity: 1 !important;
    }
}

@media screen and (max-width: 600px) {
    .teasersSlider .splide__arrows {
        --arrowsOverflow: 30px;
    }

    .teasersSlider .splide__arrow {
        --arrowSize: 45px;
    }
}

.test { color: blue; }

.teamMembers.gridBlocks {
    grid-column-gap: calc(var(--horizontalMargin)*2);
    grid-row-gap: calc(var(--horizontalMargin)*1);
}

.teamMembersEntry .imgEffect {
    cursor: pointer;
}

.teamMembersEntry h3 {
    transition: var(--transition);
}

.teamMembersEntry img{
    aspect-ratio: 1/1;
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.teamMembersEntry .fontSizeOverlineSmall {
    color: var(--colorHighlight);
}

.teamMembersEntry .imgEffect:hover h3 {
    color: var(--colorHighlight);
}

@media only screen and (min-width: 1025px) {
    .teamMembers.gridBlocks .teamMembersEntry:nth-child(3n+2) {
        margin-top: calc(var(--verticalPadding)/2);
    }
}

@media only screen and (max-width: 1700px) {
    .teamMembers.gridBlocks {
        grid-column-gap: calc(var(--horizontalMargin)*1.5);
    }
}

@media only screen and (max-width: 1200px) {
    .teamMembers.gridBlocks {
        grid-column-gap: calc(var(--horizontalMargin)*1);
    }
}

@media only screen and (max-width: 1024px) and (min-width: 601px) {
    .teamMembers.gridBlocks .teamMembersEntry:nth-child(2n+2) {
        margin-top: calc(var(--verticalPadding)/2);
    }
}

@media only screen and (max-width: 600px) {
    .teamMembers.gridBlocks {
        grid-row-gap: calc(var(--horizontalMargin)*4);
    }
}

/**/

.teamMemberOverlay {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    z-index: 2;
}

.teamMemberOverlay:not([data-modal-status="open"]) {
    pointer-events: none;
}

.teamMemberOverlayWrapper {
    height: 100%;
    width: 100%;
    padding-top: var(--headerHeight);
    display: flex;
    align-items: center;
    background: var(--colorMuted);
    transition: .5s ease-out;
}

@media only screen and (max-width: 1024px) {
    .teamMemberOverlayContent.gridBlocks-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media only screen and (max-width: 768px) {
    .teamMemberOverlayWrapper {
        display: block;
        padding-top: calc(var(--headerHeight) + 75px);
        padding-bottom: 75px;
        overflow: auto;
    }

    .teamMemberOverlayContent.gridBlocks-2 {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
}

.teamMemberOverlay.hidden {
    display: none;
}

.teamMemberOverlayPosition {
    margin-top: 5px;
}

.teamMemberOverlayLnks {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

.teamMemberOverlayLnks a {
    margin-right: 20px;
    text-decoration: none;
    letter-spacing: 0.1em;
}

/* Set a before pseudo element to avoid problems with safari */

.teamMemberOverlayLnks a.mail::before {
    content: '\f0e0';
    font-family: "Font Awesome 6 Pro";
    margin-right: 4px;
}

.teamMemberOverlayLnks a.phone::before {
    content: '\f095';
    font-family: "Font Awesome 6 Pro";
    margin-right: 4px;
}

.teamMemberOverlayLnks a::after {
    bottom: 0px !important;
}

.teamMemberOverlayImage .splide__arrow,
.teamMemberOverlayImage .splide__pagination {
    display: none;
}

.teamMemberOverlayImage {
    width: 100%;
    height: 100%;
}

.teamMemberOverlayImage img {
    display: block;
    width: 100%;
    object-fit: cover;
}

.teamMemberOverlayImage {
    --aspectRatio: 1/1;
}

.teamMemberOverlayImage .splide__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: var(--transition);
}

.teamMemberOverlayImage .splide__slide {
    aspect-ratio: var(--aspectRatio);
}

/* aspect-ratio fallback */

@supports not (aspect-ratio: auto) {
    .teamMemberOverlayImage .splide__slide {
        height: 0;
        padding-top: calc(100% / (var(--aspectRatio)));
    }

    .teamMemberOverlayImage .splide__slide > * {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
    }
}

.teamMemberOverlayText {
    align-self: center;
}

.teamMemberOverlayContent .closeLink {
    display: block;
    position: absolute;
    width: 30px;
    height: 30px;
    top: 0;
    right: 0;
    transition: .2s ease-out;
    z-index: 2;
    cursor: pointer;
}

.teamMemberOverlayContent .closeLink path {
    stroke-width: 2px;
}

/*
 .teamMemberOverlayContent .closeLink:hover {
    transform: rotate(135deg);
}

.teamMemberOverlayContent .closeLink:before,
.teamMemberOverlayContent .closeLink:after {
    content: '';
    position: absolute;
    display: block;
    background: var(--colorReset);
}

.teamMemberOverlayContent .closeLink:before {
    width: 50%;
    height: 2px;
    left: 25%;
    top: 50%;
    transform: translateY(-50%);
}

.teamMemberOverlayContent .closeLink:after {
    width: 2px;
    height: 50%;
    left: 50%;
    top: 25%;
    transform: translateX(-50%);
} */

@media only screen and (max-width: 1200px) {
    .teamMemberOverlayContent .closeLink {
        width: 1.5rem;
        height: 1.5rem;
    }
}

@media only screen and (max-width: 768px) {
    .teamMemberOverlayContent .closeLink {
        position: fixed;
        top: 135px;
        right: 20px;

    }
}

@media only screen and (max-width: 550px) {
    .teamMemberOverlayContent {
        overflow-y: auto;
    }

    .teamMemberOverlayText {
        text-align: center;
    }

    .teamMemberOverlayLnks {
        justify-content: center;
    }
}

article[data-block-type="projects"] .wrapperInner > .blockText,
article[data-block-type="projects"] .wrapperInner > .blockTitle,
article[data-block-type="projects"] .wrapperInner > .blockTopline {
    display: none;
}

.projectOverview .overviewHead .overviewText {
    grid-column: span 2;
}

.projectOverview .overviewHead .overviewMenu {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
}

.projectOverview .overviewMenu .button {
    width: 250px;
    min-width: max-content;
    text-decoration: unset;
}

.projectOverview .overviewMenu .button > span {
    padding-right: 15px;
    padding-left: 15px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .75em;
    text-decoration: unset;
}

.projectOverview .overviewMenu .button p {
    margin: 0;
}

.projectOverview .overviewMenu .button svg {
    height: 1.5em;
}

.projectOverview .overviewMenu .button svg path {
    fill: currentColor;
}

.projectOverview .overviewMenu a.button.selected span:after,
.projectOverview .overviewMenu a.button.selected span:before{
    border: transparent;
    background-color: transparent;
}

.projectOverview .overviewMenu a.button.selected {
    border-color: var(--colorHighlight);
    background-color: var(--colorHighlight);
    color: var(--colorReset);
}

.projectOverview .overviewMenu a.button.selected:hover {
    background-color: var(--colorHighlightLight);
}

.projectOverview .overviewMenu a.button.selected svg.filter,
.projectOverview .overviewMenu a.button div{
    display: none;
}

.projectOverview .overviewMenu .button.selected div{
    display: inline;
}

.projectOverview .overviewMenu .button.selected svg{
    display: inherit;
}

.projectOverview .overviewMenu .button.selected svg,
.projectOverview .overviewMenu .button.selected form,
.projectOverview .overviewMenu .button.selected div,
.projectOverview .overviewMenu .button.selected button{
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    color: currentColor;
    height: 1.25rem;
    transition: var(--transition);
}

.projectOverview .overviewMenu a.button.selected button:hover{
    color: var(--colorDark);
    cursor: pointer;
}

.projectOverview form {
    display: flex;
    flex-direction: column;
}

.projectOverview button.button {
    /* padding-block: unset; */
    /* border: unset; */
    margin: auto;
    margin-top: calc(var(--verticalPadding)/2);
}

.teaserProjectWrapper {
    margin-top: calc(var(--verticalPadding) * .5);
    display: grid;
    /* grid-template-columns: repeat(2, minmax(0, 1fr)); */
    grid-auto-columns: minmax(0, 1fr);
    grid-auto-rows: auto;
    grid-template-areas:
        "h1 h1 h1 . w1 w1 w1 w1"
        "h1 h1 h1 . w1 w1 w1 w1"
        "h1 h1 h1 . w1 w1 w1 w1"
        "h1 h1 h1 . . h2 h2 h2"
        "w2 w2 w2 w2 . h2 h2 h2"
        "w2 w2 w2 w2 . h2 h2 h2"
        "w2 w2 w2 w2 . h2 h2 h2"
    ;
}

.teaserProjectWrapper > *:nth-child(1) {
    grid-area: h1;
    padding-top: var(--horizontalMargin);
}

.teaserProjectWrapper > *:nth-child(2) {
    grid-area: w1;
}

.teaserProjectWrapper > *:nth-child(3) {
    grid-area: w2;
    margin-top: auto;
}

.teaserProjectWrapper > *:nth-child(4) {
    grid-area: h2;
    margin-top: calc(var(--horizontalMargin) + 25%);
    margin-bottom: var(--horizontalMargin);
}

.teaserProjectWrapper > * img,
.teaserProjectWrapper > * picture {
    display: block;
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.teaserProjectWrapper > *:nth-child(1) video,
.teaserProjectWrapper > *:nth-child(1) picture,
.teaserProjectWrapper > *:nth-child(1) img,
.teaserProjectWrapper > *:nth-child(4) video,
.teaserProjectWrapper > *:nth-child(4) picture,
.teaserProjectWrapper > *:nth-child(4) img {
    aspect-ratio: 3/4;
}

.teaserProjectWrapper > *:nth-child(2) video,
.teaserProjectWrapper > *:nth-child(2) picture,
.teaserProjectWrapper > *:nth-child(2) img,
.teaserProjectWrapper > *:nth-child(3) video,
.teaserProjectWrapper > *:nth-child(3) picture,
.teaserProjectWrapper > *:nth-child(3) img {
    aspect-ratio: 4/3;
}

.teaserProject picture::after,
.teaserProject * {
    transition: var(--transition);
}

.teaserProject {
    height: max-content;
    text-decoration: none;
}

/* a.teaserProject:hover {
    color: unset;
} */

a.teaserProject:hover picture::after {
    opacity: .4;
}

a.teaserProject,
a.teaserProject:hover,
a.teaserProject:hover h3 {
    color: var(--colorHighlight);
}

.teaserProject p {
    margin: 0;
}

.projectText {
    margin-top: 1rem;
}

.teaserProject picture,
.teaserProject img {
    display: block;
    line-height: 0;
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.teaserProject picture::after {
    content: '';
    position: absolute;
    top: 0;
    display: block;
    height: 100%;
    width: 100%;
    z-index: 1;
    opacity: 0;
    background-color: var(--colorHighlight);
}

@media screen and (max-width: 1500px) {
    .projectSelectorModal article {
        width: 50%;
    }
}

@media screen and (max-width: 1200px) {
    .projectSelectorModal article {
        width: 60%;
    }
}

@media screen and (max-width: 1024px) {
    .projectOverview .overviewHead {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .projectOverview .overviewHead .overviewText {
        grid-column: unset;
    }
}

@media screen and (max-width: 1023px) {
    .teaserProjectWrapper > :nth-child(1) {
        padding-top: 0;
    }

    .teaserProjectWrapper > :nth-child(4) {
        margin-top: 0;
        margin-bottom: 0;
    }

    .teaserProjectWrapper > *:nth-child(1) video,
    .teaserProjectWrapper > *:nth-child(1) picture,
    .teaserProjectWrapper > *:nth-child(1) img,
    .teaserProjectWrapper > *:nth-child(4) video,
    .teaserProjectWrapper > *:nth-child(4) picture,
    .teaserProjectWrapper > *:nth-child(4) img,
    .teaserProjectWrapper > *:nth-child(2) video,
    .teaserProjectWrapper > *:nth-child(2) picture,
    .teaserProjectWrapper > *:nth-child(2) img,
    .teaserProjectWrapper > *:nth-child(3) video,
    .teaserProjectWrapper > *:nth-child(3) picture,
    .teaserProjectWrapper > *:nth-child(3) img {
        aspect-ratio: 4/3;
    }

    .teaserProjectWrapper > :nth-child(3) {
        margin-top: unset;
    }

    .teaserProjectWrapper {
        grid-template-areas:
            "h1 w1"
            "w2 h2"
        ;
        grid-column-gap: var(--layoutMargin);
        grid-row-gap: calc(var(--verticalPadding) / 2);
    }

}

@media screen and (max-width: 600px) {
    .teaserProjectWrapper {
        grid-template-areas:
            "h1"
            "w1"
            "w2"
            "h2"
        ;
    }

    .projectSelectorModal article {
        width: 80%;
    }
}

@media screen and (max-width: 500px) {
    .projectSelectorModal article {
        width: 100%;
    }
}
[data-modal] {
    opacity: 0;
    transition: var(--transition);
}

[data-modal-status="open"] {
    opacity: 1;
}
