@import "shared.css";


html {
    -webkit-text-size-adjust: 100%;
    line-height: 1.5;
    min-height: 100vh;
    width: 100vw;
    scroll-snap-type: y proximity;
    max-height: 100vh;
}

body {
    margin: 0 auto;
    display: flex;
    overflow-x: hidden;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    xmin-height: 100vh;
    xwidth: 100vw;
    color: #000;
    background-color: var(--background-color);
    font-family: Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;
}


    body > * {
        width: 100%;
        margin-left: 1.25rem;
        margin-right: 1.25rem
    }

*, *:before, *:after {
    box-sizing: border-box !important;
}

.home section:first-of-type:not(:last-of-type) {
    min-height: 100vh;
}



@media(min-width: 640px) {
    header, #hero {
        max-width: 640px
    }
}

@media(min-width: 768px) {
    body > * {
        margin-left: 1.75rem;
        margin-right: 1.75rem
    }

    header, #hero {
        max-width: 768px;
    }

    .home header + section:first-of-type:not(:last-of-type) {
        min-height: calc(100vh - 40px - 2.5rem);
    }
}

@media(min-width: 1024px) {
    body > * {
        margin-left: 2.5rem;
        margin-right: 2.5rem
    }

    header, #hero {
        max-width: 1024px;
    }

    .home header + section:first-of-type:not(:last-of-type) {
        min-height: calc(100vh - 46px - 4.5rem);
    }
}


@media(min-width: 768px) {

    .heroBackground {
        max-width: 100% !important;
    }
}


.heroBackground {
    background-image: url('image/startHeroBg.svg');
    background-repeat: no-repeat;
    background-size: cover;
    padding: 0px !important;
    margin: 0px !important;
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -1;
}

header {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: stretch;
    z-index: 2;
    margin: 20px 20px 0px 40px !important;
}

    header:before {
        content: " ";
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100px' height='100px'%3E%3Cpattern id='diagonalHatch' patternUnits='userSpaceOnUse' width='4' height='4'%3E%3Cpath d='M-1,1 l2,-2 M0, 4 l4, -4 M3, 5 l2, -2' style='stroke:rgba(255,255,255,.3); stroke-width:1.5'/%3E%3C/pattern%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='url(%23diagonalHatch)'/%3E%3C/svg%3E%0A");
        border-bottom-width: 1px;
        border-top-width: 1px;
        background-color: rgb(var(--red), var(--green), var(--blue));
        border-color: rgb(var(--red), var(--green), var(--blue));
        height: .5rem;
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
    }

.logo {
    height: var(--header-height);
    display: flex;
    align-items: center
}

    #imgLogo {
        fill: var(--text-color);
        stroke: var(--text-color);
        width: 250px;
        margin-left: 10px;
    }

@media (max-width:767px) {

    #imgLogo {
        width: 160px;
    }
}

@media (min-width:768px) {

    header {
        max-width: 768px;
        padding-bottom: 1rem;
        padding-top: 1.5rem;
    }

    #imgLogo {
        width: 190px;
    }
}

@media (min-width:1024px) {

    header {
        max-width: 1024px;
    }

        header nav li a:hover {
            text-decoration: underline;
        }

    #imgLogo {
        width: 260px;
    }
}

header > a > img {
    padding-right: .75rem;
    align-self: center;
}

@media(max-width:960px) {
    .hamburger:checked ~ .top-menu {
        max-height: 100vh;
        opacity: 1;
        padding: 15px 0
    }
}

header > a {
    display: flex;
    align-items: center;
    font-weight: 700;
    font-size: 1.125rem;
    line-height: 1.75rem;
    white-space: nowrap;
    flex: 1;
}

header nav li {
    border-color: #374151;
    cursor: pointer;
    display: block;
    text-align: center;
    width: 100%;
}

    header nav li a {
        border-top-width: 1px;
        border-color: #d1d5db;
        display: inline-block;
        padding-top: .5rem;
        padding-bottom: .5rem;
        width: 100%;
        color: #000;
        text-decoration: none;
        font-weight: bolder;
    }

header nav ul {
    background-color: #fff;
    border-radius: .375rem;
    display: none;
    box-shadow: 0 0 transparent,0 0 transparent,0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);
    z-index: 20;
    transition-property: all;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-duration: .15s;
}

    .relative,
    header nav ul > li {
        position: relative;
    }

        header nav ul > li ul {
            display: block;
            font-size: .875rem;
            line-height: 1.25rem;
            position: static;
            left: 0;
            top: 3rem;
            z-index: 10;
        }

            header nav ul > li ul li:first-of-type a {
                border-top-width: 0;
            }

        header nav ul > li:hover ul {
            visibility: visible;
        }

