:root {
	--white: #FFF;
	--purple: #803488;
	--dark-purple: #451D4C;
	--green: #A4C954;
}

html {
  scroll-behavior: smooth;
}

body {
}


/*#video-container {
  text-align:center;
  max-width:640px;
  margin: 0 auto;
}

#video-container #unmute {
  position: absolute; 
  z-index:99999;
  color: white;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  cursor:pointer;
  width:80px;
  height:80px;
}*/

#unmute {
	cursor:pointer;
}


/* ----------------------------------------------------- Background Styles ------------------------------------------------- */
.bg-purple {
	background-image: linear-gradient(to right, rgba(69,29,52,1), rgba(128,52,136,1));
}


.background-centered {
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}
.min-height {
	/*min-height: 55vh;*/
	min-height: 35vw;
}
.min-height-intro {
	min-height: 22vw;
}

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

.menu ul {
	padding: 0px;
	margin: 0;
}
.menu li {
	list-style: none;
	display: inline-block;
	padding: 3px 15px;
	background-image: none;
	margin-bottom: 10px;
}
.menu a {
	color: var(--white);
	font-size: 17px;
	font-weight: 600;
	text-decoration: none; 
}

/* ----------------------------------------------------- Service Banner Styles ------------------------------------------------- */

.service-text {
	width: 50%;
}

.quote-box {
	right: 5%; 
	bottom: -40%;
	width: max-content;
}

.quote-box-left {
	left: 5%; 
	bottom: -40%;
}

.right-image {
	/*margin-left: -75px;*/
	position: absolute;
 	right: 6%;
}



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

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


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

/*other video styles*/
	.video-youtube {
		width: 100%;
		height: 800px;	
	}

	#video-container iframe {
		position: absolute;
		top: 0%;
      	left: 0%;
      	width: 100%;
      	height: 100%;
	}
/*END other video styles*/

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

.header-text {
	padding: 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.service2-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: 5%;
	margin-bottom: 0;
}
.video-content #title {
	font-size: 4vw;
}


.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: 5%;
  	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 right, rgba(69,29,76,0.8), rgba(69,29,76,0));
	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-inner {
	background-image: linear-gradient(to top, rgba(0,0,0,0.8), rgba(0,0,0,0)); /*was linear-gradient(to top, rgba(69,29,76,0.8), rgba(69,29,76,0)) */
	min-height: 35vw;
}
.overlay-gradient-video {
	background-image: linear-gradient(to right, rgba(0,0,0,0.2), rgba(0,0,0,0));
}
.overlay-gradient-top {
	background-image: linear-gradient(to bottom, rgba(0,0,0,0.7), rgba(0,0,0,0)); 
	height: 200px; 
	position: absolute; 
	width: 100%;
}

#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;
}
#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: 5%;
	bottom: 20px;
}


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

header {
	/*position: absolute;*/
	width: 100%;
	top: 0;
	left: 0;
	right: 0;
	/*padding: 50px 5%;*/
}
.header-section {
	position: absolute;
	z-index: 99;
}
.logo {
	width: 60%;
	max-width: 300px;
}
.overlay-gradient {
	width: 100%; 
	height: 100%; 
	background-image: linear-gradient(to right, rgba(69,29,76,0.8), rgba(69,29,76,0));
	mix-blend-mode: multiply;
	position: absolute;
	margin-left: -25px;
}

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


.banner-image-text {
  position: absolute;
  bottom: 5%;
  width: 70%;
  color: var(--white);
  font-weight: 400;
  font-size: 35px;
  line-height: initial;
}
.blog {
	position: relative;
	margin-bottom: 50px;
}
.blog:after {
	content: ""; /* This is necessary for the pseudo element to work. */ 
    display: block; /* This will put the pseudo element on its own line. */
    margin: 0 auto; /* This will center the border. */
    width: 93%; /* Change this to whatever width you want. */
    padding-top: 20px; /* This creates some space between the element and the border. */
    border-bottom: 1px solid var(--light-green); /* This creates the border. Replace black with whatever color you want. */
	position: absolute;
	bottom: 0;
}
.cat-post-image {
	width: 100%;
	height: 20vw;
	object-fit: cover;
	object-position: center;
	margin-bottom: 20px;
}/* ----------------------------------------------------- Contact Form Styles ---------------------------------------------------------------- */



.ninja-forms-req-symbol {
	display: none !important;
}

