:root {
	--white: #FFF;
	--cream: #F8F6F2;
	--black: #322D28;
	--light-grey: #EDEDED;
	--dark-grey: #322D28;
}

html {
  scroll-behavior: smooth;
}

a {
	color: var(--orange);
}

a:hover {
	text-decoration: underline;
}

.container {
	max-width: 100% !important;
}

hr {
	border-top: 1px solid var(--cream) !important;
}

/* ----------------------------------------------------- Background Styles ------------------------------------------------- */
.bg-light-grey {
	background-color: var(--light-grey);
}
.bg-dark-grey {
	background-color: var(--dark-grey);
}
.bg-cream {
	background-color: var(--cream);
}
.bg-dark-grey p, .bg-dark-grey a, .bg-dark-grey h1, .bg-dark-grey h2, .bg-dark-grey h3, .bg-dark-grey h4, .bg-dark-grey h5, .bg-dark-grey h6, .bg-dark-grey li, .bg-dark-grey i {
	color: var(--white);
}

.bg-centered {
    background-position: center center;
    background-repeat: no-repeat;
	background-size: cover;
}
.bg-center-bottom {
    background-position: center bottom;
    background-repeat: no-repeat;
	background-size: cover;
}
.bg-center-top {
    background-position: center top;
    background-repeat: no-repeat;
	background-size: cover;
}

/* ----------------------------------------------------- Menu Styles ------------------------------------------------- */



.menu ul li ul {
	position:absolute;
	left:-999em;
	z-index:9999 !important;
	margin: 0 0 0 -25px;
	width: max-content;
	text-align: left;
	padding-top: 10px;
	padding-bottom: 10px;
	background-color: var(--dark-grey);
	font-family: "Montserrat", sans-serif;
}
.menu ul li ul li {
	display: block;
	margin-bottom: 0;
}
.menu ul li:hover ul, .menu ul li ul:hover {
	left:auto;
}

.menu li > a:after {
    content: '  ▾';
	vertical-align: 1px;
}
.menu li > a:hover:after {
    color: #444;
    content: '  ▾';
	vertical-align: 1px;
}
.menu li > a:only-child:after {
    content: '';
}
.menu ul {
	padding: 0px;
	margin: 0;
}
.menu li {
	list-style: none;
	display: inline-block;
	padding: 3px 15px;
	margin-left: 10px;
	background-image: none;
	margin-bottom: 10px;
}
.menu a {
	color: var(--cream);
	text-decoration: none;
	font-family: "Montserrat", sans-serif;
}
.menu a:hover {
	color: var(--cream);
	text-decoration: underline;
}

.menu li { position: relative; }


/* ----------------------------------------------------- Header And Banner Image Styles ---------------------------------------------------------------- */

header {
	/*position: absolute;*/
	width: 100%;
	top: 0;
	left: 0;
	right: 0;
	/*padding: 50px 5%;*/
}
header .logo {
	margin-top: 5%;
}
.logo {
	max-width: 380px;
	min-width: 250px;
	z-index: 99999;
	position: relative;
}
.home-header {
	min-height: 50vh;
	align-items: center;
}
.page-header {
	background-size: contain; 
	background-repeat: no-repeat; 
	background-position: right;
}





/* ----------------------------------------------------- Generic Content Styles ---------------------------------------------------------------- */

.content-padding {
	padding: 5%;
}
.content-padding-sm {
	padding: 2.5% 5%;
}
.content-padding-sm-sides {
	padding: 2.5%;
}
.content-margin {
	margin: 5% 0;
}
.min-height {
	min-height: 350px;
}
.content-padding-lrg-sides {
	padding: 5% 15%;
}
.content-padding-left-desktop {
	padding-left: 40px;
}

.overlay {
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.5));
}

.banner-image-text {
  color: var(--white);
  font-weight: 400;
  font-size: 35px;
  line-height: initial;
	text-align: center;
	padding: 10%;
}

.banner-image {
    width: 100%;
    height: auto;
    /*min-height: 65vh;*/
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    flex-direction: column;
    position: relative;
	background-blend-mode: multiply;
}

.banner-overlay {
    position: absolute;
    bottom: 0;
    background-image: linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(0,0,0,0.5));
    width: 100%;
    color: #fff;
    height: 100%;
}
.banner-overlay *, .banner-image * {
	color: #fff;
}


/* ----------------------------------------------------- Home Hero Styles ----------------------------------------------------- */

