/*
bg: #0298a6

hanse grün: #00b960  - .col1
hanse dunkel: #00644f
contrast: ff6600
*/




@font-face {
    font-family: NASA;
    src: url("fonts/NASA.otf") format("opentype");
}

@font-face {
    font-family: avenir;
    src: url("fonts/Avenir.otf") format("opentype");
}

@font-face {
    font-family: avenir;
    font-weight: bold;
    src: url("fonts/AvenirBlack.otf") format("opentype");
}

@font-face {
    font-family: RobotoSlab;
    src: url("fonts/RobotoSlab-variable.ttf") format("truetype");
}


* {
    box-sizing: border-box;
}

body {

    font-family: 'avenir', sans-serif;
    line-height: 1.5;
    background-color: white;
    padding: 0;
    margin: 0;
    height: 100vh;
    xoverflow: hidden;
    font-size: 18px;
    -moz-osx-font-smoothing: grayscale;
    xtext-shadow: 1px 1px 1px rgba(0,0,0,0.004);
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;

    /*background-image: url(../images/bg/mainBG.jpg);*/
    background-size: cover;
    background-position: center;
    color: rgba(0,0,0,.7);

    -moz-hyphens: auto;
    -o-hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
}





h1, h2, h3 {

    font-family: 'avenir', sans-serif;
    line-height: 1.1;
    font-weight: bold;
    color: #111;
    margin: 1.3em 0;
}


.nasa, h2.title {
    font-family: 'NASA', sans-serif;
    text-transform: uppercase;
    font-size: 2em;
    font-weight: normal;
}


h1 {
    font-size: 2.5em;
    color: #00b960
    
}

h2, .huge {
    font-size: 2.4em;
    margin: 1em 0;
    color: #00b960
}


h2.title {
    font-size: 2em;
    font-weight: bold;
    letter-spacing: 3px;
    padding: 1em;
    background: rgba(0,0,0,.8);
    color: white;
    text-align: center;
    margin: 0px auto 0px;
}


h3 {
    font-size: 1.8em;
    color: #00644f;
    margin: 2em 0 12px 0
}

h4 {
    font-size: 1.6em;
    font-weight: normal;
    color: #00b960;
    margin: 1em 0 8px 0
}

h3+h4
{
    margin: 0em 0 8px 0
}

p {
    margin: 0.7em 0
}

b {    color: #00644f}

.logo {
    font-size: 1.3em;
    color: white;
    margin: 8px 0
}

.col1, .highlight {
    color: #00b960
}

.black{
    color: rgba(0,0,0,.8)
}

.col2 {
    color: #00644f
}

.contrast {
    color: #ff6600
}








a {
    display: inline-block;
    color: #00b960;
    text-decoration: underline;
    font-weight: bold;
    cursor: pointer;
}

#header a {text-decoration: none}


x#topmenu {    padding: 15px;}

#topmenu a {
    padding: 12px 15px;
    color: rgba(255,255,255,.85);
    text-transform: uppercase;
    font-weight: 400;
    transition: color 400ms;
    
}

#topmenu a:hover, #topmenu a.active { color: #00b960;

}




p.strong {
    font-size: 1.1em;
    font-weight: bold
}

button {
    margin: 6px auto
}

button.block, button.center {
    margin: 20px auto
}

table.proCon {
    border-radius: 10px;
    box-shadow: 0 -2px 12px rgba(0,0,0,.2);
    outline: 5px solid #333;
    background-image: url(/images/icons/order-quality.png);
    background-repeat: no-repeat;
    background-size: 250px;
    background-position: 1000px 300px

}

table.proCon th {
    font-size: 1.1em;
    padding: 0.9em
}

table.proCon th:nth-child(2) {
    border-left: 4px solid #666
}

table.proCon td {
    padding: 10px 20px 10px 60px;
    background-size: 24px;
    background-repeat: no-repeat;
    background-position: 20px center;
}

table.proCon td:first-child {
    background-image: url(/images/icons/cross-contrast.png);
    background-size: 12px;
}

