/* ------------------------------

	   CONSISTENT CSS STYLES

--------------------------------- */

body {
    margin: 0;
	padding: 0;
    overflow-x: hidden;
	background: #fff url('../images/bg-grid.png');
	font: 19px/24px Arial, Helvetica, sans-serif;
    color: #4b4b4b;
	-webkit-user-select: text;
	-webkit-text-size-adjust: none;
}

a {
	color: #4b4b4b;
	transition: color 0.2s;
}

a:hover {
	color: #589726;
	outline: 0;
}

	a:hover i.icon-arrow-long {
		-webkit-animation: arrowLong 0.65s linear;
		animation: arrowLong 0.65s linear;
	}
		
		@-moz-keyframes arrowLong {
			0% {
				left: 0;
				opacity: 1;
			} 25% {
				left: 20px;
				opacity: 0;
			} 50% {
				left: -20px;
				opacity: 0;
			} 100% {
				left: 0;
				opacity: 1;
			}
		} 
		
		@-o-keyframes arrowLong {
			0% {
				left: 0;
				opacity: 1;
			} 25% {
				left: 20px;
				opacity: 0;
			} 50% {
				left: -20px;
				opacity: 0;
			} 100% {
				left: 0;
				opacity: 1;
			}
		}
		
		@-webkit-keyframes arrowLong {
			0% {
				left: 0;
				opacity: 1;
			} 25% {
				left: 20px;
				opacity: 0;
			} 50% {
				left: -20px;
				opacity: 0;
			} 100% {
				left: 0;
				opacity: 1;
			}
		}
		
		@keyframes arrowLong {
			0% {
				left: 0;
				opacity: 1;
			} 25% {
				left: 20px;
				opacity: 0;
			} 50% {
				left: -20px;
				opacity: 0;
			} 100% {
				left: 0;
				opacity: 1;
			}
		}

blockquote {
	margin: 30px 0;
	padding: 40px 75px 12px;
	font: italic 16px/24px Arial, Helvetica, sans-serif;
	color: #292929;
	border-top: 1px solid #c4c4c4;
	background: url('../images/subpage/bg-blockquote.png') no-repeat 4px 18px;
	background-size: 54px 53px;
}

	blockquote a {
		color: #292929;
	}
	
	blockquote span {
		display: block;
		line-height: 19px;
		font-style: normal;
		font-weight: bold;
	}
	
		blockquote span:first-child {
			margin-top: 15px;
			color: #00529b;
		}
		
			blockquote span:first-child + span {
				font-weight: normal;
			}
		
		blockquote div {
			color: #c7c7c7;
		}
		
		blockquote div:first-of-type {
			padding-top: 10px;
		}
			
			blockquote div span {
				color: #292929 !important;
			}
			
			blockquote div a {
				font-style: normal;
				color: #589726;
			}
		
blockquote.block-single {
	padding: 40px 75px;
	border-bottom: 1px solid #c4c4c4;
}
		

h1,
h2,
h3,
h4 {
	margin: 0;
	padding: 12px 0;
	font-size: 47px;
	line-height: 47px;
	font-weight: normal;
	text-transform: uppercase;
}

h1,
h2,
h4 {
	font-family: "Lato Black", sans-serif;
}

h1 {
	padding-top: 0;
	color: #00529b;
}

h2 {
	color: #878787;
}

	h2 a,
	h2 a:hover {
		color: #878787;
	}
	
	h2 a:hover {
		text-decoration: none;
	}


h3 {
	font-family: "Lato Light", sans-serif;
	color: #000;
}

h4 {
	font-size: 20px;
	line-height: 24px;
	color: #282828;
}

	h4 a,
	h4 a:hover {
		color: #589726;
	}
	
	h4 a:hover {
		text-decoration: none;
	}
	
hr {
	border: 0;
	height: 1px;
	background: #c4c4c4;
	margin: 30px 0 20px;
}

img {
	max-width: 100% !important;
	border: 0;
}
	
sup {
	position: relative;
	vertical-align: baseline;
	top: -2px;
	font-family: "Lato", sans-serif;
}

table,
thead,
tbody,
tr,
td {
	box-sizing: border-box;
	border-spacing: 0;
    border-collapse: separate;
}
		
.non-cms-clear {
	clear: both;
}

img.align-left,
img.align-right,
img.align-center {
	border-radius: 5px;
}

