/* -------------------------------------------------- */
/* 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{position: absolute;left:-9999px;white-space:nowrap;}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{
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: #000000;
}
h1, h2, h3, h4{
	line-height: 1.2em;
	padding: 9px 0;
	font-weight: 600;
}
h2{ font-size: 33px; }
h3{ font-size: 27px; }
.rule,
.card-cols h2{
	background: url('/assets/images/hr.svg') no-repeat center bottom;
	padding: 0 0 18px 0;
	margin: 0 0 12px 0;
}
.rule.lt,
.card-cols h2{
	background-position: left bottom;
}

strong{
	font-weight: 700;
}
sup{
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
  top: -0.5em;
}
p{
	line-height: 1.8em;
	padding: 12px 0;
}
p.btns{
	display: flex;
	padding: 24px 0 12px 0;
	margin: 0 -6px;
}
p.center.btns{
	justify-content: center;
}
p.btns a{
	margin: 0 6px;
}
a{ color: #000; }
a:hover{ text-decoration: none; }
.center{ text-align: center; }
article{
	padding:  0 0 96px 0;
}
.bg{ background: #fff url('/assets/images/bg.png'); }
.bg-alt{ background: #e2f3fc url('/assets/images/bg-alt.png'); }
.dark-bg{ color: #fff; }

/* -------------------------------------------------- */
/* Containers
/* -------------------------------------------------- */
.container,
.container-med{
	width: 100%;
	max-width: 1600px;
	margin: 0 auto;
	padding: 0 24px;
}
.container-med{ max-width: 1080px; }

/* -------------------------------------------------- */
/* Lists
/* -------------------------------------------------- */
main ul{
	padding: 3px 0;
}
main li{
	text-align: left;
	background: url("/assets/images/dot.svg") no-repeat left 16px;
	padding: 6px 6px 6px 15px;
	line-height: 1.6em;
}
main li p{
	padding: 0;
}
main ul.two-cols{
	column-count: 2;
	column-gap: 48px;
}

/* -------------------------------------------------- */
/* Alert Ribbons
/* -------------------------------------------------- */
.alert-ribbon{
	background-color: #e2f3fc;
	padding: 3px 0;
	text-align: center;
	font-size: 14px;
}
.alert-ribbon,
.alert-ribbon a{
	color: #003b71;
}
.alert-ribbon p{
	padding: 6px 0;
	line-height: 1.4em;
}
.alert-ribbon2{
	background-color: #000;
	padding: 12px 0;
	text-align: center;
	font-size: 18px;
}
.alert-ribbon2,
.alert-ribbon2 a{
	color: #fff;
}
.alert-ribbon2 p{
	padding: 6px 0;
}

/* -------------------------------------------------- */
/* Header + Navigation
/* -------------------------------------------------- */
header{
	position: sticky;
	z-index: 100;
	top: 0;
	width: 100%;
	height: 108px;
	display: flex;
	align-items: center;
	background-color: #fff;
	border-bottom: 1px solid #efefef;
}
header .container{
	display: flex;
	align-items: center;
}
.logo{
	display: block;
	background: url('/assets/images/logo.svg') no-repeat;
	width: 240px;
	height: 60px;
	overflow: hidden;
}
.prime-nav{
	margin: 0 0 0 auto;
}
.prime-nav ul{
	display: flex;
	align-items: center;
	margin: -8px;
}
.prime-nav li{
	padding: 8px;
	position: relative;
}
.prime-nav a{
	display: block;
	font-size: 14px;
	padding: 8px 8px 0 0;
	text-decoration: none;
	letter-spacing: 1px;
	font-weight: 600;
	text-transform: uppercase;
	color: #000000;
	transition: color .25s;
	line-height: 1.2em
}
.prime-nav .hr{
	display: block;
	margin: 0;
	border: none;
	height: 8px;
	border-bottom: 2px solid transparent;
	transition: border-color .5s;
}
.prime-nav li:hover .hr,
.prime-nav a.active .hr,
a.text-btn:hover .hr{
	border-color: #fcaf17;
}

