/* This stylesheet is RENDER-BLOCKING */
/* This stylesheet is RENDER-BLOCKING */
/* Only add priority styles that occur near the top of the page and/or prevent page jitter */

/*
CORE
PRIORITY
*/

/*******************************************************************************************
CORE - Top-level styling
*******************************************************************************************/
:root {
	--font-size-h1: 2.5rem;
	--font-size-h2: 1.7rem;
	--font-size-h3: 1.125rem;
	--font-size-h4: 1rem;
	--font-size-h5: 1rem;
	--font-size-base: 1rem;
	--line-height-base: 1.85;
	--color-body-text: #2c2c2c;
	--color-primary: #0d3376;
	--color-secondary: #1b6fb2;
	--color-secondary-light: #41a0eb;
	--color-alternate: #14498a;
	--color-gray: #e3e3e3;
	--color-light-gray: #edf1f5;
	--color-pure-white: #fff;
	--color-pure-black: #000;
	--color-border: #e8e8e8;
	--color-error: #f00;
	--font-family-body: 'Manrope', sans-serif;
	--font-family-heading: 'Barlow', sans-serif;
	--gutter-size: 30px;
	font-size: 16px;
}

@media screen and (min-width: 768px) {

	/* TABLET */
	:root {
		--font-size-h1: 2.5rem;
		--font-size-h2: 1.7rem;
		--font-size-h3: 1.125rem;
		--font-size-h4: 1rem;
		--font-size-h5: 1rem;
	}
}

#container {
	position: relative;
	top: 0;
	right: 0;
	display: flex;
	-ms-flex-direction: column;
	flex-direction: column;
	min-height: 100vh;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
}
main {
	padding-top: 40px;
	padding-bottom: 40px;
	display: block;
	-ms-flex: 1;
	flex: 1;
	width: 100%;
	min-height: 450px;
	-webkit-box-flex: 1;
}
.no-banner main {
	padding-top: 180px;
}
html {
	box-sizing: border-box;
}
body {
	margin: 0;
	display: block !important;
	font-family: var(--font-family-body);
	font-size: var(--font-size-base);
	line-height: var(--line-height-base);
	color: var(--color-body-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
*,
*:before,
*:after {
	box-sizing: inherit;
}

@media screen and (min-width: 768px) {
	main {
		padding-top: 60px;
		padding-bottom: 60px;
	}
}

/* GENERAL > Skip To Content */
#skiptocontent {
	padding: 8px;
	position: fixed;
	z-index: 10;
	display: block !important;
	opacity: 0;
	color: var(--color-pure-white);
	background-color: var(--color-secondary);
	transform: translateY(-40px);
	transition: all 200ms ease-out;
}
#skiptocontent:focus {
	opacity: 1;
	transform: translateY(0);
}

@media only screen and (max-width: 640px) {
	#skiptocontent {
		display: none !important;
	}
}

