/*
 * 	Footer CSS
 * */

@media only screen and (max-width: 1500px){
	
	.footer-section{
		padding: 0 20px 20px;
	}
}

@media only screen and (max-width: 1024px){
	
	.footer-section{
		padding: 0;
	}
}

/*
 * Aesteticians Page CSS
 * */

.aesteticians-about-img img{
	aspect-ratio: 1 / 1.215;
	object-fit: cover;
}

.how-it-work-box{
	counter-reset: section;
}

.how-it-work-image-box{
	counter-increment: section;
}

.how-it-work-image-box:before{
	content: "";
	position: absolute;
	top: 0;
	right: -50%;
	left: auto;
	bottom: auto;
	background: rgb(from var(--e-global-color-accent) r g b / 20%);
	mask-image: url("../images/how-it-work-arrow.svg");
	mask-repeat: no-repeat;
	mask-size: cover;
	width: 125px;
	height: 115px;
	transform: translate(-70px, 0);
}

.how-it-work-image-box:nth-child(even):before{
	top: auto;
	bottom: 40%;
	mask-image: url("../images/how-it-work-arrow-2.svg");
}

.how-it-work-image-box:last-child:before{
	display: none;
}

.how-it-work-image-box .elementor-image-box-wrapper .elementor-image-box-img{
	position: relative;
}

.how-it-work-image-box .elementor-image-box-wrapper .elementor-image-box-img:before{
	content: "0" counter(section) " ";
	position: absolute;
	top: 5px;
	right: 5px;
	left: auto;
	bottom: auto;
	font-family: var(--e-global-typography-secondary-font-family);
	font-size: 22px;
	font-weight: var(--e-global-typography-secondary-font-weight);
	color: var(--white-color);
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 42px;
	height: 42px;
}

.how-it-work-image-box:nth-child(odd) .elementor-image-box-wrapper .elementor-image-box-img:before{
	background: var(--e-global-color-primary);
}

.how-it-work-image-box:nth-child(even) .elementor-image-box-wrapper .elementor-image-box-img:before{
	background: var(--e-global-color-accent);
}

.service-process-section{
	counter-reset: section;
}

.service-process-box{
	counter-increment: section;
}

.service-process-box .elementor-widget-container{
	position: relative;
}

.service-process-box .elementor-widget-container:before{
	content: "0" counter(section) " ";
	position: absolute;
	top: 0;
	right: auto;
	left: -80px;
	bottom: auto;
	font-family: var(--e-global-typography-secondary-font-family);
	font-size: 26px;
	font-weight: var(--e-global-typography-secondary-font-weight);	
	color: var(--white-color);
	background: var(--e-global-color-primary);
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 50px;
	height: 50px;
	transition: all 0.4s ease-in-out;
	z-index: 1;
}

.service-process-box:hover .elementor-widget-container:before{
	background: var(--e-global-color-accent);
}

.service-process-box .elementor-widget-container:after{
	content: "";
	position: absolute;
	top: 0;
	left: -55px;
	right: auto;
	bottom: 0;
	background: var(--divider-color);
	width: 1px;
	height: calc(100% + 30px);
}

.service-process-box:last-child .elementor-widget-container:after{
	display: none;
}

.service-tab-img img{
	aspect-ratio: 1 / 0.768;
	object-fit: cover;
}

@media only screen and (max-width: 1024px){
	
	.service-tab-img img{
		aspect-ratio: 1 / 0.55;
	}
	
	.how-it-work-image-box:before{
		transform: translate(-90px, 0);
	}
	
	.how-it-work-image-box:nth-of-type(even):before{
		display: none;
	}
	
	.service-process-box .elementor-widget-container:before{
		font-size: 24px;
	}	
	
}

@media only screen and (max-width: 767px){
	
	.aesteticians-about-img img {
		aspect-ratio: 1 / 1.3;
	}
	
	.how-it-work-image-box:before{
		display: none;
	}
	
	.service-process-box .elementor-widget-container:before{
		top: 0;
		left: 0;
		font-size: 22px;
		width: 40px;
    	height: 40px;
	}	
	
	.service-process-box .elementor-widget-container:after{
		display: none;
	}
}	

/*
 * 	physiotherapists Page CSS
 * */

