@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700;800&display=swap');

:root {
    --color-brand-purple: #34205B;
    --color-brand-blue: #0B67B1;
    --color-brand-cyan: #11A8E8;
    --color-brand-orange: #F57C00;
    --color-brand-dark: #1A0F30;
    
    --font-heading: 'Outfit', sans-serif;
    --font-body: 'Inter', sans-serif;
}

/* Base resets & styles */
html {
    scroll-behavior: smooth;
    font-family: var(--font-body);
}

body {
    background-color: #F8FAFC; /* slate-50 */
    color: #334155; /* slate-700 */
}

html,
body {
    overflow-x: hidden;
    max-width: 100%;
} 

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Glassmorphism Styles */
.glass-panel {
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.4);
}

.glass-panel-dark {
    background: rgba(26, 15, 48, 0.8);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Premium Card Outline Animation and Lift */
.premium-card {
    position: relative;
    background: #FFFFFF;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 1;
}

.premium-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 2px;
    background: linear-gradient(135deg, transparent, transparent);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    transition: background 0.4s ease;
    z-index: -1;
}

.premium-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px -15px rgba(52, 32, 91, 0.15);
}

.premium-card-purple:hover::before {
    background: linear-gradient(135deg, var(--color-brand-purple), var(--color-brand-cyan));
}

.premium-card-blue:hover::before {
    background: linear-gradient(135deg, var(--color-brand-blue), var(--color-brand-cyan));
}

.premium-card-cyan:hover::before {
    background: linear-gradient(135deg, var(--color-brand-cyan), var(--color-brand-purple));
}

.premium-card-orange:hover::before {
    background: linear-gradient(135deg, var(--color-brand-orange), #FFB74D);
}

/* Scroll Progress Bar */
#scroll-progress {
    background: linear-gradient(to right, var(--color-brand-purple), var(--color-brand-blue), var(--color-brand-cyan));
}

/* Active Link bottom decoration */
.nav-link {
    position: relative;
    transition: all 0.3s ease;
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    width: 0;
    height: 2px;
    background-color: var(--color-brand-cyan);
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.nav-link:hover::after {
    width: 100%;
}

.nav-link.active {
    color: var(--color-brand-purple) !important;
}

.nav-link.active::after {
    width: 100%;
    background-color: var(--color-brand-purple);
}

/* Range input customization */
input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--color-brand-purple);
    cursor: pointer;
    border: 2px solid white;
    box-shadow: 0 4px 10px rgba(52, 32, 91, 0.2);
    transition: all 0.2s ease;
}

input[type="range"]::-webkit-slider-thumb:hover {
    transform: scale(1.2);
    background: var(--color-brand-blue);
}

input[type="range"]::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--color-brand-purple);
    cursor: pointer;
    border: 2px solid white;
    box-shadow: 0 4px 10px rgba(52, 32, 91, 0.2);
    transition: all 0.2s ease;
}

input[type="range"]::-moz-range-thumb:hover {
    transform: scale(1.2);
    background: var(--color-brand-blue);
}

/* Partner Logo Scroll Track */
.slider-track {
    display: flex;
    width: calc(240px * 14);
    animation: slide-loop 30s linear infinite;
}

.slider-track:hover {
    animation-play-state: paused;
}

@keyframes slide-loop {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* FAQ Accordion Transitions */
.faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), padding 0.3s ease;
}

.faq-item.active .faq-content {
    padding-bottom: 1.25rem;
}

/* Timeline accomplishments styling */
.timeline-item {
    position: relative;
}

.timeline-item::before {
    content: '';
    position: absolute;
    left: 20px;
    top: 32px;
    bottom: -32px;
    width: 2px;
    background: #E2E8F0;
    z-index: 0;
}

.timeline-item:last-child::before {
    display: none;
}

@media (min-width: 768px) {
    .timeline-item::before {
        left: 50%;
        transform: translateX(-50%);
        top: 40px;
        bottom: -40px;
    }
}

/* Custom styled scrollbars for menus */
.mega-menu-scrollbar::-webkit-scrollbar {
    width: 4px;
}
.mega-menu-scrollbar::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 10px;
}

