/* =============================================================================================
	BASE STYLES AND LAYOUT
============================================================================================= */

/* ------------------------------------------------------------------------ CSS Variables */

:root {
	--white: #fff;
	--black: #262B36;
	--black-dk: #191B23;
	--grey-lt: #EBEDF1;
	--grey: #CDD1DB;
	--blue-lt: #84d1fd;
	--blue: #007DC4;
	--error: #e6004c;

	--header-height:  73px;
	--section-p-lg: 8rem;
	--section-p: 4rem;
	--section-p-sm: 3rem;

	--swiper-theme-color:#fff;
	--swiper-navigation-size: 2rem;

	--container-side: 6%;
}

@media (min-width: 576px) {
	:root {
		--container-side: calc((100% - 530px) / 2);
	}
}

@media (min-width: 768px) {
	:root {
		--container-side: calc((100% - 710px) / 2);
	}
}

@media (min-width: 992px) {
	:root {
		--header-height:  112px;
		--header-scroll-height:  80px;
		--container-side: calc((100% - 950px) / 2);
	}
}

@media (min-width: 1200px) {
	:root {
		--container-side: calc((100% - 1130px) / 2);
	}
}

@media (min-width: 1400px) {
	:root {
	    --section-p-lg: 10.5rem;
		--section-p: 5.5rem;
		--section-p-sm: 3.5rem;

		--swiper-navigation-size: 2.5rem;
		--container-side: calc((100% - 1310px) / 2);
	}
}

@media (min-width: 1680px) {
	:root {
	    --section-p-lg: 12rem;
		--section-p: 7rem;
		--section-p-sm: 4rem;
		--container-side: calc((100% - 1590px) / 2);	
	}
}



/* ------------------------------------------------------------------------ Page Styles & Resets */

body {
	font: 300 1rem/1.6 'Poppins', Arial, Helvetica, sans-serif; 
	color: var(--black);
	background-color: var(--white);
} 

::selection {
  background: var(--blue);
  color: var(--white);
}

@media (min-width: 1680px) {
	body {
		font-size: 1.25rem; 
	} 
}


/* ------------------------------------------------------------------------ Keyboard Accessibility */

.skip-link { 
	position:absolute; 
	left:-10000px; 
	top:0; 
	width:1px; 
	height:1px; 
	overflow:hidden;
	background-color: var(--grey);
	color: var(--white);
	font-size: 0.875rem;
	text-decoration:none;
	z-index: 1050;
	padding:0.5rem 0.625rem; 
} 

.skip-link:focus, .skip-link.sr-only-focusable:active, .skip-link.sr-only-focusable:focus {
	position: absolute; 
	outline: none; 
	left:0;
	outline: none; 
	width:auto; 
	height:auto;
} 

.skip-link:hover {
	color: var(--white);
	background-color: var(--grey);
}

a:focus, .btn:focus {
	outline: solid thin rgba(0, 0, 0, 0.5);
	box-shadow: none;
} 

.sidenav__header-link:focus, .card__header-link:focus {
	outline: solid thin rgba(255, 255, 255, 0.5);
}

a:hover, a:active { outline: none !important; } /*...not with mouse (kinda) */


/* ------------------------------------------------------------------------ Headers */

h1, h2, h3,
.h1, .h2, .h3  { 		
	font-weight: 500;	
	margin-bottom: 1rem;
}	

h1, .h1 {	
	font-size: 2.5rem;
	line-height:1.2;	
}
	
h2, .h2 {
	font-size: 2rem;
	line-height:1.2; 
}
		
h3, .h3 { 
	font-size: 1.5rem; 
	line-height:1.4;
}	

h2, h3  { 
	margin-top: 3rem;
}

hr + h2, 
hr + h3, 
section h2:first-child,
section h3:first-child {
	margin-top: 0;
}

h2 + h3 {
	margin-top: 3rem;
}
	

@media (min-width: 992px) {	
	h1, .h1 {
		font-size: 3rem;
	}
		
	.h1--sm {
	    font-size: 2.5rem;
	}

	h2, .h2 {
		font-size: 2rem;
	}	
}	

@media (min-width: 1400px) {	
	h1, .h1 {
		font-size: 3.5rem;
	}
	
	.h1--sm {
	    font-size: 3rem;
	}

	h2, .h2 {
		font-size: 2.5rem;
	}

	h3, .h3 { 
		font-size: 1.5rem; 
	}		
}	

@media (min-width: 1680px) {	
	h1, .h1 {
		font-size: 4rem;
	}
	
	.h1--sm {
	    font-size: 3.5rem;
	}

	h2, .h2 {
		font-size: 3rem;
	}

	h3, .h3 { 
		font-size: 2rem; 
	}		
}	



/* ------------------------------------------------------------------------ Lists */

ul, .list { 
	list-style: none; 
	list-style-position: outside;
	padding-left: 0;
}

ul li, .list__item {	
    padding: 0 0 0.5rem 1.125em;
	background: url(../../images/arrow-black.svg) no-repeat left 0.375em;
	background-size: 0.75em 0.75em;
}

.ul--no-bullet li {
    line-height: 1.4;
	padding: 0 0 .625rem 0;
	background-image: none;
}

.ul--no-bullet--m-3 li {
	padding: 0 0 1rem 0;
}

ul ul, .list__sub-list {
	margin-top: 0.25rem;
}


ul ol {
	padding-left: 1.375rem;
	margin-top: 0.25rem;
}

ul ol li {
	background-image: none;
	padding-left: 0;
}
		
ol {
	padding-left: 1rem;
}	

ol li {padding-bottom: 0.5rem;}

ol ol {
	padding-left: 2.25rem;
	margin-top: 0.25rem;
}

ol ul {margin-top: 0.25rem;}
		
li:last-child { 
	padding-bottom:0;
}


.ul--sitemap > li {
	padding: 0 0 1.25rem 0;
	background-image: none;
}

.ul--sitemap > li > a {
	margin-bottom:.5rem !important;
	display: inline-block;
}


.ul--sitemap ul {
    padding: 0 0 0 .5em;
    margin-top: 0;
}

.ul--sitemap ul li:first-child {
    margin-top: .5rem;
}

.ul--sitemap ul li:last-child {
    padding-bottom: .5rem;
}

.ul--sitemap ul li a {
    padding-top: 0.25rem !important;
}

					
/* ------------------------------------------------------------------------ Other Base Text Styles */

.color-inherit {
	color: inherit;
}	

.text-muted {
	color: var(--grey)!important;
}

.intro-text--sm {
	font-size: 1.125rem;
}

.intro-text {
	font-size: 1.375rem;
}

.intro-text--lg {
	font-size: 1.5rem;
}	

.note {
	font-size: 1rem;
}


