*::-webkit-scrollbar {
    width: 8px;
    height: 100%;
}
*::-webkit-scrollbar:disabled {
    display: none;
}
*::-webkit-scrollbar-button{
    display: none
}
*::-webkit-scrollbar-thumb {
    border-radius: 4px;
    scrollbar-color: rgba(0,0,0,.2)
}
*::-webkit-scrollbar-track {
    background-color: transparent;
}
* {
    scrollbar-width: thin;
    scrollbar-color: transparent transparent
}
*:hover {
    scrollbar-color: rgba(0,0,0,.2) transparent
}
:root {
    --light: #fff;
    --light-rgb: 255,255,255;
    --dark: #4d4c4a;
    --dark-rgb: 77,76,74;
    --yellow: #fdc419;
    --yellow-rgb: 253,196,25;
    --violett: #a05ea2;
    --violett-rgb: 160,94,162;
    --blue-light: #032743;
    --blue-light-rgb: 3, 39, 67;
    --gray-dark: #757574;
    --gray-dark-rgb: 117,117,116;
    --gray-mid: #8e8e8d;
    --gray-mid-rgb: 142,142,141;
    --gray-light: #d4d4d4;
    --gray-light-rgb: 212,212,212;
    --base-color: var(--light);
    --base-color-rgb: var(--light-rgb);
    --text-color: var(--gray-mid);
    --text-color-rgb: var(--gray-mid-rgb);
    --highlight-color: var(--yellow);
    --highlight-color-rgb: var(--yellow-rgb);
    --main-font: 'Lato', sans-serif;
    --highlight-font: 'Lato', sans-serif;
    --padding: 20px;
    --max-width: 1800px;
    --flex-base: 220px;
    --font-size: 18px;
    --transition-time: 0s;
    --largeicon-size: 4rem;
}
html, body {
    padding: 0;
    margin: 0;
    width: 100%;
    max-width: 100%;
}
html {
    overflow-x: hidden;
    position: relative;
    min-height: 550px;
    font-size: var(--font-size);
    height: 100%;
    max-width: 100%;
}
body {
    font-family: var(--main-font);
    font-weight: 400;
    overflow: hidden;
    -moz-osx-font-smoothing: blue-lightscale;
    -webkit-font-smoothing: antialiased;
    color: var(--text-color);
    min-width: 300px;
    background-color: var(--base-color);
    min-height: 100%;
    line-height: 1.3;
    max-width: 100%;
    position: relative;
}
body, body * {
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}
a {
    text-decoration: none;
    color: currentColor;
    opacity: 1;
    transition: opacity var(--transition-time) ease-in-out;
}
a:not(.button):hover {
    opacity: .8
}
p {
    margin: 0 0 .5rem;
}
p:last-child, p:only-child {
    margin-bottom: 0
}
main a {
    display: inline-block;
    position: relative;
    text-decoration: none
}
main a.button {
    text-decoration: none
}
main .yellow a {
    text-decoration-color: var(--light)
}
strong, b {
    font-weight: 600;
}
h1, .h1 {
    font-size: 2.5rem
}
h2, .h2 {
    font-size: 1.5rem
}
h3, .h3 {
    font-size: 1.3rem
}
h4, .h4 {
    font-weight: 300;
    font-size: 1.2rem
}
h5, .h5 {
    font-weight: 700;
    font-size: 1.1rem
}
h6, .h6 {
    font-weight: 700;
    font-size: 1rem
}
h1, .h1, h2, .h2, h3, .h3 {
    line-height: 1;
    font-family: var(--highlight-font);
    text-transform: uppercase;
    letter-spacing: .1em
}
h1 small {
    display: block;
    font-size: .66em;
    color: var(--text-color);
    font-weight: 300
}
.h1, h2, .h2, h3, .h3 {
    margin: 1em 0 .5em;
}
h1:first-child, .h1:first-child, 
h2:first-child, .h2:first-child, 
h3:first-child, .h3:first-child, 
h4:first-child, .h4:first-child, 
h5:first-child, .h5:first-child {
    margin-top: 0
}
.font-regular {
    color: var(--text-color);
    text-transform: none;
    font-weight: 300
}
h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child, 
.h1:first-child, .h2:first-child, .h3:first-child, .h4:first-child, .h5:first-child, .h6:first-child {
    margin-top: 0
}
h1:only-child, h2:only-child, h3:only-child, h4:only-child, h5:only-child, h6:only-child, 
.h1:only-child, .h2:only-child, .h3:only-child, .h4:only-child, .h5:only-child, .h6:only-child {
    margin: 0;
}
[class*="nopad"] > h1,
[class*="nopad"] > h3,
[class*="nopad"] > h3,
[class*="nopad"] > h4,
[class*="nopad"] > h5,
[class*="nopad"] > h6 {
    margin: .5em 0
}
.break,.hyphens, .flex.nw {
    -webkit-hyphens: auto;
    hyphens: auto;
}
.small {
    font-size: .76em
}
.smaller {
    font-size: .6em
}
sup, sub {
    display: inline-block;
    position: relative;
    top: -.6em;
    font-size: .5em;
}
.underline {
    position: relative;
    display: block;
    margin-bottom: 1em;
    text-decoration: none
}
.underline:before {
    content: '';
    position: absolute;
    display: block;
    height: 2px;
    bottom: -.5em;
    left: 0;
    right: 0;
    background-color: var(--light)
}
body img {
    height: auto;
    max-width: 100%;
}
[class*="box"] > picture:only-child > img:not(.portrait){
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.center {
    text-align: center;
}
.right {
    text-align: right;
}
img.absolute {
    position: absolute;
    object-fit: contain;
    pointer-events: none;
    z-index: 1;
}
img.abs.full, 
video.abs.full {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: -1;
}
img.absolute.full.sectimg {
    opacity: .1;
    z-index: 0;
    filter: blur(5px)
}
header img.abs.full {
    object-position: center;
    padding-top: calc(1 * var(--padding) + 1rem);
}
header .sectionimage {
    opacity: .4
}
img.fixed {
    position: fixed
}
img.abs.left {
    left: 0;
    right: auto;
}
img.abs.right {
    left: auto;
    right: 0;
}
img.abs.top {
    top: 0;
    bottom: auto;
}
img.abs.bottom {
    top: auto;
    bottom: 0;
}
img.abs.left.top {
    object-position: left top;
}
img.abs.left.bottom {
    object-position: left bottom;
}
img.abs.right.top {
    object-position: right top;
}
img.abs.right.bottom {
    object-position: right bottom;
}
img.sideimg {
    display: block;
    margin: var(--padding) auto;
    max-width: 150px;
}
img.contimg {
    display: block;
    margin: 0 auto;
}
.largeimg img {
    display: block;
    height: 100%;
    object-fit: cover
}
img.round {
    border-radius: 100%
}
img.block {
    display: block
}
.nomargin {
    margin: 0 !important;
}
.table > * {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    max-width: calc(1.5 * var(--flex-base))
}
footer .table > * {
    max-width: 200px;
    margin: 0 auto
}
.table > * > * {
    flex: 3 1 150px;
    text-align: left
}
.table > * > .tc1 {
    flex: 1 1 100px;
    padding-right: .5em;
}
.table > * > .tc0 {
    flex: .5 1 50px;
    padding-right: .5em;
}
.sociallinks > * {
    font-size: 1.7em;
    padding-right: .5rem;
    margin-right: .5rem;
    cursor: pointer
}
.wsnw {
    white-space: nowrap;
}

button, .button {
    border: none;
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
    line-height: 1;
    padding: calc(.5 * var(--padding)) calc(2 * var(--padding));
    background-color: var(--light);
    color: var(--gray-dark);
    cursor: pointer;
    text-transform: uppercase;
    transition: background-color var(--transition-time) ease-in-out;
}
button:hover, .button:hover {
    background-color: var(--gray-light);
}

.light {
    background-color: var(--light);
}
.yellow {
    background-color: var(--yellow);
}
.blue-light {
    background-color: var(--blue-light)
}
.violett {
    background-color: var(--violett)
}
.gray-dark {
    background-color: var(--gray-dark);
}
.gray-mid {
    background-color: var(--gray-mid)
}
.gray-light {
    background-color: var(--gray-light)
}
.dark {
    background-color: var(--dark)
}

.blue-light.trans-25 {
    background-color: rgba(var(--blue-light-rgb),.25)
}
.light.trans-25 {
    background-color: rgba(var(--light-rgb),.25)
}
.yellow.trans-25 {
    background-color: rgba(var(--yellow-rgb),.25)
}
.violett.trans-25 {
    background-color: rgba(var(--violett-rgb),.25)
}
.gray-dark.trans-25 {
    background-color: rgba(var(--gray-dark-rgb),.25)
}
.gray-mid.trans-25 {
    background-color: rgba(var(--gray-mid-rgb),.25)
}
.gray-light.trans-25 {
    background-color: rgba(var(--gray-light-rgb),.25)
}

.blue-light.trans-50 {
    background-color: rgba(var(--blue-light-rgb),.5)
}
.light.trans-50 {
    background-color: rgba(var(--light-rgb),.5)
}
.yellow.trans-50 {
    background-color: rgba(var(--yellow-rgb),.5)
}
.violett.trans-50 {
    background-color: rgba(var(--violett-rgb),.5)
}
.gray-dark.trans-50 {
    background-color: rgba(var(--gray-dark-rgb),.5)
}
.gray-mid.trans-50 {
    background-color: rgba(var(--gray-mid-rgb),.5)
}
.gray-light.trans-50 {
    background-color: rgba(var(--gray-light-rgb),.5)
}

.blue-light.trans-75 {
    background-color: rgba(var(--blue-light-rgb),.75)
}
.light.trans-75 {
    background-color: rgba(var(--light-rgb),.75)
}
.yellow.trans-75 {
    background-color: rgba(var(--yellow-rgb),.75)
}
.violett.trans-75 {
    background-color: rgba(var(--violett-rgb),.75)
}
.gray-dark.trans-75 {
    background-color: rgba(var(--gray-dark-rgb),.75)
}
.gray-mid.trans-75 {
    background-color: rgba(var(--gray-mid-rgb),.75)
}
.gray-light.trans-75 {
    background-color: rgba(var(--gray-light-rgb),.75)
}

.dark-font, .dark-font * {
    color: var(--dark);
    --swiper-theme-color: var(--dark);
}
.white-font, .white-font *,
.light-font, .light-font * {
    color: var(--light);
    --swiper-theme-color: var(--light);
}
.yellow-font, .yellow-font * {
    color: var(--yellow);
    --swiper-theme-color: var(--yellow);
}
.blue-light-font, .blue-light-font * {
    color: var(--blue-light);
    --swiper-theme-color: var(--blue-light);
}
.violett-font, .violett-font * {
    color: var(--violett);
    --swiper-theme-color: var(--violett);
}
.gray-dark-font, .gray-dark-font * {
    color: var(--gray-dark);
    --swiper-theme-color: var(--gray-dark);
}
.gray-mid-font, .gray-mid-font * {
    color: var(--gray-mid);
    --swiper-theme-color: var(--gray-mid);
}
.gray-light-font, .gray-light-font * {
    color: var(--gray-light);
    --swiper-theme-color: var(--gray-light);
}
.gray-font, .gray-font * {
    color: var(--dark)
}

.upper{
    text-transform: uppercase
}
.lower {
    text-transform: none
}

.loaded .blur {
    backdrop-filter: blur(5px)
}
/* FLEX */
.flex {
    display: flex;
    flex-flow: row wrap;
    width: auto;
    padding: var(--padding)
}
.pad {
    padding: var(--padding)
}
.padtop {
    padding-top: var(--padding)
}
.padbottom {
    padding-bottom: var(--padding)
}
.halfpad ,
.flex.halfpad {
    padding: calc(.5 * var(--padding));
    --swiper-navigation-height: calc(100% - 3 * var(--padding));
    --swiper-navigation-top-margin: calc(1.5 * var(--padding));
}
.halfpad > [class*="box"],
.flex.halfpad > [class*="box"] {
    padding: calc(.5 * var(--padding))
}
.halfpadvertical > [class*="box"] {
    padding-top: calc(.5 * var(--padding));
    padding-bottom: calc(.5 * var(--padding));
}
.content.halfpad > [class*="box"] {
    padding: calc(1 * var(--padding)) calc(.5 * var(--padding))
}
.flex.nm {
    margin: calc(-1 * var(--padding));
}
.flex.nw {
    flex-flow: row nowrap;
}
.flex.unpad {
    margin-left: calc(-1 * var(--padding));
    margin-right: calc(-1 * var(--padding));
    max-width: calc(100% + 2 * var(--padding))
}
.halfpad > .flex.unpad {
    margin: calc(-.5 * var(--padding));
    max-width: calc(100% + 1 * var(--padding))
}
.flex.wr {
    flex-flow: row wrap-reverse;
}
.flex.vcenter {
    align-items: center;
    align-content: center;
}
.flex.vstretch {
    align-items: stretch;
    align-content: stretch;
}
.flex.vstart {
    align-items: flex-start !important;
    align-content: flex-start !important;
}
.flex.vend {
    align-items: flex-end !important;
    align-content: flex-end !important;
}
.vcenter[class*="box"]:not(.flex) {
    align-self: center;
}
.vend[class*="box"]:not(.flex) {
    align-self: flex-end;
}
.vstart[class*="box"]:not(.flex) {
    align-self: flex-start;
}
.box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), 50%);}
.box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), 100%);}
.box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), 100%);}
.box4 {flex: 4 1 max(calc(4 * .5 * var(--flex-base)), 100%);}
.box5 {flex: 5 1 max(calc(5 * .5 * var(--flex-base)), 100%);}
.box6 {flex: 6 1 max(calc(6 * .5 * var(--flex-base)), 100%);}
.box7 {flex: 7 1 max(calc(7 * .5 * var(--flex-base)), 100%);}