.prime-nav ul ul{
	display: block;
	visibility: hidden;
	opacity: 0;
	position: absolute;
	z-index: 500;
	width: 220px;
	left: 50%;
  transform: translate(-50%, 8px);
  transition: all .25s ease;
	padding: 12px 0;
	background: #fff;
	box-shadow: 0 0 6px rgba(0,0,0,.2);
	border-radius: 2px;
}
.prime-nav ul ul li{ 
	border-bottom: 1px solid #efefef;
	padding: 0; 
}
.prime-nav ul ul li:last-child{ border: none; }
.prime-nav ul ul a{
	text-align: center;
	text-transform: none;
	font-weight: 500;
	display: block;
	padding: 12px 0px;
	opacity: .5;
	letter-spacing: normal;
	font-size: 15px;
}
.prime-nav ul ul a:hover{
	opacity: 1;
}
.prime-nav ul li:hover ul{
	visibility: visible;
	opacity: 1;
	transform: translate(-50%, 14px);
}


/* -------------------------------------------------- */
/* Hero
/* -------------------------------------------------- */
.hero{
	background: #002b52 no-repeat center;
	background-size: cover;
	position: relative;
	align-items: center;
	padding: 192px 0; 
}
.hero-screen{
	background-color: rgba(0,0,0,.1);
	position: absolute;
	z-index: 0;
	width: 100%;
	top: 0;
	bottom: 0;
}
.hero-text{
	position: relative;
	z-index: 10;
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	text-align: center;
	text-shadow: 0 1px 0 rgba(0,0,0,.5);
}
.hero h1{ font-size: 80px; }

/* -------------------------------------------------- */
/* Button
/* -------------------------------------------------- */
a.btn, 
button.btn,
a.btn-xl,
button.btn-xl{
	display: inline-flex;
	align-items: center;
	font-family: 'Inter', sans-serif;
	background-color: transparent;
	border: 2px solid #000000;
	color: #000000;
	transition: color .25s, background-color .25s, border-color .25s;
	padding: 16px;
	font-size: 14px;
	font-style: normal;
	font-weight: 600;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 1px;
	line-height: 1em;
	text-shadow: none;
}
a.btn-xl,
button.btn-xl{
	font-size: 18px;
	padding: 18px;
}
.dark-bg a.btn,
.dark-bg button.btn,
.dark-bg a.btn-xl,
.dark-bg button.btn-xl{
	border-color: #fff;
	color: #fff;
}
a.btn:hover, 
button.btn:hover,
a.btn-xl:hover,
button.btn-xl:hover{
	cursor: pointer;
	color: #fff;
	background-color: #000000;
	border-color: #000000;
}
p.callout{
	font-family: 'Playfair Display', serif;
	font-size: 30px;
	font-style: italic;
	line-height: 1.2em;
}

/* -------------------------------------------------- */
/* Sections (shared)
/* -------------------------------------------------- */
.sec-hd{
	text-align: center;
	padding: 0 0 39px 0;
}
.sec-gen{
	padding: 96px 0;
}

/* -------------------------------------------------- */
/* Cards grid
/* -------------------------------------------------- */
.card-grid{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: -9px;
	padding: 0 0 24px 0;
}
.card-grid .card{
	padding: 9px;
	width: 33.33%;
}
.card-grid.cols-4 .card{
	width: 25%;
}
.card-grid .card-wrap{
	background: #fff;
	height: 100%;
	color: #000000;
	box-shadow: 0 0 9px rgba(0,0,0,.1);
	border-radius: 2px;
	overflow: hidden;
}
.card-grid img{
	width: 100%;
	height: auto;
}
.card-grid .card-text{
	padding: 15px 24px 24px 24px;
}
.card-grid .card-text h3{
	font-size: 18px;
	font-weight: 700;
}