#video-container {
  position: relative;
  /*padding-bottom: 56.25%;*/
  padding-bottom: 51.5%;
  height: 0;
  width: 100%;
  overflow: hidden;
}
#video-container iframe {
  position: absolute;
  top: 0%;
  left: -5%;
  width: 110%;
}


#video-container video-youtube-inner {
 position: absolute;
  top: 0%;
  left: -5%;
  width: 110%;
}

#home_hero {
	display: flex;
	align-items: flex-end;
	position: relative;
	padding: 0;
	/*padding: max(7%, 40px) 5% 5% 5%;*/
}

.header-text {
	padding: 20px; /*was 6%*/
}
.video-content.header-text {
	padding: 2% 6%;
}

#home_hero * {
	transition-duration: 0.3s !important;
}
.overlay {
	width: 100%; 
	height: 100%; 
	background-color: #000; 
	background-color: rgba(0,0,0,0.40);
}
.overlay-gradient {
	width: 100%; 
	height: 50%; 
	bottom: 0;
	background-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.6));
	margin-left: -15px;
}
#home_hero .image-on-hover {
	z-index: -1;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #9BA4AD;
	opacity: 0;
	will-change: opacity;
}
#home_hero .image-on-hover.active {
	opacity: 1;
}

#home_hero h1 {
	max-width: 1500px;
	color: var(--white) !important;
}
#home_hero h1 a {
	text-decoration: none !important;
	color: var(--white) !important;
}

#home_hero.service2-active h1 *, #home_hero.service1-active h1 *, #home_hero.service3-active h1 *,
#home_hero.service2-active .accordion-tab *, #home_hero.service1-active .accordion-tab *, #home_hero.service3-active .accordion-tab * {
	color: var(--white) !important;
}
#home_hero.service-active h1 *:not(#service2_btn), #home_hero.service1-active h1 *:not(#service1_btn), #home_hero.service3-active h1 *:not(#service3_btn) {
	opacity: 0.22 !important;
}


.home-hero-content {
	display: flex;
	justify-content: space-between;
	width: 100%;
	height: 100%;
}
.video-content {
	width: 60%;
	height: auto;
	top: 46%;
}

.home-hero-content #title {
	width: 60%;
	position: absolute;
  	bottom: 7%;
	margin-bottom: 0;
	font-size: 70px;
}
.video-content #title {
	font-size: 3vw;
}


.home-hero-content-home #title {
	width: 60%;
	position: absolute;
  	bottom: 5%;
	margin-bottom: 0;
	font-size: 40px;
}


.home-hero-content #buttons {
	width: 30%;
	display: flex;
	justify-content: center;
	position: absolute;
	bottom: 7%;
  	right: 5%;
}

.header-title-mobile {
		display: none;
	}

#home_services {
	min-height: 80vh;
	display: flex;
	align-items: flex-end;
	position: relative;
	padding: max(7%, 40px) 5% 5% 5%;
}
#home_services * {
	transition-duration: 0.3s !important;
}
.overlay {
	width: 100%; 
	height: 100%; 
	background-color: #000; 
	background-color: rgba(0,0,0,0.40);
}
.overlay-gradient {
	width: 105%; 
	height: 100%;
	background-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.8));
	margin-left: -15px;
}

.overlay-gradient-home {
	background-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.2));
}

.overlay-gradient-video {
	background-image: linear-gradient(to right, rgba(0,0,0,0.2), rgba(0,0,0,0));
}

#home_services .image-on-hover {
	z-index: -1;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #9BA4AD;
	opacity: 0;
	will-change: opacity;
	overflow: hidden;
}
#home_services .image-on-hover.active {
	opacity: 1;
}
#home_services .text-on-hover {
	opacity: 0;
	position: absolute;
	left: 5%;
	bottom: 100px;
	width: 50%;
}
#home_services .text-on-hover.active {
	opacity: 1;
}

#home_services h2 {
	max-width: 1500px;
	color: var(--white) !important;
	font-size: 55px;
}
#home_services h2 a {
	text-decoration: none !important;
	color: var(--white) !important;
}

#home_services.service2-active h1 *, #home_services.service1-active h1 *, #home_services.service3-active h1 *,
#home_services.service2-active .accordion-tab *, #home_services.service1-active .accordion-tab *, #home_services.service3-active .accordion-tab * {
	color: var(--white) !important;
}
#home_services.service2-active h1 *:not(#service2_btn), #home_services.service1-active h1 *:not(#service1_btn), #home_services.service3-active h1 *:not(#service3_btn) {
	opacity: 0.22 !important;
}


