﻿/* Base element layer: body, links, headings, hr, forms, buttons, images, lists, tables. */

/* Type */

	@font-face {
		font-family: 'Proxima Nova';
		font-style: normal;
		font-weight: 400;
		font-display: swap;
		src: url(../fonts/proxima-nova.woff2) format('woff2');
		unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
	}

/* Body */

	body {
		background-color: var(--page-bg);
		color: var(--text-color-regular);
	}

	body, input, select, textarea {
		font-family: var(--font-base);
		font-weight: 400;
		line-height: 2em;
	}

		body #header{
			font-size: 1.100vw;
		}

/* Links */

a {
	text-decoration: underline;
	color: var(--color-teal-darker);
}

		a:hover {
			text-decoration: underline;
		}

		.button a:hover{
			text-decoration:none;
		}

		.button:hover{
			text-decoration:none;
		}

	a.plainlink {
		text-decoration: none;
		color: inherit;
	}

	strong, b {
		font-weight: 700;
	}

	em, i {
		font-style: italic;
	}

	p {
		font-size: 1.3em;
		margin: 0 0 1.6em 0;
	}

	li {
		font-size: 1.3em;
	}

	.far + h2,
	.fa  + h2,
	.fas + h2{
		margin-top:0.2em;
	}

/* Headings */

	h1, h2, h3, h4, h5, h6 {
		font-weight: 500;
		line-height: 1.5em;
	}

	h1, h2, h3, h4 {
		color: var(--text-color-teal);
		margin: 0 0 1em 0;
	}

	h4 {
		color: var(--text-color-dark);
		margin: 0 0 1em 0;
	}

	h5 {
		color: var(--text-color-grey-light);
		margin: 0.5em 0 0.5em 0;
		text-transform: uppercase;
	}

	h6 {
		color: var(--text-color-grey-light);
		margin: 0.5em 0 0.5em 0;
	}

	.row > div > h1,
	.row > div > h2,
	.row > div > h3,
	.row > div > h4,
	.row > div > h5{
		margin-top:1.2em;
	}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
	color: var(--color-teal-darker);
	text-decoration: none;
}

li a {
	text-decoration: underline;
	color: var(--color-teal-darker);
}

	sub {
		font-size: 0.8em;
		position: relative;
		top: 0.5em;
	}

	sup {
		font-size: 0.8em;
		position: relative;
		top: -0.5em;
	}

	emphasis {
		font-size: 1.3em;
		font-style: italic;
		line-height: 1.65em;
	}

	blockquote {
		font-size: 1.5em;
		font-style: italic;
		line-height: 1.65em;
		margin: 0 0 0 0;
	}

		blockquote a {
			color: var(--color-teal-darker);
			text-decoration: none;
		}

		.styleImage blockquote {
			color: var(--color-grey-d0);
			font-size: 1.5em;
			font-style: italic;
			line-height: 1.65em;
			margin: 0 0 0 0;
		}

	tag {
		background-color: #c02000;
		color: var(--text-color-white);
		font-size: 0.45em;
		border: 0;
		border-radius: 5px;
		display: inline-block;
		font-weight: 700;
		line-height: 2em;
		padding: 0 0.8em;
		margin-left: 0.5em;
		margin-bottom: 0.5em;
		text-align: center;
		vertical-align: top;
		text-decoration: none;
		text-transform: uppercase;
		}

	code {
		background: rgba(144, 144, 144, 0.075);
		border-radius: 4px;
		border: solid 1px;
		font-family: "Courier New", monospace;
		font-size: 0.9em;
		margin: 0 0.25em;
		padding: 0.25em 0.65em;
	}

	pre {
		-webkit-overflow-scrolling: touch;
		font-family: "Courier New", monospace;
		font-size: 0.9em;
		margin: 0 0 2em 0;
	}

		pre code {
			display: block;
			line-height: 1.75;
			padding: 1em 1.5em;
			overflow-x: auto;
		}

