@charset "utf-8";
/* CSS Document */

/* generic */
*
{
	box-sizing:border-box;

}
html, body
{
	margin:0;
	padding:0;
		  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings:"wdth" 100;
	font-size:18px;
}
.flx
{
	display:flex;
	flex-wrap:wrap;
}
.img-resp
{
	display:block;
	max-width:100%;
	height:auto;
}

header
{
	display:block;
	position:fixed;
	top:0;
	left:0;
	right:0;
	z-index:99999;
}
header .brandLogo,
header .navControls
{flex:1 0 50%;}
header .navClosed
{
display:none;	
}
header nav
{
	
	position:fixed;
	z-index:999;
	left:0;
	right:0;
	bottom:0;
	top:0;

	align-items:center;
	justify-content:center;
	background: linear-gradient(283deg, rgba(0, 123, 237, 1) 0%, rgba(0, 39, 237, 1) 100%);
}
header .closeNav
{
	position:absolute;
	top:20px;
	right:20px;
	width:40px;
	height:40px;
	z-index:20;
}
header .navOpen
{
	display:flex;
}
nav .innerNav
{
	display:flex;
	flex:1 0 100%;
	max-width:900px;
}
nav .innerNav .menu,
nav .innerNav .navComms
{
	flex:1 0 100%;
}
nav .navAddress
{
	padding-bottom:15px;
}
nav .innerNav .menu
{
	padding:0 30px 40px 30px;
}
nav .innerNav .navComms
{
	color:#fff;
	padding:0 30px;
}
nav .innerNav .navComms a
{
	color:#fff;
	text-decoration:none;
}
nav .innerNav .menu ul
{
	list-style-postion:inside;
	list-style-type: none;
	text-indent:0;
	padding:0;
	margin:0;
}

nav .navAddress a
{
	padding:0 0 0 35px;
	background:url(../img/map-marker.svg) top left no-repeat;
	display:block;
} 
nav .navCommms .commEnt
{
	padding-bottom:8px;
}


nav .innerNav .menu ul li a
{
	display:block;
	font-size:30px;
	color:#fff;
	text-decoration:none;
	font-weight:300;
	padding:3px 0;
}
img
{
	max-width:180px;
}
header .headBarContainer
{
	padding:20px;
	position:Relative;
	z-index:10;
}
header .headBarContainer .navControls
{
	text-align:right;
}
header .headBarContainer .navControls .menuController
{
	display:inline-block;
	
	width:50px;
	height:30px;
	
}
header .headBarContainer .navControls .menuController a
{
	display:block;
	width:50px;
	height:30px;
	position:relative;
}
header .headBarContainer .navControls .menuController a span
{
	display:block;
	position:absolute;
	width:50px;
	border-bottom:2px solid #fff;
}
header .headBarContainer .navControls .menuController a span.tn
{
	top:0;
	left:0;
}
header .headBarContainer .navControls .menuController a span.tm
{
	top:50%;
	left:0;
	transform:translateY(-50%);
}
header .headBarContainer .navControls .menuController a span.tb
{
	bottom:0;
	left:0;
}
header::before
{
	background: linear-gradient(180deg,rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 100%);
	display:block;
	content:" ";
	left:0;
	right:0;
	height:100px;
	opacity:0;
	transition:opacity ease-out 0.4s;
	position:absolute;
	
}
.scrolled header::before
{
	opacity:0.7;
	transition:opacity ease-out 0.4s;	
}
.intLink.white,
.intLink.black
{
	padding-top:15px;
}
.intLink.black a
{
	display:inline-block;
	padding:15px 20px;
	background-color:#000;
	color:#fff;
	text-decoration:none;
}
.intLink.white a
{
	display:inline-block;
	padding:15px 20px;
	background-color:#fff;
	color:#000;
	text-decoration:none;
}

.footerWrap
{
	background-color:#003a68;
	padding:40px 0 0 0;
}
.footerWrap a
{
	color:#fff;
	text-decoration:none;
}
.footerInner 
{
	max-width:1500px;
	margin:0 auto;
	color:#fff;
}

 .footerInner .brandAddressFooter,
 .footerInner .commms,
 .footerInner .links
{
	flex:1 0 100%;
	padding:0 20px 40px 20px;
}
 .footerInner .commms .commEnt
{
	padding-bottom:8px;
}
.footerInner .brandAddressFooter img
{
	max-width:240px;
	
}
footer .footAddress
{
	padding-top:15px;
	line-height:130%;
}
footer .footAddress a
{
	padding:0 0 0 35px;
	background:url(../img/map-marker.svg) top left no-repeat;
	display:block;
}
footer .copyright
{
padding:20px;
	background-color:#003559;
	color:#fff;
	font-size:14px;
}
.footLinksInner ul
{
	list-style-type:none;
	list-style-position:inside;
	text-indent:0;
	margin:0;
	padding:0;
}
.footLinksInner ul li a
{
	padding-bottom:5px;
	display:block;
}
/* end generic */