.physiotherapists-about-img-box:before{
	top: auto;
	left: auto;
	right: 30px;
	bottom: 50px;
	border-radius: 10px;
	width: 280px;
	height: 250px;
}

.physiotherapists-about-img-box:after{
	content: "";
	position: absolute;
	top: 0;
	left: 30px;
	right: auto;
	bottom: auto;
	border: 3px solid var(--e-global-color-accent);
	border-radius: 10px;
	width: 280px;
	height: 250px;
	z-index: -1;
}

.physiotherapists-about-img img{
	aspect-ratio: 1 / 1.02;
	object-fit: cover;
}

.physiotherapists-about-icon-box .elementor-icon-box-wrapper .elementor-icon{
	position: relative;
}

.physiotherapists-about-icon-box .elementor-icon-box-wrapper .elementor-icon:before{
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--e-global-color-accent);
	border-radius: 10px;
	width: 100%;
	height: 100%;
	transform: scale(0) rotate(180deg);
	transition: all 0.4s ease-in-out;
}

.physiotherapists-about-icon-box:hover .elementor-icon-box-wrapper .elementor-icon:before,
.physiotherapists-about-icon-box.hover-play .elementor-icon-box-wrapper .elementor-icon:before{
	transform: scale(1) rotate(0deg);
}

.physiotherapists-why-choose-img img{
	aspect-ratio: 1 / 0.646;
	object-fit: cover;
}

.physiotherapists-core-img img{
	aspect-ratio: 1 / 1.3;
	object-fit: cover;
}

@media only screen and (max-width: 1024px){
	
	.physiotherapists-about-img-box:before{
		right: 0;
		bottom: 10px;
	}
	
	.physiotherapists-about-img-box:after{
		left: 10px;
	}
	
	
	.physiotherapists-core-img img{
		aspect-ratio: 1 / 0.85;
	}
}

@media only screen and (max-width: 767px){
	
	.physiotherapists-about-img-box:before{
		bottom: 10px;
		width: 150px;
		height: 150px;
	}
	
	.physiotherapists-about-img-box:after{
		left: 10px;
		width: 150px;
		height: 150px;
	}
	
	.physiotherapists-why-choose-img img{
		aspect-ratio: 1 / 1.05;
	}
	
	.physiotherapists-core-img img{
		aspect-ratio: 1 / 1.05;
	}
}

/*
 * Process CTA Section (renamed from physiotherapists-process-cta)
 * */

.process-cta-section {
	counter-reset: section;
}

.process-cta {
	counter-increment: section;
}

/* Card container — lift on hover */
.process-cta .elementor-widget-container {
	position: relative;
	overflow: visible;
	border-radius: 10px;
	transition:
		transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
		box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

.process-cta:hover .elementor-widget-container {
	transform: translateY(-8px);
	box-shadow: 0 18px 40px -12px
		rgb(from var(--e-global-color-primary) r g b / 25%);
}

/* Subtle accent wash on the card itself */
.process-cta .elementor-widget-container .elementor-cta {
	border-radius: 10px;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	transition: background-color 0.4s ease-in-out;
}

.process-cta .elementor-widget-container .elementor-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		rgb(from var(--e-global-color-accent) r g b / 0.04) 0%,
		transparent 60%
	);
	opacity: 0;
	transition: opacity 0.45s ease-in-out;
	pointer-events: none;
	z-index: 0;
}

.process-cta:hover .elementor-widget-container .elementor-cta::before {
	opacity: 1;
}

/* Numbered circle — scale + pulse ring + colour swap */
@keyframes process-cta-pulse {
	0% {
		box-shadow: 0 0 0 0 rgb(from var(--e-global-color-accent) r g b / 0.5);
	}
	100% {
		box-shadow: 0 0 0 14px rgb(from var(--e-global-color-accent) r g b / 0);
	}
}

.process-cta .elementor-widget-container:before {
	content: "0" counter(section) " ";
	position: absolute;
	top: -30px;
	left: 50%;
	right: auto;
	bottom: auto;
	font-family: var(--e-global-typography-secondary-font-family);
	font-size: 25px;
	font-weight: var(--e-global-typography-secondary-font-weight);
	color: var(--white-color);
	background: var(--e-global-color-accent);
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 60px;
	height: 60px;
	transform: translate(-50%, 0);
	z-index: 2;
	transition:
		transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
		background-color 0.4s ease-in-out;
}