img.align-left {
	float: left;
	margin: 5px 20px 20px 0;
}

img.align-center {
	display: block;
	margin: 25px auto;
}

img.align-right {
	float: right;
	margin: 5px 0 20px 20px;
}

.disclaimer {
	font: 14px/19px "Lato Light", sans-serif !important;
}


/* HEADER */

.header {
	background: #1e63a0;
	border-bottom: 3px solid #7ac142
}

	.header-container {
		width: 100%;
		max-width: 1400px;
		margin: 0 auto;
	}
	
	.header-container::after {
		content: "";
		display: block;
		clear: both;
	}
	
		.header-container img {
			float: left;
		}
			
		.search-bar {
			float: right;
			margin-top: 25px;
		}
		
		.search-bar::after {
			content: "";
			display: block;
			clear: both;
		}
		
			.search-bar input[type=text], 
			.searchcontrols input[type=text] {
				width: 176px;
				height: 45px;
				float: left;
				margin: 0;
				padding: 0 0 0 20px;
				border: 0;
				border-radius: 3px 0 0 3px;
				font: 18px/1em "Lato", sans-serif;
				color: #5f5f5f;
			}
			
			.search-bar input[type=submit], 
			.searchcontrols input[type=submit] {
				width: 45px;
				height: 45px;
				float: left;
				padding: 0;
				background: #282828;
				border: 0 none;
				border-radius: 0 3px 3px 0;
				font: 15px/15px "louis-perry-group" !important;
				color: #fff;
				cursor: pointer;
				transition: background 0.2s;
				-webkit-appearance: none;
			}
			
			.search-bar input[type=submit]::-moz-focus-inner, 
			.searchcontrols input[type=submit]::-moz-focus-inner {
				border: 0;
			}
			
			.search-bar input[type=submit]:hover, 
			.searchcontrols input[type=submit]:hover {
				background: #7ac142;
			}
			
					
/* DESKTOP NAVIGATION */

.desktop-navigation,
.mobile-navigation {
	background: #282828;
	text-align: center;	
}

	.desktop-navigation .AspNet-Menu-Horizontal > ul {
		margin: 0;
		padding: 0;
		list-style-type: none;
		font-size: 0;
	}	
	
	.AspNet-Menu-Horizontal, 
	.AspNet-Menu-Vertical, 
	.AspNet-Menu {
		float: none !important;
	}
	
		.desktop-navigation .AspNet-Menu-Horizontal > ul > li {
			display: inline-block;
			float: none !important;
			vertical-align: top;
			margin: 0;
			padding: 0;
		}
									
		.desktop-navigation .AspNet-Menu-Horizontal > ul > li > a {
			display: block;
			padding: 15px 25px;
			font: 15px/15px "Lato", sans-serif;
			color: #fff;
			text-decoration: none;
			text-transform: uppercase;
			transition: color 0.2s;
		}
			
			.desktop-navigation .AspNet-Menu-Horizontal > ul > li:hover a {
				color: #7ac142;
				outline: 0;
			}
	
			.desktop-navigation .AspNet-Menu-Horizontal > ul ul {
				display: none !important;
			}
			
				
				
/* mojoPortal classes used to create active states in the navigation */

.desktop-navigation .AspNet-Menu-SelectedLeaf a, 
.desktop-navigation .AspNet-Menu-SelectedWithChildren a {
	color: #7ac142 !important;
}


