/*! HTML5 Boilerplate v6.1.0 | MIT License | https://html5boilerplate.com/ */

/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */

/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */

   html {
	font-size: 1em;
	line-height: 1.4;
}

/*
	Remove text-shadow in selection highlight:
	https://twitter.com/miketaylr/status/12228805301

	Vendor-prefixed and regular ::selection selectors cannot be combined:
	https://stackoverflow.com/a/16982510/7133471
*/

::-moz-selection {
	text-shadow: none;
}

::selection {
	text-shadow: none;
}

/*	A better looking default horizontal rule */
hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #ccc;
	margin: 1em 0;
	padding: 0;
}

/*
	Remove the gap between audio, canvas, iframes,
	images, videos and the bottom of their containers:
	https://github.com/h5bp/html5-boilerplate/issues/440
*/

audio,
canvas,
iframe,
img,
svg,
video {
	vertical-align: middle;
}

/*	Remove default fieldset styles. */

fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

/*	Allow only vertical resizing of textareas. */

textarea {
	resize: vertical;
}



/* ==========================================================================
   Browser Upgrade Prompt
   ========================================================================== */

#browser-update-outer {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	z-index: 100000;
	width: 100%;
	background-color: #222;
	background-color: rgba(0,0,0,0.85);
}

#browser-update-middle {
	position: absolute;
	display: table;
	width: 100%;
	height: 100%;
}

#browser-update-inner {
	position: relative;
	display: table-cell;
	vertical-align: middle;
}

p.browser-update {
	width: 50%;
	margin: 0 auto;
	text-align: center;
	font-size: 0.875em;
	color: #fff;
}

p.browser-update a {
	text-decoration: none;
}



/* ==========================================================================
   INDIE.WEB BASE STYLES
   ========================================================================== */

/*	INDIE.WEB BRANDING STYLES --------- */

.indie {
	color: #666;
}

.web {
	color: #bb56ff;
}


/*  GENERAL ---------- */

*,
*:before,
*:after {
	box-sizing: border-box; /* makes working with the box model WAY easier */
}

.pos-rel {
	position: relative;
}

.inner {
	position: relative;
	max-width: 60em; /* key responsive element */
	margin: auto;
	padding: 0 15px;
}

.width-15,
.width-20,
.width-25,
.width-30,
.width-33,
.width-40,
.width-50,
.width-60,
.width-66,
.width-75,
.width-80,
.flex-box {
	padding: 15px;
}

.width-100 {
	width: 100%;
	padding: 15px;
}

.int-wrap {
	margin: 0 -15px;
	padding: 0 !important;
}

img {
	width: 100%;
}

.inner > div > .flex-container.int-wrap:first-child > div {
    padding-top: 0 !important; /* prevent inconsistent spacing between .width-x blocks when stacking vertically*/
}


/*	FLEXBOX ------ */

.flex-container {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-ms-flex-direction: row;
	flex-direction: row;
	
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	
	-ms-flex-line-pack: center;
	align-content: center;
	
	-webkit-box-align: stretch;
	-ms-flex-align: stretch;
	align-items: stretch;
}

.flex-container.space-around {
	-ms-flex-pack: distribute;
	justify-content: space-around;
}

.flex-container.flex-start {
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
}