table.proCon tr:nth-child(even) td:first-child {
    background-color: rgba(255, 250, 245);
}


table.proCon td:first-child b {
    color: #ff6600
}

table.proCon td:nth-child(2) {
    background-image: url(/images/icons/check.png);
    border-left: 5px solid white;
    color: #00644f
}



.wrapper {
    width: 100%;
    padding: 0 20px;
    max-width: 1500px;
    margin: 0 auto
}

body > section {
    padding: 50px 0 150px 0
}

section, #splash {
    margin: 0 auto 0 auto;
    width: 100%;
    overflow: hidden; /* scrolling only .slide or .inner*/
    position: relative;
}

.darkTheme {
    background: #333335;
    color: rgba(255,255,255,.9)
}

.darkTheme b {    color: #00b960}


#header {
    position: fixed;
    left: 0;
    top: 0;
    right: 0;
    height: 50px;
    backdrop-filter: blur(10px);
    background: rgba(0,0,0,.8);
    z-index: 4;
}

#footer {
    font-size: 0.9em;
    margin: 60px 0 0 0;
    padding: 10px 0;
    background: rgba(0,0,0,.8);
    color: rgba(255,255,255,.7);
}


body section.opener {
    padding-top: 220px
}

/* section spcific */

.opener {
    min-height: 850px;
    padding-top: 160px;
    background-size: cover;
    background-attachment: fixed
}

.bgOrderpal {
    background-image: url(../images/bg/orderpal.jpg);
}


.bgRestaurant {
    background-image: url(../images/bg/blured-restaurant2.jpg);
}

.claim {
    position: absolute;
    left: 50px;
    top: 300px;
    width: 55%;
    padding: 50px 150px 50px 50px;
    background: rgba(255,255,255,.8);
    z-index: 1
}

.claim h2 {
    margin: 0
}

.screens {
    position: absolute;
    width: 60%;
    right: 0%;
    height: 600px;
    overflow: hidden;
    z-index: 2
}


#branches .wrapper {

}

#branches .ref img {
    display: block;
    max-width: 250px;
    margin: 80px auto;
}


.screens {
    perspective: 500px
}

.screens img {
    width: 200px;
}
.screens img {
    position: absolute;
    left: 50%;
    top: 0px;
    transform-origin: 50% 620px;
    transition: 0.5s all ease-in-out;
    filter:  drop-shadow(2px 3px 4px rgba(0,0,0,.3));
    z-index: 1
}

.screens img:nth-child(3) {
    z-index: 3
}

.screens.active img:nth-child(1) {
    transform: rotate(-30deg);
    z-index: 1
}
.screens.active img:nth-child(2) {
    transform: rotate(-15deg);
    z-index: 2
}
.screens.active img:nth-child(3) {
    transform: rotate(0deg);
    z-index: 3
}
.screens.active img:nth-child(4) {
    transform: rotate(15deg);
    z-index: 2
}
.screens.active img:nth-child(5) {
    transform: rotate(30deg);
    z-index: 1
}

.screens.active img:hover {
    z-index: 5;
    /*   transform: rotateY(90deg);
       transform-origin: 50% 50%;*/
}

/*
.screens.active img:hover {
    animation: flip 1s;
    animation-iteration-count: 1;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
}

.screens.active img:nth-child(3):hover {
    animation: none
}

.screens.active img:nth-child(4):hover, .screens.active img:nth-child(5):hover {
    animation: flipRight 1s;
}

@keyframes flip {
    99% {
        transform: rotate(-50deg) ;
        z-index: 1
    }
    100% {
        transform: rotate(-50deg) ;
        z-index: 5
    }

}

@keyframes flipRight {
    99% {
        transform: rotate(50deg) ;
        z-index: 1
    }
    100% {
        transform: rotate(50deg) ;
        z-index: 5
    }
}*/



#formLogin, #formRegister {
    min-height: 500px; /* make sure we have room for the keyboard */
}