.nf-form-content button, .nf-form-content input[type="button"], .nf-form-content input[type="submit"] {
	background-color: var(--green) !important;
	cursor: pointer;
	width: 100% !important;
}
.nf-form-content button:hover, .nf-form-content input[type="button"]:hover, .nf-form-content input[type="submit"]:hover {
	color: var(--green) !important;
	background-color: white !important;
}
.nf-before-form-content {
	max-width: 1000px;
	margin: 0 auto;
	padding: 20px 5px;
}


.nf-form-fields-required {
	display: none !important;
}

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

.content-padding {
	padding: 6% 6% 6% 6%;
}
.content-padding-sm {
  padding: 2.5%;
  padding-top: 2.5%;
}
.content-padding-purple {
	padding: 4%;
}
.content-margin {
	margin: 5% 0;
}
.content-padding-extra {
	padding-left: 10%;
	padding-right: 10%;
}
.solution-box {
	width: 32%;
	height: 75vh;
}
.overlay-text {
	position: absolute;
	bottom: 0;
	background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.8));
	color: var(--white);
	padding: 15% 8% 8% 8%;
	width: 100%;
}
.overlay-text h1, .overlay-text h2, .overlay-text h3, .overlay-text h4, .overlay-text h5, .overlay-text p {
	color: var(--white);
}
.overlay-text p {
	font-size: 16px;
	line-height: 22px;
}
.background-center {
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
}

.header-padding {
		padding-top: 7%;
	}


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

button {
	transition-property: all;
	transition-duration: 500ms;
}
button:hover {
	cursor: pointer;
}

.btn-purple {
	font-weight: 300 !important;
	background-image: linear-gradient(to right, rgba(69,29,52,1), rgba(128,52,136,1));
	text-align: center;
	border: 0;
	color: white;
	font-size: 16px;
	display: block;
	padding: 10px;
	text-decoration: none !important;
	margin-top: 5%;
}
a .btn-purple {
	text-decoration: none;
}

.btn-purple:hover {
    background-image: linear-gradient(to right, rgba(164,201,84,1), rgba(199,214,79,1));
	color: white;
	cursor: pointer;
}


/* ----------------------------------------------------- Nav Styles ------------------------------------------------- */

.overlay-menu {
	min-height: 60vh;
	width: 100%;
	position: absolute;
	z-index: 3;
	top: -300vh;
	left: 0;
	overflow: hidden;
	transition: 0.3s;
	display: flex;
	background: var(--grey);
	padding: 185px 5% 0 5%;
}
.overlay-inner {
	margin: auto;
	/*display: flex;*/
	width: 100%;
}
.open-menu {
	top: 0 !important;
}
.overlay-inner .menu-section {
	width: 21.5%;
	margin: 0 20px;
}
.overlay-inner .menu-section-lrg {
	width: 18%;
}
.overlay-inner div h3{
	margin-bottom: 12px;
	color: #fff;
}
.menu {
	padding: 0px !important;
	margin-bottom: 0 !important;
}
.menu ul {
	padding: 0;
}
.menu-row {
	display: flex; 
	margin-bottom: 3.5vh; 
	margin-top: 0;
}
.menu-section ul li {
	list-style: none;
	padding: 0;
	display: block;
	margin-bottom: 7px;
	text-decoration: none;
	line-height: 20px;
}

.menu-section a {
	color: white !important;
}
.menu-margin-top {
	margin-top: 51px !important;
}
.menu-section ul li a {
	text-decoration: none;
}

.desktop-hidden {
	display: none;
}

/* ----------------------------------------------------- Footer Styles ---------------------------------------------------------------- */

footer {
	border-top: solid 5px var(--navy);
}
footer p, footer a {
	font-size: 14px;
	color: var(--purple); 
}



/* ----------------------------------------------------- 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) {

}


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

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


	.min-height {
		min-height: 40vw;
	}
}


/* ----------------------------------------------------- Smaller than 1300px ----------------------------------------------------- */

@media only screen and (max-width : 1300px) {
	.right-image {
		right: 3%;
	}
} 


/* ----------------------------------------------------- Smaller than 1200px - Bootstrap XL ----------------------------------------------------- */

@media only screen and (max-width : 1200px) {
	.sm-screen-hidden {
		display: none;
	}
	.mobmenur-container {
		top: 35px !important;
	}
	.min-height {
		min-height: 43vw;
	}
	
}

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

@media only screen and (max-width : 1125px) {
	.min-height {
		min-height: 48vw;
	}
	.banner-image-text {
		bottom: 0%;
		width: 100%;
	}

	
}