/* MOBILE NAVIGATION */

	/* Icon */
	
	.mobile-menu-btn {
		display: none;
		position: relative;
		margin: 0 auto;
		padding: 10px 0 11px;
		font: 18px/16px "Lato", sans-serif;
		color: #fff;
		text-align: center;
		text-transform: uppercase;
		background-color: #282828;
		cursor: pointer;
	}
	
		.mobile-menu-btn span {
			display: inline-block;
			position: relative;
			bottom: 7px;
			margin-left: 15px;
		}
	
		.mobile-menu-btn span::before, .mobile-menu-btn span::after {
			content: "MENU";
			position: absolute;
			top: -6px;
			right: 15px;
			opacity: 1;
			transition: opacity .5s ease-in-out;
			-moz-transition: opacity .5s ease-in-out;
			-webkit-transition: opacity .5s ease-in-out;
		}
		
		.mobile-menu-btn span::after {
			content: "CLOSE";
			opacity: 0;
			right: 12px;
		}
		
		.mobile-menu-btn.active span::before {
			opacity: 0;
		}
		
		.mobile-menu-btn.active span::after {
			opacity: 1;
		}

			.mobile-menu-btn i, 
			.mobile-menu-btn i::before, 
			.mobile-menu-btn i::after {
				content: "";
				display: block; 
				position: absolute;
				height: 3px;
				width: 25px;		
				border-radius: 1px;
				background: #565656;
				transition: all 0.5s ease-in-out;
			}
			
			.mobile-menu-btn i::before {
				top: -6px;
			}
			
			.mobile-menu-btn i::after {
				bottom: -6px;
			} 
			
			.mobile-menu-btn.active i {
				background-color: transparent;
			}
			
			.mobile-menu-btn.active i::before, 
			.mobile-menu-btn.active i::after {
				top: 0;
			}
			
			.mobile-menu-btn.active i::before {
				-ms-transform: rotate(45deg);
				-o-transform: rotate(45deg);
				-webkit-transform: rotate(45deg);
				transform: rotate(45deg);
			}
			
			.mobile-menu-btn.active i::after {
				-ms-transform: rotate(-45deg);
				-o-transform: rotate(-45deg);
				-webkit-transform: rotate(-45deg);
				transform: rotate(-45deg);
			} 
	

	/* Menu */

	.mobile-navigation {
		height: 0;
		overflow-x: hidden !important;
		transition: height 0.5s ease-in-out;
	}		
	
	.mobile-navigation.open-menu {
		height: 1651px;
	}

		.mobile-navigation ul {
			width: 100%;
			padding: 0;
			margin: 0;
			text-align: left;
			background-color: #282828;
			list-style-type: none;
		}
		
		.mobile-navigation ul.mobile-navigation-root {
			border-bottom: 1px solid #1e1e1e;
		}
		
			.mobile-navigation li {
				margin: 0;
				padding: 0;
				border-top: 1px solid #1e1e1e;
			}
			
				.mobile-navigation li.has-children a::before,
				.mobile-navigation ul.mobile-navigation-child li.has-children a::before {
					position: relative;
					bottom: 1px;
					padding-right: 10px;
					content: "b";
					font: 12px/12px "louis-perry-group";
					text-transform: none;
					color: #79bf42;
					-ms-transform: rotate(0deg);
					-o-transform: rotate(0deg);
					-webkit-transform: rotate(0deg);
					transform: rotate(0deg);
				}
				
				.mobile-navigation li a,
				.mobile-navigation li.has-children a {
					display: block;
					width: 100%;
					padding: 15px 0 15px 37px;
					font: 19px/19px "Lato", sans-serif;
					text-decoration: none;
					text-transform: uppercase;
					color: #fff;			
				}
				
				.mobile-navigation li.has-children a {
					padding: 15px 0 15px 15px;
				}
			
					.mobile-navigation ul.mobile-navigation-child li a::before,
					.mobile-navigation ul.mobile-navigation-child ul li a::before,
					.mobile-navigation ul.mobile-navigation-child li.has-children ul a::before {
						content: "";
					}
					
					.mobile-navigation ul.mobile-navigation-child li.has-children a::before {
						color: #777;
					}
					
					.mobile-navigation ul.mobile-navigation-child li.has-children a {
						padding-left: 32px;
					}
					
					.mobile-navigation ul.mobile-navigation-child li a,
					.mobile-navigation ul.mobile-navigation-child li.has-children ul a {
						padding-left: 43px;
					}
														
						.mobile-navigation ul.mobile-navigation-child li.has-children ul {
							/* display: none; */
						}
											
						.mobile-navigation ul.mobile-navigation-child li.has-children ul a {
							text-transform: none;
							color: #959595;			
						}
				
		

/* CALLOUT BINS */