hr {
	border: 0;
	border-bottom: solid 1px var(--rule-color);
	margin: 3em 0;
}

hr.compact {
	border: 0;
	border-bottom: solid 1px var(--rule-color);
	margin: 0 0 3em 0;
}

.teal {
	color: var(--color-teal-darker);
	}

	.purple {
		color: var(--color-purple-med);
		}

	.grey {
		color: var(--text-color-grey-light);
		}

	.white {
		color: var(--text-color-white);
		}

	.no-color {
		color: var(--text-color-regular);
		}

	.bold {
		font-weight: 700;
		}

	.no-bold {
		font-weight: 500;
		}

	.caps {
		text-transform: uppercase;
		}

	.no-caps {
		text-transform: none;
		}

	.align-left {
		text-align: left;
	}

	.align-center {
		text-align: center;
	}

	.align-right {
		text-align: right;
	}

/* Buttons */

	input[type="submit"],
	.button {
		-moz-appearance: none;
		-webkit-appearance: none;
		-ms-appearance: none;
		appearance: none;
		-moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
		-webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
		-ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
		transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
		background: linear-gradient(var(--topleft-to-bottomright), var(--button-bg-dark), var(--button-bg-light));
		border-radius: 4px;
		color: var(--button-text);
		border: 0;
		cursor: pointer;
		display: inline-table;
		font-weight: 700;
		text-align: center;
		text-decoration: none;
		text-transform: uppercase;
	}

	input[type="submit"] {
		height: 3.5em;
		line-height: 0;
		padding: 1em 2em;
	}

	.button {
		height: 3.15em;
		line-height: 2em;
		padding: 1em 2em;
		margin-bottom: 0.25em;
	}

		input[type="submit"]:hover,
		.button:hover {
			background: linear-gradient(var(--topleft-to-bottomright), var(--button-bg-hover-dark), var(--button-bg-hover-light));
		}

		input[type="submit"]:active,
		.button:active {
			background: linear-gradient(var(--topleft-to-bottomright), var(--button-bg-hover-dark), var(--button-bg-hover-light));
		}

		input[type="submit"].small,
		.button.small {
			font-size: 0.8em;
		}

		input[type="submit"].alt,
		.button.alt {
			background: none;
			background-color: transparent;
			box-shadow: inset 0 0 0 2px rgba(96, 96, 96, 1);
			color: var(--color-grey-30);
		}

			input[type="submit"].alt:hover,
			.button.alt:hover {
				background-color: rgba(144, 144, 144, 0.075);
			}

			input[type="submit"].alt:active,
			.button.alt:active {
				background-color: rgba(144, 144, 144, 0.2);
			}

	input[type="submit"].banner,
	.button.banner {
			background: none;
			background-color: transparent;
			box-shadow: inset 0 0 0 2px var(--color-grey-d0);
			color: var(--color-grey-d0);
	}

			input[type="submit"].banner:hover,
			.button.banner:hover {
				color: var(--color-white);
				box-shadow: inset 0 0 0 1px var(--color-grey-d0);
				background-color: rgba(240, 240, 240, 0.125);
			}

			input[type="submit"].banner:active,
			.button.banner:active {
				background-color: rgba(240, 240, 240, 0.3);
			}

		@media screen and (max-width: 736px) {
			input[type="submit"],
			.button {
				padding: 0.75em 1em;
			}

		}

