:root {
    /* Primary */
    --desaturated-red: hsl(0, 36%, 70%);
    --soft-red: hsl(0, 93%, 68%);

    /* Neutral */
    --dark-grayish-red: hsl(0, 6%, 24%);

    /* Gradients */
    --gradient-one: linear-gradient(135deg, hsl(0, 0%, 100%) 0%, hsl(0, 100%, 98%) 100%);
    --gradient-two: linear-gradient(135deg, hsl(0, 80%, 86%) 0%, hsl(0, 74%, 74%) 100%);
}

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

html {
    font-size: 62.5%;
    font-family: 'Josefin Sans', sans-serif;
}

body {
    width: 100vw;
    height: 100vh;
    /* background: linear-gradient(135deg, hsl(0, 0%, 100%) 0%, hsl(0, 100%, 98%) 100%); */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

main {
    width: 100%;
    height: 95%;
    max-width: 42.5rem;
    display: block;
    background: linear-gradient(135deg, hsl(0, 0%, 100%) 0%, hsl(0, 100%, 98%) 100%);
}

.logo {
    width: 80%;
    margin: 0 auto;
    height: 8rem;
    display: flex;
    align-items: center;
}

.logo img {
    width: 35%;
}

picture img {
    width: 100%;
}

.text-box {
    width: 80%;
    margin: 0 auto;
    text-align: center;
}

.title {
    margin-top: 3rem;
    font-size: 4rem;
    font-weight: 300;
    letter-spacing: 1rem;
    color: var(--desaturated-red);
}

.text-box h1 {
    margin-top: 0.2rem;
    font-size: 4rem;
    font-weight: 600;
    letter-spacing: 1rem;
    color: var(--dark-grayish-red);
}

.description {
    margin-top: 3rem;
    font-size: 1.6rem;
    font-weight: 400;
    letter-spacing: 0.01rem;
    line-height: 2.5rem;
    color: var(--desaturated-red);
}

.text-box label {
    margin-top: 3rem;
    position: relative;
    display: flex;
    justify-content: center;
    width: 100%;
}

.input {
    width: 100%;
    height: 5rem;
    border-radius: 5rem;
    border: solid 0.1rem hsla(0, 36%, 70%, 0.5);
    background: transparent;
    padding-left: 2.5rem;
    /* color: hsla(0, 36%, 70%, 0.5); */
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 700;
    font-size: 1.4rem;
    outline-color: hsla(0, 36%, 70%, 0.5);
    outline-width: 0.2rem;
}

.invalid {
    border: solid 0.25rem var(--soft-red);
}

.icon {
    position: absolute;
    width: 2rem;
    height: 2rem;
    top: 1.5rem;
    right: 8rem;
}

.input::placeholder {
    color: hsla(0, 36%, 70%, 0.5);
    font-weight: 400;
    font-family: 'Josefin Sans', sans-serif;
    font-size: 1.4rem;
}

.button {
    position: absolute;
    right: 0;
    width: 20%;
    height: 5rem;
    border-radius: 5rem;
    align-self: flex-start;
    background: linear-gradient(135deg, hsl(0, 80%, 86%) 0%, hsl(0, 74%, 74%) 100%);
    border: none;
    cursor: pointer;
}

.invalid-button {
    background: linear-gradient(135deg, hsl(0, 100%, 100%) 0% 0%, hsl(0, 74%, 74%) 100%);
}

.error {
    width: 100%;
    margin-top: 0.5rem;
    padding-left: 2.5rem;
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 0.01rem;
    color: var(--soft-red);
    text-align: left;
}

footer { 
    max-width: 42.5rem;
    width: 100%;
    height: 5%;
    font-size: 1.1rem; 
    text-align: center; 
    display: flex;
    align-items: center;
    justify-content: center;
}

footer a { 
    color: hsl(228, 45%, 44%); 
}

.hiden {
    display: none;
}

@media only screen and (min-width: 1440px) {
body {
    background: none;
}

    main {
        background: linear-gradient(135deg, hsl(0, 0%, 100%) 0%, hsl(0, 100%, 98%) 100%);;
        height: 60%;
        max-width: 100rem;
        display: grid;
        grid-template-columns: 60% 40%;
        grid-template-rows: 20% 80%;
        grid-template-areas: 
        'logo hero'
        'boxt hero';
    }

    .logo {
        width: 60%;
        grid-column: 1 / 2;
        grid-row: 1 / 2;
        grid-area: logo;
        align-self: center;
    }

    .logo img {
        width: 28%;
    }

    .text-box {
        width: 60%;
        grid-column: 1 / 2;
        grid-row: 2 / 3;
        grid-area: boxt;
        text-align: left;
    }
    
    .title {
        margin-top: 5.5rem;
        font-weight: 300;
        letter-spacing: 1.2rem;
    }
    
    .text-box h1 {
        margin-top: 0.2rem;
        letter-spacing: 1.2rem;
    }
    
    .description {
        margin-top: 2.5rem;
        font-size: 1.3rem;
        font-weight: 400;
        letter-spacing: 0.01rem;
        line-height: 2rem;
        color: var(--desaturated-red);
    }

    .input {
        height: 4rem;
    }

    .button {
        /* width: 21%; */
        height: 4rem;
    }

    .icon {
        top: 1rem;
        right: 8rem;
    }

    .picture-box {
        height: 100%;
        grid-column: 2 / 3;
        grid-row: 1 / 3;
        grid-area: hero;
    }

    .hero img {
        height: 100%;
    }

    footer {
        max-width: 100rem;
    }

}