html, body {
    height: 100vh;
}

* {
    font-family: 'Josefin Sans', sans-serif;
}

/* container styles */
.container {
    display: grid;
    grid-template-areas: 
        "icon-wrapper hero-wrapper"
        "info-wrapper hero-wrapper";
    grid-template-columns: 55% 45%;
    grid-template-rows: 1fr 4fr;
    background-image: url(bg-pattern-desktop.svg);
    height: 100vh;
}

.icon-wrapper {
    grid-area: icon-wrapper;
    padding: 10%;
    height: auto;
}

.hero-wrapper {
    grid-area: hero-wrapper;
    height: auto;
}

.hero-wrapper img {
    width: 100%;
}

.info-wrapper {
    grid-area: info-wrapper;
    padding: 10%;
    height: auto;
}

/* text styles */
.we {
    color: hsl(0, 36%, 70%);
    font-weight: 300;
}

.info-wrapper h1 {
    font-size: 2.5em;
}

.info-wrapper h3 {
    line-height: 1.5;
    color: hsl(0, 36%, 70%);
}

.coming, .soon {
    color: hsl(0, 6%, 24%);
}

/* inputs */
.input-wrapper {
    position: relative; 
    display: inline-block;
}

.input {
    height: 30px;
    width: 300px;
    padding-left: 5px;
    vertical-align: bottom;
    border-radius: 15px;
    border: 1px solid hsl(0, 36%, 70%);
    text-indent: 10px;
}

.input:hover {
    border: 2px solid hsl(0, 36%, 70%);
}

::placeholder {
    color: hsl(0, 36%, 70%);
}

.button {
    height: 34px;
    width: 65px;
    border-radius: 15px;
    border: 1px solid hsl(0, 36%, 70%);
    background: linear-gradient(to right, hsl(0, 80%, 86%), hsl(0, 74%, 74%));
    position: absolute; 
    top: 0; 
    right: 0; 
    z-index: 1; 
}

.button:hover {
    opacity: 0.5; 
}

/* JS */
.invalid {
    border: 2px solid red;
    background-image: url('icon-error.svg');
    background-repeat: no-repeat;
    background-position: right 70px center;
}

.error-message {
    color: hsl(0, 74%, 74%);
    margin-top: 5px;
    display: none; /* Initially hidden */
}

/* mobile */
@media (max-width: 768px) {
    .container {
        display: grid;
        grid-template-areas: 
            "icon-wrapper"
            "hero-wrapper"
            "info-wrapper";
        grid-template-columns: 1fr;
        grid-template-rows: 1fr;
        background-size: cover;
        background-position: center;
    }

    .icon-wrapper {
        grid-area: icon-wrapper;
    }
    
    .hero-wrapper {
        grid-area: hero-wrapper;
    }
    
    .info-wrapper {
        grid-area: info-wrapper;
    }
}