html { 
	font-size: calc(0.75rem + 0.41666666666666663vw) !important;
	/* scroll-behavior: smooth; */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
  @media screen and (max-width:1920px) { html { font-size: calc(0.75rem + 0.41666666666666674vw) !important; } }
  @media screen and (max-width:1440px) { html { font-size: calc(0.9376951092611863rem + 0.20811654526534862vw) !important; } }
  @media screen and (max-width:479px) { html { font-size: calc(0.8747384937238494rem + 0.41841004184100417vw) !important; } }


h3 > sup{
	font-size: 0.875rem;
	font-weight: 400;
	bottom: 1.45rem;
	position: absolute;
    top: 0.55rem;
}

::selection {
	color: white;
	background: #7365b3; 
}

::-moz-selection {
	color: white;
	background: #7365b3;
}

.project-key-insights-wrapper h3{
	width: max-content;
}

.project-key-insights-wrapper .project-key-insight-col .project-key-h3 > div{
	display: flex;
    justify-content: center;
}

/*====================================================
# Nav Color Variables
====================================================*/
:root {
	--nav-color-light: #F5F2F0;
	--nav-color-dark: #1e2f38;
	--nav-bg-transparent: rgba(255, 255, 255, 0);
	--nav-bg-sticky: rgba(255, 255, 255, 0.8);
	--nav-bg-mobile-open: rgba(21, 33, 39, 0.97);
	--nav-blur-sticky: blur(24px);
	--nav-shadow-sticky: 0 0px 80px rgba(0, 0, 0, 0.1);
	--nav-transition-duration: 0.4s;
	--blur-project-hero: 0px;
	--brightness-project-hero: 0.8;
}

#nav-bar-hero, #nav-bar-hero-inner, #nav-bar,
.et-db #et-boc .et-l #nav-bar-hero{
	position: fixed !important;
	display: flex; 
    top: 0;
    left:0;
    z-index: 900;
	flex-direction: row;
	width: 100%;
	max-width: 100%;
    padding: 1.75rem 5vw 1.75rem 5vw;
	transition: padding 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95);
}

#nav-bar, .nav-bar, #nav-bar.nav-bar,
.et-db #et-boc .et-l #nav-bar, .et-db #et-boc .et-l #nav-bar.nav-bar {
	padding: 1.75rem 2.5vw 1.75rem 2.5vw;
}

/* Sticky Navigation */

#nav-bar-hero.sticky,
#nav-bar-hero-inner.sticky,
#nav-bar.sticky {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    box-shadow: 0 0px 80px rgba(0, 0, 0, 0.1);
	padding: 1rem 5vw 1rem 5vw !important;
}

/* Dark menu links when sticky (removed !important to allow GSAP animations) */
#nav-bar-hero.sticky .menu ul > li.menu-item > a,
#nav-bar-hero-inner.sticky .menu ul > li.menu-item > a,
#nav-bar.sticky .menu ul > li.menu-item > a {
    color: #1e2f38;
}

#nav-bar .nav-logo-container svg#logo-light-version .letters,
#nav-bar .nav-logo-container svg#logo-light-version .logo-features{
	fill: #1e2f38;
}

.nav-bar-container > .et_pb_module.et_pb_code > .et_pb_code_inner{
	display: flex;
	flex-direction: row;
	position: relative;
}

#nav-bar-hero::after{
	content: "";
	/* display: flex; */
	display: none;
	position: absolute;
	top: 0;
	left: 2.5vw;
	width: 95vw;
	height: 10rem;
	background-image: linear-gradient(180deg, rgba(3, 5, 6, 0.6) 0%, rgba(30, 47, 56, 0) 100%);
	background-size: cover;
	background-position: 50%;
	background-repeat: no-repeat;
	mix-blend-mode: multiply !important;
	visibility: visible;
	pointer-events: none;
	z-index: 1;
	opacity: var(--nav-after-opacity, 1);
}

#nav-bar-hero::after > div, #nav-bar::after > div{
    margin-bottom:0;
}

#nav-bar-hero .menu,
#nav-bar-hero-inner .menu,
#nav-bar .menu{
	display: flex;
	flex: 1 0 55%;
	width: 100%;
    align-items: stretch;
    background: transparent;
    justify-content: center;
}

#nav-bar-hero .menu nav.main-navigation,
#nav-bar-hero-inner .menu nav.main-navigation,
#nav-bar .menu nav.main-navigation{
	display: flex;
}

#nav-bar-hero .menu ul.nav-menu,
#nav-bar-hero-inner .menu ul.nav-menu,
#nav-bar .menu ul.nav-menu{
	display: inline-flex;
	padding:0;
	list-style-type: none;
}

#nav-bar-hero .menu ul > li.menu-item,
#nav-bar-hero-inner .menu ul > li.menu-item,
#nav-bar .menu ul > li.menu-item{
	display: flex;
    align-items: center;
}

#nav-bar-hero .menu ul > li.menu-item > a,
#nav-bar-hero-inner .menu ul > li.menu-item a,
#nav-bar .menu ul > li.menu-item a{
	display: flex;
	padding: 0.5rem 1.75rem;
    align-items: center;
    height: 100%;
	font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif;
    font-weight: 400;
    text-transform: uppercase;
    font-size: 0.75rem;
    color: #FFFFFF;
    letter-spacing: -0.01rem;
    line-height: 120%;
	position: relative;
	transition: color 0.3s ease;
}

#nav-bar .menu ul > li.menu-item a{
	color: #1e2f38;
}

/* 1. SHARED BASE STYLES */
/* This sets up the look for ALL menu item underlines */
#nav-bar-hero .menu ul > li.menu-item > a::after,
#nav-bar-hero-inner .menu ul > li.menu-item > a::after,
#nav-bar .menu ul > li.menu-item > a::after {
    content: '';
    position: absolute;
    bottom: 0.8rem; /* Adjust to position the line */
	left: 1.75rem;
	right: 1.75rem;
	height: 0.1rem;
    background-color: #A490FF;
    z-index: -1;
    /* Default to invisible/scaled down */
    transform: scaleX(0);
    /* This makes it shrink to the RIGHT when hover ends */
    transform-origin: right;
    transition: transform 0.8s cubic-bezier(0.19, 1, 0.22, 1);
}

/* 2. HOVER STATE (Non-active items) */
/* When you hover, it grows from the LEFT */
#nav-bar-hero .menu ul > li:not(.current-menu-item) > a:hover::after,
#nav-bar-hero-inner .menu ul > li:not(.current-menu-item) > a:hover::after,
#nav-bar .menu ul > li:not(.current-menu-item) > a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

/* 3. ACTIVE STATE (Current page item) */
/* This ensures the 'current' item underline is always visible */
#nav-bar-hero .menu ul > li.current-menu-item > a::after,
#nav-bar-hero-inner .menu ul > li.current-menu-item > a::after,
#nav-bar .menu ul > li.current-menu-item > a::after {
    transform: scaleX(1);
}

#nav-bar-hero .nav-button,
#nav-bar-hero-inner .nav-button
#nav-bar .nav-button{
	width: max-content;
	display: flex;
	justify-content: flex-end;
}

#nav-bar-hero .nav-button > a,
#nav-bar-hero-inner .nav-button > a,
#nav-bar .nav-button > a{
	color: #ffffff !important;
    border-width: 0rem !important;
    border-radius: 0.5rem;
    font-size: 0.8rem;
	line-height: 1.6rem;
    font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    background-color: #a490ff;
	padding: 0.88rem 1.5rem 0.88rem 1.5rem;
	transition: all 300ms ease 0ms;
}

#nav-bar-hero .nav-button > a:hover,
#nav-bar-hero-inner .nav-button > a:hover,
#nav-bar .nav-button > a:hover{
	background-color: #7365b3;
}

/* Desktop: Hide Contact link in menu, show nav-button */
@media (min-width: 981px) {
    #nav-bar-hero .menu ul > li.menu-item:has(a[href*="contact"]),
    #nav-bar-hero-inner .menu ul > li.menu-item:has(a[href*="contact"]),
    #nav-bar .menu ul > li.menu-item:has(a[href*="contact"]) {
        display: none;
    }

    #nav-bar-hero .nav-button,
    #nav-bar-hero-inner .nav-button,
    #nav-bar .nav-button {
        display: flex;
    }
}

.nav-logo-container{
	width: max-content;
	display: flex;
	align-items: center;
    z-index: 9999 !important;
}

.nav-logo-container a > svg{
	width: 210px;
	display: block;
}



/*====================================================
# Hamburger Menu
====================================================*/

/* Hide hamburger on desktop */
#mobile-menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: space-around;
    width: 2rem;
    height: 2rem;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 10001;
    position: relative;
}

#mobile-menu-toggle span {
    width: 100%;
    height: 0.2rem;
    background: #F5F2F0;
    border-radius: 10px;
    transition: all 0.3s ease;
    transform-origin: center;
}

#nav-bar #mobile-menu-toggle span{
	background: #1e2f38;
}

/* Dark hamburger spans when nav is sticky */
#nav-bar-hero.sticky #mobile-menu-toggle span,
#nav-bar-hero-inner.sticky #mobile-menu-toggle span,
#nav-bar.sticky #mobile-menu-toggle span {
    background: #1e2f38;
}

#page-container:has(#nav-bar.nav-bar) #main-content .et_pb_section:first-child {
	margin-top: 5.5rem;
}

/* Hamburger animation to X when active */
#mobile-menu-toggle.active span:nth-child(1) {
    transform: translateY(0.68rem) rotate(45deg);
}

#mobile-menu-toggle.active span:nth-child(2) {
    opacity: 0;
}

#mobile-menu-toggle.active span:nth-child(3) {
    transform: translateY(-0.68rem) rotate(-45deg);
}

.mobile_menu_bar{
    position:relative;
    display:flex;
    z-index:990;
}

/*style the opened menu*/
#nav-header .opened #mobile_menu1 {
	width: 100vw !important;
	position: fixed !important;
	top: 0rem !important;
	left: 0vw !important;
	height: 100vh !important;
	display: flex !important;
	justify-content: center !important;
	flex-direction: column !important;
	opacity: 1 !important;
	visibility: visible !important;
	transition: visibility 0.4s, opacity 0.4s ease-in-out;
	padding: 0 !important;
    backdrop-filter: blur(6px);
    background-color:transparent !important;
    background-size: 100% 100%;
    background-position: 0px 0px;
    background-image: linear-gradient(170deg, rgba(21, 33, 39, 0.97) 55%, rgba(115, 101, 179, 0.9) 100%);
    background-blend-mode: multiply;
	padding-top: 6.5rem !important;
}
/*style the closed menu*/
#nav-header .closed #mobile_menu1 {
	text-align: center !important;
	width: 100vw !important;
	position: fixed !important;
	left: 100vw !important;
	top: 0em !important;
	height: 100vh !important;
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	flex-direction: column !important;
	transition: visibility 1s, opacity 0.7s, ease-out;
	opacity: 0 !important;
	visibility: hidden !important;
}

/*move the menu to the top above other elements*/
#nav-header .et_pb_menu__wrap span.mobile_menu_bar,
.et_pb_menu_0_tb_header .et_pb_menu_inner_container > .et_pb_menu__logo-wrap {
	z-index: 999999 !important;
}
/*change the opened menu icon*/
#nav-header .et_pb_menu__wrap .closed .mobile_menu_bar::before{
    transition: transform 0.3s ease-in-out;
    transform: translateX(0.85rem) rotate(0deg);
}
#nav-header .et_pb_menu__wrap .opened .mobile_menu_bar::before {
    transition: transform 0.3s ease-in-out;
	content: "\4d" !important;
    transform: translateX(0.85rem) rotate(180deg);
}

#nav-header.dark .et_pb_menu__wrap .closed .mobile_menu_bar::before,
#nav-header.dark .et_pb_menu__wrap .opened .mobile_menu_bar::before,
#nav-header.light .et_pb_menu__wrap .opened .mobile_menu_bar::before{
	color:#FFF;
}

#nav-header.light .et_pb_menu__wrap .closed .mobile_menu_bar::before{
	color:#1E2F38;
}

/*remove the default blue border top on the mobile menu*/
#nav-header .et_mobile_menu {
	border-top: none;
}

/*remove the default background color on menu items*/
#nav-header .et_mobile_menu .menu-item-has-children > a {
	background-color: transparent;
}
/*remove the default hover background color and adjust opacity*/
.et_mobile_menu li a:hover {
	background-color: transparent;
	opacity: 1;
}
/*remove the default border bottom on menu items*/
#nav-header .et_mobile_menu li a {
	border-bottom: none;
	padding: 1rem 7.5vw;
	font-size: 1.75rem;
}

/* Only for pages with light-nav class - white active nav links */
#nav-bar.light-nav ul li.current-menu-item a,
#nav-bar.light-nav ul li.current-menu-ancestor a,
#nav-bar.light-nav ul li.current_page_item a {
    color: #ffffff !important;
}

/* FOOTER */
#footer{
	display:flex;
	flex-direction: column;
	position:relative;
	z-index:1;
  }
  
#footer:before{
	content:" ";
	width: 164px;
	height:118px;
	display:block;
	position:absolute;
	top:0;
	right:0;
	z-index:10;
	background:url('../../../uploads/2024/07/slider-corner.svg') no-repeat;
	rotate:180deg;
  }

@media (max-width: 980px) {

	#footer:before{
		width: 88px;
		height: 64px;
	}
  
}

#intro-hp{
	display: flex;
    flex-direction: row;
}

#intro-hp .logo-outline-container{
	width: fit-content;
	height: fit-content;
	position: absolute;
	z-index: -1;
	top: -5%;
	left: 10%;
	pointer-events: none;
}

/* #intro-hp .logo-outline-container #logo-outline-thin > g > path{
	stroke:red;
} */

/* Span Lines Animation - word reveal effect */
.span-line {
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
}

.span-line-inner {
	display: inline-block;
}

