/* -------------------------------------------------- */
/* Reset - http://purecss.io/base
/* -------------------------------------------------- */
a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section, main{display:block;}body{line-height:1;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}.hide{display:none;}html{box-sizing: border-box;}*,*:before,*:after{box-sizing:inherit;}.clear{font-size:0px;clear: both;height: 0px;}*:focus{outline: none;}strong{font-weight:bold;}em{font-style:italic;}input:invalid{box-shadow: none;}button{border:none;background:none;padding:0;margin: 0;}button::-moz-focus-inner{border:0;}input,button{border-radius:0;border-radius:none;}html{scroll-behavior: smooth;}
/* -------------------------------------------------- */
/* Common
/* -------------------------------------------------- */
body{
	background: #00254f;
	font-family: 'Montserrat', Arial, sans-serif;
	font-size: 16px;
	color: #00254f;
}
h1, h2, h3, h4{
	line-height: 1.2em;
}
a, a:visited{
	color: #1a73e8;
}
a:hover, a:active{
	color: #1a73e8;
	text-decoration: none;
}
strong{
	font-weight: 700;
}
sup{
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
  top: -0.5em;
}
p{
	line-height: 1.6em;
	margin-bottom: 24px;
}

/* -------------------------------------------------- */
/* Container
/* -------------------------------------------------- */
.container, 
.container-sm,
.container-med{
	width: 100%;
	max-width: 1366px;
	padding: 0 36px;
	margin: 0 auto;
}
.container-sm{
	max-width: 800px;
}
.container-med{
	max-width: 960px;
}

/* -------------------------------------------------- */
/* Header
/* -------------------------------------------------- */
.tools{
	display: none; /* hide client portal button for now */
	background: #00254f;
	padding: 9px 0;
}
.tools ul{
	display: flex;
	justify-content: flex-end;
	margin-left: auto;
}
.tools li{
	margin-left: 9px;
}
.brand{
	padding: 18px 0;
	display: flex;
	align-items: center;
}
.logo{
	background: url('/assets/images/white-rudy.svg') no-repeat;
	width: 374px;
	height: 70px;
}
.prime{
	margin-left: auto;
}
.prime ul{
	display: flex;
}
.prime a{
	background-color: transparent;
	-webkit-transition: background-color .5s; /* Safari */
	transition: background-color .5s;
	display: block;
	padding: 18px;
	text-decoration: none;
	color: #00244f;
	font-weight: 600;
	font-size: 16px;
}
.prime a:hover{
	background-color: #edf0f3;
}
.prime li.active a{
	text-decoration: underline;
}

/* -------------------------------------------------- */
/* Buttons
/* -------------------------------------------------- */
a.btn-sm,
button.btn-sm,
a.btn-lg,
button.btn-lg{
	background-color: #fbbc04; /* gold */
	background-color: #34a853; /* green */
	background-color: #ea4335; /* red */
	background-color: #1a73e8; /* blue */
	-webkit-transition: background-color .25s; /* Safari */
	transition: background-color .25s;
	display: inline-block;
	padding: 0 21px 0 19px;
	font-size: 13px;
	font-weight: 600;
	line-height: 42px;
	text-decoration: none;
	color: #fff;
}
a.btn-lg,
button.btn-lg{
	font-size: 16px;
	padding: 0 27px;
	line-height: 54px;
}
a.btn-sm:hover,
button.btn-sm:hover, 
a.btn-lg:hover,
button.btn-lg:hover{
	background-color: #1e87f5;
}

.btn-icon{
	background:  #00254f no-repeat center;
	height: 42px;
	width: 42px;
}
.btn-icon.edit,
.btn-icon.top{
	position: fixed;
	z-index: 9999;
}
.btn-icon.edit{
	background-image: url('/assets/images/pencil.svg');
	bottom: 57px;
	right: 9px;
}
.btn-icon.top{
	background-image: url('/assets/images/arrow-up.svg');
	bottom: 9px;
	right: 9px;
	visibility: hidden;
	opacity: 0;
	-webkit-transition: opacity .5s, visibility 0s .5s;
	transition: opacity .5s, visibility 0s .5s;
}
.scrolled .btn-icon.top{
	visibility: visible;
	opacity: 1;
	-webkit-transition: opacity .5s, visibility 0s 0s;
	transition: opacity .5s, visibility 0s 0s;
}
.btn-icon.toggle-mnav{
	background-color: transparent;
	background-image: url('/assets/images/menu.svg');
	display: none;
}
#page.show .btn-icon.toggle-mnav{
	background-image: url('/assets/images/close.svg');
}