.flex-container.center {
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

.flex-container.flex-end {
	-webkit-box-pack: end;
	-ms-flex-pack: end;
	justify-content: flex-end;
}

/*	Vertical Alignment - apply to parent element to vertically center content */
/*	Conditions:
		- parent element must have 100% height
		- child content must be contained within a tag (text directly within the parent element will overflow in IE)
*/
.vert-center,
.vert-justify {
	height: 100%;
	
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;

	/* required for multiple items */
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
}

.vert-center {
	/* required for multiple items */
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

.vert-justify{
	/* required for multiple items */
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

/* prevent text overflow in IE */
.vert-center > *,
.vert-justify > * {
	display: block;
	width: 100%
}

.flex-container > .vert-center,
.flex-container > .vert-justify {
	height: auto; /* remove 100% height - not suitable for flex-container child items */
}


/*	FLOATS ------ */

.clearfix {
	margin-bottom: 15px;
}

.clearfix + div {
	margin-top: -15px; /* addresses margin inconsistency where one a div directly follows a .clearfix block */
}

.clearfix:first-child {
	margin-top: 15px; /* addresses margin inconsistency where .clearfix block is added as first element in a section */
}

.float-left {
	float: left;
}

.float-right {
	float: right;
}

/*	For greater styling flexibility, floated images will be wrapped in a div with either of the following classes */
.img-left,
.img-right {
	margin-top: 15px;
}

.clearfix > *:not(div):last-child,
.clearfix > .txt-wrap > *:last-child {
	margin-bottom: 15px; /* addresses margin inconsistency created by main > p:last-child rule */
}

/*	FLOAT BLOCK + TEXT BLOCK --- */

.clearfix.int-wrap > .img-left,
.clearfix.int-wrap > .img-right {
	margin-left: 0;
	margin-right: 0;
	padding-left: 15px;
	padding-right: 15px;
}

.clearfix.int-wrap > .txt-wrap {
	margin: 0;
	padding: 0 15px;
}


/*	BACKGROUND WRAP ------ */

.bg-wrap {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-repeat: no-repeat;
	background-size: cover;
	/* background-position set in main.css */
}


/*	TEXT STYLES ---------- */

.upper {
	text-transform: uppercase;
}

.txt-left,
.txt-left * {
	text-align: left;
}

.txt-center,
.txt-center * {
	text-align: center;
}

.txt-right,
.txt-right * {
	text-align: right;
}

.top-0 {
	margin-top: 0 !important;
}

.bottom-0 {
	margin-bottom: 0 !important;
}

.top-15 {
	margin-top: 15px !important;
}

.bottom-15 {
	margin-bottom: 15px !important;
}

.top-30 {
	margin-top: 30px !important;
}

.bottom-30 {
	margin-bottom: 30px !important;
}

.top-45 {
	margin-top: 45px !important;
}

.bottom-45 {
	margin-bottom: 45px !important;
}

.top-60 {
	margin-top: 60px !important;
}

.bottom-60 {
	margin-bottom: 60px !important;
}

.top-75 {
	margin-top: 75px !important;
}

.bottom-75 {
	margin-bottom: 75px !important;
}

.top-90 {
	margin-top: 90px !important;
}

.bottom-90 {
	margin-bottom: 90px !important;
}

p:empty {
	display: none;;
}


/*  HEADER ---------- */

#nav-container {
	position: fixed;
	z-index: 100;
	-webkit-backface-visibility: hidden; /* provides backwards compatibility for fixed position elements mobile devices */
	top: 0;
	width: 100%;

	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;

	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

#nav-container a {
	text-decoration: none;
}


/*	LOGO ------ */

#logo {
	z-index: 10000;
	max-width: 300px;
	height: 100%;
	white-space: nowrap;
	text-decoration: none;
}

#logo .vert-center > * {
	height: 100%;
}

#logo .vert-center > * > * {
	width: auto;
    max-width: 100%;
	height: 100%;
	max-height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}


/*  NAV ------ */

nav ul {
	list-style-type: none;
	margin: 0;
	padding: 0;
}

nav li {
	position: relative;
	white-space: nowrap;
}

nav li ul {
	display: none;
}

nav li:hover ul  {
	display: block;
}

#nav-main li ul:hover {
	display: block;
	z-index: 10;
}

/*	Responsive Nav --- */

#nav-toggle {
	display: none;
}

#nav-icon {
	position: absolute;
	top: 50%;
	z-index: 1001;
	background: none !important;
	vertical-align: top;

	-webkit-transform: translate(0%, -50%);
	-ms-transform: translate(0%, -50%);
	transform: translate(0%, -50%);
}

#nav-icon span {
	display: inline-block;
	width: 100%;
	height: 3px;

	-webkit-transform: translateX(0%) translateY(-50%);
	-ms-transform: translateX(0%) translateY(-50%);
	transform: translateX(0%) translateY(-50%);

	-webkit-transition: background-color 0.3s;
	transition: background-color 0.3s;
}

#nav-icon span:before,
#nav-icon span:after {
	content: '';
	width: 100%;
	height: 100%;
	position: absolute;
	right: 0;
	-webkit-transition: top .3s, background-color 0.3s, -webkit-transform .3s;
	transition: top .3s, background-color 0.3s, -webkit-transform .3s;
	transition: top .3s, background-color 0.3s, transform .3s;
	transition: top .3s, background-color 0.3s, transform .3s, -webkit-transform .3s;
}

#nav-icon span:before {
    top: -7px;
}

#nav-icon span:after {
    top: 7px;
}

#nav-toggle:checked ~ #nav-icon span {
	background-color: rgba(255, 255, 255, 0) !important;
}

#nav-toggle:checked ~ #nav-icon span:before {
    top: 0;
    -webkit-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    transform: rotate(135deg);
}

#nav-toggle:checked ~ #nav-icon span:after {
	top: 0;
    -webkit-transform: rotate(225deg);
    -ms-transform: rotate(225deg);
    transform: rotate(225deg);
}


/*	BANNER ------ */

#banner:empty {
	height: 0 !important;
	min-height: 0 !important;
	max-height: 0 !important;
	/* #banner element MUST NOT have whitespace in it, i.e. <div id="banner"></div> (without line-break) */
}


/*  FOOTER ---------- */

