@font-face{
    font-family: 'Montserrat';
    src: url("../assets/fonts/Montserrat-VariableFont_wght.ttf");
}
@font-face{
    font-family: 'Ubuntu';
    src: url("../assets/fonts/Ubuntu-Regular.ttf");
}
:root {
    --primary-color: #101935;
    --primary-color-rgb: 16, 25, 53;
    --secondary-color: #619EAB;
    --light-bg: #F2F2EF;
    --text-dark: #002855;
    --text-bright: white;

    --page-margin-left: 12vw;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    background: var(--text-bright);
    color: var(--primary-color);
    display: flex;
    flex-direction: column;
    font-family: 'Ubuntu', sans-serif;
    line-height: 38px;
}

a {
    text-decoration: none;
}

h1 {
    font-size: 4rem;
    font-weight: bold;
    line-height: 6rem;
}

h2 {
    font-size: 70px;
    font-weight: bold;
    line-height: 84px;
}

h3 {
    font-size: 40px;
    font-weight: normal;
    line-height: 60px;
}

h4 {
    font-size: 60px;
    line-height: 67px;
}

p {
    font-size: 28px;
    line-height: 50px;
}

section {
    flex: 1;
}

.caption {
    font-family: Montserrat, serif;
    font-size: 26px;
    font-stretch: normal;
    font-style: normal;
    font-weight: normal;
    letter-spacing: 2px;
    line-height: normal;
    margin-bottom: 24px;
    text-transform: uppercase;
    color:#0790a2;
}

.content {
    margin-left: var(--page-margin-left);
}

/* STYLES FOR NAVBAR */
.nav {
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1;
}

.navbar {
    display: flex;
    justify-content: space-between;
    padding: 80px var(--page-margin-left) 0 var(--page-margin-left);
}

.navbar .brand img {
    height: 48px;
    max-width: 40vw;
}

.navbar .nav-menu {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    width: 100%;
}

.nav-menu .nav-menu-items {
    background-color: var(--text-bright);
    border: none;
    border-radius: 3px;
    box-shadow: 0 4px 10px 0 rgba(16, 25, 53, 0.3);
    grid-template-rows: repeat(4, minmax(0, 1fr));
    opacity: 0;
    display: none;
    transition: all 1s;
    width: 100%;
}

.nav-menu .nav-menu-items.show {
    opacity: 1;
    display: grid;
    transition: all 1s;
}

.navbar .nav-item {
    padding: 24px 36px 24px 36px;
}

.navbar .nav-item:active {
    background-color: var(--light-bg);
}

.navbar .nav-item a {
    color: var(--text-dark);
    font-size: 36px;
    font-weight: normal;
    line-height: 48px;
    margin-left: 2px;
    margin-right: 2px;
}

.navbar .nav-item a:hover {
    font-weight: bold;
    margin: 0;
}

.nav-menu .nav-icon-mobile:before {
    content: "\e5d2";
    color: var(--text-dark);
    font-family: "Material Icons", serif;
    font-size: 55px;
    text-align: center;
}

.nav-menu .nav-icon-mobile.active:before {
    content: "\e5cd";
}

.nav-item.dropdown {
    list-style-type: none;
}

p.language-label {
    color: var(--text-dark);
    font-size: 36px;
    font-weight: normal;
    line-height: 48px;
}

.nav-item.dropdown .language-list {
    display: grid;
}

.nav-item.dropdown .language-list .language-item {
    margin-bottom: 5px;
    margin-left: 20px;
    margin-top: 5px;
}

.nav-item.dropdown .language-list .language-item.selected {
    font-weight: bold;
}

/* STYLES FOR STICKY NAVBAR */
.nav.sticky {
    background-color: white;
    box-shadow: 0 4px 10px 0 rgba(16, 25, 53, 0.3);
    height: 96px;
    position: fixed;
    top: 0;
    width: 100%;
}

.nav.sticky + .content {
    padding-top: 60px;
}

.nav.sticky .navbar {
    padding-top: 30px;
}

/* STYLES FOR BUTTONS */
.btn {
    border-radius: 4px;
    font-family: inherit;
    line-height: 23px;
    padding: 16px 20px;
}

.btn:empty {
    display: none;
}

.btn.btn-primary {
    background-color: #0790a2;
    border-color: var(--primary-color);
    color: var(--text-bright);
}

.btn.btn-secondary {
    background-color: var(--secondary-color);
    color: var(--text-bright);
}