.invalid {
    border: 3px solid crimson
}



/* case boxes */

.case {
    padding: 5% 0;
    background-color: #e9eff4
}

.case img {
    height: 250px

}





.check {
    background: url('../../images/bg/check.png');
    background-size: 10% auto;
    background-repeat: no-repeat;
    background-position:  98%;
}





/*
#wissen {background-image: url(../images/icons/idea.svg)}
#leben {background-image: url(../images/icons/salad.svg)}
#training {background-image: url(../images/icons/superhero.svg)}
#connect {background-image: url(../images/icons/connection.svg)}*/



/* SLIDES -------------------------------------------------------------*/
.slider {
    display: flex;
    flex-wrap: nowrap;
    margin: 0;
    height: calc(100vh - 41px - 51px);
    width: 200%;
    transition-property: transform;
    transition-duration: 0.5s;
    transition-timing-function: ease-out;

    /*apply a transform to kick in the hardware acceleration.  Without this, the first
    time we add the transform you get odd rendering of the divs (half missing) */
    transform: translate(0, 0);
    z-index: 1
}

.slide {
    flex: 1 1 0;
    width: 100vw;
    padding-bottom: 40px;

    overflow-y: scroll;
    background-attachment: local; /* because slides have overflow:scroll we need that to make the bg scroll as well */
    background: white;

    /*apply a transform to kick in the hardware acceleration.  Without this, the first
    time we add the transform you get odd rendering of the divs (half missing) */
    transform: translate(0, 0);

    color: #555;
}

.bgStatic {
    background-attachment: scroll
} /* scroll makes it static here, because the scroll is in the slide already */






.detail {
}
.intro {
    font-weight: bold
}


.imgDetail {
    width: 100%;

}

button, .btn {
    padding: 8px 16px;
    font-weight: bold;
    xbackground: rgba(0,0,0,.8);
    color: #00b960;
    border: none;
    border: 1px solid #00b960;
    border-radius: 4px;
    outline: none;
    text-decoration: none;
    cursor: pointer
}

button.primary, .btn.primary {
    background: #00b960;
    color: white;
    font-size: 1.1em;
    margin: 20px 0
}

.btnPopup {
    background: none
}

.btnSmall {
    padding: 5px 10px;
    font-size: 90%;
}



.chosen .lblChosen {
    display: block
}

.slide ul {
    text-align: left;
    font-size: 90%
}