.services-tile{
  display:inline-flex;
  margin-bottom:0 !important;
  max-width: 30rem !important;
  padding: 2rem 2.5rem;
  background-color: transparent;
  border-radius: 1rem;
  border: 1px solid #ffffff;
  text-decoration: none;
	color: inherit;
	font-size: 1rem;
	line-height: 1.6;
	transition: box-shadow 0.3s ease-in-out, transform 0.4s ease-in-out, background-color 0.4s ease-in-out, border 0.4s ease-in-out;
	position: relative;
}

.services-tile::after{
	content: '';
	position: absolute;
	top: 50%;
	right: -0.25rem;
	transform: translateY(-50%);
	width: 1px;
	height: 70%;
	background-color: #f1f1f1;
	z-index: 0;
	transition: opacity 0.3s ease;
}

/* Fade out ::after on hovered tile */
.services-tile:hover::after {
	opacity: 0;
}

/* Fade out ::after on tile BEFORE the hovered one */
.services-tile:has(+ .services-tile:hover)::after {
	opacity: 0;
}

.services-tile > .et_pb_blurb_content{
	min-width: 18rem;
	text-align: center !important;
}

.services-tile:hover{
	transform: translateY(-0.25rem);
	box-shadow: 0px 20px 40px -8px rgba(73, 73, 72, 0.1);
	border: 1px solid #f1f1f1;
	text-decoration: none;
	color: inherit;
}

@media (hover: none) {
	.services-tile:hover{
		transform: none;
		box-shadow: none;
		border: 1px solid #f1f1f1;
	}
	.services-tile:hover::after,
	.services-tile:has(+ .services-tile:hover)::after{
		opacity: 1;
	}
	.services-tile:hover .solution-icon-svg path,
	.services-tile:hover .solution-icon-svg circle,
	.services-tile:hover .solution-icon-svg rect,
	.services-tile:hover .solution-icon-svg polygon{
		fill: unset;
	}
}

/* Center-active card — mirrors :hover, toggled by JS */
.services-tile--active {
	transform: translateY(-0.25rem);
	box-shadow: 0px 20px 40px -8px rgba(73, 73, 72, 0.1);
	border: 1px solid #f1f1f1;
}

.services-tile--active::after,
.services-tile:has(+ .services-tile--active)::after {
	opacity: 0;
}

.services-tile--active .solution-icon-svg path,
.services-tile--active .solution-icon-svg circle,
.services-tile--active .solution-icon-svg rect,
.services-tile--active .solution-icon-svg polygon {
	fill: #a490ff;
}

.secondary-btn{
	width: fit-content;
	position: relative;
	color: #1e2f38;
    border: 0.13rem solid #1e2f38;
    border-radius: 0.5rem;
    font-size: 0.8rem;
    font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif;
    font-weight: 500;
    text-transform: uppercase;
	text-wrap: nowrap;
    background-color: RGBA(255, 255, 255, 0);
	padding: 0.75rem 2.75rem 0.75rem 1.5rem;
	line-height: 1.7rem;
	transition: color 300ms ease-out 0ms, background-color 300ms ease-out 0ms, border-color 300ms ease-out 0ms;
}

.secondary-btn:hover{
	color: #ffffff !important;
    border-color: #1e2f38 !important;
    background-image: initial;
    background-color: #1e2f38;
}

.secondary-btn::before,
.secondary-btn::after{
	transition: color 300ms ease-out 0ms, transform 300ms ease-out 0ms;
	transform: translateX(0);
}

.secondary-btn::after{
	content: attr(data-icon);
	color: #1e2f38;
    line-height: inherit;
    font-size: inherit !important;
    opacity: 1;
	margin-left: 0.7rem !important;
	position: absolute;
    left: auto;
    font-family: ETmodules !important;
    font-weight: 400 !important;
}

.secondary-btn:hover::after{
	color: #fff;
	transform: translateX(0.2rem);
}

.secondary-btn:hover::before{
	color: #ffffff;
	transform: translateX(-0.2rem);
}


/* Inline SVG icon styling */
.services-tile .solution-icon-svg{
	width: 100%;
	height: auto;
	transition: fill 0.5s ease-out, filter 0.5s ease-out;
}

.services-tile svg.solution-icon-svg{
	width: 4.5rem;
	height: 4.5rem;
}
.services-tile .et_pb_main_blurb_image{
	margin-bottom: 1rem;
}

.services-tile .solution-icon-svg path,
.services-tile .solution-icon-svg circle,
.services-tile .solution-icon-svg rect,
.services-tile .solution-icon-svg polygon{
	transition: fill 0.5s ease-out;
}

.services-tile:hover .solution-icon-svg path,
.services-tile:hover .solution-icon-svg circle,
.services-tile:hover .solution-icon-svg rect,
.services-tile:hover .solution-icon-svg polygon{
	fill: #a490ff; /* Change this to your desired hover color */
}

.services-tile h3{
	font-size: 1.5rem;
	line-height: 1.5;
	letter-spacing: -0.01rem;
}

.services-slider-wrapper .et_pb_button_module_wrapper{
	display: flex;
	align-items: center;
	padding: 0 4.1rem;
}

.services-slider-wrapper > .et_pb_button_module_wrapper > a{
	height: max-content;
}

#hp-slider .et_pb_slide_overlay_container{
	background: linear-gradient(180deg, rgba(18, 28, 34, 0.3) 50%, rgba(18, 28, 34, 0.9) 100%);
    mix-blend-mode: multiply;
}

#hp-slider .et_pb_slides .et_pb_slider_container_inner{
	vertical-align: bottom;
}

#hp-slider .et_pb_slide_description{
	padding:2rem 2rem 11.375rem 1rem;
}

#portfolio{
	margin-bottom: 3.5rem;
}

#portfolio.portfolio-filterable {
	margin-bottom: 0;
}

#portfolio .et_pb_portfolio_item{
	display:flex;
	flex-direction: column;
	position:relative;	
}

#portfolio .et_pb_portfolio_item{
	margin-bottom: 7rem;
}

#portfolio .et_pb_portfolio_item.projects-last-page{
	margin-bottom: 0;
}

/* Homepage: no pagination present, so last item always needs margin reset */
#portfolio:not(:has(.et_pb_portofolio_pagination)) .et_pb_portfolio_item:last-child{
	margin-bottom: 0;
}

#portfolio .et_pb_portfolio_item > a{
	display:flex;
	flex-direction: column;
    justify-content: center;
}

#portfolio .portfolio-item-caption{
	width: 100%;
    padding: 0 2.5rem 2.5rem;
    display: flex;
    flex-direction: row;
    position: absolute;
    bottom: 0;
    z-index: 2;
    justify-content: space-between;
    flex-wrap: wrap;
}

#portfolio .portfolio-item-caption .portfolio-category-and-title{
	display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

#portfolio .portfolio-item-caption .portfolio-category-and-title > h2.et_pb_module_header,
#portfolio .portfolio-item-caption .portfolio-category-and-title > h2.et_pb_module_header > a,
#portfolio .portfolio-item-caption .portfolio-category-and-title > p.post-meta,
#portfolio .portfolio-item-caption .portfolio-category-and-title > p.post-meta > a{
	color:#FFF;
}

#portfolio .portfolio-item-caption .portfolio-category-and-title > h2.et_pb_module_header,
#portfolio .portfolio-item-caption .portfolio-category-and-title > h2.et_pb_module_header > a{
	font-size: 2rem !important;
	line-height: 110%;
	padding-bottom: 0px;
	margin-top:0rem !important;
}

#portfolio .portfolio-item-caption > p.post-meta{
	display: inline-flex;
    gap: 0.5rem;
    margin-top: 1.5rem;
    align-items: flex-end;
    flex-wrap: wrap;
}

#portfolio .portfolio-item-caption > p.post-meta > span.updated-category-link{
	padding: 0.5rem 0.75rem;
	color:#FFF;
	background-color:rgba(255,255,255, 0.15);
	backdrop-filter: blur(8px);
	border-radius: 20rem;
	text-transform: uppercase;
	font-size: 0.6875rem;
	font-weight:500;
	line-height: 120%;
}

#portfolio .portfolio-category-and-title .project-thumb-subtitle {
    margin: 0.35rem 0 0;
    font-size: 1rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.3;
    letter-spacing: 0.02em;
}

#portfolio .portfolio-item-caption .portfolio-category-and-title > a[rel="tag"],
#portfolio .portfolio-item-caption .portfolio-category-and-title > span.updated-category-link{
	text-transform: uppercase;
	font-size: 1rem;
	font-weight:600;
	line-height: 1.25rem;
	margin: auto 0 0.5rem 0;
	color:#FFF !important;
}

#portfolio span.et_portfolio_image{
	display:flex;
	align-self:center;
	position:relative;
	overflow:clip;
}

#portfolio span.et_portfolio_image {
	width:88vw;
}


#portfolio span.et_portfolio_image > img{
	width:100%;
	height:100%;
	max-height: 85vh;
	object-fit: cover;
	border-radius: 1rem;
	aspect-ratio: 16/9;
}

#portfolio span.et_portfolio_image {
  /* --before-border-radius: 1rem; */
  --before-opacity: 0.9;
}

#portfolio span.et_portfolio_image:before {
  content: '';
  z-index: 1;
  width: 100%;
  height: 100%;
  display: flex;
  position: absolute;
  background: linear-gradient(180deg, rgba(18, 28, 34, 0) 35%, rgba(18, 28, 34, var(--before-opacity, 1)) 100%);
  mix-blend-mode: multiply;
  border-radius: 1rem;
  opacity: var(--before-opacity, 1);
}

#portfolio .et_pb_portfolio_item.active {
    animation: none !important;
}

#portfolio .et_pb_portfolio_filters{
	max-width:100%;
	display: flex;
    align-items: stretch;
	margin: 0 0 5.5rem;
	overflow-x: auto;
	padding:0.1rem 5rem 1rem;
}

#portfolio .et_pb_portfolio_filters ul{
	display: inline-flex;
    gap: 1.25rem;
    align-items: center;
	margin:0 auto;
	flex-wrap: wrap;
    justify-content: center;
}

#portfolio .et_pb_portfolio_filters ul.clearfix::after{
	display: none !important;
}

#portfolio .et_pb_portfolio_filters ul li.et_pb_portfolio_filter{
	width: max-content;
}

#portfolio .et_pb_portfolio_filters ul li.et_pb_portfolio_filter a{
	padding: 1rem 2rem;
	border-radius: 0.75rem;
	border: 0.09375rem solid #E9EAEB;
	transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, border 0.3s ease-in-out;
	white-space: nowrap;
}

#portfolio .et_pb_portfolio_filters ul li.et_pb_portfolio_filter a:hover{
	background-color: #E9EAEB;
}

#portfolio .et_pb_portfolio_filters ul li.et_pb_portfolio_filter a.active{
	background-color: #1E2F38 !important;
	color: #FFFFFF !important;
	border: 0.09375rem solid #1E2F38;
}

.et_pb_filterable_portfolio .et_pb_portofolio_pagination  {
    border: none !important;
}


#blog-widget > div:has(article){
	display:flex;
	flex-direction: row;
	align-items: stretch;
	gap: 2.5rem;
}

#blog-widget > div:has(article) > article{
	flex: 1;
	display: flex;
	flex-direction: column;
	margin-bottom: 0;
	padding-bottom: 0;
}

#blog-widget > div:has(article) > article:last-child{
    display: flex;
    flex-direction: column;
}

#blog-widget > div:has(article) > article:only-child,
#blog-widget > div:has(article) > article:only-of-type{
	flex-direction: row;
	gap:3rem;
}

#blog-widget > div:has(article) > article > a:has(img){
	margin:0 0 1rem;
	flex: 1;
	border-radius: 0.5rem;
	display: flex;
    justify-content: center;
    align-items: center;
    overflow: clip;
	min-height: 8.75rem;
    flex: 0 0 auto; /* Don't grow, don't shrink, auto basis */
}

#blog-widget > div:has(article) > article:not(:only-child):not(:only-of-type) > a:has(img){
	width: 100%;
	aspect-ratio: 16 / 9;
}

#blog-widget > div:has(article) > article:only-child > a:has(img){
	flex: 1;
	width: 100%;
	aspect-ratio: 16 / 9;
}

#blog-widget > div:has(article) > article:only-child > a:has(img),
#blog-widget > div:has(article) > article:only-of-type > a:has(img){
	margin: 0;
}

#blog-widget > div:has(article) > article > a:has(img) > img{
	width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.0s ease;
	/* display:block;
	object-fit: cover;
	 */
}

#blog-widget > div:has(article) > article:hover > a:has(img) > img{
	transform: scale(1.1);
}


#blog-widget > div:has(article) > article > .et_pb_image_container > a{
	margin-bottom:0;
}

#blog-widget > div:has(article) > article > a:has(img) > p.post-meta,
.filterable-blog-posts article .post-category-badges {
	display: flex;
    flex-direction: row;
    gap: 0.5rem;
    position: absolute;
    bottom: 0.6rem;
    right: 1rem;
}

#blog-widget > div:has(article) > article > a:has(img) > p.post-meta,
.filterable-blog-posts article .post-category-badges{
	width: calc(100% - 1.75rem);
    justify-content: end;
    mask-image: linear-gradient(to left, white 80%, transparent 20%);
    -webkit-mask-image: linear-gradient(to left, white 85%, transparent 100%);
    mask-position: 0 0;
    mask-size: 100% 100%;
    mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    -webkit-mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
}


#blog-widget > div:has(article) > article > a:has(img) > p.post-meta > .category-item,
.filterable-blog-posts article .post-category-badges .post-category-badge{
    background-color: rgba(255, 255, 255, 0.8);
	backdrop-filter: blur(4px);
	border-radius: 4rem;
	padding: 0.4rem 0.6rem;
	line-height: 145%;
	font-size: 0.625rem;
	font-weight: 500;
    text-transform: uppercase;
	margin-bottom:0;
	text-decoration: none;
    z-index: 10;
	color: #35444C;
}

#blog-widget > div:has(article) > article > a:has(img) > p.post-meta > a{
    color: #35444C !important;
}