.btn.btn-bright {
    background-color: var(--text-bright);
    border-color: var(--text-bright);
    border-style: none;
    color: var(--text-dark);
    cursor: pointer;
}

/* STYLES FOR HERO */
.hero {
    align-items: stretch;
    color: var(--text-bright);
    display: flex;
    justify-content: stretch;
    position: relative;
}

.hero-video {
    height: 60vh;
    object-fit: cover;
    width: 100vw;
    z-index: -1;
}

.hero-image {
    background-position-y: center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 60vh;
    width: 100vw;
    z-index: -1;
}

.content-hero {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    justify-content: center;
    left: 12vw;
    position: absolute;
    top: 20vh;
    width: 75vw;
}



/* STYLES FOR NAVIGATION ANCHOR */
.anchor {
    top: -150px;
}

.anchor {
    display: block;
    position: relative;
    top: -80px;
    visibility: hidden;
}

.anchor-sm {
    display: block;
    position: relative;
    top: -20px;
    visibility: hidden;
}

/* STYLES FOR TEASER */
.teaser-section {
    display: flex;
    flex-direction: column;
    padding-bottom:150px;
}

.teaser-section .content-teaser {
    align-items: center;
    display: flex;
    flex-direction: column-reverse;
    margin-left: var(--page-margin-left);
    margin-top: 80px;
    width: 70vw;
}

.teaser-info h2 {
    margin-bottom: 46px;
}

.teaser-info .teaser-text {
    margin-bottom: 100px;
}

.teaser-text p {
    margin-bottom: 30px;
}

.teaser-text ul {
    margin-left: 20px;
}

.content-teaser .teaser-image {
    background-repeat: no-repeat;
    background-size: contain;
    height: 70vw;
    margin-bottom: 100px;
    width: 70vw;
}

/* STYLES FOR MISSION */
.mission-section {
    background-attachment: fixed;
    background-position-y: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: var(--text-bright);
    display: flex;
    flex-direction: column;
    min-height: 800px;
}

.mission-section .caption {
    color:white;
}

.mission-section .overlay-wave{
    margin-bottom: -3px;
    margin-top:-11%;
}

.mission-section .overlay-wave-bottom{
    margin-bottom: -3px;
}

.content-mission {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 185px 0 77px var(--page-margin-left);
    width: 85vw;
}

.content-mission h2 {
    margin-bottom: 56px;
}

.content-mission .text {
    width: 26vw;
}

/* STYLES FOR PORTFOLIO */
.portfolio-section {
    align-items: center;
    display: flex;
    flex-direction: column;
    margin-top: 150px;
    text-align: center;
}

.portfolio-section h2 {
    margin-bottom: 119px;
}

.portfolio-section .caption {
    font-size: 36px;
}

.portfolio-section .overlay-wave {
    margin-bottom: -3px;
}

.portfolio-items {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    margin: 0 var(--page-margin-left) 119px var(--page-margin-left);
}

.portfolio-item {
    align-items: center;
    color: var(--primary-color);
    display: flex;
    flex-direction: column;
    margin-bottom: 150px;
}

.portfolio-item .circle-image {
    background-repeat: no-repeat;
    background-size: contain;
    height: 40vw;
    margin-bottom: 80px;
    width: 40vw;
}

.portfolio-item h4 {
    margin-bottom: 63px;
    color:#0790a2;
}

.portfolio-item .text {
    font-weight: bold;
}

/* STYLES FOR CONTACT */
#contact-section {
    align-items: center;
    background-color: #0790a2;
    color: white;
    display: flex;
    flex-direction: column-reverse;
}

.content-contact-form {
    padding: 108px var(--page-margin-left) 78px var(--page-margin-left);
}

.content-contact-form h2 {
    margin-bottom: 30px;
}

.contact-form {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    margin-top: 40px;
}

select {
    align-self: flex-start;
}

#contact-section .content-contact-form .contact-form select,
#contact-section .content-contact-form .contact-form .form-item {
    color: var(--text-dark);
}

#contact-section .content-contact-form .contact-form select, input,
.contact-message .form-item-message {
    border: none;
    border-radius: 3px;
    flex: 1;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    margin-bottom: 30px;
    padding: 20px;
    width: 100%;
}

#datapolicy {
    margin-bottom: 0;
    height: 10px;
    width: 10px;
    appearance: none;
    background-color: white;
}
#datapolicy:checked {
    background-color: var(--primary-color);
}

