
body {
    display: grid;
    grid-template-areas:
        "header-logo header-nav header-nav"
        "nav input-forms input-forms"
        "nav footer footer";
    grid-template-rows: 80px 1fr 70px;
    grid-template-columns: 20% 1fr 15%;
    grid-row-gap: 10px;
    grid-column-gap: 10px;
    height: 100vh;
    margin: 0;
}

/* Style custom grid tags. */
header-logo, header-nav, footer, input-forms, nav, div {
    padding: 1.2em;
}

header-logo {
    background: #77b8a6;
    padding: 0; /* Ensure logo resting in top-left corner. */
}

    header-logo #container-logo {
        display: grid;
        padding: 0;
        place-items: center;
    }

header-nav {
    background: #77b8a6;
}

    header-nav a {
        font: normal 3em Nunito, Arial, sans-serif;
        color: #fff;
        padding: 5px 0 0 15px;
        text-shadow: 3px 4px 0px rgba(98, 98, 98, 0.34);
        text-decoration: none;
    }

nav {
    background: #b89377;
    font: normal 2em 'Ysabeau SC', Arial, sans-serif;
}

    nav #link-header {
        display: grid;
        padding: 0;
        place-items: center;
        text-transform: uppercase;
        font-size: .75em;
    }

    nav a {
        color: #fff;
        font-size: .70em;
        text-decoration: none;
    }

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

input-forms {
    border: double 3px #b89377;
}

    input-forms h2 {
        color: #A677B8;
        margin: 0;
        border-bottom: ridge 2px #A677B8;
        font-variant: small-caps;
        font: normal 2em 'Ysabeau SC', Arial, sans-serif;
    }


footer #container-footer {
    display: grid;
    padding: 0 0 20px 0;
    margin: 0;
    place-items: center;
    grid-auto-flow: column;
    grid-gap: 0px;
    font: normal 2em 'Ysabeau SC', Arial, sans-serif;
}

    footer #container-footer #org-name {
        font: normal .5em Roboto, Arial, sans-serif;
    }

footer #container-footer-links {
    padding: 2px 4px;
    margin: 0;
    width: 300px;
    border: dashed 1px silver;
    vertical-align: top;
    text-align: center;
}

    footer #container-footer-links a {
        text-transform: capitalize;
        font: normal .5em 'Open Sans', Arial, sans-serif;
    }

/* Define IDs with tags */
#pageHeaderLogo {
    grid-area: header-logo;
}

#pageHeaderNav {
    grid-area: header-nav;
}

#pageInputForms {
    grid-area: input-forms;
}

#pageFooter {
    grid-area: footer;
}

#mainNav {
    grid-area: nav;
}


/* Stack the layout on small devices/viewports. */
@media all and (max-width: 575px) {
    body {
        grid-template-areas:
            "header-logo"
            "header-nav"
            "input-forms"
            "nav"
            "footer";
        grid-template-rows: 80px 1fr 70px 1fr 70px;
        grid-template-columns: 1fr;
    }
}