.boxfull, .box7 > .box7, .box6 > .box6, .box5 > .box5, .box4 > .box4, .box3 > .box3, .box2 > .box2, .box1 > .box1 {flex: 1 1 100%;}
.box1, .box2, .box3, .box4, .box5, .box6, .box7, .boxnf, .boxfull {padding: var(--padding);min-width: 0;max-width: 100%;position: relative;order: 2;}
.boxnf {
    padding-top: calc(0 * var(--padding) + var(--largeicon-size))
}
.flex.box1.fw, .flex.box2.fw, .flex.box3.fw {
    width: calc(100% + (2 * var(--padding)));
    max-width: calc(100% + (2 * var(--padding)));
}
.flex > .nopad[class*="box"], .nopad {
    padding: 0;
}
.flex > .nopadtop[class*="box"], .nopadtop {
    padding-top: 0 !important;
}
.flex > .nopadbottom[class*="box"], .nopadbottom {
    padding-bottom: 0 !important;
}
.flex > .nopadleft[class*="box"], .nopadleft {
    padding-left: 0 !important;
}
.flex > .nopadright[class*="box"], .nopadright{
    padding-right: 0 !important;
}
.padtop {
    padding-top: calc(1* var(--padding)) !important;
}
.padbottom {
    padding-bottom: calc(1* var(--padding)) !important;
}
.padleft {
    padding-left: calc(1* var(--padding)) !important;
}
.padright {
    padding-right: calc(1* var(--padding)) !important;
}
.halfpadtop {
    padding-top: calc(.5* var(--padding)) !important;
}
.halfpadbottom {
    padding-bottom: calc(.5* var(--padding)) !important;
}
.halfpadleft {
    padding-left: calc(.5* var(--padding)) !important;
}
.halfpadright {
    padding-right: calc(.5* var(--padding)) !important;
}
.doublepadtop {
    padding-top: calc(2* var(--padding)) !important;
}
.doublepadbottom {
    padding-bottom: calc(2* var(--padding)) !important;
}
.doublepadleft {
    padding-left: calc(2* var(--padding)) !important;
}
.doublepadright {
    padding-right: calc(2* var(--padding)) !important;
}
.flex > .flex[class*="box"]:not(.fpad) {
    padding: 0;
}
.flex > .flex.halfpad[class*="box"]:not(.nopad) {
    padding: calc(.5* var(--padding));
}
.flex > .flex.doublepad[class*="box"], .doublepad {
    padding: calc(2* var(--padding));
}
.flex > .padleft[class*="box"] {
    padding-left: calc(1.5 * var(--padding)) !important;
}
.halfpadhorizontal[class*="box"] {
    padding-left: calc(.5 * var(--padding));
    padding-right: calc(.5 * var(--padding));
}
.placeholder[class*="box"] {
    order: unset;
    min-height: 10rem
}
.flex > .divider {
    flex: 1 1 100%;
    padding: 0;
    margin: 0;
}
.flex > .hdivider {
    flex: 0 0 0%;
    padding: 0;
    margin: 0;
}
.flex > .hw + .hdivider {
    flex: 1 1 100%;
    padding: 0;
    margin: 0;
}
@media (max-width: 1220px){
.flex > .divider {
    display: none;
}    
}
img[classbox]:only-child, picture[class^="box"]:only-child, picture[class^="box"] > img {
    width: 100%;
    display: block;
    height: 100%;
}
.columns {
    column-width: calc(.75 * var(--flex-base));
    column-gap: var(--padding);
    column-count: 3;
}
.columns > div {
    break-inside: avoid
}
.negmarginright {
    transform-box: fill-box;
    transform: translateX(0);
    transform-origin: left;
}
.negmarginright .swiper-button-next {
    position: absolute;
    right: var(--swiper-navigation-sides-offset);
}
.minheight {
    min-height: 250px
}
.abs {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.rel {
    position: relative
}
.fullscreen {
    position: relative;
    height: 100vh;
    max-height: 56vw
}
.fullscreen > .wrapper {
    min-height: 100%;
}
.wrapper {
    max-width: var(--max-width);
    margin: 0 auto;
}
.h30 {
    min-height: 61vh;
}
.ovh {
    overflow: hidden;
}
.htwrapper {
    padding: calc(1 * var(--padding));
    position: fixed;
    z-index: 1000;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition-time) ease-in-out;
    width: 100%;
    height: 100%;
    margin: auto;
    bottom: 0;
    right: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    backdrop-filter: blur(5px);
    background-color: rgba(var(--light-rgb),.75)
}
.hiddentext {
    padding: calc(1 * var(--padding));
    flex: 0 0 900px;
    max-width: 90%;
    overflow-y: scroll;
    max-height: 100%;
    margin: 0
}
.htwrapper.showtext {
    opacity: 1;
    pointer-events: all;
}
[data-st] {
    cursor: pointer;
    display: inline-block
}
.hiddentext [data-st] {
    position: absolute;
    top: calc(.5 * var(--padding));
    right: calc(.5 * var(--padding));
}

