/* ===========================
   SOLUTOMATIC GLOBAL NAVBAR
=========================== */

.site-header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:10050; /* raised so header and its dropdowns sit above hero */
    transition:.35s ease;
}

.sg-navbar{

    width:100%;

    max-width:none;

    height:90px;

    margin:0;

    padding:0 30px;

    display:flex;

    align-items:center;
}

.sg-logo-link{
    display:flex;
    align-items:center;
    flex-shrink:0;
}

.site-logo{

    height:75px;

    width:auto;

    display:block;
}

.sg-menu{

    margin-left:auto;

    display:flex;

    align-items:center;

    gap:26px;

    list-style:none;

    padding:0;

    margin-bottom:0;
}

.sg-menu li{

    margin:0;
}

.sg-menu a,
.sg-menu .nav-dropdown .dropdown-toggle{

    position:relative;

    color:#ffffff;

    font-size:15px;

    font-weight:500;

    text-decoration:none;

    transition:.3s;
}

.sg-menu .nav-dropdown .dropdown-toggle{
    display:inline-flex;
    align-items:center;
    gap:6px;
    white-space:nowrap;
}

.sg-menu a::after{

    content:"";

    position:absolute;

    left:50%;

    bottom:-8px;

    width:0;

    height:2px;

    background:#246BFD;

    transform:translateX(-50%);

    transition:.3s;
}

.sg-menu a:hover{

    color:#246BFD;
}

.sg-menu a:hover::after{

    width:24px;
}

.sg-menu .nav-dropdown .dropdown-toggle::after{
    display:none;
}

/* Button */

.talk-btn{

    margin-left:24px;
    margin-right:0;

    width:150px;

    height:48px;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:8px;

    border-radius:50px;

    background:#246BFD;

    color:#fff;

    text-decoration:none;

    font-weight:600;

    transition:.3s;
    flex-shrink:0;
}

.talk-btn:hover{

    background:#1E56C7;

    color:#fff;
}

/* Scroll */

.site-header.nav-bg{

    background:rgba(255,255,255,.96);

    backdrop-filter:blur(12px);

    box-shadow:0 5px 25px rgba(0,0,0,.08);
}

.site-header.nav-bg .sg-menu a,
.site-header.nav-bg .sg-menu .nav-dropdown .dropdown-toggle{

    color:#1c1c1c;
}

.site-header.nav-bg .sg-menu a:hover,
.site-header.nav-bg .sg-menu .nav-dropdown .dropdown-toggle:hover{

    color:#246BFD;
}

/* Keep the Botpress v5 support panel above the fixed navbar. */
.bpChatContainer {
    position: fixed !important;
    top: 106px !important;
    right: 0 !important;
    bottom: auto !important;
    height: 420px !important;
    max-height: calc(100dvh - 140px) !important;
    width: 420px !important;
    max-width: calc(100vw - 24px) !important;
    z-index: 10060 !important;
    overflow: visible !important;
}

#fab-root {
    position: fixed !important;
    right: 20px !important;
    bottom: 30px !important;
    z-index: 10080 !important;
}

/* Prevent Botpress widget panel from overlapping the fixed site header. */
body .bpChatContainer {
    top: 106px !important;
    height: 420px !important;
    max-height: calc(100dvh - 140px) !important;
}

body #fab-root {
    z-index: 10080 !important;
}

/* Mobile */

.menu-toggle{

    display:none;
}

@media(max-width:991px){

.site-header{
    z-index:10070;
}

.sg-navbar{

    height:80px;

    padding:0 20px;
}

.site-logo{

    height:58px;
}

.bpChatContainer {
    top: 96px !important;
    height: 380px !important;
    max-height: calc(100dvh - 116px) !important;
    width: min(420px, calc(100vw - 24px)) !important;
    z-index: 10060 !important;
}

#fab-root {
    right: 8px !important;
    bottom: 18px !important;
    z-index: 10080 !important;
}

.sg-menu{

    display:none;
}

.talk-btn{

    display:none;
}

.menu-toggle{

    margin-left:auto;

    display:flex;

    align-items:center;

    justify-content:center;

    width:44px;

    height:44px;

    border:none;

    background:#fff;

    border-radius:50%;

    font-size:22px;

    cursor:pointer;

    position:relative;
    z-index:10001;
}

}
/* ===========================
   MOBILE MENU
=========================== */

.mobile-menu{

    display:none;
}

@media (max-width:991px){

    .mobile-menu{

        display:block;

        position:absolute;

        top:80px;

        left:0;

        width:100%;

        background:#ffffff;

        overflow:hidden;

        max-height:0;

        transition:max-height .35s ease;

        box-shadow:0 15px 25px rgba(0,0,0,.08);

        z-index:9998;
    }

    .site-header.mobile-open .mobile-menu{

        max-height:420px;
    }

    .mobile-nav{

        list-style:none;

        margin:0;

        padding:20px;
    }

    .mobile-nav li{

        margin:0;
    }

    .mobile-nav a{

        display:block;

        padding:14px 0;

        color:#222;

        text-decoration:none;

        border-bottom:1px solid #ececec;

        font-size:16px;

        font-weight:500;
    }

    .mobile-nav li:last-child a{
 
        border-bottom:none;
    }
 
}

