:root {
	--grid-layout: 40px;
	--grid-thickness: 2px;
	--header-font-size: 3em;
	--body-max-width: 1200px;
}

@media (max-width: 751px) {
	:root {
		--grid-layout: 20px;
		--grid-spacer: 20px;
		--grid-thickness: 1px;
		--header-font-size: 2em;
	}
}

:root {
	--grid-col: rgb(176, 0, 0);

	--link-col: var(--grid-col);
	--link-col-visited: rgb(145, 23, 24);
	--link-col-hover: rgb(210, 45, 45);
	--link-col-active: rgb(120, 0, 0);

	--article-padding: calc(var(--grid-layout) / 2);
	--nav-segments: 4;
	--border-slant-ratio: 0.05;

	--grid-spacer: calc(var(--grid-layout) + var(--grid-thickness));
	--grid-padding: calc(var(--grid-spacer));
	--grid-width-total: round(down, (99vw - 1px), var(--grid-layout));
	--grid-width-clamped: min(var(--grid-width-total), var(--body-max-width));
	--grid-width: calc(var(--grid-width-clamped) + var(--grid-thickness));

	--nav-width: calc((var(--nav-segments) * var(--grid-layout)) - var(--grid-thickness));
	--article-width: calc(var(--grid-width) - var(--nav-width) - (var(--grid-layout) * 2) - var(--grid-padding) - (2 * var(--grid-thickness)));

	--footer-height-stretch: calc(var(--grid-layout) * 3);
}

* {
	box-sizing: border-box;
}

html {
  width: 100%; /* make sure the HTML element spans the entire width and height of the viewport */
  display: flex; /* make it a flex container */
  justify-content: center; /* center the content along the main axis (horizontally by default if your browser is set to use a left-to-right or right-to-left language) */
  align-items: center /* center the content along the cross axis (vertically by default...) */
}

body {
	font-family: Arial, Helvetica, sans-serif;
	color: grey;

	background-color: var(--grid-col);
	background-repeat: no-repeat;
	background-image: linear-gradient(to bottom, black, var(--grid-col));
	width: var(--grid-width);
	max-width: var(--grid-width);

}

.jumbo-title {
	padding: 0px var(--grid-layout) 0px var(--grid-layout);

	.single {
		color: grey;
		text-align: center;
		margin: 0px;
		font-size: 5em;
		text-transform: uppercase;
		font-family: Avenir, Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif;
		font-weight: 900;
	}

	@media (max-width: 751px) {
		.single {
			font-size:
				2em
		}
	}
}

#grid-background {


align-content: center;
	padding: var(--grid-padding);
	padding-bottom: var(--footer-height-stretch);

	background-size:
		var(--grid-layout) var(--grid-layout),
		var(--grid-layout) var(--grid-layout);
	background-repeat:
		repeat,
		repeat;
	background-position:
		0 0,
		0 0;
	background-image:
		linear-gradient(to right, grey var(--grid-thickness), transparent var(--grid-thickness)),
		linear-gradient(to bottom, grey var(--grid-thickness), transparent var(--grid-thickness));
}


h1,
h2,
h3 {
	font-family: "DaVinci", "Louize Display", "Louize", "Times New Roman", serif;
	color: #d3cfc9;

	font-weight: normal;
	font-style: italic;
	font-weight: bold;

	margin: 0px;
}

h2 {
	font-size: 2em
}

h3 {
	font-size: 1.5em;
}

.title {
	padding: var(--article-padding);
	text-align: center;
}

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

a:visited {
	color: var(--link-col-visited);
}

a:hover {
	color: var(--link-col-hover);
}

a:active {
	color: var(--link-col-active);
}

a:focus {
	outline: 2px solid var(--link-col-hover);
	outline-offset: 2px;
}


/* Style the header */
header {
	background-color: #444;
	height: calc((var(--grid-layout) * 3) - var(--grid-thickness));

	margin: 0px 0px var(--grid-spacer) 0px;
	color: white;
align-content: center;

	h2 {
		font-size: var(--header-font-size);
	}
}

/* Create two columns/boxes that floats next to each other */
nav {
	float: left;
	background: #111;

	width: var(--nav-width);
	padding: var(--article-padding);
	padding-bottom: calc(var(--article-padding) + var(--nav-width) * var(--border-slant-ratio));

	clip-path: polygon(0 0,
			/* left top */
			100% 0,
			/* right top */
			100% calc(100% - (var(--nav-width) * var(--border-slant-ratio))),
			/* right bottom */
			0 100%
			/* left bottom */
		);
}

/* Style the list inside the menu */
nav ul {
	list-style-type: none;
	padding: 0;
}

article {
	float: left;
	background-color: #383333;
	padding: calc(var(--grid-layout) / 2);
	width: var(--article-width);
	padding: var(--article-padding);
	padding-bottom: calc(var(--article-padding) + var(--article-width) * var(--border-slant-ratio));
	margin: 0px 0px 0px calc(var(--grid-spacer));

	clip-path: polygon(0 0,
			/* left top */
			100% 0,
			/* right top */
			100% calc(100% - (var(--article-width) * var(--border-slant-ratio))),
			/* right bottom */
			0 100%
			/* left bottom */
		);

}

/* Clear floats after the columns */
section::after {
	content: "";
	display: table;
	clear: both;
}


/* Style the footer */
footer {
	text-align: center;
	background-color: #777;
	color: black;
	width: var(--grid-width);
	max-width: var(--grid-width);

	padding: calc(var(--grid-layout) / 2);
	padding-top: calc(var(--article-padding) + var(--article-width) * var(--border-slant-ratio));

	position: relative;
	top: calc((var(--article-padding) + var(--article-width) * var(--border-slant-ratio) * -1) - (var(--footer-height-stretch) * 0.8));

	clip-path: polygon(0 calc((var(--article-width) * var(--border-slant-ratio))),
			100% 0,
			100% 100%,
			0 100%);
}

/* Responsive layout - makes the two columns/boxes stack on top of each other instead of next to each other, on small screens */
@media (max-width: 751px) {

	nav,
	article {
		width: 100%;
		height: auto;
	}

	nav {
		--nav-small-offset: calc((var(--grid-width) - (2 * var(--grid-padding))) * var(--border-slant-ratio));
	padding-bottom: var(--nav-small-offset);
	clip-path: polygon(0 0,
			/* left top */
			100% 0,
			/* right top */
			100% calc(100% - var(--nav-small-offset)),
			/* right bottom */
			0 100%
			/* left bottom */
		);
	}

	article {

		--article-small-offset: calc((var(--grid-width) - (2 * var(--grid-padding))) * var(--border-slant-ratio));
		padding-bottom: var(--article-small-offset);
		padding-top: var(--article-small-offset);
		margin: 0px 0px var(--grid-spacer) 0px;

		clip-path: polygon(
				0 var(--article-small-offset),
				/* left top */
				100% 0,
				/* right top */
				100% calc(100% - (var(--article-width) * var(--border-slant-ratio))),
				/* right bottom */
				0 100%
				/* left bottom */
			);
	}
}