/* -------------------------------------------------- */
/* Hero
/* -------------------------------------------------- */
.hero{
	background: #9d9fa2 no-repeat center;
	background-size: cover;
}
.hero-overlay{
	padding: 144px 0 125px 0;
	background: rgba(0,36,79,.75);
}
.pg-title .hero-overlay{
	padding: 72px 0 54px 0;
}
.hero-text{
	width: 100%;
	max-width: 800px;
	margin-right: auto;
}
.pg-title .hero-text{
	margin: 0 auto;
}
.hero h1{
	font-size: 48px;
	font-weight: 700;
	color: #fff;
	margin-bottom: 18px;
}
.hero.pg-title h1{
	text-align: center;
}
.hero-blurb{
	color: #fff;
	font-size: 18px;
}

/* -------------------------------------------------- */
/* Intro
/* -------------------------------------------------- */
.intro{
	padding: 54px 0;
	background: #d9dfe5;
}
h2{
	background: url('/assets/images/hd-rule.svg') no-repeat left bottom;
	font-size: 24px;
	font-weight: 600;
	padding-bottom: 18px;
	margin-bottom: 18px;
}
h2.center{
	background-position: center bottom;
}

.cardlet{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	background: #fff;
}
.cardlet .img{
	width: 50%;
	padding-bottom: 37.5%;
	background: #00254f no-repeat center;
	background-size: cover;
}
.cardlet .text{
	width: 50%;
	padding: 54px;
}

/* -------------------------------------------------- */
/* Services
/* -------------------------------------------------- */
.services{
	padding: 54px 0 36px 0;
}
.center, 
.center p{
	text-align: center;
}
.center h2{
	background-position: center bottom;
	text-align: center;
}
.icon-list{
	display: flex;
	flex-wrap: wrap;
	margin: -3px;
	padding: 18px 0 36px 0;
}
.icon-list li{
	padding: 3px;
	width: 50%;
}
.icon-list li div{
	display: flex;
	align-items: center;
	height: 100%;
	border: 1px solid #d9dfe5;
	padding: 6px;
	font-weight: 500;
	font-size: 15px;
	line-height: 1.4em;
}
.icon-list .icon{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 48px;
	height: 48px;
	background: #00254f;
	margin-right: 9px;
}

/* -------------------------------------------------- */
/* Industries
/* -------------------------------------------------- */
.industries{
	padding: 54px 0;
	background: #d9dfe5;
}
.list{
	margin-bottom: 27px;
}
.list li{
	background: #edf0f3 url('/assets/images/bullet.svg') no-repeat 13px 20px;
	padding: 12px 15px 12px 31px;
	margin-bottom: 4px;
	line-height: 1.4em;
	font-weight: 500;
	font-size: 15px;
}
.list.cols-2{
	display: flex;
	flex-wrap: wrap;
	margin: -2px;
}
.list.cols-2 li{
	width: 50%;
	border: 2px solid #fff;
	margin: 0;
}

/* -------------------------------------------------- */
/* CTA
/* -------------------------------------------------- */
.cta-overlay{
	padding: 72px 0 54px 0;
	background: rgba(0,36,79,.9);
	color: #fff;
	text-align: center;
}
.cta h2{
	background: none;
	font-size: 36px;
	font-weight: 700;
	padding: 0;
	margin-bottom: 18px;
}
.cta p{
	font-size: 18px;
}

