:root {
    --background-main: #E4E3E8;
    --base-font-size: 1.5em;
    --base-line-height: 1.5;

    --color-blue-dark: #053C69;
    --color-blue-medium: #1464A0;
    --color-blue-light: #2DA0D2;
    --color-green: #AFC30F;

    --grid-gap: 3vw;
}

@media (max-width: 1280px) {
    :root {
        --base-font-size: 1.25em;
    }
}

@media (max-width: 991px) {
    :root {
        --base-font-size: 1.125em;
    }
}

@media (max-width: 550px) {
    :root {
        --base-font-size: 1em;
    }
}

* {
    box-sizing: border-box;
}

.sr-only:not(:focus):not(:active) {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

html.lenis {
    height: auto;
    scroll-padding-top: 4em;
}

.lenis.lenis-smooth {
    scroll-behavior: auto;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-scrolling iframe {
    pointer-events: none;
}

body {
    background-color: var(--background-main);
    background-image: url(../img/hero-bg.jpg);
    background-size: 100% auto;
    background-repeat: no-repeat;
    margin: 0;
    font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    font-size: var(--base-font-size);
    line-height: var(--base-line-height);
    color: var(--color-blue-dark);
}

body.layout-basic {
    background-image: unset;
}

.page-wrapper {
    max-width: 100vw;
    overflow-x: hidden;
}

a {
    color: var(--color-blue-medium);
    text-decoration: none;
}

/* Text formatting */

.headline {
    margin-bottom: 1.5em;
}

p:first-child {
    margin-top: 0;
}

p {
    letter-spacing: -.0125em;
}

.h2 {
    font-size: 1.25em;
    font-weight: 700;
    line-height: calc(var(--base-line-height) - .2);
}

.headline.seperator-small:after {
    display: block;
    content: '';
    width: 1.5em;
    height: .175em;
    position: absolute;
    bottom: -.75em;
    background-color: var(--color-blue-dark);
}

.headline.seperator-small {
    position: relative;
}

.blue-box .headline.seperator-small:after {
    background-color: #fff;
}

@media (max-width: 768px) {
    .h2 {
        font-size: 1.125em;
    }
}

/* Fonts */

@font-face {
    font-family: 'IBM Plex Sans';
    font-weight: 400;
    src: url('../fonts/IBMPlexSans-Regular.woff2') format('woff')
}

@font-face {
    font-family: 'IBM Plex Sans';
    font-weight: 700;
    src: url('../fonts/IBMPlexSans-Bold.woff2') format('woff')
}

/* Container settings */

.container {
    max-width: 1600px;
    padding: 0 4vw;
    margin: 0 auto;
}

.grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-gap: var(--grid-gap);
}

.flex {
    display: flex;
}

main.main-content {
    display: flex;
    flex-direction: column;
    gap: 8vw;
}

/* Page header */

header.page-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 2em 0;
}

.layout-basic header.page-header {
    position: inherit;
}

.page-header .logo {
    grid-column: span 2;
}

.page-header .logo svg {
    width: 100%;
    height: auto;
}

@media (max-width: 768px) {
    .page-header .logo {
        grid-column: span 4;
    }
}

/* Hero section */

section.hero {
    aspect-ratio: 16/9;
    max-height: 100vh;
}

.hero-wrapper {
    height: 100%;
    display: flex;
    align-items: end;
    padding-bottom: 3vw;
}

.hero-wrapper .container {
    flex: 1 0 0;
}

.hero-text {
    grid-column: span 6;
}

.hero-text h1 {
    font-size: 4.5vw;
    line-height: 1.15;
}

.hero-text h1 span>span {
    animation: reveal 1.5s cubic-bezier(0.77, 0, 0.175, 1) forwards;
    transform: translate(0, 100%);
    display: inline-block;
}

.hero-text h1 span.line-01 span {
    animation-delay: .15s;
}

.hero-text h1 span.line-02 span {
    animation-delay: .25s;
}

.hero-text h1 span.line-03 span {
    animation-delay: .35s;
}

.hero-text h1 span.line-04 span {
    animation-delay: .45s;
}

@keyframes reveal {
    0% {
        transform: translate(0, 105%);
    }

    100% {
        transform: translate(0, 0);
    }
}

.hero-text h1 span {
    display: inline-flex;
    overflow: hidden;
}

.hero-text h1 span.line-01,
.hero-text h1 span.line-04 {
    translate: 6vw 0;
}

.hero-text h1 span.line-02 {
    translate: 9vw 0;
}

.scroll-indicator {
    grid-column: 12/13;
    display: flex;
    align-items: end;
    padding-bottom: 4vw;

}

.scroll-indicator svg {
    cursor: pointer;
    width: 2.5vw;
    ;
}

.scroll-indicator svg:hover :is(path, line) {
    stroke: var(--color-green);
}

@media (min-width: 769px) {
    section.hero {
        min-height: 30em;
    }
}

@media (max-width: 768px) {
    section.hero {
        height: unset;
        aspect-ratio: 3/2;
        margin-bottom: 2em;
    }

    .hero-wrapper {
        padding-bottom: 0;
    }

    .hero-text h1 {
        font-size: 7.5vw;
        margin: 0;
    }
}

/* Main text section */

.text-block {
    grid-column: span 7;
}

.imprint-privacy .text-block {
    grid-column: span 9;
    font-size: .75em;
}

.text-block p {
    padding-right: 4vw;
}

