@font-face{ font-family: 'Aeonik'; src: url('../fonts/Aeonik-Regular.otf') format('opentype'); font-weight: normal; font-style: normal; font-display: swap; }
@font-face{ font-family: 'Aeonik'; src: url('../fonts/Aeonik-Bold.otf') format('opentype'); font-weight: bold; font-style: normal; font-display: swap; }
:root{
	--gutterpad: 10vw;
	--contentpad05x: 10px;
	--contentpad: 20px;
	--contentpad2x: 40px;
	--contentpad3x: 60px;
}
html, body{
	margin: 0;
	padding: 0;
	font-size: 16px;
/*	font-size: calc( 16px + (22 - 16) * (100vw - 980px) / (1920 - 980) );*/
	line-height: 1.3;
	font-family: 'Aeonik', sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	min-width: 320px;
	overflow-x: hidden;
	background-color: #DEEDCD;
	color: #085551;
	fill: #085551;
}

main,section,div{
	position: relative;
	box-sizing: border-box;
}

h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5 {
	margin: 0 0;
	font-weight: normal;
	line-height: 1;
}
	h1, .h1, h2, .h2{
		/*64*/
		font-size: 64px;
	}
	h3, .h3{
		/*21*/
		font-size: 21px;
	}
	h4, .h4, h5, .h5{
		/*18*/
		font-size: 18px;
	}

.text-large{
	/*21*/
	font-size: 21px;
}
small, .text-small{
	font-size: 12px;
}


a{ 
	color:inherit; 
	fill:inherit; 
	text-decoration: none; 
	transition: all 0.4s ease 0s; 
	position: relative;
}
a:hover{ 
	text-decoration: underline; 
	transition: all 0.4s ease 0s; 
}