#datapolicyTick{
    pointer-events: none;
    cursor: pointer;
    position: absolute;
    top:0;
    left: 0;
    width:100%;
    height:100%;
    color: white;
    font-family: "Material Icons", serif;
    font-size: 30px;
    line-height: 30px;
    text-align: center;
    padding-top: 5px;
}

#datapolicyCheckboxContainer {
    position: relative;
    font-size: 0;
    line-height: 0;
}

#datapolicy-link:link{
    color: var(--primary-color);
}

#datapolicy-link:visited{
    color: var(--primary-color);
}

.contact-form select,
.contact-controls input,
.form-checkbox label {
    cursor: pointer;
}

select {
    appearance: none;
    -webkit-appearance: none;
    font-weight: 500;
    width: 100%;
}

.select-wrapper {
    width: 100%;
    position: relative;
}

.select-wrapper::after {
    content: "\e5cf";
    font-family: "Material Icons", serif;
    font-size: 1.5rem;
    pointer-events: none;
    position: absolute;
    right: 18px;
    top: 20%;
}

.contact-select,
.contact-sender,
.contact-message,
.contact-controls {
    align-items: center;
    display: flex;
    flex-direction: column;
}

.contact-select select:focus,
.contact-select select:active,
.form-item:focus,
.form-item:active {
    border: none;
    border-radius: 2pt;
    box-shadow: 0 0 0 1pt var(--primary-color);
    outline: none;
    transition: .1s;
}

.contact-message .form-item-message {
    min-height: 185px;
}

.form-checkbox {
    align-items: center;
    display: flex;
    margin-bottom: 100px;
}

.contact-form input[type=checkbox] {
    width: 20px;
    height: 20px;
}

.form-checkbox label {
    display: inline-block;
    font-size: 24px;
    padding-left: 28px;
    position: relative;
}

.contact-form .form-button {
    background-color: var(--primary-color);
    color: var(--text-bright);
    flex: 0;
    margin-bottom: 0;
}

#contact-section .img-contact-form {
    background-image: url("../assets/img/flaschenpost.svg");
    background-repeat: no-repeat;
    background-size: contain;
    width: 40vw;
    height: 400px;
    margin-top: 50px;
    margin-bottom:-150px;
}

/* STYLES FOR FOOTER */
footer {
    background-image: url("../assets/img/sand-wave-overlay-footer.png");
    background-repeat: no-repeat;
    background-size: contain;
    flex: 1;
}

footer * {
    color: var(--text-bright);
    font-style: normal;
}

.content-footer {
    background-color: #eee6db;
    display: flex;
    flex-direction: column;
    font-size: 32px;
    justify-content: space-between;
    line-height: 42px;
    margin-top: 110px;
    padding: 100px var(--page-margin-left) 125px var(--page-margin-left);
    padding-top:100px;
}

.content-footer img {
    margin-bottom: 50px;
    width: 30vw;
}

.content-footer .nav-item {
    margin-bottom: 32px;
}

.content-footer .nav-item a {
    color:var(--primary-color);
}

.footer-address-top {
    margin-bottom: 42px
}

.footer-address-top address{
    color:var(--primary-color);
}

.footer-address-bottom {
    display: flex;
    flex-direction: column;
}

.footer-address-bottom a {
    color:var(--primary-color);
}

.content-footer.nav-item.dropdown {
    display: none;
}

/* STYLES FOR ANIMATED WAVE */
canvas {  
    bottom: -2px;
    height: 120px;
    position: absolute;
    width: 100%;
}

/* STYLES FOR OVERLAY WAVE */
.overlay-wave {
    width: 100vw;
}

/* STYLES FOR FADE IN ANIMATION */
.animated {
    opacity: 0;
    transform: translate(0, 10vh);
    transition: all 1s;
}

.animated.visible {
    opacity: 1;
    transform: translate(0, 0);
}

/* STYLES FOR COOKIE BANNER */
.cookie-banner {
    align-items: center;
    background-color: rgba(var(--primary-color-rgb), 0.8);
    bottom: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 0;
    padding: 20px 30px;
    position: fixed;
    width: 100%;
}

.cookie-banner .btn.btn-bright {
    font-size: 18px;
}

p.cookie-text {
    color: var(--text-bright);
    font-size: 18px;
    line-height: 1.75;
    margin-bottom: 20px;
}

.cookie-text a {
    color: var(--text-bright);
    font-size: 16px;
    line-height: 1.75;
    text-decoration: underline;
}

/* STYLES FOR PAGE */
.page {
    margin-left: var(--page-margin-left);
    margin-top: 25%;
    width: 75vw;
}

.page h2 {
    margin-bottom: 60px;
}