/* home */

.pageHero
{

background-color:#85d037;
	color:#fff;	
	background: linear-gradient(36deg,rgba(101, 170, 21, 1) 0%, rgba(133, 208, 55, 1) 100%);
	align-items:center;
	height:40vh;	
	min-height:300px;
	display:flex;
	align-items:center;
	justify-content: center;
}
.pageHeroTitle
{
flex:1 0 100%;
	text-align:center;
}
.pageHeroTitle h1
{
font-weight: 900;
    font-size: 50px;
    margin: 0;
    padding: 0 20px 0 20px;	
}
.homeHero
{
	height:668px;

background-color:#85d037;
	color:#fff;	
	background: linear-gradient(36deg,rgba(101, 170, 21, 1) 0%, rgba(133, 208, 55, 1) 100%);
	align-items:center;
	height:100vh;
	
}
.homeHero .message
{
	flex:1;
	max-width:1500px;
	margin:0 auto;
	text-align:center;
	position:relative;
	z-index:10;

}
.homeHero .message .inner
{
	padding:30px;
}
.homeHero .message h1
{
	font-weight:900;
	font-size:50px;
	margin:0;
	padding:0 0 15px 0;
}
.homeHero .message .small,
.homeHero .message .medium
{
	display:block;
	font-size:30px;
	font-weight:400;
}
.homeHero .message p
{
	font-size:22px;
	font-weight:300;
	line-height:150%;
	margin:0;
	padding:0;

	text-align:center;
}
.homeHero .visualElement
{
	display:none;
	position:absolute;
	right:30px;
	top:-150px;
	width:900px;
	height:900px;
	pointer-events:none;
}
.Introduction
{
	background: linear-gradient(283deg,rgba(0, 123, 237, 1) 0%, rgba(0, 39, 237, 1) 100%);
}
.Introduction .introductionInner
{
	max-width:1500px;
	margin:0 auto;
	color:#fff;
}
 .introductionInner .headerTitle
{
	padding:60px 30px 20px 30px;
}
 .introductionInner .headerTitle h2
{
	font-weight:900;
	font-size:50px;
	margin:0;
	padding:0 0 15px 0;	
}
.Introduction .introductionInner .flx
{
padding:0 30px 60px 30px;	
}
.Introduction .introductionInner .left,
.Introduction .introductionInner .right
{
	flex:1 0 100%;
}
.Introduction .introductionInner .left .leftInner
{
	padding-bottom:30px;
}
.Introduction .introductionInner .left p
{
	font-weight:300;
	font-size:24px;
	line-height:150%;
}
.Introduction .introductionInner .right p
{
	line-height:150%;
}
.strengths
{
    padding: 60px 0;
	background-size:cover;
	background-position:center;
	background-repeat:no-repeat;
	position:relative;
}
.strengths::before{
	position:Absolute;
	top:0;
	left:0;
	right:0;
	bottom:0;
	content:" ";
	display:block;
	z-index:2;
	background-color:rgba(0,0,0,0.5);
}

.strengths .strengthsInner
{
	max-width:1500px;
	margin:0 auto;
		position:relative;
	
z-index:10;
}
.strengths .strengthsInner .strengthsHeader
{
	padding:0 30px 30px 30px;
}
.strengths .strengthsInner .strengthsHeader h2
{
	font-weight:900;
	font-size:50px;
	margin:0;
	padding:0 0 15px 0;	
	color:#fff;
}
.strengths .strengthsInner .flx
{
	padding:0 30px 30px 30px;

	color:#fff;
}
.strengths .strengthsInner .flx .left,
.strengths .strengthsInner .flx .right
{
	flex:1 0 100%;
}
.strengths .strengthsInner .flx .left .intLink
{
	display:none;
}
.strengths .intLink.bottom
{
	padding-left:30px;
}