/* Gradient Texts */
.text-gradient-purple-blue {
    background: linear-gradient(135deg, var(--color-brand-purple) 0%, var(--color-brand-blue) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.text-gradient-cyan-blue {
    background: linear-gradient(135deg, var(--color-brand-cyan) 0%, var(--color-brand-blue) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}





/*modal css for pop*/
.custom-modal{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.55);
    backdrop-filter:blur(5px);
    display:none;
    justify-content:center;
    align-items:center;
    z-index:9999;
    padding:20px;
}

.custom-modal.show{
    display:flex;
    animation:fadeIn .25s ease;
}

.modal-card{
    width:100%;
    max-width:520px;
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
    animation:popup .3s ease;
}

.modal-header{
    background:linear-gradient(135deg,#6d28d9,#9333ea);
    color:#fff;
    padding:22px 25px;
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
}

.modal-header h2{
    margin:0;
    font-size:26px;
}

.modal-header p{
    margin-top:5px;
    opacity:.85;
    font-size:14px;
}

.close-modal{
    font-size:32px;
    cursor:pointer;
    line-height:1;
}

.modal-body{
    padding:30px;
}

.product-box{
    background:#f4f4ff;
    border-left:5px solid #6d28d9;
    padding:14px;
    border-radius:8px;
    margin-bottom:25px;
}

.form-group{
    margin-bottom:20px;
}

.form-group label{
    display:block;
    font-weight:600;
    margin-bottom:8px;
}

.form-group input{
    width:100%;
    padding:14px 15px;
    border:1px solid #ddd;
    border-radius:10px;
    outline:none;
    font-size:15px;
    transition:.3s;
    box-sizing:border-box;
}

.form-group input:focus{
    border-color:#6d28d9;
    box-shadow:0 0 0 3px rgba(109,40,217,.15);
}

.modal-footer{
    padding:20px 30px;
    display:flex;
    justify-content:flex-end;
    gap:12px;
}

.cancel-btn,
.submit-btn{
    border:none;
    padding:13px 24px;
    border-radius:10px;
    cursor:pointer;
    font-size:15px;
}

.cancel-btn{
    background:#ececec;
}

.submit-btn{
    background:#6d28d9;
    color:#fff;
}

.submit-btn:hover{
    background:#5b21b6;
}

@keyframes popup{
    from{
        transform:scale(.85);
        opacity:0;
    }
    to{
        transform:scale(1);
        opacity:1;
    }
}

@keyframes fadeIn{
    from{opacity:0;}
    to{opacity:1;}
}

@media(max-width:600px){

    .modal-card{
        max-width:100%;
    }

    .modal-body{
        padding:20px;
    }

    .modal-footer{
        flex-direction:column;
    }

    .cancel-btn,
    .submit-btn{
        width:100%;
    }

    .error{
    display:block;
    color:#dc3545;
    font-size:13px;
    margin-top:5px;
    }
}




/*our branches css*/
.section-branch {
    background:#f4f7fb;
    font-family:'Poppins',sans-serif;
}

.office-section{
    padding:70px 0;
}

.section-title{
    text-align:center;
    font-size:38px;
    font-weight:700;
    color:#222;
    margin-bottom:50px;
}

.office-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(420px,1fr));
    gap:35px;
}

.office-card{
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    transition:.35s;
}

.office-card:hover{
    transform:translateY(-8px);
    box-shadow:0 18px 45px rgba(0,0,0,.15);
}

.office-map iframe{
    width:100%;
    height:300px;
    border:0;
}

.office-content{
    padding:25px;
}

.office-content h3{
    font-size:30px;
    font-weight:700;
    color:#1e3a8a;
    margin-bottom:20px;
}

.office-info p{
    margin-bottom:18px;
    color:#555;
    line-height:1.7;
    font-size:16px;
}

.office-info strong{
    color:#111827;
    font-size:17px;
}

.office-info a{
    color:#2563eb;
    text-decoration:none;
}

.office-info a:hover{
    color:#0f172a;
}

@media(max-width:991px){

    .office-grid{
        grid-template-columns:1fr;
    }

    .office-map iframe{
        height:260px;
    }

}

@media(max-width:576px){

    .office-section{
        padding:40px 15px;
    }

    .section-title{
        font-size:30px;
    }

    .office-content{
        padding:20px;
    }

    .office-content h3{
        font-size:24px;
    }

    .office-info p{
        font-size:15px;
    }

    .office-map iframe{
        height:220px;
    }

}

.container-branch {
    width: 80%;
    margin: 0 auto;
    
}


/*ENQUIRY*/
.custom-modal{
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.6);
    display:none;
    justify-content:center;
    align-items:center;
    z-index:9999;
    padding:20px;
}