sup, sub {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sup { 
	top: -0.5em; 
}

sub { 
	bottom: -0.25em; 
}


@media (min-width: 1400px) {	
	p,
	li,
	label,
	table {
		font-size: 1.25rem;
	}

	.note {
		font-size: 1.125rem;
	}

	.intro-text--sm {
		font-size: 1.375rem;
		margin-bottom: 1.25rem;
	}

	.intro-text {
		font-size: 1.5rem;
		margin-bottom: 1.25rem;
	}

	.intro-text--lg {
		font-size: 1.75rem;
		margin-bottom: 1.25rem;
	}		
}


@media (min-width: 1680px) {	
	.intro-text--sm {
		font-size: 1.5rem;
	}

	.intro-text {
		font-size: 1.75rem;
	}

	.intro-text--lg {
		font-size: 2rem;
	}		
}

	
/* ------------------------------------------------------------------------ Links */

a:not(.logo):not(.nav-link):not(.btn):not(.cta):not(.social__icon):not(.to-top):not(.dropdown-item) {	
	font-weight: 500;
	text-decoration: none;
	box-shadow:  0 2px 0 0 var(--blue-lt), inset 0 0 0 0 var(--blue-lt);
	color: var(--black);
	margin: 0 -.125rem;
	padding: 0 .125rem;
	transition: color .25s ease-in-out, box-shadow .25s ease-in-out;
}

a:not(.logo):not(.nav-link):not(.btn):not(.cta):not(.social__icon):not(.to-top):not(.dropdown-item):hover {
  box-shadow: 0 2px 0 0 var(--blue-lt), inset 0 -64px 0 0 var(--blue-lt);
  color: var(--black);
}

.note a {	
	box-shadow:  0 1px 0 0 var(--blue-lt), inset 0 0 0 0 var(--blue-lt) !important; 
}

.note a:hover {
  box-shadow: 0 1px 0 0 var(--blue-lt), inset 0 -64px 0 0 var(--blue-lt) !important;
}

main a { 
	word-wrap: break-word; 
}

a img {
	border: none;
	-webkit-backface-visibility: hidden;
    -webkit-transform: translateZ(0) scale(1.0, 1.0);
	transition: opacity .25s ease;
}				

a img:hover { 
	opacity: .9;
}	


@media (min-width: 992px) {	
	/*Change value to header height*/
	.a--anchor {
	    border-top: var(--header-scroll-height) solid transparent;
	    margin-top: calc(var(--header-scroll-height) * -1)!important;
	    -webkit-background-clip: padding-box;
	    -moz-background-clip: padding;
	    background-clip: padding-box;
	}
	
	.a--anchor--banner-scroll {
	    position: absolute;
	    bottom:0;
	    left:0;
	}
}	

@media (min-width: 1400px) {	
	a:not(.logo):not(.nav-link):not(.btn):not(.cta):not(.social__icon):not(.to-top):not(.dropdown-item) {	
		box-shadow:  0 3px 0 0 var(--blue-lt), inset 0 0 0 0 var(--blue-lt);
	}

	a:not(.logo):not(.nav-link):not(.btn):not(.cta):not(.social__icon):not(.to-top):not(.dropdown-item):hover {
	  box-shadow: 0 3px 0 0 var(--blue-lt), inset 0 -64px 0 0 var(--blue-lt);
	}
}



/* ------------------------------------------------------------------------ Button Styles */

.btn {
	margin: 1.5rem 0 0 0; 
	padding: .625rem 1.5rem;
	border-radius: 30rem;
	text-transform: uppercase;
	cursor: pointer;
	position: relative;
	box-shadow: none;
}

.btn-primary {
	background-color: transparent;
	border: 3px solid var(--blue);
	color: var(--black);
	overflow: hidden;
	transition: all .25s ease;
	box-shadow: none;
	font-weight: 500;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-check:active+.btn-primary,
.btn-check:checked+.btn-primary,
.btn-primary.active,
.btn-primary:active,
.show>.btn-primary.dropdown-toggle,
.btn-primary--selected-all,
.btn-primary--selected { 
	background-color: var(--blue);
	border-color: var(--blue);
	color: var(--white);
	transition: color 0.25s ease, background-color 0s ease .25s !important;
	box-shadow: none;
}

.btn-primary::before {
  background: var(--blue);
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: -1;
  transition: all 0.25s ease;
  width: 0%;
  height: 102%;
}

.btn-primary:hover::before,
.btn-primary--selected-all::before,
.btn-primary--selected::before {
  width: 100%;
}

.umbraco-forms-form .btn-primary {
    margin-top:0;
}


.btn-primary--selected {
    padding-right: 2.75rem !important;
    position: relative;
}

.btn-primary--selected:after {
    content: "";
    position:absolute;
    top: 0;
    right: 0;
    width: 1.5rem;
    height: 100%;
    background-image: url(../../images/menu-icon-open-reverse.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1.5rem;
    padding-right: 3rem !important;
}

.btn--white {
	color:  var(--white);
}

.btn--scroll {
	width: 3.5rem;
	height: 3.5rem;
	background: transparent url(../../images/arrow-white.svg) no-repeat center;
	background-size: 1rem;
	border: 3px solid var(--blue);
	border-radius: 50%;
	padding: .5rem !important;
	transform: rotate(90deg);
	transition: all .25s ease;
}

.btn--scroll:hover {
	background-color: var(--blue);
	transform: translateY(0.5em) rotate(90deg);
}


@media all and (max-width: 991px) and (min-width: 0px) {	
    .btn--filters {
        border: none;
        padding: .25rem 1.5rem;
        display: inline-block;
    }
    
    /*.btn--filters:hover,*/
    /*.btn--filters:focus,*/
    /*.btn--filters:active,*/
    /*.btn--filters.btn-primary--selected-all,*/
    /*.btn--filters.btn-primary--selected { */
    /*	background-color: transparent !important;*/
    /*	border-color: transparent !important;*/
    /*	color: var(--blue) !important;*/
    /*	transition: color 0.25s ease, background-color 0s ease .25s !important;*/
    /*	box-shadow: none;*/
    /*}*/
    
    /*.btn--filters:hover::before,*/
    /*.btn-primary--selected-all::before,*/
    /*.btn-primary--selected::before {*/
    /*  width: 0;*/
    /*}*/
}

@media (min-width: 768px) {	
	.btn--scroll {
		width: 4rem;
		height: 4rem;
		background-size: 1.25rem;
	}
}

@media (min-width: 1400px) {	
	.btn {
		padding: .75rem 2rem;
		font-size: 1.125rem;
	}

	.btn--sm {
		padding: .5rem 1.25rem;
	}
}


/* ------------------------------------------------------------------------ Images */
	
img {
	max-width: 100%;
	height: auto!important; 
}

.img--float-left, .img--float-right { 
	margin: .5rem 0 1rem 0;	
}

.family-logo {
	max-width: 12.5rem;
	margin-bottom: 2rem;
}

.google-partner-badge {
	max-width: 15.5rem;
	margin-bottom: 2rem;
}

img:not([src]):not([srcset]) {
  visibility: hidden;
}

@media (min-width: 768px) {	
	.img--float-left {
		float: left;
		margin: .5rem 1.5rem .375rem 0;
		max-width:33%;
	}
		
	.img--float-right {
		float: right;
		margin: .5rem 0 .375rem 1.5rem;
		max-width:33%;
	}
}	


/* ------------------------------------------------------------------------ Image Reveal Animation */

.img--reveal {
	position: relative;
    overflow: hidden;
    aspect-ratio: 2 / 1.125;
}

.img--reveal--square {
    aspect-ratio: 1 / 1;
}

.img--reveal--team {
    background-color: var(--grey-lt);
    aspect-ratio: 1 / 1;
}

.img--reveal img {
	width: 100%;
	height: auto;
	object-fit: cover;
	object-position: 50% 50%;
    z-index: 1;
    transform: scale(1.2); 
    opacity: 0; 
    transition: 1.5s ease;
}

.img--reveal.aos-animate img {
    transform: scale(1); 
    opacity: 1; 
}


.img--reveal:after {
    content: "";
    position: absolute;
    left: -15%;
    top: -1%;
    width: 130%;
    height: 102%;
    background-color: var(--white);
    z-index: 2;
    transform: skew(-10deg);
    will-change: transform;
    transition: transform 1s cubic-bezier(.7,0,.3,1);
}

.img--reveal--team:after {
    background-color: var(--grey-lt);
}

.img--reveal.aos-animate:after {
    transform: skew(-10deg) translate3d(115%,0,0);
}

.cta:hover .img--reveal.aos-animate img {
    transform: scale(1.1) !important; 
    transition: .25s ease;
}


@media (min-width: 992px) {	
    .img--reveal {
        aspect-ratio: 1 / 1;
    }
}

	
/* ------------------------------------------------------------------------ SVG's */

svg {
	width: 1rem;
	height: 1rem;
}	
	

/* ------------------------------------------------------------------------ Horizontal Rules */

hr, .hr { 
	margin: 1.5rem auto;
}	

@media (min-width: 1400px) {
	hr, .hr {
		margin: 3rem auto;
	}
}	


/* ------------------------------------------------------------------------ Additional Utility Classes/Bootstrap Overrides */

.w-90 {
	width: 90%;
}

.zindex2 {
	z-index: 2;
}

.cursor-pointer {
	cursor: pointer;
}

main {
	margin-bottom: -2.5rem;
}

.blogDetailPage .section--black.section--angle-y-right + form {
    margin-top: -4rem;
}


@media (min-width: 576px) {
	.text-sm-left {
		text-align: left !important;
	}
}

@media (min-width: 992px) {
	.w-lg-90 {
		width: 90%;
	}

	.w-lg-100 {
		width: 100%;
	}

	.text-lg-left {
		text-align: left !important;
	}

	.col-border:after {
		content: "";
		position: absolute;
		top: 0;
		border-right: 3px solid var(--grey);
		width: 3px;
		height: 100%;
	}

	.col-border--8:after {
		right: -6.5%;
	}

	.container__divider:after {
	    content: "";
	    position: absolute;
	    top: 0;
	    left: 50%;
		transform: translateX(-50%);    
		border-right: 3px solid var(--grey);
	    width: 3px;
	    height: 100%;
	}

	.footer .container__divider:after { 
		border-right: 3px solid #535762;
	}
}

@media (min-width: 1200px) {
	.col-xl-5b {
		flex: 0 0 auto;
	    width: 44.83333333335%;
	}
}

@media (min-width: 1680px) {
	.col-xxxl-3 {
		flex: 0 0 auto;
        width: 25%;
	}
}


/* Section Padding Options */

.p-section {
	padding: var(--section-p) 0 !important;
}

.pt-section {
	padding-top: var(--section-p) !important;
}

.pb-section {
	padding-bottom: var(--section-p) !important;
}

.ps-section {
	padding-left: var(--section-p) !important;
}

.pt-section-sm {
	padding-top: var(--section-p-sm) !important;
}

.pb-section-sm {
	padding-bottom: var(--section-p-sm) !important;
}

.pe-section-sm {
	padding-right: var(--section-p-sm) !important;
}

.ps-section-sm {
	padding-left: var(--section-p-sm) !important;
}

.mt-section {
	margin-top: var(--section-p) !important;
}

.mb-section {
	margin-bottom: var(--section-p) !important;
}

.me-section {
	margin-right: var(--section-p) !important;
}

.ms-section {
	margin-left: var(--section-p) !important;
}

.mt-section-sm {
	margin-top: var(--section-p-sm) !important;
}

.mb-section-sm {
	margin-bottom: var(--section-p-sm) !important;
}

.me-section-sm {
	margin-right: var(--section-p-sm) !important;
}

.ms-section-sm {
	margin-left: var(--section-p-sm) !important;
}

.mt-4b {
   margin-top: 2rem !important; 
}

.sticky-top {
    top: calc(var(--header-height) + var(--section-p-sm));
}

.lh-1 {
    line-height:1;
}

@media (min-width: 992px) {
	.mb-lg-0 {
        margin-bottom: 0!important;
    }
    
    .mb-lg-section {
    	margin-bottom: var(--section-p) !important;
    }
    
    .pb-lg-section {
		padding-bottom: var(--section-p) !important;
	}
	
	.ps-lg-section {
		padding-left: var(--section-p) !important;
	}
	
	.pt-lg-section {
    	padding-top: var(--section-p) !important;
    }
    
    .ps-lg-section-sm {
    	padding-left: var(--section-p-sm) !important;
    }
    
    .pe-lg-section-sm {
    	padding-right: var(--section-p-sm) !important;
    }
}

@media (min-width: 1400px) {
    .mt-xxl-5 {
       margin-top: 3rem !important; 
    }
}

@media (min-width: 1680px) {
	.mb-xxxl-4 {
		margin-bottom: 1.5rem !important;
	}
	
	.ps-xxxl-0 {
	    padding-left: 0 !important;
	}
	
	.pe-xxxl-0 {
	    padding-right: 0 !important;
	}
}


/* Match Up with Container Edges Options */

.container-ps {
    padding-left: var(--container-side) !important;
}

.container-pe {
    padding-right: var(--container-side) !important;
}

@media (min-width: 1680px) {
	.container-ps--plus-col-xxxl {
	    padding-left: calc(var(--container-side) + 8.3333333333%) !important;
	}

	.container-pe--plus-col-xxxl {
	    padding-right: calc(var(--container-side) + 8.3333333333%) !important;
	}

	.container-ps-xxxl-0 {
	    padding-left: 0 !important;
	}

	.container-pe-xxxl-0 {
	    padding-right: 0 !important;
	}
}


/* =============================================================================================
	HEADER
============================================================================================= */

.print-header { display:none; }
	
/*.logo { */
/*	flex: 1;*/
/*	display: block;*/
/*	position: absolute;*/
/*    width: 10rem;*/
/*    height: 100%;*/
/*}*/

.logo__img {
	/*width: 10rem; standard logo size*/
	width: 13rem;
}

.header { 
	z-index: 1040;
	position: absolute;
}

.landingBlankPage .header {
    background-color: var(--black-dk);
}

@media (min-width: 992px) {
	.header--scroll .navbar--fixed-top {
	    background-color: rgba(21,23,30,.75) !important;
		backdrop-filter: blur(8px);
	}
	
	.logo__img {
    	/*width: 10rem; standard logo size*/
    	width: 13rem;
    }
}

@media (min-width: 1400px) {
    .logo__img {
    	/*width: 10rem; standard logo size*/
    	width: 15.625rem;
    }
}


/* ------------------------------------------------------------------------ Navbar Nav */

.navbar-nav {
	padding: 1rem 0;
	transition: all .25s ease;
}

.navbar-nav li {
	padding: 0;
	background-image: none;
}

.navbar-nav .nav-link {
	color: var(--white);
	padding: .375rem 0;
	position: relative;
	font-weight: 200;
	font-size: 1.25rem;
	display: inline-block;
}

.navbar-nav .nav-item.active .nav-link {
    font-weight: 500;
}

.navbar-nav .nav-item.active:hover .nav-link, .navbar-nav .nav-link:hover {
    color: var(--white);
    position: relative;
}

.navbar-nav .nav-link:before, .navbar-nav .nav-link:after {
  	content: "";
    position: absolute;
    bottom: 5px;
    width: 0px;
    height: 3px;
    margin: 3px 0 0;
    transition: all 0.25s ease-in-out;
    opacity: 0;
    background-color: var(--blue);
}

.navbar-nav .nav-link:before {
	left: 50%;
}

.navbar-nav .nav-link:after {
	right: 50%;
}

.navbar-nav .nav-item.active .nav-link:before, .navbar-nav .nav-item.active .nav-link:after,
.navbar-nav .nav-link.show:before, .navbar-nav .nav-link.show:after {
  width: 50%;
  opacity: 1;
}

.icon-arrow {
	padding: 0 .5rem;
}

.navbar-nav .dropdown-menu {	
	background-color: transparent;
	margin:0 0 .5rem 0;
	padding:0;
	box-shadow: none;
	border: 0;
	border-radius: 0;
}

.navbar-nav .dropdown-menu li > .dropdown-item.active {
	color: var(--blue-lt);
	font-weight: 500;
}

.dropdown-item.active, .dropdown-item:active {
	color: var(--blue-lt);
	background-color: transparent;
}

.dropdown-item.active {
	font-weight: 500;
}

.navbar-nav .dropdown-menu li:hover > .dropdown-item.active, .navbar-nav .dropdown-item:hover {
	background-color: transparent;
	text-decoration: underline;
	color: var(--blue-lt);
}


.navbar-nav .dropdown-item {
	padding: .125rem 0;
	transition: all .25s;
	color: var(--white);
	font-weight: 200;
}

.navbar-nav .megamenu .dropdown-item {
	padding-left: 0;
}

.navbar-nav .dropdown-item:focus {
	background-color: transparent;
	color: var(--blue-lt);
}

.navbar-nav .dropdown-menu .dropdown-menu {
	background-color: var(--white);
	padding-left: 1rem;
}

.icon-arrow:after {
    content: "+";
    margin-left: .5rem;
    margin-top: -.125rem;
    opacity: 1;
    font-size: 1rem;
}

.g-2b {
    --bs-gutter-y: 0.75rem;
}

.dropdown-toggle:after {
    border: none;
}

.dropdown-toggle .icon-arrow {
    position: absolute;
    right: -2rem;
}


@media (min-width: 992px) {	
	.header--scroll .navbar-nav {
		padding: 1rem 0;
	}

	.navbar--fixed-top {
		position: fixed;
	    top: 0;
	    right: 0;
	    left: 0;
	    z-index: 1030;
	    transition: all .25s ease;
	    background: linear-gradient(0deg, rgba(25,27,35,0) 0%, rgba(25,27,35,1) 100%);
	}

	.navbar-nav {
		padding: 2rem 0;
	}

	.navbar-nav .nav-link {
		padding: .5rem 0!important;
		margin-right: 1.5rem;
		border-bottom: 0;
		/*font-size: 1.125rem; standard size*/
		font-size: 1rem;
	}

	.navbar-nav .nav-item:last-child .nav-link {
		margin-right:0; 
	}

    .navbar-nav .nav-item:hover .nav-link:before, .navbar-nav .nav-item:hover .nav-link:after {
      width: 50%;
      opacity: 1;
    }
	
	.navbar-nav .dropdown-menu .dropdown-menu {
    	background-color: var(--white);
    	padding-left: 1rem;
    }

	.navbar-nav .dropdown-menu, .navbar-nav .dropdown-menu .dropdown-menu {
		padding: .5rem 0;
		min-width: 15rem !important;
		background-color: var(--white);
	}

	.navbar-nav .dropdown-item {
		padding: .188rem 1rem;
		font-size: 1.1375rem;
		font-weight: 300;
		color: var(--black);
	}
	
	.navbar-nav .dropdown-menu li > .dropdown-item.active,
	.dropdown-item.active, .dropdown-item:active,
	.navbar-nav .dropdown-menu li:hover > .dropdown-item.active, .navbar-nav .dropdown-item:hover {
    	color: var(--blue);
    }

	.navbar-nav .dropdown-item:focus {
    	background-color: var(--white);
    }

	.navbar-nav .megamenu .dropdown-item {
		padding-left: 0;
	}

	.navbar-nav .dropdown-menu li.active:hover .dropdown-item, .navbar-nav .dropdown-item:hover {
		color: var(--blue);
	}

	.dropdown-menu>li:hover {
	    background-color: transparent;
	}

	.navbar-nav .megamenu {   
	    padding: 1rem 0;
	    margin-top: -1rem !important;
	} 
}

@media (min-width: 1200px) {
	.navbar-nav .nav-link {
		font-size: 1.125rem;
	}
}

@media (min-width: 1400px) {
	.navbar-nav .nav-link {
		margin-right: 2rem;
		font-size: 1.25rem;
	}
}


/* ------------------------------------------------------------------------ Side Nav */

.sidenav li {
	padding: 0;
	background-image: none;
}

.sidenav .nav-link {
	padding: .25rem 0;
	font-weight: 300;
	color: var(--black);
}

.sidenav .nav-link:hover {
    text-decoration: underline;
    color: var(--grey);
}

.sidenav .nav-link.active {
	color: var(--grey);
	font-weight: 500;
}

.sidenav .submenu {
	margin: 0 0 .5rem 0;
    padding: 0 0 0 1rem;
}

.sidenav .icon-arrow.show::after {
    content: '-';
    font-size: 1.125rem;
}

.sidenav .icon-arrow::after {
    content: "+";
    margin-left: .5rem;
    margin-top: -.25rem;
    opacity: 1;
    font-size: 1rem;
}


@media all and (max-width: 991px) and (min-width: 0px) {	
	.sidenav {
		border: 1px solid var(--grey);
		padding: 1.5rem 2rem;
	}
}



/* ------------------------------------------------------------------------ Bootstrap Menu Off Canvas Mobile */

body.offcanvas-active {
	overflow:hidden;
}

.offcanvas-header { 
	display:none;
}

.offcanvas-header .btn-close {
	width: 1.5em;
    height: 1.5em;
    background-position: center .5rem;
	background: url(../../images/menu-icon-open-reverse.svg) no-repeat;
	opacity: 1;
}

.screen-darken {
	height: 100%;
	width:0%;
	z-index: 30;
	position: fixed;
	top: 0;
	right: 0;
	opacity:0;
	visibility:hidden;
	background-color: rgba(0, 0, 0, 0.5);
	transition:opacity .2s linear, visibility 0.2s, width 2s ease-in;
}

.screen-darken.active {
	z-index:10; 
	transition:opacity .3s ease, width 0s;
    opacity:1;
    width:100%;
    visibility:visible;
}


@media all and (max-width: 991px) {
	.offcanvas-header { 
		display:block;
		background: var(--blue);
	    padding: .5rem;
	    border-radius: 50%;
	    width: 40px;
	    height: 40px;
	}

	.mobile-offcanvas {
		padding: 1.5rem 0;
		visibility: hidden;
		transform:translateX(-100%);
	    border-radius:0; 
		display:block;
	    position: fixed;
	    top: 0; left:0;
	    height: 100%;
	    z-index: 1200;
	    width:100%;
	    overflow-y: scroll;
	    overflow-x: hidden;
	    transition: visibility .3s ease-in-out, transform .3s ease-in-out;
	    background-color: rgba(21,23,30,.75) !important;
		backdrop-filter: blur(8px);
	}

	.mobile-offcanvas.show {
		visibility: visible;
    	transform: translateX(0);
	}

	.mobile-offcanvas .container, .mobile-offcanvas .container-fluid {
		display: block;
	}
}	



/* ------------------------------------------------------------------------ Homepage Modal */

.modal-fullscreen .modal-content {
    background-color: transparent;
}

.modal-fullscreen .modal-header {
    border-bottom:0;
    padding-bottom:0;
}

.modal-fullscreen .btn-close {
    opacity: 1;
    border-radius: 50%;
    margin-top: 0.5rem;
    margin-right: 0.5rem;
    background: var(--blue) url(../../images/menu-icon-open-reverse.svg) no-repeat center;
    background-size: 1.5rem;
}

.modal-fullscreen .modal-body {
    justify-content: center;
    display: flex;
    align-items: center;
    padding-top:0;
}

.modal-backdrop {
    background-color: rgba(21,23,30,.875) !important;
    backdrop-filter: blur(10px);     
}

.modal-backdrop.show {
    opacity: 1;
}

@media (min-width: 576px) {
    .modal-fullscreen .section--banner__video {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .modal-fullscreen .section--banner__video {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .modal-fullscreen .section--banner__video {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .modal-fullscreen .section--banner__video {
        max-width: 1140px;
    }
}

@media (min-width: 1400px) {
    .modal-fullscreen .section--banner__video {
        max-width: 1320px;
    }
}

@media (min-width: 1680px) {
    .modal-fullscreen .section--banner__video {
        max-width: 1540px;
    }
}

/* ------------------------------------------------------------------------ Navbar Toggler */

.navbar-toggler {
	border: none;
	cursor: pointer;
	border-radius: 0;
	background: var(--blue);
    padding: 0.5rem;
    border-radius: 50%;
}

.navbar-toggler:focus {
	box-shadow: 0 0 0 0.1rem;
}

.navbar-toggler-icon {
    background-image: url(../../images/menu-icon-reverse.svg);
    width: 1.25em;
    height: 1.25em;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
	background-image: url(../../images/menu-icon-open-reverse.svg);
}


@media (min-width: 992px) {
	.navbar-toggler {
		display: none;
	}
}



/* =============================================================================================
	MAIN CONTENT AREA
============================================================================================= */

@media (min-width: 1680px){ 
	.container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl, .container-xxxl {
	    max-width: 1600px;
	}
}


/* ------------------------------------------------------------------------ Sections */

.section { 
	padding: var(--section-p) 0;
}

.section--sm { 
	padding: var(--section-p-sm) 0;
}

.section--grey {
	background-color: var(--grey-lt);
}

.section--nobanner { 
	padding: var(--section-p-lg) 0;
}

.section--share-icons {
    padding-top: 0;
    margin-top: calc(var(--section-p-sm) * -1);
}

.section--black {
	background-color: var(--black);
	color:  var(--white);
	position: relative;
}

.section--black p {
	font-weight: 200;
}

.section--black a,
.section--black .btn--white:hover,
footer a,
footer .btn--white:hover {	
	color: var(--white) !important;
}

.section--black a:hover,
footer a:hover {
  color: var(--black) !important;
}

/* Angled Sections */
.section--angle-top-left {
	clip-path: polygon(0 0, 100% 4rem, 100% 100%, 0 100%);
	padding-top: calc(var(--section-p) + 4rem);
}

.section--angle-top-right {
	clip-path: polygon(0 4rem, 100% 0, 100% 100%, 0 100%);
	padding-top: calc(var(--section-p) + 4rem);
}

.section--angle-bottom-left {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 4rem));
	padding-bottom: calc(var(--section-p) + 4rem);
}

.section--angle-bottom-right {
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4rem), 0 100%);
	padding-bottom: calc(var(--section-p) + 4rem);
}

.section--angle-y-right {
	clip-path: polygon(0 4rem, 100% 0, 100% calc(100% - 4rem), 0 100%);
	padding-top: calc(var(--section-p) + 4rem);
	padding-bottom: calc(var(--section-p) + 4rem);
}

.section--angle-y-alt {
	clip-path: polygon(0 0, 100% 4rem, 100% calc(100% - 4rem), 0% 100%);
	padding-top: calc(var(--section-p) + 4rem);
	padding-bottom: calc(var(--section-p) + 4rem);
}

.section--angle-bottom-left + .section,
.section--angle-bottom-right + .section,
.section--angle-y-right + .section,
.section--angle-y-alt + .section {
	margin-top: -4rem;
	padding-top: calc(var(--section-p) + 4rem);
}



/* ------------------------------------------------------------------------ Animated SVG Squares */

.squares__overlay {
    position: absolute;
    width: 100%;
    /*height: 40.875em;*/
    bottom: 0;
    left: 0;
    overflow:hidden;
    display:none;
}

.squares__overlay svg {
	width: 100%;
	height: 100%;
}

.square {
	fill: #232733;
	transition: opacity 1s ease;
}

.section--banner .square,
footer .square {
	fill: #121319;
}

.square--fade {
	opacity:.5;
}

@media (min-width: 992px){ 
    .squares__overlay {
        display:block;
    }
}



/* ------------------------------------------------------------------------ Banner */

.section--banner {
	background-color: var(--black-dk);
	position: relative;
	color: var(--white);
	overflow: hidden;
	padding-top: calc(var(--header-height) + 1rem);
}

.section--banner--home {	
	padding-top: calc(var(--header-height) + 2rem);
}

.section--banner .container {
    position: relative;
}

.section--banner p {
	font-weight: 200;
}

.img--banner {
	aspect-ratio: 2 / 1.125;
	position: relative;
    overflow: hidden;
}

.section--banner--home .img--banner {
	aspect-ratio: 2 / 1.375;
}

.img--banner img {
	height: 100% !important;
}

.img--banner:after {
    background-color: var(--black-dk) !important;
}


@media (min-width: 992px) {	
	/*.section--banner--home {	*/
	/*	padding-top: calc(var(--header-height) + 3rem);*/
	/*}*/

	.img--banner,
	.section--banner--home .img--banner {
		aspect-ratio: 1 / 1;
	}
}

@media (min-width: 1200px) {	
    .section--banner {
    	padding-bottom: calc(var(--section-p-sm) + 4rem);
    }
    
    /*.section--banner--home {*/
    /*	padding-bottom: calc(var(--section-p) + 4rem);*/
    /*}*/
}

@media (min-width: 1680px) {	
	.section--banner--home {
		height: calc(100vh + 4rem);
		min-height: 65rem;
	}
}


/* Container for Caption and Video Placeholder */

/*.col--video-placeholder {*/
/*	aspect-ratio: 2 / 1.125;*/
/*	padding: 0;*/
/*    margin-right: 1rem;*/
/*    transition: aspect-ratio 1s ease;*/
/*}*/

.btn--play {
    background-color: var(--blue);
    width: 6rem;
    height: 6rem;
    margin-top:0;
    display: block;
    border-radius: 50%;
    box-shadow: none;
    transition: all .25s ease;
    
    /*Modified banner styles*/
    position:absolute;
    z-index:1;
}

.btn--play__svg {
    width: 35%;
    height: 35%;
}

.btn--close__svg {
    width: 60%;
    height: 60%;
    display:none;
}

.btn--play:hover {
 	width: 7rem;
    height: 7rem;
	box-shadow: none;
}

@media (min-width: 992px) {
    /*.col--video-placeholder {*/
    /*	aspect-ratio: 1 / 1;*/
    /*}*/
    
    /*.section--banner--video-play .col--video-placeholder {*/
    /*	aspect-ratio: 2 / .75;*/
    /*	width: 100%;*/
    /*}*/
}

@media (min-width: 1400px) {
    .btn--play {
        width: 8rem;
        height: 8rem;
    }
    
    .btn--play:hover {
     	width: 9rem;
        height: 9rem;
    }
}

@media (min-width: 1920px) {	
	.col--video-placeholder {
		flex: 0 0 auto;
    	width: 47%;
	}
}


/* Container for Video */
.section--banner .container--video {
    z-index: 1;
    position: absolute;
    height: 100%;
    top: 7rem;
    left: 50%;
    transform: translateX(-50%);
    transition: all .5s ease;
}

.section--banner__video {
    width:100%;
}

@media all and (max-width: 991px) and (min-width: 0px) {	
    .section--banner__video {
        margin-top: -20%;
    }
}

@media (min-width: 992px) {
    .section--banner .container--video {
        top: 10rem;
    }
    
    .section--banner__video-mask {
        -webkit-mask-image: url(../../images/banner-video-mask.svg);
        -webkit-mask-position: top right 1rem;
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-size: 41.6666666667%;
        mask-image: url(../../images/banner-video-mask.svg);
        mask-position: center right;
        mask-repeat: no-repeat;
        mask-size: 41.6666666667%;
        width: 100%;
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        transition: all 1s ease;
    }
}

@media (min-width: 1400px) {	
	.section--banner .container--video {
	    top: 9rem;
	}
}

@media (min-width: 1680px) {	
	.section--banner__video-mask {
		-webkit-mask-size: 45%;
		mask-size: 45%;
	}
}


/* When Video is Played */
.section--banner--video-play .btn--play {
    opacity: .5;
}

.section--banner--video-play .btn--play:hover {
    opacity: 1;
}

.section--banner--video-play .btn--play__svg {
    display:none;
}

.section--banner--video-play .btn--close__svg {
    display:block;
}

@media (min-width: 1680px) {
    .section--banner--video-play .container {
        margin-top: 0;
    }
    
    .section--banner--video-play .col--caption {
    	opacity: 0;
    	left: -1000px;
        position: absolute;
    }
    
    .section--banner--video-play .container--video {
    	max-width: 100%;
    	top: 0;
    }
    
    .section--banner--video-play .section--banner__video-mask {
        -webkit-mask-image: none;
        -webkit-mask-size: 100%;
        -webkit-mask-position: top 75% center;
        mask-image: none;
        mask-size: 100%;
        mask-position: top 75% center;
    }
}




/* ------------------------------------------------------------------------ Customer Care */

.customer-care-phone-wrapper {
	width: 78%;
	max-width: 43rem;
}

.customer-care-phone {
    z-index: 2;
    position:relative;
}

.customer-care-bg {
    width: 100%;
	height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}

svg.customer-care-buttons {
	width: 100%;
	height: 100%;
	z-index: 3;
    position: absolute;
    top: 0;
    left: 0;
    transition: all .5s ease;
}

.button {
	fill:#868686;
	opacity:0;
}

.number,
.call-rkd {
	fill:#1F1F1F;
	opacity:0;
}


@keyframes buttonpress {
  0%    { opacity: 0; }
  50%   { opacity: .5; }
  100%   { opacity: 0; }
}

.customer-care-phone-wrapper.aos-animate .button-5 {
  animation: buttonpress .125s .25s;
}

.customer-care-phone-wrapper.aos-animate .button-1 {
  animation: buttonpress .125s .375s;
}

.customer-care-phone-wrapper.aos-animate .button-9 {
  animation: buttonpress .125s .5s;
}

.customer-care-phone-wrapper.aos-animate .button-7 {
  animation: buttonpress .125s .625s;
}

.customer-care-phone-wrapper.aos-animate .button-6 {
  animation: buttonpress .125s .75s;
}

.customer-care-phone-wrapper.aos-animate .button-7b {
  animation: buttonpress .125s .875s;
}

.customer-care-phone-wrapper.aos-animate .button-3 {
  animation: buttonpress .125s 1s;
}

.customer-care-phone-wrapper.aos-animate .button-2 {
  animation: buttonpress .125s 1.125s;
}

.customer-care-phone-wrapper.aos-animate .button-6b {
  animation: buttonpress .125s 1.25s;
}

.customer-care-phone-wrapper.aos-animate .button-7c {
  animation: buttonpress .5s 1.5s;
}


@keyframes phonenumber {
  0%    { opacity: 0; }
  100%   { opacity: 1; }
}

.customer-care-phone-wrapper.aos-animate .number-bracket {
  animation: phonenumber .125s .625s forwards;
}
.customer-care-phone-wrapper.aos-animate .number-5 {
  animation: phonenumber .125s .25s forwards;
}

.customer-care-phone-wrapper.aos-animate .number-1 {
  animation: phonenumber .125s .375s forwards;
}

.customer-care-phone-wrapper.aos-animate .number-9 {
  animation: phonenumber .125s .5s forwards;
}

.customer-care-phone-wrapper.aos-animate .number-7 {
  animation: phonenumber .125s .625s forwards;
}

.customer-care-phone-wrapper.aos-animate .number-6 {
  animation: phonenumber .125s .75s forwards;
}

.customer-care-phone-wrapper.aos-animate .number-7b {
  animation: phonenumber .125s .875s forwards;
}

.customer-care-phone-wrapper.aos-animate .number-hyphen {
  animation: phonenumber .125s 1s forwards;
}

.customer-care-phone-wrapper.aos-animate .number-3 {
  animation: phonenumber .125s 1.125s forwards;
}

.customer-care-phone-wrapper.aos-animate .number-2 {
  animation: phonenumber .125s 1.25s forwards;
}

.customer-care-phone-wrapper.aos-animate .number-6b {
  animation: phonenumber .125s 1.375s forwards;
}

.customer-care-phone-wrapper.aos-animate .number-7c {
  animation: phonenumber .125s 1.5s forwards;
}

.customer-care-phone-wrapper.aos-animate .call-rkd {
  animation: phonenumber 1s 1.625s forwards;
}


@keyframes scalephone {
  0%    { transform: scale(1); }
  50%   { transform: scale(1.05); }
  0%    { transform: scale(1); }
}

.customer-care-phone-wrapper.aos-animate .customer-care-bg {
    animation: scalephone 1s 1.75s ;
}


@media (min-width: 992px) {
	.customer-care-phone-wrapper {
		width: 100%;
	}
}

@media (min-width: 1400px) {
	.customer-care-phone-wrapper {
		width: 90%;
	}
}


/* ------------------------------------------------------------------------ People */

.people-wrapper {
    position: relative;
    overflow: hidden;
}

.people {
	transform: translateY(100%) scale(1.2);
	transition: all 1s ease;
}

.people.aos-animate {
	transform: translateY(0) scale(1);
}

.people2, .people3 {
	position:absolute;
	top: 0;
	left: 0;
}


/* ------------------------------------------------------------------------ Results */

.section--results {
	padding-top: calc(var(--section-p) + 2rem) !important;
}

.results-wrapper {
    aspect-ratio: 1 / .84;
    position: relative;
    overflow: hidden;
}


@keyframes resultsdevicemobile {
  0%    { top: 0; opacity: 1; }
  100%   { top: -100%; opacity: 0; }
}

@keyframes resultsdevicelaptop {
  0%    { top: 100%; opacity: 0; }
  20%   { top: 0; opacity: .5; }
  50%   { top: 0; opacity: 1; }
  80%   { top: 0; opacity: 1; }
  100%   { top: -100%; opacity: 0; }
}

@keyframes resultsdevicedesktop {
  0%    { top: 100%; opacity: 0; }
  20%   { top: 0; opacity: 1; }
  100%   { top: 0; opacity: 1; }
}

.results {
    position:absolute;
    top: 100%;
    opacity:0;
}

.results-wrapper.aos-animate .results--mobile {
    top: 0;
    opacity:1;
    animation: resultsdevicemobile .25s .75s ease forwards;
}

.results-wrapper.aos-animate .results--laptop {
    animation: resultsdevicelaptop 1s 1.25s ease forwards;
}

.results-wrapper.aos-animate .results--desktop {
    animation: resultsdevicedesktop .75s 2.5s ease forwards;
}


@media (min-width: 1400px) {
	.section--results {
		padding-top: calc(var(--section-p) + 1rem) !important;
	}
}

@media (min-width: 1680px) {
	.section--results {
		padding-top: var(--section-p) !important;
	}
}


/* ------------------------------------------------------------------------ Client Logos */
.logo-group .logo-wrapper {
    display:none;
}

.logo-group .logo-wrapper:nth-child(-n+5){
    display:block;
}

@media (min-width:992px){
    .logo-group .logo-wrapper:nth-child(-n+6){
        display:block;
    }
}

@media (min-width:1400px){
    .logo-group .logo-wrapper:nth-child(-n+7){
        display:block;
    }
}


@media (min-width: 768px) {
    .logo-group .logo-wrapper {
        width: fit-content;
        padding: 0 1.5rem;
    }
    
    .logo-group .logo-wrapper:first-child {
        padding-left: 0;
    }
    
    .logo-group .logo-wrapper:last-child {
        padding-right: 0;
    }
}



@media (min-width: 1200px) {
    .logo-group .logo-wrapper {
        width: fit-content;
        padding: 0 2rem;
    }
}





/* ------------------------------------------------------------------------ Testimonials */
/*
.testimonial-group .col {
    display:none;
}
*/

.testimonial-name {
	position: relative;
}

.testimonial-name:before {
	content: "";
	display: block;
	width: 2rem;
	height: .188rem;
	background-color: var(--blue);
	margin-bottom: 1.125rem;
}

@media (min-width: 768px) {
    .testimonial-group {
    	background: url(../../images/testimonial-bg.svg) no-repeat left .5rem;
    	background-size: 8rem;
    }
}

@media (min-width: 1200px) {
	.testimonial-group {
		background-size: 10rem;
	}
}

@media (min-width: 1400px) {
	.testimonial-group {
		background-size: 12rem;
		background-position: left 1.5rem;
	}
}

@media (min-width: 1680px) {
	.testimonial-group {
		background-size: 14rem;
	}
}


/* ------------------------------------------------------------------------ Let's Build */

.lets-build-heading {
	position: relative;
	text-align: center;
}

.lets-build-heading:before {
	content: "";
	background: url(../../images/logo-icon.svg) no-repeat center;
	display: block;
	width: 3rem;
	height: 3rem;
	margin:0 auto 2rem auto;
}


/* ------------------------------------------------------------------------ Stats */

.stats-wrapper {
	position: relative;
}

.stats {
	font-size: 5.5rem;
	font-weight: 700;
	line-height: 1;
	color: var(--blue);	
}


@media (min-width: 992px) {
	.stats-wrapper {
		flex: 1 1 auto;
	}
	
	.stats-wrapper:first-child {
	    width: 22.3%;
	}
	
	.stats-wrapper:nth-child(2) {
	    width: 29.6%;
	}
	
	.stats-wrapper:nth-child(3) {
	    width: 17.6%;
	}
	
	.stats-wrapper:last-child {
	    width: 30.5%;
	}

	.stats-wrapper:before {
		content: "";
		position: absolute;
		top: 0;
		border-right: 3px solid var(--grey);
		width: 3px;
		height: 100%;
	}

	.stats-wrapper:first-child:before {
		display: none;
	}

	.stats {
		font-size: 4rem;
	}
}

@media (min-width: 1200px) {
	.stats {
		font-size: 5.5rem;
	}
}

@media (min-width: 1680px) {
	.stats {
		font-size: 7rem;
	}
}


/* ------------------------------------------------------------------------ 30 Years */

.section--30-years {
    background: url(../../images/about-30-years-bg.png) no-repeat center top;
    background-size: 100%;
}

.logo--30-years {
    width: 19rem;
}

@media (min-width: 1400px) {
	.logo--30-years {
        width: 19rem;
    }
}


/* ------------------------------------------------------------------------ 30 Years */

.section--30-years {
    background: var(--grey-lt) url(../../images/about-30-years-bg.png) no-repeat center top;
    background-size: 80rem;
}

.logo--30-years {
    width: 12rem;
}

@media (min-width: 1200px) {
    .section--30-years {
        background-size: 90rem;
    }
}

@media (min-width: 1400px) {
	.section--30-years {
        background-size: 105rem;
    }
    
    .logo--30-years {
        width: 17rem;
    }
    
    .section--banner--home .logo--30-years {
        width: 14rem;
    }
}

@media (min-width: 1680px) {
	.section--30-years {
        background-size: 120rem;
    }
    
    .logo--30-years {
        width: 19rem;
    }
}


/* ------------------------------------------------------------------------ Services */

.services-icon {
	width: 6.5rem;
	height: 6.5rem;
	border-radius: 50%;
	background-color:  var(--blue);
	background-repeat: no-repeat;
	background-position: center;
	display: inline-block;
	margin-right: 1.5rem;
}

.services-icon--design {
    background-image: url(../../images/website-design-icon.svg);
    background-size:3.125rem;
}

.services-icon--develepment {
    background-image: url(../../images/software-development-icon.svg);
    background-size:2.938rem;
}

.services-icon--marketing {
    background-image: url(../../images/digital-marketing-icon.svg);
    background-size: 3.75rem;
}


@media (min-width: 1400px) {	
	.services-icon {
		width: 8rem;
		height: 8rem;
	}
}


/* ------------------------------------------------------------------------ Work */

.project {
    margin-bottom: var(--section-p-sm);
}

.project:last-child {
    margin-bottom: 0;
}

.project [data-aos^=fade][data-aos^=fade] {
    opacity:1;
}

.device-wrapper {
	background-color: var(--grey-lt);
	padding: 3rem 0;
	position: relative;
	overflow: hidden !important;
}

.device {
	margin: 0 auto;
	width: 92%;
	position: relative;
}

.ratio-video {
    position: absolute;
    top: 0;
    width: 93%;
    margin-top: 3.2%;
    background-color: black;
}

.ratio-video video {
    position: static;
}

.device--desktop--video {
    display: none;
    position: relative;
}

.device--desktop,
.device--desktop--video {
	width: 73.8%;
	margin-left: 7%;
}

.device--desktop,
.device--desktop--video-bg {
	aspect-ratio: 1 / .795;
}

.device--tablet {
	position: absolute;
	width: 30.8%;
	bottom: -3.9%;
	right: 0;
	aspect-ratio: 1 / 1.32;
}

.device--mobile {
	position: absolute;
	width: 14.6%;
	bottom: -3.9%;
	left: 0;
	aspect-ratio: 1 / 2.08;
}

@media (min-width: 992px) {
	.device-wrapper {
		padding: 4rem 0;
	}

	.device {
		margin: 0 auto;
		width: 82.5%;
		position: relative;
	}
	
	.device--desktop {
        display: none;
    }
    
    .device--desktop--video {
        display: block;
    }
}

@media (min-width: 1400px) {
	.device-wrapper {
		padding: 5.5rem 0;
	}
}


/* ------------------------------------------------------------------------ Careers */

@media (min-width: 992px) {
    .section--team-testimonials .container {
    	background: url(../../images/testimonial-bg-blue.svg) no-repeat left 1rem top;
    	background-size: 8rem;
    }
}

@media (min-width: 1200px) {
	.section--team-testimonials .container {
		background-size: 10rem;
	}
}

@media (min-width: 1400px) {
	.section--team-testimonials .container {
		background-size: 12rem;
	}
}

@media (min-width: 1680px) {
	.section--team-testimonials .container {
		background-size: 14rem;
	}
}


/* ------------------------------------------------------------------------ Callouts (Calls to Action) */

.cta {
	font-weight: 300;
	position: relative;
	cursor:pointer;
	text-decoration: none;
	color: inherit;
	box-shadow: none;
	display:  block;
}

.cta:hover {
	color: inherit;
	box-shadow: none;
}


/* ------------------------------------------------------------------------ Callouts with Icons */

.cta--icon {
    transition: all .25s ease;
}

.cta--icon:hover {
	opacity: 0.8;
	transform: translateY(-.5em);
}

.cta--icon__icon {
	width: 6.5rem;
	height: 6.5rem;
	margin:0 auto;
	border-radius: 50%;
	background-color:  var(--blue);
	background-repeat: no-repeat;
	background-position: center;
	transition: all .25s ease;
}

.cta--icon--design .cta--icon__icon {
    background-image: url(../../images/website-design-icon.svg);
    background-size:3.125rem;
}

.cta--icon--develepment .cta--icon__icon {
    background-image: url(../../images/software-development-icon.svg);
    background-size:2.938rem;
}

.cta--icon--marketing .cta--icon__icon {
    background-image: url(../../images/digital-marketing-icon.svg);
    background-size: 3.75rem;
}

.cta--icon--middle {
    position: relative;
}


@media (min-width: 1400px) {	
	.cta--icon__icon {
		width: 8rem;
		height: 8rem;
	}
}

@media (min-width: 992px) {
	.cta--icon--middle:before,
	.cta--icon--middle:after {
		content: "";
		position: absolute;
		top: 0;
		border-right: 3px solid var(--grey);
		width: 3px;
		height: 100%;
	}

	.cta--icon--middle:before {
		left: -13px;
	}

	.cta--icon--middle:after {
		right: -13px;
	}
}

@media (min-width: 1680px) {
	.cta--icon--middle:before {
		left: -25%;
	}

	.cta--icon--middle:after {
		right: -25%;
	}
}


/* ------------------------------------------------------------------------ Callouts for Listings */

.cta--listing {
	border-bottom: 3px solid var(--grey);
	padding-bottom: 2rem;
	margin-bottom: 2rem;
}

.cta--listing:first-child {
	border-top: 3px solid var(--grey);
	padding-top: 2rem;
}

.cta--listing:last-child {
	margin-bottom: 0;
}

.cta--listing__arrow {
	width: 3.5rem;
	height: 3.5rem;
	border: 3px solid var(--blue);
	border-radius: 50%;
	padding: .5rem !important;
	transition: all .25s ease;
}

.cta--listing__content {
	transition: all .25s ease;
}

.cta--listing:hover .cta--listing__content {
	transform: translateX(0.5rem);
}

.cta--listing:hover .cta--listing__arrow  {
	background-color: var(--blue);
	transform: translateX(0.5em);
}

.cta--listing__arrow svg {
    width: 1.5rem;
    height: 1.5rem;
    fill: var(--black);
    transition: all .25s ease;
}

.cta--listing:hover .cta--listing__arrow  svg {
	fill: var(--white);
}

@media (min-width: 1200px) {	
	.cta--listing {
		padding-bottom: 3rem;
		margin-bottom: 3rem;
	}

	.cta--listing:first-child {
		padding-top: 3rem;
	}
}

@media (min-width: 1400px) {	
	.cta--listing {
		padding-bottom: 3rem;
		margin-bottom: 3rem;
	}

	.cta--listing:first-child {
		padding-top: 3rem;
	}

	.cta--listing__arrow {
		width: 4rem;
		height: 4rem;
	}

	.cta--listing__arrow svg {
	    width: 2rem;
	    height: 2rem;
	}
}


/* ------------------------------------------------------------------------ Cards */

.card {
	border-radius: 0;
	border: 0;
	background-color: rgba(255,255,255,.5)
}

.card--border {
	border:  2px solid var(--grey-lt);
}

.card-body {
	padding: 2rem;
}

.card a {
	text-decoration: none;
	color: inherit;
	transition: all 0.25s ease-in-out;
}


/* ------------------------------------------------------------------------ List Group */

.list-group {
    border-radius: 0;
}

.list-group-item {
    padding: .75rem 1rem;
    color: var(--black);
    background-image: none;
}

.list-group-item:last-child {
    padding-bottom: .75rem;
}


/* ------------------------------------------------------------------------ Accordions */

.accordion-button {
	border: 1px solid transparent;
}

.accordion-button:not(.collapsed) {
    color: var(--black);
    background-color: var(--grey-lt);
}

.accordion-button:not(.collapsed)::after { 
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.accordion-button:focus {
    outline: solid thin rgba(0, 0, 0, 0.5);
    box-shadow: none;
    border: 1px solid transparent;
}

.accordion-flush .accordion-item:last-child {
	border-bottom: 1px solid rgba(0,0,0,.125);
}

.accordion-flush .accordion-button {
	padding: 1rem .5rem;
}

.accordion-flush .accordion-body {
    padding: 1rem .5rem;
}


/* ------------------------------------------------------------------------ Tables */

.table {
	margin-bottom: 0;
}

.table td, .table th {
    border-bottom: 1px solid var(--grey-lt);
    padding: 1rem .5rem;
    vertical-align: middle;
}

.table th {
    font-weight: 500;
}

.table thead th {
    font-weight: 500;
    text-transform: uppercase;
    line-height: 1.2;
}

/* ------------------------------------------------------------------------ Rates Table */

.table.rates {
}

.table.rates tr td, .table.rates th {
    font-size: 1em;
    border: solid 1px var(--white);
    text-align: center;
}

.table.rates tr td:first-child {
    text-align: left;
}

.table.rates thead {
    background-color: var(--blue);
    color: var(--white);
}

.table.rates tr td:nth-child(4) {
    background: var(--grey-lt);
    font-weight: bold;
}

.table.rates img {
    width: 100%;
    max-width: 30px;
}

.table.rates span.price {
    font-size: 20px;
    font-weight: bold;
}

.table.rates td.special {
    background-color: var(--blue-lt) !important;
}


/* ------------------------------------------------------------------------ Pagination */

.pagination {
	flex-wrap: wrap;
	margin-top: 3rem;
}

.page-item {
	background-image: none;
	padding: 0;
	margin: 0 0 .5rem 0;
}

.page-item:first-child .page-link, .page-item:last-child .page-link {
	border-radius: 0;
}

.page-item--prev .page-link,
.page-item--next .page-link {
	background: var(--grey) url(../../images/arrow-white.svg) no-repeat center;
	background-size: .5rem;
}

.page-item--prev .page-link {
	transform: rotate(180deg);
}

.page-item--prev .page-link:hover,
.page-item--next .page-link:hover {
	background-color: var(--grey);
	color: var(--white);
}


.page-link {
	min-width:2.5rem;
	height: 2.5rem;
	padding: .375rem .625rem 0 .625rem;
	color: var(--grey-dark);
	background-color: var(--white);
	border-color: var(--white);
	text-align: center;
	border-left:  1px solid var(--grey-lt);
}

.page-link:hover {
	background-color: var(--grey-lt);
	border-color: var(--white);
	color: var(--grey);
}

.page-item.active .page-link {
	background-color: var(--grey);
	border-color: var(--white);
	font-weight: 500;
}


@media (min-width: 1400px) {
	.page-link {
		min-width:2.75rem;
		height: 2.75rem;
		padding: .5rem .75rem 0 .75rem;
	}

	.page-item--prev .page-link,
	.page-item--next .page-link {
		background-size: .75rem;
	}
}

	
/* ------------------------------------------------------------------------ Forms */
	
::-webkit-input-placeholder { /* Chrome/Opera/Safari */
    color: var(--black) !important;
}
::-moz-placeholder { /* Firefox 19+ */
    color: var(--black) !important;
}
::-ms-input-placeholder { /* IE 10+ */
    color: var(--black) !important;
}
::-moz-placeholder { /* Firefox 18- */
    color: var(--black) !important;
}

::placeholder { /* Firefox 18- */
    color: var(--black) !important;
}

.required-input {
	color: var(--error) !important;
	font-size: 0.875rem;
	font-weight:500;
}

legend {
	font-size: 1rem;
}

label.umbraco-forms-label {
    display:none !important;
}

.form-control, .form-select,
.umbraco-forms-container .text,
.umbraco-forms-form textarea {
	border-radius:0 !important;
	border-color: var(--grey) !important;
	padding: .75rem 1rem !important;
	color: var(--black) !important;
	font-size: 1rem !important;
	font-weight:300 !important;
}

.form-control--lg,
.umbraco-forms-container .text,
.umbraco-forms-form textarea {
    padding: 1.125rem 1rem !important;
    border-width: 3px !important;
}

.form-control-lg.form-control--file {
	font-size: 1rem;
}

.form-control:focus, .form-select:focus, .form-check-input:focus,
.umbraco-forms-container .text:focus,
.umbraco-forms-form textarea:focus {
    color: var(--black) !important;
    border-color: var(--grey-lt) !important;
    outline: 0 !important;
    box-shadow: 0 0 0 0.125rem rgb(0 0 0 / 25%) !important;
}


.form-check-input {
    border: 1px solid var(--grey-lt);
}

.form-check-input[type=checkbox] {
    border-radius: 0;
}

.form-check-input:checked {
    background-color: var(--grey);
    border-color: var(--grey);
}

.checkbox-link {
    padding-left: 1.5rem;
}


.form-switch .form-check-input {
    border-radius: 2em;
}

.form-switch .form-check-input:focus {
	background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e);
}

.form-text {
    margin-top: .5rem;
    font-size: .875rem;
    color: var(--grey);
}

.umbraco-forms-form input.text, .umbraco-forms-form textarea {
    max-width: 100% !important;
    width: 100%;
}


@media (min-width: 1400px) {
	legend,
	.form-control, 
	.form-select,
	.form-control-lg.form-control--file,
	.form-check-label,
	.umbraco-forms-container .text,
	.umbraco-forms-form textarea {
		font-size: 1.125rem !important;
	}

	.form-check-input {
	    margin-top: .313rem;
	}

	.form-text {
	    margin-top: .5rem;
	    font-size: 1rem;
	    color: var(--grey);
	}	
}


/* ------------------------------------------------------------------------ To Top */

.to-top {
	position: fixed;
	opacity: 0;
	bottom: 1rem;
	right: 1rem;
	text-align: center;
	width: 3rem;
	height: 3rem;
	cursor: pointer;
	background: var(--white);
	border: 3px solid var(--blue);
	border-radius: 50%;
	z-index: 10;
	visibility: hidden;
	transform: rotate(-90deg);
	transition: all .25s ease;
}

.to-top:hover {
	background-color: var(--blue);
	transform: translateY(-0.5em) rotate(-90deg);
}

.to-top svg {
    width: 1.5rem;
    height: 1.5rem;
    fill: var(--black);
}

.to-top:hover svg {
	fill: var(--white);
}

.to-top.show {
	opacity: 1;
	visibility: visible;
}



/* ------------------------------------------------------------------------ Page Transitions - https://github.com/TylerPottsDev/js-page-transitions-basic - https://www.youtube.com/watch?v=ckJ7gdIeebc */

/*.transition {*/
/*  position: fixed;*/
/*  bottom: 100%;*/
/*  left: 0;*/
/*  width: 100%;*/
/*  height: 100%;*/
/*  z-index: 1050;*/
/*  background-color: var(--black);*/
/*  background: linear-gradient(0deg, rgba(38,43,54,1) 0%, rgba(25,27,35,1) 100%);*/
/*  transition: 0.15s ease;*/
/*}*/

/*.transition.is-active {*/
/*  bottom: 0;*/
/*}*/

/*@keyframes transitionlogo {*/
/*  0%    { opacity: 1; }*/
/*  50%   { opacity: .75; }*/
/*  100%   { opacity: 1; }*/
/*}*/


/*.transition__logo {*/
/*    width: 6rem;*/
/*    height: 6rem;*/
/*    position:fixed;*/
/*    left: calc(50% - 3rem);*/
/*    top: calc(50% - 3rem);*/
/*    opacity:0;*/
/*    transition: 0.15s ease;*/
/*    display:none;*/
/*}*/

/*.transition.is-active .transition__logo {*/
/*    opacity: 1; */
/*    fill: var(--blue);*/
/*    display:block;*/
/*}*/

/*.transition.is-active .transition__logo__square1 {*/
/*    animation: transitionlogo .75s infinite;*/
/*}*/

/*.transition.is-active .transition__logo__square2 {*/
/*    animation: transitionlogo .75s .25s infinite;*/
/*}*/

/*.transition.is-active .transition__logo__square3 {*/
/*    animation: transitionlogo .75s .375s infinite;*/
/*}*/

/*.transition.is-active .transition__logo__square4 {*/
/*    animation: transitionlogo .75s .125s infinite;*/
/*}*/

/*.transition.is-active .transition__logo__square5 {*/
/*    animation: transitionlogo .75s infinite;*/
/*}*/

/*.transition.is-active .transition__logo__square6 {*/
/*    animation: transitionlogo .75s  infinite;*/
/*}*/

/*.transition.is-active .transition__logo__square7 {*/
/*    animation: transitionlogo .75s .25s infinite;*/
/*}*/

/*.transition.is-active .transition__logo__square8 {*/
/*    animation: transitionlogo .75s infinite;*/
/*}*/


/* =============================================================================================
	FOOTER
============================================================================================= */

.print-footer { 
	display:none;
}

.footer { 
	margin-top: auto!important;
	padding: var(--section-p) 0;
	position: relative;
	background-color: var(--black-dk);
	color: var(--white);
	clip-path: polygon(0 3rem, 100% 0, 100% 100%, 0 100%);
	padding-top: calc(var(--section-p) + 4rem);
}

.footer__link,
.footer__sub-link {
	color: var(--white);
}	

.footer__link:hover,
.footer__sub-link:hover {
	color: var(--blue-lt);
}

.footer-logo {
	width: 8rem;
}

.footer p,
.footer__sub-link {
	font-weight: 200;
}
		
.social {
	margin-left: -.75rem;
}

.social__icon {
	display: inline-block;
	width: 3rem;
	height: 3rem;
	margin: 0 .375rem 0 0;
	background-repeat: no-repeat;
	background-position: center center;
	border-radius:50%;
	background-size: 3rem 3rem;
	transition: all .25s ease;
}

.social__icon:hover { 
	transform: translateY(-.25em);
}
	
.social__icon--facebook { 
	background-image: url(../../images/social-facebook.svg); 
}

.social__icon--linkedin { 
	background-image: url(../../images/social-linkedin.svg); 
}

.social__icon--twitter { 
	background-image: url(../../images/social-twitter.svg); 
}