/* ----------------------------------------------------- Smaller than 1080px ----------------------------------------------------- */
@media only screen and (max-width : 1080px) {

}

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

@media only screen and (max-width : 1024px) {	
	.mobile-padding-bottom {
		padding-bottom: 7% !important;
	}	
	
	.header-padding {
		padding-top: 25%;
	}
	
	.overlay-inner .menu-section {
	  width: 90%;
	  margin: 0 20px;
	}	
	
	.banner-image-text {
		bottom: 0%;
		width: 90%;
	}
	
	.home-hero-content #buttons  {
		padding-bottom: 0;
	}
	
	.service-text {
		width: 70%;
		margin-left: 6%;
		margin-right: 6%;
		margin-bottom: 5%;
	}	
	
	.quote-box {
		left: 7.5%;
    	bottom: -40px;
		position: relative !important;
	}
	
	.quote-box-left {
		bottom: 0;
	}
	
	.right-image {
		position: relative;
    	right: 0;
		padding: 0;
	}
	.intro {
		padding: 0;
	}
	.banner-image {
		height: 62vh;
		min-height: 400px;
		background-position: center center !important;
	}
	.banner-image-inner {
		height: fit-content !important;
		min-height: 62vh !important;
	}
	.overlay-gradient-inner {
		height: 62vh;
		min-height: 400px;
	}

}

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

@media only screen and (max-width : 991px) {
	.mobmenur-container {
		top: 30px !important;
	}
	.min-height {
		min-height: 56vw;
	}
	.home-services-content #buttons {
		width: 90%;
		padding-bottom: 10px;
		bottom: 45px;
	}
	#home_services .text-on-hover {
		bottom: 130px;
		width: 90%;
	}

}

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

@media only screen and (max-width : 870px) {	
	.min-height {
		min-height: 71vw;
	}
	.category {
		margin-top: 40%;
	}
	.cat-post-image {
		height: 50vw;
	}
	.d-flex {
		display: block !important;
	}
	.home-hero-content {
	  display: block;
	}
	.home-hero-content #title {
		width: 90%;
		bottom: 20%;
	}
	.home-hero-content #buttons {
	  width: 90%;
	}

}

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

@media only screen and (max-width : 800px) {	
	.caption h1 {
	  margin-bottom: -25px;
	  width: 100%;
	  line-height: 7vw;
	}
}


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

@media only screen and (max-width : 768px) {
	.mobile-center {
		text-align: center !important;
	}
	.mobile-left {
		text-align: left !important;
	}
	.mobile-hidden {
		display: none;
	}
	.mobile-padding {
		padding: 7%;
	}
	.desktop-hidden {
		display: block;
	}

	.mobmenur-container {
		top: 10px !important;
		margin-right: 0 !important;
	}
	.min-height {
		min-height: 60vh;
	}
	.accordion button .accordion-title {
		font-size: 18px;
	}
	.video-youtube {
		width: 100%;
		height: 200px;	
	}
	
	.home-hero-content #buttons {
		display: none;
	}
	.header-section {
		position: relative;
		background-color: var(--dark-purple); 
	}
	.header-title {
		display: none;
	}
	
	.header-title-mobile {
		display: flex;
	}
	
	.logo {
	  	width: 180%;
    	max-width: 180px;
		min-width: 100px;
    	z-index: 999;
    	/*position: absolute;*/
	}
	
	.padding-none-bot {
		padding-bottom: 0;
	}
	.overlay-gradient-top {
		/*background-image: linear-gradient(to bottom, rgba(0,0,0,0.4), rgba(0,0,0,0));
  		height: 80px;*/
		display: none;
	}

}


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

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

}

/* ----------------------------------------------------- Smaller than 600px ----------------------------------------------------- */

@media only screen and (max-width : 600px) {
	.banner-image {
		background-position-x: right 35% !important;
		height: 45vh;
		min-height: 300px;
	}
	.overlay-gradient-inner {
		height: 45vh;
		min-height: 300px;
	}
	.service-text {
		width: 80%;
	}
	.quote-box {
		bottom: 0;
		max-width: 100%;
	}
	.small-quote {
		font-size: 16px !important;
		line-height: 18px;
	}
	.large-quote {
		font-size: 30px !important;
		line-height: inherit;
	}
	.xl-large-quote {
		font-size: 88px !important;
	}
	.mobile-padding-none {
		padding: 0;
	}
	.sp-testimonial-free-section {
		margin: 0 !important;
	}
}


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

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

	a.btn-white {
		font-size: 14px;
	}

}