.process-cta:hover .elementor-widget-container:before {
	transform: translate(-50%, -3px) scale(1.12);
	background: var(--e-global-color-primary);
	animation: process-cta-pulse 1.4s ease-out infinite;
}

/* Title bar — colour swap + corner morph + slight slide */
.process-cta .elementor-widget-container .elementor-cta .elementor-cta__title {
	background-color: var(--e-global-color-primary);
	border-radius: 10px;
	padding: 18px 20px 15px;
	position: relative;
	z-index: 1;
	transition:
		background-color 0.4s ease-in-out,
		border-radius 0.4s cubic-bezier(0.4, 0, 0.2, 1),
		transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.process-cta:hover
	.elementor-widget-container
	.elementor-cta
	.elementor-cta__title {
	background-color: var(--e-global-color-accent);
	border-radius: 10px 10px 30px 30px;
	transform: translateY(2px);
}

/* Description — letter-spacing nudge */
.process-cta
	.elementor-widget-container
	.elementor-cta
	.elementor-cta__description {
	position: relative;
	z-index: 1;
	transition: letter-spacing 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.process-cta:hover
	.elementor-widget-container
	.elementor-cta
	.elementor-cta__description {
	letter-spacing: 0.01em;
}

/* CTA button wrapper — arrow + underline */
.process-cta .elementor-cta .elementor-cta__button-wrapper {
	position: relative;
	z-index: 1;
}

.process-cta .elementor-cta .elementor-cta__button-wrapper:before {
	content: "";
	position: absolute;
	top: 0;
	right: 50%;
	left: auto;
	bottom: auto;
	background: var(--e-global-color-accent);
	mask-image: url("../images/btn-arrow.svg");
	mask-repeat: no-repeat;
	mask-size: 100% auto;
	width: 16px;
	height: 16px;
	transform: translate(75px, 3px);
	transition: all 0.4s ease-in-out;
}

.process-cta:hover .elementor-cta .elementor-cta__button-wrapper:before {
	background: var(--e-global-color-primary);
	transform: translate(85px, 3px);
}

.process-cta .elementor-cta .elementor-cta__button-wrapper .elementor-cta__button {
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-decoration-skip-ink: auto;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	text-underline-position: from-font;
	text-transform: uppercase;
	transition:
		text-decoration-thickness 0.3s ease-in-out,
		text-underline-offset 0.3s ease-in-out,
		color 0.3s ease-in-out;
}

.process-cta:hover
	.elementor-cta
	.elementor-cta__button-wrapper
	.elementor-cta__button {
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
	color: var(--e-global-color-accent) !important;
}

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

	.process-cta .elementor-widget-container .elementor-cta .elementor-cta__title{
		padding: 15px;
	}

}

/* Equal-height process CTA cards
   — stretch the section children so every card matches the tallest,
     then use flex-column on the CTA itself so the content area grows
     to fill the card with no gap and no background-colour hacks.
     justify-content: flex-start overrides elementor-cta--valign-middle
     so all titles sit at the top regardless of card height. */
.process-cta-section {
	align-items: stretch !important;
}

.process-cta.elementor-widget {
	align-self: stretch !important;
	display: flex !important;
	flex-direction: column !important;
}

.process-cta .elementor-widget-container {
	height: 100% !important;
	flex: 1 1 auto !important;
}

.process-cta .elementor-widget-container .elementor-cta {
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
}

.process-cta .elementor-widget-container .elementor-cta .elementor-cta__content {
	flex: 1 1 auto !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-start !important;
}

/* Description stretches to fill the space between the title and the button,
   keeping the button pinned to the bottom of every card. */
.process-cta .elementor-widget-container .elementor-cta .elementor-cta__content .elementor-cta__description {
	flex: 1 1 auto !important;
}


/*
 * 	Chiropractors Page CSS
 * */

.chiropractors-about-img img{
	aspect-ratio: 1 / 1.437;
	object-fit: cover;
}

.chiropractors-about-img-2 img{
	aspect-ratio: 1 / 0.27;
	object-fit: cover;
}

.chiropractors-features-img img{
	aspect-ratio: 1 / 1.4;
	object-fit: cover;	
}

.chiropractors-faq-section-img img{
	aspect-ratio: 1 / 0.44;
	object-fit: cover;
}

.faq-style-2 .e-n-accordion-item{
	border-bottom: 1px solid var(--divider-color);
}

.faq-style-2.faq-style .e-n-accordion-item-title .e-n-accordion-item-title-icon{
	width: 20px;
    height: 20px;
}

.chiropractors-cta-img{
	height: 100%;
}

.chiropractors-cta-img img{
	aspect-ratio: 1 / 0.9;
    object-fit: cover;
	height: 100%;
}

.chiropractors-our-expertise:before{
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: radial-gradient(42.06% 50% at 30% 50%, rgba(255, 255, 255, 0.00) 0%, #FFF 89.05%);
	width: 100%;
	height: 100%;
}

.chiropractors-our-expertise-tab .e-n-tabs-heading .e-n-tab-title{
    position: relative;
    border-bottom: 1px solid #F3F3F3;
}

.chiropractors-our-expertise-tab .e-n-tabs-heading .e-n-tab-title:before{
    content: '';
    display: block;
    position: absolute;
    bottom: -2px;
    left: auto;
    right: 0;
    background-color: var(--n-tabs-title-color-active);
    width: 0;
    height: 5px;
    transition: all 0.4s ease-in-out;
}

.chiropractors-our-expertise-tab .e-n-tabs-heading .e-n-tab-title:hover:before{
	width: 100%;
	right: 0;
	left: 0;
}

.chiropractors-our-expertise-tab .e-n-tabs-heading .e-n-tab-title[aria-selected=true]:before{
	width: 100%;
}

.chiropractors-our-expertise-tab .e-n-tabs-heading .e-n-tab-title .e-n-tab-title-text{
	line-height: normal;
}

@media only screen and (max-width: 1024px){
	
	.chiropractors-about-img img{
		aspect-ratio: 1 / 0.85;
	}
	
	.chiropractors-features-img img{
		aspect-ratio: 1 / 0.85;
	}
	
	.chiropractors-cta-img,
	.chiropractors-cta-img img{
		height: auto;
	}
	
	.chiropractors-cta-img img{
		aspect-ratio: 1 / 0.66;
	}
	
	.chiropractors-our-expertise:before{
		display: none;	
	}
	
}

@media only screen and (max-width: 767px){
	
	.chiropractors-about-img img{
		aspect-ratio: 1 / 1.05;	
	}
	
	.chiropractors-about-img-2 img{
		aspect-ratio: 1 / 0.45;
	}
	
	.chiropractors-features-img img{
		aspect-ratio: 1 / 1.05;
	}
	
	.chiropractors-our-expertise-tab .e-n-tabs-heading .e-n-tab-title:before{
		bottom: -1px;
    	height: 2px;
	}
	
	.chiropractors-faq-section-img img{
		aspect-ratio: 1 / 0.85;	
	}
	
}

/*
 * 	Location Page CSS
 * */

.location-about-img-1 img{
	aspect-ratio: 1 / 1.55;
	object-fit: cover;
}

.location-about-img-2 img{
	aspect-ratio: 1 / 1.45;
	object-fit: cover;
}

.location-list ul li{
	padding: 15px 20px !important;
	background-color: var(--e-global-color-primary);
	border: 1px solid var(--white-color);
	border-radius: 10px;
	transition: all 0.4s ease-in-out;
}

.location-list ul li:hover,
.location-list ul li.hover-play{
	border-color: var(--e-global-color-accent);
	background-color: var(--e-global-color-accent);
}

.location-client-counter .elementor-widget-container{
	width: 60px;
	height: 60px !important;
	display: flex;
	justify-content: center;
	align-items: center;
}

.location-faq .e-n-accordion-item{
	border: 1px solid rgb(from var(--e-global-color-text) r g b / 14%);
	border-radius: 10px;
}

.location-faq{
	counter-reset: section;
}

.location-faq .e-n-accordion-item{
	counter-increment: section;
}

.location-faq .e-n-accordion-item .e-n-accordion-item-title{
	position: relative;
	transition: all 0.3s;
}

.location-faq .e-n-accordion-item .e-n-accordion-item-title:before{
	content: "0" counter(section) " ";
	position: absolute;
	top: 50%;
	right: 20px;
	left: auto;
	bottom: auto;
	font-family: var(--e-global-typography-text-font-family);
	font-size: 40px;
	font-weight: var(--e-global-typography-accent-font-weight);
	color: rgb(from var(--white-color) r g b / 20%);
	width: auto;
	height: auto;
	transform: translateY(-50%);
	transition: all 0.3s ease-in-out;
}

.location-faq .e-n-accordion-item .e-n-accordion-item-title:hover:before,
.location-faq .e-n-accordion-item[open] .e-n-accordion-item-title:before{
	color: var(--e-global-color-accent);
}

.location-faq .e-n-accordion-item .e-n-accordion-item-title .e-n-accordion-item-title-text{
	margin-bottom: -5px;
}

.location-why-choose-us-img img{
	aspect-ratio: 1 / 0.56;
	object-fit: cover;
}

.location-why-choose-us-img-2 img{
	aspect-ratio: 1 / 0.344;
	object-fit: cover;	
}

.location-why-choose-counter .elementor-counter-number-wrapper{
	flex: 0;
}

.location-why-choose-counter .elementor-counter-number-wrapper .elementor-counter-number-suffix{
	flex: 0.5;
}

.our-specialized-services-img img{
	aspect-ratio: 1 / 0.955;
	object-fit: cover;
}

.our-specialized-services-box{
	counter-reset: section;
}

.our-specialized-services-icon-box{
	counter-increment: section;
}

.our-specialized-services-icon-box .elementor-icon-box-wrapper .elementor-icon-box-icon{
	position: relative;
}

.our-specialized-services-icon-box .elementor-icon-box-wrapper .elementor-icon-box-icon:before{
	content: "0" counter(section) " ";
	position: absolute;
	top: 0;
	right: 0;
	left: auto;
	bottom: auto;
	font-family: var(--e-global-typography-primary-font-family);
	font-size: 15px;
	font-weight: var(--e-global-typography-primary-font-weight);
	color: var(--white-color);
	background: var(--e-global-color-accent);
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 24px;
	height: 24px;
	z-index: 1;
}

.our-specialized-services-icon-box .elementor-icon-box-wrapper .elementor-icon-box-icon .elementor-icon{
	position: relative;
	border-style: dashed;
	border-color: rgb(from var(--e-global-color-accent) r g b / 20%) !important;
}

.our-specialized-services-icon-box .elementor-icon-box-wrapper .elementor-icon-box-icon .elementor-icon:before{
	content: "";
	position: absolute;
	top: 70px;
	left: 35px;
	right: auto;
	bottom: auto;
	border: 1px dashed rgb(from var(--e-global-color-accent) r g b / 20%);
	width: 1px;
	height: 70px;
}

.our-specialized-services-icon-box:last-child .elementor-icon-box-wrapper .elementor-icon-box-icon .elementor-icon:before{
	display: none;
}

.location-mission-vision-img{
	position: relative;
	z-index: 1;
}

.location-mission-vision-img:before{
	content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    border: 2px solid var(--e-global-color-accent);
    border-radius: 10px;
    width: calc(100% - 60px);
    height: calc(100% - 80px);
    z-index: -1;
    transform: translate(-50%, -50%);
}

.location-mission-vision-img img{
	aspect-ratio: 1 / 1.01;
	object-fit: cover;
}

@media only screen and (max-width: 1024px){
	
	.location-about-img-1 img{
		aspect-ratio: 1 / 1.05;
	}
	
	.location-about-img-2 img{
		aspect-ratio: 1 / 0.96;
	}
	
	.location-list.column-3 ul li{
		width: calc(33.33% - 20px);
	}
	
	.location-why-choose-us-img-2 img{
		aspect-ratio: 1 / 0.4;
	}
	
	.location-faq .e-n-accordion-item .e-n-accordion-item-title:before{
		font-size: 30px;
	}
	
	.location-mission-vision-img:before{
		width: 500px;
		height: 500px;
	}
	
	.location-mission-vision-img img{
		aspect-ratio: 1 / 0.85;	
	}
	
}


@media only screen and (max-width: 767px){
	
	.location-about-counter .elementor-counter-title{
		text-align: center;
	}
	
	.location-about-img-1 img{
		aspect-ratio: 1 / 1.05;
	}
	
	.location-about-img-2 img{
		aspect-ratio: 1 / 1.4;
	}
	
	.location-list.column-3 ul li{
		width: calc(50% - 5px);
	}
	
	.location-list ul li{
		padding: 10px !important;
	}
	
	.location-client-counter .elementor-widget-container{
		width: 50px;
		height: 50px !important;
	}
	
	.location-why-choose-us-img img{
		aspect-ratio: 1 / 0.9;	
	}
	
	.location-faq .e-n-accordion-item:before{
		font-size: 32px;	
	}
	
	.our-specialized-services-img img{
		aspect-ratio: 1 / 1.05;	
	}
	
	.our-specialized-services-icon-box .elementor-icon-box-wrapper .elementor-icon-box-icon{
		display: inline-flex;
	}
	
	.our-specialized-services-icon-box .elementor-icon-box-wrapper .elementor-icon-box-icon:before{
		font-size: 12px;
		width: 20px;
		height: 20px;
	}
	
	.location-faq .e-n-accordion-item .e-n-accordion-item-title:before{
		font-size: 26px;
	}
	
	.our-specialized-services-icon-box .elementor-icon-box-wrapper .elementor-icon-box-icon .elementor-icon:before{
		display: none;	
	}
	
	.location-mission-vision-img:before{
		width: calc(100% - 40px);
        height: calc(100% - 40px);
	}
	
	.location-mission-vision-img img{
		aspect-ratio: 1 / 1.05;
	}
}

/* ---- Home Tab — smooth accordion on tablet / mobile ---- */
/* JS in function.js owns all display/height changes via inline
   style.setProperty with !important — no CSS overrides needed here. */

/*
 * 	Home Tab Sliding Highlight (desktop only — tablet/mobile use Elementor's native styles)
 * */

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

	.home-tab .e-n-tabs-heading {
		position: relative;
	}

	.home-tab .e-n-tabs-heading .tab-slider-highlight {
		position: absolute;
		top: 4px;
		left: 0;
		height: calc(100% - 8px);
		background-color: var(--e-global-color-primary);
		border-radius: 6px;
		pointer-events: none;
		z-index: 0;
		transition: left 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
		will-change: left, width;
	}

	.home-tab .e-n-tabs-heading .tab-slider-highlight.no-transition {
		transition: none;
	}

	.home-tab .e-n-tabs-heading .e-n-tab-title {
		position: relative;
		z-index: 1;
		background: transparent !important;
		/* Fallback colour transition — works without the JS gradient enhancement */
		transition: color 0.35s cubic-bezier(0.4, 0, 0.2, 1);
	}

	/* Fallback: simple whole-title colour swap driven by .tab-is-highlighted ──
	   These rules are superseded once JS adds [data-gradient-text] and the
	   per-letter gradient kicks in on the inner text span. */
	.home-tab .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:not(.tab-is-highlighted) {
		color: var(--n-tabs-title-color) !important;
	}

	.home-tab .e-n-tabs-heading .e-n-tab-title.tab-is-highlighted {
		color: var(--n-tabs-title-color-active) !important;
	}

	/* Per-letter colour sweep ─────────────────────────────────────────────────
	   [data-gradient-text] is set by JS *after* the first gradient backgrounds
	   are written, so color:transparent only activates once a background is in
	   place — no flash of invisible text.
	   color:transparent !important on the span overrides the inherited colour
	   from the parent button, allowing background-clip:text to take over. */
	.home-tab .e-n-tabs-heading .e-n-tab-title .e-n-tab-title-text {
		display: inline-block;
	}

	.home-tab .e-n-tabs-heading[data-gradient-text] .e-n-tab-title .e-n-tab-title-text {
		-webkit-background-clip: text;
		background-clip: text;
		color: transparent !important;
	}

}

/* Service Tab Sliding Pill — same movement as home-tab */
@media only screen and (min-width: 1025px) {

	.service-tab .e-n-tabs-heading {
		position: relative;
	}

	.service-tab .e-n-tabs-heading .service-tab-slider {
		position: absolute;
		top: 4px;
		bottom: 0;
		left: 0;
		background-color: var(--e-global-color-secondary);
		border-radius: 6px 6px 0 0;
		pointer-events: none;
		z-index: 0;
		transition: left 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
		will-change: left, width;
	}

	.service-tab .e-n-tabs-heading .service-tab-slider.no-transition {
		transition: none;
	}

	/* Accent line lives on the slider — always perfectly aligned to the pill */
	.service-tab .e-n-tabs-heading .service-tab-slider::after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 10%;
		right: 10%;
		height: 2px;
		background: var(--e-global-color-accent);
	}

	/* Hide individual tab ::after on desktop — slider handles it */
	.service-tab .e-n-tabs-heading .e-n-tab-title::after {
		display: none;
	}

	.service-tab .e-n-tabs-heading .e-n-tab-title {
		position: relative;
		z-index: 1;
		background: transparent !important;
		transition: color 0.35s cubic-bezier(0.4, 0, 0.2, 1);
	}

	/* Active tab: white text when slider has moved away from it */
	.service-tab .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:not(.tab-is-highlighted) {
		color: var(--n-tabs-title-color) !important;
	}

	/* Tab the slider is currently covering: dark text (readable on pill) */
	.service-tab .e-n-tabs-heading .e-n-tab-title.tab-is-highlighted {
		color: var(--n-tabs-title-color-active) !important;
	}

}