.custom-modal-content{
    width:100%;
    max-width:420px;
    background:#fff;
    border-radius:20px;
    padding:35px 30px;
    text-align:center;
    animation:popup .3s ease;
    box-shadow:0 20px 50px rgba(0,0,0,.2);
    margin: auto;
    margin-top: 100px;
}

@keyframes popup{
    from{
        opacity:0;
        transform:scale(.8);
    }
    to{
        opacity:1;
        transform:scale(1);
    }
}

.success-icon{
    width:80px;
    height:80px;
    margin:auto;
    border-radius:50%;
    background:#22c55e;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:40px;
    font-weight:bold;
    margin-bottom:20px;
}

.custom-modal-content h2{
    margin:0;
    font-size:24px;
    color:#1e293b;
}

.custom-modal-content p{
    margin:18px 0 30px;
    color:#64748b;
    line-height:1.6;
}

#closeModal{
    width:100%;
    border:none;
    background:linear-gradient(90deg,#6d28d9,#2563eb);
    color:#fff;
    padding:14px;
    border-radius:12px;
    cursor:pointer;
    font-size:16px;
    font-weight:600;
    transition:.3s;
}

#closeModal:hover{
    transform:translateY(-2px);
}

/*FLOTER*/
.floating-icons {
    position: fixed;
    right: 20px;
    bottom: 20px;
    display: flex;
    flex-direction: column;
    gap: 25px;
    z-index: 9999;
}

.float-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: #fff;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
    animation: pulse 2s infinite;
}

.whatsapp {
    background: #25D366;
}

.call {
    background: #007bff;
}

.float-btn:hover {
    transform: scale(1.1);
    color: #fff;
}

@keyframes pulse {
    0% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(0,0,0,0.4);
    }
    70% {
        transform: scale(1.08);
        box-shadow: 0 0 0 15px rgba(0,0,0,0);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(0,0,0,0);
    }
}

.mobile-topbar-left {
    /*display: none !important;*/
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .mobile-topbar-left {
        display: none !important;
    }

    .rounded-pill{
        border-radius: 50% !important;
    }

    .bg-danger{
        background-color: #dc3545 !important;
        color: #fff !important;
        width: 30px;
        height: 30px;
    }

    .logo-left {
        margin-left: 10px;
    }
    .float-btn {
        width: 40px;
        height: 40px;
        font-size: 18px;
    }

    .floating-icons {
        right: 15px;
        bottom: 15px;
    }

    /*mobile menu */
    /*#navbar-header{
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 999999 !important;
    background: #fff !important;
    }

    #mobile-menu-btn{
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 1000000 !important;
    }*/
}

.comment-icon {
    font-size: 2.5rem;
    color: #2eb6ff;
}

.text-3xl-1-5 {
    font-size: 1.5rem !important;
    line-height: 2.25rem;
}

.custom-py-2 {
    margin-top: 0.50px !important;
    margin-bottom: 0.50px !important;
}

.custom-font-2 {
    font-size: 0.8rem !important;
}

.custom-bold-600 {
    /*padding-top: 20px !important;*/
    font-weight: 600 !important;
}

.column-text a,
.column-text p
 {
    color: rgb(247 250 254 / var(--tw-text-opacity, 1));
}


.text-bottom-slate-300 {
        color: rgb(225 234 246) !important;
}

/* Padding Top & Bottom */

.py-0{
    padding-top:0;
    padding-bottom:0;
}

.py-1{
    padding-top:0.25rem;
    padding-bottom:0.25rem;
}

.py-2{
    padding-top:0.5rem;
    padding-bottom:0.5rem;
}

.py-3{
    padding-top:0.75rem;
    padding-bottom:0.75rem;
}

.py-4{
    padding-top:1rem;
    padding-bottom:1rem;
}

.py-5{
    padding-top:1.25rem;
    padding-bottom:1.25rem;
}

.py-6{
    padding-top:1.5rem;
    padding-bottom:1.5rem;
}

.py-8{
    padding-top:2rem;
    padding-bottom:2rem;
}

.py-10{
    padding-top:2.5rem;
    padding-bottom:2.5rem;
}

.py-12{
    padding-top:3rem;
    padding-bottom:3rem;
}

.py-16{
    padding-top:4rem;
    padding-bottom:4rem;
}

.py-20{
    padding-top:5rem;
    padding-bottom:5rem;
}

.py-24{
    padding-top:6rem;
    padding-bottom:6rem;
}

