:root {
	--darker-grey: rgb(37, 37, 37);
	--dark-grey: rgb(68, 68, 68);
	--grey: rgb(103, 103, 103);
	--light-grey: rgb(204, 204, 204);
	--lighter-grey: rgb(221, 221, 221);
	--orange: rgb(247, 142, 30);
}

* {
	box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
}

body {
	overflow: hidden;
}

h1 {
	text-transform: uppercase;
	font-family: 'Oswald', sans-serif;
	font-size: 54px;
	font-weight: 700;
	line-height: 54px;
	letter-spacing: -2px;
	margin: 8px 0;
	color: var(--orange);
}

h2 {
	text-transform: uppercase;
	font-family: 'Ariel', sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 30px;
	letter-spacing: 1px;
	margin: 8px 0;
	color: var(--orange);
}

h3 {
	text-transform: uppercase;
	font-family: 'Open Sans', sans-serif;
	font-size: 19px;
	font-weight: 600;
	line-height: 27px;
	margin: 0 0 8px 0;
	color: var(--orange);
}

p, span {
	font-family: 'Open Sans', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 26px;
	color: var(--grey);
	padding: 0;
}

ul {
	font-size: 14px;
	line-height: 14px;
	font-family: 'Open Sans', sans-serif;
	color: var(--dark-grey);
	list-style: none;
	padding: 0;
	margin: 2em 1em;
}

ul > li {
	font-weight: 600;
	margin: 1em 0em;
}

ul > li:before {
	content: "+";
	display: inline-block;
	width: 1em;
	margin-left: -1em;
}

ul > li > ul > li {
	font-weight: 400;
}

ul > li > ul > li:before {
	content: "\2022";
	display: inline-block;
	font-weight: bold;
	width: 1em;
	margin-left: -1em;
}

span {
	text-transform: uppercase;
}

.banner-top {
	grid-area: banner-top;
	position: fixed;
	top: 0;
	width: 100%;
	background-color: white;
	box-shadow: 0px 0px 3px 0px rgba(0,0,0,.3);
	z-index: 500;

	display: grid;
	grid-template-columns: 1fr minmax(480px, 960px) 1fr;
	grid-template-rows: 128px;
	grid-template-areas:
		". header .";
}

.header {
	grid-area: header;
	padding: 0 20px;

	display: grid;
	grid-template-columns: auto 1fr auto;
	grid-template-rows: 1fr 1fr;
	grid-template-areas:
		"logo . phone"
		"logo . menu";
}

.logo {
	grid-area: logo;
	place-self: center left;
	padding: 10px 0;
}

.phone {
	grid-area: phone;
	place-self: center right;
}

.phone span {
	font-family: 'Oswald', sans-serif;
	font-weight: bold;
	font-size: 28px;
	color: var(--dark-grey);
}

.phone span a {
	color: var(--dark-grey);
}

.banner-nav {
	grid-area: menu;
	place-self: center right;
	text-transform: uppercase;
}

.banner-nav ul {
	text-transform: uppercase;
	font-family: 'Open Sans', sans-serif;
	list-style: none;
	list-style-type: none;
	font-size: 14px;
	font-weight: 400;
	line-height: 26px;
	letter-spacing: normal;
	color: var(--grey);
	padding: 0;
	margin: 0;
}

.banner-nav li {
	display: inline;
	margin: 0 0 0 20px;
	padding: 0;
}

.banner-nav li,
.banner-nav a {
	text-decoration: none;
	color: var(--grey);
}

.banner-nav li:before {
	margin: 0;
	content: "";
}

.main {
	grid-area: main;
	margin-top: 128px;
	height: calc(100vh - 128px);
	overflow-y: auto;
	display: flex;
	flex-direction: column;
}

.section {
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;

	display: grid;
	grid-template-columns: 1fr minmax(480px, 960px) 1fr;
	grid-template-rows: 1fr;
	grid-template-areas: ". article .";
}

.dark-theme {
	background-color: var(--darker-grey);
	box-shadow: inset 0 0 0 1000px rgba(0,0,0,.8);
}

.dark-theme h1,
.dark-theme p {
	color: white;
}

.article {
	grid-area: article;

	padding: 40px;

	display: grid;
	grid-template-columns: [article-left] 1fr 40px 1fr [article-right];
	grid-template-rows: 1fr [heading-top] auto [heading-bottom article-top] auto [article-bottom] 1fr;
	grid-template-areas:
		". . ."
		"heading heading heading"
		"column-left . column-right"
		". . .";
}

.line-after {
	border-bottom: 1px solid var(--light-grey);
}

.heading {
	grid-area: heading;
	text-transform: uppercase;
	text-align: center;
	margin: 20px 0;
}

.column-both {
	grid-area: article-top / article-left / article-bottom / article-right;
}

.column-left {
	grid-area: column-left;
}

.column-right {
	grid-area: column-right;
}

.verticle-center-text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
}

.horizontal-center-text {
	text-align: center;
	align-items: center;
}

.justify_text_right {
	text-align: right;
}

.separator {
	margin: 20px auto;
	width: 100px;
	border-bottom: 1px solid var(--lighter-grey);
}

ul.arrow-style {
	text-transform: uppercase;
	font-family: 'Ariel', sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 20px;
	letter-spacing: 1px;
	padding: 0;
	margin: 0;
	color: var(--dark-grey);

	list-style-type: none;
}

.arrow-style li {
	margin: 0;
	padding: 40px 0;
	margin-left: 1em;
}

.arrow-style li:before {
	font-size: 36px;
	margin-left: -20px;
	margin-right: 20px;
	content: "⤍";
}

.float-img > img {
	border-radius: 8px;
	box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.2);
}

.client-img-space {
	margin: 10px;
}

.why-acc {
	padding-top: 20px;
	background-image: url("images/acc-01.webp");
}

.civil {
	padding-top: 20px;
	background-image: url("images/pit-pipe.webp");
}

.comms {
	padding-top: 20px;
	background-image: url("images/services.webp");
}

#banner-bottom {
	border-top: solid 10px var(--orange);
	background-color: var(--darker-grey);
}

#footer span {
	text-transform: none;
	font-family: 'Open Sans', sans-serif;
	font-size: 14px;
	color: var(--lighter-grey);
}

#footer span a {
	color: var(--lighter-grey);
}

#james-profile {
	float: left;
	position: relative;
	height: 450px;
	width: 420px;
}

#table-work {
	float: right;
	position: relative;
	height: 230px;
	width: 448px;
	top: 60px;
	right: 40px;
}

#aus-map {
	float: right;
	position: relative;
	height: 700px;
	width: 506px;
}

#mgt-sys {
	grid-template-rows: minmax(480px, 1fr);
	background-image: url("images/acc-02.webp");
}

#depot-view {
	float: right;
	position: relative;
	top: 50px;
}

#vac-pic {
	float: left;
	position: relative;
	height: 600px;
	width: 504px;
	top: 80px;
}