/*
 * 	Icon Box 1 Hover Effect
 * */

.icon-box-1 .elementor-widget-container {
	position: relative;
	overflow: hidden;
	transition: transform 0.4s ease-in-out, box-shadow 0.4s ease-in-out;
}

/* Slide-up fill layer */
.icon-box-1 .elementor-widget-container::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--e-global-color-primary);
	border-radius: inherit;
	transform: translateY(101%);
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	z-index: 0;
}

.icon-box-1:hover .elementor-widget-container,
.icon-box-1.hover-play .elementor-widget-container {
	transform: translateY(-5px);
	box-shadow: 0 16px 36px rgb(from var(--e-global-color-primary) r g b / 22%);
}

.icon-box-1:hover .elementor-widget-container::before,
.icon-box-1.hover-play .elementor-widget-container::before {
	transform: translateY(0);
}

/* Keep content above the fill layer */
.icon-box-1 .elementor-icon-box-wrapper {
	position: relative;
	z-index: 1;
}

/* Text colour transitions */
.icon-box-1 .elementor-icon-box-title span,
.icon-box-1 .elementor-icon-box-description {
	transition: color 0.4s ease-in-out;
}

.icon-box-1:hover .elementor-icon-box-title span,
.icon-box-1.hover-play .elementor-icon-box-title span {
	color: var(--white-color) !important;
}

