/* =========================================================
   CSA GLOBAL NAVBAR RESPONSIVE FIX
   Applies to all pages using the same header markup
========================================================= */

/* Mobile Contact Us stays hidden on desktop */
#mainNavbar .mobile-contact-item {
    display: none;
}

/* Keep the services text link and arrow as separate controls */
#mainNavbar .services-menu-item {
    position: relative;
}

#mainNavbar .services-menu-item > .services-page-link {
    display: inline-flex;
    align-items: center;
}

#mainNavbar .services-menu-item > .dropdown-toggle {
    cursor: pointer;
}

/* Prevent Bootstrap's default caret because Font Awesome arrow is used */
#mainNavbar .services-menu-item > .dropdown-toggle::after {
    display: none !important;
}

/* Laptop adjustments */
@media (min-width: 992px) and (max-width: 1399.98px) {
    #mainNavbar .container-fluid {
        display: flex;
        align-items: center;
        flex-wrap: nowrap;
        padding-left: 24px;
        padding-right: 24px;
    }

    #mainNavbar .container-fluid > .col-auto:first-child {
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: none !important;
        transform: none !important;
    }

    #mainNavbar .navbar-brand {
        display: flex !important;
        align-items: center;
        padding: 12px 0 !important;
        overflow: visible !important;
    }

    #mainNavbar .navbar-brand img {
        height: 58px !important;
        max-height: 58px !important;
        width: auto !important;
        object-fit: contain;
    }

    #mainNavbar .menu-order,
    header.sticky.sticky-active #mainNavbar .menu-order {
        flex: 1 1 auto;
        margin-left: 20px;
        padding-left: 0 !important;
        transform: none !important;
    }

    #mainNavbar .navbar-nav {
        align-items: center;
        gap: 0;
    }

    #mainNavbar .navbar-nav .nav-link {
        padding-left: 10px !important;
        padding-right: 10px !important;
        font-size: 15px !important;
        white-space: nowrap;
    }

    #mainNavbar .services-menu-item > .dropdown-toggle {
        margin-left: -5px;
        margin-right: 4px;
        font-size: 13px !important;
    }

    #mainNavbar .header-button .btn {
        padding: 12px 18px !important;
        font-size: 14px !important;
        white-space: nowrap;
    }

    /* Remove the unwanted middle vertical divider */
    #mainNavbar .left-nav .navbar-nav::before,
    header.sticky.sticky-active #mainNavbar .menu-order::before {
        display: none !important;
        content: none !important;
    }

    header.sticky.sticky-active #mainNavbar .container-fluid > .col-auto:first-child,
    header.sticky.sticky-active #mainNavbar .navbar-brand,
    header.sticky.sticky-active #mainNavbar .navbar-brand img {
        transform: none !important;
    }
}

