:root {
    --red: #c00404;
    --white: #ffffff;
    --black: #000000;
    --brown: #4e3629;
    --dgray: #687078;
    --mgray: #98a4ae;
    --gray: #f0f2f3;
    --font-minion: "minion-pro", serif;
    --font-circular: "CircularStd", sans-serif;
}

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

html {
    font-size: 14px;
    font-family: var(--font-circular);
}

body {
    display: flex;
    padding: 4%;
    background-color: var(--brown);
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
    height: 100%;
}

.container {
    background: rgba(255, 255, 255, 0.98);
    width: min(98%, 980px);
    margin: auto;
    border-radius: 8px;
    overflow: hidden;
    display: grid;
    grid: "header" "main" "footer";
    box-shadow: rgba(0, 0, 0, 0.25) 0px 4px 16px;
}

header {
    grid-area: header;
    padding: 4%;
    display: grid;
    grid: "logo" 1fr "search" 1fr;
    align-items: center;
    justify-items: center;
}

@media only screen and (min-width: 500px) {
    header {
        padding: clamp(40px, 4vw, 60px);
    }
}

@media only screen and (min-width: 740px) {
    header {
        grid: "logo search" 1fr/1fr 1fr;
        justify-items: stretch;
    }
}

header a {
    grid-area: logo;
}

header a:focus {
    outline: 1px solid var(--red);
}

header a img {
    width: min(400px, 200px);
    height: auto;
}

form {
    grid-area: search;
    display: flex;
    gap: 8px;
    width: 100%;
}

input[type="text"] {
    border-radius: 4px;
    border: 1px solid rgba(104, 112, 120, 0.25);
    background: rgba(240, 242, 243, 0.75);
    padding: 4% 6%;
    width: 100%;
    font-size: 14px;
    font-family: var(--font-circular);
}

input[type="text"]:hover {
    border-color: var(--red);
}

input[type="text"]:focus {
    outline: 1px solid var(--red);
}

button[type="submit"] {
    display: flex;
    padding: 4%;
    justify-content: center;
    align-items: center;
    gap: 4px;
    color: var(--white);
    border-radius: 4px;
    background: var(--red);
    border: 0;
    font-size: 20px;
    font-family: var(--font-circular);
}

button[type="submit"]:hover {
    background: var(--brown);
}

button[type="submit"]:active {
    background: var(--brown);
}

button[type="submit"]:focus {
    background: var(--brown);
    outline: 1px solid var(--red);
}

main {
    padding: 0 clamp(40px, 4vw, 60px) clamp(40px, 4vw, 60px)
        clamp(40px, 4vw, 60px);
    grid-area: main;
    display: grid;
    grid: "error" 1fr;
    align-items: center;
}

@media only screen and (min-width: 740px) {
    main {
        grid: "image error" 1fr/1fr 1fr;
    }
}

figure {
    display: none;
}

@media only screen and (min-width: 740px) {
    figure {
        display: block;
        grid-area: image;
    }
}

figure img {
    width: 100%;
    height: auto;
}

section {
    grid-area: error;
    text-align: center;
    padding-bottom: 10%;
}

h1 {
    font-size: clamp(32px, 4vw, 54px);
    line-height: 1;
    color: var(--dgray);
}

h2 {
    font-family: var(--font-minion);
    font-size: clamp(54px, 5vw, 80px);
    color: var(--dgray);
    line-height: 1;
    font-weight: bold;
}

section p {
    font-size: 16px;
    letter-spacing: 0.25px;
    border-top: 1px solid rgba(104, 112, 120, 0.25);
    padding-top: 16px;
    margin-top: 16px;
    color: var(--dgray);
}

section p a {
    color: var(--red);
    text-decoration: none;
    display: block;
}

@media only screen and (min-width: 500px) {
    section p a {
        display: inline;
    }
}

section p a:hover {
    color: var(--brown);
}

section p a:active {
    color: var(--black);
}

section p a:focus {
    outline: 1px solid var(--red);
    outline-offset: 2px;
}

footer {
    grid-area: footer;
    background: var(--red);
    color: var(--white);
    padding: 40px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
}

@media only screen and (min-width: 740px) {
    footer {
        justify-content: space-between;
    }
}

footer p {
    font-weight: bold;
    text-align: center;
}

footer address {
    font-style: normal;
    text-align: center;
}