#footer-bottom p {
	margin: 0;
}


/*	Sticky Footer --- */

.flexbox body {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;

	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;

	height: 100vh;
}

.flexbox header,
.flexbox footer {
	-webkit-box-flex: 0;
	-ms-flex: none;
	flex: none;
}

.flexbox main {     
	-webkit-box-flex: 1;
	-ms-flex: 1 0 auto;
	flex: 1 0 auto;

	width: 100%;
}

/*	Flexbox Version for browsers that don't support flexbox - */

html.no-flexbox,
.no-flexbox body {
	height: 100%;
}

.no-flexbox body {
	display: table;
	width: 100%;
	height: 100%;
}

.no-flexbox header,
.no-flexbox main,
.no-flexbox footer {
	display: table-row;
}

.no-flexbox header,
.no-flexbox footer {
	height: 1px;
}

.no-flexbox main {
	height: auto;
}

.no-flexbox main:before {
	display: block;
	content: '';
	padding-top: 75px;
}

/* - */


/*  FORMS ---------- */

label {
	display: block;
}

input[type='radio'] + label,
input[type='checkbox'] + label {
	display: inline-block;
}

input[type='text'],
input[type='email'],
input[type='password'],
input[type='button'],
input[type='file'],
input[type='submit'],
button[type='submit'],
select,
textarea {
	display: block;
	margin: 15px 0;
	border: 0;
}

input[type='text'],
input[type='email'],
input[type='password'],
select {
	height: 45px;
	padding: 0 15px !important;
}

input[type='text'],
input[type='email'],
input[type='password'],
select,
textarea {
	width: 100%;
}

input[type='radio'],
input[type='checkbox'] {
	vertical-align: middle;
	margin-top: 0;
	margin-right: 5px;
	margin-bottom: 3px;
}

input[type='button'],
input[type='submit'],
button[type='submit'] {
	height: 45px;
	padding: 0 30px;
}

textarea {
	padding: 10px 15px;
}

form > .int-wrap {
	margin: 0 -7.5px;
}

form > .int-wrap > .third {
	padding: 0 7.5px;
}

form > .int-wrap > .third > input[type='submit'],
form > .int-wrap > .third > button[type='submit'] {
	width: 100%;
}


/*  BROWSER RESETS ------ */

/*	remove :focus outline on elements that receive focus via mouse click or touch, but not keyboard navigation - requires first removing the default browser outline and applying a box-shadow, then removing both from :focus-visible */
*:focus { 
	outline: 0 !important;
	box-shadow:
		0 0 0.5px 2px rgba(255,255,255,0.5), /* inner border */
		0 0 0.5px 4px rgba(0,0,0,0.5) !important /* outer border */
	;
}
*:focus:not(:focus-visible) {
	outline: 0 !important;
	box-shadow: none !important;
}

/*	remove Chrome yellow auto-complete background color */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
	-webkit-transition: background-color 5000s ease-in-out 0s;
	transition: background-color 5000s ease-in-out 0s;
}

/*	prevent iOS browsers rounded corners */
input[type='text'],
input[type='password'],
input[type='file'],
input[type='submit'],
input[type='button'],
button[type='submit'],
select,
textarea {
	border-radius: 0;
}

/*	remove iOS gradient */


/*  GOOGLE RECAPTCHA V3 ------ */

.grecaptcha-badge {
	visibility: hidden;
}


/*  ==========================================================================
	INDIE.WEB BASE MEDIA QUERIES
	==========================================================================  */

/*	Screen Sizes 240px and smaller --------- */
@media only screen 
and (max-width : 240px) {

	/*	GENERAL ---------- */
	
	.inner {
		padding: 22.5px 0;
	}
	
	.inner > * {
		font-size: 0.875rem;
	}

	.width-20,
	.width-25,
	.width-30,
	.width-33,
	.width-40,
	.width-50,
	.width-60,
	.width-66,
	.width-75,
	.width-80,
	.width-100 {
		width: 100%;
		padding: 7.5px 15px;
	}
	
	
	/*	HEADER ---------- */
	
	/*	NAV ------ */
	
	#nav-container {
		padding: 7.5px;
	}
	
	#logo,
	nav {
		padding: 7.5px;
	}

	/*	Responsive Nav --- */

	#nav-icon {
		right: 15px;
		width: 20px;
	}
	
	#nav-icon span {
		height: 2px;
	}
	
	#nav-icon span:before {
		top: -6px;
	}
	
	#nav-icon span:after {
		top: 6px;
	}


	/*  BANNER ------ */
	
	#banner #int-wrap .inner {
		padding: 7.5px 0 0;
	}

}