/* Tablet and mobile navbar */
@media (max-width: 991.98px) {
    #mainNavbar {
        min-height: 78px;
        background: #ffffff !important;
        border-bottom: 1px solid rgba(11, 78, 162, 0.12) !important;
        box-shadow: 0 3px 16px rgba(0, 0, 0, 0.06);
    }

    #mainNavbar .container-fluid {
        min-height: 78px;
        padding: 0 20px !important;
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        position: relative;
    }

    #mainNavbar .container-fluid > .col-auto:first-child,
    header.sticky.sticky-active #mainNavbar .container-fluid > .col-auto:first-child {
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: calc(100% - 70px) !important;
        transform: none !important;
        z-index: 2;
    }

    #mainNavbar .navbar-brand,
    header.sticky.sticky-active #mainNavbar .navbar-brand {
        display: flex !important;
        align-items: center;
        width: auto !important;
        padding: 9px 0 !important;
        margin: 0 !important;
        overflow: visible !important;
    }

    /* Force the blue mobile logo to display */
    #mainNavbar .navbar-brand .default-logo,
    #mainNavbar .navbar-brand .alt-logo {
        display: none !important;
    }

    #mainNavbar .navbar-brand .mobile-logo {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        height: 58px !important;
        max-height: 58px !important;
        width: auto !important;
        max-width: 265px !important;
        object-fit: contain;
    }

    #mainNavbar .menu-order,
    header.sticky.sticky-active #mainNavbar .menu-order {
        flex: 0 0 auto;
        width: auto;
        margin: 0 0 0 auto !important;
        padding: 0 !important;
        position: static !important;
        transform: none !important;
    }

    #mainNavbar .navbar-toggler {
        width: 42px;
        height: 42px;
        padding: 8px !important;
        margin: 0 !important;
        display: flex !important;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        border: 0 !important;
        box-shadow: none !important;
        position: relative;
        float: none !important;
        z-index: 3;
    }

    #mainNavbar .navbar-toggler-line {
        display: block !important;
        width: 25px !important;
        height: 2px !important;
        min-height: 2px;
        margin: 0 !important;
        background-color: #0B4EA2 !important;
        border-radius: 2px;
        opacity: 1 !important;
        transform: none;
    }

    #mainNavbar .navbar-collapse {
        flex-basis: 100%;
        width: calc(100% + 40px);
        margin: 0 -20px;
        padding: 6px 20px 18px;
        background: #ffffff;
        border-top: 1px solid rgba(11, 78, 162, 0.10);
        max-height: calc(100vh - 78px);
        overflow-y: auto;
        overflow-x: hidden;
    }

    #mainNavbar .navbar-nav {
        width: 100%;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Remove every unwanted vertical divider on tablet/mobile */
    #mainNavbar .left-nav .navbar-nav::before,
    #mainNavbar .menu-order::before,
    header.sticky.sticky-active #mainNavbar .menu-order::before {
        display: none !important;
        content: none !important;
    }

    #mainNavbar .navbar-nav > .nav-item {
        width: 100%;
        position: relative;
        border-bottom: 1px solid #eef1f5;
    }

    #mainNavbar .navbar-nav > .nav-item > .nav-link {
        width: 100%;
        display: flex;
        align-items: center;
        min-height: 50px;
        padding: 11px 46px 11px 0 !important;
        margin: 0 !important;
        color: #152833 !important;
        font-size: 16px !important;
        line-height: 26px;
        font-weight: 600 !important;
    }

    /* Services page link remains clickable; only the side arrow opens dropdown */
    #mainNavbar .services-menu-item > .services-page-link {
        width: calc(100% - 46px) !important;
        padding-right: 0 !important;
    }

    #mainNavbar .services-menu-item > .dropdown-toggle {
        position: absolute !important;
        top: 0;
        right: 0;
        width: 46px;
        height: 50px;
        margin: 0 !important;
        display: flex !important;
        align-items: center;
        justify-content: center;
        color: #0B4EA2 !important;
        font-size: 15px !important;
        line-height: 1;
        border-left: 1px solid #eef1f5;
        background: transparent;
        z-index: 2;
    }

    #mainNavbar .services-menu-item > .dropdown-toggle.show,
    #mainNavbar .services-menu-item.show > .dropdown-toggle {
        transform: rotate(180deg);
    }

    #mainNavbar .services-dropdown-menu {
        position: static !important;
        inset: auto !important;
        transform: none !important;
        float: none !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        max-height: 310px;
        overflow-y: auto;
        overflow-x: hidden;
        padding: 0 0 8px 14px !important;
        margin: 0 !important;
        border: 0 !important;
        border-top: 1px solid #eef1f5 !important;
        border-radius: 0 !important;
        background: #f8faff !important;
        box-shadow: none !important;
    }

    #mainNavbar .services-dropdown-menu:not(.show) {
        display: none !important;
    }

    #mainNavbar .services-dropdown-menu.show {
        display: block !important;
    }

    #mainNavbar .services-dropdown-menu li {
        width: 100%;
        border: 0 !important;
    }

    #mainNavbar .services-dropdown-menu li a {
        display: block;
        width: 100%;
        padding: 10px 12px !important;
        color: #4a5560 !important;
        background: transparent !important;
        border-bottom: 1px solid #e8edf4 !important;
        font-size: 14px !important;
        line-height: 21px;
        white-space: normal;
    }

    #mainNavbar .services-dropdown-menu li:last-child a {
        border-bottom: 0 !important;
    }

    #mainNavbar .mobile-contact-item {
        display: block !important;
        border-bottom: 0 !important;
        padding-top: 10px;
    }

    #mainNavbar .mobile-contact-item .nav-link {
        width: 100%;
        min-height: 46px;
        justify-content: center;
        padding: 10px 18px !important;
        color: #ffffff !important;
        background: #0B4EA2;
        border-radius: 30px;
    }

    #mainNavbar .mobile-contact-item .nav-link i {
        margin-right: 8px;
    }

    /* Hide the separate desktop Contact Us block */
    #mainNavbar .container-fluid > .col-auto.ms-auto.d-none.d-lg-flex {
        display: none !important;
    }
}