.icon-box-1:hover .elementor-icon-box-description,
.icon-box-1.hover-play .elementor-icon-box-description {
	color: rgb(from var(--white-color) r g b / 75%) !important;
}

/*
 * 	Contact Us page CSS
 * */

.contact-icon-box .elementor-icon-box-wrapper .elementor-icon{
	position: relative;
}

.contact-icon-box .elementor-icon-box-wrapper .elementor-icon:before{
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--e-global-color-primary);
	border-radius: 4px;
	width: 100%;
	height: 100%;
	transform: scale(0) rotate(180deg);
	transition: all 0.4s ease-in-out;
}

.contact-icon-box:hover .elementor-icon-box-wrapper .elementor-icon:before,
.contact-icon-box.hover-play .elementor-icon-box-wrapper .elementor-icon:before{
	transform: scale(1) rotate(0deg);
}

/* ============================================================
 *
 *  CUSTOM EFFECTS & ANIMATIONS
 *  All custom hover effects, transitions, @keyframes, and
 *  reusable animation utility classes live here.
 *
 * ============================================================ */

/* ---- .home-work-process-box ---- */
/* Styles moved to style.css to properly override existing rules */

.home-work-process-box:hover .elementor-ribbon-inner {
	color: var(--white-color) !important;
}

/* ---- Keyframes ---- */

/* ... */

/* ---- Utility Classes ---- */

/* ... */

/* ============================================================
 *  END CUSTOM EFFECTS & ANIMATIONS
 * ============================================================ */