.unselectable{ -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
.unclickable{ pointer-events: none; }
.visually-hidden{ position: absolute!important; height: 1px!important; width: 1px!important; overflow: hidden!important;clip: rect(1px 1px 1px 1px)!important; clip: rect(1px, 1px, 1px, 1px)!important; white-space: nowrap!important;}

*:focus{ outline: none; }
*:focus, *:active{ 
	-webkit-tap-highlight-color: none; 
}
*::selection{
	background-color: rgba(8, 85, 81, 0.99); color: #deedcd;
}
*::-moz-selection{
	background-color: rgba(8, 85, 81, 0.99); color: #deedcd;
}

.grid-container{
	display: grid;
	grid-template-columns: [screenleft] var(--gutterpad) [edgeleft] var(--contentpad) [c0] 1fr [c1] 1fr [c2] 1fr [c3] 1fr [c4] 1fr [c5] 1fr [c6] 1fr [c7] 1fr [c8] 1fr [c9] 1fr [c10] 1fr [c11] 1fr [c12] var(--contentpad) [edgeright] var(--gutterpad) [screenright];
	grid-template-rows: auto;
	grid-auto-rows: auto;
	grid-auto-flow: row; 
	align-items: stretch;
	justify-content: stretch; 
	align-content: stretch; 
    margin: 0 auto;
    padding: 0 0;
}
	.grid-container .grid-item{
		grid-column-start: c0; 
		grid-column-end: c12;
	  	grid-row-start: auto; 
	  	grid-row-end: auto;
	  	position: relative;
	}
	.grid-container .grid-item .content{
		padding: var(--contentpad) var(--contentpad);
	}

.flex-container{
	width: 100%; max-width: 100%; height: 100%; min-height: inherit; position: relative; padding: 0; margin: 0; box-sizing: border-box;
	display: flex; flex-wrap: nowrap; flex-direction: row; 
	align-items: flex-start;  align-content: flex-start;  justify-content: flex-start;
}
	.flex-container.flex-nowrap{ flex-wrap: nowrap!important; }
	.flex-container.flex-wrap{ flex-wrap: wrap; }
		.flex-container.flex-center{ align-items: center; align-content: center; justify-content: flex-start; }
		.flex-container.flex-stretch{ align-items: stretch; align-content: flex-start; justify-content: stretch; }
		.flex-container.flex-edges{ align-items: flex-start; align-content: space-between; justify-content: space-between; }

	.flex-container .flex-item{ 
		display: block; flex-basis: auto; width: auto; flex-grow: 0; flex-shrink: 0; position: relative; 
		box-sizing: border-box; box-shadow: none; text-decoration: none; border: 0px none; margin: 0 0; padding: 0 0; max-width: 100%; 
	}
		.flex-container .flex-item.flex-parts-auto{ flex-grow: 1; flex-shrink: 1; }
		.flex-container .flex-item.flex-parts-100{ flex-basis: 100%; width:100%; }
		.flex-container .flex-item.flex-parts-75{ flex-basis: 75%; width: 75%; }
		.flex-container .flex-item.flex-parts-50{ flex-basis: 50%; width: 50%; }
		.flex-container .flex-item.flex-parts-25{ flex-basis: 25%; width: 25%; }
		.flex-container .flex-item.flex-parts-66{ flex-basis: 66.66%; width: 66.66%; }
		.flex-container .flex-item.flex-parts-33{ flex-basis: 33.33%; width: 33.33%; }


.grid-container.container_landing{
	padding: var(--contentpad) 0;
	min-height: 100vh;
	grid-template-rows: [contact] auto [contactpad] var(--contentpad3x) [text1] auto [text2] auto [text2pad] var(--contentpad05x) [servi] auto [servipad] var(--contentpad05x) [logo] auto [logopad] var(--contentpad) [foot] auto [bottom];
}
.container_landing .grid-item.item_logo{
	grid-column: c0/c12;
	grid-row: logo/logopad;
}
.container_landing .grid-item.item_contact{
	grid-column: c0/c12;
	grid-row: contact/contactpad;
}
.container_landing .grid-item.item_tagline{
	grid-column: c0/c4;
	grid-row: text1/text2;
}
.container_landing .grid-item.item_blurb{
	grid-column: c8/c12;
	grid-row: text1/text2pad;
}
.container_landing .grid-item.item_services{
	grid-column: c0/c12;
	grid-row: servi/servipad;
}
.container_landing .grid-item.item_footer{
	grid-column: c0/c6;
	grid-row: foot/bottom;
	align-self: end;
}
.container_landing .grid-item.item_siteby{
	grid-column: c6/c12;
	grid-row: foot/bottom;
	text-align: right;
	align-self: end;
}


p{
	margin: 0;
}
span.inline-arrow{
	display: inline;
    margin-right: 12px;
}
img.site-logo{
	display: block;
	width: auto;
	max-width: 100%;
}


ul.list-social{
	list-style-type: none;
	margin: 0;
	padding: 0;
	position: relative;
}
ul.list-social li{
	display: block;
	margin: 0;
	padding: 0;
}
ul.list-social a{}


ul.list-services{
	list-style-type: none;
	margin: 0;
	padding: var(--contentpad05x) 0;
	position: relative;	
	border-top: 1px solid;
    border-bottom: 1px solid;
}
ul.list-services li{}
ul.list-services li .inner{
	display: block;
	position: relative;
	box-sizing: border-box;
	padding: var(--contentpad05x) 0;
	line-height: 1.3;
}
/* todo: fix this to use nth-child instead? for now fit on 1 row */
ul.list-services li:not(:first-child) .inner{
padding-left: var(--contentpad);
}
ul.list-services li:not(:last-child) .inner{
	padding-right: var(--contentpad);
}

ul.list-contact{
	list-style-type: none;
	margin: 0;
	position: relative;	
	padding: var(--contentpad) 0 0 0;
	border-top: 1px solid;
}
ul.list-contact .flex-item.flexitem_phone{
	text-align: left;
}
ul.list-contact .flex-item.flexitem_email:not(.align-left){
	text-align: center;
}
ul.list-contact .flex-item.flexitem_social{
	text-align: right;
}
ul.list-contact li .inner{
	display: block;
	position: relative;
	box-sizing: border-box;
}
ul.list-contact li:not(:first-child) .inner{
	padding-left: var(--contentpad);
}
ul.list-contact li:not(:last-child) .inner{
	padding-right: var(--contentpad);
}

/******** RESPONSIVE / MOBILE ********************************************************/

/* exception: narrow padtop */
@media only screen and (min-width : 1280px) and (max-height : 800px)  {
	:root{
		--gutterpad: 8vw!important;
		--contentpad05x: 8px;
		--contentpad: 16px;
		--contentpad2x: 22px;
		--contentpad3x: 38px;
	}
	.grid-container.container_landing{
		padding: var(--contentpad05x) 0;
	    grid-template-rows: [contact] auto [contactpad] var(--contentpad05x) [text1] auto [text2] auto [text2pad] 0 [servi] auto [servipad] 0 [logo] auto [logopad] var(--contentpad) [foot] auto [bottom];	
	}
	.container_landing .grid-item.item_tagline{
		grid-column: c0/c6;
	}
	.container_landing .grid-item.item_blurb{
		grid-column: c7/c12;
	}
}


@media only screen and (max-width : 1440px) {
	:root{
		--gutterpad: 6vw;
	}
}
@media only screen and (max-width : 1280px) {
	:root{
		--gutterpad: 3vw;
	}

	.container_landing .grid-item.item_tagline{
		grid-column: c0/c6;
	}
	.container_landing .grid-item.item_blurb{
		grid-column: c7/c12;
	}
	ul.list-services.flex-edges{
		flex-wrap: wrap;
		align-items: flex-start;
		align-content: flex-start;
    	justify-content: flex-start;
	}
	ul.list-services.flex-edges li{
		flex-basis: 33.33%;
		width: 33.33%;
		text-align: left;
	}
/*	ul.list-services li:nth-child(3n+1){
		text-align: left;
	}
	ul.list-services li:nth-child(3n+2){
		text-align: center;
	}
	ul.list-services li:nth-child(3n+3){
		text-align: right;
	}*/
	ul.list-services li:nth-child(3n+2) .inner br{
		display: none;
	}
	ul.list-services li:nth-child(3n+1) .inner,
	ul.list-services li:nth-child(3n+1):last-child .inner{
		padding-left: 0;
		padding-right: var(--contentpad2x);
	}
	ul.list-services li:nth-child(3n+2) .inner,
	ul.list-services li:nth-child(3n+2):last-child .inner{
		padding-left: var(--contentpad2x);
		padding-right: var(--contentpad2x);
	}
	ul.list-services li:nth-child(3n+3) .inner,
	ul.list-services li:nth-child(3n+3):last-child .inner{
		padding-left: var(--contentpad2x);
		padding-right: 0;
	}
}
@media only screen and (max-width : 980px) {
	:root{
		--gutterpad: 0;
		--contentpad05x: 6px;
		--contentpad: 12px;
		--contentpad2x: 24px;
		--contentpad3x: 36px;
	}
}
@media only screen and (max-width : 740px) {
	body, html{
		font-size: 14px;
	}
	h1, .h1, h2, .h2{
		/*54*/
		font-size: 54px;
	}
	h3, .h3{
		/*18*/
		font-size: 18px;
	}
	h4, .h4, h5, .h5{
		/*18*/
		font-size: 18px;
	}
	.text-large{
		/*18*/
		font-size: 18px;
	}
	small, .text-small{
		font-size: 12px;
	}

	.grid-container.container_landing{
		grid-template-rows: [logo] 1fr [logopad] 0.25fr [text1] auto [text1pad] 0.25fr [text2] auto [text2pad] 0.25fr [servi] auto [servipad] var(--contentpad05x) [contact] auto [contactpad] var(--contentpad05x) [foot] auto [footbottom];
	}
	.container_landing .grid-item.item_logo{
		grid-column: c0/c12;
		grid-row: logo/logopad;
	}
	.container_landing .grid-item.item_contact{
		grid-column: c0/c12;
		grid-row: contact/contactpad;
	}
	.container_landing .grid-item.item_tagline{
		grid-column: c0/c12;
		grid-row: text1/text1pad;
	}
	.container_landing .grid-item.item_blurb{
		grid-column: c0/c12;
		grid-row: text2/text2pad;
	}
	.container_landing .grid-item.item_services{
		grid-column: c0/c12;
		grid-row: servi/servipad;
	}
	.container_landing .grid-item.item_footer{
		grid-column: c0/c12;
		grid-row: foot/bottom;
		align-self: end;
	}
	.container_landing .grid-item.item_siteby{
		grid-column: c0/c12;
		grid-row: foot/bottom;
		text-align: right;
		align-self: end;
	}

	img.site-logo{
		padding-bottom: var(--contentpad2x);
   		border-bottom: 1px solid;
   		margin-bottom: var(--contentpad2x);
	}

	ul.list-services{
		line-height: 1.3;
	}
	ul.list-services.flex-edges{
		padding: var(--contentpad2x) 0;
	}
	ul.list-services.flex-edges li,
	ul.list-services li:nth-child(3n+1),
	ul.list-services li:nth-child(3n+2),
	ul.list-services li:nth-child(3n+3){
		text-align: left;
		flex-basis: 100%;
    	width: 100%;
	}
	ul.list-services.flex-edges li .inner br{
		display: none;
	}
	ul.list-services li:not(:last-child){
/*		padding-bottom: var(--contentpad);*/
	}
	ul.list-services .inner,
	ul.list-services li:not(:last-child) .inner,
	ul.list-services li:not(:first-child) .inner,
	ul.list-services li:nth-child(3n+1):last-child .inner, 
	ul.list-services li:nth-child(3n+2):last-child .inner,
	ul.list-services li:nth-child(3n+3):last-child .inner{
		padding-left: 0;
		padding-right: 0;
		padding-top: var(--contentpad);
		padding-bottom: var(--contentpad);
	}

	ul.list-contact{
		padding: 0 0;
    	border-top: 0;
    	flex-wrap: wrap;
    	padding-bottom: var(--contentpad2x);
   		border-bottom: 1px solid;
	}
	ul.list-contact .flex-item.flexitem_phone,
	ul.list-contact .flex-item.flexitem_email,
	ul.list-contact .flex-item.flexitem_social{
		text-align: left;
		flex-basis: 100%;
		width: 100%;
	}
	    ul.list-contact .flex-item.flexitem_email:not(.align-left){
	        text-align: left;
	    }
	ul.list-contact li:not(:last-child){
		padding-bottom: var(--contentpad);
	}
	ul.list-contact li .inner{}
	ul.list-contact li:not(:first-child) .inner,
	ul.list-contact li:not(:last-child) .inner{
		padding-right: 0;
		padding-left: 0;
	}

}
@media only screen and (max-width : 460px) {}