/* HEADER */
.index .header {
    height: 30vh;
    min-height: 300px
}
a.logo {
    margin: 0 auto;
    width: 60%;
    max-width: 380px;
    display: block
}
.index a.logo {
    /*! max-width: 800px; */
}
.headertop > .wrapper.flex {
    flex-flow: row nowrap
}
.headerbuttons {
    position: absolute;
    top: calc(1.5 * var(--padding));
    right: auto;
    left: calc(2 * var(--padding));
    display: flex;
    justify-content: flex-start;
    align-items: center;
    z-index: 500;
}    
.headerbuttons .social > * {
    position: relative;
    display: inline-block;
    margin: 0 calc(.5 * var(--padding));
    cursor: pointer;
    z-index: 2;
    color: var(--dark);
}    
.headerbuttons .social > * i {
    opacity: .5;
    transition: opacity var(--transition-time) ease-in-out
}
.headerbuttons .social > * i[class*="facebook"] {
    color: #0866FF;
    opacity: 1
}
.headerbuttons .social > * img {
    display: block;
    width: 1.1rem;
    height: 1.1rem;
    object-fit: contain;
    position: relative;
    bottom: -.2em;
}
.headerbuttons .social > *:hover i {
    opacity: 1
}
.headertop a.logo img {
    display: block;
    opacity: 1;
    padding: 0;
    width: 100%;
}
.headertop a.logo img {
    width: 100%;
    display: block
}
.header {
    position: relative;
}
.header .headerimage {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}
.header .headerimage h1 {
    font-size: clamp(2rem, 4vw, 3.2rem)
}

