:root {
	--color-purple: #6b0b44;
	--color-blue: #121d30;
	--color-dark-grey: #636363;
	--color-light-grey: #f0f0f0;
}

div#layoutFix {
	display: grid;
	grid-template-columns: auto;
	grid-template-rows: 11rem auto auto;
	grid-template-areas: "header" "main" "footer";
}

.wrapper {
	max-width: 60rem;
	margin: auto;
}


/* Header */

header#mainHeader {
	display: block;
	grid-area: header;
	background-color: var(--color-purple);
	color: #FFF;
	font-size: 1em;
	font-weight: 700;
	height: calc(100% - 1px);
	border-bottom: 1px solid var(--color-purple);
}

header#mainHeader a, header#mainHeader a:visited {
	color: #FFF;
	transition: color 0.2s;
}

header#mainHeader a:hover {
	color: var(--color-blue);
	transition: color 0.2s;
}

header#mainHeader div#topBar {
	display: grid;
	align-items: center;
	height: 3rem;
	width: calc(100% - 2em);
	padding: 0 1em;
	grid-template-columns: 30em auto 30em;
}

header#mainHeader div#topBar div:nth-child(2) {	text-align: center; }
header#mainHeader div#topBar div:nth-child(3) {	text-align: right; }

header#mainHeader div#topBar div:nth-child(3) a { padding: 0 0.25em; }

header#mainHeader div#navHeader {
	background-color: var(--color-light-grey);
	height: calc(100% - 3rem);
}

header#mainHeader div#navHeader > div {
	display: flex;
	align-items: center;
	height: 100%;
}

header#mainHeader div#navHeader img {
	display: block;
	height: 7em;
}

header#mainHeader div#navHeader nav {
	display: flex;
	justify-content: flex-end;
	width: 100%;
}

header#mainHeader div#navHeader nav a, heder#mainHeader div#navHeader nav a:visited {
	color: var(--color-purple);
	padding: 0 0.5em;
	transition: color 0.2s, background-color 0.2s;
}

header#mainHeader div#navHeader nav a:hover {
	color: #FFF;
	transition: color 0.2s, background-color 0.2s;
	background-color: var(--color-purple);
}


/* Design Aspects */

div.button {
	display: inline-block;
	margin: 0.5em;
	background-color: var(--color-purple);
	transition: background-color 0.2s;
}

div.button a, div.button a:visited {
	display: block;
	color: #FFF;
	font-weight: 700;
	width: calc(100% - 1em);
	height: calc(100% - 0.5em);
	padding: 0.25em 0.5em;
}

div.button:hover {
	background-color: var(--color-blue);
	transition: background-color 0.2s;
}

.cBorder {
	background-image: url('/library/images/border-tl.svg'), url('/library/images/border-tr.svg'), url('/library/images/border-br.svg'), url('/library/images/border-bl.svg');
	background-position: top left, top right, bottom right, bottom left;
	background-repeat: no-repeat;
	background-size: 5rem;
	min-height: 20rem;
	min-width: 20rem;
}

div.highlightBox {
	display: block;
	width: calc(100% - 4em);
	min-height: 10em;
	padding: 2em;
	background-color: var(--color-blue);
	color: #FFF;
}

div.threepanel {
	display: flex;
	justify-content: space-between;
}

div.threepanel > div {
	flex: 0 0 25%;
	display: grid;
	grid-template-rows: 5em auto;
	grid-gap: 1em;
	text-align: center;
}

div.threepanel figure {
	font-size: 4em;
}

div.lpGrid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-template-rows: minmax(20em, auto) minmax(20em, auto);
	grid-template-areas: "left item1 item2" "left item3 item4";
}

div.lpGrid div.lpgFeature, div.lpGrid div.lpgItem {
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	padding: 5em 1em;
	position: relative;
}

div.lpGrid div.lpgFeature {
	grid-area: left;
}

div.lpGrid div.lpgFeature div.lpgOverscan {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	overflow: hidden;
	z-index: 7;
	background-color: rgba(18, 29, 48, 0.9)
}

div.lpGrid div.lpgItem div.lpgBG {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	overflow: hidden;
	z-index: 5;
}

div.lpGrid div.lpgItem div.lpgOverscan {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	overflow: hidden;
	z-index: 7;
	background-color: rgba(0,0,0,0.5);
	opacity: 0;
	transform: opacity 0.2s;
}

div.lpGrid div.lpgItem:hover div.lpgOverscan {
	opacity: 1;
	transform: opacity 0.2s;
}

