.cursor-none{ cursor: none; pointer-events: none; }
.bg-purple-white {
    color: white;
    background-color: #9055b4;
    border-color: #9055b4 !important;
}
.text-purple { color: #9055b4;}
.purple-shadow{ box-shadow: 3px 3px 6px #c5a5d7, -3px -3px 6px #9055b4 !important; }
.shadow-neumorphism { box-shadow: 8px 8px 16px #d1d9e6, -8px -8px 16px #ffffff; }
.page-header{
    padding-top: 6rem !important;
    padding-bottom: 2rem !important;
}
.whatsapp{
    padding-right: 16.1px !important;
}
.hr-purple{
    border-top-color: #9055b4;
}
.gap-0 { gap: 0 !important; }
.gap-1 { gap: 0.25rem !important; }
.gap-2 { gap: 0.5rem !important; }
.gap-3 { gap: 1rem !important; }
.gap-4 { gap: 1.5rem !important; }
.gap-5 { gap: 3rem !important; }
.font-10{ font-size: 10px !important; }
.font-11{ font-size: 11px !important; }
.font-12{ font-size: 12px !important; }
.font-13{ font-size: 13px !important; }
.font-14{ font-size: 14px !important; }
.font-15{ font-size: 15px !important; }
.font-16{ font-size: 16px !important; }
.font-17{ font-size: 17px !important; }
/* orbit design css */
.orbit-wrapper {
    position: relative;
    width: 400px;
    height: 260px; /* 👈 ellipse shape */
    margin: 0 auto;
    perspective: 800px;
}
/* .orbit-wrapper::before {
    content: "";
    position: absolute;
    top: 53%;
    left: 60%;
    width: 320px;
    height: 140px;
    border: 1px dashed #9055b4;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
} */
#orbit {
    opacity: 0;
    transition: opacity 0.4s ease;
}
.orbit {
    position: relative;
    width: 100%;
    height: 100%;
}
.neo-icon {
    position: absolute;
    top: 40%;
    left: 50%;
    width: 70px;
    height: 70px;
    /* border-radius: 50%; */
    /* background: #e6e9ef; */
    display: flex;
    align-items: center;
    justify-content: center;
    /* box-shadow: 8px 8px 16px #c5c8ce, -8px -8px 16px #ffffff; */
    transform: translate(-50%, -50%);
    cursor: pointer; /* 👈 show pointer */
    transition: transform 0.5s ease, opacity 0.5s ease, box-shadow 0.5s ease;
    /* transition: transform 0.4s ease, opacity 0.4s ease, box-shadow 0.4s ease; */
}
.neo-icon:hover {
    transform: translate(-50%, -50%) scale(2.0) !important;
    z-index: 999;
    opacity: 1 !important;
    /* box-shadow: 0 15px 30px rgba(0,0,0,0.2); */
}
.neo-icon img {
    width: 50px;
}
@media (max-width: 768px) {
    .orbit-wrapper {
        width: auto !important;
        margin: 0;
    }
    .neo-icon {
        position: absolute;
        top: 30%;
        left: 40%;
    }
    .neo-icon img {
        width: 40px !important;
    }
}
/* orbit design css end */
/* slider css */
.fade-slider {
    position: relative;
    overflow: hidden;
}
.fade-slide {
    position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}
.fade-slide.active {
    opacity: 1;
    position: relative;
}
/* .teeth-shape {
    clip-path: polygon(
       50% 0%,
    25% 15%,
    15% 40%,
    20% 70%,
    30% 100%,
    45% 100%,
    50% 85%,
    55% 100%,
    70% 100%,
    80% 70%,
    85% 40%,
    75% 15%
    );
} */
/* slider css end */

/* map css */
#bd-map-wrapper {
    width: auto;
    margin: auto;
}
#bd-map {
    position: relative;
    width: 295px;
    height: 400px;
}
#bd-map img {
    width: 100%;
    height: 100%;
    display: block;
}
.map-point{
    position:absolute;
    width:10px;
    height:10px;
    background:rgb(255, 67, 67);
    border-radius:50%;
    transform:translate(-50%,-50%);
    cursor:pointer;
    z-index:2;
}
/* ripple animation */
.map-point::before,
.map-point::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:14px;
    height:14px;
    border-radius:50%;
    background:rgba(255, 56, 56, 0.5);
    transform:translate(-50%,-50%);
    animation:ripple 2s infinite;
}
.map-point::after{
    animation-delay:1s;
}
#map-tooltip{
    position:absolute;
    background:#ffffff;
    color:#000;
    padding:6px 10px;
    border-radius:4px;
    font-size:13px;
    font-weight: bold;
    border: 1px solid lightgrey;
    display:none;
    transform:translate(-50%,-120%);
}
/* vibration / pulse effect */
@keyframes ripple{
    0%{
        width:14px;
        height:14px;
        opacity:0.8;
    }
    70%{
        width:40px;
        height:40px;
        opacity:0;
    }
    100%{
        opacity:0;
    }
}
/* map css end */

