/*
Theme Name:   EZO.IO
Theme URI:    https://ezo.io/
Description:  Theme for EZO.IO with custom Elementor widgets and shortcodes
Author:       Ali Nawaz
Author URI:   https://bealinawaz.com
Template:     hello-elementor
Version:      1.0.0
Text Domain:  hello-elementor-child
*/

/* Add your custom CSS below this line */

/* =============================
Global Utility Classes
============================= */

.bold { font-weight: 700; }
.ml-5 { margin-left: 5px; }
.glass-effect > .elementor-widget-wrap.elementor-element-populated{
	background: rgba(255, 255, 255, 0.7) !important;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px); /* for Safari */
	transition: backdrop-filter 0.3s ease, background 0.3s ease;
}

.elementor-widget-testimonial-carousel .elementor-testimonial__image img {
    object-fit: contain;
    width: 100% !important;
    max-height: 80px;
    height: 40px !important;
}
.bring-sec-col{
    margin-top: auto;
    margin-bottom: auto;
    height:fit-content;
}

@media screen and (max-width: 767px) {
    .reviews-slider .swiper-slide {
        border-radius: 12px !important;
        padding: 33px 52px 33px 52px !important;
    }
.reviews-slider.elementor-arrows-yes .elementor-main-swiper {
        width: 100% !important;
    }
}
.elementor-accordion .elementor-tab-title .elementor-accordion-icon svg { width: 16px !important; }
@media (min-width: 480px) and (max-width: 1024px) {
	.elementor-position-left.elementor-position-top.elementor-vertical-align-top .elementor-image-box-wrapper {
		display: block !important;
	}
}