/* Small mobile */
@media (max-width: 575.98px) {
    #mainNavbar,
    #mainNavbar .container-fluid {
        min-height: 70px;
    }

    #mainNavbar .container-fluid {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    #mainNavbar .navbar-brand .mobile-logo {
        height: 50px !important;
        max-height: 50px !important;
        max-width: 220px !important;
    }

    #mainNavbar .navbar-collapse {
        width: calc(100% + 28px);
        margin-left: -14px;
        margin-right: -14px;
        padding-left: 14px;
        padding-right: 14px;
        max-height: calc(100vh - 70px);
    }
}

/* Very small mobile */
@media (max-width: 374.98px) {
    #mainNavbar .navbar-brand .mobile-logo {
        height: 44px !important;
        max-height: 44px !important;
        max-width: 185px !important;
    }

    #mainNavbar .navbar-toggler {
        width: 38px;
        height: 38px;
    }
}


/* =========================================
   ONLY REQUIRED NAVBAR FIXES
========================================= */

@media (max-width: 991px){

    /* Hamburger right side */
    #mainNavbar .navbar-toggler{
        top: 50% !important;
        transform: translateY(-50%) !important;
        right: 12px !important;
    }

    /* Mobile menu full width */
    #mainNavbar .navbar-collapse{
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    #mainNavbar .navbar-nav{
        width: 100% !important;
        margin: 0 !important;
    }

    /* Careers  same space */
    #mainNavbar .navbar-nav > .nav-item{
        margin: 0 !important;
    }

    #mainNavbar .navbar-nav > .nav-item > .nav-link{
        padding-top: 18px !important;
        padding-bottom: 18px !important;
    }

    /* Our Services dropdown vertical line remove */
    #mainNavbar .services-dropdown-menu::before{
        display: none !important;
        content: none !important;
    }

    /* Services items same padding */
    #mainNavbar .services-dropdown-menu li{
        width: 100% !important;
    }

    #mainNavbar .services-dropdown-menu li a,
    #mainNavbar .services-dropdown-menu li:nth-child(1) a,
    #mainNavbar .services-dropdown-menu li:nth-child(2) a,
    #mainNavbar .services-dropdown-menu li:nth-child(3) a,
    #mainNavbar .services-dropdown-menu li:nth-child(4) a{
        min-height: auto !important;
        padding: 16px 18px !important;
    }

    /* Contact Us mobile row same as other names */
    #mainNavbar .mobile-contact-menu{
        display: block !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    #mainNavbar .mobile-contact-menu .nav-link{
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        min-height: auto !important;
        padding: 18px 0 !important;
        background: transparent !important;
        color: #20313b !important;
        border-radius: 0 !important;
        font-size: 20px !important;
        font-weight: 500 !important;
    }
}


/* 1024 laptop contact button cut fix */
@media (min-width: 992px) and (max-width: 1100px){

    #mainNavbar .navbar-nav .nav-link{
        padding-left: 7px !important;
        padding-right: 7px !important;
        font-size: 14px !important;
    }

    #mainNavbar .header-button .btn{
        padding-left: 12px !important;
        padding-right: 12px !important;
        font-size: 13px !important;
        white-space: nowrap !important;
    }

    #mainNavbar .container-fluid{
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
}

@media (max-width:991px){

    #mainNavbar .navbar-nav{
        padding-bottom:0 !important;
        margin-bottom:0 !important;
    }

    #mainNavbar .navbar-nav > .nav-item:last-child{
        margin-bottom:0 !important;
        padding-bottom:0 !important;
        border-bottom:none !important;
    }

}

/* =====================================================
   CSA FINAL FOOTER + NAVBAR BUG FIX
   Paste at the very end of csa-responsive.css
===================================================== */


/* =====================================================
   1. 1024px STICKY NAVBAR FIX
===================================================== */

