/**** Reset ****/
* {
    font-size: 0;
    list-style: none;
    margin: 0;
    outline: 0;
    padding: 0;
    text-decoration: none;
    box-sizing: border-box;
}

article, aside, details, figcaption, figure, footer, header,
hgroup, main, nav, section, summary {
	display: block;
}

img {
    max-width: 100%;
    max-height: 100%;
}

/* Base settings */
html {
	background: #494949;
	color: #444;
	font: 18px/1.5 "Kreon", serif;
	text-align: center;
}

a {
	text-decoration: none; 
	transition: all .2s linear;
}

a:hover {
	opacity: .8;
}

	
ol, ul {list-style: none;}

p, span, a, li, ol, strong, em { font-size: 18px; }

.video {
	position: relative;
	padding-bottom: 56.25%;
	padding-top: 25px;
	height: 0;
	text-align: center;
	background:url("images/loading.gif") no-repeat top center;
}

.video iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	max-width: 800px;
}

h1, h2, h3, h4 {
	color: #494949;
	font: 15px/1.1 "Oleo Script", cursive;
	margin: 0 0 15px; 
}
	
h1 { font-size: 48px; }
h2 { font-size: 40px; }	
h3 { font-size: 34px; }
h4 { font-size: 30px; }	

@media ( max-width: 1000px) {
	h1 { font-size: 40px; }
	h2 { font-size: 32px; }	
	h3 { font-size: 26px; }
	h4 { font-size: 22px; }	
}

@media ( max-width: 600px) {
	h1 { font-size: 32px; }
	h2 { font-size: 24px; }	
	h3 { font-size: 18px; }
	h4 { font-size: 14px; }	
	p, span, a, li, ol, strong, em { font-size: 14px; }
}


hr {
	height: 1px;
	background-color: #999;
	margin: 50px 0;
	border: none;
}

.flex { display: flex; max-width: 1200px; margin: auto; }
.flex .item { flex: 1; padding: 10px; }

.services { flex-flow: wrap; }
.services img { 
	background: #fff;
	border-radius: 50%;
}

@media ( max-width: 650px) { 
	.services .item { flex: 0 0 50%; }
	.services h4 { font-size: } 

	.flex:not(.services) { flex-flow: wrap; }
	.flex:not(.services) .item { flex: 0 0 100%; text-align: center; margin: 10px 0;}

	.flex img { max-width: 400px; width: 100%; }
}


/**** Header ****/

header {
	background: url("/img/pattern.jpg") #ccc;
	text-align: left;
}	

.top {
	height: 32px;
	background: #ce7c11;
	text-align: right;
	padding: 5px 10px;
}	

.top a {
	display: inline-block;
	margin-left: 20px;
	color: #fff;
	vertical-align: middle;
	line-height: 1;
}

.top a:before {
	vertical-align: middle;
}

.top a.phone:before { content: url("/img/phone.svg"); padding-right: 4px; }
.top a.map:before { content: url("/img/pin.svg"); }
.top a.payment:before { content: url("/img/money.svg");	}

.logo {
	width: 400px;
	display: inline-block;
	padding: 10px;
	vertical-align: middle;
	line-height: 1;
}

nav { display: inline-block; width: calc(100% - 405px); vertical-align: middle; }

nav ul { display: flex; align-items: center; }

nav ul li {
    position: relative;
    flex: auto;
}

nav li a {
  font-size: 18px;
  font-family: "Quicksand", sans-serif;
  color: #000;
  display: block;
  padding: 10px 16px;
  text-align: center;
  cursor: pointer;
}