/* Text Colors */
.text-ezr { color: #6B1C99; }
.text-gam { color: #4156FA; }
.text-ezo-yellow { color: #FFAF40; }

/* Highlight Variants */
.text-gradient-blue, .as-gradient-text{
	background: linear-gradient(90deg, rgba(75,192,210,1) 0%, rgba(65,86,250,1) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	color: transparent;
	font-weight: 700;
}

/* =============================
Shared Gradient Border Base
============================= */
.border-gradient-base {
	position: relative;
	border: solid transparent;
	border-radius: 12px;
	background: linear-gradient(#fff, #fff) padding-box;
}

@media screen and (min-width: 767px) {
	.border-hover-blue:hover .elementor-widget-wrap.elementor-element-populated,
	.border-hover-ezr:hover .elementor-widget-wrap.elementor-element-populated{
		background-color: #fff !important;
	}

	/* Hover Border Base */
	.border-hover-base {
		position: relative;
		border-radius: 6px;
	}

	.border-hover-base::after {
		content: "";
		position: absolute;
		inset: 0;
		border-radius: inherit;
		padding: 2px;
		mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
		mask-composite: exclude;
		opacity: 0;
		transition: opacity 0.3s ease;
	}

	.border-hover-base:hover::after {
		opacity: 1;
	}
}


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

	.mob-border-gradient-base {
		border-radius: 6px;
		position: relative;
	}

	.mob-border-gradient-base .elementor-widget-wrap.elementor-element-populated{
		background-color: #fff !important;
	}

	.mob-border-gradient-base::after {
		content: "";
		position: absolute;
		inset: 0;
		border-radius: inherit;
		padding: 2px;
		mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
		mask-composite: exclude;
		opacity: 1;
		transition: opacity 0.3s ease;
	}
}

/* =============================
Brand Theme Variants
============================= */

/* EZR Gradient */
.border-ezr {
	background: linear-gradient(#fff, #fff) padding-box,
		linear-gradient(90deg, #6B1C99 0%, #FA9E5F 100%) border-box;
}

.border-hover-ezr::after {
	background: linear-gradient(90deg, #FA9E5F 0%, #6B1C99 100%);
}

/* SIT / Blue Gradient */
.border-blue {
	background: linear-gradient(#fff, #fff) padding-box,
		linear-gradient(90deg, rgba(75,192,210,1) 0%, rgba(65,86,250,0.8) 100%) border-box;
}

.border-hover-blue::after {
	background: linear-gradient(90deg, rgba(75,192,210,1) 0%, rgba(65,86,250,0.8) 100%);
}

/* GAM Gradient */
.border-gam {
	background: linear-gradient(#fff, #fff) padding-box,
		linear-gradient(90deg, #0061FF 0%, #FFAF3F 100%) border-box;
	border: 2px solid transparent;
}

.border-gam-bg {
	background: linear-gradient(#FFAF3F0D, #FFAF3F0D) padding-box,
		linear-gradient(90deg, #0061FF 0%, #FFAF3F 100%) border-box;
}

.border-hover-gam::after {
	padding: 2px;
	background: linear-gradient(90deg, #FFAF3F 0%, #0061FF 100%);
}

/* =============================
Hero Badges
============================= */

.hero-badges .gallery {
	display: flex;
	flex-direction: row;
	justify-content: center;
	gap: 26px;
}

.hero-badges .gallery .gallery-item {
	max-width: max-content;
	padding-bottom: 0 !important;
}

/* Generic Asset Management */
.hero-badges.ezo-hero-badges .gallery-item img {
    height: 90px;
    object-fit: contain;
    object-position: top center;
    width: 100%;
}

@media screen and (max-width: 767px) {
	.hero-badges .gallery { gap: 12px; }
	.hero-badges .gallery .gallery-item { max-width: 52px !important; }
	.hero-badges.ezo-hero-badges .gallery-item img { height: 40px; }
}
/* =============================
   Client Logos
============================= */

/* Base styles */
.client-logos .gallery {
	display: flex;
	justify-content: center;
	gap: 46px;
}

.client-logos .gallery .gallery-item img {
	width: 100%;
	height: 35px;
	object-fit: contain;
}

/* Desktop */
/* @media screen and (min-width: 768px) {
	.client-logos.as-client-logos .gallery-item:first-child img {
		object-position: center right;
		padding-right: 7px;
	}

	.client-logos.as-client-logos .gallery-item:last-child img {
		object-position: center left;
	}
} */

/* Mobile */
@media screen and (max-width: 767px) {
	.client-logos .gallery {
		background-color: #f5f5f5;
		padding: 20px 30px;
		gap: 23px;
		flex-wrap: wrap;
	}

	.client-logos .gallery .gallery-item {
		flex: calc(100% / 3 - 23px);
	}
}

/* =============================
Features Sections
============================= */

.pm-features-sec-inner > .elementor-container { gap: 25px; }
.sit-features-sec-inner > .elementor-container { gap: 42px; }

/* =============================
SIT FAQ Styling
============================= */

.sit-faq .elementor-accordion .elementor-accordion-item {
	border: 1px solid #d9d9d9 !important;
	border-radius: 12px !important;
	padding: 15px 30px !important;
	margin-bottom: 25px !important;
	position: relative;
}

.sit-faq .elementor-accordion .elementor-accordion-item:has(.elementor-tab-title.elementor-active) {
	background: linear-gradient(0deg, #fff 15%, rgba(74,176,210,0.2) 100%) !important;
	border-color: 1px solid transparent !important;
	position: relative;
}

.sit-faq .elementor-tab-content { border-top: 0 !important;
    z-index: 10;
    position: relative;
}



.sit-faq .elementor-accordion .elementor-accordion-item:has(.elementor-tab-title.elementor-active)::before {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid transparent;
	border-radius: 12px;
	padding: 0px;
	background: linear-gradient(#fff, #fff) padding-box,
		linear-gradient(90deg, rgba(75,192,210,1) 0%, rgba(65,86,250,0.8) 100%) border-box;
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask-composite: exclude;
	opacity: 1;
	transition: opacity 0.3s ease;
	z-index: 0;
}
.sit-faq .elementor-accordion .elementor-accordion-item .elementor-tab-title.elementor-active{
	position: relative;
	z-index: 1;
}
sit-faq a{
	color: #006FC8;
}

.faq-hvr-effect .elementor-accordion-title h3 {
    font-size: 20px !important;
    font-weight: 600;
    line-height: 1.5em;
    display: inline;
}
.faq-hvr-effect .elementor-accordion-icon i {
    font-size: 16px;
}

/* =============================
Customer testimonial slider
============================= */

.reviews-slider .swiper-slide.swiper-slide-active:nth-child(even) {
    background: rgba(86, 103, 234, 0.05);
}
.reviews-slider .swiper-slide.swiper-slide-active:nth-child(odd) {
    background: rgba(75, 192, 210, 0.05);
}
.reviews-slider.elementor-widget-testimonial-carousel .elementor-swiper-button-prev {
    left: 4% !important;
}
.reviews-slider.elementor-widget-testimonial-carousel .elementor-swiper-button-next {
    right: 4% !important;
}
/* =============================
Features Tabs
============================= */

.features-tabs .elementor-tab-title::before {
	content: "" !important;
	position: absolute !important;
	bottom: 0;
	left: 50%;
	width: 100%;
	height: 2px !important;
	transform: translateX(-50%);
	background-color: #333;
	opacity: 1;
	transition: all 0.3s ease;
}


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

	.features-tabs .elementor-tab-title::before {
		width: 70% !important;
		opacity: 0;
	}
	.features-tabs .elementor-tab-title.elementor-active::before {
		width: 70% !important;
	}
	
	/* Shadow IT */
	.features-tabs.sit .elementor-tab-title.elementor-active::before {
		background: linear-gradient(90deg, rgba(75,192,210,1) 0%, rgba(65,86,250,0.8) 100%);
	}
	.features-tabs.sit .elementor-tab-title::before {
		background: linear-gradient(90deg, rgba(75,192,210,1) 0%, rgba(65,86,250,0.8) 100%);
	}

	/* EZR */
	.features-tabs.ezr .elementor-tab-title.elementor-active::before {
		background: #6B1C99;
	}
	.features-tabs.ezr .elementor-tab-title::before {
		background: #6B1C99;
	}

	/* GAM */
	.features-tabs.gam .elementor-tabs-wrapper {
		justify-content: space-around !important;
	}
	.features-tabs.gam .elementor-tab-title.elementor-active::before {
		background: linear-gradient(90deg, #4156FA 0%, #FFAF3F 100%);
	}
	.features-tabs.gam .elementor-tab-title::before {
		background: linear-gradient(90deg, #4156FA 0%, #FFAF3F 100%);
	}
	

	/* EZO Construction Home Page */
	.features-tabs.cmms-blue .elementor-tabs-wrapper {
		justify-content: space-around !important;
	}
	.features-tabs.cmms-blue .elementor-tab-title.elementor-active::before {
		background: #4156FA;
	}
	.features-tabs.cmms-blue .elementor-tab-title::before {
		background: #4156FA;
		height: 5px !important;
		border-radius: 6px !important;
	}

	/* Global */
	.features-tabs .elementor-tab-title.elementor-active::before {
		opacity: 1;
	}

	.features-tabs .elementor-tab-content {
		padding: 40px 20px !important;
	}

	.features-tabs .elementor-tabs-wrapper {
		display: flex;
		justify-content: center;
		gap: 20px;
		align-items: center;
	}

	.features-tabs.ezr .elementor-tabs-wrapper {
		gap: 180px;
	}
}

@media screen and (max-width: 767px){
	/* arrow */
	.features-tabs .elementor-tab-title::after {
		content: "\25B2";
		display: inline-block;
		font-size: 14px;
		margin-left: 5px;
		vertical-align: middle;
		transform: rotate(180deg);
		transform-origin: center center;
		transition: transform 0.3s ease;
		will-change: transform;
	}

	/* rotated state */
	.features-tabs .elementor-tab-title.elementor-active::after {
		transform: rotate(0deg);
	}
}

.features-tabs .content_wrapper h4 {
	font-size: clamp(28px, 4vw, 36px);
	color: #333;
	margin-bottom: 20px;
	font-weight: 400;
}

@media (max-width: 600px) {
	.features-tabs .content_wrapper h4 {
		font-size: 20px !important;
		margin-top: 30px;
	}
}

.features-tabs p {
	font-size: 16px;
	color: #333;
	line-height: 1.7;
	font-weight: 500;
}

.features-tabs ul { list-style: none; padding: 0; }
.features-tabs li {
	padding-left: 25px;
	position: relative;
	margin-bottom: 12px;
	color: #333;
}

.features-tabs li::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50px;
	background: #333;
	position: absolute;
	left: 0;
	top: 7px;
}

/* =============================
EZR FAQ
============================= */

.ezr-faq .elementor-accordion .elementor-accordion-item {
	border: 1px solid #d9d9d9 !important;
	border-radius: 8px;
	padding: 15px 30px;
	margin-bottom: 25px;
}

.ezr-faq .elementor-accordion .elementor-accordion-item:has(.elementor-active) {
	background: linear-gradient(180deg, rgba(107,28,153,0.1) 3.24%, rgba(255,255,255,0.1) 84.86%);
	border-radius: 6px;
	position: relative;
}

.ezr-faq .elementor-accordion .elementor-accordion-item:has(.elementor-active)::after {
	content: "";
	position: absolute;
	inset: 0;
	padding: 1px;
	border-radius: inherit;
	background: linear-gradient(90deg, #6B1C99 0%, #FA9E5F 100%);
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask-composite: exclude;
	z-index: 0;
}
.ezr-faq .elementor-accordion .elementor-accordion-item .elementor-tab-title.elementor-active{
	position: relative;
	z-index: 1;
}


/* =============================
Comparison Table CSS
============================= */
.ekit_table_data_type-custom table tbody tr td {
    width: 33.333% !important;
}


/* =============================
AssetSonar OLD FAQ
============================= */

.assetsonar_faq .elementor-accordion .elementor-accordion-item {
  border: 1px solid #d9d9d9 !important;
  border-radius: 8px;
  padding: 15px 30px;
  margin-bottom: 25px
}

.assetsonar_faq .elementor-accordion .elementor-tab-content {
  border-top: 0
}

.assetsonar_faq .elementor-accordion .elementor-accordion-item:has(.elementor-tab-title.elementor-active) {
  background: linear-gradient(0deg, #fff 15%, rgba(74, 176, 210, .2) 100%) !important;
  border-color: #4ab0d2 !important
}

.as-faq.sit-faq .elementor-accordion-title h3 {
    font-size: 20px !important;
    font-weight: 600;
    line-height: 1.5em;
    display: inline;
}


/* =============================
GAM FAQ
============================= */

.gam-faq .elementor-accordion .elementor-accordion-item {
	border: 1px solid #d9d9d9 !important;
	border-radius: 12px;
	padding: 15px 30px;
	margin-bottom: 25px;
}

.gam-faq .elementor-accordion .elementor-accordion-item:has(.elementor-active) {
	background: linear-gradient(180deg, #5667ea26 0%, #fff 100%);
	border-radius: 12px;
	border: 1px solid transparent !important;
	position: relative;
}

.gam-faq .elementor-accordion .elementor-accordion-item:has(.elementor-active)::after {
	content: "";
	position: absolute;
	inset: 0;
	padding: 1px;
	border-radius: inherit;
	background: linear-gradient(90deg, #5667EA 0%, #FA9E5F 100%);
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask-composite: exclude;
	z-index: 0;
}

.gam-faq .elementor-accordion .elementor-accordion-item .elementor-tab-title.elementor-active{
	position: relative;
	z-index: 1;
}



/* AS Verticles Tabs CSS */

.vert-tabs .elementor-tab-text-column {
    --text-width: 100% !important;
}
.vert-tabs .elementor-tab-title h3{
    color: #555;
font-family: "Open Sans";
font-size: 22px;
font-weight: 400;
line-height: 1.2;
margin-bottom: 0px;
}
.vert-tabs .elementor-tab-cta-wrapper a.elementor-tab-cta-button {
    display: inline-flex;
    gap: 5px;
} 
.vert-tabs.elementor-widget-tabs .elementor-tab-content {
    background: #F6FCFD;
     padding: 0px;
    border-radius: 6px;
}
.vert-tabs .elementor-tab-content.elementor-clearfix.elementor-active {
      padding: 28px 36px;
}
  .vert-tabs .elementor-tab-title.elementor-tab-title.elementor-active h3{
    font-weight: 600 !important;
}

.vert-tabs.elementor-widget-tabs .elementor-tab-title{
    border-bottom: 1px solid #33333340 !important;
        padding: 30px 0px 24px 0px;
    
}
.vert-tabs .elementor-tab-image {
	max-width: 596px;
    margin: auto;
    width: 100% !important;
}

.four-tabs.vert-tabs.elementor-widget-tabs .elementor-tab-title{
        padding: 49px 0px 24px 0px;
    
}
.three-tabs.vert-tabs.elementor-widget-tabs .elementor-tab-title {
    padding: 70px 0px 24px 0px;
}
 .vert-tabs span.elementor-tab-cta-icon{
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

 .vert-tabs a.elementor-tab-cta-button:hover span.elementor-tab-cta-icon{
  transform: translateX(8px);
}

@media screen and (max-width:1024px){
.vert-tabs.elementor-widget-tabs.elementor-tabs-view-vertical .elementor-tabs {
    gap: 50px;
}
.vert-tabs.elementor-widget-tabs .elementor-tab-content {
    padding: 0px;
}
.vert-tabs .elementor-tab-content.elementor-clearfix.elementor-active {
      padding: 28px;
}
}

@media screen and (min-width:768px){
.vert-tabs.elementor-widget-tabs.elementor-tabs-view-vertical .elementor-tabs {
    gap: 53px;
}
.vert-tabs .elementor-tabs-wrapper {
        margin: auto 0px;
       
}
.vert-tabs.elementor-widget-tabs div.elementor-tab-title:last-child {
    border: none !important;
}
}

@media screen and (max-width:767px){
 
	.vert-tabs .elementor-tab-image {
    width: inherit !important; 
	}
    
   .vert-tabs .elementor-tab-title h3{
       font-size:20px;
   }
   
.vert-tabs .elementor-tab-title.elementor-tab-mobile-title h3::after {
        content: "▶";
        position: absolute;
        right: auto;
        transform: rotate(90deg);
        transform-origin: center;
        left: auto;
        bottom: 20px;
        font-size: 10px;
        padding-left: 22px;
    }
    .vert-tabs .elementor-tab-title.elementor-tab-mobile-title.elementor-active h3:after {
    transform: rotate(270deg);
    bottom: 0px;
}
.vert-tabs.elementor-widget-tabs .elementor-tab-content {
     padding: 0px !important;
    background: #fff;
    border-radius: 0px;
}
 .vert-tabs .elementor-tab-title.elementor-tab-mobile-title, .four-tabs.vert-tabs.vert-tabs .elementor-tab-title.elementor-tab-mobile-title, .three-tabs.vert-tabs.elementor-widget-tabs .elementor-tab-title{
         position: relative; 
          border-bottom: 1px solid #333333 !important;
       padding: 22px 5px 5px 5px;
        text-align:center !important;
    }
.vert-tabs .elementor-tab-content.elementor-clearfix.elementor-active {
    padding: 29px 32px 5px 32px !important;
}

 
.vert-tabs .elementor-tab-content {
  display: block !important;
  opacity: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
  transition: opacity .5s ease, height .5s ease;
}

.vert-tabs .elementor-tab-content.elementor-active {
  opacity: 1 !important;
  height: auto !important;
  pointer-events: all !important;
}

}


/* =============================
Responsive Fixes
============================= */

@media screen and (max-width: 767px) {
	.as-faq.sit-faq .elementor-accordion-title h3 {font-size:16px !Important;}
	.elementor-tabs .elementor-tab-title { text-align: center; position:relative; }
	.elementor-tabs .elementor-tab-content { padding: 20px !important; }
	.ezo-cta-buttons-wrapper { align-items: flex-start; }
}