#blog-widget > div:has(article) > article > div.article-body {
    flex: 1; /* This makes the article body expand to fill available space */
    display: flex;
    flex-direction: column;
}

#blog-widget > div:has(article) > article:only-child > div.article-body,
#blog-widget > div:has(article) > article:only-of-type > div.article-body{
	align-self: center;
}
	
#blog-widget > div:has(article) > article > div.article-body > div.post-content{
	display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: space-between;
}

#blog-widget > div:has(article) > article > div.article-body > div.post-content > a{
	display:inline-flex;
	position: relative;
    width: fit-content;
	margin-top: 1rem;
	font-size: 0.8rem;
}

#blog-widget > div:has(article) > article > div.article-body > div.post-content > a::after{
	justify-content:center;
	color: #1e2f38;
    line-height: inherit;
    font-size: inherit !important;
    opacity: 1;
    margin-left: .7em;
    left: auto;
    font-family: ETmodules !important;
    font-weight: 400 !important;
	content: "\24";
	transition: color 0.3s ease, transform 0.3s ease;
}

#blog-widget > div:has(article) > article:hover > div.article-body > div.post-content > a::after{
    transform: translateX(0.25rem);
}

#blog-widget > div:has(article) > article > div.article-body > div.post-content > a::before {
	content: '';
	position: absolute;
	bottom: -0.25rem; /* Should match the value above */
	left: 0rem;
	right: 1rem;
	width: 0;
	height: 0.1rem;
	background-color: #A490FF; /* Change to your desired color */
	transition: width 0.4s ease-out;
}


#blog-widget > div:has(article) > article:hover > div.article-body > div.post-content > a::before {
	width: calc(100% - 1.4rem);
}


.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul{
	display: inline-flex;
	gap:2.5rem;
}

.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li{
	padding:0 !important;
}

.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li a{
	display: inline-block;
	color: #1e2f38 !important;
	text-decoration: none !important;
	transition: color 300ms ease 0ms,background-color 300ms ease 0ms,border 300ms ease 0ms;
	font-size: 0.8rem;
	line-height: 1.7rem !important;
    font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
}

.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li a.secondary-btn:hover {
	color: #ffffff !important;
}

/* Prev/next buttons — .secondary-btn class (added via JS) handles color, bg, hover, transition.
   Only keep what secondary-btn cannot provide: Divi border override + arrow glyph + margins. */
.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li.prev a,
.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li.next a,
.et_pb_filterable_portfolio .et_pb_portofolio_pagination a.page-prev,
.et_pb_filterable_portfolio .et_pb_portofolio_pagination a.page-next {
	border: solid 0.13rem #1e2f38 !important;
}

.et_pb_filterable_portfolio .et_pb_portofolio_pagination a.page-prev.secondary-btn {
	padding: 0.75rem 1.5rem 0.75rem 1.5rem !important;
}

.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li.prev a::before,
.et_pb_filterable_portfolio .et_pb_portofolio_pagination a.page-prev::before {
	content: "\23";
	font-family: ETmodules !important;
	font-weight: 400 !important;
	margin-right: .7em;
	vertical-align: middle;
	position: relative;
	top: -0.05rem;
}

.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li.prev a:hover::before,
.et_pb_filterable_portfolio .et_pb_portofolio_pagination a.page-prev:hover::before {
	color: #ffffff !important;
}

.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li.next a::after,
.et_pb_filterable_portfolio .et_pb_portofolio_pagination a.page-next::after {
	content: "\24";
	margin-left: .7em;
	vertical-align: middle;
}

.et_pb_filterable_portfolio_0_tb_body.et_pb_filterable_portfolio .et_pb_portofolio_pagination{
	margin-top: 2.5rem;
}

a:where(:not(.wp-element-button)) {
    text-decoration: none !important;
}
  

/*#footer-nav > div{
	display:flex;
	flex-direction: row;
	flex-grow: 1;
	margin-right: 0;
	align-items: center;
}

#footer-nav > div:nth-child(2){
	padding:0 1rem;
	width: auto !important;
	margin:0;
}

#footer-nav > div:nth-child(2) > div.footer-menu{
	display: flex;
	align-items: center;
}

#footer-nav > div:first-child,
#footer-nav > div:last-child{
	width:9rem !important;
	max-width:9rem !important;
	min-width:9rem !important;
	flex-grow:0;
	margin:0 !important;
	align-items: center;
}

#footer-nav > div:first-child > div{
	margin-right:0;
}

#footer-nav > div:first-child > #footer-logo > span > img{
	width: 100% !important;
}

#footer-nav > div:last-child{
	display: inline-flex;
	justify-content: flex-end;
	gap:0.5rem;
}

#footer-nav > div:last-child > div{
	margin: 0 !important;
}*/

#footer-nav .et-menu-nav > ul > li {
	margin-top:0;
	display: inline-flex;
	align-items: center;
}

#footer-nav .et-menu-nav > ul > li > a{
	font-size: 0.8rem;
	padding-block: .5rem;
}


/* Style for navigation links */
.et_pb_menu__menu > nav > ul > li > a,
#nav-header nav > ul > li > a {
	position: relative;
	transition: color 0.3s ease;
}


/* Underline for active links and hover state */
#nav-header nav > ul > li.current-menu-item > a::after,
#nav-header nav > ul > li > a:hover::after {
	content: '';
	position: absolute;
	bottom: -1px; /* Adjust to position the line */
	left: 1rem;
	right: 1rem;
	height: 0.1rem;
	background-color: #A490FF; /* Change to your desired color */
}

/* Initial state and hover-out animation for non-active links */
#nav-header nav > ul > li:not(.current-menu-item) > a::after{
	content: '';
	position: absolute;
	bottom: -1px; /* Should match the value above */
	left: 1rem;
	right: 1rem;
	width: 0;
	height: 0.1rem;
	background-color: #A490FF; /* Change to your desired color */
	transition: width 0.3s ease-in-out;
}

/* Hover-in animation for non-active links */
#nav-header nav > ul > li:not(.current-menu-item) > a:hover::after {
	width: calc(100% - 2rem);
}

  .hero-container {
	position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 46%;
    overflow: hidden;
  }
  
  #hero-top-rectangle,
  #hero-bottom-rectangle {
	position: absolute;
	width: 40vw; 
	height: 40vw;
	max-width: 60%;
    max-height: 60%;
  }
  
  #hero-top-rectangle {
	top: 0%;
    left: 0%;
    width: 100%;
  }
  
  #hero-bottom-rectangle {
	top: 40%;
    left: 40%;
    width: 100%;
  }

  #hero-top-rectangle > span.et_pb_image_wrap > img,
  #hero-bottom-rectangle > span.et_pb_image_wrap > img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
  }

  #hero-top-rectangle > span.et_pb_image_wrap > img{
	-webkit-mask-image: url('../../../uploads/2024/08/hero-rect-about-top.svg');
	mask-image: url('../../../uploads/2024/08/hero-rect-about-top.svg');
  }

  #hero-bottom-rectangle > span.et_pb_image_wrap > img{
	-webkit-mask-image: url('../../../uploads/2024/08/hero-rect-about-bottom.svg');
	mask-image: url('../../../uploads/2024/08/hero-rect-about-bottom.svg');
  }


  /* SLICK SLIDER STYLES */

  .slick-slider {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
	-khtml-user-select: none;
	ms-touch-action: pan-y;
	touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
  }
  .slick-list {
	position: relative;
	display: flex;
	overflow-x: visible;
	margin: 0;
	padding: 0 0 0px;
  }

  .testimonial-slider::before,
  .testimonial-slider::after{
	content: ' ';
	position: absolute;
	top:0%;
	z-index:10;
	width:5vw;
	height:100%;
  }
  
  .testimonial-slider::before{
	left:0%;
	background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
  }

  .testimonial-slider::after{
	right:0%;
	background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
  }

  .slick-track:before, .slick-track:after {
	display: table;
	content: '';
  }
  
  .slick-track{
	display: inline-flex;
	align-items: stretch !important;
  }
  
.testimonial-card{
	font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif;
	display: flex;
	flex-direction: row;
	gap: 1.5rem;
	border-radius: 1rem 1rem 1rem 1rem;
    overflow: hidden;
	border: 1px solid #eaeaea;
	padding: 1.5rem;
    background-color: #ffffff;
	margin:0 1rem;
}

.testimonial-card:first-child{
	margin-left:0rem;
}

.testimonial-card:last-child{
	margin-right:2rem;
}

.testimonial-card > .testimonial-picture{
	width: 4rem;
    height: 4rem;
	display: flex;
	flex: 1 0 auto;
	border-radius: 20rem;
	padding-bottom: 0px;
    background-repeat: no-repeat;
    background-position: 50%;
    background-size: cover;
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
}

.testimonial-card > .testimonial-content{
	display: flex;
	flex-direction: column;
	flex: 0 1 auto;
}

.testimonial-card > .testimonial-content > .testimonial-text{
	font-size: 0.88rem;
    line-height: 160%;
    text-align: left;
	color: #626d74;
	margin-bottom: 1rem;
}

.testimonial-card > .testimonial-content > p.testimonial-author{
    font-size: 1rem;
	color:#1E2F38;
    line-height: 1.5;
    font-weight: 500;
	margin-top: 0.25rem;
	padding-bottom: 0;
}

.testimonial-card > .testimonial-content > p.testimonial-author-name-pos{
	padding-bottom: 0;
	line-height: 1.5;
	color:#1E2F38;
}
	
  .slick-slide {
	position: relative;
	float: left;
	height: 100%;
	min-height: 1px;
  }
	
.slider-controls-lg .slick-arrow, .slider-controls-lg .slick-arrow:hover, .slider-controls-lg .slick-arrow:focus,
.slider-controls-sm .slick-arrow, .slider-controls-sm .slick-arrow:hover, .slider-controls-sm .slick-arrow:focus {
	position: relative;
	font-size: 0;
	line-height: 0;
	padding: 0;
	color: transparent;
	outline: none;
	background: #FFF;
	border: 1px solid #E0E0E0;
	cursor: pointer;
	top: 50%;
	transform: translateY(-50%);
	z-index: 100;
	height: 4rem;
	vertical-align: middle;
	border-radius: 50%;
	width: 4rem;
	transition: 0.3s all ease-in-out;
	padding:0;
}

/* Hover styles only for devices with mouse */
@media (hover: hover) {
	.slider-controls-lg .slick-arrow:hover,
	.slider-controls-sm .slick-arrow:hover{
		background: #1E2F38;
		border:1px solid #1E2F38;
	}
	.slider-controls-lg .slick-arrow:hover::before,
	.slider-controls-sm .slick-arrow:hover::before{
		color: #FFF;
	}
}

/*.slider-controls-lg .slick-prev { left: -50px; }
.slider-controls-lg .slick-next { right: -50px; }*/

.slider-controls-lg .slick-arrow::before,
.slider-controls-sm .slick-arrow::before{
	font-family: ETmodules;
	color: #000;
	background: transparent;
	opacity: 1;
	font-size: 1.5rem;
	vertical-align: middle;
	color: #292D32;
	text-align: center;
}
.slider-controls-lg .slick-prev::before,
.slider-controls-sm .slick-prev::before { 
	content: '\23';
	padding-right: 0rem;
	transition: 0.3s all ease-in-out;
}
.slider-controls-lg .slick-next::before,
.slider-controls-sm .slick-next::before { 
	content: '\24';
	padding-left: 0rem;
	transition: 0.3s all ease-in-out;
} 

@media (hover: hover) {
	.slider-controls-lg .slick-prev:hover::before,
	.slider-controls-sm .slick-prev:hover::before {
		padding-right: 0.5rem;
	}
	.slider-controls-lg .slick-next:hover::before,
	.slider-controls-sm .slick-next:hover::before {
		padding-left: 0.5rem;
	}
}
	
  .entry-content ul.slick-dots {
	position: absolute;
	bottom: 0;
	display: block;
	width: 100%;
	padding: 0;
	margin: 0;
	list-style: none;
	text-align: center;
  }
  .slick-dots li {
	position: relative;
	display: inline-block;
	margin: 0 5px;
	padding: 0;
	cursor: pointer;
  }
  .slick-dots li button {
	  font-size: 0;
	  line-height: 0;
	  display: block;
	  width: 10px;
	  height: 10px;
	  padding: 0;
	  cursor: pointer;
	  color: transparent;
	  border: 0;
	  outline: none;
	  background-color: #B7B7B7;
	border-radius: 10px;
  }
  .slick-dots li.slick-active button { background-color: #f7828e; }

  .about-profile-pic > span{
	max-height: 24rem;
  }

  .about-profile-pic.p1::after{
	display:block;
	position:absolute;
	content:" ";
	width: 142px;
	height:128px;
	bottom:-0.5px;
	right:-0.5px;
	z-index:10;
	background:url('../images/logo-corner-bottom-right-1.svg') no-repeat;
  }

  .about-profile-pic.p2::after{
	display:block;
	position:absolute;
	content:" ";
	width: 142px;
	height:128px;
	top:-0.5px;
	left:-0.5px;
	rotate: 180deg;
	z-index:10;
	background:url('../images/logo-corner-bottom-right-1.svg') no-repeat;
  }

  .about-profile-pic > span > img{
	width: 100%;
	object-fit: cover;
  }

  .solutions_container > .et_pb_ajax_pagination_container {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}

.solutions_container > .et_pb_ajax_pagination_container article {
    display: flex;
    flex-direction: row;
    gap: 2rem;
    align-items:center;
	margin-bottom:0 !important;
}

.solutions_container > .et_pb_ajax_pagination_container article::after {
	display: none !important;
}

.solutions_container > .et_pb_ajax_pagination_container > article > a {
	display: flex !important;
	gap: 4.5rem;
    align-items: stretch;
	margin-bottom:0 !important;
	border: 1px solid #EAEAEA !important;
	border-radius: 1.25rem;
	transition: box-shadow 0.3s ease-in-out, transform 0.4s ease-in-out, background-color 0.4s ease-in-out, border 0.4s ease-in-out;
	background-color: #FFF;
}

.solutions_container > .et_pb_ajax_pagination_container article > a:hover{
	box-shadow: 0px 20px 50px -8px rgba(73, 73, 72, 0.15);
    transform: translateY(-0.25rem);
	background-color: #FFF;
	border: 1px solid #EAEAEA;
}

.solutions_container > .et_pb_ajax_pagination_container article:nth-child(even) > a {
	flex-direction: row-reverse;
	padding: 1rem 1rem 1rem 4.5rem;
}

.solutions_container > .et_pb_ajax_pagination_container article:nth-child(odd) > a {
	flex-direction: row;
	padding: 1rem 4.5rem 1rem 1rem;
}

.solutions_container > .et_pb_ajax_pagination_container article span.solution-img{	
	flex: 1 0 auto;
    margin-bottom: 0;
    width: 100%;
    max-width: 30rem;
    /* height: 100%; */
    /* max-height: 24rem; */
    aspect-ratio: 5 / 4;
}

.solutions_container > .et_pb_ajax_pagination_container article span.solution-img > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
	border-radius: 0.75rem;
}