/*	Screen Sizes 240px and larger --------- */
@media only screen 
and (min-width : 240px) {
	
	/*	GENERAL ---------- */
	
	.inner {
		padding: 15px;
	}
	
	.width-15,
	.width-20,
	.width-25,
	.width-30,
	.width-33,
	.width-40,
	.width-50,
	.width-60,
	.width-66,
	.width-75,
	.width-80,
	.width-100 {
		width: 100%;
		padding: 15px;
	}


	/*	HEADER ---------- */
	
	/*	NAV ------ */
	
	#logo,
	#phone-nav-ext {
		padding: 0 15px;
	}

}


/*	Screen Sizes 240px - 320px --------- */
@media only screen 
and (min-width : 240px)
and (max-width : 320px) {

	/*	GENERAL ---------- */

	.inner > * {
		font-size: 0.9375rem;
	}


	/*	HEADER ---------- */

	/*	NAV ------ */

	/*	Responsive Nav --- */
	
	#nav-icon {
		right: 30px;
		width: 22px;
	}
	
	#nav-icon span {
		height: 2px;
	}
	
	#nav-icon span:before {
		top: -6px;
	}
	
	#nav-icon span:after {
		top: 6px;
	}
	
}


/*	Screen Sizes 240px - 640px --------- */
@media only screen 
and (min-width : 240px)
and (max-width : 640px) {
	
	/*	HEADER ---------- */
	
	/*	NAV ------ */

	#nav-container {
		padding: 15px;

	}

}


/*	Screen Sizes 320px and smaller --------- */
@media only screen 
and (max-width : 320px) {

	/*	TEXT STYLES ---------- */
	
	h1,
	.h1 {
		font-size: 1.602em;
	}
	
	h2,
	.h2 {
		font-size: 1.424em;
	}
	
	h3,
	.h3 {
		font-size: 1.266em;
	}
	
	h4,
	.h4 {
		font-size: 1.125em;
	}
	
	h5,
	.h5,
	p,
	li {
		font-size: 1.0em;
	}
	
	h6,
	.h6,
	small,
	.small {
		font-size: 0.889em;
	}
	

	/*	HEADER ---------- */
	
	/*	NAV ------ */
	
	#nav-container a {
		font-size: 0.875em;
	}

	nav li {
		padding: 7.5px 0;
	}

	nav li ul {
		padding-top: 22.5px;
	}

}


/*	Screen Sizes 320px and larger --------- */
@media only screen 
and (min-width : 320px) {

}
	

/*	Screen Sizes 320px - 400px --------- */
@media only screen 
and (min-width : 320px) 
and (max-width : 400px) {
	
}


/*	Screen Sizes 320px - 480px --------- */
@media only screen 
and (min-width : 320px) 
and (max-width : 480px) {

	/*	TEXT STYLES ---------- */
	
	h1,
	.h1 {
		font-size: 1.602em;
	}
	
	h2,
	.h2 {
		font-size: 1.424em;
	}
	
	h3,
	.h3 {
		font-size: 1.266em;
	}
	
	h4,
	.h4 {
		font-size: 1.125em;
	}
	
	h5,
	.h5,
	p,
	li {
		font-size: 1.0em;
	}
	
	h6,
	.h6,
	small,
	.small {
		font-size: 0.889em;
	}
	
}


/*	Screen Sizes 320px - 640px --------- */
@media only screen
and (min-width : 320px)
and (max-width : 640px) {

	/*	HEADER ---------- */
	
	/*	NAV ------ */
	
	nav li {
		padding: 15px 0;
	}
	
	nav li ul {
		padding-top: 30px;
	}

}


/*	Screen Sizes 320px - 800px --------- */
@media only screen
and (min-width : 320px)
and (max-width : 800px) {

	/*	HEADER ---------- */
	
	/*	NAV ------ */

	/*	Responsive Nav --- */
	
	#nav-icon {
		right: 30px;
		width: 25px;
	}
	
	#nav-icon span {
		height: 3px;
	}
	
	#nav-icon span:before {
		top: -7px;
	}
	
	#nav-icon span:after {
		top: 7px;
	}

}


/*	Screen Sizes 400px and smaller --------- */
@media only screen 
and (max-width : 400px) {
	
	/*	HEADER ---------- */
	
	/*	NAV ------ */

	#logo,
	nav {
		width: 50%;
	}


	/*	MAIN ---------- */
	
	main {
		text-align: center;
	}

	main ul {
		text-align: left;
	}
	

	/*	FOOTER ---------- */
	
	footer {
		text-align: center;
	}


	/*  FORMS ---------- */
	
	input[type='submit'],
	button[type='submit'] {
		margin-left: auto;
		margin-right: auto;
	}
	
}


/*	Screen Sizes 400px and larger --------- */
@media only screen 
and (min-width : 400px) {

	/*	MAIN ---------- */
	
	main {
		text-align: left;
	}

	
	/*	FOOTER ---------- */
	
	footer {
		text-align: left;
	}


	/*  FORMS ---------- */
	
	form * {
		text-align: left !important;
	}

}