@media (min-width: 992px) and (max-width: 1199px){

    /* Old fixed width and negative movement remove */
    header.sticky.sticky-active #mainNavbar
    .container-fluid > .col-auto:first-child{
        flex:0 0 auto !important;
        width:auto !important;
        max-width:none !important;
        transform:none !important;
    }

    header.sticky.sticky-active #mainNavbar .menu-order{
        flex:1 1 auto !important;
        transform:none !important;
        padding-left:10px !important;
        padding-right:5px !important;
    }

    header.sticky.sticky-active #mainNavbar .navbar-brand{
        padding:12px 0 !important;
    }

    header.sticky.sticky-active #mainNavbar .navbar-brand img{
        height:52px !important;
        max-height:52px !important;
        width:auto !important;
    }

    /* Menu available space fit */
    #mainNavbar .navbar-nav .nav-link{
        padding-left:7px !important;
        padding-right:7px !important;
        font-size:14px !important;
        white-space:nowrap !important;
    }

    #mainNavbar .navbar-nav .dropdown-toggle{
        margin-left:-3px !important;
        padding-left:2px !important;
        padding-right:2px !important;
        font-size:13px !important;
    }

    /* Contact button સંપૂર્ણ દેખાય */
    #mainNavbar .header-button .btn{
        padding:10px 13px !important;
        font-size:13px !important;
        white-space:nowrap !important;
    }

    #mainNavbar .container-fluid{
        padding-left:18px !important;
        padding-right:18px !important;
    }

    /* Sticky divider remove */
    header.sticky.sticky-active #mainNavbar .menu-order::before{
        display:none !important;
        content:none !important;
    }
}


/* =====================================================
   2. TABLET / MOBILE NAVBAR FULL WIDTH
===================================================== */

@media (max-width: 991px){

    #mainNavbar,
    #mainNavbar .container-fluid{
        width:100% !important;
        max-width:100% !important;
    }

    #mainNavbar .container-fluid{
        padding-left:15px !important;
        padding-right:15px !important;
    }

    /* Open menu full browser width */
    #mainNavbar .navbar-collapse{
        flex-basis:calc(100% + 30px) !important;
        width:calc(100% + 30px) !important;
        max-width:none !important;

        margin-left:-15px !important;
        margin-right:-15px !important;
        padding:0 !important;
    }

    #mainNavbar .navbar-nav{
        width:100% !important;
        max-width:100% !important;

        margin:0 !important;
        padding-left:32px !important;
        padding-right:32px !important;

        background:#ffffff !important;
        box-sizing:border-box !important;
    }
}


/* =========================================
   CSA FOOTER - SAME CENTER LAYOUT
   Mobile + Tablet + Small Laptop
========================================= */

@media (max-width:1199px){

    footer .container-fluid,
    footer .footer-top,
    footer .footer-bottom{
        padding-left:25px !important;
        padding-right:25px !important;
    }

    /* Contact us heading */
    footer .footer-top .row,
    footer .footer-top .col-12{
        text-align:center !important;
        justify-content:center !important;
    }

    footer .footer-top h5{
        display:block !important;
        margin:0 !important;
        text-align:center !important;
    }

    /* Main footer row */
    footer .row.pt-35px.pb-35px{
        display:flex !important;
        flex-direction:column !important;
        align-items:center !important;
        justify-content:center !important;

        padding-top:35px !important;
        padding-bottom:35px !important;
        margin:0 !important;
    }

    /* All footer columns same and centered */
    footer .row.pt-35px.pb-35px > div{
        width:100% !important;
        max-width:600px !important;
        flex:0 0 100% !important;

        display:flex !important;
        flex-direction:column !important;
        align-items:center !important;
        justify-content:center !important;

        margin:0 0 30px !important;
        padding:0 15px !important;

        text-align:center !important;
    }

    footer .row.pt-35px.pb-35px > div:last-child{
        margin-bottom:0 !important;
    }

    /* Footer logo center */
    footer .footer-logo{
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;

        width:100% !important;
        margin:0 auto !important;
    }

    footer .footer-logo img{
        display:block !important;

        width:auto !important;
        height:78px !important;
        max-width:300px !important;
        max-height:78px !important;

        margin:0 auto !important;
        object-fit:contain !important;
    }

    /* Landmark / Contact / Office Hours headings */
    footer .row.pt-35px.pb-35px span.alt-font{
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;

        width:100% !important;
        margin-bottom:8px !important;

        text-align:center !important;
        font-size:18px !important;
    }

    footer .row.pt-35px.pb-35px span.alt-font i{
        margin-right:8px !important;
    }

    /* Footer content center */
    footer .row.pt-35px.pb-35px p{
        width:100% !important;
        max-width:500px !important;

        margin:0 auto !important;

        text-align:center !important;
        font-size:15px !important;
        line-height:27px !important;
    }

    footer .row.pt-35px.pb-35px a{
        text-align:center !important;
        font-size:15px !important;
        line-height:27px !important;
    }

    /* Divider full width */
    footer .divider-style-03{
        width:100% !important;
    }

    /* Bottom footer row center */
    footer .footer-bottom .row{
        display:flex !important;
        flex-direction:column !important;
        align-items:center !important;
        justify-content:center !important;
    }

    footer .footer-bottom .col-lg-7,
    footer .footer-bottom .col-lg-5{
        width:100% !important;
        max-width:100% !important;
        flex:0 0 100% !important;

        text-align:center !important;
    }

    /* Footer menu center */
    footer .footer-navbar{
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        flex-wrap:wrap !important;

        gap:7px !important;

        margin:0 0 14px !important;
        padding:0 !important;
    }

    footer .footer-navbar li{
        margin:0 !important;
        padding:0 !important;
    }

    footer .footer-navbar .nav-link{
        display:block !important;

        padding:7px 12px !important;

        text-align:center !important;
        font-size:14px !important;
        line-height:20px !important;
    }

    /* Copyright center */
    footer .footer-bottom p{
        margin:0 !important;
        text-align:center !important;
        font-size:14px !important;
        line-height:23px !important;
    }
}