.solutions_container > .et_pb_ajax_pagination_container article a.more-link{
	display: inline-flex !important;
	color: #1e2f38 !important;
	border: 0.13rem solid #1e2f38;
    border-radius: 0.5rem;
    font-size: 0.8rem;
    font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    background-color: RGBA(255, 255, 255, 0);
	padding: 0.75rem 1.5rem;
	transition: all 0.3s ease;
}

.solutions_container > .et_pb_ajax_pagination_container article > a:hover a.more-link,
.solutions_container > .et_pb_ajax_pagination_container article a.more-link:hover{
	color: #ffffff !important;
	border-color: #1e2f38 !important;
	background-image: initial;
	background-color: #1e2f38;
}

.solutions_container > .et_pb_ajax_pagination_container article a.more-link::after{
	font-family: ETmodules !important;
    font-weight: 400 !important;
	content: "\24";
	display: inline-flex;
    text-transform: none;
    -webkit-font-feature-settings: "kern" off;
    font-feature-settings: "kern" off;
    font-variant: none;
    font-style: normal;
    text-shadow: none;
	margin-left: 0.7rem !important;
}

.solutions_container > .et_pb_ajax_pagination_container article .solution-card-content {
    flex: 0 1 auto;
    display: flex;
    align-self: center;
    flex-direction: column;
}

.solutions_container > .et_pb_ajax_pagination_container article .entry-title {
    margin-bottom: 1.5rem;
	padding-bottom: 0px !important;
}

.solutions_container > .et_pb_ajax_pagination_container article .post-content {
    flex: 1 1 auto;
}

.solutions_container > .et_pb_ajax_pagination_container article .post-content p{
	margin-bottom: 1.5rem;
}

.hero-inner{
	display: flex;
	align-items:center;
}

.hero-inner::after{
	content: " "  !important;
    width: 164px !important; 
    height: 118px !important;
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
	left: auto !important;
    z-index: 10;
 	-webkit-transform: scaleX(-1);
  	transform: scaleX(-1);
    background: url('../../../uploads/2024/07/slider-corner.svg') no-repeat;
	visibility: visible !important;
}

.hero-project{
	display: flex;
	width: 95vw;
	height: 84vh !important;
	align-items:flex-end;
	padding: 3.75rem !important;
	object-fit: cover;
	background-size: cover;
	background-position: center;
}

.hero-project h1{
	padding-bottom: 0 !important;
}

.hero-inner::before,
.hero-project::before{
	content: " ";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(180deg, rgba(18, 28, 34, 0.5) 50%, rgba(18, 28, 34, 0.3) 100%);
	/* backdrop-filter: blur(var(--blur-project-hero));         */
	background-size: cover;
	background-position: 50%;
	background-repeat: no-repeat;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.hero-project::before{
	background-image: linear-gradient(180deg, rgba(18, 28, 34, 0.3) 50%, rgba(18, 28, 34, 0.5) 100%);
}

.solution-types-container,
.et-db #et-boc .et-l .et_pb_section.solution-types-container,
.et_pb_section.et_section_regular.solution-types-container{
	display: flex;
    flex-direction: column;
    gap: 5.5rem;
	padding: 2.75rem 5rem;
}

.solution-type{
	display: flex;
    gap: 4.5rem;
    align-items: stretch;
	padding: 0;
}

.solution-type:nth-child(odd){
	flex-direction: row;
}

.solution-type:nth-child(even){
	flex-direction: row-reverse;
}

.solution-type:nth-child(odd) span:has(img){
	mask-image: url(../images/mask-ws-rect-top-left.svg);
	mask-size: cover;
}

.solution-type:nth-child(even) span:has(img){
	mask-image: url(../images/mask-ws-rect-bottom-right.svg);
	mask-size: cover;
}

/* .solution-type span:has(img)::after{
	content: " " !important;
	width: 164px !important;
	height: 118px !important;
	display: block;
	position: absolute;
	z-index: 10;
	background: url(../../../uploads/2024/07/slider-corner.svg) no-repeat;
	visibility: visible !important;
}

.solution-type:nth-child(odd) span:has(img)::after{
	bottom: -1px;
	right: -1px;
	left: auto;
	-webkit-transform: scaleX(-1);
	transform: scaleX(-1);   
}

.solution-type:nth-child(even) span:has(img)::after{
	top: -1px;
	left: -1px;
	left: auto;
	-webkit-transform: scale(1, -1);
	transform: scale(1, -1);   
} */

.solution-type::after{
	display: none !important;
}

div.solution-type > .et_pb_column.solution-image-col{
	display: flex;
    align-self: stretch;
	margin:0 !important;
}

/* .solution-type > div:first-child > .et_pb_module{
	display: flex;
} */

.solution-type > div.et-last-child{
	flex: 0 1 auto;
    display: flex;
    align-self: center;
    flex-direction: column;
}

.solution-type > div > div.et_pb_image > span.et_pb_image_wrap {
	display: flex;
	flex: 1 0 auto;
    margin-bottom: 0;
    width: 100%;
    /* max-width: 50rem; */
    /* height: 100%; */
    /* max-height: 24rem; */
    aspect-ratio: 5 / 4;
}

.solution-type > div > div.et_pb_image > span.et_pb_image_wrap > img{
	width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0.75rem;
}

.solution-type h3 {
	padding: 0 0 0.5rem 0;
	line-height: 1;
}

.solution-type h3 .span-line-inner {
	line-height: 1.2;
}

.solution-type .solution-type-subtitle h4{
	padding:0;
}

.solution-type span.et_pb_image_wrap {
	position: relative;
	display: inline-block;
	border-radius: 0.75rem;
	overflow: hidden;
}

.solution-type span:has(img)::before {
	content: "";
	width: calc(var(--reveal, 0) * 1%);
	height: 100%;
	background: #F5F2F0;
	position: absolute;
	top: 0;
	left: var(--reveal-left, auto);
	right: var(--reveal-right, 0);
	z-index: 1;
}        

.rating-row {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.header-project-details-row{
	display:flex !important;
	flex-direction: row;
	padding: 2.25rem calc(3.75rem + 2.5vw) !important;
	width: auto !important;
}

.header-project-details-wrapper{
	display:flex;
	flex-direction: row;
	flex-wrap:nowrap;
	justify-content: flex-start;
}

.header-project-details-wrapper .et_pb_module_header{
	padding-bottom:0.65rem;
}

.header-project-details-wrapper .et_pb_blurb_description{
	line-height: 1.2rem;
}

.header-project-details-wrapper > .header-project-details{
	margin: 0 !important;
	padding:0 clamp(1.5rem, 4vw, 3vw);
	border-right: 1px solid #e1e1e1;
}

.header-project-details-wrapper > .header-project-details:first-child{
	padding-left:0;
}

.header-project-details-wrapper > .header-project-details:last-child{
	padding-right:0;
	border: none;
}

.project-key-insights-wrapper{
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}

.project-key-insights-wrapper::after{
	display: none;
}

.project-key-insights-wrapper > .project-key-insight-col{
	display: flex;
	flex-direction: column;
	width: auto;
	margin-right: 0;
}

/* START PROJECTS PAGE GALLERY */

.et_pb_column.slider-wrapper {
	all:unset;
	display: flex;
	overflow: hidden;
	width: 100%;
	height: auto;
	position: relative;
}
	
.et_pb_gallery.slider-track{
	all:unset;
	width: 100%; 
	height: 80vh; 
	overflow: hidden;
}

.et_pb_gallery_items.slider-container{
	all:unset;
	display: flex; 
	width: max-content; 
	height: 100%; 
	will-change: transform;
	padding: 0 3.5rem !important;
}

.et_pb_gallery_items.slider-container.slider-single-image {
	width: 100% !important;
	padding: 0 !important;
	justify-content: center !important;
}

.et_pb_gallery_items.slider-container.slider-single-image .et_pb_gallery_item.slider-item {
	flex-shrink: 1 !important;
	max-width: 100% !important;
	width: 100% !important;
}

.et_pb_gallery_items.slider-container.slider-single-image .et_pb_gallery_image.slider-image > a > img {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
}

.et_pb_gallery_grid .et_pb_gallery_item {
	position: relative;
	overflow: hidden;
	width: 100%;
	margin: 0;
}

.et_pb_gallery_item.slider-item{
	all:unset;
	width: auto !important;
	height: 100%; flex-shrink: 0;
	margin-right: 20px !important;
}

.et_pb_gallery_grid .et_pb_gallery_image {
	position: relative;
	overflow: hidden;
}

.et_pb_gallery_image, .et_pb_gallery_image.slider-image {
	all:unset;
	position:relative;
	height: 100% !important;
	width: 100%;
}

.et_pb_gallery_image.slider-image > a{
	all:unset;
	height: 100%;
	display: flex;
}

.et_pb_gallery_grid .et_pb_gallery_image img {
	width: 100%;
	height: auto;
	display: block;
	transition: all 0.3s ease;
}

.et_pb_gallery_image.slider-image > a > img{
	all:unset;
	height: 100%;
	width: auto;
	object-fit: cover;
	overflow: hidden;
	border-radius: 1.25rem;
}

.et_pb_gallery_item.slider-item:last-child{
	margin-right:0 !important;
}

@media (max-width: 980px) {
	.slider-container > .et_pb_gallery_item.slider-item:last-child {
		margin-bottom: 0 !important;
	}
}

/*.et_pb_gallery_grid .et_pb_gallery_item .et_overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.9);
	opacity: 0;
	transition: all 0.3s ease;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
}

.et_pb_gallery_grid .et_pb_gallery_item:hover .et_overlay {
	opacity: 1;
}*/

.et_pb_gallery_grid .et_pb_gallery_caption {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.4;
}

.et_pb_gallery .et_pb_gallery_pagination{
	border:none;
}

.et_pb_gallery .et_pb_gallery_item .et_overlay {
    z-index: 3;
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    width: 100%;
    height: 100%;
    background: linear-gradient(hsla(203, 31%, 10%, .0) 25%, hsla(203, 31%, 10%, .5) 100%);
    opacity: 0;
    pointer-events: none;
    -webkit-transition: opacity .4s;
    transition: opacity .4s;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
    border: none;
    border-radius: 1.25rem;
}
.et_pb_gallery .et_pb_gallery_item .et_overlay:before{
	display: none !important;
	visibility: hidden !important;
}

.et_pb_gallery .et_pb_gallery_item:hover .et_overlay {
    opacity: 1;
}

/* .et_pb_gallery .et_pb_gallery_item .et_overlay .circle-overlay {
    z-index: 4;
    width: 5.5rem;
    height: 5.5rem;
    border-radius: 100rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: hsla(203, 31%, 10%, 1);
    content: " ";
    position: absolute;
    transform: translate(-50%, -50%);
}

.et_pb_gallery .et_pb_gallery_item .et_overlay .zoom-overlay {
    z-index: 5;
    content: " ";
    width: 2rem;
    height: 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: hsla(203, 31%, 10%, 1);
    background: url("../images/zoom-icon.svg") 50% 50% no-repeat;
    background-size: 2rem 2rem;
    position: absolute;
    transform: translate(-50%, -50%);
} */

body > .circle-overlay {
    position: fixed;
    z-index: 1000002;
    width: 4rem;
    height: 4rem;
    border-radius: 100rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: hsla(203, 31%, 10%, 1);
    pointer-events: none;
    will-change: transform;
}

body > .circle-overlay > .icon-overlay {
    z-index: 1000003;
    width: 1.25rem;
    height: 1.25rem;
    background: url("../images/zoom-icon.svg") 50% 50% no-repeat;
    background-size: 1.25rem 1.25rem;
    pointer-events: none;
}

body > .circle-overlay > .icon-overlay.close {
	z-index: 1000003;
    width: 1.25rem;
    height: 1.25rem;
    background: url("../images/close-icon.svg") 50% 50% no-repeat;
    background-size: 1.25rem 1.25rem;
    pointer-events: none;
}

body > .mfp-cursor-overlay {
    position: fixed;
    z-index: 9999;
    width: 4rem;
    height: 4rem;
    border-radius: 100rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: hsla(203, 31%, 10%, 1);
    pointer-events: none;
    will-change: transform;
}

body > .mfp-cursor-overlay > .mfp-cursor-icon {
    z-index: 10000;
    width: 1.25rem;
    height: 1.25rem;
    background: url("../images/zoom-icon.svg") 50% 50% no-repeat;
    background-size: 1.25rem 1.25rem;
    pointer-events: none;
}


/* Hide cursor on gallery items and all their children */
.et_pb_gallery_item, 
.et_pb_gallery_item *, 
.et_pb_gallery_item a, 
.et_pb_gallery_item img, 
.et_pb_gallery_item .et_overlay,
.mfp-wrap,
.mfp-wrap *,
.mfp-container,
.mfp-content,
.mfp-figure,
.mfp-figure * {
    cursor: none !important;
}

.et_pb_gallery .et_pb_gallery_item .et_overlay > span.et_overlay {
    display: flex;
}

.et_pb_gallery .et_pb_gallery_item .et_overlay > span.et_overlay::before,
.et_pb_gallery .et_pb_gallery_item .et_overlay > span.et_overlay::after {
    display: none;
    visibility: hidden;
}

/* Hide empty galleries */
.empty-gallery {
    display: none !important;
}

/* LIGHTBOX OVERRIDE STYLES */

.mfp-bg{
	background: #090E11 !important;
}

.mfp-container.mfp-image-holder .mfp-content > .mfp-figure > figure > img{
	padding: 0 !important;
}

.mfp-figure::after {
    box-shadow: 0 0 50px rgba(30, 47, 53, .6);
	box-shadow: 0px 4px 60px -12px rgba(30, 47, 56, 0.1);
	background: transparent !important;
}

.mfp-bottom-bar{
	display: none;
}

.mfp-title {
    text-align: left;
    line-height: 160%;
    color: #fff;
    word-wrap: break-word;
    padding: 0px;
    font-size: 1rem;
}

.mfp-close {
    opacity: 0 !important;
    visibility: hidden !important;
    position: absolute !important;
    pointer-events: none !important;
}

/* END PROJECTS PAGE GALLERY */

.mfp-container{
	padding-left: 0 !important;
	padding-right: 0 !important;
}


.mfp-iframe-holder .mfp-close,
.mfp-image-holder .mfp-close{
	all:unset;
	width: 4rem !important;
	height: 4rem !important;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: -1.5rem;
    right: 0.25rem;
	border-radius: 100rem;
	opacity: 1 !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_7115_2987)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.6991 23.4063L0.593674 1.30086L1.30078 0.59375L23.4062 22.6992L22.6991 23.4063Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.593675 22.6991L22.6991 0.593674L23.4062 1.30078L1.30078 23.4062L0.593675 22.6991Z' fill='white'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_7115_2987'%3E%3Crect width='24' height='24' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E") !important;
	background-position: 50% 50% !important;
	background-repeat: no-repeat !important;
	background-color:#152127 !important;
	background-size: 1rem 1rem !important;
	font-size:0.1px;
	line-height: 0.1px;
	transition: background-color 0.25s ease-out  !important;
	
}

.mfp-wrap .mfp-container button:hover{
	width: 4rem !important;
	height: 4rem !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_7115_2987)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.6991 23.4063L0.593674 1.30086L1.30078 0.59375L23.4062 22.6992L22.6991 23.4063Z' fill='%231E2F38'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.593675 22.6991L22.6991 0.593674L23.4062 1.30078L1.30078 23.4062L0.593675 22.6991Z' fill='%231E2F38'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_7115_2987'%3E%3Crect width='24' height='24' fill='%231E2F38'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E") !important;
	background-position: 50% 50% !important;
	background-repeat: no-repeat !important;
	background-color:#FFF !important;
	background-size: 1rem 1rem !important;
}