nav a:hover { color: #ce7c11; opacity: 1; }


nav li ul {
  display: none;
  position: absolute;
  background: #ccc;
  top: 45px;
  width: auto;
  box-shadow: 0 10px 20px #000;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}

nav li ul a { white-space: nowrap; text-align: left; }

nav li a:not([href]) { 
  position: relative; 
  padding-right: 24px;
}

nav li a:not([href]):after {
  transition: all .2s ease-in-out;
  content: "\25BC";
  position: absolute;
  color: #000;
  margin: auto 0 auto 5px;
  font-size: 16px;
  height: 20px;
  top: 0;
  bottom: 0;
}

nav li a:not([href]):hover:after { color: #ce7c11; }

nav li a.dropped:after { transform: rotate(180deg); } 

.mobile-open, nav .buttons { display: none; }

.mobile-only { display: none; }

@media ( max-width: 1200px) {
  .logo { width: 300px; }
  nav { width: calc(100% - 305px); }
}

@media ( max-width: 1000px) {
	.top { display: none; }
	header { display: block; height: 60px; }
	header .item { display: block; }
	.logo { width: 100%; padding: 10px 20px 10px 80px; text-align: center; height: 60px; }
	.logo img { height: 100%; width: 100%; object-fit: contain; }

	header nav {
	  position: fixed;
	  top: 60px;
	  left: -100%;
	  width: 100%;
	  flex: none;
	  transition: all .2s linear;
	  z-index: 12;
	  max-width: none;
	  height: 100%;
	  background: #eee;
	  overflow: auto;
	}

	html.open header nav { left: 0; }

	.buttons { display: block; border: solid 1px #424242; }
	.buttons a { display: inline-block; border: solid 1px #424242; }

	nav ul { display: block; }

	nav ul li  {
	  display: block;
	  font-size: 0;
	}

	nav li a {
	  display: block;
	  padding: 20px;
	}

	nav li ul li a { text-align: center; }

	.mobile-open
	{
		display: block;
		position: absolute;
		z-index: 15;  
		user-select: none;
		transition: opacity .2s linear;
		left: 20px;
		top: 20px;
		cursor: pointer;
	}

	.mobile-open span
	{
		display: block;
		width: 33px;
		height: 4px;
		margin-bottom: 5px;    
		background: #000;
		border-radius: 3px;      
		z-index: 1;      
		transform-origin: 4px 0px;      
		transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
		            background 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
		            opacity 0.55s ease;
	}

	.mobile-open span:first-child { transform-origin: 0% 0%; }
	.mobile-open span:nth-last-child(2)	{ transform-origin: 0% 100%; }
	html.open .mobile-open span:first-child	{ opacity: 1; transform: rotate(45deg) translate(0, -4px); }
	html.open .mobile-open span:nth-child(2) { opacity: 0; transform: rotate(0deg) scale(0.2, 0.2);	}
	html.open .mobile-open span:last-child { transform: rotate(-45deg);	}
	html.open {	overflow: hidden; }

	nav li ul {
	  position: initial;
	  width: 100%;
	  transition: none;
	  box-shadow: none;
	  transform: none;
	}

	header nav li:hover ul, header nav li:focus ul { display: none; }

	.mobile-only { display: block; }
	.no-mobile { display: none !important; }

	header .item:first-child { padding: 0 20px; }

	.mobile-only { display: block; }
	.no-mobile { display: none !important; }

}


/**** Home ****/
#banner {
	background: url("/img/building-2025.webp") no-repeat center;
	background-size: cover;
	height: 600px;
}

.tagline {
	padding: 50px;
	background: rgba(0, 0, 0, .4);
	height: 100%;
}

.tagline h1 { color: #fff; position: relative; top: 30%; font-size: 50px; }

@media ( max-width: 600px) { 
	#banner { height: 300px; }
	.tagline { padding: 20px; }
	.tagline h1 { top: 20px; font-size: 32px; }
}

section { padding: 20px; }
section:nth-child(even) { background: url(/img/pattern.jpg) #eee; }
section:nth-child(odd) { background: #fff; }

.partners a { display: inline-block; margin: 40px; }
.partners img {	height: 40px; }

/**** Main ****/
main { background: #fff; }
.home p { max-width: 800px; text-align: left; margin: 20px auto; }
p a, .link { color: #ce7c11; text-decoration: underline; }
p a:hover, .link { color: #e58e1a;	}

.banner { max-height: 400px; width: 100%; object-fit:cover; }

.page {
	max-width: 1000px;
	margin: auto;
	padding: 20px;
}

.page p { text-align: left;}

.fixed, .dynamic { display: inline-block; vertical-align: top; }
.fixed { width: 256px; padding-right: 10px; }
.dynamic { width: calc(100% - 260px); padding-left: 10px; text-align: left; }
@media ( max-width: 600px) {
	.fixed, .dynamic { display: block; padding: 0; margin: 20px 0; width: 100%; }
	.fixed img { max-width: 400px; width: 100%; }
}

.round { border-radius: 10px; }

.page > h1 { margin: 20px 10px 40px; padding-bottom: 5px; border-bottom: solid 1px #424242; }

/**** Footer ****/

footer {		
	padding: 20px;
	font-size: 16px;
	color: #fff;
}	

footer h4 {	color: #fff; }
footer p { margin-bottom: 10px; }
footer p a { color: #ffc87e; text-decoration: none; }

footer .item { text-align: center; }
footer .item:first-child { text-align: left; }
footer .item:last-child { text-align: right;}


.hours { font-family: monospace; }

/* Google Reviews */
#map-plug {display:none;}

.review-item {
	display: inline-block;
	width: 33.33%;
	max-width: 400px;
	padding: 10px;
	box-sizing: border-box;
	vertical-align: top;
}



.review-meta, .review-stars {text-align:center;}
.review-author { text-transform: capitalize; font-weight:bold; }
.review-date {opacity:.6; display:block;}

.review-text {
	line-height: 1.5;
    font-size: 16px;
}

.review-stars ul {
display: inline-block;
list-style: none !important;
margin:0; padding:0;
}

.review-stars ul li {
float: left;
list-style: none !important;
margin-right: 1px;
line-height:1;
}

.review-stars ul li i {
  color: #ce7c11;
  font-size: 1.4em;
  font-style:normal;
}

.review-stars ul li i.inactive { color: #c6c6c6;}
.star:after { content: "\2605"; }

/**** Cognito Form ****/
@keyframes rotate {
    from {
        transform: rotateZ(0deg)
    }

    to {
        transform: rotateZ(360deg)
    }
}

.cognito {
    font-size: 18px;
    line-height: 1;
    padding: 10px;
    background: rgba(255,255,255,.5);
}

.cognito * {
    font-size: 18px;
}

.cognito .loader img {
    animation: rotate 1s infinite linear;
}

.cognito .loader {
    text-align: center;
}

.cognito form + div {
    visibility: hidden;
}

.cognito input, .cognito select, .cognito textarea, .cognito label option {
    padding: 4px;
}

.cognito button {
    font-size: 29px;
    border-radius: 0px !important;
    border: none !important;
    float: none !important;
    width: 100% !important;
    background: #333 !important;
    margin: 10px 0 !important;
    color: #fff !important;
    font-size: 30px !important;
    padding: 12px !important;
    transition: all .4s ease-in-out;
    font-family: "Big Shoulders Text", sans-serif
}

.cognito button:hover, .cognito button:focus, .cognito button:active {
    background: #e58e1a !important;
}

.cognito .c-action {
    float: none;
}

.cognito button.loading {
    background: #555 url("loading-light.svg") 20px center / 20px 20px no-repeat !important;
}

.cognito .c-forms-confirmation-message {
    background: #ccffcc;
    padding: 8px !important;
    border-radius: 10px;
}

.cognito .c-button-section { padding: 0 !important; }
.cognito .c-forms-heading h2 { font-size: 30px; }

@media ( max-width: 768px) {
  .review-item { width: 100%; }
}