/* Mobile logo slightly smaller */

@media (max-width:575px){

    footer .container-fluid,
    footer .footer-top,
    footer .footer-bottom{
        padding-left:20px !important;
        padding-right:20px !important;
    }

    footer .footer-logo img{
        height:68px !important;
        max-height:68px !important;
        max-width:270px !important;
    }

    footer .row.pt-35px.pb-35px > div{
        margin-bottom:26px !important;
    }

    footer .footer-navbar{
        gap:4px !important;
    }

    footer .footer-navbar .nav-link{
        padding:6px 9px !important;
        font-size:13px !important;
    }
}

/* 1024px navbar cut fix only */
@media (min-width:992px) and (max-width:1199px){

    header.sticky.sticky-active #mainNavbar .container-fluid{
        padding-left:12px !important;
        padding-right:12px !important;
        display:flex !important;
        align-items:center !important;
        flex-wrap:nowrap !important;
    }

    header.sticky.sticky-active #mainNavbar
    .container-fluid > .col-auto:first-child{
        flex:0 0 auto !important;
        width:auto !important;
        max-width:none !important;
        transform:none !important;
    }

    header.sticky.sticky-active #mainNavbar .navbar-brand{
        padding:8px 0 !important;
    }

    header.sticky.sticky-active #mainNavbar .navbar-brand img{
        height:44px !important;
        max-height:44px !important;
    }

    header.sticky.sticky-active #mainNavbar .menu-order{
        flex:1 1 auto !important;
        min-width:0 !important;
        margin-left:8px !important;
        padding:0 !important;
        transform:none !important;
    }

    header.sticky.sticky-active #mainNavbar .navbar-nav .nav-link{
        font-size:12px !important;
        padding-left:4px !important;
        padding-right:4px !important;
        white-space:nowrap !important;
    }

    header.sticky.sticky-active #mainNavbar .dropdown-toggle{
        font-size:11px !important;
        margin-left:-3px !important;
        margin-right:1px !important;
    }

    header.sticky.sticky-active #mainNavbar
    .container-fluid > .col-auto.ms-auto{
        flex:0 0 auto !important;
        width:auto !important;
        max-width:none !important;
        margin-left:2px !important;
        padding:0 !important;
    }

    header.sticky.sticky-active #mainNavbar .header-button .btn{
        font-size:11px !important;
        padding:8px 9px !important;
        white-space:nowrap !important;
    }

    header.sticky.sticky-active #mainNavbar .menu-order::before{
        display:none !important;
        content:none !important;
    }
}

/* Smooth anchor scrolling offset for fixed header */
html {
    scroll-behavior: smooth;
}

#chirag-shah,
#raimeen-maradiya,
#neha-soni,
#keta-chheda {
    scroll-margin-top: 130px;
}