.mfp-wrap .mfp-close:active {
    position: absolute;
    top:1.25rem !important;
}

/* Disable zoom, use fade instead */                                                                                                                                                                                                                                                
  .mfp-zoom-out-cur .mfp-image-holder .mfp-close {                                                                                                                                                                                                                                    
      transition: opacity 0.5s ease;                                                                                                                                                                                                                                                  
  }                                                                                                                                                                                                                                                                                   
  .mfp-removing .mfp-content {                                                                                                                                                                                                                                                        
      opacity: 0;                                                                                                                                                                                                                                                                     
      transform: none; /* Removes the scale animation */                                                                                                                                                                                                                              
  }     


@media (max-width: 980px) {
	.mfp-iframe-holder .mfp-close,
	.mfp-image-holder .mfp-close{
		width: 3rem !important;
		height: 3rem !important;
		top: -1.5rem;
		right: 0.25rem;
		opacity: 1 !important;
		background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_7115_2987)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.6991 23.4063L0.593674 1.30086L1.30078 0.59375L23.4062 22.6992L22.6991 23.4063Z' fill='%231E2F38'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.593675 22.6991L22.6991 0.593674L23.4062 1.30078L1.30078 23.4062L0.593675 22.6991Z' fill='%231E2F38'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_7115_2987'%3E%3Crect width='24' height='24' fill='%231E2F38'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E") !important;
		background-color:#fff !important;
		z-index:9999;
	}

	.mfp-wrap .mfp-container button:hover{
		width: 3rem !important;
		height: 3rem !important;
	}

	.mfp-wrap .mfp-close:active {
		position: absolute;
		top: -1.5rem !important;
	}

    .mfp-close {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
	
	body.mfp-zoom-out-cur {
		overflow: hidden !important;
		overscroll-behavior: none;
	}

	.mfp-wrap {
		touch-action: pinch-zoom;
	}

	.mfp-img {
		touch-action: pinch-zoom;
	}   
  .mfp-removing .mfp-close {                                                                                                                                                                                                                                                          
      opacity: 0 !important;                                                                                                                                                                                                                                                          
      visibility: hidden !important;                                                                                                                                                                                                                                                  
  }          
                                                                                                                                                                                                                                                                           
          
}

/* Maintain aspect ratio for oEmbed videos */
.et_pb_video_box .fluid-width-video-wrapper {
	padding-top: 56.25% !important; /* 16:9 aspect ratio */
	position: relative;
	height: 0;
}

.et_pb_video_box .fluid-width-video-wrapper iframe,
.et_pb_video_box .fluid-width-video-wrapper object,
.et_pb_video_box .fluid-width-video-wrapper embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* Ensure video box takes full width */
.et_pb_video_box {
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: 56.25%; /* 16:9 aspect ratio */
}

/* Direct video files */
.et_pb_video_box video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Hide fullscreen button in native HTML5 video */
.et_pb_video_box video::-webkit-media-controls-fullscreen-button {
	display: none !important;
}

.et_pb_video_box video::-webkit-media-controls-overflow-button {
	display: none !important;
}

/* For Firefox */
.et_pb_video_box video::-moz-media-controls-fullscreen-button {
	display: none !important;
}

/* For YouTube videos - Modify iframe URL to disable fullscreen */
.et_pb_video_box iframe {
	width: 100%;
	height: 100%;
}


/* Post Navigation */

.et_pb_posts_nav.post-nav-single,
.et_pb_posts_nav.post-nav-links{
	display: flex;
	justify-content: center;
}

.et_pb_posts_nav.post-nav-links{
	justify-content: space-between;
	gap: 4rem;
}

.et_pb_posts_nav.post-nav-single .prev-project-overline,
.et_pb_posts_nav.post-nav-single .next-project-overline,
.et_pb_posts_nav.post-nav-links .prev-project-overline,
.et_pb_posts_nav.post-nav-links .next-project-overline{
	font-size:0.875rem;
	font-weight:600;
	line-height: 80%;
    padding-bottom: .5rem;
	color: #1e2f38 !important;
}

.et_pb_posts_nav.post-nav-single .nav-previous .nav-label .project-label,
.et_pb_posts_nav.post-nav-single .nav-next .nav-label .project-label,
.et_pb_posts_nav.post-nav-links .nav-previous .nav-label .project-label,
.et_pb_posts_nav.post-nav-links .nav-next .nav-label .project-label{
	font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif;
	font-size: 2rem;
	font-weight: 500 ;
	color: #1e2f38;
    line-height: 140%;
}

.et_pb_posts_nav.post-nav-links .prev-project-overline .project-label{
	text-align: left;
}

.et_pb_posts_nav.post-nav-links .next-project-overline .project-label{
	text-align: right;
}

.et_pb_posts_nav.post-nav-links .nav-previous .nav-label{
	align-items:start;
}

.et_pb_posts_nav.post-nav-links .nav-next .nav-label{
	align-items:end;
}

.et_pb_posts_nav.post-nav-links .nav-next .nav-label .project-label{
	text-align: right;
}

.et_pb_posts_nav.post-nav-single .nav-previous .nav-label .prev-project-overline::before,
.et_pb_posts_nav.post-nav-links .nav-previous .nav-label .prev-project-overline::before,
.et_pb_posts_nav.post-nav-single .nav-next .nav-label .next-project-overline::after,
.et_pb_posts_nav.post-nav-links .nav-next .nav-label .next-project-overline::after{
	color: #1e2f38;
    line-height: inherit;
    font-size: 1.5rem !important;
    opacity: 1;
	position: relative;
	top: .35rem;
    left: auto;
    font-family: ETmodules !important;
    font-weight: 400 !important;
}

.et_pb_posts_nav.post-nav-single .nav-previous .nav-label .prev-project-overline::before,
.et_pb_posts_nav.post-nav-links .nav-previous .nav-label .prev-project-overline::before{
	content:'\23';
    margin-right: .3em;
}

.et_pb_posts_nav.post-nav-single .nav-next .nav-label .next-project-overline::after,
.et_pb_posts_nav.post-nav-links .nav-next .nav-label .next-project-overline::after{
	content:'\24';
    margin-left: .3em;
}


.et_pb_posts_nav .nav-label{
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
}

.et_pb_posts_nav .nav-label > span.project-label::after{
	width: 0;
	content: '';
    position: absolute;
    bottom: -0.05rem;
    left: 0;
    right: 0;
    height: 0.15rem;
    background-color: #1e2f38;
	transition: width 0.4s ease-in-out;
}

.et_pb_posts_nav .nav-label:hover > span.project-label::after{
	width: calc(100%);
}

/* ARTICLES - Blog */

.et_pb_text_inner:has(> .category-item){
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.et_pb_text_inner > .category-item{
	/* background-color: #35444C; */
	border: 1px solid #35444C;
	border-radius: 4rem;
	font-size: 0.8rem;
	text-transform: uppercase;
	font-weight: 500;
	color:#35444C;
	line-height: 120%;
	padding: 0.65rem 0.85rem;
}

.blog-image-hero > .et_pb_image_wrap > img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}

a.contact-btn{
	width: 100%;
	height: auto;
	border: 0.08rem solid #f5f5f5;
	border-radius: 0.75rem;
	background-color: #FFF;
	padding: 2rem 1.5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	transition: box-shadow 0.5s ease-out 0.1s, border 0.5s ease-out 0.2s, transform 0.5s ease-out 0s;
}

a.contact-btn:hover{
	border: 0.08rem solid #EAEAEA;
	box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.07);
	transform: translateY(-0.25rem);
}

a.contact-btn > svg,
a.contact-btn > svg *{
	width: 2.5rem;
	height: 2.5rem;
	display: flex;
	box-sizing: border-box;
	transition: fill 0.4s ease-out 0.2s;
}

a.contact-btn:hover > svg,
a.contact-btn:hover > svg *{
	fill: #9482E6;
}

a.contact-btn.request-quote > svg{
	width: 3rem;
	height: 2.5rem;
}

a.contact-btn > div.button-label-container{
	display: inline-flex;
	align-items:center;
	gap:0.5rem;
}

a.contact-btn > div.button-label-container > p.button-label-text{
	font-size: 0.875rem;
	line-height: 160%;
	color: #1E2F38;
	font-weight:450;
}

a.contact-btn > div.button-label-container > svg {
	transition: transform 300ms ease-out;
	transform: translateX(0);
}

a.contact-btn:hover > div.button-label-container > svg {
	transform: translateX(0.25rem);
}

a.contact-secondary-links-container{
	width: 100%;
	display:flex;
	flex-direction: row;
	gap: 1.25rem;
	align-items: flex-start;
}

.contact-secondary-links-container .icon{
	width: auto;
	height: auto;
	padding: 0.75rem;
	background-color: #fff;
	border: 0.08rem solid #EAEAEA;
	border-radius: .5rem;
	transition: box-shadow 0.4s ease-out 0.1s, border 0.4s ease-out 0.1s, transform 0.4s ease-out 0s;
}

.contact-secondary-links-container .icon > svg,
.contact-secondary-links-container .icon > svg *{
	width: 1.5rem;
	height: 1.5rem;
	display: flex;
	box-sizing: border-box;
	transition: fill 0.4s ease-out 0.2s;
}

.contact-secondary-links-content{
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.contact-secondary-links-content .link-title-subtitle{
	gap: 0.125rem;
}

.contact-secondary-links-content .link-title-subtitle .link-title{
	font-size: 1rem;
	font-weight: 500;
	line-height: 160%;
	color: #1E2F38;
	padding-bottom: 0;
}

.contact-secondary-links-content .link-title-subtitle .link-subtitle{
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 160%;
	color: #6D6D6D;
}

.contact-secondary-links-content .contact-secondary-link-label{
	width: fit-content;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 160%;
	color: #1E2F38;
	position: relative;
}

.contact-secondary-links-content .contact-secondary-link-label::after{
	justify-content: center;
	color: #1e2f38;
	line-height: inherit;
	font-size: inherit !important;
	opacity: 1;
	left: auto;
	font-family: ETmodules !important;
	font-weight: 400 !important;
	content: "\24";
	transition: color 0.3s ease, transform 0.3s ease;
}

.contact-secondary-links-container:hover .contact-secondary-link-label::after{
	transform: translateX(0.25rem);
}

.contact-secondary-links-content .contact-secondary-link-label::before{
	content: '';
	position: absolute;
	bottom: -0.25rem;
	left: 0rem;
	right: 1rem;
	width: 0;
	height: 0.1rem;
	background-color: #A490FF;
	transition: width 0.4s ease-out;
}

.contact-secondary-links-container:hover .contact-secondary-link-label::before{
	width: calc(100% - 1.4rem);
}

.contact-secondary-links-container:hover > .icon{
	border: 0.08rem solid #EAEAEA;
	transform: translateY(-0.2rem);
	box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.07);
}

.contact-secondary-links-container:hover > .icon > svg,
.contact-secondary-links-container:hover > .icon > svg *{
	fill: #9482E6;
}

.hp-services-header{
	overflow:hidden;
}

.services-slider-wrapper{
	display:inline-flex;
	min-height: 22rem;
	flex-direction: row;
	justify-content: flex-start;
	min-height: 0rem !important;
	flex-wrap: nowrap;
	gap: 0.5rem;
}