/* -------------------------------------------------- */
/* Services Page
/* -------------------------------------------------- */
.body{
	padding: 72px 0;
}
.cards{
	display: flex;
	flex-wrap: wrap;
	margin: -9px;
}
.card{
	width: 33.33%;
	padding: 9px;
}
.card-bg{
	height: 100%;
	background: #fff;
}
.card .img{
	width: 100%;
	padding-bottom: 56.25%;
	background: #00254f no-repeat center;
	background-size: cover;
}
.card .img.icon{
	background-size: 96px auto;
}
.card .text{
	padding: 27px;
}

/* -------------------------------------------------- */
/* Contact Page
/* -------------------------------------------------- */
.form{
	padding: 72px 0 0 0;
}
.form-row{
	margin-bottom: 18px;
}
label{
	font-size: 15px;
	font-weight: 600;
	display: block;
	margin-bottom: 6px;
}
input, 
textarea{
	font-family: 'Montserrat', Arial, sans-serif;
	font-size: 16px;
	color: #00254f;
	width: 100%;
	background: #fff;
	padding: 15px;
	border: none;
}

.alert{
	color: red;
}

/* -------------------------------------------------- */
/* Responsive video
/* -------------------------------------------------- */
.video { 
	position: relative; 
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
	max-width: 100%;
	height: auto;
} 
.video iframe, .video object, .video embed { 
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* -------------------------------------------------- */
/* Footer
/* -------------------------------------------------- */
footer{
	border-top: 1px solid #d9dfe5;
	padding: 36px 0 24px 0;
	font-size: 15px;
	text-align: center;
}
footer p{
	margin-bottom: 12px;
	line-height: 1.4em;
}
p.small{
	font-size: .8em;
}

/* -------------------------------------------------- */
/* Mobile Navigation
/* -------------------------------------------------- */
#page{
	background: #ffffff;
	position: absolute;
	z-index: 20;
	left: 0;
	width: 100%;
	background: #fff;
	-webkit-transition: left .25s; /* Safari */
	transition: left .25s;
}
#page.show{
	left: -240px;
}
.mnav{
	background: url('/assets/images/white-rudy-ko.svg') no-repeat center 18px;
	position: fixed;
	z-index: 10;
	height: 100vh;
	overflow-y: scroll;
	width: 240px;
	padding: 106px 9px 9px 9px;
	top: 0;
	right: 0;
}
.mnav li{
	margin-bottom: 6px;
}
.mnav a{
	display: block;
	text-align: left;
	color: #fff;
	font-weight: 500;
	text-decoration: none;
	padding: 12px;
	border: 1px solid rgba(255,255,255,.1);
	line-height: 1.4em;
}

/* -------------------------------------------------- */
/* Breakpoints
/* -------------------------------------------------- */
@media screen and (max-width: 1365px) {
	.cardlet .text{
		padding: 36px;
	}
}
@media screen and (max-width: 1279px) {
	.hero-text{
		margin: 0 auto;
		text-align: center;
	}
	h2{
		text-align: center;
		background-position: center bottom;
	}
	.cardlet{
		width: 100%;
		max-width: 800px;
		margin: 0 auto;
	}
	.cardlet .img,
	.cardlet .text{
		width: 100%;
	}
	.cardlet .img{
		padding-bottom: 56.25%; /* change to hd ratio */
	}
	.industries .cardlet{
		flex-wrap: wrap-reverse;
	}
	.card{ width: 50%; }
}
@media screen and (min-width: 951px) {
	#page.show{
		left: 0 !important;
	}
}
@media screen and (max-width: 950px) {
	.prime ul,
	.tools{
		display: none;
	}
	.btn-icon.toggle-mnav{
		display: block;
	}
}
@media screen and (max-width: 800px) {
	.card{ width: 100%; }
	.container{
		padding: 0 18px;
	}
	.cardlet .text{
		padding: 18px;
	}
	.hero-overlay{
		padding: 72px 0 54px 0;
	}
	.hero h1{
		font-size: 36px;
	}
	.cta-overlay{
		padding: 54px 0 36px 0;
	}
	.cta h2{
		font-size: 33px;
	}
	.intro, .services, .industries{
		padding: 18px 0;
	}
	.icon-list li, 
	.list.cols-2 li{
		width: 100%;
	}
}
@media screen and (max-width: 520px) {
	.logo{
		width: 125px;
	}
}