/* toastr css */
#toast-container {
    top: 20px;
    right: 20px;
}
#toast-container > .toast {
    background: #ffffff !important;
    color: #111827 !important;
    border-radius: 16px;
    padding: 16px 20px;
    font-size: 14px;
    font-weight: 600;
    background-image: none !important;
    box-shadow: 0 10px 25px rgba(0,0,0,0.08), 0 2px 6px rgba(0,0,0,0.04);
    border-left: 5px solid #22c55e;
    opacity: 1 !important;
}
.toast-message {
    color: #111827 !important;
    line-height: 1.6;
}
#toast-container > .toast-success {
    border-left: 5px solid #22c55e;
}
#toast-container > .toast-error {
    border-left: 5px solid #ef4444;
}
#toast-container > .toast-warning {
    border-left: 5px solid #f59e0b;
}
#toast-container > .toast-info {
    border-left: 5px solid #3b82f6;
}
.toast-close-button {
    color: #6b7280;
    font-size: 18px;
    opacity: 1;
}
.toast-success .toast-progress {
    background: #22c55e;
    height: 3px;
}
.toast-error .toast-progress {
    background: rgb(250, 121, 121);
    height: 3px;
}
/* toastr css end */

/* gallery home css */
.coverflow-slider {
    position: relative;
    width: 100%;
    max-width: 900px;
    height: 400px;
    perspective: 1000px;
    overflow: hidden;
}
.coverflow-slider .slide {
    position: absolute;
    top: 0;
    left: 50%;
    width: 80%;
    height: 90%;
    transform: translateX(-50%);
    opacity: 0;
    z-index: 0;
    will-change: transform, opacity;
    transition: opacity 0.5s ease, transform 0.5s ease;
}
.coverflow-slider .slide img {
    border-color: #D1D9E6 !important;
    border-radius: 10px;
}
.coverflow-slider .slide.active {
    transform: translateX(-50%) scale(1);
    z-index: 10;
    opacity: 1;
    visibility: visible;
}
.coverflow-slider .slide.next {
    transform: translateX(calc(-50% + 10%)) scale(0.9); /* only 10% peek */
    z-index: 9;
    opacity: 0.8;
}
.coverflow-slider .slide.next2 {
    transform: translateX(calc(-50% + 17%)) scale(0.85); /* next slide slightly more hidden */
    z-index: 8;
    opacity: 0.7;
}
.coverflow-slider .slide.next3 {
    transform: translateX(calc(-50% + 24%)) scale(0.8); /* next slide slightly more hidden */
    z-index: 7;
    opacity: 0.7;
}
.coverflow-slider .slide.prev {
    transform: translateX(calc(-50% - 10%)) scale(0.9); /* 10% peek on left */
    z-index: 9;
    opacity: 0.8;
}
.coverflow-slider button {
    position: absolute;
    top: 45%;
    transform: translateY(-50%);
    background: rgba(0,0,0,0.5);
    color: white;
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    cursor: pointer;
    z-index: 20;
}
.coverflow-slider .prev-btn { left: 40px; }
.coverflow-slider .next-btn { right: 40px; }
@media (max-width: 424px) {
    .coverflow-slider {
        height: 280px;
    }
    .coverflow-slider .slide img {
        height: 260px;
    }
    .coverflow-slider button {
        /* top: 50% !important; */
        width: 30px;
        height: 30px;
    }
    .whatsapp{
        padding-right: 17.1px !important;
    }
}
/* gallery home css end */

/* client css */
.clients-wrapper, .clients-wrapper-right{
    overflow: hidden;
    position: relative;
}
.clients-track, .clients-track-right{
    display: flex;
    width: max-content;
}
.client-item{
    flex: 0 0 auto;
    width: 180px;
    margin-right: 20px;
}
.client-item img{
    filter: grayscale(100%);
    opacity: 0.7;
    transition: all 0.4s ease;
}
.client-item img:hover{
    filter: grayscale(0%);
    opacity: 1;
}
/* client css end */
/* testimonial css */
.testimonial-text{
    position: relative;
    font-style: italic;
    line-height: 1.7;
    padding: 20px 30px;
}
.testimonial-text::before{
    content: "“";
    font-size: 80px;
    position: absolute;
    left: -10px;
    top: -30px;
    opacity: .15;
    font-family: Georgia, serif;
}
.testimonial-text::after{
    content: "”";
    font-size: 80px;
    position: absolute;
    right: 0;
    bottom: -40px;
    opacity: .15;
    font-family: Georgia, serif;
}


.testimonial-slider-wrapper {
    overflow: hidden;
    position: relative;
}
.testimonial-track {
    display: flex;
    transition: transform 0.5s ease-in-out;
}
.profile-card {
    flex: 0 0 calc(33% - 20px);
    margin: 0 12px 24px;
    box-sizing: border-box;
}
/* Tablet: 2 cards per row */
@media (max-width: 992px) {
    .profile-card {
        flex: 0 0 calc(50% - 15px);
        margin: 0 7.5px 24px;
    }
}
/* Mobile: 1 card per row */
@media (max-width: 576px) {
    .profile-card {
        flex: 0 0 100%;
        margin: 0 0px 0px;
    }
}
/* testimonial css end */


