/* =========================================
   GRUNDLAGEN
   ========================================= */

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

html {
    scroll-behavior: smooth;
}

body,
html {
    min-height: 100%;

    font-family: futura-pt, Arial, sans-serif;

    background-color: black;

    color: #919191;

    overflow-x: hidden;
}

a {
    color: inherit;
}


/* =========================================
   HEADER
   ========================================= */

header {
    position: relative;

    width: 100%;
    height: 100vh;

    overflow: hidden;

    display: flex;

    justify-content: center;
    align-items: center;
}



/* =========================================
   SCROLL-PFEIL
   ========================================= */

.scroll-indicator {
    position: absolute;

    left: 50%;
    bottom: 30px;

    transform: translateX(-50%);

    z-index: 20;
}

.scroll-indicator a {
    display: flex;

    width: 45px;
    height: 65px;

    align-items: flex-start;
    justify-content: center;

    text-decoration: none;
}

.scroll-indicator span {
    display: block;

    width: 22px;
    height: 22px;

    border-right: 2px solid #dddddd;
    border-bottom: 2px solid #dddddd;

    transform: rotate(45deg);

    animation: scroll-arrow 2s infinite;
}

@keyframes scroll-arrow {

    0% {
        transform: rotate(45deg) translate(0, 0);
        opacity: 0.3;
    }

    50% {
        transform: rotate(45deg) translate(8px, 8px);
        opacity: 1;
    }

    100% {
        transform: rotate(45deg) translate(0, 0);
        opacity: 0.3;
    }
}


/* =========================================
   NAVIGATION
   ========================================= */

nav.menu {
    position: relative;

    z-index: 100;

    display: flex;

    width: 100%;

    background-color: black;
}

nav.menu.fixed {
    position: fixed;

    top: 0;
    left: 0;

    width: 100%;
}

nav.menu a.menu-button {
    position: relative;

    flex: 1;

    padding: 20px;

    text-align: center;

    color: #919191;

    background-color: black;

    text-decoration: none;

    font-size: 1.2rem;

    white-space: nowrap;

    transition:
        background-color 0.3s ease,
        color 0.3s ease;
}

nav.menu a.menu-button:hover {
    background-color: #222222;

    color: white;
}


/* Aktiver Menüpunkt */

nav.menu a.menu-button.active {
    color: white;
}

nav.menu a.menu-button.active::after {
    content: "";

    position: absolute;

    left: 20%;
    right: 20%;
    bottom: 8px;

    height: 2px;

    background-color: #919191;
}


/* Platzhalter für fixes Menü */

#menu-placeholder {
    display: none;

    width: 100%;
}


/* =========================================
   TEXTE
   ========================================= */

h2 {
    margin-bottom: 25px;

    color: #919191;

    font-size: 3rem;
}

h3 {
    margin-bottom: 10px;

    color: #dddddd;

    font-size: 1.8rem;
}

p {
    margin-bottom: 15px;

    color: #919191;

    font-size: 1.2rem;

    line-height: 1.5;
}

.intro {
    color: #dddddd;

    font-size: 1.5rem;
}


/* =========================================
   CONTENT BOXEN
   ========================================= */

.content-box {
    position: relative;

    margin: 20px auto;

    padding: 50px;

    min-height: 40vh;

    background: rgba(0, 0, 0, 0.85);

    scroll-margin-top: 80px;
}

.left {
    width: 40%;

    margin-left: 20px;

    text-align: left;
}

.center {
    width: 60%;

    margin-left: auto;
    margin-right: auto;

    text-align: center;
}

.right {
    width: 40%;

    margin-right: 20px;
    margin-left: auto;

    text-align: left;
}

/* =========================================
   FOOTER
   ========================================= */

.site-footer {

    position: relative;

    left: 0;
    right: 0;
    bottom: 0;

    width: 100%;

    min-height: 55px;

    padding:
        12px 25px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    z-index:
        9999;

    color:
        white;

    pointer-events:
        auto;


    /*
       Leichte Abdunklung am unteren
       Bildschirmrand.
    */

    background:
        linear-gradient(
            to top,
            rgba(0, 0, 0, 0.75),
            rgba(0, 0, 0, 0)
        );

}



/* =========================================
   FOOTER-NAVIGATION
   ========================================= */

.site-footer nav {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        22px;

    flex-shrink:
        0;

}


.site-footer a {

    display:
        block;

    color:
        white;

    text-decoration:
        none;

    font-size:
        14px;

    line-height:
        1.2;

    white-space:
        nowrap;

    text-shadow:
        0 1px 5px rgba(0, 0, 0, 0.9);

    transition:
        opacity 0.2s ease;

}


.site-footer a:hover {

    opacity:
        0.65;

}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 900px) {


    .site-footer {

        padding:
            10px 15px 12px;

        flex-direction:
            column;

        justify-content:
            center;

        gap:
            8px;

    }


    .site-footer nav {

        width:
            100%;

        gap:
            18px;

    }


    .site-footer a {

        font-size:
            13px;

    }

}


/* =========================================
   HANDY
   ========================================= */

@media (max-width: 600px) {


    .label {

        font-size:
            24px;

        letter-spacing:
            2px;

    }


    .label-photo {

        left:
            20px;

    }


    .label-vr {

        right:
            20px;

    }


    .divider {

        width:
            2px;

    }


    /* -----------------------------
       FOOTER
       ----------------------------- */

    .site-footer {

        padding:
            8px 10px 12px;

        gap:
            7px;

    }


    .site-footer nav {

        width:
            100%;

        flex-wrap:
            wrap;

        gap:
            7px 16px;

    }


    .site-footer a {

        font-size:
            12px;

    }


    .legal-links a + a::before {

        margin-right:
            16px;

    }

}


/* =========================================
   SEHR KLEINE HANDYS
   ========================================= */

@media (max-width: 380px) {


    .site-footer {

        padding:
            7px 6px 10px;

        gap:
            5px;

    }


    .site-footer nav {

        gap:
            6px 12px;

    }


    .site-footer a {

        font-size:
            11px;

    }


    .legal-links a + a::before {

        margin-right:
            12px;

    }

}


/* =========================================
   SEHR NIEDRIGES DISPLAY
   ========================================= */

@media (max-height: 600px) {


    .site-footer {

        padding:
            6px 10px;

    }


    .site-footer a {

        font-size:
            11px;

    }

}