/* Forms */

	form {
		margin: 0 0 0 0;
	}

	label {
		color: var(--color-grey-30);
		display: block;
		font-size: 0.9em;
		font-weight: 700;
		margin: 0 0 1em 0;
	}

	div #formResult {
		color: var(--color-error-fg);
		font-weight: 600;
	}

	input[type="text"],
	input[type="password"],
	input[type="email"],
	select,
	textarea {
		-moz-appearance: none;
		-webkit-appearance: none;
		-ms-appearance: none;
		appearance: none;
		background: rgba(144, 144, 144, 0.075);
		border-radius: 4px;
		border: none;
		border: solid 1px rgba(144, 144, 144, 0.25);
		color: inherit;
		display: block;
		outline: 0;
		padding: 0 1em;
		text-decoration: none;
		width: 100%;
	}

		input[type="text"]:invalid,
		input[type="password"]:invalid,
		input[type="email"]:invalid,
		select:invalid,
		textarea:invalid {
			box-shadow: none;
		}

	input[type="text"]:focus,
	input[type="password"]:focus,
	input[type="email"]:focus,
	select:focus,
	textarea:focus {
		border-color: var(--color-teal-darker);
		box-shadow: 0 0 0 1px var(--color-teal-darker);
	}

	input[type="text"],
	input[type="password"],
	input[type="email"],
	select {
		height: 2.75em;
	}

	textarea {
		padding: 0.75em 1em;
	}

	input[type="checkbox"],
	input[type="radio"] {
		-moz-appearance: none;
		-webkit-appearance: none;
		-ms-appearance: none;
		appearance: none;
		display: block;
		float: left;
		margin-right: -2em;
		opacity: 0;
		width: 1em;
		z-index: -1;
	}

		input[type="checkbox"] + label,
		input[type="radio"] + label {
			text-decoration: none;
			color: var(--text-color-regular);
			cursor: pointer;
			display: inline-block;
			font-size: 1em;
			font-weight: 400;
			padding-left: 2.4em;
			padding-right: 0.75em;
			position: relative;
		}

			input[type="checkbox"] + label:before,
			input[type="radio"] + label:before {
				-moz-osx-font-smoothing: grayscale;
				-webkit-font-smoothing: antialiased;
				font-family: FontAwesome;
				font-style: normal;
				font-weight: normal;
				text-transform: none;
			}

			input[type="checkbox"] + label:before,
			input[type="radio"] + label:before {
				background: rgba(144, 144, 144, 0.075);
				border-radius: 4px;
				border: solid 1px rgba(144, 144, 144, 0.25);
				content: '';
				display: inline-block;
				height: 1.65em;
				left: 0;
				line-height: 1.58125em;
				position: absolute;
				text-align: center;
				top: 0;
				width: 1.65em;
			}

		input[type="checkbox"]:checked + label:before,
		input[type="radio"]:checked + label:before {
			content: '\f00c';
			background: #323037;
			border-color: #323037;
			color: var(--text-color-white);
		}

		input[type="checkbox"]:focus + label:before,
		input[type="radio"]:focus + label:before {
			border-color: var(--color-teal-darker);
			box-shadow: 0 0 0 1px var(--color-teal-darker);
		}

	input[type="checkbox"] + label:before {
		border-radius: 4px;
	}

	input[type="radio"] + label:before {
		border-radius: 100%;
	}

	::-webkit-input-placeholder {
		opacity: 1.0;
		color: #aaa;
	}

	:-moz-placeholder {
		opacity: 1.0;
		color: #aaa;
	}

	::-moz-placeholder {
		opacity: 1.0;
		color: #aaa;
	}

	:-ms-input-placeholder {
		opacity: 1.0;
		color: #aaa;
	}

	.formerize-placeholder {
		opacity: 1.0;
		color: #aaa;
	}

/* Form message styling */
#formResult {
	padding: 10px 15px;
	margin: 10px 0;
	border-radius: 4px;
	font-weight: 500;
	display: none;
}

#formResult.success {
	background-color: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}

#formResult.error {
	background-color: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

