:root {
    color-scheme: light dark;

    --page-bg: light-dark(#f1f4fb, #111);
    --content-bg: light-dark(white, #222);
    --menu-items-background: light-dark(#F5F5F5, #444);
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    font-family: Verdana, sans-serif;
    font-size: 1rem;

    background: var(--page-bg);
}

body {
    position: relative;

    margin: 0 auto;
    max-width: 80rem;
    padding: 0 1rem;

    line-height: 1.4em;
}

h2 {
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
}

h3 {
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
}

h4 {
    font-size: 1rem;
    margin-bottom: 0.25rem;
}

p {
    margin-bottom: 0.5rem;
}

a {
    color: currentColor;
}

a.external::after {
    display: inline-block;
    width: 0.85rem;
    height: 0.85rem;
    content: "";
    background: white url(external-link.svg);
    top: 0;
    position: relative;
    left: 0.4rem;
}

ul {
    list-style: none;
}

input {
    font-size: 1rem;
    padding: 0.25rem;
}

header {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-bottom: 1rem;
    margin-top: 1rem;

    h1 {
        display: inline-block;
        margin-right: 2rem;

        a {
            background: var(--content-bg);
            display: inline-block;

            img {
                width: 14rem;
                padding: 0.5rem;
            }
        }
    }

    #search-pictures {
        display: inline-flex;
        align-items: center;

        span {
            font-size: 1.65rem;
            font-weight: bold;
            margin-right: 1rem;
        }

        input {
            border: 0.15rem inset;
            width: 14rem;
        }
    }

    #search-pictures-help-text {
        font-size: 0.85rem;
        line-height: 0.8rem;

        padding: 0.5rem 1rem 0.25rem 1rem;
        margin-top: 0.1rem;

        background: var(--content-bg);
    }


    #login-key {
        position: absolute;
        top: -0.5rem;
        right: -1.5rem;
        opacity: .2;

        img {
            padding: 3px 2px;
        }
    }
}

#nav-content-holder {
    display: flex;
    justify-content: space-between;
    align-items: start;
}

#menu-icon {
    display: none;
    right: -0.75rem;
    top: 1.25rem;
    transform: translate(-50%, -50%);
    position: absolute;
    width: 2.15rem;
    cursor: pointer;

    &:before,
    &:after,
    div {
        background: rgba(0, 0, 0, 0.6);
        content: "";
        display: block;
        height: 0.2rem;
        border-radius: 5rem;
        margin: 0.6rem 0;
        transition: 0.5s;
    }

    &.open:before {
        transform: translateY(1rem) rotate(135deg);
    }

    &.open:after {
        transform: translateY(-1rem) rotate(-135deg);
    }

    &.open div {
        transform: scale(0);
    }
}

nav {
    width: 14rem;
    background: var(--content-bg);
    border: 0.1rem dashed #AAA;
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;

    ul {
        display: flex;
        flex-direction: column;
        gap: 0.8rem;
    }

    li {
        border: 0.1rem solid rgb(245, 245, 245);
        background: var(--menu-items-background);

        &:hover, &.active {
            border-color: rgb(170, 170, 170);
        }

        &.active {
            font-weight: bold;
        }
    }

    a {
        display: block;
        font-size: 1rem;
        padding: 0.4rem 0.25rem 0.5rem 0.25rem;
        text-align: center;
        width: 100%;
        text-decoration: none;
    }

    #backend-menu-header {
        text-align: center;
        font-size: 12px;
        font-weight: bold;
        top: 4px;
        position: relative;
    }
}

section {
    margin-top: 0.1rem;
    background: var(--content-bg);
    margin-bottom: 1rem;
    padding: 1.25rem;
    width: calc(100% - 16rem);
    display: inline-block;
}

address {
    font-style: normal;
}

/* Lightbox */
.slbWrapOuter {
    cursor: pointer;

    .slbContentOuter {
        cursor: initial;
    }
}

/* kleines Display */

@media (width < 65rem) {

    #menu-icon {
        display: initial;
    }

    #nav-content-holder {
        display: block;

        nav {
            &:not(.mobile-open) {
                display: none;
            }

            position: absolute;
            top: 2.5rem;
            right: 2.5rem;
            z-index: 100;
        }

        section {
            width: 100%;
        }
    }

}

/* Dark Theme */

@media (prefers-color-scheme: dark) {
    img {
        filter: brightness(0.9) contrast(1.05);
    }

    header img {
        filter: brightness(0.9) contrast(1.05) invert(1);
    }
}

