/*
Build Awesome V3.20 — Full-screen mobile menu/submenu + pixel-perfect responsive layer
Scope: header navigation, mobile menu, submenu/mega-menu fit and accessibility only.
Locked areas preserved: homepage hero slider, carousel mechanics, service-detail visibility.
*/

:root{
  --ba-v315-nav-break:960px;
  --ba-v315-menu-radius:26px;
  --ba-v315-menu-border:rgba(82,39,137,.14);
  --ba-v315-menu-shadow:0 30px 90px rgba(22,11,47,.18);
  --ba-v315-mobile-shadow:0 34px 100px rgba(22,11,47,.30);
  --ba-v315-nav-text:#261348;
  --ba-v315-nav-muted:#766a87;
}

.ba-site-header{isolation:isolate}
.ba-header-inner{min-width:0}
.ba-logo{min-width:0;flex:0 0 auto}
.ba-logo span{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ba-header-actions{flex:0 0 auto;min-width:0}
.ba-nav{min-width:0}
.ba-primary-menu,.ba-smart-menu{min-width:0}
.ba-nav .ba-smart-menu > li{min-width:0}
.ba-nav .ba-smart-menu > li > a,
.ba-nav .ba-nav-trigger{
  min-width:0;
  white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
}
.ba-nav .ba-nav-trigger{appearance:none;-webkit-appearance:none}
.ba-nav .ba-nav-trigger:focus-visible,
.ba-nav a:focus-visible,
.ba-menu-toggle:focus-visible,
.ba-dropdown-link:focus-visible{
  outline:3px solid rgba(37,99,235,.34)!important;
  outline-offset:3px!important;
}

@media (min-width:961px){
  .ba-header-inner{display:flex;align-items:center;justify-content:space-between;gap:clamp(14px,1.6vw,24px)}
  .ba-nav{flex:1 1 auto;display:flex!important;align-items:center;justify-content:center;overflow:visible}
  .ba-smart-menu{display:flex!important;align-items:center;justify-content:center;gap:clamp(2px,.45vw,7px)!important;width:auto;max-width:100%}
  .ba-nav .ba-smart-menu > li > a,
  .ba-nav .ba-nav-trigger{
    min-height:44px;
    padding:10px clamp(8px,.72vw,13px);
    font-size:clamp(12px,.78vw,14px);
    letter-spacing:-.01em;
  }
  .ba-nav .ba-nav-trigger span{display:inline-grid;place-items:center;width:16px;height:16px;margin-left:1px}
  .ba-mega-menu{
    max-height:min(72vh,560px);
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    clip-path:inset(-18px -18px -40px -18px round 28px);
  }
  .ba-mega-menu::-webkit-scrollbar{width:8px;height:8px}
  .ba-mega-menu::-webkit-scrollbar-thumb{background:rgba(82,39,137,.22);border-radius:999px}
  .ba-mega-menu.ba-mega-align-right{left:auto!important;right:0!important;transform-origin:top right!important}
  .ba-mega-menu.ba-mega-align-left{left:0!important;right:auto!important;transform-origin:top left!important}
  .ba-mega-menu.ba-mega-narrow{width:min(580px,calc(100vw - 40px))!important;grid-template-columns:minmax(190px,.7fr) minmax(300px,1fr)!important}
  .ba-mega-menu ul{min-width:0}
  .ba-dropdown-link{min-width:0;overflow:hidden}
  .ba-dropdown-title,.ba-dropdown-desc{overflow:hidden;text-overflow:ellipsis}
  .ba-dropdown-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .ba-menu-toggle{display:none!important}
}

@media (min-width:961px) and (max-width:1180px){
  .ba-logo span{max-width:160px}
  .ba-nav .ba-smart-menu > li > a,
  .ba-nav .ba-nav-trigger{padding-left:9px!important;padding-right:9px!important;font-size:12.75px!important}
  .ba-header-actions .ba-btn-small{padding-inline:12px!important;font-size:12.75px!important}
}

@media (min-width:961px) and (max-width:1060px){
  .ba-header-actions .ba-btn-primary{display:none!important}
  .ba-logo span{max-width:190px}
  .ba-nav{justify-content:flex-end}
}

@media (max-width:960px){
  :root{--ba-header-h:72px}
  body.ba-menu-open{overflow:hidden!important;touch-action:none}
  body.ba-menu-open::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:900;
    background:rgba(13,7,28,.56);
    backdrop-filter:blur(9px);
    -webkit-backdrop-filter:blur(9px);
  }
  .ba-site-header{min-height:72px;background:rgba(255,255,255,.96)!important}
  .ba-header-inner{min-height:72px;height:72px!important;width:min(100% - 28px,1180px);gap:12px}
  .ba-logo img{width:auto!important;height:42px!important;max-width:42px!important;object-fit:contain}
  .ba-logo span{max-width:min(48vw,260px);font-size:clamp(14px,3.4vw,17px);line-height:1.05}
  .ba-header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
  .ba-header-actions .ba-btn-primary{display:none!important}
  .ba-menu-toggle{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    position:relative;
    z-index:1002!important;
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    border-radius:16px!important;
    background:#160b2f!important;
  }
  .ba-menu-toggle span,
  .ba-menu-toggle span::before,
  .ba-menu-toggle span::after{transition:transform .22s ease,background .22s ease,opacity .22s ease}
  body.ba-menu-open .ba-menu-toggle{position:fixed!important;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));background:#160b2f!important;box-shadow:0 18px 48px rgba(22,11,47,.24)!important}
  body.ba-menu-open .ba-menu-toggle span{background:transparent!important}
  body.ba-menu-open .ba-menu-toggle span::before{transform:rotate(45deg)!important}
  body.ba-menu-open .ba-menu-toggle span::after{transform:rotate(-45deg)!important}

  .ba-nav{
    position:fixed!important;
    inset:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important;
    top:max(10px,env(safe-area-inset-top))!important;
    z-index:1000!important;
    display:block!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100svh - 20px)!important;
    overflow:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
    padding:88px 14px 96px!important;
    border-radius:clamp(22px,5vw,32px)!important;
    background:
      radial-gradient(circle at 12% 0%,rgba(236,19,106,.16),transparent 34%),
      radial-gradient(circle at 95% 18%,rgba(243,85,44,.14),transparent 28%),
      linear-gradient(145deg,#ffffff 0%,#fff7fb 54%,#f4efff 100%)!important;
    border:1px solid var(--ba-v315-menu-border)!important;
    box-shadow:var(--ba-v315-mobile-shadow)!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:translate3d(0,14px,0) scale(.985)!important;
    transition:opacity .24s ease,visibility .24s ease,transform .24s ease!important;
  }
  .ba-nav.is-open{opacity:1!important;visibility:visible!important;transform:none!important}
  .ba-nav::before{
    content:"Menu"!important;
    position:absolute!important;
    top:26px!important;
    left:22px!important;
    font-family:Poppins,Inter,system-ui,sans-serif!important;
    font-size:clamp(22px,6vw,30px)!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:-.05em!important;
    color:var(--ba-v315-nav-text)!important;
  }
  .ba-nav::after{display:none!important;content:none!important}
  .ba-smart-menu{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;gap:9px!important;margin:0!important;padding:0!important;width:100%!important;list-style:none!important}
  .ba-nav .ba-smart-menu > li{display:block!important;width:100%!important;position:relative!important}
  .ba-nav .ba-smart-menu > li > a,
  .ba-nav .ba-nav-trigger{
    width:100%!important;
    min-height:58px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:15px 16px!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.94)!important;
    border:1px solid rgba(82,39,137,.12)!important;
    box-shadow:0 12px 30px rgba(82,39,137,.08)!important;
    color:var(--ba-v315-nav-text)!important;
    font-family:Poppins,Inter,system-ui,sans-serif!important;
    font-size:15px!important;
    font-weight:850!important;
    line-height:1.18!important;
    text-align:left!important;
  }
  .ba-nav .ba-nav-trigger span{
    flex:0 0 26px;
    width:26px;height:26px;
    display:grid;place-items:center;
    border-radius:999px;
    background:rgba(82,39,137,.08);
    color:#522789;
    transition:transform .22s ease,background .22s ease,color .22s ease;
  }
  .ba-nav .ba-smart-menu > li > a.is-active,
  .ba-nav .ba-nav-trigger.is-active,
  .ba-nav .ba-menu-item.is-open > .ba-nav-trigger{
    color:#fff!important;
    background:linear-gradient(135deg,#522789,#b41783 72%,#ec136a)!important;
    border-color:transparent!important;
    box-shadow:0 16px 44px rgba(82,39,137,.20)!important;
  }
  .ba-nav .ba-menu-item.is-open > .ba-nav-trigger span{background:rgba(255,255,255,.18);color:#fff;transform:rotate(180deg)}
  .ba-nav a::after,.ba-nav-trigger::after{display:none!important}

  .ba-mega-menu{
    position:static!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    max-width:100%!important;
    max-height:0!important;
    overflow:hidden!important;
    gap:0!important;
    margin:0!important;
    padding:0 10px!important;
    border:0!important;
    border-radius:0 0 22px 22px!important;
    background:transparent!important;
    box-shadow:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    pointer-events:auto!important;
    transition:max-height .30s ease,padding .30s ease,margin .30s ease!important;
  }
  .ba-menu-item.is-open > .ba-mega-menu{
    max-height:min(58svh,520px)!important;
    overflow:auto!important;
    margin:8px 0 3px!important;
    padding:8px 10px 12px!important;
  }
  .ba-mega-intro{display:none!important}
  .ba-mega-menu ul{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin:0!important;padding:0!important;list-style:none!important}
  .ba-dropdown-link{
    display:grid!important;
    gap:3px!important;
    min-height:62px!important;
    padding:13px 14px!important;
    border-radius:16px!important;
    background:rgba(255,255,255,.96)!important;
    border:1px solid rgba(82,39,137,.10)!important;
    box-shadow:0 10px 24px rgba(82,39,137,.07)!important;
    color:var(--ba-v315-nav-text)!important;
  }
  .ba-dropdown-link:hover,.ba-dropdown-link:focus-visible{background:#fff!important;border-color:rgba(236,19,106,.22)!important;color:#522789!important;transform:none!important}
  .ba-dropdown-title{font-family:Poppins,Inter,system-ui,sans-serif!important;font-size:14px!important;font-weight:850!important;line-height:1.22!important;letter-spacing:-.02em!important;color:inherit!important}
  .ba-dropdown-desc{display:block!important;margin-top:2px!important;color:var(--ba-v315-nav-muted)!important;font-size:12px!important;font-weight:650!important;line-height:1.36!important}
  .ba-mobile-project-item{display:block!important;margin-top:10px!important}
  .ba-mobile-project-link{
    min-height:58px!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,#ec136a,#f3552c)!important;
    color:#fff!important;
    font-weight:950!important;
    justify-content:center!important;
    box-shadow:0 18px 48px rgba(236,19,106,.28)!important;
  }
}

@media (max-width:640px){
  .ba-header-inner{width:min(100% - 22px,1180px)}
  .ba-logo span{max-width:50vw}
  .ba-nav{padding:82px 12px 88px!important;border-radius:24px!important}
  .ba-nav::before{top:24px!important;left:20px!important}
  .ba-nav .ba-smart-menu > li > a,
  .ba-nav .ba-nav-trigger{min-height:56px!important;padding:14px 14px!important;border-radius:17px!important}
  .ba-menu-item.is-open > .ba-mega-menu{max-height:min(54svh,460px)!important;padding-inline:7px!important}
}

@media (max-width:420px){
  .ba-header-inner{gap:8px;width:min(100% - 18px,1180px)}
  .ba-logo span{max-width:44vw;font-size:13px}
  .ba-logo img{height:38px!important;max-width:38px!important}
  .ba-menu-toggle{width:43px!important;height:43px!important;min-width:43px!important;min-height:43px!important;border-radius:14px!important}
  .ba-nav{inset:8px!important;max-height:calc(100svh - 16px)!important;padding:78px 10px 82px!important;border-radius:22px!important}
  body.ba-menu-open .ba-menu-toggle{top:14px!important;right:14px!important}
  .ba-nav .ba-smart-menu > li > a,
  .ba-nav .ba-nav-trigger{font-size:14px!important;min-height:54px!important;padding:13px 13px!important}
  .ba-dropdown-link{min-height:58px!important;padding:12px!important}
  .ba-dropdown-desc{font-size:11.5px!important}
}

@media (prefers-reduced-motion:reduce){
  .ba-nav,.ba-mega-menu,.ba-menu-toggle span,.ba-menu-toggle span::before,.ba-menu-toggle span::after,.ba-nav .ba-nav-trigger span{transition:none!important}
}

/* V3.20 hamburger geometry correction for consistent mobile close icon. */
@media (max-width:960px){
  .ba-menu-toggle span{display:block!important;position:relative!important;width:20px!important;height:2px!important;border-radius:999px!important;background:#fff!important}
  .ba-menu-toggle span::before,
  .ba-menu-toggle span::after{position:absolute!important;left:0!important;top:0!important;width:20px!important;height:2px!important;border-radius:999px!important;background:#fff!important;content:""!important}
  .ba-menu-toggle span::before{transform:translateY(-7px)!important}
  .ba-menu-toggle span::after{transform:translateY(7px)!important}
  body.ba-menu-open .ba-menu-toggle span{background:transparent!important}
  body.ba-menu-open .ba-menu-toggle span::before{transform:rotate(45deg)!important}
  body.ba-menu-open .ba-menu-toggle span::after{transform:rotate(-45deg)!important}
}

/* V3.20 mobile menu + header-height stabilization patch.
   Fixes mobile half-open states and prevents --ba-header-h feedback growth. */
.ba-v317-menu-ready{contain:layout style}
.ba-site-header .ba-header-inner{height:var(--ba-header-h,82px)!important;min-height:var(--ba-header-h,82px)!important;max-height:var(--ba-header-h,82px)!important}
@media (min-width:961px){
  .ba-site-header:not(.ba-header-scrolled) .ba-header-inner{height:82px!important;min-height:82px!important;max-height:82px!important}
  .ba-site-header.ba-header-scrolled .ba-header-inner{height:72px!important;min-height:72px!important;max-height:72px!important}
  .ba-site-header{min-height:auto!important}
}
@media (max-width:960px){
  .ba-site-header .ba-header-inner{height:72px!important;min-height:72px!important;max-height:72px!important}
  .ba-site-header{height:72px!important;min-height:72px!important;max-height:72px!important}
  body.ba-menu-open .ba-nav,
  .ba-nav.is-open{
    opacity:1!important;
    visibility:visible!important;
    transform:translate3d(0,0,0) scale(1)!important;
    pointer-events:auto!important;
  }
  body.ba-menu-open .ba-nav{display:block!important}
  .ba-nav{pointer-events:none!important}
  .ba-nav.is-open{pointer-events:auto!important}
  body.ba-menu-open{overflow:hidden!important;position:fixed!important;left:0!important;right:0!important;width:100%!important}
  .ba-nav .ba-smart-menu{padding-bottom:calc(18px + env(safe-area-inset-bottom))!important}
  .ba-menu-item.is-open > .ba-mega-menu{
    display:grid!important;
    max-height:min(60svh,560px)!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
}
@media (max-width:420px){
  .ba-nav{inset:7px!important;max-height:calc(100svh - 14px)!important;padding-top:76px!important;padding-bottom:78px!important}
}


/* V3.20 mobile menu full-screen drawer fix.
   Fixes the reported issue where the mobile menu/submenus opened inside a small scroll box.
   Scope: mobile navigation layout only. Hero slider and service-detail templates are untouched. */
@media (max-width:960px){
  html.ba-mobile-menu-open{
    overflow:hidden!important;
    height:100%!important;
  }
  body.ba-menu-open{
    overflow:hidden!important;
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    min-height:100%!important;
    touch-action:none!important;
  }
  body.ba-menu-open::before{
    inset:0!important;
    z-index:900!important;
    background:rgba(13,7,28,.62)!important;
    backdrop-filter:blur(10px)!important;
    -webkit-backdrop-filter:blur(10px)!important;
  }

  /* Full viewport drawer, not an inset card / small box. */
  .ba-nav{
    position:fixed!important;
    inset:0!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    z-index:1000!important;
    width:100vw!important;
    max-width:none!important;
    min-width:0!important;
    height:100vh!important;
    min-height:100vh!important;
    max-height:none!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:none!important;
    display:block!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    box-sizing:border-box!important;
    padding:calc(88px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(34px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))!important;
    border-radius:0!important;
    border:0!important;
    background:
      radial-gradient(circle at 8% 0%,rgba(236,19,106,.18),transparent 32%),
      radial-gradient(circle at 96% 14%,rgba(243,85,44,.16),transparent 30%),
      radial-gradient(circle at 50% 100%,rgba(82,39,137,.11),transparent 38%),
      linear-gradient(145deg,#ffffff 0%,#fff7fb 52%,#f4efff 100%)!important;
    box-shadow:none!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translate3d(0,18px,0)!important;
    transition:opacity .24s ease,visibility .24s ease,transform .24s ease!important;
  }
  body.ba-menu-open .ba-nav,
  .ba-nav.is-open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translate3d(0,0,0)!important;
  }

  .ba-nav::before{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    display:block!important;
    width:min(100%,720px)!important;
    margin:0 auto 18px!important;
    padding:0 2px!important;
    content:"Menu"!important;
    color:#1A1A2E!important;
    font-family:Poppins,Inter,system-ui,sans-serif!important;
    font-size:clamp(28px,7vw,40px)!important;
    font-weight:950!important;
    line-height:1!important;
    letter-spacing:-.055em!important;
  }

  .ba-smart-menu{
    width:min(100%,720px)!important;
    max-width:720px!important;
    margin:0 auto!important;
    padding:0 0 calc(24px + env(safe-area-inset-bottom))!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    align-items:stretch!important;
  }

  .ba-nav .ba-smart-menu > li > a,
  .ba-nav .ba-nav-trigger{
    min-height:60px!important;
    padding:16px 18px!important;
    border-radius:20px!important;
    font-size:15.5px!important;
    line-height:1.18!important;
  }

  /* Submenus expand in the full page drawer. No nested small scroll boxes. */
  .ba-mega-menu{
    position:static!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:0!important;
    overflow:hidden!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    margin:0!important;
    padding:0 8px!important;
    border:0!important;
    border-radius:0 0 24px 24px!important;
    background:transparent!important;
    box-shadow:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    pointer-events:auto!important;
    transition:max-height .32s ease,padding .24s ease,margin .24s ease!important;
  }
  .ba-menu-item.is-open > .ba-mega-menu{
    max-height:2400px!important;
    overflow:visible!important;
    margin:9px 0 4px!important;
    padding:8px 8px 14px!important;
  }
  .ba-mega-menu ul{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    margin:0!important;
    padding:0!important;
    list-style:none!important;
  }
  .ba-dropdown-link{
    min-height:auto!important;
    padding:14px 15px!important;
    border-radius:17px!important;
  }
  .ba-dropdown-desc{
    display:block!important;
    -webkit-line-clamp:unset!important;
    overflow:visible!important;
  }

  body.ba-menu-open .ba-menu-toggle{
    position:fixed!important;
    top:max(16px,env(safe-area-inset-top))!important;
    right:max(16px,env(safe-area-inset-right))!important;
    z-index:1003!important;
  }
}

@media (max-width:420px){
  .ba-nav{
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:none!important;
    padding:calc(82px + env(safe-area-inset-top)) 12px calc(28px + env(safe-area-inset-bottom))!important;
    border-radius:0!important;
  }
  .ba-nav::before{width:100%!important;margin-bottom:16px!important;font-size:clamp(26px,8vw,34px)!important}
  .ba-smart-menu{width:100%!important;max-width:none!important;gap:9px!important}
  .ba-nav .ba-smart-menu > li > a,
  .ba-nav .ba-nav-trigger{min-height:58px!important;padding:15px 15px!important;font-size:14.5px!important}
  .ba-menu-item.is-open > .ba-mega-menu{max-height:2400px!important;overflow:visible!important;padding-inline:6px!important}
}