/* NAVI */
.headertop .mainnav {
    position: fixed;
    top: 0;
    right:0;
    width: auto;
    padding: var(--padding);
}
.mopen .headertop .mainnav {
    z-index: 1;
}
.headertop .mainnav:before,
.headertop .mainnav:after {
    display: none
}
nav.mainnav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    position: fixed;
    display: flex;
    justify-content: center;
    font-size: 1.3rem;
    align-items: center;
    flex-flow: column;
    height: 100%;
    width: 100%;
    top:0;
    left: 0;
    background-color: var(--base-color);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition-time) ease-in-out;
    z-index: 1000
}
nav.mainnav ul.subnavi {
    z-index: 1100;
}
.mopen nav.mainnav ul.navi,
nav.mainnav ul.subnavi.sopen {
    opacity: 1;
    pointer-events: all
}
nav.mainnav ul li {
    position: relative;
    padding: var(--padding);
    display: flex;
    justify-content: space-between;
    align-items: center
}
nav.mainnav ul li a {
    color: var(--dark);
}
nav.mainnav ul li.active a {
    font-weight: 600
}
nav.mainnav ul li a,
nav.mainnav ul li span {
    padding: calc(.25 * var(--padding)) calc(0.5 * var(--padding));
    display: block;
    cursor: pointer
}
nav.mainnav ul li .hassub {
    margin-left: calc(-.75 * var(--padding));
    opacity: .5
}
.navbutton {
    width: 2rem;
    height: 2rem;
    position: relative;
    margin: 0 0 0 auto;
    z-index: 1001;
    cursor: pointer;
}
nav.mainnav ul li.subback {
    position: fixed;
    width: 2rem;
    height: 2rem;
    top: calc(1 * var(--padding));
    right: calc(1 * var(--padding));
    font-size: 2rem;
    z-index: 1001;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}