/*******************************************************************************************
HEADER
*******************************************************************************************/
.header {
	position: fixed;
	top: 0;
	z-index: 100;
	width: 100%;
	transition: all 200ms ease-out;
}
body.scrolled .header {
	padding-bottom: 15px;
	background: var(--color-primary);
}
.home .header {
	animation-delay: 0.4s;
}
.header > .row {
	height: 100%;
}
.header a {
	text-decoration: none;
}
.header-desktop {
	display: none;
}
.header-logo {
	padding: 0;
	display: block;
	align-items: center;
	width: 136px;
	line-height: 1;
}
.header-logo img {
	width: 100%;
	height: auto;
}
.header-mobile {
	padding-bottom: 0 !important;
}
.header-mobile-inner {
	padding: 0 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 90px;
	min-height: 70px;
}
.header-mobile-buttons {
	margin-left: 4%;
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: flex-end;
}
.header-mobile-buttons .fa-phone {
	transform: none;
}
.header-mobile-buttons button:after,
.header-mobile-buttons a:after {
	display: none;
}
.header-mobile-buttons a,
.header-mobile-buttons button {
	margin-left: 15px;
	padding: 0 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	max-width: 38px;
	height: 38px;
	font-size: 1.3rem;
	color: var(--color-pure-white);
	border: 1px solid #e6e6e6;
	border-radius: 0;
	background: transparent !important;
}
.header-mobile-buttons button:hover,
.header-mobile-buttons button:focus{
	color: var(--color-secondary);
}
.header-right {
	display: none;
	-ms-flex-direction: column;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
}
.header-right-top {
	margin-bottom: 8px;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
.header-right-top span {
	font-weight: 600;
}
.header-phone {
	margin-bottom: 5px;
	margin-left: 20px;
	padding: 10px 20px;
	display: inline-flex;
	align-items: center;
	font-family: var(--font-family-heading);
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1.25;
	color: var(--color-pure-white);
	background: var(--color-secondary);
}
.header-phone i {
	margin-right: 10px;
	font-size: 50%;
	line-height: 1;
}
.header-right-bottom {
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
}

@media screen and (min-width: 1025px) {
	.header-mobile {
		display: none;
	}
	.header-desktop {
		display: block;
	}
	.header-logo {
		margin-top: 40px;
		width: 252px;
	}
	.header-right {
		display: flex;
		width: 70%;
	}
	.header-inner {
		padding: 0 30px;
		position: relative;
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
	}
	.header-logo img {
		padding: 0;
	}
}

@media screen and (min-width: 1440px) {
	.header-logo {
		width: 312px;
	}
}

/* General display: none */
.hide,
.show-in-pdf,
.grecaptcha-badge {
	display: none !important;
}

/* CORE > Headings and Paragraphs */
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 20px;
	font-family: var(--font-family-heading);
	font-weight: 600;
	line-height: 1.2;
	color: var(--color-primary);
}
h1 {
	font-size: var(--font-size-h1);
	letter-spacing: -1.5px;
}
h2 {
	font-size: var(--font-size-h2);
	letter-spacing: -1px;
	color: var(--color-secondary);
}
h3 {
	font-size: var(--font-size-h3);
	font-weight: 500;
	letter-spacing: 2px;
	text-transform: uppercase;
}
h4 {
	font-size: var(--font-size-h4);
	font-weight: 500;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-secondary);
}
h5,
h6 {
	font-size: var(--font-size-h5);
}
h2 strong,
h3 strong {
	font-weight: 700;
}
h1 span.subtitle,
h2 span.subtitle {
	display: block;
	font-size: 50%;
	color: var(--color-secondary);
}
p {
	margin: 0 0 30px;
}
ul {
	list-style: none;
}
img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* CORE > Links and Buttons */
a {
	text-decoration: underline;
	color: var(--color-primary);
}
a:hover,
a:focus {
	text-decoration: none;
	color: var(--color-secondary-light);
}
a.no-underline {
	text-decoration: none;
}
a.no-underline:hover,
a.no-underline:focus {
	text-decoration: underline;
}
a,
button,
.button,
.wp-element-button {
	transition: color 200ms ease-out, background 200ms ease-out, transform 60ms ease-in;
}
button,
.button,
.wp-element-button {
	margin: 0;
	padding: 18px 20px;
	display: inline-flex;
	align-content: center;
	align-items: center;
	justify-content: center;
	width: auto;
	font-family: var(--font-family-heading);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--color-pure-white);
	border: none;
	border-radius: 2px;
	background-color: var(--color-primary);
	cursor: pointer;
	height: auto;
}

@media screen and (min-width: 1440px) {
	button,
	.button,
	.wp-element-button {
		padding: 18px 30px;
		font-size: 1.063rem;
	}
}