.home-services-content {
	display: flex;
	justify-content: space-between;
	width: 100%;
}

.home-services-content #title {
	/*width: 60%;*/
	padding-right: 5%;
}
.home-services-content #buttons {
	width: 40%;
	display: flex;
	justify-content: center;
	padding-bottom: 100px;
	position: absolute;
	right: -8%;
	bottom: 20px;
}


/* ----------------------------------------------------- Button and A Styles ---------------------------------------------------------------- */

a.button  {
	text-align: center;
	color: var(--white);
	font-weight: bold;
	font-size: 16px;
	padding: 8px 15px;	
	text-decoration: none !important;
}

button  {
	font-family: "Montserrat", sans-serif;
	text-align: center;
	font-weight: 400;
	font-size: 16px;
	padding: 8px 20px;	
	text-decoration: none !important;
	border: none;
	transition-property: all;
    transition-duration: 500ms;
	cursor: pointer;
 }
button:hover {
	color: #fff;
}

.btn-grey  {
	background-color: var(--dark-grey) !important;
	color: var(--cream) !important;
}
.btn-grey:hover  {
	background: var(--cream) !important;
	color: var(--dark-grey) !important;
}

.btn-cream  {
	background-color: var(--cream) !important;
	color: var(--dark-grey) !important;
}
.btn-cream:hover  {
	background: var(--dark-grey) !important;
	color: var(--cream) !important;
}



/* ----------------------------------------------------- FAQ Styles ------------------------------------------------- */


.accordion-container {
	display: flex;
}
.accordion {
	width: 50%;
}

.accordion .accordion-item {
  border-bottom: 1px solid var(--dark-grey);
	width: calc(100% - 40px);
}
.accordion .accordion-item button[aria-expanded='true'] {
}
.accordion button {
  position: relative;
  display: block;
  text-align: left;
  width: 100%;
  padding: 1em 0;
  color: var(--green);
  font-size: 1.15rem;
  font-weight: 400;
  border: none;
  background: none;
  outline: none;
}
.accordion button:hover, .accordion button:focus {
  cursor: pointer;
}
.accordion button:hover::after, .accordion button:focus::after {
  cursor: pointer;
  border: 1px solid var(--dark-grey);
}
.accordion button .accordion-title {
  padding: 1em 1.5em 0 0;
}
.accordion button .icon {
  display: inline-block;
  position: absolute;
  top: 50%;
	transform: translateY(-50%);
  right: 0;
  width: 22px;
  height: 22px;
}
.accordion button .icon::before {
	display: block;
	position: absolute;
	content: '\f078';
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	transition-duration: 0.4s;
	color: var(--dark-grey);
}
.accordion button[aria-expanded='true'] {
  color: var(--green);
}
.accordion button[aria-expanded='true'] .icon::before {
	transform: rotate(-180deg);
	transition-duration: 0.4s;
}
.accordion button[aria-expanded='true'] + .accordion-content {
  opacity: 1;
  /*max-height: 9em;*/
  max-height: max-content;
  -webkit-transition: all 200ms linear;
  transition: all 200ms linear;
  will-change: opacity, max-height;
	padding-bottom: 30px;
}
.accordion .accordion-content {
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  -webkit-transition: opacity 200ms linear, max-height 200ms linear;
  transition: opacity 200ms linear, max-height 200ms linear;
  will-change: opacity, max-height;
}
.accordion .accordion-content p {
  font-weight: 300;
}





/* ----------------------------------------------------- Footer Styles ---------------------------------------------------------------- */
footer {
	/*background-color: var(--light-grey);*/
	clear: both;
}
footer p, footer a {
	font-size: 15px;
}

/* ----------- Plugin Overwrite Styles ----------- */

/* ----------- Ninja Forms Styles ----------- */
.nf-form-content {
	padding: 0 !important;
}
.nf-form-fields-required {
	font-size: 13px;
	margin-bottom: 5px;
}
.nf-field-element input, .nf-field-element select, .nf-field-element textarea {
	padding: 8px !important;
}
#ninja_forms_required_items, .nf-field-container {
	margin-bottom: 10px !important;
}
[type="reset"], [type="submit"], html [type="button"] {
	text-align: center;
	background-color: var(--black);
	color: var(--white);
	font-weight: 700;
	font-size: 16px;
	padding: 8px 20px;	
	text-decoration: none !important;
	border: none;
	transition-property: all;
    transition-duration: 500ms;
	cursor: pointer;
	border-radius: 50px;
	text-transform: uppercase;
	width: 100% !important;
}
[type="reset"]:hover, [type="submit"]:hover, html [type="button"]:hover {
	background-color: var(--orange);
}

        
/* ----- Meta Slider Plugin ----- */