/* step css */
.circle-stepper-wrapper {
    position: relative;
    width: 400px;
    height: 400px;
    margin: 10px auto;
}
@media (max-width: 768px) {
    .circle-design .shadow-inset {
        box-shadow: none !important;
    }
    .circle-design .border-light {
        border-color: #e6e7ee !important;
    }
}
.circle-arrows {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    overflow: visible;
}
.circle-stepper {
    position: absolute;
    width: 100%;
    height: 100%;
}
.step {
    position: absolute;
    text-align: center;
    width: 100px;
}
.circle {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: #e0e5ec;
    box-shadow: 8px 8px 15px #babecc, -8px -8px 15px #ffffff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    font-size: 22px;
}
.step.active .circle {
    box-shadow: inset 8px 8px 15px #babecc, inset -8px -8px 15px #ffffff;
    color: #4caf50;
}
.label {
    font-size: 15px;
    font-weight: 700;
    color: #555;
    margin-top: 10px;
}


.steps-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 25px 0;
    font-family: 'Arial', sans-serif;
}
.step-box {
    background: #e0e5ec;
    border-radius: 15px;
    box-shadow: 8px 8px 16px #bebebe, -8px -8px 16px #ffffff;
    padding: 10px 20px;
    text-align: center;
    width: auto;
    transition: all 0.3s ease;
}
.step-box h3, .step-box p {
    margin: 0;
    padding: 0;
    font-weight: bold;
}
.step-box:hover {
    box-shadow: inset 8px 8px 16px #bebebe, inset -8px -8px 16px #ffffff;
}
.arrow {
    font-size: 30px;
    margin: 0 0 5px 0;
    color: #4caf50;
    line-height: 1;
    animation: bounce 1s infinite alternate;
}
@keyframes bounce {
    from { transform: translateY(0); }
    to { transform: translateY(10px); }
}
/* step css end */
/* bubble css */
.pos-relative{
    position: relative;
}
.bubble {
    position: absolute;
    border-radius: 50%;
    opacity: 0.6;
    pointer-events: none;
}
.bubble-section{
    position: relative;
    overflow: hidden;
}
@keyframes float {
    0% { transform: translateY(0) translateX(0); }
    25% { transform: translateY(-30px) translateX(10px); }
    25% { transform: translateY(-30px) translateX(20px); }
    50% { transform: translateY(-50px) translateX(0); }
    75% { transform: translateY(-30px) translateX(-10px); }
    100% { transform: translateY(0) translateX(0); }
}
/* bubble css end */
/* feature css */
.feature-icon-shape {
    width: 90px;
    height: 90px;
    margin: auto;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.feature-icon-shape::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #9055b4, #c5a5d7);
    border-radius: 50%;

    animation: blobMorph 6s infinite ease-in-out;
    transition: 0.4s;
    z-index: 0;
}
.feature-icon-shape span {
    font-size: 32px;
    color: #fff;
    z-index: 1;
    transition: 0.3s;
}
.icon-box:hover .feature-icon-shape::before {
    animation-duration: 2s;
    transform: scale(1.1);
}
.icon-box:hover .feature-icon-shape span {
    transform: scale(1.2) rotate(8deg);
}
@keyframes blobMorph {
    0% {
        border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;
    }
    25% {
        border-radius: 58% 42% 30% 70% / 55% 60% 40% 45%;
    }
    50% {
        border-radius: 50% 50% 33% 67% / 55% 45% 55% 45%;
    }
    75% {
        border-radius: 60% 40% 70% 30% / 45% 55% 45% 55%;
    }
    100% {
        border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;
    }
}
/* feature css end */

/* overview & ranking css */
.neu-card {
    width: 90%;
    max-width: 520px;
    margin: 20px auto;
    padding: 20px;
    border-radius: 20px;
    background: #e0e5ec;
    box-shadow: 8px 8px 15px #a3b1c6, -8px -8px 15px #ffffff;
    text-align: center;
}
@media (max-width: 576px) {
    .neu-card {
        width: 95%;
        max-width: 360px !important;
    }
}
canvas {
    margin-top: 15px;
}
#clientSourceChart {
    width: 320px !important;
    height: 320px !important;
}
.rating-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 20px;
}
.rating-text {
    font-size: 16px;
    font-weight: 600;
    color: #555;
}
.rating-box {
    padding: 8px 12px;
    border-radius: 12px;
    background: #e0e5ec;
    box-shadow: inset 4px 4px 8px #a3b1c6, inset -4px -4px 8px #ffffff;
}
.star {
    font-size: 16px;
    color: #cbd3df;
    margin: 0 1px;
    position: relative;
    display: inline-block;
}
.star.filled {
    color: #9055b4;
}
.star.half {
    background: linear-gradient(90deg, #9055b4 50%, #cbd3df 50%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
/* overview & ranking css end */