/* Loading state for submit button */
input[type="submit"]:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* Footer */

	#footer {
		padding: 2em 0 2em 0;
		background: var(--color-teal-darker);
		color: #aaa;
		text-align: center;
	}

		#footer input, #footer select, #footer textarea {
			color: var(--text-color-white);
		}

		#footer strong, #footer b {
			color: var(--text-color-white);
		}

		#footer h1, #footer h2, #footer h3, #footer h4, #footer h5, #footer h6 {
			color: #ffffff;
		}

		#footer h3 {
			font-size: 2em;
			line-height: 1.5em;
		}

		#footer a {
			-moz-transition: color 0.2s ease-in-out;
			-webkit-transition: color 0.2s ease-in-out;
			-ms-transition: color 0.2s ease-in-out;
			transition: color 0.2s ease-in-out;
			color: #aaa;
			text-decoration: none;
		}

			#footer a:active, #footer a:hover {
				color: var(--text-color-white);
			}

		#footer input[type="text"],
		#footer input[type="password"],
		#footer input[type="email"],
		#footer select,
		#footer textarea {
			background: none;
			border-color: rgba(255, 255, 255, 0.5);
		}

			#footer input[type="text"]:focus,
			#footer input[type="password"]:focus,
			#footer input[type="email"]:focus,
			#footer select:focus,
			#footer textarea:focus {
				border-color: var(--text-color-white);
				box-shadow: 0 0 0 1px var(--text-color-white);
			}

		#footer input[type="submit"],
		#footer .button {
			background-color: var(--button-bg-dark);
			box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.5);
			color: var(--button-text);
		}

			#footer input[type="submit"]:hover,
			#footer .button:hover {
			background: linear-gradient(var(--topleft-to-bottomright), var(--button-bg-hover-dark), var(--button-bg-hover-light));
			}

			#footer input[type="submit"]:active,
			#footer .button:active {
				background-color: rgba(144, 144, 144, 0.2);
			}

		#footer .icons {
			font-size: 1.5em;
		}

			#footer .icons li {
				padding-right: 2.5em;
			}

				#footer .icons li:last-child {
					padding-right: 0;
				}

		#footer .copyright {
			margin-top: 0;
			margin-bottom: 0;
			padding: 0;
			text-align: center;
		}

			#footer .copyright li {
				border-left: solid 1px rgba(144, 144, 144, 0.25);
				display: inline-block;
				list-style: none;
				margin-left: 1.5em;
				padding-left: 1.5em;
			}

				#footer .copyright li:first-child {
					border-left: 0;
					margin-left: 0;
					padding-left: 0;
				}

		@media screen and (max-width: 980px) {

			#footer {
				padding: 2em 0 3em 0;
			}

		}

		@media screen and (max-width: 736px) {

			#footer {
				padding: 2em 0 2em 0;
			}

				#footer .icons {
					font-size: 1em;
				}

		}

		@media screen and (max-width: 480px) {

			#footer {
				padding: 2em 0 1em 0;
			}

				#footer .copyright li {
					border-left: 0;
					display: block;
					margin: 0;
					padding: 0;
				}
		}