/* STYLES FOR HERO PAGE */
.hero-page .content-teaser {
    flex-direction: column;
    margin-left: var(--page-margin-left);
    width: 70vw;
}

.hero-page .teaser-image {
    height: 0;
    width: 0;
}

/* STYLES FOR ERROR PAGE */
.error-content {
    display: flex;
    justify-content: center;
    height: 80vh;
    padding-top: 15vh;
    width: 100vw;
}

.error-content h2 {
    margin: 0 10vw;
}

@media only screen and (max-width: 710px) {
    footer {
        background-size: auto;
    }
}

@media only screen and (min-width: 1200px) {
    h1 {
        font-size: 85px;
        line-height: 120px;
        margin-bottom: 36px;
    }
}

@media only screen and (min-width: 1025px) {
    :root {
        --page-margin-left: 17vw;
    }

    body {
        font-size: 18px;
        line-height: 30px;
    }

    h1 {
        font-size: 65px;
        line-height: 95px;
        margin-bottom: 24px;
    }

    h2 {
        font-size: 55px;
        line-height: 67px;
    }

    h4 {
        font-size: 28px;
        line-height: 36px;
    }

    p {
        font-size: 18px;
        line-height: 30px;
    }

    /* STYLES FOR NAVBAR */
    .navbar {
        justify-content: space-around;
        padding: 80px 0 0 0;
    }

    .navbar .brand {
        margin-top: -10px;
    }

    .navbar .brand img {
        max-height: 62px;
        max-width: 20vw;
    }

    .navbar .nav-menu {
        display: contents;
    }

    .nav-menu .nav-menu-items {
        background: none;
        box-shadow: none;
        display: flex;
        justify-content: space-evenly;
        opacity: 1;
        text-align: center;
        width: 45vw;
    }

    .navbar .nav-item {
        padding: 0;
    }

    .navbar .nav-item:active {
        background: none;
    }

    .navbar .nav-item a {
        font-size: 22px;
        line-height: 25px;
    }

    .nav-menu .nav-icon-mobile {
        display: none;
    }

    p.language-label {
        color: var(--text-dark);
        font-size: 22px;
        line-height: 25px;
    }

    .nav-item.dropdown.active {
        background-color: var(--light-bg);
        border-radius: 3px;
        box-shadow: 0 4px 10px 0 rgba(16, 25, 53, 0.3);
        padding: 5px 10px 5px 10px;
    }

    .nav-item.dropdown .language-list {
        display: grid;
        margin-left: 10px;
        margin-right: 10px;
        opacity: 0;
    }

    .nav-item.dropdown .language-list.active {
        margin: 0;
        opacity: 1;
    }

    .nav-item.dropdown .language-list .language-item {
        margin: 5px 0 5px 0;
    }

    /* STYLES FOR NAVIGATION ANCHOR */
    .anchor {
        top: -150px;
    }

    .anchor-sm {
        top: -50px;
    }

    /* STYLES FOR BUTTONS */
    .btn {
        padding: 11px 15px;
    }

    /* STYLES FOR HERO */
    .hero-video {
        height: 96vh;
    }

    .hero-image {
        height: 96vh;
    }

    .content-hero {
        top: 25vh;
        width: 65vw;
    }

    /* STYLES FOR TEASER */
    .teaser-section .content-teaser {
        flex-direction: row;
        justify-content: space-between;
    }

    .teaser-info .teaser-text {
        margin-bottom: 74px;
        width: 38vw;
    }

    .content-teaser .teaser-image {
        background-repeat: no-repeat;
        background-size: contain;
        height: 25vw;
        margin-bottom: 0;
        width: 25vw;
    }

    .teaser-section .overlay-wave {
        margin-top:190px;
        margin-bottom:-233px;
    }

    /* STYLES FOR MISSION */
    .content-mission {
        width: 51vw;
    }

    /* STYLES FOR PORTFOLIO */
    .portfolio-section {
        margin-top: 34px;
    }

    .portfolio-section .caption {
        font-size: 26px;
    }

    .portfolio-items {
        flex-direction: row;
        justify-content: space-between;
        width: 65vw;
    }

    .portfolio-item {
        margin-bottom: 0;
        padding: 20px;
        width: 15vw;
    }

    .portfolio-item:hover {
        background-color: var(--light-bg);
        border-radius: 3px;
    }

    .portfolio-item .circle-image {
        background-repeat: no-repeat;
        background-size: contain;
        height: 180px;
        margin-bottom: 42px;
        width: 180px;
    }

    /* STYLES FOR CONTACT */
    #contact-section {
        flex-direction: row;
        justify-content: space-between;
    }

    .content-contact-form {
        margin-left: var(--page-margin-left);
        margin-top: 108px;
        padding: 0;
        width: 48vw;
        padding-bottom:200px;
    }

    #contact-section .content-contact-form .contact-form select, input,
    .contact-message .form-item-message {
        padding: 15px;
    }

    #contact-section .content-contact-form .contact-form select, input {
        margin-bottom: 30px;
    }
    
    #datapolicy {
        margin-bottom: 0;
    }
    
    #datapolicyTick{
        padding-top:0;
    }

    .select-wrapper {
        width: 296px;
    }

    .select-wrapper::after {
        top: 15%;
    }

    .contact-select,
    .contact-sender,
    .contact-message,
    .contact-controls {
        flex-direction: row;
        justify-content: space-between;
    }

    .contact-form .form-item-name {
        margin-right: 12px;
    }

    .contact-form .form-item-email {
        margin-left: 12px;
    }

    .contact-message {
        margin-bottom: 23px;
    }

    .form-checkbox {
        margin-bottom: 0;
    }

    .form-checkbox label {
        font-size: 18px;
        line-height: 30px;
        padding-left: 18px;
    }

    .form-checkbox label:before {
        height: 30px;
        line-height: 30px;
        width: 30px;
    }

    .form-checkbox input[type=checkbox]:checked + label:before,
    .form-checkbox label:hover:before {
        font-size: 25px;
        line-height: 30px;
    }

    #contact-section .img-contact-form {
        height: 382px;
        margin-right: 150px;
        margin-top: 0;
        width: 192px;
    }

    /* STYLES FOR FOOTER */
    footer{   
        margin-top:-150px;
    }
    
    .content-footer {
        flex-direction: row;
        font-size: 18px;
        line-height: 30px;
        margin-top:120px;
        padding: 100px var(--page-margin-left) 125px var(--page-margin-left);
    }

    .content-footer img {
        margin-bottom: 0;
        width: 20vw;
    }

    /* STYLES FOR HERO PAGE */
    .hero-page .hero {
        padding-bottom: 0;
        position: static;
    }

    .hero-page .content-teaser {
        flex-direction: column;
        margin-left: var(--page-margin-left);
    }

    .hero-page .teaser-text {
        width: 65vw;
    }

    /* STYLES FOR PAGE */
    .page {
        margin-left: var(--page-margin-left);
        margin-top: 15%;
        width: 65vw;
    }

    /* STYLES FOR COOKIE BANNER */
    .cookie-banner {
        flex-direction: row;
        padding: 40px 70px;
    }

    .cookie-banner .btn.btn-bright {
        font-size: 16px;
    }

    p.cookie-text {
        font-size: 16px;
        margin-bottom: 0;
        margin-right: 40px;
    }

    /* STYLES FOR ERROR PAGE */
    .error-content {
        padding-top: 35vh;
    }

    .error-content h2 {
        margin: 0 var(--page-margin-left);
    }
}