header .hamburger {
    border-color: #6b7280;
    border-radius: .125rem;
    border-width: 1px;
    padding: .5rem 1rem;
    background-color: transparent;
    margin-right: 25px;
}

header nav:hover .hamburger {
}

.block,
header nav:hover > ul {
    display: block;
}

.content-container {
    padding: 80px;
}


@media (max-width:767px) {
    .content-container {
        padding: 40px;
    }
}

@media (max-width:1023px) {
    header nav:hover > ul ul {
        background-color: #fff;
        position: static;
    }

    header nav:hover > ul {
        padding-top: .25rem;
        position: absolute;
        right: .75rem;
        left: .75rem;
        margin-top: 0px;
    }

        header nav:hover > ul li {
            background-color: #fff;
        }

            header nav:hover > ul li > a:hover {
                background-color: rgba(var(--red), var(--green), var(--blue), .3);
                border-color: rgba(var(--red), var(--green), var(--blue), .7);
            }

        header nav:hover > ul > li:hover + li > a {
            border-color: rgba(var(--red), var(--green), var(--blue), .7);
        }

        header nav:hover > ul > li:hover:last-of-type > a {
            border-bottom-width: 1px;
        }
}

.page header ~ main {
    margin-top: 0;
    margin-bottom: 0;
}


@media(min-width: 1024px) {
    header nav li a {
        border-top-width: 0;
        width: auto
    }

    header nav ul > li ul {
        background-color: #e5e7eb;
        display: none;
        position: absolute;
        top: 2rem
    }

    header nav ul > li:hover ul {
        display: block;
        visibility: visible
    }

    header nav:hover > ul {
        display: inline-block
    }

    header nav li {
        display: inline-block;
        padding-left: 1rem;
        padding-right: 1rem;
        width: auto
    }

    header nav ul {
        background-color: transparent;
        display: inline-block;
        box-shadow: 0 0 transparent,0 0 transparent,0 0 transparent;
        width: auto
    }

    header .hamburger {
        display: none
    }
}

@keyframes fade-in-1 {
    0% {
        opacity: 0;
        visibility: visible;
    }

    100% {
        opacity: 1;
        visibility: visible;
    }
}

#hero {
    flex-direction: column;
    justify-content: space-evenly;
    padding-bottom: 0;
    position: relative;
    margin-left: 0px;
    margin-right: 0px;
    display: flex;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    flex-grow: 1;
    text-align: center;
    z-index: 1;
}

    #hero .intro {
        position: absolute;
        bottom: 3rem;
        right: 0px;
        background-color: #fff;
        z-index: 2;
    }

        #hero .intro h1 {
            font-size: 54px;
            margin-top: 0px;
            margin-bottom: 0px;
            padding: 0px 30px 0px 30px;
            color: #fff;
            background-color: #000;
        }

        #hero .intro h2 {
            font-size: 44px;
            margin-top: 0px;
            margin-bottom: 0px;
            padding: 7px 30px 7px 30px;
            font-weight: 100;
        }

    #hero .hero {
        width: 50rem;
    }

    #hero:after {
        display: none;
    }

    #hero img {
        margin-left: 0px;
        margin-right: 0px;
        width: 100% !important;
        max-width: 960px;
        position: relative;
        top: -4rem;
        z-index: 1;
    }

@media screen and (max-height: 600px) {

    #hero img {
        top: -2rem;
        max-width: 720px;
    }

    #hero .intro {
        bottom: 1rem;
    }

        #hero .intro h1 {
            font-size: 32px;
        }

        #hero .intro h2 {
            font-size: 30px;
        }
}


@media screen and (max-width: 600px) {

    #hero img {
        max-width: 500px;
    }

    #hero .intro {
        position: relative;
        bottom: 0;
        right: 0;
        transform: none;
    }

        #hero .intro h1 {
            font-size: 42px;
            text-align: center !important;
        }

        #hero .intro h2 {
            font-size: 34px;
            text-align: center !important;
        }
}


@media screen and (min-width: 601px) and (max-width: 768px) and and (min-height: 480px) {
    #hero .intro {
        bottom: 8rem;
    }
}