.information-block {
    grid-column: span 5;
}

.offset-top {
    margin-top: 5em;
}

.blue-box {
    background: rgb(81, 158, 206);
    background: linear-gradient(350deg, rgba(81, 158, 206, 1) 0%, rgba(46, 99, 156, 1) 50%);
    color: #fff;
    padding: var(--grid-gap);
    font-size: .875em;
    box-shadow: 0 20px 40px rgb(47 100 157 / 30%);
}

.blue-box p {
    line-height: calc(var(--base-line-height) - .2);
}

@media (max-width: 991px) {
    .scroll-indicator svg {
        display: none;
    }
}

@media (max-width: 768px) {

    .text-block,
    .information-block {
        grid-column: span 12
    }

    .blue-box {
        font-size: inherit;
    }

    .offset-top {
        margin-top: 0;
    }
}

/* Contact slider */

.contact-slider .splide__track {
    overflow: visible;
}

.splide__arrow svg {
    fill: #fff;
}

.contact-slider .splide__arrow {
    background-color: var(--color-green);
    opacity: 1;
    border-radius: 0;
    width: 4em;
    height: 4em;
}

.contact-slider .splide__arrow--next {
    right: -6vw;
}

.contact-slider .splide__arrow--prev {
    left: -6vw;
}


.single-contact {
    opacity: 1;
    transition: opacity ease-in-out .3s;
}

.single-contact:not(.is-visible) {
    opacity: .3;
}

.splide__arrow:disabled {
    display: none;
}

.single-contact .grid {
    width: 100%;
}

.single-contact .contact-profile {
    grid-column: span 4;
    position: relative;
}

.single-contact .contact-information {
    grid-column: 6/13;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-column-gap: var(--grid-gap);
    align-items: center;
}

.single-contact .contact-img {
    background-color: var(--color-blue-dark);
    aspect-ratio: 3/2;
    box-shadow: 0 10px 20px rgb(5 60 105 / 20%);
}

.single-contact .contact-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contact-name {
    position: absolute;
    bottom: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    align-items: end;
}

.contact-name>div {
    background-color: var(--color-blue-medium);
    color: #fff;
    padding: .125em .5em;
    font-size: 2em;
    font-weight: 700;
    line-height: 1.14;
    display: inline-block;
}

.contact-name>div.line-02 {
    translate: .5em 0;
}

.contact-information .text {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.contact-details>div {
    display: flex;
    gap: 1em;
}

.contact-details .label {
    min-width: 4em;
}

.contact-details>div {
    display: flex;
    gap: 1em;
}

.contact-details .label {
    min-width: 4em;
}

.contact-information .headline {
    grid-column: span 7;
    margin: 0;
}

.contact-information .text {
    grid-column: 2/8;
}

.contact-slider .splide__pagination__page.is-active {
    transform: scale(1);
    opacity: 1;
}

.contact-slider .splide__pagination__page {
    background-color: var(--color-blue-dark);
    opacity: .3;
}

.contact-slider .splide__pagination {
    position: relative;
    margin-top: 2em;
}

@media (max-width: 768px) {
    .single-contact .contact-profile {
        grid-column: span 8;
    }

    .single-contact .contact-information {
        grid-column: span 12;
        display: flex;
        flex-direction: column;
        align-items: start;
    }

    .contact-information .headline {
        margin-bottom: 1.5em;
    }

    .contact-slider .splide__track {
        padding-left: 0 !important;
    }
}


/* Logo slider */

.logo-wall-wrapper {
    margin-top: 4em;
}

.logo-slider .splide__track {
    overflow: visible;
}

.logo-wall-wrapper .logo {
    display: flex;
    justify-content: center;
    align-items: center;
    mix-blend-mode: unset;
}

.logo-wall-wrapper .logo img {
    filter: grayscale(1);
    max-height: 5.5em;
    max-width: 60%;
}

/* Footer */

footer.page-footer {
    font-size: .75em;
    margin-top: 6vw;
}

.publisher .container {
    justify-content: end;
}

.publisher-text {
    text-align: right;
    position: relative;
    display: flex;
    align-items: end;
    padding-right: 3em;
}

.publisher-text:after {
    display: block;
    content: '';
    width: 2px;
    height: 3em;
    position: absolute;
    right: 1.5em;
    bottom: 0;
    background-color: var(--color-blue-dark);
}

.publisher-logos {
    align-items: end;
    gap: 2em;
}

.logo-mwae {
    mix-blend-mode: darken;
}

@media (min-width: 769px) {
    .logo-wfbb {
        margin-left: 3em;
    }
}

.copyright {
    background-color: var(--color-blue-medium);
    padding: 1.5em 0;
    color: #fff;
    margin-top: 1.5em;
}

.copyright .flex {
    justify-content: space-between;
}

footer .links {
    display: flex;
    gap: 2em;
}

.copyright a {
    color: #fff;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .publisher-text br {
        display: none;
    }

    .publisher-content.flex {
        flex-direction: column;
        gap: 1em;
    }
    
    .publisher-text {
        order: 2;
        text-align: center;
        padding: 0;
    }
    
    .publisher-text:after {
        display: none;
    }
    
    .publisher-logos.flex {
        justify-content: center;
        margin-top: 2em;
    }

    .copyright .container.flex {
        flex-direction: column;
        gap: 1em;
        align-items: center;
    }
    
    .copyright-text {
        text-align: center;
    }
    
}