:root {
    --off-white: #f6f0f0;
    --red: hsl(0, 54%, 50%);
    --green: hsl(112, 62%, 33%);
    --brown: hsl(21, 43%, 35%);
    --blue: dodgerblue;

    --header-background-color: var(--off-white);
    --footer-background-color: #444;

    --header-color: var(--blue);

    --link-color: var(--red);
    --link-hover-color: hsl(0, 54%, 40%);
    --link-active-color: hsl(0, 54%, 30%);
    --link-decoration: none;

    --button-background: var(--green);
    --button-hover-color: hsl(112, 62%, 23%);
    --button-active-color: hsl(112, 62%, 13%);
    --button-text-color: var(--off-white);
    --button-padding: 0.5rem 1rem;
    --button-border: none;

    --border-radius: 5px;
    --transition: all 0.3s ease-out;

    scroll-behavior: smooth;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    display: grid;
    grid-template-rows: auto 1fr auto;
    min-height: 100dvh;
    margin: 0;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}

main a:hover {
    text-decoration: underline;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--header-color);
}

button,
a[role="button"],
.button,
input[type="submit"] {
    background-color: var(--button-background);
    color: var(--button-text-color);
    border: var(--button-border);
    padding: var(--button-padding);
    text-decoration: none;
    cursor: pointer;
    border-radius: var(--border-radius);
    transition: var(--transition);

    &:hover,
    &:focus,
    &:active {
        background-color: var(--button-hover-color);
        color: var(--button-text-color);
        text-decoration: none;
    }
}

a {
    color: var(--link-color);
    text-decoration: var(--link-decoration);

    &:hover,
    &:focus {
        color: var(--link-hover-color);
    }

    &:active {
        color: var(--link-active-color);
    }
}

input,
textarea {
    width: 100%;
    margin-top: 0.25rem;
    padding: var(--button-padding);
    border-radius: var(--border-radius);
    border: 1px solid #ccc;
}

input {
    &:required {
        border-right: 5px solid coral;

        &:user-valid {
            border-right: 5px solid var(--green);
            background-color: #e6ffe6;
        }

        &:user-invalid {
            border-right: 5px solid var(--red);
            background-color: #ffe6e6;
        }
    }
}

textarea {
    resize: vertical;
}