/* Image */

	.image {
		border-radius: 4px;
		border: 0;
		display: inline-block;
		position: relative;
	}

		.image img {
			border-radius: 4px;
			display: block;
		}

		.image.left, .image.right {
			max-width: 40%;
		}

			.image.left img, .image.right img {
				width: 100%;
			}

		.image.left {
			float: left;
			padding: 0 1.5em 1em 0;
			top: 0.25em;
		}

		.image.right {
			float: right;
			padding: 0 0 1em 1.5em;
			top: 0.25em;
		}

		.image.fit {
			display: block;
			margin: 0 0 0 0;
			width: 100%;
		}

			.image.fit img {
				width: 100%;
			}

			.image.fit.template{
				border: 1px solid #707070;
			}

			.image.fit.template img{
				max-height:205px;
			}

		.image.rounded {
			border-radius: 100%;
		}

			.image.rounded img {
				border: solid 0.5em rgba(144, 144, 144, 0.25);
				border-radius: 100%;
			}

		.image.captioned {
			border-radius: 0;
			margin-bottom: 4em;
		}

			.image.captioned img {
				border-radius: 0;
			}

			.image.captioned h4 {
				background-color: #ffffff;
				box-shadow: 0px 0.0375em 0.125em 0px rgba(0, 0, 0, 0.15);
				display: block;
				padding: 2em 1em;
			}

			/* for smaller screens make icons embedded in text not take the whole scren width */
			@media screen and (max-width: 980px) {

				/*this is for embedded non-round images for up to 980px screen width*/
				.row .image.fit{
					display:block;
					max-width:60%;
					margin:auto;
					text-align:center;
				}

				/*this is for rounded embedded images for up to 980px screen width*/
				.row .image.rounded{
					max-width:100%;
				}
			}

			@media screen and (max-width: 736px) {

				.image.captioned {
					margin-bottom: 2em;
				}

					.image.captioned h4 {
						padding: 1em;
					}

				/*this is for embedded non-round images for up to 746px screen width*/

				.row .image.fit{
					max-width:50%;
					display:block;
					margin:auto;
					text-align:center;
				}


				/*this is for embedded round images for up to 746px screen width*/
				.row .image.rounded.fit{
					max-width:30%;
					display:block;
					margin:auto;
					text-align:center;
				}

				/*this is for the linked-in rounded image as it is smaller than the rest*/
				.row  .\34 u .image.rounded.fit{
					max-width:75%;
				}

			}

			@media screen and (max-width: 480px) {
				.row #htmDiagram {
					max-width:90%;
				}
			}

/* List */

	/*add margin between p and ul tags and margin to the ul if it is the first child of a container that comes after another container*/
	p + ul ul:first-child {
		margin-top:1.5em;
	}
	ol {
		list-style: decimal;
		margin: 0 0 2em 0;
		padding-left: 1.25em;
	}

		ol li {
			padding-left: 0.25em;
		}

	ul {
		list-style: disc;
		margin: 0 0 1em 0.5em;
		padding-left: 1em;
	}


		ul li {
			padding-left: 0.5em;
		}

		ul.alt {
			list-style: none;
			margin: 0 0 2em 0;
			padding-left: 0;
		}

		ul.alt li {
				border-top: solid 1px var(--color-teal-darker);
				padding: 0.5em 0;
			}

				ul.alt li:first-child {
					border-top: 0;
					padding-top: 0;
				}

		ul.bare {
			list-style: none;
			padding-left: 0;
		}

			ul.bare li {
				padding: 0.2em 0;
			}

	dl {
		margin: 0 0 2em 0;
	}

		dl dt {
			display: block;
			font-weight: 700;
			margin: 0 0 1em 0;
		}

		dl dd {
			margin-left: 2em;
		}

	.mediumindent {
		margin-left: 1.5em;
	}

	.largeindent {
		margin-left: 2.5em;
	}

/* Word Document Format */

	.textFormatter {
		margin-left:10%;
		margin-right:10%;
		width:80%;
		margin-bottom:8%;
	}

	.textFormatter p {
		margin:0.5em 0 0.6em 0;
		text-align:justify;
	}


	.textFormatter h6 {
		margin: 2em 0 0 0;
	}

	.textFormatter ol {
		list-style-position: inside;
		padding-left:0;
	}

	.textFormatter ul{
		margin:0;
	}

	.textFormatter .noPadding li {
		padding-left:0;
	}

/* Table */

	table {
		margin: 0 0 2em 0;
		width: 100%;
	}

		table tbody tr {
			border: solid 1px rgba(144, 144, 144, 0.25);
			border-left: 0;
			border-right: 0;
		}

			table tbody tr:nth-child(2n + 1) {
				background-color: rgba(144, 144, 144, 0.075);
			}

		table td {
			padding: 0.75em 0.75em;
		}

		table th {
			color: #383838;
			font-size: 0.9em;
			font-weight: 700;
			padding: 0 0.75em 0.75em 0.75em;
			text-align: left;
		}

		table thead {
			border-bottom: solid 2px rgba(144, 144, 144, 0.25);
		}

		table tfoot {
			border-top: solid 2px rgba(144, 144, 144, 0.25);
		}