.text-base-xl {
    font-size: 1.2rem !important;
}

.text-2xl-md {
    font-size: 1.25rem !important;
}

.glightbox-container .gslide-inner-content{
    /*background:#fff;*/
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
}

.glightbox-container .gslide-media img{
    border-radius:24px;
}

.glightbox-container .gslide-description{
    padding:20px;
    border-radius:24px;
    padding-bottom: 0px;
}

/* Close Button */
.glightbox-clean .gclose{
    width:48px;
    height:48px;
    background:#dc2626 !important; /* Red */
    color:#fff !important;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    top:20px;
    right:20px;
    box-shadow:0 8px 20px rgba(220,38,38,.35);
    transition:all .3s ease;
}

/* SVG Icon */
.glightbox-clean .gclose svg{
    width:22px;
    height:22px;
    fill:#fff !important;
    stroke:#fff !important;
}

/* Hover */
.glightbox-clean .gclose:hover{
    background:#b91c1c !important;
    transform:scale(1.1);
}




/*CARD*/
.office-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(500px,1fr));
    gap:25px;
}

.office-card{
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 35px rgba(0,0,0,.08);
    transition:.35s;
}

.office-card:hover{
    transform:translateY(-8px);
    box-shadow:0 20px 45px rgba(0,0,0,.12);
}

.office-map{
    height:280px;
}

.office-map iframe{
    width:100%;
    height:100%;
    border:0;
    display:block;
}

.office-content{
    padding:30px;
}

.office-content h3{
    font-size:28px;
    font-weight:700;
    margin-bottom:25px;
    color:#14213d;
}

.office-info{
    list-style:none;
    margin:0;
    padding:0;
}

.office-info li{
    display:flex;
    align-items:flex-start;
    gap:18px;
    padding:18px 0;
    border-bottom:1px solid #ececec;
}

.office-info li:last-child{
    border:none;
    padding-bottom:0;
}

.office-info .icon{
    width:50px;
    height:50px;
    border-radius:50%;
    background:#f5f7fb;
    color:#ff6b00;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
    flex-shrink:0;
}

.office-info label{
    display:block;
    font-size:13px;
    color:#888;
    margin-bottom:4px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.5px;
}

.office-info a{
    color:#14213d;
    text-decoration:none;
    font-weight:600;
    transition:.3s;
}

.office-info a:hover{
    color:#ff6b00;
}

.office-info p{
    margin:0;
    color:#555;
    line-height:1.8;
}

@media(max-width:768px){

    .office-grid{
        grid-template-columns:1fr;
    }

    .office-map{
        height:230px;
    }

    .office-content{
        padding:22px;
    }

    .office-content h3{
        font-size:22px;
    }

}

.section-branch-say-hello {
    background: #ffffff !important;
}

.text-slate-500 {
    --tw-text-opacity: 1;
    color: rgb(40 46 59 / var(--tw-text-opacity, 1)) !important;
}

.text-slate-400 {
    --tw-text-opacity: 1;
    color: rgb(40 46 59 / var(--tw-text-opacity, 1)) !important;
}

/*.sidebar-sticky {
    position: sticky;
    top: 50px;
    height: fit-content;
}*/


.about-sticky{
    position: sticky !important;
    /*position: -webkit-sticky;*/
    top:100px;
}

.about-image-card{
    background:#fff;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 20px 50px rgba(0,0,0,.10);
    border:1px solid #edf2f7;
    transition:.35s;
}

.about-image-card:hover{
    transform:translateY(-6px);
    box-shadow:0 30px 60px rgba(0,0,0,.15);
}

.about-image{
    width:100%;
    display:block;
    border-radius:24px;
}

@media(max-width:991px){

    .about-sticky{
        position:relative;
        top:0;
        margin-top:40px;
    }

}

nav a span {
    color: #0159af !important;
}

nav .nav-link i {
    color: #037250 !important;
}

.nav-dropdown-trigger button span {
    color: #0159af !important;
}

.nav-dropdown-trigger button i {
    color: #037250 !important;
}




.privacy-content h2{
    font-size:28px;
    font-weight:700;
    margin:30px 0 15px;
}

.privacy-content p{
    margin-bottom:16px;
    line-height:1.8;
    color:#4b5563;
}

.privacy-content ul{
    list-style:disc;
    padding-left:25px;
    margin:15px 0;
}

.privacy-content li{
    margin-bottom:10px;
}