.strengths .strengthsInner .flx .leftInner p
{
	    padding: 0 0 15px 0;
    margin: 0;
    font-weight: 300;
    font-size: 24px;
	line-height:150%;
}
.strengths .strengthsInner .flx .rightInner ul
{
	margin:0;
	padding:0;
	list-style-type:none;
	list-style-position:inside;
text-indent:0;
	
}
.strengths .strengthsInner .flx .rightInner ul li
{
	padding-left:30px;
	padding-bottom:10px;
	line-height:150%;
	font-size:30px;
	font-weight:300;
	position:relative;
}
.strengths .strengthsInner .flx .rightInner ul li::before{
	position:absolute;
	width:24px;
	height:24px;
	left:0;
	top:8px;
	background:url(../img/list-arrow-0.svg) center no-repeat;
	content:" ";
	display:block;
}
.services
{

	margin:0 auto;
}
.services .serviceHeader
{
padding:30px 0px;
	margin-bottom:50px;
	position:relative;
}
.services .serviceHeader::after{
	display:block;
	content:" ";
	width:80px;
	position:absolute;
	bottom:0;
	left:50%;
	transform:translateX(-50%);
	border-bottom:1px solid #003eed;
}
.services .serviceHeader h2
{
	font-weight: 900;
    font-size: 50px;
    margin: 0;
    padding: 0;
	color:#003eed;
	text-align:Center;
}
.serviceBlocks .sBlock  .left,
.serviceBlocks .sBlock  .right
{
	flex:1 0 100%;
	position:relative;
}
.serviceBlocks .sBlock  .left
{
	display:flex;
	align-items:Center;
	background-color:#f4f4f4;
}
.serviceBlocks .sBlock  .left h2
{
	color:#003eed;
	padding:0 0 15px 0;
	margin:0;font-weight:400;
	font-size:26px;
}
.serviceBlocks .sBlock  .left h3
{
	
	padding:0 0 15px 0;
	margin:0;
	font-weight:400;
	font-size:20px;
	line-height:150%;
}
.serviceBlocks .sBlock  .left p
{
	line-height:140%;
	margin:0;
	padding:0 0 15px 0;
}
.serviceBlocks .sBlock  .left ul
{
	margin-top:0;
	margin-bottom:0;
	padding-top:0;
	padding-bottom:0;
	line-height:150%;
}
.serviceBlocks .sBlock  .left .inner
{
	padding:40px 20px;
}
.serviceBlocks .sBlock  .right
{
	padding-bottom:100%;
}
.serviceBlocks .sBlock  .right .visual
{
	position:absolute;
	top:0;
	right:0;
	bottom:0;
	left:0;
	
}
.innerVis
{
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
	max-width:400px;
	width:100%;
		padding:15px;00px;
	padding:15px;
}
.serviceBlocks .sBlock  .right .visual img.dvis
{
	height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    width: 100%;
    object-fit: cover;
    transition: filter 
ease-out 0.3s;
}
.sBlocksEnd
{

}
.sBlocksEnd .bigAnd
{
	display:none;
}
.sBlocksEnd .flx{
	background-color:#003a68;
}
.sBlocksEnd .flx .left,
.sBlocksEnd .flx .right
{
	flex:1 0 100%;
}
.sBlocksEnd .flx .left
{
	display:none;
}
.sBlocksEnd .flx .left
{
	position:relative;
	padding-bottom:100%;
}
.sBlocksEnd .flx .right
{
	
	color:#fff;
}
.sBlocksEnd .flx .left .visual
{
	position:absolute;
	bottom:0;
	left:0;
	right:0;
	top:0;
}
.sBlocksEnd .flx .left .visual img
{
	    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    width: 100%;
    object-fit: cover;
    transition: filter 
ease-out 0.3s;
}
.sBlocksEnd .flx .right .inner
{
	padding:30px;
}
.sBlocksEnd .flx .right .inner ul

{
list-style-type:none;
	list-style-position:inside;
	margin:0 0 20px 0;
	padding:0 0 20px 0;
	text-indent:0;
	position:Relative;
}
.sBlocksEnd .flx .right .inner ul::after
{
	position:Absolute;
	bottom:0;
	left:0;
	width:70px;
	border-bottom:1px solid #fff;
	content:" ";
	display:block;
}
.sBlocksEnd .flx .right .inner ul li
{
	position:relative;
		font-size:26px;
	font-weight:300;
	padding:0 0 8px 35px;
}
.sBlocksEnd .flx .right .inner ul li::before
{
position:absolute;
	top:4px;
	left:0;
	width:26px;
	height:26px;
	content:" ";
	display:block;
	background:url(../img/list-arrow-1.svg) top left no-repeat;

}
.sBlocksEnd .flx .right .inner p
{
    padding: 0 0 15px 0;
    margin: 0;
    font-weight: 400;
    font-size: 20px;
	line-height:150%;
}


