body {
    margin: 0;
    overflow: hidden;
    font-family: 'PTSans', sans-serif;
    background-color: rgb(246, 247, 248);
}

button {
    border: unset;
}

button:hover {
    cursor: pointer;
}

h1 {
    font-size: 2.8em;
    margin-block-start: 0em;
    margin-block-end: 0em;
    display: flex;
    justify-content: center;
    padding-bottom: 10px;
    padding-top: 2vh;
    padding-top: 2svh;
}

p {
    margin-block-start: 0em;
    margin-block-end: 0em;
}

a {
    text-decoration: none;
    color: black;
}


footer {
    display: flex;
    justify-content: center;
    gap: 30px;
    align-items: center;
    position: absolute;
    bottom: 3vh;
    bottom: 3svh;
    font-size: 0.9em;
}

.d-none {
    display: none !important;
}

.logoContainerSlide {
    position: absolute;
    width: 100vw;
    height: 100vh;
    height: 100svh;
    display: flex;
    top: 42%;
    left: 44%;
    overflow: hidden;
}

.logoContainerSlideImg {
    height: 30vh;
    height: 30svh;
    animation: logoSlideOut 1s ease-in-out;
}

@keyframes logoSlideOut {
    0% {
        height: 30vh;
        height: 30svh;
    }

    100% {
        height: 12vh;
        height: 12svh;
    }
}

.logoContainerSlideImgWhite {
    display: none;
    height: 30vh;
    height: 30svh;
}

.logoContainerSlideLoaded {
    position: absolute;
    animation: slide-out 1s ease-in-out;
    /* Animation hinzufügen */
    overflow: hidden;
    top: 50px;
    left: 50px;
}

@keyframes slide-out {
    0% {
        top: 42%;
        left: 44%;
    }

    100% {
        top: 50px;
        left: 50px;
    }
}

.wholeLoginContainer {
    display: flex;
    height: 100vh;
    height: 100svh;
    width: 100vw;
    align-items: center;
    flex-direction: column;
}

.signUpAndLoginContainer {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.signUpContainer {
    width: 80vw;
    height: 10vh;
    height: 10svh;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 40px;
}

.notJoinUserTxt {
    margin-top: 70px;
}

.signUpButton {
    background-color: rgb(42, 54, 71);
    color: rgb(255, 255, 255);
    border-radius: 5px;
    height: 40px;
    width: 91px;
    margin-top: 70px;
}

.signUpButton:hover {
    background-color: rgb(41, 171, 226);
    box-shadow: 0px 2px 2px 2px rgb(0, 0, 0, 0.1);
}

.loginContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: rgb(255, 255, 255);
    border-radius: 30px;
    height: 55vh;
    height: 55svh;
    width: 35vw;
    max-width: 550px;
    min-width: 400px;
    max-height: 380px;
    box-shadow: 0px 0px 5px 0px rgb(0, 0, 0, 0.1);
    margin: 20.5vh 0;
    margin: 20.5svh 0;
}