.hp-services-header::before, .hp-services-header::after{
	content: ' ';
    position: absolute;
    z-index: 10;
    width: 15%;
    height: 70%;
    bottom: 0%;
	pointer-events: none !important;
}

.hp-services-header::before{
	left: 0%;
	background: linear-gradient(90deg, rgba(255, 255, 255, 1) 10%, rgba(255, 255, 255, 0) 100%);
}

.hp-services-header::after{
	right: 0%;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0) 10%, rgba(255, 255, 255, 1) 100%);
}

.project-categories > div{
	display: inline-flex;
    gap: 0.5rem;
    margin-top: 1.5rem;
    align-items: flex-end;
    flex-wrap: wrap;
	transform: none !important;
	filter: none !important;
}

.project-categories > div > span,
.project-categories > div > a{
	padding: 0.5rem 0.75rem;
    color: #fff !important;
    background-color: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(4px);
    border-radius: 20rem;
    text-transform: uppercase;
    font-size: 0.6875rem;
    font-weight: 500;
    line-height: 120%;
}

#footer-nav > div:first-child{
	display:flex;
	flex-direction: column;
	margin-right: 0;
	align-items: flex-start;
	width:13rem;
	max-width:13rem;
	flex-grow:0;
	margin:0;
}

#footer-nav > div.col-3{
	display: inline-flex;
	justify-content: flex-end;
	gap:0.5rem;
	align-items: center;
	width:13rem;
	max-width:13rem;
	flex-grow:0;
	margin:0;
}

#footer-nav > div:first-child #footer-logo{
	max-width: 9rem;
	margin-right:0;
	margin-bottom: 1rem;
}

#footer-nav > div:first-child #footer-logo img{
	width: 100% !important;
}

#footer-nav > div:first-child .footer-company-details{
	display:flex;
	flex-direction:column;
	gap:0.125rem;
}

#footer-nav > div:first-child .footer-company-details .company-address{
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

#footer-nav > div:first-child .footer-company-details .company-phone{
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

#footer-nav > div:first-child .footer-company-details .company-address > .address-link,
#footer-nav > div:first-child .footer-company-details .company-phone > .phone-number{
	font-size: 0.6875rem !important;
	text-decoration: none;
	line-height: 150%;
	display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.6875rem;
    text-decoration: none;
    color: #D2D5D7 !important;
    line-height: 150%;
}

#footer-nav > div:first-child .footer-company-details .company-address > .address-link::before{
	content: "";           
    display: inline-block;
    width: 0.75rem;        
    height: 0.75rem;       
    background-image: url('../images/map-pin-icon.svg');
    background-size: contain;
    background-repeat: no-repeat;
    flex-shrink: 0;       
}

#footer-nav > div:first-child .footer-company-details .company-phone > .phone-number:hover{
	color: #FFF !important;
	text-decoration: underline !important;
}

#footer-nav > div:first-child .footer-company-details .company-phone > .phone-number::before{
	content: "";           
    display: inline-block;
    width: 0.75rem;        
    height: 0.75rem;       
    background-image: url('../images/phone-icon.svg');
    background-size: contain;
    background-repeat: no-repeat;
    flex-shrink: 0;       
}

#footer-copyright .rc-signature{
	width: fit-content;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

#footer-copyright .rc-signature > .title{
	width: fit-content;
	font-size: 0.6rem;
	letter-spacing: 0.025rem;
	font-weight: 500;
	line-height: 140%;
	color: #788288;
	text-decoration: none;
	white-space: nowrap;
}

#footer-copyright .rc-signature > .img{
	display: flex;
	align-items: center;
	justify-content: center;
}

#footer-copyright::after{
	display: none;
}

#footer-copyright .rc-signature > .img > svg{
	width: 1.5rem;
	height: 1.5rem;
}

#footer-copyright .rc-signature > .img > svg path{
	fill: #35444C;
	transition: fill 0.3s ease-out;
}

#footer-copyright .rc-signature:hover > .img > svg path{
	fill: #000;
}

#footer-copyright > div:first-child{
	width: fit-content !important;
    display: flex;
    line-height: 140%;
    align-items: center;
    justify-content: flex-start;
    flex: 1 0 auto;
}

#footer-copyright > div:last-child{
	width: fit-content !important;
	display: flex;
	line-height: 140%;
	align-items: center;
	justify-content: flex-end;
	flex: 0 1 auto;
}

@media (min-width:1800px){
	.testimonial-slider::before, .testimonial-slider::after{
		width:15vw;
	  }
}

@media (min-width: 1440px) and (max-width: 1799px){
	.testimonial-slider::before, .testimonial-slider::after{
		width:10vw;
	  }

	.hp-services-header::before, .hp-services-header::after {
		width: 10rem;
	}
}

@media (max-width: 1440px){
	#blog-widget > div:has(article) {
    	gap: 2rem;
	}
}

@media (max-width: 1388px){
	#portfolio .portfolio-item-caption{
		flex-direction: column;
	}
}

@media (max-width: 1270px){

	h2.hp-intro-heading{
		line-height: 1.25 !important;
	}

	.nav-logo-container a > svg{
		width: 188px;
	}
	
	.solutions_container > .et_pb_ajax_pagination_container article span.solution-img{	
		width: 100%;
		max-width: 22.5rem;
	}

	.solutions_container > .et_pb_ajax_pagination_container article .solution-card-content {
		width:100%;
		padding-block:1.5rem;
	}

	.solutions_container > .et_pb_ajax_pagination_container article > a {
		gap:2rem;
	}

	.solutions_container > .et_pb_ajax_pagination_container article:nth-child(odd) > a {
		padding: 1rem 2rem 1rem 1rem;
	}

	.solutions_container > .et_pb_ajax_pagination_container article:nth-child(even) > a {
		padding: 1rem 1rem 1rem 2rem;
	}

	.solution-types-container,
	.et-db #et-boc .et-l .et_pb_section.solution-types-container,
	.et_pb_section.et_section_regular.solution-types-container{
		padding: 2.75rem 3.5rem;
	}

	.solution-type > div:first-child,
	.solution-type > div.et-last-child{
		width:100%;
	}

	.solution-type{
		gap: 3.5rem;
	}

	/* START PROJECTS PAGE GALLERY */


	.et_pb_gallery.slider-track{
		all:unset;
		width: 100%; 
		height: 80vh; 
		overflow: hidden;
	}

	.et_pb_gallery_items.slider-container{
		padding: 0 3.5rem !important;
	}


	/* END PROJECTS PAGE GALLERY */

	.et_pb_posts_nav.post-nav-single .nav-previous .nav-label .project-label,
	.et_pb_posts_nav.post-nav-single .nav-next .nav-label .project-label,
	.et_pb_posts_nav.post-nav-links .nav-previous .nav-label .project-label,
	.et_pb_posts_nav.post-nav-links .nav-next .nav-label .project-label{
		font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif;
		font-size: 2rem;
		font-weight: 500 ;
		color: #1e2f38;
		line-height: 140%;
	}
	
}

@media (max-width: 1140px){
	#footer-nav .et-menu-nav > ul > li.menu-item{
		font-size: 0.75rem !important;
	}

	#footer-nav > div:first-child{
		width:10rem;
		max-width:10rem;
	}

	#footer-nav > div.col-3{
		width:10rem;
		max-width:10rem;
	}
}

@media (max-width: 1024px){

	.solution-types-container,
	.et-db #et-boc .et-l .et_pb_section.solution-types-container,
	.et_pb_section.et_section_regular.solution-types-container{
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
		column-gap: 6%;
		row-gap:6vw;
		padding: 2.5rem 3.5rem !important;
	}

	div.solution-type,
	.et_pb_row.solution-type{
		width: 100% !important;
		max-width: 46.5%;
		flex: 1 0 auto;
		gap:1.5rem;
		padding-left: 0;
		padding-right: 0;
		flex-direction: column;
		margin:0;
	}

	div.solution-type > .et_pb_column.solution-image-col{
		display: unset;
		width: 100% !important;
	}
	
	.solution-type > div.et-last-child{
		width: 100% !important;
		align-self: stretch;
		padding:0 0.5rem;
	}

	.solution-image-col > .et_pb_image{
		margin-right: 0 !important;
	}

	.et_pb_row_4_tb_body.et_pb_row.project-key-insights-wrapper,
	.project-key-insights-wrapper{
		padding: 3.5rem !important;
	}

	#blog-widget > div:has(article){
		display: flex;
		gap:1.5rem;
	}

	/* START PROJECTS PAGE GALLERY */


	.et_pb_gallery.slider-track{
		all:unset;
		width: 100%; 
		height: 70vh; 
		overflow: hidden;
	}

	.et_pb_gallery_items.slider-container{
		padding: 0 3.5rem !important;
	}


	/* END PROJECTS PAGE GALLERY */

	.et_pb_posts_nav.post-nav-single .nav-previous .nav-label .project-label,
	.et_pb_posts_nav.post-nav-single .nav-next .nav-label .project-label,
	.et_pb_posts_nav.post-nav-links .nav-previous .nav-label .project-label,
	.et_pb_posts_nav.post-nav-links .nav-next .nav-label .project-label{
		font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif;
		font-size: 2rem;
		font-weight: 500 ;
		color: #1e2f38;
		line-height: 140%;
		text-align: center;
	}

	.et_pb_posts_nav.post-nav-links{
		flex-direction: column-reverse;
		align-items: center;
		gap: 3rem;
	}

	.et_pb_posts_nav.post-nav-links .nav-previous .nav-label,
	.et_pb_posts_nav.post-nav-links .nav-next .nav-label{
		align-items:center;
	}

}

@media (min-width: 980px){
	.project-intro-row,
	.solution-intro-row{
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
	}
	.project-intro-row .intro-col-1,
	.solution-intro-row .intro-col-1{
		display:flex;
		flex: 0 1 auto;
		width: 100%;
	}
	.project-intro-row .intro-col-2,
	.solution-intro-row .intro-col-2{
		display:flex;
		flex: 0 1 auto;
		width: 100%;
	}
}