/* -------------------------------------------------- */
/* Card columns
/* -------------------------------------------------- */
.card-cols{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
.card-cols.reverse{
	flex-direction: row-reverse;
}
.card-cols .card-img,
.card-cols .card-text{
	width: 50%;
}
.card-cols .card-text{
	padding: 0 24px 0 48px;
}
.card-cols.reverse .card-text{
	padding: 0 48px 0 24px;
}
.card-cols .card-text-container{
	width: 100%;
	max-width: 728px;
}
.card-cols.reverse .card-text-container{
	margin-left: auto;
}
.card-cols .card-img{ line-height: 0;}
.card-cols .card-img img{
	width: 100%;
	height: auto;
}

/* -------------------------------------------------- */
/* Contact
/* -------------------------------------------------- */
.sec-contact{
	border-top: 1px solid #efefef;
}
.cform{
	padding: 24px 0;
}
.cform input, 
.cform select{
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	color: #000;
	padding: 18px;
	background: #efefef;
	border: 2px solid #ccc;
	border: none;
	width: 100%;
}
.cform .form-row{
	padding: 0 0 12px 0;
}
.cform .form-cols{
	display: flex;
	flex-wrap: wrap;
	margin: -6px;
}
.cform .form-col{
	width: 50%;
	padding: 6px;
}
.cform label{
	font-size: 14px;
	font-weight: 700;
	display: block;
	padding: 0 0 6px 0;
}
.alert{
	background: #ffdfdf url('/assets/images/alert.svg') no-repeat 12px 12px;
	color: red;
	padding: 12px 12px 12px 42px;
	border-radius: 2px;
}
.alert.ok{
	background: #dffff3 url('/assets/images/check.svg') no-repeat 12px 12px;
	color: #176e51;
}

/* -------------------------------------------------- */
/* Testimony
/* -------------------------------------------------- */
.sec-testimony{
	padding: 72px 0 96px 0;
	background: #002b52;
}
.quotes-icon{
	width: 96px;
	height: 96px;
	background: #fcaf17 url('/assets/images/quotes.svg') no-repeat center;
	margin: 0 auto;
	border-radius: 48px;
}
.testimonies blockquote{
	text-align: center;
	padding: 24px 0 0 0;
}
.testimonies p.quote{
	font-family: 'Playfair Display', serif;
	font-size: 30px;
	font-style: italic;
	padding: 0 0 24px 0;
}
.testimonies .cite{
	background: url('/assets/images/hr-sm.svg') no-repeat center top;
	padding: 26px 0 9px 0;
}
.testimonies .cite strong{
	display: block;
	text-transform: uppercase;
	letter-spacing: 1px;
}
.glide__bullets{
	display: flex;
	justify-content: center;
	padding: 24px 0 0 0;
}
.glide__bullets button{
	margin: 0 3px;
	width: 12px;
	height: 12px;
	border-radius: 6px;
	background: #fff;
	opacity: .5;
}
.glide__bullets button.glide__bullet--active{
	opacity: 1;
}

/* -------------------------------------------------- */
/* Interior (shared)
/* -------------------------------------------------- */
.inside-head{
	padding: 48px 0;
	border-bottom: 1px solid #efefef;
}
.limit-width{
	width: 100%;
	max-width: 1292px;
}
.inside-head h1{
	font-family: 'Playfair Display', serif;
	font-size: 48px;
	font-weight: 400;
	font-style: italic;
}
.inside-head p{
	width: 100%;
	max-width: 728px;
}

/* -------------------------------------------------- */
/* Gallery, Floor Plans
/* -------------------------------------------------- */
.gallery{
	display: flex;
	flex-wrap: wrap;
	margin: -3px;
}
.gallery a{
	position: relative;
	overflow: hidden;
	width: 20%;
	padding: 3px;
}
.gallery a div{
	position: absolute;
	width: 100%;
	top: 0; bottom: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
}
.gallery a div span{
	width: 72px;
	height: 72px;
	background: rgba(0,0,0,.5);
	border-radius: 36px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.gallery img{
	width: 100%;
	height: auto;
}
.plans .card-grid img{
	padding: 48px 0 24px 0;
}
.plans .card-grid .card-text{
	text-align: center;
}
a.card-wrap{ 
	display: block; 
	text-decoration: none;
}
a.card-wrap .text-link{ text-decoration: underline; }
a.card-wrap .text-link:hover{ text-decoration: none; }

/* Glightbox overrides */

.goverlay{ background: #fff !important; }
.glightbox-clean .gslide-media{ box-shadow: none; }
.glightbox-clean .gprev,
.glightbox-clean .gnext,
.glightbox-clean .gclose{
	background: #000 !important;
	opacity: 1;
	width: 48px;
	height: 48px;
	border-radius: 0;
	color: #fff;
}
.glightbox-clean .gprev{ left: 24px; }
.glightbox-clean .gnext{ right: 24px; }
.glightbox-clean .gclose{ 
	right: 24px;
	top: 24px; 
}
.glightbox-clean .gdesc-inner{ padding: 12px; }
.glightbox-clean .gslide-desc,
.glightbox-clean .gslide-title{
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: #000000;
	text-align: center;
	line-height: 1.2em;
}
.glightbox-clean .gslide-description{
	background: transparent !important;
}
.glightbox-clean .gslide-title{
	font-weight: bold;
	padding: 0;
}
.gbtn.disabled{
	cursor: default;
	opacity: .25;
}
.glightbox-mobile .glightbox-container .gslide-description{
	display: none !important;
}

/* -------------------------------------------------- */
/* Events
/* -------------------------------------------------- */
.list-cards{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	margin: -9px;
}
.list-card{
	width: 100%;
	padding: 9px;
}
.list-card-wrap{
	display: flex;
	align-items: center;
	background: #fff;
	height: 100%;
	color: #000000;
	box-shadow: 0 0 9px rgba(0,0,0,.1);
	border-radius: 2px;
	overflow: hidden;
}
.list-card-img{
	line-height: 0;
}
.list-card-img img{
	width: 360px;
	height: auto;
}
.list-card-txt{
	padding: 24px;
}
.list-card-txt,
.list-card-txt p{
	line-height: 1.6em;
}
.list-card time,
.list-card address{
	background: url('/assets/images/calendar.svg') no-repeat left center;
	display: block !important;
	font-size: 15px;
	padding: 3px 0 3px 33px;
	display: inline-block;
	text-align: left;
}
.list-card time{
	text-transform: uppercase;
	font-weight: 700;
}
.list-card address{
	background-image: url('/assets/images/pin.svg');
}
.list-card hr{
	border: none;
	border-bottom: 1px solid #efefef;
	padding: 18px 0 0 0;
	margin: 0 0 12px 0;
}

/* -------------------------------------------------- */
/* Insight
/* -------------------------------------------------- */
.insights .list-cards h2 a{text-decoration: none;}
.insight img{
	width: 100%;
	height: auto;
}
.insight figure{
	line-height: 0;
	margin: 12px 0 24px 0;
}
.insight figure.half-width{
	width: 50%;
	float: right;
	margin-left: 24px;
}
.insight figcaption{
	padding: 6px 0;
	font-size: 14px;
	line-height: 1.4em;
	font-style: italic;
	opacity: .5;
}

/* -------------------------------------------------- */
/* Pagination
/* -------------------------------------------------- */
.pagination{
	padding: 48px 0;
}


/* -------------------------------------------------- */
/* Footer
/* -------------------------------------------------- */
footer{
	font-size: 14px;
	color: #fff;
}
footer .top-row{
	padding: 24px 0;
	background: #003b71;
}
footer .btm-row{
	padding: 12px 0;
	background: #002b52;
	text-align: center;
}
footer a{ color: #fff; }
.split-2-cols{
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	margin: -12px;
}
ul.li-icons{
	display: flex;
	align-items: center;
	justify-content: center;
	margin: -6px;
	padding: 12px;
}
ul.li-icons.no-links{ margin: -12px auto -12px -12px; }
ul.li-icons li{ padding: 6px; }
ul.li-icons.no-links li{ padding: 12px; }
ul.li-icons a{
	display: flex;
	align-items: center;
	justify-content: center;
	background: #002b52;
	height: 48px;
	width: 48px;
	border-radius: 24px;
}
@media screen and (max-width: 400px) {
	footer .split-2-cols{ justify-content: center }
	footer .split-2-cols ul{ width: 100%; }
	footer ul.li-icons.no-links{ margin: -12px; }
}

/* -------------------------------------------------- */
/* Mobile Nav
/* -------------------------------------------------- */
.mnav-toggle{
	position: relative;
	z-index: 101;
	width: 36px;
	height: 36px;
	color: #000;
	display: none;
	margin: 0 0 0 auto;
	shape-rendering: crispEdges;
}
.mnav-close{ display: none; }
.mnav{
	position: fixed;
	z-index: 100;
	background: #fff;
	top: 108px;
	right: 0;
	bottom: 0;
	left: 0;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	display: none;
	padding: 24px 0;
}
.mnav ul.li-icons{
	margin-top: auto;
}
.mnav ul.li-icons a{
	color: #fff;
	background: #000;
}
body.show{ overflow: hidden; }
body.show .mnav{ display: flex; }
body.show .mnav-open{ display: none; }
body.show .mnav-close{ display: block; }
body.show .alert-ribbon{ display: none; }
.mnav ul.li-mnav{
	width: 100%;
}
.mnav ul.li-mnav a{
	text-align: center;
	display: block;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 2px;
	padding: 24px;
	border-bottom: 1px solid #efefef;
}

/* -------------------------------------------------- */
/* Breaking Points
/* -------------------------------------------------- */
@media screen and (max-width: 1599px) {
	.card-cols{
		align-items: flex-start;
	}
}
@media screen and (max-width: 1279px) {
	.card-cols .card-img{ width:34%; }
	.card-cols .card-text{ width: 66%; }
}
@media screen and (max-width: 1079px) {
	.prime-nav{ display: none; }
	.mnav-toggle{ display: block; }
	.card-grid .card,
	.plans .card-grid .card{ width: 50%; }
}
@media screen and (min-width: 1078px) {
	.prime-nav{ display: block; }
	body.show .mnav{ display: none; }
	.mnav-toggle{ display: none; }
}
@media screen and (max-width: 900px) {
	.card-cols .card-img,
	.card-cols .card-text,
	.card-cols .card-text-container{ 
		width: 100%; 
		max-width: 100%;
	}
	.card-cols .card-text,
	.card-cols.reverse .card-text{ padding: 24px; }
}
@media screen and (max-width: 800px) {
	p.callout{ font-size: 27px; }
	h2{ font-size: 30px; }
	.hero{ padding: 96px 0; }
	.hero h1{ font-size: 48px; }
	.testimonies p.quote{ font-size: 24px; }
	.gallery a{ width: 25%; }
	footer .top-row-cols p,
	footer .top-row-cols ul,
	footer .btm-row ul li{ 
		text-align: center;
		width: 100%;
	}
	footer ul.social{ padding: 24px 0 0 0; }
	.list-card-wrap{ display: block; }
	.list-card-txt p.btns{ justify-content: center; }
	.list-card-img{ 
		text-align: center;
		padding: 24px 24px 0 24px; 
	}
}
@media screen and (max-width: 700px) {
	.card-grid .card,
	.plans .card-grid .card{ width: 100%; }
	.cform .form-col{ width: 100%; }
}
@media screen and (max-width: 600px) {
	.gallery a{ width: 50%; }
	.insight figure.half-width{
		float: none;
		width: 100%;
		margin-left: 0;
	}
}
@media screen and (max-width: 480px) {
	.list-card-img{ padding: 0; }
	.list-card-img img{ 
		width: 100%;
	}
}