/* RESET */

html, body, div, span, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, img, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, a, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    margin: 0;
    padding: 0;
    border: 0;
}
 
* {
    box-sizing: border-box;
}


/* LAYOUT */

nav, main, aside, footer {
    padding: 1em;
}

figure {
    margin-bottom: 1em;
}


/* TYPOGRAPHY */

body {
    font-family: Merriweather, serif;
    color: #444;
    line-height: 1.5;
}

h1, h2, h3, nav, footer, figcaption {
    font-family: Oswald, "Helvetica Neue", sans-serif;
    text-transform: uppercase;
    font-weight: bold;
}

h1 {
    font-size: 2rem;
    text-align: center;
}

h2 {
    font-size: 1.5rem;
    margin-bottom: 1em;
}

nav {
    font-size: 1.25rem;
}

p {
    margin-bottom: 1.5em;
}

aside {
    text-align: center;
}


/* COLOUR SCHEME & BORDERS */

header, footer {
    background-color: #1f1712;
    color: #b0ab9b;
}

nav, aside {
    background-color: #c4c4c4;
}

nav a {
    color: #1f1712;
}

footer a {
    color: #b0ab9b;
}

.selected, a:hover {
    color: #f00;
}


/* NAVIGATION */

nav ul, footer ul {
    list-style-type: none;
}

nav li {
    padding: 0.5em 2em 0.5em 0;
}

footer li {
    margin: 0 1em;
}

nav a, footer a {
    text-decoration: none;
}


/* RESPONSIVENESS */

img {
    width: 100%;
}

@media screen and (min-width: 50em) {
	body {
		display: grid;
		grid-template-columns: 1fr 16em 32em 1fr;
		grid-template-areas: " . header header . " 
							 " . mainmenu aside . "
							 " . mainmenu main . "
							 " . footer footer . "
	}
	
	header {
		grid-area: header;
	}
	
	footer {
		grid-area: footer;
	}
	
	nav {
		grid-area: mainmenu;
	}
	
	aside {
		grid-area: aside;
	}
	main {
		grid-area: main;
	}
	
	aside {
		display: flex;
		gap: 1em;
	}
	
	aside > div {
		flex-basis: 0;
		flex-grow: 1;
	}
	
	h1 {
		font-size: 4rem;
	}
}

@media screen and (min-width: 66em) {
	body {
		grid-template-columns: 1fr 16em 32em 16em 1fr;
		grid-template-areas: " . header header header . " 
							 " . mainmenu main aside . "
							 " . footer footer footer . "
	}
	
	aside {
		display: block;
		gap: 0;
	}
}