/*	Screen Sizes 400px - 480px --------- */
@media only screen 
and (min-width : 400px)
and (max-width : 480px) {
	
}


/*	Screen Sizes 400px - 800px --------- */
@media only screen 
and (min-width : 400px)
and (max-width : 800px) {

}


/*	Screen Sizes 480px - 560px --------- */
@media only screen 
and (min-width : 480px) 
and (max-width : 560px) {

}


/*	Screen Sizes 480px - 640px --------- */
@media only screen 
and (min-width : 480px) 
and (max-width : 640px) {

	/*	TEXT STYLES ---------- */
	
	h1,
	.h1 {
		font-size: 2.074em;
	}
	
	h2,
	.h2 {
		font-size: 1.728em;
	}
	
	h3,
	.h3 {
		font-size: 1.44em;
	}
	
	h4,
	.h4 {
		font-size: 1.2em;
	}
	
	h5,
	.h5
	p,
	li {
		font-size: 1.0em;
	}
	
	h6,
	.h6
	small,
	.small {
		font-size: 0.833em;
	}

}


/*	Screen sizes 560px and smaller ------------ */
@media only screen 
and (max-width : 560px) {

	/*  HEADER ---------- */

	/*  NAV ------ */

	#nav-container {
		height: 60px;
	}

	nav div > ul {
		padding: 60px 0;
	}

	/*  BANNER ------ */
	
	#banner {
		margin-top: 60px;
	}
	
	
	/*  MAIN ---------- */
	
	#tmplt-main main {
		margin-top: 60px;
	}

}


/*	Screen sizes 560px and larger ------------ */
@media only screen 
and (min-width : 560px) {

}


/*	Screen Sizes 560px - 640px --------- */
@media only screen
and (min-width : 560px)
and (max-width : 640px) {

}


/*	Screen Sizes 560px - 800px --------- */
@media only screen
and (min-width : 560px)
and (max-width : 800px) {

	/*	HEADER ---------- */
	
	/*	NAV ------ */

	#nav-container {
		height: 75px;
	}

	nav div > ul {
		padding: 75px 0;
	}
	
	/*	Banner ------ */
	
	#banner {
		margin-top: 75px;
	}


	/*  MAIN ---------- */
	
	#tmplt-main main {
		padding-top: 75px;
	}

}


/*	Screen sizes 640px and smaller ------------ */
@media only screen 
and (max-width : 640px) {

	/*  GENERAL ---------- */
	
	.img-left,
	.img-right {
		padding: 0;
	}


	/*  HEADER ---------- */
	
	/*  NAV ------ */
	
	nav {
		-webkit-box-flex: 1;
		-ms-flex: 1;
		flex: 1;
		
		text-align: right;
	}


	/*  FOOTER ---------- */
	
	/*	FOOTER BOTTOM ------ */
	
	#footer-bottom .inner > div {
		padding: 7.5px 15px;
	}
	
}


/*	Screen Sizes 640px and larger --------- */
@media only screen
and (min-width : 640px ) {

	/*	GENERAL ---------- */
	
	.width-15 {
		width: 15%;
	}

	.width-20 {
		width: 20%;
	}
	
	.width-25 {
		width: 25%;
	}

	.width-30 {
		width: 30%;
	}
	
	.width-33 {
		width: 33.3333%;
	}
	
	.width-40 {
		width: 40%;
	}
	
	.width-50 {
		width: 50%;
	}
	
	.width-60 {
		width: 60%;
	}
	
	.width-66 {
		width: 66.6666%;
	}
	
	.width-75 {
		width: 75%;
	}
	
	.width-80 {
		width: 80%;
	}


	/*	FLOATS ------ */

	.clearfix > div[class^="img"] + *:not(div),
	.clearfix > div[class^="img"] + .txt-wrap > * {
		margin-top: 15px;
	}
	
	.img-left {
		float: left;
		margin-right: 15px;
		padding: 0 15px 15px 0;
	}
	
	.img-right {
		float: right;
		margin-left: 15px;
		padding: 0 0 15px 15px;
	}

	.img-center {
		display: block;
		float: none;
		margin-left: auto;
		margin-right: auto;
		padding: 0;
	}

	.clearfix.int-wrap > .txt-wrap {
		float: left;
	}
	

	/*	FOOTER ---------- */

	/*	FOOTER TOP ------ */

	#footer-top > .inner > div > *:last-child {
		margin-bottom: 30px;
	}
	
	/*	FOOTER BOTTOM ------ */
	
	#footer-bottom {
		height: 60px;
	}
	
	#footer-bottom .inner,
	#footer-bottom .inner > div {
		padding-top: 0;
		padding-bottom: 0;
	}
	
	#footer-bottom .inner > div:last-child {
		text-align: right;
	}
	
	#footer-bottom .inner > div:first-child {
		text-align: left;
	}
	
	#footer-bottom p {
		line-height: 60px;
	}
	
}