.hp-bottom, 
.sp-bottom {
	font-size: 0;
}

	.callout-container {
		display: inline-block;
		width: 50%;
		vertical-align: top;
	}
		
		.cta-bin {
			display: -ms-flexbox;
			display: -webkit-flex;
			display: flex;
			-webkit-align-items: center;
			-ms-flex-align: center;
			align-content: center;			
			position: relative;
			height: 550px;
			overflow-y: hidden;
			background-size: cover !important;
		}
		
		.cta-bin::after {
			z-index: 1;
			content: "";
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;			
		}
		
		.cta-choose {
			background: url('../images/homepage/bg-hp-choose.jpg') no-repeat center top;
		}
		
		.cta-commitment {
			background: url('../images/homepage/bg-hp-commitment.jpg') no-repeat center top;
		}
		
		.cta-featured-projects {
			background: url('../images/homepage/bg-hp-featured-projects.jpg') no-repeat center top;
		}
		
		.cta-services {
			background: url('../images/homepage/bg-hp-services.jpg') no-repeat center top;
		}
		
		.callout-container:first-child .cta-bin::after {
			background: rgba(0, 82, 155, 0.86);
			transition: background 0.4s;
		}
		
		.callout-container:first-child .cta-bin.bg-color-change::after {
			background: rgba(0, 103, 196, 0.86);
		}
		
		.callout-container:nth-of-type(2) .cta-bin::after {
			background: rgba(92, 162, 41, 0.92);
			transition: background 0.4s;
		}
		
		.callout-container:nth-of-type(2) .cta-bin.bg-color-change::after {
			background: rgba(107, 184, 47, 0.92);
		}
		
			.cta-bin * {
				z-index: 2;
			}
		
			.cta-bin img {
				position: absolute;
				bottom: 20px;
				right: 30px;
			}
			
			.cta-bin div {
				position: relative;
				max-width: 475px;
				margin: auto;
			}
			
			.cta-bin h3 {
				padding: 0;
				font-size: 50px;
				line-height: 50px;
				color: #fff;
			}
			
				.cta-bin span {
					font-family: "Lato Black", sans-serif;
				}
			
			.cta-bin p {
				margin: 8px 0 15px;
				font: 19px/26px "Lato", sans-serif;
				color: #fff;
			}
			
			.callout-container:first-of type .cta-bin p {
				color: #d8eafa;
			}
			
			.cta-bin a {
				font: 37px/37px "Lato Light", sans-serif;
				text-decoration: none;
				text-transform: uppercase;
				color: #fff;
			}
			
				.cta-bin a i {
					position: relative;
					top: 7px;
					margin-left: 15px;
					font-size: 40px;
				}


/* FOOTER */