button:active,
.button:active,
.wp-element-button:active {
	transform: translateY(1.5px);
}
button:hover,
button:focus,
.button:hover,
.button:focus,
.wp-element-button:hover,
.wp-element-button:focus {
	color: var(--color-pure-black);
	background-color: var(--color-secondary-light);
}
button.alt-01,
.button.alt-01 {
	background-color: var(--color-secondary);
}
button.alt-01:hover,
button.alt-01:focus,
.button.alt-01:hover,
.button.alt-01:focus {
	color: var(--color-pure-white);
	background-color: var(--color-primary);
}
button.alt-02,
.button.alt-02 {
	background-color: var(--color-pure-black);
}
button.alt-02:hover,
button.alt-02:focus,
.button.alt-02:hover,
.button.alt-02:focus {
	color: var(--color-pure-white);
	background-color: var(--color-alternate);
}
button.outline,
.button.outline {
	color: var(--color-alternate);
	border: 2px solid var(--color-alternate);
	background: none;
}
button.outline:hover,
button.outline:focus,
.button.outline:hover,
.button.outline:focus {
	color: var(--color-pure-white);
	background: var(--color-alternate);
}
button.outline.outline-alt-01,
.button.outline.outline-alt-01 {
	color: var(--color-pure-white);
	border-color: var(--color-pure-white);
}
button.outline.outline-alt-01:hover,
button.outline.outline-alt-01:focus,
.button.outline.outline-alt-01:hover,
.button.outline.outline-alt-01:focus {
	color: var(--color-primary);
	background: var(--color-pure-white);
}
button.no-button,
.button.no-button {
	padding: 0;
	padding-top: 8px;
	padding-bottom: 8px;
	position: relative;
	font-weight: 600;
	text-transform: none;
	color: var(--color-primary);
	background: none;
}
button.no-button:after,
.button.no-button:after {
	position: absolute;
	bottom: 0;
	left: 0;
	display: block;
	width: 0;
	height: 2px;
	background: var(--color-secondary-light);
	transition: width 200ms ease;
	content: '';
}
button.no-button:hover,
button.no-button:focus,
.button.no-button:hover,
.button.no-button:focus {
	text-decoration: none;
	color: var(--color-secondary-light);
}
button.no-button:hover:after,
button.no-button:focus:after,
.button.no-button:hover:after,
.button.no-button:focus:after {
	width: 100%;
}