.homeContact .left.comForm,
.homeContact .right.CTAContent
{
flex:1 0 100%;	
}
.homeContact .right.CTAContent
{
	background: linear-gradient(50deg,rgba(48, 48, 48, 1) 0%, rgba(0, 0, 0, 1) 100%);
}
.homeContact .left.comForm .inner,
.homeContact .right.CTAContent .inner
{
padding:50px 30px;	
}
.homeContact .left.comForm .inner
{
	width:100%;
	max-width:600px;
}
.homeContact .left.comForm .inner h2
{
	font-weight: 400;
    font-size: 30px;
    margin: 0;
    padding: 0 0 30px 0;
    color: #003eed;
    text-align: left;
}
.gform-theme--foundation .gform_footer, .gform-theme--foundation .gform_page_footer
{
margin-block-start:15px!important;	
}
.homeContact .left.comForm input[type=submit]
{
	background-color:#003eed!important;
	padding:18px!important;
	font-size:20px!important;
	color:#fff!important;
	text-align:center!important;
	width:100%!important;
}
.gform-theme--foundation .gform_fields
{
row-gap:15px!important;	
	column-gap:15px!important;	
}
.homeContact .right.CTAContent .inner p
{
	font-size:26px;
	line-height:150%;
	font-weight:300;
	max-width:600px;
}
.homeContact .left.comForm .gform-theme--foundation .gfield textarea.large
{
	min-block-size: 10rem!important;	
}
	.homeContact .right.CTAContent
	{
		color:#fff;
	}
/* end home */

.defaultPage
{
	max-width:1300px;
	margin:0 auto;
}
.defaultPage .defaultPageInner
{
	padding:50px 30px;
}
.defaultPage .defaultPageInner h2
{
	font-size:40px;
	font-weight:300;
	line-height:130%;
	padding:0 0 15px 0;
	margin:0;
	color: #003eed;
}
.defaultPage .defaultPageInner h3
{
	line-height:150%;
	padding:0 0 15px 0;
	font-weight:400;
	font-size:24px;
}
.defaultPage .defaultPageInner p
{
line-height:150%;
	padding:0 0 20px 0;
	
}
.defaultPage .defaultPageInner ul
{
	line-height:150%;
}
.defaultPage  blockquote
{
	padding:0;
	margin:30px 0;
	text-indent:0;
}
.defaultPage  blockquote p
{
	font-size:40px;
	color:#85d037;
	font-weight:300!important;
	margin:0;
	padding:0 0 20px 0!important;
	line-height:130%!important;
}