.footer {
	background-color: #282828;
	font-family: "Lato", sans-serif;
}
	
	.footer-container {
		display: -ms-flexbox;
		display: -webkit-flex;
		display: flex;
		-webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
		flex-flow: row wrap;
		justify-content: space-between; 
		width: 100%;
		max-width: 1296px;
		margin: 0 auto;
	}
	
	.footer-container::after {
		content: "";
		display: block;
		clear: both;
	}
	
		.footer-container a {
			color: #d0d0d0;
			text-decoration: none;
		}
		
		.footer-container a:hover {
			text-decoration: underline;
		}
			
		.footer-container h3 {
			margin: 0;
			font: 16px/16px "Lato Black", sans-serif;
			text-transform: uppercase;
			color: #fff;	
		}
		
			.footer-container h3 a {
				margin-top: 0 !important;
				font-family: "Lato Black", sans-serif;
				color: #fff;
			}
			
			.footer-container h3 a:hover {
				text-decoration: none;
			}
				
		.footer-container > div {
  			-webkit-flex: 1 1 32.6%;
			-ms-flex: 1 1 32.6%;
			flex: 1 1 32.6%;
			font-size: 14px;
			color: #fff;
		}

		.footer-container > div:nth-child(2) {
			background: #141414;
		}
		
		.footer-container div.footer-links {
			display: -ms-flexbox;
			display: -webkit-flex;
			display: flex;
			width: 81.8%;
		}
		
			div.footer-links div {
				font-size: 14px;
				line-height: 21px;			
			}
			
			div.footer-links div:first-of-type {
				width: 48.5%;
				border-right: 1px solid #3b3b3b;
				box-sizing: border-box;
			}
			
				div.footer-links div:first-of-type p:last-child {
					margin-bottom: 0;
				}
			
				div.footer-links div h3 {
					padding: 0;
				}
			
				div.footer-links div p {
					margin: 5px 0 25px;
				}
				
				div.footer-links div a {
					display: block;
					margin-top: 5px;
					line-height: 17px;
					transition: color 0.2s;
				}
				
				div.footer-links div a:hover {
					color: #5ca027;
				}
				
			div.footer-links div:nth-of-type(2) {
				width: 40%;
				padding-left: 11.5%;	
			}
			
				div.footer-links div:nth-of-type(2) p {
					margin-bottom: 23px;
				}
				
				div.footer-links div:nth-of-type(2) h3:last-child {
					margin-top: 25px;
				}
				
		.footer-container div.footer-contact,
		.footer-container div.footer-links {
			padding-top: 45px;	
		}
		
		.footer-container div.footer-contact a,
		.footer-container div.footer-join a,
		.footer-container div.footer-links a {
			text-decoration: none;
		}
		
		.footer-container div.footer-contact {
			width: 196px;
			margin: 0 auto;
		}
		
			.footer-container div.footer-contact h3 {
				font-size: 29px;
				padding: 0 0 12px;
			}
			
				.footer-container div.footer-contact h3 span {	
					font-family: "Lato Light", sans-serif;
				}
				
				
			.footer-container div.footer-contact p,
			.footer-container div.footer-contact p a {
				color: #c7c7c7;
			}
				
				.footer-container div.footer-contact p a[href^=tel] {
					font: 14px/21px "Lato", sans-serif;
					text-transform: none;
				}
				
				.footer-container div.footer-contact p a,
				.footer-container div.footer-join a {
					font: 25px/25px "Lato Light", sans-serif;
					text-transform: uppercase;
					color: #fff;
				}
				
					.footer-container div.footer-contact p a i,
					.footer-container div.footer-join a i {
						position: relative;
						top: 8px;
						margin-left: 5px;
						font-size: 35px;
					}
				
				.footer-container div.footer-contact p span {
					display: block;
					margin-top: 10px;
				}
				
		.footer-container div.footer-join {
			position: relative;
			overflow: hidden !important;
			max-height: 89px;
			margin-top: 45px;
		}
		
		.footer-container div.footer-join > img {
			display: block;
			position: relative;
			left: 50%;
			margin-left: -223px;
			margin-right: auto;
			max-height: 89px !important;
			min-height: 89px;
			max-width: 446px !important;
			min-width: 446px;
		}
		
		.footer-container div.footer-join > a {
			z-index: 2;
			position: absolute;
			top: 0;
			width: 100%;
			height: 100%;
			background: rgba(0, 56, 106, .8);
			line-height: 85px;
			text-align: center;
			transition: background-color 0.2s;
		}
		
		.footer-container div.footer-join > a:hover {
			background: rgba(92, 160, 39, .8);
		}
		
		.footer-container div.footer-copyright {
			width: 84.1%;
			float: right;
			padding-top: 80px;
		}
		
		.footer-container div.footer-copyright::after {
			content: "";
			display: block;
			clear: both;
		}
		
			.footer-container div.footer-copyright div::after {
				content: "";
				display: block;
				clear: both;
			}
			
				.footer-container div.footer-copyright div > img {
					float: left;
				}
				
				.footer-container div.footer-copyright div .footer-social {
					width: 56.5%;
					max-width: 205px;
					float: right;
				}
				
				.footer-container div.footer-copyright div .footer-social::after {
					content: "";
					display: block;
					clear: both;
				}
				
					.footer-social span {
						display: block;
						margin: 0 auto 15px;
						font-size: 13px;
						line-height: 13px;
						text-align: center;
						color: #cacaca;
					}
					
					.footer-social div:first-of-type {
						width: 67.5%;
						float: left;
						border-right: 1px solid #3b3b3b;
					}
					
					.footer-social div:last-of-type {
						float: right;
						padding-right: 3%;
					}
						
					
				
				
			.footer-container div.footer-copyright p:first-of-type,
			.footer-container div.footer-contact p {
				line-height: 21px;
			}
			
				.footer-container div.footer-copyright p:first-of-type a {
					color: #d1d1d1;
				}
				
			.footer-container div.footer-copyright p:nth-of-type(2) {
				margin: 0;
				padding-top: 14px;
			}
					
				.footer-container div.footer-copyright p:nth-of-type(2) a {
					color: #a4a4a4;
					text-decoration: underline;
				}
				
				.footer-container div.footer-copyright p:nth-of-type(2) a:hover {
					text-decoration: none;
				}
				
			
/* BACK TO TOP */

.back-to-top {
	z-index: 3;
	display: none;
	position: fixed;
	right: 45px;
	bottom: 45px;
	opacity: 0.8;
}			