.underline {
    border-top: 2.5px solid rgb(41, 171, 226);
    /* Farbe und Dicke des Unterstrichs anpassen */
    width: 100px;
    height: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.logInForm {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 30vh;
    height: 30svh;
    justify-content: space-evenly;
    padding-top: -1vh;
    padding-top: -1svh;
}

.logInInputFields {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 15px;
}

.logInInputEmail {
    background-color: white;
    background-image: url();
    background-size: 0px 0px;
    background-position: 0px 0px;
    background-repeat: no-repeat;
    padding-left: 10px;
    padding-right: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 32px;
    border-radius: 5px;
    border: 1px solid rgb(226, 226, 226);
    width: 270px;
}

.logInInputEmail:focus {
    outline: unset;
}

.logInInputPassword {
    background-color: white;
    background-image: url();
    background-size: 0px 0px;
    background-position: 0px 0px;
    background-repeat: no-repeat;
    padding-left: 10px;
    padding-right: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 32px;
    border-radius: 5px;
    border: 1px solid rgb(226, 226, 226);
    width: 270px;
}

.logInInputPassword:focus {
    outline: unset;
}

.logInFormInputAndImgContainer {
    display: flex;
    align-items: center;
}

.logInForm img {
    height: 20px;
    width: 20px;
    margin-left: -30px
}

.logInFormImgPassword:hover {
    cursor: pointer;
}

.rememberMeContainer {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 85%;
    font-size: 0.7em;
    gap: 5px;
}

.checkbox:hover {
    box-shadow: 0px 0px 2px 2px rgb(0, 0, 0, 0.15);
}

.checkbox-wrapper-19:hover .checkbox {
    background-color: rgba(204, 204, 204, 0.2);
}

.checkbox-wrapper-19 {
    box-sizing: border-box;
    --background-color: #fff;
    --checkbox-height: 15px;
    display: flex;
    justify-content: center;
    align-items: center;
}


@keyframes dothabottomcheck-19 {
    0% {
        height: 0;
    }

    100% {
        height: calc(var(--checkbox-height) / 2);
    }
}

@keyframes dothatopcheck-19 {
    0% {
        height: 0;
    }

    50% {
        height: 0;
    }

    100% {
        height: calc(var(--checkbox-height) * 0.90);
    }
}

.checkbox-wrapper-19 input[type=checkbox] {
    display: none;
}

.checkbox-wrapper-19 .checkbox {
    height: var(--checkbox-height);
    width: var(--checkbox-height);
    background-color: transparent;
    border: calc(var(--checkbox-height) * .1) solid #000;
    border-radius: 5px;
    position: relative;
    display: inline-block;
    box-sizing: border-box;
    transition: border-color ease 0.2s;
    cursor: pointer;
}

.checkbox-wrapper-19 .checkbox::before,
.checkbox-wrapper-19 .checkbox::after {
    box-sizing: border-box;
    position: absolute;
    height: 0;
    width: calc(var(--checkbox-height) * .12);
    background-color: black;
    display: inline-block;
    transform-origin: left top;
    border-radius: 5px;
    content: " ";
    transition: opacity ease 0.5;
}

.checkbox-wrapper-19 .checkbox::before {
    top: calc(var(--checkbox-height) * .75);
    left: calc(var(--checkbox-height) * .465);
    box-shadow: 0 0 0 calc(var(--checkbox-height) * .05) var(--background-color);
    transform: rotate(-145deg);
}

.checkbox-wrapper-19 .checkbox::after {
    top: calc(var(--checkbox-height) * .37);
    left: calc(var(--checkbox-height) * .05);
    transform: rotate(-45deg);
}

.checkbox-wrapper-19 input[type=checkbox]:checked+.checkbox,
.checkbox-wrapper-19 .checkbox.checked {
    border-color: black;
}

.checkbox-wrapper-19 input[type=checkbox]:checked+.checkbox::after,
.checkbox-wrapper-19 .checkbox.checked::after {
    height: calc(var(--checkbox-height) / 2);
    animation: dothabottomcheck-19 0.2s ease 0s forwards;
}

.checkbox-wrapper-19 input[type=checkbox]:checked+.checkbox::before,
.checkbox-wrapper-19 .checkbox.checked::before {
    height: calc(var(--checkbox-height) * 1.1);
    animation: dothatopcheck-19 0.4s ease 0s forwards;
}


.logInButtons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2vw;
    width: fit-content;
}

.userLogInButton {
    background-color: rgb(42, 54, 71);
    color: white;
    border-radius: 5px;
    height: 40px;
    width: 91px;
    font-weight: bold;
}

.userLogInButton:hover {
    background-color: rgb(41, 171, 226);
    box-shadow: 0px 3.5px 0px 0px rgb(0, 0, 0, 0.15);
}

.guestLogInButton {
    border: 1px solid black;
    background-color: white;
    border-radius: 5px;
    height: 40px;
    width: 120px;
    font-weight: bold;
}

.guestLogInButton:hover {
    border-color: rgb(41, 171, 226);

    color: rgb(41, 171, 226);
    border: 2px solid rgb(41, 171, 226);
    animation: moveButtonAnimation 0.1s ease 0.2s forwards;
    /* Animation mit Verzögerung von 1 Sekunde */
}


@keyframes moveButtonAnimation {
    from {
        transform: translateY(1px);
    }

    to {
        transform: translateY(-0.5px);
        box-shadow: 0px 3.5px 0px 0px rgb(0, 0, 0, 0.15);
    }
}

.legalNoticeText {
    color: rgb(178, 178, 178);
}

.legalNoticeText:hover {
    color: rgb(41, 171, 226);
    cursor: pointer;
}

.privacyPolicyText {
    color: rgb(178, 178, 178);
}

.privacyPolicyText:hover {
    color: rgb(41, 171, 226);
    cursor: pointer;
}