#menubutton {
    position: absolute;
    width: 270%;
    height: 250%;
    top: -79%;
    left: -93%;
    right: -40%;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    pointer-events: none;
}
#menubutton path {
    fill: none;
    -webkit-transition: stroke-dashoffset var(--transition-time) cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray var(--transition-time) cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke var(--transition-time) ease-in;
    -moz-transition: stroke-dashoffset var(--transition-time) cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray var(--transition-time) cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke var(--transition-time) ease-in;
    -o-transition: stroke-dashoffset var(--transition-time) cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray var(--transition-time) cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke var(--transition-time) ease-in;
    -ms-transition: stroke-dashoffset var(--transition-time) cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray var(--transition-time) cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke var(--transition-time) ease-in;
    transition: stroke-dashoffset var(--transition-time) cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray var(--transition-time) cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke var(--transition-time) ease-in;
    stroke-width: 40px;
    stroke-linecap: square;
    stroke: var(--dark);
    stroke-dashoffset: 0px;
    transform-box: unset;
}
#menubutton path#top,
#menubutton path#bottom {
    stroke-dasharray: 240px 950px;
}
#menubutton path#middle {
    stroke-dasharray: 240px 240px;
}
.mopen #menubutton path {
    stroke: var(--violett);
}
.mopen #menubutton path#top,
.mopen #menubutton path#bottom {
    stroke-dashoffset: -650px;
    stroke-dashoffset: -650px;
}
.mopen #menubutton path#middle {
    stroke-dashoffset: -115px;
    stroke-dasharray: 1px 220px;
}
/* FOOTER */
.prefooter {
    position: relative
}
.map {
    display: block;
    width: 100%;
    max-height: 500px;
    object-fit: cover
}
.footermenu nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.footermenu nav ul li {
    margin-bottom: .5em
}
.footermenu, .footermenu > div {
    position: relative
}
.footermenu > div {
    z-index: 1
}
.footermenu:before {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 20vw;
    background-color: var(--violett);
    top: -2vw;
    left: 0;
    z-index: 0;
    clip-path: polygon(0 10%, 75% 0, 100% 3%, 100% 100%, 0 100%);
}
footer {
    position: relative
}
/* POPUPS */
.sharebuttons, #form-result {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--base-color);
    opacity: 0;
    pointer-events: none;
    z-index: 2100;
    transition: opacity 0.5s ease-in-out;
}
.sharebuttons.showbuttons, #form-result.shownotice {;
    opacity: 1;
    pointer-events: all
}
.sharebuttons .shbox, #form-result div.notices, #form-result p {
    position: relative;
    display: block;
    width: 90%;
    max-width: 500px;
    margin: 0;
    padding: 20px;
    background-color: transparent;
}
.closeshare, #sc-close, #closeform, .pu-close, .canpuclose, .htclose {
    position: absolute;
    z-index: 3000;
    cursor: pointer;
    top: calc(0.5 * var(--padding));
    right: calc(0.5 * var(--padding));
    height: 2rem;
    width: 2rem;
    font-size: 2rem;
    margin: 0;
    text-align: center;
    line-height: 1;
    -ms-user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none; 
    color: var(--dark)
}
.closeshare:hover, #sc-close:hover, #closeform:hover, canbutton:hover {
    color: var(--violett)
}
.sharebuttons {
    text-align: center;
}
.sharebuttons .shariff ul {
    justify-content: center;
    margin-top: 1rem
}
.sharebuttons .shariff .orientation-horizontal li, .sharebuttons .shariff .orientation-horizontal li  a {
    width: 40px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 100%;
}
.sharebuttons .tosoc {
    font-size: 0.7rem;
    line-height: 1.2em;
}
#form-result > p {
    text-align: center;
}
#form-result > p > i {
    display: block;
    margin: 0 auto 0.5em;
    font-size: 3rem;
}

