@font-face {
    font-family: Monoserrat;
    src: url(Montserrat-VariableFont_wght.ttf);
}


:root {
    --content-spacing: 15px;
    --content-padding: 45px;
    --center-width: 50%;
}


html {
    background-color: rgb(139, 202, 231);
    font-family: Monoserrat;
}

html, body {
    margin: 0;
}

body {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--content-spacing);
}

    .title {
        padding: 15px;
        margin: 5px 0;
        border-radius: 60px;
        background-color: aliceblue;
        font-size: 22px;
        text-align: center;
    }

    .content {
        position: relative;
        margin: var(--content-spacing);
        background-color: white;
        padding: var(--content-padding);
        margin-bottom: 20px;
        border-top-left-radius: 50px;
        border-top-right-radius: 50px;
        border-bottom-left-radius: 30px;
        border-bottom-right-radius: 30px;
    }

    #header {
        width: 650px;
        height: 270px;
        margin-top: var(--content-spacing);
        border-radius: 2em;
        background: url(img/Logo.png) white center no-repeat;
        background-size: contain;
    }

    #nav {
        align-self: stretch;
        display: flex;
        flex-direction: row;
        justify-content: space-around;
        margin: 5px 0;
    }

        #nav > button {
            font-size: 24px;
            padding: 10px;
            text-align: center;
            background-color: rgb(255, 255, 255);
            color: rgb(100, 100, 100);
            border-radius: 50px;
            border: 1px solid gray;
            transition: color .3s, font-size .3s;
            opacity: 0.8;
        }
        #nav > button:hover {
            background-color: rgb(132, 159, 168);
            color: black;
            font-size: 32px;
            color: rgb(255, 255, 255);
            opacity: 1;
            cursor: pointer;
        }

        #service-button {
            display: none;
        }

    #main {
        align-self: stretch;
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        margin-top: 30px;
    }

        #main > .content.side {
            flex: 1 1;
        }

        #service {
            width: var(--center-width);
            display: flex;
            flex-direction: column;
            align-items: center;
            --img-width: calc(50vw - 2 * var(--content-spacing) - var(--content-padding));
        }

            #service > span {
                margin-top: 30px;
                font-size: 25px;
            }

            #service > div {
                width: var(--img-width);
                height: calc(var(--img-width) * 2 / 3);
                border-radius: 2em;
                background-position: center;
                background-size: cover;
                display: flex;
                align-items: stretch;
                justify-content: stretch;
                overflow: hidden;
            }
            #service > div.portrait {
                height: calc(var(--img-width) * 3 / 2);
            }

                #service > div > div {
                    padding: 40px;
                    background-color: rgba(0, 0, 0, 0.5);
                    color: white;
                    font-size: 20px;
                    opacity: 0;
                    transition: opacity .3s;
                }
                #service > div:hover > div, #service > .clicked > div {
                    opacity: 1;
                }

    #imprint {
        align-self: stretch;
        margin: var(--content-spacing);
        margin-top: calc(2 * var(--content-spacing));
    }

    #contact, #map {
        width: var(--center-width);
    }


footer{
    margin-bottom: 5px;
    margin-top: 25px;
    margin-right: 20px;
    text-align: center;
    color: rgb(71, 71, 71);
    font-size: 16px;
    font-family: Monoserrat;
}



@media screen and (max-width: 940px){

    h1 {
        font-size: 23px;
    }

    #header {
        width: 370px;
        height: 170px;
        --max-width: calc(100vw - 4 * var(--content-spacing));
        max-width: var(--max-width);
        max-height: calc(var(--max-width) * 17 / 37);
    }

    #service-button {
        display: block;
    }

    #main {
        flex-direction: column;
        align-items: stretch;
    }

        #main > .content.side {
            text-align: center;
        }

        #service {
            width: auto;
            --img-width: calc(100vw - 4 * var(--content-spacing) - 2 * var(--content-padding));
        }

    #contact, #map {
        align-self: stretch;
        width: auto;
    }

}