.msgBoxContainer {
    position: absolute;
    background-color: rgb(246, 247, 248, 0.65);
    height: 100vh;
    height: -100svh;
    width: 100vw;
    z-index: 999;
    top: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.msgBox {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 45px;
    border-radius: 20px;
    padding: 0 20px;
    background-color: rgb(41, 171, 226);
    color: white;
    box-shadow: 0px 0px 5px 2px rgb(0, 0, 0, 0.3);
}

@media (max-width: 1300px) {
    .loginContainer {
        width: 38vw;
    }
}

@media (max-width: 750px) {
    .wholeLoginContainer {
        z-index: 998;
        position: relative;
        animation: changePosition 0.0s forwards;
        animation-delay: 0.0s;
        visibility: hidden;
    }
    
    @keyframes changePosition {
        0% {
            opacity: 1;
            visibility: hidden;
            position: absolute;
            top: 0;
            left: 0;
        }

        55% {
            opacity: 1;
            visibility: hidden;
            position: absolute;
            top: 0;
            left: 0;
        }
    
        100% {
            opacity: 1;
            visibility: visible;
            position: absolute;
            top: 0;
            left: 0;
        }
    }
    

    .signUpAndLoginContainer {
        display: flex;
        flex-direction: column-reverse;
        justify-content: center;
        align-items: center;
        gap: 0px;
        padding-bottom: 2vh;
        padding-bottom: 2svh;
    }

    .signUpContainer {
        gap: 10px;
        width: 100vw;
        display: flex;
        justify-content: center;
    }

    .notJoinUserTxt {
        margin-top: 0;
    }

    .signUpButton {
        margin-top: 0px;
    }

    .loginContainer {
        margin: 21vh 0 4vh 0;
        margin: 21svh 0 4svh 0;
    }

    .logoContainerSlideLoaded {
        top: 30px;
        left: 30px;
        z-index: 999;
    }


    .logoContainerSlideImg {
        animation: logoSlideOut 1s ease-in-out 0.1s forwards;
        animation-delay: 0.2s;
        opacity: 0;
    }

    @keyframes logoSlideOut {
        from {
            opacity: 1;
            height: 30vh;
            height: 30svh;
        }

        to {
            opacity: 1;
            height: 12vh;
            height: 12svh;
        }
    }

    .logoContainerSlideWhite {
        height: 100vh;
        height: 100svh;
        width: 100vw;
        display: flex;
        position: absolute;
        align-items: center;
        justify-content: center;
    }

    .logoContainerSlideImgWhite {
        position: fixed;
        height: 30vh;
        height: 30svh;
        top: 35vh;
        top: 35svh;
        display: unset;
        animation: showAndHide 0.2s forwards;
        opacity: 0;
    }

    @keyframes showAndHide {
        0% {
            opacity: 1;
        }

        99.9% {
            opacity: 1;
        }

        100% {
            opacity: 0;
        }
    }

    .logoContainerSlideLoaded {
        top: 30px;
        left: 30px;
    }

    @keyframes slide-out {
        0% {
            top: 35vh;
            top: 35svh;
            left: 33vw;
        }

        100% {
            top: 30px;
            left: 30px;
        }
    }

    .responsiveBackgroundForSlide {
        height: 100vh;
        height: 100svh;
        width: 100vw;
        background-color: rgb(42, 54, 71);
        animation: changeColor 2s forwards;
        animation-delay: 0.15s;
        position: absolute; /* Ensure it's positioned absolutely if margins are used */
        top: 0;
        left: 0;
    }
    
    @keyframes changeColor {
        0% {
            height: 100vh;
            height: 100svh;
            width: 130vw;
            background-color: rgb(42, 54, 71);
            opacity: 1;
            visibility: visible;
        }
    
        60% {
            background-color: rgb(246, 247, 248);
            height: 20vh;
            height: 20svh;
            width: 25vw;
            margin-top: 15px;
            margin-left: 15px;
            opacity: 1;
            visibility: visible;
        }
    
        61% {
            opacity: 0;
            visibility: hidden;
        }
    
        100% {
            height: 0;
            width: 0;
            margin-top: 0;
            margin-left: 0;
            opacity: 0;
            visibility: hidden;
            display: none;
        }
    }
}    

@media (max-width: 450px) {
    .loginContainer {
        min-width: 370px;
    }
}

@media (max-width: 370px) {
    .loginContainer {
        width: 95vw;
        min-width: 300px;
        justify-content: center;
        height: 57vh;
        height: 57svh;
        margin: 22vh 0 4vh 0;
        margin: 22svh 0 4svh 0;
    }

    .logInInputFields {
        width: 90vw;
        align-items: center;
    }

    .logInFormInputAndImgContainer {
        width: 70vw;
        padding-right: 30px;
    }

    .logInButtons {
        flex-direction: column;
    }

    h1 {
        padding-top: 1vh;
        padding-top: 1svh;
    }

    footer {
        padding-top: 1.5vh;
        padding-top: 1.5svh;
    }

    .userLogInButton {
        width: 120px;
    }
}

@media (max-width: 310px) {
    .loginContainer {
        min-width: 95vw;
    }
}