@media (max-width: 980px) {

	#page-container:has(#nav-bar.nav-bar) #main-content .et_pb_section:first-child {
		margin-top: 4rem;
	}

	#intro-hp .logo-outline-container{
		width: fit-content;
		height: fit-content;
		scale: .8;
		position: absolute;
		z-index: -1;
		top: -70%;
		left: -15%;
		pointer-events: none;
	}

	h2.hp-intro-heading{
		line-height: 1.25 !important;
	}

	#page-container:has(#nav-bar) #main-content .et_pb_section:first-child {
		margin-top: 9rem;
	}


	#nav-bar, .nav-bar, #nav-bar.nav-bar {
		padding: 1.75rem !important;
	}

	.nav-bar-container > .et_pb_module.et_pb_code{
		width: 100%;
		height: 100%;
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}

	.nav-bar-container > .et_pb_module.et_pb_code > .et_pb_code_inner{
		display: flex;
		flex-direction: row;
		height: 100%;
		position: relative;
	}

	.nav-bar-container.active > .et_pb_module.et_pb_code > .et_pb_code_inner{
		flex-direction: column;
	}
	
	#nav-bar-hero:has(.nav-bar-container.active),
	#nav-bar-hero-inner:has(.nav-bar-container.active),
	#nav-bar:has(.nav-bar-container.active){
		height: 100vh;
		background-color: rgba(0, 0, 0, 0.5);
	}

	#nav-bar-hero .nav-bar-container .menu,
	#nav-bar-hero-inner .nav-bar-container .menu,
	#nav-bar .nav-bar-container .menu{
		display: none; /* change to flex */
		width: 100%;
		height: 100%;
		align-items: stretch;
		background: transparent;
	}

	#nav-bar-hero .nav-bar-container.active .menu,
	#nav-bar-hero-inner .nav-bar-container.active .menu,
	#nav-bar .nav-bar-container.active .menu{
		display: flex;
	}

	#nav-bar-hero .nav-bar-container .nav-button,
	#nav-bar-hero-inner .nav-bar-container .nav-button,
	#nav-bar-hero-inner .nav-bar-container .nav-button{
		display: none;
	}

	#nav-bar-hero .nav-bar-container.active .nav-button,
	#nav-bar-hero-inner .nav-bar-container.active .nav-button,
	#nav-bar-hero-inner .nav-bar-container.active .nav-button{
		display: flex;
	}

	#nav-bar-hero .menu nav.main-navigation,
	#nav-bar-hero-inner nav.main-navigation,
	#nav-bar nav.main-navigation{
		display: flex;
		width: 100%;
		height: 100%;
		flex-direction: column;
		justify-content: center;
	}

	#nav-bar-hero .menu ul.nav-menu,
	#nav-bar-hero-inner .menu ul.nav-menu,
	#nav-bar .menu ul.nav-menu{
		display: flex;
		padding: 0;
		list-style-type: none;
		flex-direction: column;
		gap: 0.5rem;
		width: 100%;
		align-self: center;
	}

	#nav-bar-hero .menu ul > li.menu-item > a,
	#nav-bar-hero-inner .menu ul > li.menu-item > a,
	#nav-bar .menu ul > li.menu-item > a{
		display: flex;
		align-items: flex-start;
    	flex-direction: column;
		padding: 1rem 1.75rem 1rem 0rem;
		font-size: 3rem;
	}

	#nav-bar-hero .menu ul > li.menu-item > a::after,
	#nav-bar-hero .menu ul > li.menu-item > a:hover::after,
	#nav-bar-hero-inner .menu ul > li.menu-item > a::after,
	#nav-bar-hero-inner .menu ul > li.menu-item > a:hover::after,
	#nav-bar .menu ul > li.menu-item > a::after,
	#nav-bar .menu ul > li.menu-item > a:hover::after{
		content: '';
		position: absolute;
		bottom: 0rem;
		left: 1rem;
		right: 1.75rem;
		height: 0.25rem;
		background-color: #A490FF;
	}

	.nav-bar-container {
		position: relative;
	}

	#mobile-menu-toggle.mobile-toggle{
		position: absolute;
    	top: 0.5rem;
		right: 0;
		z-index: 10001;
		pointer-events: auto;
	}

	.hero-container{
		position: relative;
		width: 100%;
		height: 0;
		padding-bottom: 98%;
		overflow: hidden;
		z-index:0;
	}

	body.nav-open {
		overflow: hidden;
	}

	#nav-bar-hero, #nav-bar-hero-inner, #nav-bar{
		display: flex;
		z-index: 900;
		padding: 1.75rem 7vw 1.75rem 7vw !important;
	}

	#nav-bar {
		padding: 1.75rem 2rem 1.75rem 2rem !important;
	}

	/* Show hamburger on mobile */
	#mobile-menu-toggle {
		display: flex;
	}

	/* Hide nav-button on mobile (Contact link will be in menu) */
	#nav-bar-hero .nav-button,
	#nav-bar-hero-inner .nav-button,
	#nav-bar .nav-button {
		display: none !important;
	}

	/* Show Contact link in menu on mobile */
	#nav-bar-hero .menu ul > li.menu-item:has(a[href*="contact"]),
	#nav-bar-hero-inner .menu ul > li.menu-item:has(a[href*="contact"]),
	#nav-bar .menu ul > li.menu-item:has(a[href*="contact"]) {
		display: flex !important;
	}

    #nav-bar-hero::after{
        left:2.5vw;
        width: 95vw;
        height: 10rem;
    }

    #nav-bar-hero > div,
	#nav-bar-hero-inner > div, 
	#nav-bar > div{
        margin-bottom:0;
    }

    #nav-header{
        justify-content: flex-end;
    }

	#nav-header .et_mobile_menu li a {
		padding: 1rem 5.5vw;
	}

	#intro-hp{
		display: flex;
    	flex-direction: column;
	}

	#blog-widget > div:has(article){
		display:flex;
		gap: 4rem;
		flex-direction: column;
		align-items: stretch;
	}

	#blog-widget > div:has(article) > article {
		margin: auto 0 0;
	}

	.hero-project{
		height: 65vh !important;
		padding: 2.5rem !important;
	}

	.et_pb_row.et_pb_row_3_tb_body.contact-bottom-links-container{
		padding: 3rem !important;
		max-width: 30rem;
	}

	#footer-nav,
	#footer-nav .et_pb_menu .et_pb_menu__menu {
		display: flex;
		flex-direction: column;
	}

	#footer-nav > div:nth-child(2) > div.footer-menu > div.et_pb_menu_inner_container{
		width:100%;
	}

	#footer-nav > div:nth-child(2),
	#footer-nav>div:first-child,
	#footer-nav>div:last-child{
		width:100% !important;
		max-width: 100% !important;
		display: flex;
		justify-content: center;
	}

	#footer-nav > div:first-child{
		gap:2rem;
		order: 2;
		flex-direction: row;
	}

	#footer-nav > div:last-child{
		gap: 1.75rem;	
		order: 1;
		padding-top:2.5rem;
		padding-bottom: 3.5rem;
	}

	#footer-nav > div:nth-child(2),
	#footer-nav > div:nth-child(2) > div{
		padding:0;
		width: 100% !important;
		margin:0;
	}

	#footer-nav > div:first-child > #footer-logo{
		display: flex;
		max-width: fit-content;
		justify-content: center;
	}

	#footer-nav > div:first-child .company-details-wrapper{
		width: fit-content;
    	display: flex;
    	justify-content: center;
	}

	#footer-nav > div:first-child > #footer-logo > span > img{
		width: auto !important;
	}

	#footer-nav .et_pb_menu__wrap,
	#footer-nav .et_pb_menu__wrap > .et_pb_menu__menu,
	#footer-nav .et_pb_menu__wrap > .et_pb_menu__menu > .et-menu-nav{
		width: 100%;
		display: flex;
        justify-content: center;
	} 

	#footer-nav .et-menu-nav > ul{
		display:flex;
		flex-direction: column;
		width:100%;
	}

	#footer-nav .et-menu-nav > ul > li{
		justify-content: center;
        margin-top: 0.5rem;
        margin-bottom: 0.5rem;
	}

	#footer-nav .et-menu-nav > ul > li > a{
		display: flex;
        align-items: center;
		min-height: 2rem;
		padding-top:0;
		padding-bottom:0;
		margin-bottom: 0;
		white-space: nowrap;
	}

	#footer-nav .et_mobile_nav_menu{
		display: none !important;
		visibility: hidden !important;
	}

	#footer-copyright{
		display: inline-flex;
	}

	#footer-copyright > div:first-child{
		margin-bottom: 0px;
	}
		
	.footer-copyright-section{
		line-height: 1;
	}

	#portfolio .et_pb_portfolio_item:not(:last-child){
		margin-bottom: 5rem;
	}

	#blog-widget > div:has(article) > article > div.article-body > div.post-content > a{
		font-size: 1rem;
		margin-top: 1.5rem;
	}

	#blog-widget > div:has(article) > article:last-child{
		margin-bottom: 3.5rem;
	}

	#blog-widget > div:has(article) > article:hover > div.article-body > div.post-content > a::before{
		width: 0;
	}

	#blog-widget > div:has(article) > article:hover > div.article-body > div.post-content > a::after{
		transform: translateX(0);
	}

	.slider-controls-sm{
		display: flex !important;
	}

	.testimonial-slider::before, .testimonial-slider::after{
		width:10vw;
	}

	@media (hover: none) {
		.slider-controls-sm .slick-arrow:active,
		.slider-controls-lg .slick-arrow:active {
			transform: translateY(0%);
			background: #f1f1f1;
			border: 1px solid #f1f1f1;
		}
		.slider-controls-lg .slick-arrow:active::before,
		.slider-controls-sm .slick-arrow:active::before {
			color: #292D32;
		}
		.slider-controls-lg .slick-next:active::before,
		.slider-controls-sm .slick-next:active::before {
			padding-left: 0;
		}
		.slider-controls-lg .slick-prev:active::before,
		.slider-controls-sm .slick-prev:active::before {
			padding-right: 0;
		}
	}
	
	.services-tile::after{
		display: none;
	}

	.about-profile-pic > span{
		max-height: 16.45rem;
	}

	.solutions_container {
		display: flex;
		flex-direction: row;
	}
	.solutions_container > .et_pb_ajax_pagination_container {
		flex-direction: row;
		justify-content: space-between;
    	flex-wrap: wrap;
		row-gap: 1%;
        column-gap: 3%;
	}

	.solutions_container > .et_pb_ajax_pagination_container article{
		flex: 0 0 48.5%;
		align-items: stretch;
		gap:0;
		margin-bottom:0 !important;
	}

	.solutions_container > .et_pb_ajax_pagination_container article:nth-child(odd) > a {
		flex-direction: column;
		padding: 0.5rem 0.5rem 1.5rem;
	}

	.solutions_container > .et_pb_ajax_pagination_container article:nth-child(even) > a {
		flex-direction: column;
		padding: 0.5rem 0.5rem 1.5rem;
	}

	.solutions_container > .et_pb_ajax_pagination_container article .solution-card-content {
		width:100%;
		height: 100%;
		padding:0rem 0.5rem;
	}

	.solutions_container > .et_pb_ajax_pagination_container article span.solution-img {
		width: 100%;
        max-height: 16.5rem;
	}

	.solutions_container > .et_pb_ajax_pagination_container article .post-content p{
		margin-bottom: 1.5rem;
	}

	
	.solutions_container > .et_pb_ajax_pagination_container article .post-content{
		flex: 1 1 auto;
		justify-content: space-between;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}

	.solutions_container > .et_pb_ajax_pagination_container article span.solution-img {
		width: 100%;
		max-width: 100%;
		flex: 0 0 auto;
	}

	.solution-types-container,
	.et-db #et-boc .et-l .et_pb_section.solution-types-container,
	.et_pb_section.et_section_regular.solution-types-container{
		padding: 2.5rem 2.5rem;
	}

	#portfolio .et_pb_portfolio_filters{
		margin: 0 0 4rem;
		padding: 0.1rem 3.5rem 1rem;
	}

	#portfolio .et_pb_portfolio_filters ul{
		flex-wrap: nowrap;
		justify-content: inherit;
	}

	#portfolio .portfolio-item-caption{
		flex-direction: column;
		padding: 0 2rem 1.85rem;
	}

	#portfolio .portfolio-item-caption > p.post-meta{
		margin-top: 1.5rem;
		flex-wrap: wrap;
	}

	#portfolio .portfolio-item-caption > p.post-meta > span.updated-category-link {
		padding: 0.45rem 0.7rem;
		font-size: 0.75rem;
	}

	#portfolio .portfolio-item-caption .portfolio-category-and-title > h2.et_pb_module_header,
	#portfolio .portfolio-item-caption .portfolio-category-and-title > h2.et_pb_module_header > a{
		font-size: 2.25rem !important;
		margin-top: 0.75rem;
		padding-bottom:0;
	}

	#portfolio .portfolio-item-caption > p.post-meta,
	#portfolio .portfolio-item-caption > p.post-meta > a{
		font-size: 0.75rem;
		line-height: 1rem;
	}

	.header-project-details-row{
		padding: 2.25rem calc(2.5rem + 2.5vw) !important;
	}

	.et_pb_row_4_tb_body.et_pb_row.project-key-insights-wrapper,
	.project-key-insights-wrapper{
		max-width: 32rem;
		flex-direction: column;
		gap:4rem;
	}

	.et_pb_row_4_tb_body.et_pb_row.project-key-insights-wrapper > *{
		width: 100% !important;
		margin:0 !important;
		justify-content: center;
	}

	/* START PROJECTS PAGE GALLERY */

	.et_pb_gallery_grid .et_pb_gallery_items {
		grid-template-columns: repeat(2, 1fr);
	}

	.et_pb_column.slider-wrapper {
		all:unset;
		display: flex;
		flex-direction: column;
		overflow-x: hidden;
		width: 100%;
		height: auto;
	}

	.et_pb_gallery.slider-track {
        all: unset;
        width: auto;
        height: auto;
        overflow:unset;
		padding: 0 1.5rem !important;
    }

	.et_pb_gallery_items.slider-container{
		all:unset;
		display: flex; 
		flex-direction: column;
		width: 100%; 
		height: 100%; 
		will-change: transform;
		padding: 0 !important;
	}

	.et_pb_gallery_item.slider-item {
		all: unset;
		width: auto !important;
		height: 100%;
		flex-shrink: 0;
		margin: 0 0 2rem 0 !important;
	}

	.et_pb_gallery_image.slider-image > a > img {
		all: unset;
		height: auto;
		width: 100%;
		object-fit: cover;
		overflow: hidden;
		border-radius: 1rem;
	}

	/* END PROJECTS PAGE GALLERY */

	#portfolio span.et_portfolio_image{
		width: 92vw;
	}
	
	#portfolio span.et_portfolio_image > img{
		width:100%;
		height:80vh;
		max-height: 100%;
		object-fit: cover;
		border-radius: 1rem;
	}	

	.hp-services-header::before,
	.hp-services-header::after{
		display: none;
	}

	.services-slider-wrapper{
		display: flex;
		flex-direction: column;
		gap: 3rem;
	}

	.services-tile > .et_pb_blurb_content{
		min-width: 100%;
	}

	.services-tile{
		width: 100%;
		max-width: 35rem !important;
		margin-bottom:0 !important;
		padding: 3.5rem 3.5rem 4rem 3.5rem;
		border: 1px solid #f1f1f1;
		align-self: center;
	}

	.services-slider-wrapper .et_pb_button_module_wrapper{
		display: flex;
		align-items: center;
		padding: 0.5rem 4rem;
		justify-content: center;
	}

	.services-slider-wrapper > .et_pb_button_module_wrapper > a{
		height: max-content;
	}

	.services-tile > div > div.et_pb_main_blurb_image{
		margin-bottom: 1rem;
	}

	.services-slider-wrapper{
		display:flex;
		flex-direction: column;
		justify-content: center;
		min-height: 0rem !important;
	}

	.project-key-insights-wrapper > .project-key-insight-col{
		width: 100% !important;
		margin:0 !important;
		align-self: center;
	}

	.about-profile-pic.p1::after,
	.about-profile-pic.p2::after{
		width:112px;
		height:101px;
	}


}

@media (max-width: 840px){

	.header-project-details-row{
		display:flex !important;
		flex-direction: row;
		padding: 2.5rem calc(2.25rem + 2.5vw) !important;
		width: auto !important;
	}

	.header-project-details-wrapper{
		display:flex;
		flex-direction: column;
		flex-wrap:nowrap;
		justify-content: flex-start;
		gap: 2rem;
	}

	.header-project-details-wrapper > .header-project-details{
		margin: 0 !important;
		padding:0;
		border-right:none;
		padding-bottom: 2rem;
	}

	.header-project-details-wrapper > .header-project-details:after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		height: 1px;
		border-top: 1px solid #e1e1e1;
		z-index: -1;
	  }

	.header-project-details-wrapper > .header-project-details:nth-child(1):after {
		width: 90%;
	}
	.header-project-details-wrapper > .header-project-details:nth-child(2):after {
		width: 65%;
	}
	.header-project-details-wrapper > .header-project-details:nth-child(3):after {
		width: 40%;
	}
	.header-project-details-wrapper > .header-project-details:nth-child(4):after {
		width: 15%;
	}
	
	.header-project-details-wrapper > .header-project-details:last-child{
		padding-right:0;
		border: none;
	}

}