.slides {
	padding: 0px !important;
}

.ms-image {
	display: block !important;
	position: relative !important;
}

.ms-image img {
	height: 100%;
	object-fit: cover;
	object-position: center;
	width: 100%;
	background-color: rgba(0,55,98,0.65);
}

/* Ensure MetaSlider provides a stacking context */
.metaslider,
.metaslider .flexslider {
	position: relative;
	z-index: 1;
}

/* Caption layer MUST be above gradient */
.metaslider .caption-wrap {
	background: none !important;
	opacity: 1 !important;
	width: 100% !important;

	position: absolute;      /* make sure it sits over the slide */
	left: 0;
	top: 0;
	z-index: 20 !important;  /* higher than the gradient */
}

.caption-wrap .caption {
	/* Your old absolute positioning commented out is fine */
	padding: 20% !important;
  padding-left: 5% !important;
	width: auto;
	color: white !important;
	font-size: 35px;
	line-height: initial;
	text-align: left;

	position: relative;
	z-index: 21; /* ensure inner text stays above too */
}

.caption-wrap .caption p {
	color: white !important;
	margin-bottom: 15px !important;
	font-size: 25px;
	font-family: "Montserrat", sans-serif;
}

.caption-wrap .caption h1 {
	color: white !important;
	font-size: 60px;
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.45);

}

.metaslider .flexslider .slides > li img {
	height: inherit;
}

.metaslider a {
	font-family: "Montserrat", sans-serif;
	text-align: center;
	font-weight: 400;
	font-size: 16px;
	padding: 8px 20px;	
	text-decoration: none !important;
	border: none;
	transition-property: all;
    transition-duration: 500ms;
	cursor: pointer;
}

.metaslider a.btn-grey  {
	background-color: var(--dark-grey) !important;
	color: var(--cream) !important;
}
.metaslider a.btn-grey:hover  {
	background: var(--cream) !important;
	color: var(--dark-grey) !important;
}

.metaslider a.btn-cream  {
	background-color: var(--cream) !important;
	color: var(--dark-grey) !important;
}
.metaslider a.btn-cream:hover  {
	background: var(--dark-grey) !important;
	color: var(--cream) !important;
}

/* --- Gradient layer: must sit ABOVE image but BELOW caption --- */

/* Make this an overlay context */
.metaslider-gradient {
	position: relative;
	z-index: 5; /* middle layer container */
}

/* Put the gradient below the caption (caption is 20) */
.metaslider-gradient::before,
.metaslider-gradient::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 35%;
	pointer-events: none;

	z-index: 10; /* below caption (20), above slide */
}

/* Top: black → transparent */
.metaslider-gradient::before {
	top: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.75),
		rgba(0, 0, 0, 0)
	);
}

/* Bottom: black → transparent */
.metaslider-gradient::after {
	bottom: 0;
	background: linear-gradient(
		to top,
		rgba(0, 0, 0, 0.95),
		rgba(0, 0, 0, 0)
	);
	z-index: 10;
}

.ms-theme-highway {
	padding-bottom: 0 !important;
}


/* ----------- Overwrite Bootstrap Styles ----------- */
.sticky-top {
	top: 25px !important;
}
.hidden-desktop {
	display: none !important;
}

/* ----------------------------------------------------- 2200px + ---------------------------------------------------------------- */

@media only screen and (min-width : 2200px) {
}


/* ----------------------------------------------------- Smaller than 2200px ----------------------------------------------------- */

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


/* ----------------------------------------------------- Smaller than 1800px ----------------------------------------------------- */

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


/* ----------------------------------------------------- Smaller than 1750px ----------------------------------------------------- */

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


/* ----------------------------------------------------- Smaller than 1650px ----------------------------------------------------- */

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


/* ----------------------------------------------------- Smaller than 1550px ----------------------------------------------------- */

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


/* ----------------------------------------------------- Smaller than 1450px ----------------------------------------------------- */

@media only screen and (max-width : 1450px) {
	.team-btn-pos-abs {
		left: 0;
	}

}