/* SMARTPHONE */
@media only screen 
    and (min-width: 375px) 
    and (max-width: 812px) 
    and (-webkit-min-device-pixel-ratio: 3), 
    only screen 
    and (min-width: 375px) 
    and (max-width: 667px) 
    and (-webkit-min-device-pixel-ratio: 2),
    (max-width: 500px)
{ 
    :root {
        --swiper-navigation-width: calc(3 * var(--padding));
    }
    .abs.rel-mobile {
        position: relative
    }
}

/* TABLET */
@media only screen 
    and (min-width : 768px) 
    and (max-width : 1100px) 
    and (-webkit-min-device-pixel-ratio: 1),
    only screen 
    and (min-width : 768px) 
    and (max-width : 1100px)
    and (-webkit-min-device-pixel-ratio: 2),
    (min-width: 501px) and (max-width: 1100px){

    :root {
        --padding: 25px;
        --flex-base: 420px;
        --font-size: 19px;
    }   
    .abs.rel-tablet {
        position: relative
    }
    
    .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), 25%);}
    .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), 50%);}
    .box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), 75%);}
    .box4 {flex: 4 1 max(calc(4 * .5 * var(--flex-base)), 100%);}
    .box5 {flex: 5 1 max(calc(5 * .5 * var(--flex-base)), 100%);}
    .box6 {flex: 6 1 max(calc(6 * .5 * var(--flex-base)), 100%);}
    .box7 {flex: 7 1 max(calc(7 * .5 * var(--flex-base)), 100%);}

    .box7 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/4 * 100%));}
    .box7 > .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), calc(2/4 * 100%));}
    .box7 > .box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), calc(3/4 * 100%));}
    .box7 > .box4 {flex: 4 1 max(calc(4 * .5 * var(--flex-base)), calc(1 * 100%));}
    .box7 > .box5 {flex: 5 1 max(calc(5 * .5 * var(--flex-base)), calc(1 * 100%));}
    .box7 > .box6 {flex: 6 1 max(calc(6 * .5 * var(--flex-base)), calc(1 * 100%));}

    .box6 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/4 * 100%));}
    .box6 > .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), calc(2/4 * 100%));}
    .box6 > .box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), calc(3/4 * 100%));}
    .box6 > .box4 {flex: 4 1 max(calc(4 * .5 * var(--flex-base)), calc(1 * 100%));}
    .box6 > .box5 {flex: 5 1 max(calc(5 * .5 * var(--flex-base)), calc(1 * 100%));}

    .box5 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/4 * 100%));}
    .box5 > .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), calc(2/4 * 100%));}
    .box5 > .box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), calc(3/4 * 100%));}
    .box5 > .box4 {flex: 4 1 max(calc(4 * .5 * var(--flex-base)), calc(1 * 100%));}

    .box4 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/4 * 100%));}
    .box4 > .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), calc(2/4 * 100%));}
    .box4 > .box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), calc(3/4 * 100%));}

    .box3 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/3 * 100%));}
    .box3 > .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), calc(2/3 * 100%));}

    .box2 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/2 * 100%));}
    /* HEADER */
    .headerbuttons {
        position: absolute;
        top: calc(1 * var(--padding));
        left: calc(1 * var(--padding));
        right: auto
    }    
    .headerbuttons .social > * {
        margin: 0 calc(.25 * var(--padding));
    }
    /* NAVI */
    nav.mainnav ul li {
        padding: calc(.5*var(--padding))
    }
    nav.mainnav ul.subnavi {
        left: 0 !important;
    }
}

