:root {
    --color-primary: hsl(204.39, 79.49%, 38.24%);
    --color-secondary: hsl(0, 0%, 100%);
    --color-secondary-lesser: hsl(0, 0%, 80%);

    --font-size-m: 16px;
    --font-size-xl: 3.5em;
    --font-size-xxl: 7em;

    --border: 0px solid var(--color-primary);
    --border-radius: 8px;
}

body {
    font-family: "Helvetica Neue", Arial, sans-serif;
    font-size: var(--font-size-m);
    background-color: var(--color-primary);
    color: var(--color-secondary);
    margin: 0;
    padding: 0;
}

.page {
    height: 100vh;
    width: 75vw;
    font-size: var(--font-size-xxl);
    font-weight: bold;
    display: flex;
    align-items: center;
    margin: 0 auto;
}

.page p {
    color: var(--color-secondary-lesser)
}

.page p em {
    color: var(--color-secondary);
    font-style: normal;
    font-weight: bolder;
}

form p {
    font-size: var(--font-size-m);
}

#home #contact {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 14px;
    grid-auto-rows: minmax(100px, auto);
    font-size: var(--font-size-m);
}

#home #contact>p {
    grid-column: 1;
    grid-row: 1;
    font-size: var(--font-size-xl);
    color: var(--color-secondary);
}

#home #contact form {
    grid-column: 2;
    grid-row: 1;
}

#home #contact form p {
    margin-block-start: 1.25em;
    color: var(--color-secondary);
}

#home #contact form p.name {
    display: flex;
    gap: 8px;
}

#home #contact form p.name>span {
    flex: 1;
}

#home #contact form label span {
    color: var(--color-secondary-lesser);
}

#home #contact form input,
#home #contact form textarea,
#home #contact form button {
    background-color: var(--color-secondary);
    box-sizing: border-box;
    width: 100%;
    margin-top: 4px;
    padding: 8px;
    border: var(--border);
    border-radius: var(--border-radius);
    font-size: var(--font-size-m);
}

#home #contact form textarea {
    min-height: 10em;
    max-height: 30em;
    resize: vertical;
}

#home #contact form button[type="submit"] {
    background-color: transparent;
    color: var(--color-secondary);
    border: 2px solid var(--color-secondary);
    border-radius: var(--border-radius);
    font-weight: bold;
    padding: 12px 24px;
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s;
}

#home #contact form button[type="submit"]:hover {
    background-color: var(--color-secondary);
    color: var(--color-primary);
}

.nav-buttons {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    z-index: 1000;
}

.nav-buttons button {
    width: 3rem;
    height: 3rem;
    border: 2px solid var(--color-secondary);
    border-radius: 50%;
    background-color: transparent;
    color: var(--color-secondary);
    cursor: pointer;
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background-color 0.2s, color 0.2s, opacity 0.2s;
}

.nav-buttons a.back-link {
    background-color: transparent;
    color: var(--color-secondary);
    border: 2px solid var(--color-secondary);
    border-radius: var(--border-radius);
    font-weight: bold;
    padding: 12px 24px;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s;
}

.nav-buttons a.back-link:hover {
    background-color: var(--color-secondary);
    color: var(--color-primary);
}

.nav-buttons button:hover:not(.disabled) {
    background-color: var(--color-secondary);
    color: var(--color-primary);
}

.nav-buttons button.disabled {
    opacity: 0.3;
    cursor: default;
}

/* Error page styles */
#error {
    --color-primary: hsl(29, 82%, 53%);
}

#error .page,
#thankyou .page {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1em;
}

#error .page p,
#thankyou .page p {
    margin: 0;
}

/* Thank you page styles */
#thankyou {
    --color-primary: hsl(204.39, 79.49%, 38.24%);
}

@media screen and (max-width: 1024px) {
    #home #contact {
        display: flex;
        flex-direction: column;
        gap: 0.5em;
        justify-content: center;
    }

    #home #contact>p {
        margin: 0;
    }
}

@media screen and (max-width: 900px) {
    :root {
        --font-size-xxl: 6em;
    }
}

@media screen and (max-width: 800px) {
    :root {
        --font-size-xxl: 5em;
    }
}

@media screen and (max-width: 680px) {
    :root {
        --font-size-xxl: 4em;
        --font-size-xl: 3em;
    }
}

@media screen and (max-width: 540px) {
    :root {
        --font-size-xxl: 3em;
        --font-size-xl: 2.5em;
    }
}

@media screen and (max-width: 420px) {
    :root {
        --font-size-xxl: 2.5em;
        --font-size-xl: 2.2em;
    }
}

@media screen and (max-width: 340px) {
    :root {
        --font-size-xxl: 2.2em;
        --font-size-xl: 2em;
    }
}