/*! 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;
}


/*	==========================================================================
	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-70,
.width-75,
.width-80,
.width-100,
.flex-box {
	padding: 15px;
}

.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-70 {
	width: 70%;
}

.width-75 {
	width: 75%;
}

.width-80 {
	width: 80%;
}

.width-100 {
	width: 100%;
}

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

.int-wrap-7\.5 {
	margin: 0 -7.5px;
}

.int-wrap-7\.5 > * {
	padding-left: 7.5px;
	padding-right: 7.5px;
}

img {
	width: 100%;
}

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

[class*=lte-],
[class*=gte-] {
	display: none;
}


/*	FLEXBOX ------ */

.flex-container {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-content: center;
	align-items: stretch;
}

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

.flex-container.space-between {
	justify-content: space-between;
}

.flex-container.flex-start {
	justify-content: flex-start;
}

.flex-container.center {
	justify-content: center;
}

.flex-container.flex-end {
	justify-content: flex-end;
}

.flex-container.reverse {
	flex-direction: row-reverse;
}

/*	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: flex;
	flex-direction: column; /* required for multiple items */
}

.vert-center {
	justify-content: center; /* required for multiple items */
}

.vert-justify{
	justify-content: space-between; /* required for multiple items */
}

.vert-center.center,
.vert-justify.center {
	align-items: center;
}

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

/*	Potential Future Development: align-items: end allows items to be vertically aligned to the bottom - useful if we want a heading or some extra content contained at the top of one flex element but not in other(s) */


/*	FLOATS ------ */

.float-container {
	display: flow-root;
	margin-bottom: 15px;
}

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

.float-container:first-child {
	margin-top: 15px; /* addresses margin inconsistency where .float-container 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:first-child,
.img-right:first-child {
	margin-top: 15px;
}

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

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

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

.float-container.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;
}

/*	Ensure correct margin if first paragraph on page is not preceded by a heading */
main > .inner:first-child > .width-100 > p:first-child {
	margin-top: 30px;
}

main a {
	word-wrap: break-word; /* prevent long links from breaking layouts */
}


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

#footer-bottom p {
	margin: 0;
}


/*	Sticky Footer --- */

.flexbox body {
	height: 100vh;

	display: flex;
	flex-direction: column;
}

.flexbox header,
.flexbox footer {
	flex: none;
}

.flexbox main {
	width: 100%;

	flex: 1 0 auto;
}

/*	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=number],
input[type=email],
input[type=password],
input[type=date],
input[type=file],
input[type=submit],
input[type='reset'],
input[type=button],
button[type=button],
button[type=submit],
button[type='reset'],
select,
textarea {
	display: block;
	margin: 15px 0;
	border: 0;
}

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

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

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

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

textarea {
	padding: 15px;
	line-height: 1.4;
}

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


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

/*	remove :focus outline on elements; add inner and outer box-shadow (to account for light and dark backgrounds) */
*: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 */
	;
}

/*	unless the HTML element has class "tabbing" (user is navigating using the TAB key - set in main.js), remove both outline and box-shadow */
html:not(.tabbing) *:focus,
html:not(.tabbing) *:focus-visible {
	outline: 0;
	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=email],
input[type=password],
input[type=file],
input[type=submit],
input[type=reset],
input[type=button],
button[type=button],
button[type=submit],
button[type='reset'],
select,
textarea {
	border-radius: 0;
}


/* 	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;
	}
*/
	[class*='width-'] {
		padding: 7.5px 15px;
	}

	.lte-240 {
		display: initial;
	}

}


/*	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;
	}
*/
	[class*='width-'] {
		padding: 15px;
	}

	.gte-240 {
		display: initial;
	}

}


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

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

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


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

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

	.lte-320 {
		display: initial;
	}


	/*	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 and larger ---------- */
@media only screen 
and (min-width : 320px) {

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

	.gte-320 {
		display: initial;
	}

}


/*	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 400px and smaller ---------- */
@media only screen 
and (max-width : 400px) {

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

	.lte-400 {
		display: initial;
	}

	.flex-container:has(#uniform-width) > .flex-basis-20 {
		flex-basis: 100%;
	}


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

	main ul,
	main ol {
		padding-left: 30px;
		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) {

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

	.gte-400 {
		display: initial;
	}


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

	main ul,
	main ol {
		padding-left: 45px;
	}

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


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

}


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

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

	.flex-container:has(#uniform-width) > .flex-basis-20 {
		flex-basis: 50%;
	}

}


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

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

	.lte-480 {
		display: initial;
	}

	.flex-container:has(#uniform-width) > .flex-basis-25 {
		flex-basis: 100%;
	}

	.flex-container:has(#uniform-width) > .flex-basis-33 {
		flex-basis: 100%;
	}

}


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

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

	.gte-480 {
		display: initial;
	}

}


