:root {
    --red: hsl(4, 100%, 67%);
    --blue-800: hsl(234, 29%, 20%);
    --blue-700: hsl(235, 18%, 26%);
    --grey: hsl(0, 0%,58%);
    --white: hsl(0, 0%, 100%);
    --normal-font: 'Roboto Regular', sans-serif;
    --bold-font: 'Roboto Bold', sans-serif;
    --border-radius: 10px;
}

@font-face {
    font-family: 'Roboto Regular';
    src: url(./assets/fonts/Roboto-Regular.ttf) format('truetype');
}

@font-face {
    font-family: 'Roboto Bold';
    src: url(./assets/fonts/Roboto-Bold.ttf) format('truetype');
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: var(--normal-font);
    color: var(--blue-700);
}

body {
    display: grid;
    grid-template-rows: 1fr auto 1fr;
    grid-template-areas:
    "."
    "card"
    "footer";
    min-height: 100vh;
    background-color: var(--blue-700);
}

.card {
    grid-area: card;
    width: min(60em, 90%);
    margin: 0 auto;
    padding: 1.5em;
    background-color: var(--white);
    border-radius: 40px;
}

.wrapper {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
}

.text-block {
    padding: 3em 4em 3em 2.5em;
}

h1 {
    margin-bottom: 1.3rem;
    font-family: var(--bold-font);
    font-size: clamp(2.5em, 0.8em + 5vw, 3.5em);
    color: var(--blue-800);
}

.description {
    margin-bottom: 1.3rem;
}

p {
    line-height: 1.5;
}

.list-item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1em;
    margin-bottom: 1em;
}

.list-bullet {
    height: 1.5em;
}

form {
    position: relative;
    margin-top: 3em;
}

label {
    font-family: var(--bold-font);
    font-size: 0.9em;
}

input[type=email] {
    display: block;
    width: 100%;
    margin: 1em 0 2em;
    padding: 1.2em 1.5em;
    font-size: 1em;
    border: 1px solid var(--grey);
    border-radius: var(--border-radius);
}

input[type=email]:active {
    border: 1px solid var(--blue-700);
}

input[type=email]::placeholder {
    color: var(--grey);
}

button,
input[type=submit] {
    display: block;
    cursor: pointer;
    width: 100%;
    font-family: var(--bold-font);
    font-size: 1em;
    background-color: var(--blue-800);
    color: var(--white);
    padding: 1.2em 1.5em;
    border: none;
    border-radius: var(--border-radius);
    text-decoration: none;
}

button:hover,
input[type=submit]:hover {
    background-image: linear-gradient(to right, #ff537b, #ff693e);
}

.error-message {
    display: inline;
    position: absolute;
    right: 0;
    color: var(--red);
    font-family: var(--bold-font);
    font-size: 0.9em;
}

.hidden {
    display: none;
}

.error {
    border: 1px solid var(--red);
    color: var(--red);
    background-color: hsl(4, 100%, 95%);
}

.mobile-banner-img {
    display: none;
}

#success-container {
    max-width: 35em;
    padding: 1em 0.5em 1em 2em;
}

#success-container h1 {
    margin-top: 2rem;
}

#success-container .description {
    margin-bottom: 3em;
}

footer {
    grid-area: footer;
    align-self: end;
    padding: 1em;
    font-size: 0.8em;
    text-align: center;
    color: var(--white);
}

footer a {
    color: var(--white);
}

strong {
    font-family: 'Roboto Bold';
}

@media only screen and (max-width: 920px) {
    body {
        grid-template: none / none;
        grid-template-areas:
        "card"
        "footer";
        background-color: var(--white);
        max-width: 30em;
        margin: 0 auto;
    }

    .card {
        width: 100%;
        padding: 0;
    }

    #success-container {
        align-self: center;
        padding: 0;
    }

    #success-text-block {
        display: grid;
        height: 90vh;
        grid-template-rows: 1fr auto 2fr;
        grid-template-areas:
        "."
        "content"
        "button";
    }

    #success-grid-item {
        grid-area: content;
    }

    #btn-dismiss {
        grid-area: button;
        align-self: end;
    }

    .text-block {
        margin: 0 1em;
        padding: 0;
    }

    #form-container h1 {
        margin-top: 3rem;
    }

    .mobile-banner-img {
        display: block;
        width: 100%;
    }

    .desktop-banner-img {
        display: none;
    }

    footer {
        color: var(--grey);
    }

    footer a {
        color: var(--blue-700);
    }
}