/* ----------------------------------------------------- Smaller than 1350px ----------------------------------------------------- */

@media only screen and (max-width : 1350px) {
	/*.lozenge {
		max-width: 95%;
	}*/
}


/* ----------------------------------------------------- Smaller than 1250px ----------------------------------------------------- */

@media only screen and (max-width : 1250px) {
	.header-circle-image {
		width: 270px;
  		height: 270px;
	}
} 

/* ----------------------------------------------------- Bigger than 1126px ----------------------------------------------------- */
@media only screen and (min-width : 1126px) {
	
}

/* ----------------------------------------------------- Smaller than 1125px ----------------------------------------------------- */

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

}


/* ----------------------------------------------------- Smaller than 1080px ----------------------------------------------------- */
@media only screen and (max-width : 1080px) {
	.lozenge h4 {
		font-size: 28px;
	}
	.header-circle-image {
		width: 250px;
  		height: 250px;
	}
}


/* ----------------------------------------------------- Smaller than 1024px - iPad landscape ----------------------------------------------------- */

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


/* ----------------------------------------------------- Smaller than 991px ------------------------------------------------------ */

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

}

/* ----------------------------------------------------- Smaller than 870px ------------------------------------------------------ */

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


}

/* ----------------------------------------------------- Smaller than 800px ------------------------------------------------------ */

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

}


/* ----------------------------------------------------- Smaller than 768px - iPad portrait ------------------------------------------------------ */

@media only screen and (max-width : 768px) {
	.hidden-mobile {
		display: none !important;
	}
	.hidden-desktop {
		display: block !important;
	}
	.mobile-center {
		text-align: center !important;
	}
	.mobile-left {
		text-align: left !important;
	}
	.logo {
		max-width: 170px;
	}	
	.page-header {
		background-size: 138%; 
		background-position: top right 110%;
	}
	.home-header {
		padding-top: 12% !important;
	}
	.content-padding-sm, .content-padding-sm-sides {
		padding: 5%;
	}
	button {
		margin-bottom: 10px;
		font-size: 15px;
	}
	.lozenge-orange {
		margin-bottom: 20px;
	}
	.changing-content-tabs .nav-bar-4col li {
		font-size: 19px;
	}
	#nav_tab_1_content, #nav_tab_2_content, #nav_tab_3_content, #nav_tab_4_content, #nav_tab_5_content, #nav_tab_1_content_mobile, #nav_tab_2_content_mobile, #nav_tab_3_content_mobile, #nav_tab_4_content_mobile, #nav_tab_5_content_mobile {
		display: block;
	}
	.accordion button .accordion-title {
		font-size: 18px;
	}
	.accordion-container {
		flex-wrap: wrap
	}
	.accordion {
		width: 100%;
	}
	.accordion .accordion-item {
		width: calc(100%);
		margin: 10px 0px;
	}
	.content-padding-left-desktop {
		padding-left: 15px;
	}
	.padding-top-mobile {
		padding-top: 5%;
	}
	.border-right {
		border: none !important;
	}
	.sp-testimonial-free-section .sp-testimonial-client-testimonial p {
		font-size: 18px !important;
	}
	.metaslider.ms-theme-clarity .flexslider .slides li {
		width: 250px !important;
	}
	.project-image-category {
  		border-radius: 30px 30px 0 0;
	}
	.project-text {
		padding: 20px;
  		min-height: 190px;
	}
	blockquote::before {
		font-size: 40px;
		margin-left: -35px;
	}
}


/* ----------------------------------------------------- Smaller than 700px ------------------------------------------------------ */

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

/* ----------------------------------------------------- Smaller than Mobile ----------------------------------------------------- */

@media only screen and (max-width : 650px) {
	.lozenge h4 {
		font-size: 20px;
	}
	.lozenge p {
		line-height: initial;
	}
	#nav_tab_1 p, #nav_tab_2 p, #nav_tab_3 p, #nav_tab_4 p, #nav_tab_5 p {
		font-size: 14px;
		line-height: initial;
		margin-bottom: 5px;
	}

}


/* ----------------------------------------------------- Smaller than 540px ------------------------------------------------------ */

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

}


/* ----------------------------------------------------- Smaller than 480px ------------------------------------------------------ */
@media only screen and (max-width : 480px) {
	#slider .lozenge-orange {
    	flex: 0 0 100%; /* single per row */
  	}
}