/* General */

:root {
    --color-bg: #000000;
    --color-surface: #1B1F25;
    --color-text: #F3F4F6;
    --color-muted: #A5ACBA;
    --color-border: #2C323A;
    --color-accent: #FCD462;
    --color-accent-hover: #e6bb3f;
}

* {
    box-sizing: border-box;
}

html {
    font-family: Arial, Helvetica, sans-serif;
    scroll-behavior: smooth;
}

@media screen and (max-width: 900px) {
    html {
        overflow-x: hidden;
    }
}

a {
    color: var(--color-text);
    cursor: pointer;
    text-decoration: none;
}

a:hover {
    color: var(--color-accent-hover);
    transition: color .5s;
}

body {
    margin: 0;
    padding: 0;
    background: var(--color-bg);
    color: var(--color-text);
}

button:hover {
    cursor: pointer;
    background: var(--color-accent-hover);
    transition: background .3s;
}

input {
    border: none;
    border-bottom: 1px solid var(--color-border);
    font-family: Arial, Helvetica, sans-serif;
    background: none;
    outline: none;
    color: var(--color-text);
    /* font-size: 1.1rem; */
}
::-webkit-calendar-picker-indicator {
    filter: invert(1);
}



/* NAVIGATION */

.sub-menus {
    position: fixed;
    bottom: 5rem;
    right: 0;
    width: 10%;
    display: flex;
    flex-direction: column;
    z-index: 8;
    width: 3rem;

    & .language-select {
        display: flex;
        flex-direction: column;
        align-items: center;
        background: var(--color-surface);

        & .flag-wrapper {
            width: 80%;
            margin: .5rem 0;

            & img {
                width: 100%;
            }
        }
    }

    & .scroll-top {
        background: var(--color-surface);
        padding: 1.2rem;
        cursor: pointer;
        user-select: none;
        -moz-user-select: none;
        font-size: 1.5rem;
        opacity: 0;
    }
}

.main-nav {
    display: flex;
    margin-left: auto;
    border-top-left-radius: 5rem;
    border-bottom-left-radius: 5rem;
    justify-content: space-evenly;
    width: fit-content;
    position: fixed;
    top: 1rem;
    right: 0;
    z-index: 100;
    align-items: center;
    background: var(--color-bg);

    & .img-wrapper {
        width: 5%;
        cursor: pointer;

        & img {
            max-width: 100%;
            height: auto;
        }
    }

    & .nav-link {
        margin: .5rem 1rem;
    }
}

.main-nav-resp {
    width: 100%;
    display: none;
    flex-direction: column;
    border-bottom: 1px solid var(--color-border);
    border-bottom-left-radius: 50%;
    background: var(--color-bg);
    position: fixed;
    top: 0;
    right: 0px;
    z-index: 100;

    & .main-nav-resp-wrapper {
        display: flex;
        width: 80%;
        margin: 1rem 0;
        margin-left: auto;
    }



    & .img-wrapper-resp {
        width: 100%;
        cursor: pointer;
        margin-right: auto;
        position: relative;

        & img {
            width: 50px;
            height: 50px;
        }
    }

    & .nav-link {
        margin: .5rem 1rem;
    }
}

@media screen and (max-width:900px) {
    .main-nav {
        display: none;
    }

    .main-nav-resp {
        width: 100%;
        display: flex;
        flex-direction: column;
    }
}

/* LEGAL */

.main-imprint, .main-privacy {
    display: flex;
    flex-direction: column;
    margin: 0 3rem;
    margin-top: 8rem;
    padding: 0 auto;

    & footer {
        display: flex;
        height: 10%;
        width: 100%;
        padding: 2rem;
        border-top: 1px solid var(--color-border);
        margin-top: 5rem;

        & .footer-section {
            display: flex;
            flex-direction: column;
            width: 33%;
            justify-content: end;

            & a {
                margin: 1rem 0;
            }
        }

        & .logo-wrapper {
            display: flex;
            flex-direction: row;

            & .logo-column {
                width: 50%;
                display: flex;
                flex-direction: column;
                justify-content: space-evenly;

                & .img-container {
                    width: 100%;

                    & img {
                        max-width: 50%;
                    }
                }
            }
        }
    }
}




/* INDEX */
#objectContainer{
    & canvas {
        max-width: 100%;
        height: 100%;
        z-index: -10;
        position: fixed;
        top: 0;
        left: 0;
    }
}