/*	Screen Sizes 640px - 720px --------- */
@media only screen
and (min-width : 640px )
and (max-width : 720px) {

}


/*	Screen Sizes 640px - 800px --------- */
@media only screen
and (min-width : 640px )
and (max-width : 800px) {

	/*  TEXT STYLES ---------- */
	
	h1,
	.h1 {
		font-size: 2.441em;
	}
	
	h2,
	.h2 {
		font-size: 1.953em;
	}
	
	h3,
	.h3 {
		font-size: 1.563em;
	}
	
	h4,
	.h4 {
		font-size: 1.25em;
	}
	
	h5,
	.h5,
	p,
	li {
		font-size: 1.0em;
	}
	
	h6,
	.h6,
	small,
	.small {
		font-size: 0.8em;
	}
	

	/*  HEADER ---------- */
	
	/*  NAV ------ */

	#nav-container {
		padding: 15px;
	}
	
	nav {
		width: auto;
	}
	
	nav li {
		padding: 20px 0;
		font-size: 1.25rem;
	}
	
	nav li ul {
		padding-top: 40px;
	}


	/*	FOOTER ---------- */
	
	/*	FOOTER TOP ------ */
	
	#footer-top {
		font-size: 0.875em;
	}
	
}


/*	Screen Sizes 640px - 960px --------- */
@media only screen
and (min-width : 640px )
and (max-width : 960px) {

}


/*	Screen sizes 720px and smaller --------- */
@media only screen 
and (max-width : 720px) {

	/*	FOOTER ---------- */
	
	/*	FOOTER BOTTOM ------ */

	#footer-bottom p {
		font-size: 0.75rem;
	}

}

/*	Screen sizes 720px and larger --------- */
@media only screen 
and (min-width : 720px) {

	/*	MAIN ---------- */

	.inner {
		padding: 30px 15px;
	}


	/*	FOOTER ---------- */
	
	/*	FOOTER BOTTOM ------ */

	#footer-bottom p {
		font-size: 0.875rem;
	}

}


/*	Screen sizes 720px - 800px --------- */
@media only screen 
and (min-width : 720px) 
and (max-width : 800px) {

}


/*	Screen sizes 720px - 880px --------- */
@media only screen 
and (min-width : 720px) 
and (max-width : 880px) {

}


/*	Screen sizes 800px and smaller --------- */
@media only screen 
and (max-width : 800px) {

	/*  HEADER ---------- */
	
	/*  NAV ------ */
	
	nav {       
		-webkit-box-ordinal-group: 4;
		-ms-flex-order: 3;
		order: 3;
	}

	/*	Responsive Nav --- */
	
	#nav-icon {
		display: inline-block;
		height: 30px;
	}

	#nav-toggle:checked ~ #nav-icon {
		position: absolute;
		-webkit-backface-visibility: hidden; /* provides backwards compatibility for fixed position elements mobile devices */
		left: auto;
		z-index: 1001;
	}

	#nav-collapse {
		position: fixed;
		-webkit-backface-visibility: hidden; /* provides backwards compatibility for fixed position elements mobile devices */
		z-index: 1000;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		max-height: 0;
		padding: 0;
		overflow: hidden;
		text-align: center;

		-webkit-transition: all .65s ease-in-out;
		transition: all .65s ease-in-out;
	}

	#nav-toggle:checked ~ #nav-collapse {
		max-height: 1200px;
	}
	
	nav li:hover ul li:first-child:before {
		content: '\276D';
		position: absolute;
		top: 0;
		left: 50%;
		
		-webkit-transform: translate(-50%,-75%) rotate(90deg);
		-ms-transform: translate(-50%,-75%) rotate(90deg);
		transform: translate(-50%,-75%) rotate(90deg);
	}

	/*	PHONE ------ */

	#phone-nav-ext {
		display: none;
	}
	
}


