*, *:before, *:after {
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}

@font-face {
    font-family: 'MiloSlabWeb-Bold';
    src: local("MiloSlabWeb-Bold"),local("MiloSlabWeb-Bold"),url(fonts/MiloSlabWeb/MiloSlabWeb-Bold.woff) format("woff")
}

@font-face {
    font-family: 'MiloSlabWeb-Light';
    src: local("MiloSlabWeb-Light"),local("MiloSlabWeb-Light"),url(fonts/MiloSlabWeb/MiloSlabWeb-Light.woff) format("woff")
}

/* font-style, color-style *******************************************/

html {
    font-size: 62.5%;
    background-color: #323e48; /* dark grey */
}

body {    
    font-family: 'MiloSlabWeb-Light', sans-serif;
    font-family: 'MiloSlabWeb-Bold', sans-serif;
    text-rendering: optimizeLegibility; 
}

figcaption {
    font-family: 'MiloSlabWeb-Bold', sans-serif;
    font-size: 4.8rem;
    color: #28af70; /* medium green */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a, p {
    font-family: 'MiloSlabWeb-Light', sans-serif;
    font-size: 2.5rem;
    text-decoration: none;
    color: #006abc; /* medium blue */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a:hover {
    color: #279ee3; /* light blue */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;  
}

a:focus {
    color: #fff; /* white */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; 
}

.link {
    font-family: 'MiloSlabWeb-Bold', sans-serif;
    font-size: 2.6rem;
    text-decoration: none;
    color: #009146; /* dark green */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.link:hover {
    color: #28af70; /* medium green */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;  
}

.link:focus {
    color: #fff; /* white */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.impressum>p {
    font-size: 2rem;
    line-height: 1.25;
    color: #279ee3; /* light blue */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* layout-style *******************************************/

body {
    width: 100%;
}

.container {
    height: 100vh;
    display: -ms-grid;
    display: grid;
    grid-template-areas: ". . ."
                         ". main ." 
                         ". footer ."
                         ". . .";
    -ms-grid-columns: 1fr 1.7fr 1fr;
    grid-template-columns: 1fr 1.7fr 1fr;
    -ms-grid-rows: 1fr 2fr 2fr 1fr;
    grid-template-rows: 1fr 2fr 2fr 1fr;
}

.main {
    -ms-grid-row: 2;
    grid-row: 2;
    -ms-grid-column: 2;
    grid-column: 2;
    grid-area: main;
}

.footer {
    -ms-grid-row: 3;
    grid-row: 3;
    -ms-grid-column: 2;
    grid-column: 2;
    grid-area: footer;
}

.container-impressum {
    height: 100vh;
    display: -ms-grid;
    display: grid;
    grid-template-areas: ". . ."
                         ". impressum ." 
                         ". footer-impressum ."
                         ". . .";
    -ms-grid-columns: 1.4fr 2.3fr 1.1fr;
    grid-template-columns: 1.4fr 2.3fr 1.1fr;
    -ms-grid-rows: 1.5fr 2fr 2fr 1fr;
    grid-template-rows: 1.5fr 2fr 2fr 1fr;
}

.impressum {
    -ms-grid-row: 2;
    grid-row: 2;
    -ms-grid-column: 2;
    grid-column: 2;
    grid-area: impressum;
}

.footer-impressum {
    margin-top: 1rem;
    -ms-grid-row: 3;
    grid-row: 3;
    -ms-grid-column: 2;
    grid-column: 2;
    grid-area: footer-impressum;
}

img {
    min-width: 270px;
    max-width: 340px;
}

figcaption {
    margin-top: 1.5rem;
}

figure {
    margin: 1rem auto;
}

p {
    margin: 0.5rem auto;
}

.contain {
    -o-object-fit: contain;
       object-fit: contain;
}

/* media queries large screens *******************************************/

@media screen and (min-width: 720px) {

    .container {
    display: -ms-grid;
    display: grid;
    grid-template-areas: ". . ."
                         ". main ." 
                         ". footer ." 
                         ". . .";
    -ms-grid-columns: 3fr 2.6fr 3fr;
    grid-template-columns: 3fr 2.6fr 3fr;
    -ms-grid-rows: 2fr 2fr 0.4fr 2fr;
    grid-template-rows: 2fr 2fr 0.4fr 2fr;
    }

    .main, .footer {
        padding-left: 1rem;
    }

    figcaption {
        font-size: 5.1rem;
    }

    a, p {
        font-size: 2.6rem;
        }   


    .container-impressum {
    display: -ms-grid;
    display: grid;
    grid-template-areas: ". . ."
                         ". impressum ." 
                         ". footer-impressum ."
                         ". . .";
    -ms-grid-columns: 2.2fr 2fr 2fr;
    grid-template-columns: 2.2fr 2fr 2fr;
    -ms-grid-rows: 2fr 1fr 1fr 2fr;
    grid-template-rows: 2fr 1fr 1fr 2fr;
    }

    .footer-impressum {
        margin-top: 1rem;
    }

    .impressum>p {
        font-size: 2.2rem;
        line-height: 1.3;
    }

    .footer-impressum, .impressum {
        padding-left: 2rem;
    }

    .link {
        font-size: 2.8rem;
    }

}

/* media queries small screens *******************************************/

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

    .container {
    height: 100vh;
    display: -ms-grid;
    display: grid;
    grid-template-areas: ". . ."
                         ". main ." 
                         ". footer ."
                         ". . .";
    -ms-grid-columns: 0.8fr 2fr 0.8fr;
    grid-template-columns: 0.8fr 2fr 0.8fr;
    -ms-grid-rows: 1fr 2fr 1fr 1fr;
    grid-template-rows: 1fr 2fr 1fr 1fr;
    }

    figcaption {
        font-size: 4.6rem;
    }

    a, p {
        font-size: 2.3rem;
        }

    .container-impressum {
    height: 100vh;
    display: -ms-grid;
    display: grid;
    grid-template-areas: ". . ."
                         ". impressum ." 
                         ". footer-impressum ."
                         ". . .";
    -ms-grid-columns: 0.6fr 2fr 0.5fr;
    grid-template-columns: 0.6fr 2fr 0.5fr;
    -ms-grid-rows: 1.5fr 2fr 2fr 1fr;
    grid-template-rows: 1.5fr 2fr 2fr 1fr;
    }

    .impressum>p {
        font-size: 1.8rem;
    }

    .link {
        font-size: 2.3rem;
    }

}