.main-index {
    display: flex;
    flex-direction: column;
    position: relative;
    padding: 0 5rem;

    & .hero-section {
        display: flex;
        min-width: 100%;
        min-height: 100vh;
        position: relative;
        flex-direction: column;
        overflow: hidden;

        & #heroSectionText {
            font-size: 4rem;
            color: var(--color-accent);
            margin-top: 10rem;
            width: 100%;
            display: flex;
            font-weight: 700;
            justify-content: center;

            & p {
                margin: 0;
                padding: 1rem;
            }
        }

        & .service-container {
            display: flex;
            justify-content: space-between;
            color: var(--color-text);
            width: 100%;
            margin: 5rem auto;

            & .left, .right {
                display: flex;
                flex-direction: column;
                width: 49%;
                margin: 0 2rem;
            }

            & .left {
                align-items: start;

                & .lower {
                    margin-left: 8rem;
                }
            }

            & .right {
                align-items: end;

                & .lower {
                    margin-right: 8rem;
                }
            }

            .hero-card {
                border-radius: 1rem;
                padding: 1rem;
                margin: 2rem 0;
                width: 60%;
            }
        }
    }

    & .disadvantage-section {
        min-width: 100%;
        display: flex;
        min-height: 100vh;
        position: relative;
        padding: 5rem;

        & #disadvHeader {
            text-align: center;
            font-size: 3rem;
            margin: 0 auto;
            opacity: 0;
        }
        
        & .disadv-wrapper {
            position: absolute;
            border-bottom: 1px solid var(--color-surface);
            opacity: 0;
            width: 40%;
            padding: 1rem 0;
            height: 10rem;

            & .disadv-sub-header {
                font-size: 1.3rem;
            }

            & .sub-text {
                font-size: 1.1rem;
                color: var(--color-muted);
            }
        }

        & #disadvUpperLeft {
            left: -10%;
            top: 35%;
        }

        & #disadvUpperRight {
            right: -10%;
            top: 35%;
        }

        & #disadvLowerLeft {
            left: -10%;
            top: 70%;
        }

        & #disadvLowerRight {
            right: -10%;
            top: 70%;
        }
    }

    & .service-section {
        min-width: 100%;
        display: flex;
        min-height: 100vh;
        position: relative;
        flex-direction: column;
        position: relative;

        & #serviceHeader {
            opacity: 0;
            width: 100%;
            margin: 2rem auto;
            text-align: center;

            & .header {
                font-size: 3rem;
                color: var(--color-accent);
            }

            & .sub-text {
                font-size: 1.2rem;
                color: var(--color-muted);
            }
        }

        & .service-detail {
            opacity: 0;
            width: 30%;
            margin: 0 auto;
            text-align: center;

            & .sub-header {
                color: var(--color-accent);
                font-size: 2rem;
            }

            & .service-text {
                font-size: 1.2rem;
            }
        }

        & #webAppService {
            position: absolute;
            top: 35%;
            left: -10%;
        }

        & #cybersecService {
            position: absolute;
            top: 35%;
            right: -10%;
        }

        & #webService {
            position: absolute;
            bottom: 25%;
            left: -10%;
        }

        & #serversService {
            position: absolute;
            bottom: 25%;
            right: -10%;
        }
    }

    & .project-section {
        min-width: 100%;
        min-height: 100vh;
        margin-bottom: 80rem;
        position: relative;

        & h2 {
            margin: 0 auto;
            width: 100%;
            font-size: 3rem;
            text-align: center;
            opacity: 0;
            position: absolute;
            top: 3rem;
        }

        & .project-container {
            display: flex;
            width: 25%;
            align-items: center;
            opacity: 0;

            & .project-number {
                font-size: 5rem;
                border-right: 1px solid var(--color-accent);
                padding: 0;
                margin: 0;
                padding: .5rem;
            }

            & .project-inner-wrapper {
                display: flex;
                flex-direction: column;
                margin: 0 1rem;
                
                & h3 {
                    font-size: 2rem;
                    padding: 0;
                    margin: 0;
                    margin-bottom: 1rem;
                }

                & p {
                    font-size: 1.2rem;
                    padding: 0;
                    margin: 0;
                }
            }
        }

        & #project1 {
            position: absolute;
            bottom: 15%;
            left: 10%;
        }

        & #project2 {
            position: absolute;
            bottom: 55%;
            left: 5%;
        }

        & #project3 {
            position: absolute;
            top: 1%;
            left: calc(50% - 12.5%);
        }

        & #project4 {
            position: absolute;
            bottom: 55%;
            right: 5%;
        }

        & #project5 {
            position: absolute;
            bottom: 15%;
            right: 10%;
        }
    }

    & .cta-section {
        min-height: 100vh;
        width: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        opacity: 0;

        & .cta-container {
            width: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            height: 90%;
            
            & .cta-header {
                display: flex;
                flex-direction: column;
                width: 50%;
                margin: 0 auto;
                margin-top: 2rem;
                text-align: center;
                margin-bottom: 5%;

                & .header {
                    font-size: 1.5rem;
                    color: var(--color-accent);
                }

                & .sub-text {
                    color: var(--color-muted);
                    font-size: 1.2rem;
                    padding: 0;
                    margin: 0;
                }
            }

            & .cta-wrapper {
                display: flex;
                width: 100%;
                justify-content: space-between;
                padding: 0 2rem;
                margin-top: 10rem;

                & .left {
                    display: flex;
                    flex-direction: column;
                    width: 25%;
                    justify-content: center;
                }

                & .right {
                    display: flex;
                    flex-direction: column;
                    width: 25%;
                    justify-content: center;
                }
            }
        }

        & footer {
            display: flex;
            height: 10%;
            width: 100%;
            padding: 2rem;
            border-top: 1px solid var(--color-border);
            margin-top: 5rem;

            & .footer-section {
                display: flex;
                flex-direction: column;
                width: 33%;
                justify-content: end;

                & a {
                    margin: 1rem 0;
                }
            }

            & .logo-wrapper {
                display: flex;
                flex-direction: row;

                & .logo-column {
                    width: 50%;
                    display: flex;
                    flex-direction: column;
                    justify-content: space-evenly;

                    & .img-container {
                        width: 100%;

                        & img {
                            max-width: 50%;
                        }
                    }
                }
            }
        }
    }
}