@media only screen and (max-width:1024px){
    .content-hero{
        align-items:center;
    }
    h1 {
        margin-top:10px;
        font-size: 35px;
        line-height: 30px;
        margin-bottom:20px;
    }
    h3{
        font-size:25px;
        line-height:40px;
    }
}

@media only screen and (max-height: 650px){
    canvas {
        height: 100px;
    }
}

@media only screen and (max-height: 650px) {
    
}

@media only screen and (min-width:1100px){
      /* STYLES FOR FOOTER */
      footer{   
        margin-top:-150px;
    }
    
    .content-footer {
        flex-direction: row;
        font-size: 18px;
        line-height: 30px;
        margin-top:130px;
        padding: 100px var(--page-margin-left) 125px var(--page-margin-left);
    }
}
@media only screen and (min-width:1250px){
    .teaser-section .overlay-wave{
        margin-bottom:-155px;
    }
    /* STYLES FOR FOOTER */  
  .content-footer {
      margin-top:150px;
  }
}
@media only screen and (min-width:1580px){
    .teaser-section .overlay-wave{
        margin-bottom:-183px;
    }
    /* STYLES FOR FOOTER */
  .content-footer {
      margin-top:190px;
  }
}


@media only screen and (min-width:1760px){
    .teaser-section .overlay-wave{
        margin-bottom:-233px;
    }
    /* STYLES FOR FOOTER */
  .content-footer {
      margin-top:210px;
  }
}