/* CORE > Form and Inputs */
input,
select,
textarea {
	margin: 0;
	padding: 18px 0;
	width: 100%;
	height: 60px;
	font-family: var(--font-family-body);
	font-size: 1rem;
	line-height: 1;
	color: var(--color-primary);
	border: 0;
	border-bottom: 1px solid rgba(13, 51, 118, 0.2);
	border-radius: 0;
	background: none;
	box-shadow: none;
}
select {
	border-bottom: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
input.dark-input,
select.dark-input,
textarea.dark-input {
	color: var(--color-primary);
}
textarea {
	min-height: 90px;
	resize: none;
}
input::placeholder,
textarea::placeholder {
	color: var(--color-primary);
}
select,
form legend,
form label,
form p {
	font-size: 0.9rem;
}
legend,
label {
	color: var(--color-primary);
}
fieldset {
	margin: 0;
	padding: 0;
	border: none;
}
label {
	display: none;
	pointer-events: none;
}
.form-input-group label i {
	color: var(--color-secondary);
}
.gfield,
.form-input-group {
	margin-bottom: 0;
	position: relative;
	display: block;
	width: 100%;
	text-align: left;
	grid-column: 1/-1;
	min-width: 0;
}
.form-input-group {
	margin-bottom: 15px;
}
.form-input-group.button-container {
	margin-bottom: 0;
}
.select-wrapper {
	position: relative;
	width: 100%;
}
.select-wrapper:after {
	position: absolute;
	top: 0;
	right: 0;
	width: 52px;
	font-family: 'Font Awesome 6 Pro';
	font-weight: 900;
	line-height: 52px;
	text-align: center;
	color: var(--color-pure-white);
	transition: all 200ms ease-out;
	content: '\f0dc';
	pointer-events: none;
}
.select-wrapper.active:after {
	color: var(--color-pure-white);
	background: var(--color-primary);
}
.contact-form-heading {
	text-align: center;
	color: var(--color-pure-white);
}
.background-input input:focus:not([type='checkbox']) ~ label,
.background-input textarea:focus ~ label,
.background-input input.active ~ label,
.background-input textarea.active ~ label,
.background-input select.active ~ label {
	color: var(--color-primary);
}
.background-input input,
.background-input textarea,
.background-input select {
	padding: 12px 20px;
	height: 52px;
	border: 1px solid var(--color-border);
	background-color: var(--color-pure-white);
}
.background-input select {
	padding-right: 70px;
}
.background-input.select-wrapper:after,
.background-input .select-wrapper:after {
	background-color: var(--color-secondary-light);
}
input.has-error {
	border: 1px solid var(--color-error) !important;
	box-shadow: 0 0 2px var(--color-error) !important;
}
.gform_heading,
.ginput_counter,
span.gfield_required {
	display: none;
}
.gfield_contains_required label.gfield_label:after {
	margin-left: 5px;
	color: var(--color-error);
	content: ' *';
}
.gfield_validation_message,
p.error-text {
	margin: 0;
	font-size: 0.8rem;
	font-size: 1rem;
	font-weight: 700;
	color: #f00;
	-webkit-animation: fadein 125ms both;
	animation: fadeIn 125ms both;
}
.gform_wrapper.gravity-theme .gform_fields{
	grid-column-gap: 2%;
    -ms-grid-columns: (1fr 2%) [12];
    grid-row-gap: 16px;
    display: grid;
    grid-template-columns: repeat(12,1fr);
    grid-template-rows: repeat(auto-fill,auto);
    width: 100%;
}
.gform_wrapper.gravity-theme .gform_fields {
	grid-row-gap: 0;
}

.sidebar .gform_wrapper.gravity-theme .gform_fields{
	grid-template-columns: 1fr;
}

.gform_wrapper.gravity-theme .gfield textarea.small {
	height: 60px;
	min-height: 60px;
}
.gform_wrapper.gravity-theme .gform_footer {
	margin-top: 15px;
	display: flex;
}
.gform_wrapper.gravity-theme .gform_footer .button {
	color: var(--color-pure-white);
	background-color: var(--color-secondary-light);
}
.gform_wrapper.gravity-theme .gform_footer .button:hover {
	color: var(--color-pure-white);
	background-color: var(--color-primary);
}

@media screen and (min-width: 768px) {
	.gform_wrapper.gravity-theme .gform_footer {
		justify-content: flex-end;
	}
}

/* CORE > Layout */
.columns,
.column {
	padding: 0 var(--gutter-size);
}
.row,
.row-wide,
.row-narrow {
	margin-right: auto;
	margin-left: auto;
	max-width: 1214px;
}
.row-narrow {
	max-width: 1024px;
}
.row-wide {
	max-width: 1650px;
}
.row:after {
	clear: both;
}
.row:not(.main-inner):before,
.row:not(.main-inner):after {
	display: table;
	flex-basis: 0;
	order: 1;
	content: ' ';
}
.row.main-inner:before,
.row.main-inner:after {
	display: none;
}

/* CORE > Priority Utility Classes */
.no-float {
	float: none;
}
.no-margin {
	margin: 0 !important;
}
.no-padding {
	padding: 0 !important;
}
.no-min-height {
	min-height: 0;
}
.position-static,
.static {
	position: static !important;
}
.position-relative,
.relative {
	position: relative !important;
}
.position-absolute,
.absolute {
	position: absolute;
}
.full-width {
	width: 100%;
}
.full-height {
	height: 100%;
}
.visually-hidden {
	margin: -1px !important;
	padding: 0 !important;
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	white-space: nowrap !important;
	border: none !important;
	clip: rect(0 0 0 0) !important;
	overflow: hidden !important;
}
.no-background {
	background: none !important;
}
.animate-in-view,
.opacity0 {
	opacity: 0;
}
.opacity1 {
	opacity: 1 !important;
}

@media (min-width: 768px) {
	.hide-for-medium {
		display: none !important;
	}
}

@media (min-width: 1025px) {
	.hide-for-large {
		display: none !important;
	}
}

@media screen and (max-width: 767px) {
	.hide-for-small-only {
		display: none !important;
	}
}

@media screen and (max-width: 0), screen and (min-width: 768px) {
	.show-for-small-only {
		display: none !important;
	}
}

@media screen and (max-width: 767px) {
	.show-for-medium {
		display: none !important;
	}
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
	.hide-for-medium-only {
		display: none !important;
	}
}

@media screen and (max-width: 767px), screen and (min-width: 1025px) {
	.show-for-medium-only {
		display: none !important;
	}
}

@media screen and (max-width: 1024px) {
	.show-for-large {
		display: none !important;
	}
}

/* CORE > Utility Classes */
.no-margin-last > p:last-of-type {
	margin: 0 !important;
}
.no-transition {
	transition: none !important;
}
.hr-after {
	position: relative;
}
.block {
	display: block;
}
.inline-block {
	display: inline-block;
}
.center,
.align-center,
.text-center {
	text-align: center;
}
.right,
.align-right,
.text-right {
	text-align: right;
}
.body-font {
	font-family: var(--font-family-body);
}
.header-font {
	font-family: var(--font-family-heading);
}
.uppercase {
	text-transform: uppercase;
}
.overflow-hidden {
	overflow: hidden;
}
.flex-container {
	display: flex;
	align-items: center;
}
.flex-align-vertical {
	display: flex;
	align-items: center;
	justify-content: center;
}
.flex-align-horizontal {
	display: flex;
	justify-content: center;
	text-align: center;
}
.small-text {
	font-size: 0.9rem;
}
.larger-text {
	font-size: 1.2rem;
}
.font-light {
	font-weight: 300;
}
.font-normal {
	font-weight: 400;
}
.font-medium {
	font-weight: 500;
}
.font-semibold {
	font-weight: 600;
}
.bold,
.font-bold {
	font-weight: 700;
}
.font-extra-bold {
	font-weight: 800;
}
.font-black {
	font-weight: 900;
}
.mt10 {
	margin-top: 10px;
}
.mt20 {
	margin-top: 20px;
}
.mt30 {
	margin-top: 30px;
}
.mt40 {
	margin-top: 40px;
}
.mt50 {
	margin-top: 50px;
}
.mt60 {
	margin-top: 60px;
}
.mt70 {
	margin-top: 70px;
}
.mt80 {
	margin-top: 80px;
}
.mb0 {
	margin-bottom: 0 !important;
}
.mb10 {
	margin-bottom: 10px;
}
.mb20 {
	margin-bottom: 20px;
}
.mb30 {
	margin-bottom: 30px;
}
.mb40 {
	margin-bottom: 40px;
}
.mb50 {
	margin-bottom: 50px;
}
.mb60 {
	margin-bottom: 60px;
}
.mb70 {
	margin-bottom: 70px;
}
.mb80 {
	margin-bottom: 80px;
}
.pt10 {
	padding-top: 10px;
}
.pt20 {
	padding-top: 20px;
}
.pt30 {
	padding-top: 30px;
}
.pt40 {
	padding-top: 40px;
}
.pt50 {
	padding-top: 50px;
}
.pt60 {
	padding-top: 60px;
}
.pt70 {
	padding-top: 70px;
}
.pt80 {
	padding-top: 80px;
}
.pb10 {
	padding-bottom: 10px;
}
.pb20 {
	padding-bottom: 20px;
}
.pb30 {
	padding-bottom: 30px;
}
.pb40 {
	padding-bottom: 40px;
}
.pb50 {
	padding-bottom: 50px;
}
.pb60 {
	padding-bottom: 60px;
}
.pb70 {
	padding-bottom: 70px;
}
.pb80 {
	padding-bottom: 80px;
}
.small-margin-left {
	margin-left: 15px;
}
.small-margin-right {
	margin-right: 15px;
}
.pointer-events-none {
	pointer-events: none;
}
.transition-all {
	transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
}
.z-index-over {
	position: relative;
	z-index: 1;
}
.background-center {
	background-position: center center !important;
}
.background-y-bottom {
	background-position-y: 100%;
}
.background-y-top {
	background-position-y: 0%;
}
.background-cover {
	background-repeat: no-repeat;
	background-size: cover;
}
.background-transparent {
	background: transparent;
}
.light-text,
button.light-text,
.light-text h1,
.light-text h2,
.light-text h3,
.light-text p,
.light-text span,
.light-text li,
.light-text label {
	color: var(--color-pure-white);
}