.closeable {
    padding: 15px;
    font-size: 14px;
    border-radius: 6px;
    text-align: justify;

    /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#f3f0cf+0,d2e4d4+100 */
    background: #f3f0cf; /* Old browsers */
    xbackground: linear-gradient(to right, #f3f0cf 0%,#b9ddc9 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */

}


.closeable .icon{
    margin: 0 12px 12px 0
}

a.icon-info {
    border:none!important;
}

.closeable .icon-info, .closer {
    font-size: 36px;
    float: left
}

.closeable .icon-cross {
    float: right;
    margin: 0px 0px 30px 30px
}

.closer {
    font-size: 16px;
    float: right;
    margin: -10px -10px 20px 20px
}


ul {
  list-style: square;
}


ul li {line-height: 1.4em;
       padding-bottom: 6px
}

/*button.active, button:focus {
    background: white; 
    box-shadow: none;  
    border-right: 1px solid white;
    color: goldenrod;
}*/

table {
    text-align: left;
    width: 100%;
    border-collapse: collapse
}

textarea {

    background: white;
    width: 100%;
    margin: 0;
}



table tr:nth-child(even) td {
    background-color: rgba(235,245,240,.7)
}
table tr:nth-child(odd) td {
    background-color: rgba(255,255,255,.8)
}


hr {
    border: none;
    height: 1px;
    background: silver
}


th {
    font-size: 14px;
    font-weight: bold;
    text-transform: uppercase;
    text-align: center;
    background: rgba(0,0,0, .8);
    color:  rgba(255,255,255,.95);


}

table.green th {
    background: #5293b8;
}
table.red th {
    background: #a8113c
}

table td {
    padding: 5px
}
table th {
    padding: 4px
}




/* common divs */

.boxWhite {
    background: white;
    padding: 3%;
    margin: 3%;
    text-align: center;
    border-radius: 20px;
    border: 5px solid #e9eff4;
    transition: box-shadow 200ms;
    aspect-ratio: 3/5
}

.boxWhite:hover {
    border: 5px solid white;
    box-shadow: 6px 6px 12px rgba(0,0,0,.3)
}

.box1 {
    background: #eee;
    border-radius: 4px;
    padding: 60px;
}


.box2 {
    background: linear-gradient(160deg, #fff, #f5f5f5);
    border-radius: 4px;
    padding: 50px;
    border: 1px solid rgba(0,0,0,.2);
    box-shadow: 0 1px 3px rgba(0,0,0, .2);
}

.box2 > h2 , .box2 > h3 {
    margin-top: 0
}













#popup {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0,0,0,.8);
    padding: 5%;
    z-index: 9
}



.inner {
    box-sizing: border-box;
    width: 100%;
    height: calc(100% - 61px); /* - headerbox */
    padding-bottom: 30px;
    overflow: scroll;
    background-color: rgba(255,255,255,.6)

}




#popup, .popup {
    position: absolute;
    box-sizing: border-box;
    background: rgba(255,255,255,.6);
    border-radius: 10px;
    padding: 8px;
    width: 90%;
    max-height: 84%;
    overflow-y: scroll;
    left: 5%;
    top: 3%;
    box-shadow: 0 2px 4px 2px rgba(0,0,0,.3);
    z-index: 9
}

#popup2 .inner {
    min-height: 15vh;
    border-radius: 7px;
    border: 1px solid #f5f5f5;
    background: rgba(255,255,255,.95);
}


.popup {
    font-size: 90%;
}

.popup a, .popup button {
    display: block;
    width: 80%;
    margin: 10px auto;
    text-align: center
}

.popup button {
    font-size: 125%
}

.btnClosePopup15 {
    background: none;
    font-size: 90%!important;
    color: steelblue
}

.popup h2 {
    margin: 0;
    line-height: 38px;
}

.popup h2 img {
    float: left;
    margin-right: 10px;
    height: 32px;
}



.icon-checkmark {
    color: #6a9e03
}


.bgDarker {
    margin: 0 20px 0 0!important;
    padding: 20px;
    background: rgba(0,0,0,.5);
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px
}


.border {
    border: 3px solid rgba(112,122,122,.5);
}
.borderOrange {
    border: 2px solid orange!important
}


.icoForm label {
    color:  #005c75;
    background-color: silver;
    border: 1px solid silver;
    border-bottom-left-radius: 4px;
    border-top-left-radius: 4px;
    float: left;
    margin: 0;
    height: 28px;
    width: 28px;
    font-size: 25px;
    line-height: 30px;
    padding: 4px 4px 4px 7px;
    text-align: center;


}

.icoForm label:before {
    text-align: center
}
.icoForm .icon-lock {
    padding: 4px 0px 4px 11px
}

.icoForm input {
    font-size: 24px;
    padding: 2px 6px;
    height: 32px;
    max-width: calc(100% - 60px);
    margin-bottom: 15px;
    border: 1px solid silver;
    border-left: none;

}

.icoForm button {
    font-size: 18px
}



form.oneliner label, form.oneliner input, form.oneliner textarea, form.oneliner select {
    display: block;
    width: 100%;
    font-size: 1.2em;
    padding: 5px
}

form.oneliner label {
    font-size: 0.9em
}

form.oneliner input {
    margin-bottom: 14px
}


/* common styles */
.flexRow {
    display: flex;
    flex-wrap: nowrap
}

.flexCol {
    display: flex;
    flex-wrap: wrap
}