@media screen and (max-width: 439px) {
    #hero .intro h1 {
        font-size: 32px;
    }
    #hero .intro h2 {
        font-size: 26px;
    }
}

@media screen and (max-width: 380px) {
    #hero .intro h1 {
        font-size: 24px;
    }
    #hero .intro h2 {
        font-size: 20px;
    }
}

@media screen and (max-width: 282px) {
    #hero .intro h1 {
        font-size: 22px;
    }
    #hero .intro h2 {
        font-size: 18px;
    }
}


@media(min-width: 768px) {
    #hero {
        flex-direction: row;
        justify-content: center
    }

        #hero .hero {
            width: 50rem
        }
}


@media(min-width: 1024px) {
    #hero nav li {
        font-size: .875rem;
        line-height: 1.25rem
    }

    #hero .hero {
        width: 50rem
    }
}

@media(min-width: 1280px) {
}

@media(min-width: 1536px) {
}



@media(min-width: 1024px) {
    #hero .intro {
        visibility: hidden;
        animation: fade-in-1 2s ease 1s forwards;
    }

    #hero img {
        animation: slide-down 1s ease;
    }
}



.home #description {
    background-color: #fff;
    min-height: 100vh;
    padding-left: 1.75rem;
    padding-right: 1.75rem;
    /*padding-bottom: 2.5rem;*/
    margin-top: 10px;
}

    .home #description p, .home #description li {
    }

    .home #description p {
        padding-top: .5rem;
        padding-bottom: .5rem;
        text-align: justify;
    }

    .home #description a {
        color: var(--action-color);
        text-decoration: underline;
        font-weight: bold;
    }

        .home #description a:hover :not(.cta-button) {
            filter: none !important;
            color: #fff !important;
            background-color: var(--action-color);
            border-radius: 2px;
            text-decoration: none;
        }

    .home #description .cta-button a:hover {
        background-color: #fff !important;
        color: var(--action-color) !important;
        text-decoration: none;
    }

    .home #description h1 {
        margin-top: 2.5rem;
        text-align: center;
    }

    .home #description h2 {
        font-weight: 700;
        font-size: 1.125rem;
        line-height: 1.75rem;
        padding-top: .75rem;
        padding-bottom: .75rem;
        margin-top: 2.5rem;
    }

    .home #description hr {
        clear: both;
        scroll-snap-align: start;
    }

    .home #description img {
        border-radius: .125rem;
        float: left;
        margin-top: 1.25rem;
        margin-bottom: 2.5rem;
        margin-top: 65px !important;
        width: 90% !important;
    }

    .float-right,
    .home #description hr:nth-of-type(odd) ~ p img {
        float: right;
    }

    .home #description img#sprachen {
        width: 50% !important;
        margin-left: 25% !important;
    }

@media (min-width: 853px) {
    .video-container video {
        margin-top: 150px;
        max-width: 500px;
        padding: 0px 20px;
    }
}

footer {
    text-align: center;
    vertical-align: bottom;
}

    footer a {
        display: inline-block;
        flex-grow: 0;
        font-weight: 700;
        font-size: .75rem;
        line-height: 1rem;
        padding: .75rem;
        color: #374151;
        transition-property: background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
        transition-timing-function: cubic-bezier(.4,0,.2,1);
        transition-duration: .15s;
    }

        footer a:focus {
            color: rgb(var(--red), var(--green), var(--blue));
        }

    footer img {
        margin: .75rem auto;
    }

    footer ul {
        align-items: center;
    }

    footer li {
        display: inline-block;
    }

    footer > div {
        font-size: .875rem;
        line-height: 1.25rem;
        margin: 1.75rem;
    }

    footer i {
        display: block;
        height: 2rem;
        width: 2rem;
        transform: translateX(0) translateY(0) rotate(0) skewX(0) skewY(0) scaleX(1) scaleY(1);
        transition-property: all;
        transition-timing-function: cubic-bezier(.4,0,.2,1);
        transition-duration: .15s;
    }

        footer i:hover {
            opacity: .9;
        }


footer {
    background-color: var(--footer-background-color);
    margin: 0;
    max-width: none;
    padding: 1.25rem;
    color: var(--footer-color);
    width: 100vw;
}

    footer.dark a {
        color: var(--action-color);
    }

        footer.dark a:focus {
        }

@media (min-width:640px) {
    footer a {
        padding: .5rem;
    }
}