/*	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 480px - 720px ---------- */
@media only screen 
and (min-width : 480px) 
and (max-width : 720px) {

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

	.flex-container:has(#uniform-width) > .flex-basis-25 {
		flex-basis: 50%;
	}

}


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

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

	.flex-container:has(#uniform-width) > .flex-basis-33 {
		flex-basis: 50%;
	}

}


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

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

	.lte-560 {
		display: initial;
	}
	
}


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

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

	.gte-560 {
		display: initial;
	}

}


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

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

	[class*='width-']:not(.img),
	[class*='flex-basis-'],
	.float-container [class*='width-'] {
		width: 100%;
	}

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

	.lte-640 {
		display: initial;
	}


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


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

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

	.flex-basis-25 {
		flex-basis: 25%;
	}

	.flex-basis-30 {
		flex-basis: 30%;
	}

	.flex-basis-33 {
		flex-basis: 33.3333%;
	}

	.flex-basis-40 {
		flex-basis: 40%;
	}

	.flex-basis-50 {
		flex-basis: 50%;
	}

	.flex-basis-60 {
		flex-basis: 60%;
	}

	.flex-basis-70 {
		flex-basis: 70%;
	}

	.flex-basis-75 {
		flex-basis: 75%;
	}

	.flex-basis-80 {
		flex-basis: 80%;
	}


	/*	FLOATS ------ */

	/*	Ensure any text element following a floated image is aligned correctly at the top */
	.float-container > div[class*="img-"] + *:not(div),
	.float-container > div[class*="img-"] + .txt-wrap > *:first-child {
		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;
	}

	/*	Not used in Standard Sections; useful for hard-coded custom work */
	.img-center {
		display: block;
		float: none;
		margin-left: auto;
		margin-right: auto;
		padding: 0;
	}

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


	.gte-640 {
		display: initial;
	}
	

	/*	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 - 800px ---------- */
@media only screen
and (min-width : 640px)
and (max-width : 800px) {

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

	.flex-container:has(#uniform-width) > .flex-basis-20 {
		flex-basis: 33.3333%;
	}


	/* 	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;
	}


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


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

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

	.lte-720 {
		display: initial;
	}


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

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

}

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

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

	.gte-720 {
		display: initial;
	}


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

	.inner {
		padding: 30px 15px;
	}


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

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

}


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

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

	.flex-container:has(#uniform-width) > .flex-basis-25 {
		flex-basis: 33.3333%;
	}

}


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

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

	.lte-800 {
		display: initial;
	}
	
}


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

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

	.mobile {
		display: none !important; /* !important necessary to override #nav-main */
	}

	.gte-800 {
		display: initial;
	}

	.flex-container:has(#uniform-width) > .flex-basis-33 {
		flex-basis: 33.3333%;
	}

}


/*	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;
	}

}


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

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

	.flex-container:has(#uniform-width) > .flex-basis-20 {
		flex-basis: 25%;
	}

}


/*	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;
	}

}


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

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

	.lte-960 {
		display: initial;
	}

}


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

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

	.gte-960 {
		display: initial;
	}

	.flex-container:has(#uniform-width) > .flex-basis-20 {
		flex-basis: 20%;
	}

	.flex-container:has(#uniform-width) > .flex-basis-25 {
		flex-basis: 25%;
	}

	
	/*	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 1200px - 1360px ---------- */
@media only screen 
and (min-width : 1200px) 
and (max-width : 1360px) {

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


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

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


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

	/*	GENERAL ---------- */
	
	.inner {
		padding-top: 75px;
		padding-bottom: 75px;
	}

}


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

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

}


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

	/*	GENERAL ---------- */
	
	.inner {
		max-width: 80em;
		padding-left: 90px;
		padding-right: 90px;
	}

}


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

	/*	GENERAL ---------- */
	
	.inner {
		max-width: 90em;
		padding-left: 120px;
		padding-right: 120px;
	}

}


/*	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;
}


/*	==========================================================================
	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;
	}
}