.visualMobile
{
	position:absolute;
	top:0;
	left:0;
	bottom:0;
	right:0;
	background-size:cover;
	background-position:center;
	background-repeat:no-repeat;
	opacity:0.7;
}
.gform_wrapper .gform-footer button
{
    
background-color:#003eed!important;
color:#fff!important;
width:100%!important;
}
@media(min-width:768px)
{

nav .innerNav .menu ul li a
	{
		font-size:36px;
	}
nav .innerNav .menu,
nav .innerNav .navComms
{
	flex:1 0 50%;
	padding-bottom:0;
}
	

	.sBlocksEnd .flx .left
{
	display:block;
}
	.homeContact .right.CTAContent .inner p
{
	font-size:32px;

}
.homeContact .left.comForm,
.homeContact .right.CTAContent
{
flex:1 0 50%;
		display:flex;
		align-items:center;
		justify-content:center;
}


	.footerInner .brandAddressFooter,
 .footerInner .commms,
 .footerInner .links
{
	flex:1 0 50%;
	
}
	
	
	header .headBarContainer
{
	padding:20px;
}
header .brandLogo img
{
	max-width:250px;
}	
	 .introductionInner .headerTitle
{
	padding:80px 30px 20px 30px;
}
	.Introduction .introductionInner .flx
{
padding:0 30px 80px 30px;	
}
	.Introduction .introductionInner .left,
.Introduction .introductionInner .right
{
	flex:1 0 50%;
}
.Introduction .introductionInner .left .leftInner
	{
	padding-bottom:0;
		padding-right:30px;
	}
.Introduction .introductionInner .right	.rightInner
	{
		padding-left:30px;
	}
	.strengths
{
    padding: 80px 0;
}
	.strengths .strengthsInner .flx .left,
.strengths .strengthsInner .flx .right
{
	flex:1 0 50%;
}
	.strengths .strengthsInner .flx .leftInner
	{
		padding-right:30px;
	}
	.strengths .strengthsInner .flx .rightInner
	{
		padding-left:30px;;
	}
	.strengths .strengthsInner .flx .left .intLink
{
	display:block;
}
.strengths .intLink.bottom
	{
		display:none;
	}
.services .serviceHeader
	{
		padding-top:50px;
	}
.serviceBlocks .sBlock
	{
		min-height:600px;
	}
	.serviceBlocks .sBlock  .left,
.serviceBlocks .sBlock  .right
{
	flex:1 0 50%;
}
	.serviceBlocks .sBlock  .left .inner
{
	padding:90px 30px;
}
	.serviceBlocks .sBlock:nth-child(even) {
  flex-direction: row-reverse;
}
	.serviceBlocks .sBlock  .right
{
	padding-bottom:0;
}
	.serviceBlocks .sBlock  .right .visual,
	.sBlocksEnd .flx .left
	{
		padding-bottom:0;
	}
	
	.sBlocksEnd .flx
	{
		position:relative;
	}
	.sBlocksEnd .flx .left,
.sBlocksEnd .flx .right
{
	flex:1 0 50%;
}
	.sBlocksEnd .flx .right
	{
		position:relative;
		z-index:4;
		display:flex;
		align-items:center;
		justify-content:center;
	}
	.sBlocksEnd .flx .right .inner
	{
		flex:1 0 100%;
		padding:30px;
		max-width:500px;
	}
	.sBlocksEnd .flx
	{
		min-height:600px;
	}
	.sBlocksEnd .bigAnd
	{
		display:block;
		position:absolute;
		bottom:0;
		width:300px;
		bottom:0;
		left:20%;
		z-index:2;
		opacity:0.5;
		
	}
}
@media(min-width:992px)
{	.visualMobile
	{
		display:none;
	}
	.footerWrap
	{
		padding-top:60px;

	}
	.footerInner .brandAddressFooter, .footerInner .commms, .footerInner .links
	{
		padding-bottom:60px;
	}
	.sBlocksEnd .bigAnd
	{
		width:400px;
		left:15%;
	}
	 .footerInner .brandAddressFooter,
 .footerInner .commms,
 .footerInner .links
	{
		flex:1 0 33.333%;
	}
	.homeHero .visualElement
	{
		display:block;
	}
	.homeHero
	{
		height:700px;
	}
	.homeHero .message
	{
		text-align:left;
	}
	.homeHero .message p
	{
		text-align:left;
		max-width:350px
	}
	.homeHero .message .inner
{
	max-width:50%;
}
	.homeHero .message h1
	{
		font-size:70px;
		
	}
	.Introduction
	{
		position:Relative;
	}
	.introductionVisual{
		position:Absolute;
		top:15%;
		right:0;
		bottom:0;
		left:0;
		background-image:url(../img/home-about-waves.png);
		background-position:top left;
		background-size:auto;
		background-repeat:no-repeat;
		content:" ";
		display:block;
		z-index:2;
	}
	 .introductionInner .headerTitle
{
	padding:120px 30px 20px 30px;
		position:relative;
	z-index:10;
}
	.Introduction .introductionInner .flx
{
padding:0 30px 120px 30px;	
	position:relative;
	z-index:10;
}
	
	.strengths
{
    padding: 120px 0;
}
		.sBlocksEnd .flx .left
	{
		flex:1 0 40%;
	}
.sBlocksEnd .flx .right
{
	flex:1 0 60%;
}
}
@media(min-width:1200px)
{
		.homeHero .message h1
	{
		font-size:90px;
		
	}
		.homeHero .message .small,
	.homeHero .message .medium
	{
		
		font-size:40px;

	}
	.serviceBlocks .sBlock .left .inner
	{
	padding: 90px 50px;
		max-width:600px;
	}
	.serviceBlocks .sBlock .left
	{
		justify-content:center;
	}
			.sBlocksEnd .flx .left
	{
		flex:1 0 30%;
	}
.sBlocksEnd .flx .right
{
	flex:1 0 70%;
}
}