div.lpGrid div.lpgItem div.lpgBG > div {
	display: block;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	transition: transform 0.2s;
}

div.lpGrid div.lpgItem:hover {
	cursor: pointer;
}

div.lpGrid div.lpgItem:hover div.lpgBG > div {
	transform: scale(1.2);
	transition: transform 0.2s;
}

div.lpGrid div.lpgItem div.lpgContent {
	display: block;
	height: 100%;
	width: 100%;
	text-align: center;
	position: relative;
	z-index: 10;
}

div.lpGrid div.lpgItem div.lpgContent h2 {
	color: #FFF;
	text-shadow: 1px 1px 3px #000;
}

div.lpGrid div.lpgItem > div > div.button {
	opacity: 0;
	transition: opacity 0.2s;
}

div.lpGrid div.lpgItem:hover > div > div.button {
	opacity: 1;
	transition: opacity 0.2s;
}

div.whiteBox {
	display: block;
	background-color: #FFF;
	width: calc(100% - 10em);
	padding: 5em;
}

div.centered {
	text-align: center;
}

div.ccBox {
	width: calc(100% - 10em);
	padding: 5em;
}

div.ccBox h2 {
	display: block;
	color: var(--color-blue);
}

div.ccBox div.ccItems {
	display: flex;
	flex-wrap: wrap;
	padding: 2em;
	gap: 2em;
}

div.ccBox div.ccItems div.ccItem {
	flex: 1 0 25%;
	box-shadow: 2px 2px 5px #888888;
	background-color: #FFF;
	padding: 2em 5em;
}

div.ccBox div.ccItems div.ccItem.nopad {
	padding: 0;
}

div.ccBox div.ccItems div.ccItem.clickable {
	cursor: pointer;
}

div.ccBox div.ccItems div.ccItem.clickable div.ccImage + div {
	transition: color 0.2s, background-color 0.2s;
}

div.ccBox div.ccItems div.ccItem.clickable:hover div.ccImage + div {
	background-color: var(--color-purple);
	color: #FFF !important;
	transition: color 0.2s, background-color 0.2s;
}

div.ccBox div.ccItems div.ccImage {
	display: block;
	width: 100%;
	height: 15em;
}

div.ccBox div.ccItems div.ccImage div {
	display: block;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
}

div.ccBox div.ccItems div.ccItem p.cciInfo {
	display: block;
	width: calc(100% - 2em);
	text-align: right;
	margin: 1em;
	font-weight: 700;
	color: var(--color-blue);
}

/* Content Elements */

section#mainContent div.standardHero {
	display: flex;
	background-color: #FFF;
	width: 100%;
	min-height: 20em;
}

section#mainContent div.standardHero > div:first-of-type {
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	flex: 0 0 calc(35% - 4em);
	padding: 2em;
}

section#mainContent div.standardHero > div:last-of-type {
	flex: 1;
	padding: 2em;
}

section#mainContent div.standardHero > div:last-of-type div.button {
	margin: 2em auto;
}

section#mainContent h2 {
	font-size: 2em;
	font-weight: 700;
	margin-bottom: 1em;
}

div.projectImages {
	display: flex;
	flex-wrap: wrap;
	gap: 2em;
	padding: 5em;
	width: calc(100% - 10em);
	justify-content: center;
}

div.projectImages > div {
	flex: 0 0 15em;
	height: 15em;
}

div.projectImages > div img {
	display: block;
	width: 100%;
	height: 100%;
}

/* Footer */

footer {
	grid-area: footer;
	display: flex;
	padding: 3em 2em;
	width: calc(100% - 4em);
	background-color: var(--color-blue);
	color: #FFF;
}

footer div.footers {
	padding: 1em;
}

footer h2 {
	font-size: 2em;
	margin-bottom: 0.5em;
	color: var(--color-dark-grey);
}

footer div.footers a, footer div.footers a {
	color: #FFF;
	transition: color 0.2s;
}

footer div.footers a:hover {
	color: var(--color-purple);
	transition: color 0.2s;
}

footer div:nth-child(1) { flex: 1 0 calc(50% - 2em); }
footer div:nth-child(2) { 
	flex: 1 0 calc(25% - 2em);
	text-align: center;
}
footer div:nth-child(3) { 
	flex: 1 0 calc(25% - 2em);
	text-align: right;
}

footer div table {
	width: 100%;
}

footer div table td {
	padding: 0.5em;
}

footer div table td:first-of-type { 
	width: 100%;
	color: var(--color-dark-grey);
}