#tblPoints td:nth-child(1) {
    text-align: center
}
#tblPoints td:nth-child(3) {
    text-align: right;
    padding-right: 13px;
    font-size: 110%;
    font-weight: bold
}

#tblLevel th:nth-child(2) {
    text-align: left
}
#tblLevel td:nth-child(3) {
    text-align: right;
}
#tblLevel td:nth-child(4){
    text-align: center
}

#tblLevel tr.active td {
    font-weight: bold;
    font-size: 120%;
    border-top: 2px solid white;
    border-bottom: 2px solid white;
    background: orange
}


.flex1 {
    flex: 1 1 300px!important
} /**/
.flex2 {
    flex: 2 1 300px!important
} /**/
.flex3 {
    flex: 3 1 300px!important
} /**/

.flexRow .flex4 {
    flex: 4!important
}

.flexRow>div img {
    max-width: 100%
}


.bar {
    width: 90%;
    height: 24px;
    margin: 10px auto 10px 0;
    border-radius: 6px;
    border: 3px solid rgba(160,120,80, .6);
}

.bar>div {
    width: 0;
    height: 24px;
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
    background:yellowgreen;
}

.barfill_grow {
    background: khaki
}







audio {
    margin: 3px auto;
    height: 38px;

}

audio.guided {
    filter: sepia(50%) saturate(70%) grayscale(0.2) contrast(80%) invert(80%);
    width: 200px;
    height: 50px;
    width: 90%;
    max-width: 90%;
    margin: 20px 5%
}


.error {
    border: 1px solid crimson;
    color: crimson
}


.flex {
    display: flex;
    gap: 2%;

    flex-wrap: wrap
}

.flexRow>div, .flex > div {
    flex: 1 1 0;
    margin: 12px auto;
}

.flexEven {
    flex: 1 1 0
}
.flexEven img {
    max-width: 80%;
    margin: 5px auto;
}

.flexAlignBottom {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
}



.white {
    color: rgba(255,255,255,.9)
}

.hidden {
    display: none!important
}
.tiny {
    font-size: 60%
}

.small {
    letter-spacing: -1px;
    font-size: 80%;
    margin: 2px 0;
    opacity: 0.6
}

.small a {
    font-weight: normal
}

.disabled {
    color: rgba(0,0,0,.5)!important
}
.big {
    font-size: 120%
}
.huge {
    font-size: 160%
}
.pad {
    padding: 60px
}
.vcenter {
    display: flex;
    justify-content: center
}
.right {
    text-align: right
}
.center {
    text-align: center
}
.block {
    display: block
}
.vertical {
    -webkit-transform: rotate(270deg);
    -moz-transform: rotate(270deg);
    -ms-transform: rotate(270deg);
    -o-transform: rotate(270deg);
    transform: rotate(270deg);
}

.noBorder {
    border: none!important
}

.msg {
    margin: 20px 0;
    padding: 10px 20px
}

.alert {
    color: crimson;
    font-weight: bold
}
.success {
    color: #00644f;
    border: 1px solid #00644f;
    border-radius: 4px
}



textarea, input {
    font-size: 15px;
    border: 1px solid #999
}

.downArrows { /* the big ones */
    cursor: pointer;
    font-size: 200px; color: rgba(255,255,255,.7); 
    position: absolute; left: 50%; margin-left: -50px; top: 750px; z-index: 8
}

.arrow-up {
    width: 0;
    height: 0;
    border-bottom: 25px solid #333;
    border-left: 25px solid transparent;
    border-right: 25px solid transparent;
    margin: 0 0 0 45%

}

.arrow-down {
    width: 0;
    height: 0;
    border-top: 25px solid #333;
    border-left: 25px solid transparent;
    border-right: 25px solid transparent;
    margin: 0 0 0 45%
}

.arrow-right {
    width: 0;
    height: 0;
    border-top: 60px solid transparent;
    border-bottom: 60px solid transparent;

    border-left: 60px solid green;
}

.arrow-left {
    width: 0;
    height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-right:10px solid blue;
}