@media screen and (max-width:900px) {
    .main-index {
        background: #0000007e;
        padding: 0 1rem;

        & .hero-section {
            & #heroSectionText {
                font-size: 2rem;
                margin-top: 14rem;
                flex-direction: column;
                text-align: center;

                & p {
                    padding: 0;
                }
            }

            & .service-container {
                margin: 0;
                width: 100%;
                flex-direction: column;

                & .left, .right {
                    display: flex;
                    width: 80%;
                    margin: 0 auto;
                    padding: 1rem;
                }

                & .left {
                    justify-content: space-between;

                    & .lower {
                        margin: 0;
                    }
                }

                & .right {
                    align-items: start;
                    justify-content: space-between;
                    & .lower {
                        margin: 0;
                    }
                }

                .hero-card {
                    padding: 0;
                    margin: 0 0;
                    width: 100%;
                }
            }
        }

        & .disadvantage-section {
            padding: 3rem;
            padding-top: 5rem;
            flex-direction: column;
            margin-bottom: 40rem;
            
            & .disadv-wrapper {
                position: unset;
                left: unset;
                right: unset;
                top: unset;
                bottom: unset;
                opacity: 0;
                width: 100%;
                padding: 1rem 0;
                margin: 2rem auto;
            }

            & #disadvUpperLeft {
                left: unset;
                top: unset;
            }

            & #disadvUpperRight {
                right: unset;
                top: unset;
            }

            & #disadvLowerLeft {
                left: unset;
                top: unset;
            }

            & #disadvLowerRight {
                right: unset;
                top: unset;
            }
        }

        & .service-section {
            position: relative;
            flex-direction: column;
            align-items: center;
            position: relative;

            & #serviceHeader {
                width: 60%;
                margin: 0 auto;
                margin-top: 3rem;

                & .header {
                    font-size: 2rem;
                }
            }

            & .service-detail {
                width: 80%;
                margin: 0 auto;
                text-align: center;

                & .sub-header {
                    color: var(--color-accent);
                    font-size: 1.2rem;
                }

                & .service-text {
                    font-size: 1rem;
                }
            }

            & #webAppService {
                position: unset;
                top: unset;
                left: unset;
            }

            & #cybersecService {
                position: unset;
                top: unset;
                right:unset;
            }

            & #webService {
                position: unset;
                bottom: unset;
                left: unset
            }

            & #serversService {
                position: unset;
                bottom: unset;
                right: unset
            }
        }

        & .project-section {
            align-items: center;
            & h2 {
                width: 60%;
                font-size: 2rem;
                position: unset;
                margin: 0 auto;
                margin-top: 3rem;
            }

            & .project-container {
                width: 100%;
                align-items: center;
                margin: 3rem auto;
                display: flex;
                justify-content: center;

                & .project-number {
                    font-size: 3rem;
                }

                & .project-inner-wrapper {
                    width: 60%;
                    
                    & h3 {
                        font-size: 1.5rem;
                    }

                    & p {
                        font-size: 1rem;
                    }
                }
            }

            & #project1 {
                left: unset;
                bottom: unset;
                top: unset;
                position: unset;
            }

            & #project2 {
                top: unset;
                left: unset;
                position: unset;
            }

            & #project3 {
                top: unset;
                left: unset;
                position: unset;
            }

            & #project4 {
                bottom: unset;
                top: unset;
                right: unset;
                left: unset;
                position: unset;
            }

            & #project5 {
                bottom: unset;
                top: unset;
                right: unset;
                left: unset;
                position: unset;
            }
        }

        & .cta-section {
            justify-content: unset;

            & .cta-container {
                justify-content: unset;
                height: unset;
                
                & .cta-header {
                    margin-bottom: 0;
                }

                & .cta-wrapper {
                    padding: 1rem;
                    margin-top: 0;
                    flex-direction: column;
                    align-items: center;

                    & .left {
                        width: 100%;
                        padding: 1rem;
                    }

                    & .right {
                        width: 100%;
                        padding: 1rem;
                    }
                }
            }

            & footer {
                flex-direction: column;
                height: unset;
                width: 100%;
                padding: 1rem;
                border-top: 1px solid var(--color-border);
                margin-top: 3rem;

                & .footer-section {
                    width: 100%;
                    justify-content: center;
                    align-items: center;
                }
            }
        }
    }
}