/* DESKTOP */
@media only screen and (min-width: 1101px){
    :root {
        --padding: 30px;
        --flex-base: 260px;
        --font-size: 19px;
    }
    h1, .h1 {
        font-size: 2.2rem;
    }
    h2, .h2 {
        font-size: 1.5rem
    } 
    h3, .h3 {
        font-size: 1rem
    }
    h4, .h4 {
        font-size: 1rem
    }
    h5, .h5 {
        font-size: 1rem
    }
    h6, .h6 {
        font-size: 1rem
    }
    nav.mainnav {
        font-size: 1.1rem
    }
    
    .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), 12.5%);}
    .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), 25%);}
    .box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), 37.5%);}
    .box4 {flex: 4 1 max(calc(4 * .5 * var(--flex-base)), 50%);}
    .box5 {flex: 5 1 max(calc(5 * .5 * var(--flex-base)), 62.5%);}
    .box6 {flex: 6 1 max(calc(6 * .5 * var(--flex-base)), 75%);}
    .box7 {flex: 7 1 max(calc(7 * .5 * var(--flex-base)), 87.5%);}

    .box7 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/7 * 100%));}
    .box7 > .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), calc(2/7 * 100%));}
    .box7 > .box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), calc(3/7 * 100%));}
    .box7 > .box4 {flex: 4 1 max(calc(4 * .5 * var(--flex-base)), calc(4/7 * 100%));}
    .box7 > .box5 {flex: 5 1 max(calc(5 * .5 * var(--flex-base)), calc(5/7 * 100%));}
    .box7 > .box6 {flex: 6 1 max(calc(6 * .5 * var(--flex-base)), calc(6/7 * 100%));}

    .box6 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/6 * 100%));}
    .box6 > .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), calc(2/6 * 100%));}
    .box6 > .box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), calc(3/6 * 100%));}
    .box6 > .box4 {flex: 4 1 max(calc(4 * .5 * var(--flex-base)), calc(4/6 * 100%));}
    .box6 > .box5 {flex: 5 1 max(calc(5 * .5 * var(--flex-base)), calc(5/6 * 100%));}

    .box5 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/5 * 100%));}
    .box5 > .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), calc(2/5 * 100%));}
    .box5 > .box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), calc(3/5 * 100%));}
    .box5 > .box4 {flex: 4 1 max(calc(4 * .5 * var(--flex-base)), calc(4/5 * 100%));}

    .box4 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/4 * 100%));}
    .box4 > .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), calc(2/4 * 100%));}
    .box4 > .box3 {flex: 3 1 max(calc(3 * .5 * var(--flex-base)), calc(3/4 * 100%));}

    .box3 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/3 * 100%));}
    .box3 > .box2 {flex: 2 1 max(calc(2 * .5 * var(--flex-base)), calc(2/3 * 100%));}

    .box2 > .box1 {flex: 1 1 max(calc(1 * .5 * var(--flex-base)), calc(1/2 * 100%));}
    
    /* HEADER */
    .headerbuttons {
        top: calc(2 * var(--padding));
        right: calc(2 * var(--padding));
        left: auto;
    }    
    .headerbuttons .social > * {
        margin: 0 calc(.125 * var(--padding));
    }
    .headertop a.logo {
        padding: calc(1 * var(--padding));
    }
    .header .headerimage {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
    }
    .header .headerimage h1 {
        font-size: clamp(2rem, 4vw, 3.2rem)
    }
    /* NAVI */
    .headertop .mainnav {
        position: relative;
        top: 100%;
        width: 100%;
    }
    .headertop .mainnav:before,
    .headertop .mainnav:after {
        display: block
    }
    nav.mainnav ul.navi {
        position: relative;
        flex-flow: row;
        opacity: 1;
        pointer-events: all;
        height: auto;
        font-size: 1rem;
        margin: 0 calc(-.25 * var(--padding));
        transition: none;
        justify-content: flex-start;
    }
    nav.mainnav ul li {
        padding: 0;
        position: relative
    }
    nav.mainnav ul li i.fa-chevron-right:before {
        content: '\f078'
    }
    nav.mainnav ul li:before {
        content: '';
        position: absolute;
        width: 100%;
        height: 0;
        background-color: var(--red);
        left: 0;
        bottom: 0;
        transform: var(--skew);
        transition: height var(--transition-time) ease-in-out
    }
    nav.mainnav ul li.active:before,
    nav.mainnav ul li:hover:before {
        height: 4px;
    }
    .navbutton, nav.mainnav ul.subnavi .cm  {
        display: none;
    }   
    nav.mainnav ul.subnavi {
        position: absolute;
        top: calc(100% + 0 * var(--padding));
        left: -100%;
        width: unset;
        background-color: var(--violett);
        font-size: 1rem;
        height: unset;
    }    
    nav.mainnav ul.subnavi.sopen {
        opacity: 1;
        pointer-events: all        
    }  
    .sticked nav.mainnav ul.subnavi {
        top: 100%;
    }
    nav.mainnav ul.subnavi > li {
        display: flex;
        align-items: center;
        height: 100%;
    } 
    nav.mainnav ul.subnavi > li > * {
        padding: calc(.5 * var(--padding));
        text-align: center;
        color: var(--light)
    } 
    .negmarginright {
        transform: translateX(12.5%);
        transform-origin: left;
    }
    .negmarginright .swiper-button-next {
        position: absolute;
        right: calc(12.5% - var(--swiper-navigation-sides-offset));
    }
} 

@media only screen and (min-width: 1401px){
    :root {
        --font-size: 20px;
    }
}

.empty {
    min-height: 0 !important;
    height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    opacity: 0 !important;
    margin-bottom: 0 !important;
}

@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/lato-light.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/lato-regular.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/lato-bold.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body.loaded {opacity: 1;--transition-time: .5s}