:root {
    --page-bg: white;
    --main-bg: #cccccc;
    --heading: #002707;
    --link: #009933;
    --link-hover: #00EE4F;
    --photo-border: #519058;
    }

* {
    box-sizing: border-box;
    }

body {
    background: var(--page-bg);
    font-family: "Noto Serif", serif;
    }

h1 {
    font-size: 200%;
    font-weight: 400;
    }

h2 {
    color: var(--heading);
    }

header {
    background: var(--page-bg);
    text-align: center;
    max-width: 1400px;
    margin: 0 auto;
    position: relative;
}

#header_logo {
    height: 180px;
    width: auto;
    margin: 48px;
    }

a {
    text-decoration: none;
    color: var(--link);
    }

a:hover {
    color: var(--link-hover);
    }

main {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 24px 10%;
    background: var(--main-bg);
    align-items: center;
    }

.cell {
    padding: 5%;
    aspect-ratio: 4 / 5;
    }

main h1 {
    grid-column: 1 / -1;
    text-align: center;
    }

.photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    outline: 1px solid var(--photo-border); outline-offset: 4px;
    }

#photo_1 {
    border-radius: 2% 2% 2% 25%;
    }

#photo_2 {
    border-radius: 2% 2% 25% 2%;
    }

#photo_3 {
    border-radius: 25% 25% 2% 2%;
    }

#lang-toggle {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    padding: 0;
    background: var(--page-bg);
    border: 1px solid var(--photo-border);
    border-radius: 4px;
    cursor: pointer;
    }

#lang-toggle img {
    display: block;
    width: 28px;
    height: 18px;
    margin: auto;
    object-fit: cover;
    }

#kontakt {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    max-width: 800px;
    margin: 24px auto;
    padding: 0 16px;
    align-items: start;
    }

.info {
    text-align: center;
    font-size: 90%;
    }

.info h2 {
    font-size: 120%;
    }

.info p {
    margin: 6px 0;
    }

.register {
    display: block;
    padding: 24px 16px;
    }

.register h1 {
    text-align: center;
    }

.service {
    max-width: 800px;
    margin: 0 auto 12px;
    padding: 4px 24px;
    background: var(--page-bg);
    border-left: 4px solid var(--photo-border);
    }

footer {
    text-align: center;
    padding: 16px;
    }

@media (max-width: 700px) {
    #header_logo {
        height: auto;
        width: 70%;
        margin: 72px 0 24px;
        }

    main {
        grid-template-columns: 1fr;
        padding: 16px;
        }

    .cell {
        aspect-ratio: auto;
        }

    .photo {
        aspect-ratio: 2 / 1;
        }

    #photo_1, #photo_2, #photo_3 {
        border-radius: 2%;
        }

    #kontakt {
        grid-template-columns: 1fr;
        }
    }
