/* General */
body, html {
	width:100%;
	height:100%;
}
body {
	color:#FFF;
	font-family: 'Open Sans', sans-serif;
	overflow-x:hidden;
}
a {
	text-decoration:none;
	color:inherit;
}
img {
	height:100%;
}
h1 {
	font-family: 'Dosis', sans-serif;
	font-size:2.2em;
	font-weight:400;
	margin-top:0;
	margin-bottom:0.4em;
}
h2 {
	font-weight:500;
}
h3 {
	font-size:1em;
}
p:first-of-type {
	margin-top:0;
}
.fill-screen {
	width:100%;
	max-width:1200px;
}
.fill-screen,.center-self {
	margin:auto;
	position:relative;
}
.column,.inline-container > div {
	display:inline-block;
}
.column {
	vertical-align:top;
}
.black-text {
	color:#000;
}
.black-text h1,.black-text h2,.black-text a {
	color:#573;
}
.round-button {
	display:inline-block;
	cursor:pointer;
	padding:0.6em 1.5em;
	border:1px solid #FFF;
	border-radius:1.5em;
	margin-top:1em;
}
.black-text .round-button {
	color:#573;
	border-color:#000;
}
.uppercase, .round-button {
	text-transform:uppercase;
}
.background-image {
	background-size:cover;
	background-repeat:no-repeat;
	background-position:center center;
}
.center-content {
	text-align:center;
}
.align-content-right {
	text-align:right;
}
.no-margin {
	margin:0;
}
.margin-small {
	margin-bottom:1em;
}
.margin-medium {
	margin-bottom:2em;
}
.margin-large {
	margin-bottom:3em;
}
.snap-to-bottom {
	position:absolute;
	bottom:0;
}
.snap-to-right {
	position:absolute;
	right:0;
}
/* ----Necessary for sticky footer in IE11---- */
#layout_root {
	width:100%;
	min-height:100%;
	display:table;
	table-layout:fixed;
}
/* Overflow interaction (header drop-downs) not possible when header is set to table-row */
#header {
	display:block;
}
#content_vertical_flex,#footer {
	display:table-row;
}
#content_vertical_flex {
	height:100%;
}
/* -------------------------------------------- */
#content_horizontal_flex.fill-screen #content_inner_padding {
	padding:2em;
}
/* Header/Footer */
#header, #footer {
	width:100%;
	position:relative;
	font-weight:500;
	z-index:1000;
}
#header.home-header {
	position:fixed;
}
#header.home-header {
	background-color:rgba(0,0,0,0);
	transition:background-color 1s;
}
#header.home-header.visible-bg,#header.home-header.visible-bg .nav-submenu {
	background-color:rgba(0,0,0,0.4);
}
#header:not(.home-header) {
	background-color:#178;
	background-image:url('../images/header/header_bg.jpg');
}
#header_contact_link a {
	text-decoration:underline;
}
#header_contact_link::after {
	content:"|";
	display:inline-block;
	margin:0 0.2em;
}
#header_nav {
	font-size:1.1em;
	letter-spacing:0.05em;
	vertical-align:bottom;
}
.header-nav-link {
	position:relative;
	height:1.2em;
}
.header-nav-link:not(:last-of-type) {
	margin-right:1.5em;
}
.header-nav-link.has-submenu::before {
	content:"v";
	vertical-align:middle;
	margin-right:1em;
	font-size:0.5em;
	transform:scaleX(2);
}
.header-nav-link.has-submenu > a {
	display:inline-block;
	vertical-align:top;
	height:2.65em;
}
.nav-submenu {
	display:none;
	position:absolute;
	padding:0 0.5em 0.5em;
	top:2.65em;
	text-align:left;
	text-transform:none;
	font-size:0.8em;
	white-space:nowrap;
}
.sub-nav-link {
	padding:0.5em;
}
#footer {
	background-color:#BBB;
}
#footer_inner_padding {
	padding:2em;
}
.footer-nav-link {
	line-height:1.5em;
}
.social-icon {
	height:2.5em;
	margin-left:1em;
}
/* Media Queries */
@media (min-resolution: 200dpi), (min-device-pixel-ratio: 2) {
	html {
		font-size:2em;
   }
}
@media (min-width:64em){
	.quarter-width {
		width:23.5%;
   }
	.third-width {
		width:31.5%;
   }
	.half-width {
		width:48.5%;
   }
	.two-third-width {
		width:64.5%;
   }
	.three-quarter-width {
		width:73.5%;
   }
	.full-width {
		width:100%;
   }
	.mobile-only {
		display:none !important;
   }
	.column:not(:last-of-type) {
		margin-right:1%;
   }
	.text-column-inner {
		padding:0 1em;
   }
	#header_inner_padding {
		padding:3.2em 2em 1em;
   }
	#header_contact {
		position:absolute;
		top:0;
		right:0;
		padding:1em;
		transition:background-color 1s;
   }
	#header:not(.home-header) #header_contact, .home-header:not(.visible-bg) #header_contact {
		background-color:rgba(0,0,0,0.2);
   }
	#header_nav {
		text-align:right;
   }
	.header-nav-link:hover .nav-submenu {
		display:block;
   }
	.header-nav-link.has-submenu::before {
		display:inline-block;
   }
}
@media (max-width:64em) {
	.quarter-width, .third-width {
		width:48.5%;
   }
	.quarter-width:last-of-type:nth-of-type(odd), .quarter-width.full-width-in-mobile, .third-width:last-of-type:nth-of-type(odd), .third-width.full-width-in-mobile, .half-width, .two-third-width, .three-quarter-width {
		display:block;
		width:100%;
   }
	.text-column-inner {
		padding:1em 0;
   }
	.desktop-only {
		display:none !important;
   }
	.mobile-inline-container > div {
		display:inline-block;
		margin-bottom:1em;
		width:49%;
   }
	#header_inner_padding {
		padding:1em 2em;
   }
	#header {
		text-align:center;
   }
	#header_logo {
		height:2.75em;
   }
	#header_contact {
		margin:0.5em 0;
		padding:0.5em;
		border:1px solid #FFF;
		border-radius:1em;
		display:inline-block;
   }
	.header-nav-link {
		margin-top:1em;
   }
	.header-nav-link.has-submenu::before {
		display:none;
   }
}
@media (max-width:48em) {
	.quarter-width, .third-width {
		display:block;
		width:100%;
   }
	#header_contact {
		width:100%;
		margin-top:1em;
   }
}