@media (max-width: 767px) {
	#page-container:has(#nav-bar.nav-bar) #main-content .et_pb_section:first-child {
		margin-top: 3.5rem;
	}

	#nav-header .et_mobile_menu li a {
		padding: 1rem 7.5vw;
	}

    #nav-bar-hero::after{
        height: 10rem;
    }

	.nav-logo-container a > svg{
		width: 164px;
	}

	#nav-bar-hero, #nav-bar-hero-inner, #nav-bar{
		padding: 1.5rem 7vw 1.5rem 7vw !important;
	}

	#nav-bar-hero.sticky, #nav-bar-hero-inner.sticky, #nav-bar.sticky{
		padding: 1rem 7vw 1rem 7vw !important;
	}

	#nav-bar-hero .menu ul.nav-menu,
	#nav-bar-hero-inner .menu ul.nav-menu,
	#nav-bar .menu ul.nav-menu{
		gap: 0.5rem;
	}

	#nav-bar-hero .menu ul > li.menu-item > a,
	#nav-bar-hero-inner .menu ul > li.menu-item > a,
	#nav-bar .menu ul > li.menu-item > a{
		font-size: 2.5rem;
		padding: 1rem 1.5rem 1rem 0rem;
	}

	#nav-bar-hero .menu ul > li.menu-item > a::after,
	#nav-bar-hero .menu ul > li.menu-item > a:hover::after,
	#nav-bar-hero-inner .menu ul > li.menu-item > a::after,
	#nav-bar-hero-inner .menu ul > li.menu-item > a:hover::after,
	#nav-bar .menu ul > li.menu-item > a::after,
	#nav-bar .menu ul > li.menu-item > a:hover::after{
		left: 0rem;
		right: 1.5rem;
        bottom: 0.5rem;
        height: 0.25rem;
	}

	#portfolio .et_pb_portfolio_filters{
		margin: 0 0 4rem;
		padding: 0.1rem 2rem 1rem;
	}

	#hp-slider .et_pb_slide_description {
		padding: 2rem 2rem 6.75rem 1rem;
		max-width: 100%;
	}


	.slider-controls-sm{
		display: flex !important;
	}

	.testimonial-card:last-child{
		margin-right:0rem;
	}

	.testimonial-slider::before, .testimonial-slider::after{
		display:none;
		visibility: hidden;
	}
	
	.slider-controls-sm .slick-arrow, .slider-controls-sm .slick-arrow:hover, .slider-controls-sm .slick-arrow:focus {
		transform: translateY(0%);
	}

	.services-slider-wrapper{
		gap: 2.5rem;
	}

	.about-profile-pic > span{
		max-height: 16.25rem;
	}

	.solutions_container > .et_pb_ajax_pagination_container {
		flex-direction: row;
		justify-content: space-between;
    	flex-wrap: wrap;
		gap: 2rem;
	}

	.solutions_container > .et_pb_ajax_pagination_container article {
		flex: 0 0 100%;
	}

	.solutions_container > .et_pb_ajax_pagination_container article span.solution-img {
		max-height: 20rem;
	}

	.solution-types-container,
	.et-db #et-boc .et-l .et_pb_section.solution-types-container,
	.et_pb_section.et_section_regular.solution-types-container{
		flex-direction:column;
		row-gap: 5rem;
		padding: 2rem !important;
	}

	div.solution-type, .et_pb_row.solution-type{
		max-width: 100%;
	}

	#portfolio .et_pb_portfolio_item:not(:last-child){
		margin-bottom: 4rem;
	}

	#portfolio .portfolio-item-caption .portfolio-category-and-title > a[rel="tag"],
	#portfolio .portfolio-item-caption .portfolio-category-and-title > span.updated-category-link {
		font-size: .875rem;
		font-weight: 500;
	}

	#portfolio .portfolio-item-caption > p.post-meta > span.updated-category-link {
		padding: 0.45rem 0.7rem;
		font-size: 0.675rem;
		white-space: nowrap;
	}

	#portfolio .portfolio-item-caption .portfolio-category-and-title > h2.et_pb_module_header,
	#portfolio .portfolio-item-caption .portfolio-category-and-title > h2.et_pb_module_header > a{
		font-size: 2rem !important;
		margin-top: 0.75rem;
		padding-bottom:0;
	}

	#blog-widget > div:has(article) > article:only-child,
	#blog-widget > div:has(article) > article:only-of-type{
		flex-direction: column;
		gap: 1rem;
	}

}

@media (max-width: 524px) {

	#page-container:has(#nav-bar.nav-bar) #main-content .et_pb_section:first-child {
		margin-top: 3rem;
	}

	h2.hp-intro-heading{
		line-height: 1.25 !important;
	}

    #nav-bar-hero, #nav-bar-hero-inner{		
        padding-left: 8.5vw;
        padding-right: 8.5vw;
	}

	#nav-bar{
		padding-left: 5vw;
        padding-right: 5vw;
	}

	#nav-bar-hero .menu ul.nav-menu,
	#nav-bar-hero-inner .menu ul.nav-menu,
	#nav-bar .menu ul.nav-menu{
		gap: 0.5rem;
	}

	#nav-bar-hero .menu ul > li.menu-item > a,
	#nav-bar-hero-inner .menu ul > li.menu-item > a,
	#nav-bar .menu ul > li.menu-item > a{
		font-size: 2rem;
		padding: 1rem 1rem 1rem 0rem;
	}

	#nav-bar-hero .menu ul > li.menu-item > a::after,
	#nav-bar-hero .menu ul > li.menu-item > a:hover::after,
	#nav-bar-hero-inner .menu ul > li.menu-item > a::after,
	#nav-bar-hero-inner .menu ul > li.menu-item > a:hover::after,
	#nav-bar .menu ul > li.menu-item > a::after,
	#nav-bar .menu ul > li.menu-item > a:hover::after{
		left: 0rem;
		right: 1rem;
        bottom: 0.5rem;
        height: 0.25rem;
	}

	.services-slider-wrapper{
		gap: 2rem;
	}

	.services-tile{
		margin-bottom:0 !important;
		max-width:100% !important;
		padding: 2rem 2.5rem;
	}

	.about-profile-pic > span{
		max-height: 16.25rem;
	}

	.hero-project{
		height: 84vh !important;
		padding: 2rem !important;
	}

	.header-project-details-row{
		padding: 2.5rem calc(2rem + 2.5vw) !important;
	}

	.hero-inner::after{
		width: 88px; 
		height: 63.32px;
	}

	.et_pb_gallery_image.slider-image > a > img {
		border-radius: 0.75rem;
	}

	.et_pb_gallery_item.slider-item {
		margin-bottom: 1rem;
	}	

	#portfolio .et_pb_portfolio_item:not(:last-child){
		margin-bottom: 1.5rem;
	}

	#footer-nav > div:first-child{
		flex-direction: column;
		gap: 1rem;
	}

	#footer-nav > div:first-child #footer-logo,
	#footer-nav > div:first-child .company-details-wrapper{
		width: 100%;
		max-width: 100%;
		justify-content: center;
	}

	
}

@media (max-width: 414px) {

	#page-container:has(#nav-bar.nav-bar) #main-content .et_pb_section:first-child {
		margin-top: 3rem;
	}

	#nav-bar-hero .menu ul > li.menu-item > a,
	#nav-bar-hero-inner .menu ul > li.menu-item > a,
	#nav-bar .menu ul > li.menu-item > a{
		font-size: 2rem;
		padding: 1rem 1rem 1rem 0rem;
	}

	#nav-bar-hero .menu ul > li.menu-item > a::after,
	#nav-bar-hero .menu ul > li.menu-item > a:hover::after,
	#nav-bar-hero-inner .menu ul > li.menu-item > a::after,
	#nav-bar-hero-inner .menu ul > li.menu-item > a:hover::after,
	#nav-bar .menu ul > li.menu-item > a::after,
	#nav-bar .menu ul > li.menu-item > a:hover::after{
		left: 0rem;
        right: 1rem;
        bottom: 0.5rem;
        height: 0.25rem;
	}

	.services-tile{
		margin-bottom:0 !important;
		max-width:100% !important;
		padding: 1.75rem 2rem;
	}

	/* START PROJECTS PAGE GALLERY */

	.et_pb_gallery_grid .et_pb_gallery_items {
		grid-template-columns: 1fr;
	}

	#portfolio .et_pb_portfolio_item:not(:last-child){
		margin-bottom: 1rem;
	}

	/* END PROJECTS PAGE GALLERY */

}

@media (max-width: 375px) {
	#footer-copyright{
		display: flex;
		flex-direction: column;
		gap:0.5rem;
		justify-content: center;
		align-items: center;
	}
}

/*====================================================
#Barba.js Preloader Styles
====================================================*/

.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    z-index: 9999999 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    visibility: visible;
}

.preloader-inner {
    display: flex;
    align-items: center;
    justify-content: center;
}

.preloader-spinner {
    overflow: visible;
}

/*====================================================
#Custom Rating Dots (ws_rating shortcode)
====================================================*/

.custom-ratings {
    display: flex;
    gap: 2.5rem;
    margin: 0.5rem 0 2rem 0;
}

.custom-rating {
    display: flex;
    flex-direction: column;
}

.custom-ratings .custom-rating h5.rating-title {
    text-transform: uppercase;
    font-weight: 600 !important;
    font-size: 0.75rem !important;
    padding-bottom: 0;
    margin-bottom: 0.5rem;
    line-height: 160%;
}

.rating-dots {
    display: inline-flex;
    gap: 0.15rem;
}

.rating-dots .dot {
    width: .75rem;
    height: .75rem;
    border-radius: 50%;
    background-color: #fff;
    border: 0.125rem solid #35444C;
}

.rating-dots .dot.filled {
    background-color: #35444C;
}

/*====================================================
# 404 Page
====================================================*/

#ws-404 {
    min-height: 70svh;
    background: #ffffff;
    display: flex;
    align-items: center;
    position: relative;
    z-index: 0;
    margin-top: 5.5rem;
    overflow: hidden;
}

.ws-404-content {
    position: relative;
    z-index: 1;
    flex: none;
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    padding: 4rem 3rem 4rem 8vw;
    animation: ws404-fade-up 0.6s ease-out both;
}

/* Backdrop: absolute, never takes up space */
.ws-404-number-side {
    position: absolute;
    top: 0;
    right: 0;
    width: 55%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 0;
}

/* Dot grid sits behind the 404 number */
.ws-404-number-side::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(30, 47, 56, 0.09) 1px, transparent 1px);
    background-size: 1.75rem 1.75rem;
    mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 30%, transparent 100%);
    -webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 30%, transparent 100%);
}

.ws-404-backdrop {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: baseline;
    font-size: clamp(7rem, 18vw, 26rem);
    font-weight: 900;
    color: transparent;
    -webkit-text-stroke: 1px rgba(164, 144, 255, 0.5);
    line-height: 1;
    user-select: none;
}

.ws-404-digit {
    display: inline-block;
}

@keyframes ws404-fade-up {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.ws-404-content::before {
    content: '';
    display: block;
    width: 2.5rem;
    height: 2px;
    background: #a490ff;
    margin-bottom: 1.75rem;
}

.ws-404-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.7rem;
    font-family: 'Saira', Helvetica, Arial, sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: #7365b3;
    margin-bottom: 1.5rem;
}

.ws-404-badge-dot {
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 50%;
    background: #a490ff;
    flex-shrink: 0;
    animation: ws404-pulse 2.4s ease-in-out infinite;
}

@keyframes ws404-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: 0.25; transform: scale(0.6); }
}

.ws-404-title {
    font-size: clamp(2.5rem, 3rem, 4rem);
    font-weight: 700;
    color: #1e2f38;
    margin: 0 0 1.25rem;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

#ws-404 p {
    padding: 0;
}

.ws-404-subtitle {
    font-size: 0.95rem;
    color: #626d74;
    margin: 0 0 0.75rem;
    line-height: 1.7;
}

.ws-404-subtitle:last-of-type {
    margin-bottom: 2rem;
}

/* Tablet — backdrop drifts behind the content */
@media (max-width: 980px) {
    .ws-404-content {
        width: 100%;
        align-items: center;
        text-align: center;
        padding: 4rem 2rem;
    }

    .ws-404-content::before {
        align-self: center;
    }

    .ws-404-number-side {
        right: 50%;
        transform: translateX(50%);
        width: 100%;
    }
}

/* Tablet/Mobile — backdrop centred tight behind content */
@media (max-width: 980px) {
    .ws-404-backdrop {
        font-size: 50vw;
        -webkit-text-stroke: 1px rgba(164, 144, 255, 0.2);
    }

    .ws-404-number-side::before {
        display: none;
    }
}

.ws-404-back {
    padding: 0.75rem 1.5rem 0.75rem 1.5rem !important;
}

.ws-404-back::before {
    content: "\23";
    font-family: ETmodules !important;
    font-weight: 400 !important;
    margin-right: 0.7em;
    vertical-align: middle;
    position: relative;
    top: -0.05rem;
    color: #1e2f38;
}

.ws-404-back:hover::before {
    color: #ffffff;
    transform: translateX(-0.2rem);
}

/*====================================================
# Secondary-btn-icon / Contact-btn / GCB secondary btn — icon transitions
====================================================*/

/* Base: transition on ::before and ::after for all three classes */
.secondary-btn-icon::before,
.secondary-btn-icon::after,
.contact-btn::before,
.contact-btn::after,
.gcb-btn-secondary::before,
.gcb-btn-secondary::after {
    transition: color 300ms ease-out, transform 300ms ease-out;
    transform: translateX(0);
}

/* ::after (right arrow) — moves right on hover */
.secondary-btn-icon:hover::after,
.contact-btn:hover::after,
.gcb-btn-secondary:hover::after {
    transform: translateX(0.25rem);
}

/* ::before (left arrow) — moves left on hover */
.secondary-btn-icon:hover::before,
.contact-btn:hover::before,
.gcb-btn-secondary:hover::before {
    transform: translateX(-0.25rem);
}

/* GCB back button — ::before arrow (ETmodules left arrow) */
.gcb-btn-secondary.gcb-btn-back::before {
    content: "\23";
    font-family: ETmodules !important;
    font-weight: 400 !important;
    font-size: inherit;
    line-height: inherit;
}

.gcb-btn-secondary.gcb-btn-back:hover::before {
    color: #fff;
}

/* GCB next button — ::after arrow (ETmodules right arrow) */
.gcb-btn-secondary.gcb-btn-next::after {
    content: "\24";
    font-family: ETmodules !important;
    font-weight: 400 !important;
    font-size: inherit;
    line-height: inherit;
}

.gcb-btn-secondary.gcb-btn-next:hover::after {
    color: #fff;
}