/*	Screen sizes 800px and larger --------- */
@media only screen 
and (min-width : 800px) {

	/*	GENERAL ---------- */

	.mobile {
		display: none;
	}
	

	/*  HEADER ---------- */
	
	/*  NAV ------ */

	#nav-container {
		height: 90px;
		padding: 0 15px;
	}
	
	#logo > * {
		padding-top: 15px;
		padding-bottom: 15px;
	}
	
	nav {
		position: relative;
		text-align: center;
		
		-webkit-box-ordinal-group: 3;
		-ms-flex-order: 2;
		order: 2;

		-webkit-box-flex: 1;			/* OLD - iOS 6-, Safari 3.1-6 */
		-moz-box-flex: 1;				/* OLD - Firefox 19- */
		width: auto;					/* For old syntax, otherwise collapses. (USED TO BE 100%) */
		-webkit-flex: auto;				/* Chrome */
		-ms-flex: auto;					/* IE 10 */
		flex: auto;						/* NEW, Spec - Opera 12.1, Firefox 20+ */
		/*  Should be able to leave flex value as 1 but Microsoft still can't get their sh*t together */
	}

	nav div > ul {
		height: 90px;
		padding: 0;
		white-space: nowrap; /* prevent menu items from wrapping */
		font-size: 0; /* prevent white-space between li items (important when setting background-color) */
	}
	
	nav li {
		position: relative;
		height: 90px;
		display: inline-block;
		vertical-align: top;
		padding: 0 15px;
	}

	nav a {
		display: inline-block;
		line-height: 90px;
	}
	
	nav li ul {
		position: absolute;
		top: 90px;
		left: 0;
		height: initial;
		min-width: 100%;
		padding: 0;
	}

	nav li ul li  {
		display: block;
		height: 60px;
		padding: 0 30px;
		text-align: left;
		line-height: 60px;
	}

	nav li ul li a {
		line-height: 60px;
	}

	/*	Responsive Nav --- */
	
	#nav-icon {
		display: none;
	}
	
	#nav-collapse {
		position: relative;
		width: auto;
		height: auto;
		max-height: none;
		overflow: visible;
		background: none !important;
		line-height: 75px;
		text-align: right;
	}

	/*	PHONE ------ */
	
	#phone-nav-ext {
		-webkit-box-ordinal-group: 4;
		-ms-flex-order: 3;
		order: 3;
	}
	
	/*	BANNER ------ */
	
	#banner {
		margin-top: 90px;
	}


	/*  MAIN ---------- */
	
	#tmplt-main main {
		padding-top: 90px;
	}
	
}


/*	Screen sizes 800px - 880px --------- */
@media only screen 
and (min-width : 800px) 
and (max-width : 880px) {

	/*	GENERAL ---------- */
	
	.inner > * {
		font-size: 0.875rem;
	}

	/*	TEXT STYLES ---------- */

	h1,
	.h1 {
		font-size: 3.157em;
	}
	
	h2,
	.h2 {
		font-size: 2.369em;
	}
	
	h3,
	.h3 {
		font-size: 1.777em;
	}
	
	h4,
	.h4 {
		font-size: 1.333em;
	}
	
	h5,
	.h5,
	p,
	main li {
		font-size: 1.0em;
	}

	h6,
	.h6,
	small,
	.small {
		font-size: 0.75em;
	}
	

	/*	HEADER ---------- */
	
	/*	NAV ------ */
	
	nav li {
		padding: 0 12.5px;
		font-size: 0.875rem;
	}

}


/*	Screen sizes 800px - 960px --------- */
@media only screen 
and (min-width : 800px) 
and (max-width : 960px) {

}


/*	Screen sizes 800px - 1200px --------- */
@media only screen 
and (min-width : 800px) 
and (max-width : 1200px) {

}


/*	Screen sizes 880px - 960px --------- */
@media only screen 
and (min-width : 880px) 
and (max-width : 960px) {

	/*	GENERAL ---------- */
	
	.inner > * {
		font-size: 0.9375rem;
	}

	/*	TEXT STYLES ---------- */

	h1,
	.h1 {
		font-size: 3.157em;
	}
	
	h2,
	.h2 {
		font-size: 2.369em;
	}
	
	h3,
	.h3 {
		font-size: 1.777em;
	}
	
	h4,
	.h4 {
		font-size: 1.333em;
	}
	
	h5,
	.h5,
	p,
	main li {
		font-size: 1.0em;
	}

	h6,
	.h6,
	small,
	.small {
		font-size: 0.75em;
	}
	

	/*	HEADER ---------- */
	
	/*	NAV ------ */
	
	nav li {
		padding: 0 15px;
		font-size: 0.875rem;
	}

}


/*	Screen sizes 880px - 1040px --------- */
@media only screen 
and (min-width : 880px) 
and (max-width : 1040px) {

}


/*	Screen sizes 960px and larger --------- */
@media only screen 
and (min-width : 960px) {
	
	/*	TEXT STYLES ---------- */

	h1,
	.h1 {
		font-size: 3.998em;
	}
	
	h2,
	.h2 {
		font-size: 2.827em;
	}
	
	h3,
	.h3 {
		font-size: 1.999em;
	}
	
	h4,
	.h4 {
		font-size: 1.414em;
	}
	
	h5,
	.h5,
	p,
	main li {
		font-size: 1.0em;
	}
	
	h6,
	.h6,
	small,
	.small {
		font-size: 0.707em;
	}

}