/* ===========================
    SERVICES DROPDOWN
=========================== */

.sg-menu {
    list-style:none;
    margin:0;
    padding:30px 0;
    display:flex;
    gap:34px;
    align-items:center;
}

.sg-menu .nav-dropdown {
    position:relative;
}

.sg-menu .nav-dropdown .dropdown-toggle {
    cursor:pointer;
    color:inherit;
    font-size:15px;
    font-weight:500;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.sg-menu .nav-dropdown .dropdown-menu {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    background:#ffffff;
    border-radius:10px;
    box-shadow:0 8px 24px rgba(13,26,57,0.08);
    padding:8px 0;
    min-width:240px;
    z-index:10060; /* ensure dropdown appears above hero and other elements */
    margin-top:0;
}

.sg-menu .nav-dropdown:hover .dropdown-menu,
.sg-menu .nav-dropdown:focus-within .dropdown-menu,
.sg-menu .nav-dropdown.open .dropdown-menu {
    display:block;
}

.sg-menu .nav-dropdown .dropdown-menu li {
    list-style:none;
}

.sg-menu .nav-dropdown .dropdown-menu li a {
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 18px;
    color:#0d1a39;
    text-decoration:none;
    white-space:nowrap;
}

.menu-service-icon {
    width:18px;
    color:#246BFD;
    text-align:center;
    flex:0 0 18px;
}

.sg-menu .nav-dropdown .dropdown-menu li a:hover {
    background:#f3f6fb;
}

.mobile-submenu {
    display:none;
    padding-left:16px;
}

.mobile-submenu .menu-service-icon {
    margin-right:8px;
}

.mobile-submenu.open {
    display:block;
}

.mobile-dropdown-toggle {
    display:flex;
    align-items:center;
    width:100%;
    background:none;
    border:0;
    color:#1c1c1c;
    font-size:15px !important;
    font-weight:500;
    padding:8px 0;
    cursor:pointer;
    text-align:left;
}

.caret {
    display:inline-block;
    width:7px;
    height:7px;
    margin-left:2px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:translateY(-2px) rotate(45deg);
}

@media (max-width: 991px) {
    .sg-menu {
        display:none;
    }
}

/* Quick overrides to ensure navbar fills the screen and Services is visible
   These use !important so they win over any unexpected overrides during testing. */
.sg-navbar{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 20px !important;
}

.sg-menu{
    margin-left:auto !important;
    padding:0 !important;
    gap:26px !important;
}

.site-header:not(.nav-bg) .sg-menu a,
.site-header:not(.nav-bg) .sg-menu .nav-dropdown .dropdown-toggle{
    color: #ffffff !important;
}

.site-header.nav-bg .sg-menu a,
.site-header.nav-bg .sg-menu .nav-dropdown .dropdown-toggle{
    color: #1c1c1c !important;
}

.talk-btn{
    margin-left:16px !important;
    margin-right:12px !important;
}

/* Keep Services dropdown entries readable before the page has scrolled.
   The transparent-header rule above correctly makes main navigation white,
   but it must not apply to links on this white dropdown panel. */
.site-header .sg-menu .nav-dropdown .dropdown-menu li a {
    color:#0d1a39 !important;
}

.site-header .sg-menu .nav-dropdown .dropdown-menu li a:hover {
    color:#246BFD !important;
}

.site-header .sg-menu .nav-dropdown .dropdown-menu li a::after {
    display:none;
}

/* Service detail pages start on a light hero.  Keep this state independent
   of the scroll-driven .nav-bg class used by the dark homepage hero. */
.site-header.page-light-nav {
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(12px);
    box-shadow:0 5px 25px rgba(0,0,0,.08);
}

.site-header.page-light-nav .sg-menu a,
.site-header.page-light-nav .sg-menu .nav-dropdown .dropdown-toggle {
    color:#1c1c1c !important;
}

.site-header.page-light-nav .sg-menu a:hover,
.site-header.page-light-nav .sg-menu .nav-dropdown .dropdown-toggle:hover {
    color:#246BFD !important;
}

@media (max-width: 767px) {
    html,
    body {
        max-width:100%;
        overflow-x:hidden;
    }

    .sg-navbar {
        padding:0 14px !important;
    }

    .site-logo {
        max-width:calc(100vw - 76px);
        height:50px;
        object-fit:contain;
    }

    .mobile-menu {
        width:100vw;
        max-width:100%;
    }
}