/*	Screen sizes 960px - 1040px --------- */
@media only screen 
and (min-width : 960px) 
and (max-width : 1040px) {

	/*	HEADER ---------- */
	
	/*	NAV ------ */
	
	nav li {
		padding: 0 15px;
		font-size: 0.875rem;
	}

}


/*	Screen sizes 960px - 1200px --------- */
@media only screen 
and (min-width : 960px) 
and (max-width : 1200px) {

}


/*	Screen sizes 1040px and larger --------- */
@media only screen 
and (min-width : 1040px) {

	/*	HEADER ---------- */
	
	/*	NAV ------ */
	
	nav li {
		font-size: 1.0rem;
	}

}


/*	Screen sizes 1200px and smaller --------- */
@media only screen  
and (max-width : 1200px) {

}


/*	Screen sizes 1200px and larger --------- */
@media screen and (min-width: 1200px) {

}


/*	Screen sizes 1200px - 1360px --------- */
@media only screen 
and (min-width : 1200px) 
and (max-width : 1360px) {

	/*	GENERAL ---------- */
	
	.inner {
		max-width: 65em;
	}
	
	.inner {
		padding: 45px;
	}
	
}


/*	Screen sizes 1360px - 1520px --------- */
@media only screen 
and (min-width : 1360px) 
and (max-width : 1520px) {

	/*	GENERAL ---------- */
	
	.inner {
		max-width: 70em;
	}
	
	.inner {
		padding: 60px;
	}
	
}


/*	Screen sizes 1520px and larger --------- */
@media only screen 
and (min-width : 1520px) {

	/*	GENERAL ---------- */
	
	.inner {
		max-width: 75em;
	}
	
	.inner {
		padding: 75px;
	}


	/*  HEADER ---------- */
	
	/*  NAV ------ */
	
	#nav-container {
		padding: 0 30px;
	}

}


/*	Workaround for vh Bug on <= iOS7

/*	iPad with portrait orientation */
@media all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait) {

	#banner {
		height: 844px; /* 1024px - 75px (nav bar height) - 105px (nominal height for browser bar) */
	}

}

/*	iPad with landscape orientation */
@media all and (device-width: 768px) and (device-height: 1024px) and (orientation:landscape) {

	#banner {
		height: 573px; /* 768px - 90px (nav bar height) - 105px (nominal height for browser bar) */
	}

}


/*	IE-Specific Styles ---------- */

/*	IE9+ ------ */

/*	CSS GRADIENTS --- */

.gte-ie9 .gradient {
	filter: none;   
}



/* ==========================================================================
   Helper classes
   ========================================================================== */

/*	Hide visually and from screen readers */

.hidden {
	display: none !important;
}

/*
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 */

.visuallyhidden {
	border: 0;
	clip: rect(0 0 0 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	white-space: nowrap; /* 1 */
}

/*
 * Extends the .visuallyhidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
	clip: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	position: static;
	width: auto;
	white-space: inherit;
}

/*
 * Hide visually and from screen readers, but maintain layout
 */

.invisible {
	visibility: hidden;
}

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */

.clearfix:before,
.clearfix:after {
	content: " "; /* 1 */
	display: table; /* 2 */
}

.clearfix:after {
	clear: both;
}



/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */

@media only screen and (min-width: 35em) {
	/* Style adjustments for viewports that meet the condition */
}

@media print,
	   (-webkit-min-device-pixel-ratio: 1.25),
	   (min-resolution: 1.25dppx),
	   (min-resolution: 120dpi) {
	/* Style adjustments for high resolution devices */
}



/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   https://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */

@media print {
	*,
	*:before,
	*:after {
		background: transparent !important;
		color: #000 !important; /* Black prints faster */
		-webkit-box-shadow: none !important;
		box-shadow: none !important;
		text-shadow: none !important;
	}

	a,
	a:visited {
		text-decoration: underline;
	}

	a[href]:after {
		content: " (" attr(href) ")";
	}

	abbr[title]:after {
		content: " (" attr(title) ")";
	}

	/*
	 * Don't show links that are fragment identifiers,
	 * or use the `javascript:` pseudo protocol
	 */

	a[href^="#"]:after,
	a[href^="javascript:"]:after {
		content: "";
	}

	pre {
		white-space: pre-wrap !important;
	}
	pre,
	blockquote {
		border: 1px solid #999;
		page-break-inside: avoid;
	}

	/*
	 * Printing Tables:
	 * http://css-discuss.incutio.com/wiki/Printing_Tables
	 */

	thead {
		display: table-header-group;
	}

	tr,
	img {
		page-break-inside: avoid;
	}

	p,
	h2,
	h3 {
		orphans: 3;
		widows: 3;
	}

	h2,
	h3 {
		page-break-after: avoid;
	}
}