/* v3.2.28 - mobile drawer scroll/a11y stacking fix */
@media (min-width:761px){
  html.kh-mobile-drawer-open,body.kh-mobile-drawer-open{overflow:auto!important;touch-action:auto!important}
  .kh-header .mobile-nav.kh-mobile-drawer,.kh-mobile-drawer-backdrop{display:none!important}
}

@media (max-width:760px){
  html:not(.kh-mobile-drawer-open),
  body:not(.kh-mobile-drawer-open){
    overflow-y:auto!important;
    touch-action:auto!important;
    overscroll-behavior-y:auto!important;
  }
  .kh-header .menu-toggle{
    width:42px!important;
    height:42px!important;
    border-radius:15px!important;
    border:1px solid #dce7f0!important;
    background:linear-gradient(180deg,#fff,#f7fbfe)!important;
    box-shadow:0 8px 20px rgba(21,55,92,.10)!important;
    color:transparent!important;
  }
  .kh-header .menu-toggle::before,
  .kh-header .menu-toggle::after{
    content:none!important;
    display:none!important;
  }
  .kh-menu-lines{
    width:20px!important;
    height:16px!important;
    display:grid!important;
    align-content:space-between!important;
    justify-items:end!important;
  }
  .kh-menu-lines>span{
    display:block!important;
    height:2px!important;
    border-radius:999px!important;
    background:var(--blue)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.6) inset!important;
    transition:width .18s ease,transform .18s ease,opacity .18s ease!important;
  }
  .kh-menu-lines>span:nth-child(1){width:20px!important}
  .kh-menu-lines>span:nth-child(2){width:14px!important}
  .kh-menu-lines>span:nth-child(3){width:18px!important}
  .kh-header .menu-toggle:active .kh-menu-lines>span:nth-child(2){width:20px!important}
  body.kh-mobile-drawer-open .kh-menu-lines>span:nth-child(1){width:20px!important;transform:translateY(7px) rotate(45deg)!important}
  body.kh-mobile-drawer-open .kh-menu-lines>span:nth-child(2){opacity:0!important}
  body.kh-mobile-drawer-open .kh-menu-lines>span:nth-child(3){width:20px!important;transform:translateY(-7px) rotate(-45deg)!important}

  /* Lock only while the full-screen drawer is open. Do not leave touch-action disabled. */
  html.kh-mobile-drawer-open,
  body.kh-mobile-drawer-open{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.kh-mobile-drawer-open{touch-action:auto!important}

  /* Keep the full-screen drawer above the entire mobile shell, including the bottom tab bar. */
  body.kh-mobile-drawer-open .kh-header{
    position:relative!important;
    z-index:2147483000!important;
  }
  body.kh-mobile-drawer-open .kh-mobile-bottom{
    z-index:1!important;
    pointer-events:none!important;
  }
  .kh-mobile-drawer-backdrop{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    z-index:2147482999!important;
    width:100%!important;
    min-height:100vh!important;
    min-height:100dvh!important;
    padding:0!important;
    border:0!important;
    background:rgba(13,28,48,.42)!important;
    opacity:0!important;
    pointer-events:none!important;
    transition:opacity .22s ease!important;
  }
  .kh-mobile-drawer-backdrop[hidden],
  body:not(.kh-mobile-drawer-open) .kh-mobile-drawer-backdrop{
    display:none!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  body.kh-mobile-drawer-open .kh-mobile-drawer-backdrop:not([hidden]){
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  .kh-header .mobile-nav.kh-mobile-drawer{
    z-index:2147483001!important;
    overscroll-behavior:contain!important;
  }
  .kh-header .mobile-nav.kh-mobile-drawer[inert],
  .kh-header .mobile-nav.kh-mobile-drawer:not(.open){
    pointer-events:none!important;
    visibility:hidden!important;
  }

  /* The link area is the only drawer area that scrolls when content exceeds the viewport. */
  .kh-drawer-links{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    touch-action:pan-y!important;
    -webkit-overflow-scrolling:touch!important;
    padding-bottom:18px!important;
  }
  .kh-drawer-categories{
    margin:2px 0 4px!important;
  }
  .kh-drawer-categories>summary{
    width:100%!important;
    min-height:50px!important;
    display:grid!important;
    grid-template-columns:36px minmax(0,1fr) 18px!important;
    align-items:center!important;
    gap:9px!important;
    padding:7px 10px!important;
    border:0!important;
    border-radius:14px!important;
    color:#34445c!important;
    cursor:pointer!important;
    list-style:none!important;
  }
  .kh-drawer-categories>summary::-webkit-details-marker{display:none!important}
  .kh-drawer-categories[open]>summary,
  .kh-drawer-categories>summary:active{
    background:#eef7fc!important;
    color:var(--blue)!important;
  }
  .kh-drawer-categories>summary b{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:13.2px!important;
    font-weight:790!important;
  }
  .kh-drawer-categories>summary i{
    justify-self:end!important;
    font-style:normal!important;
    color:#9caec1!important;
    font-size:18px!important;
    transition:transform .18s ease!important;
  }
  .kh-drawer-categories[open]>summary i{transform:rotate(180deg)!important}
  .kh-drawer-categories>div{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
    padding:4px 2px 8px 45px!important;
  }
  .kh-drawer-categories>div>a{
    min-width:0!important;
    display:grid!important;
    grid-template-columns:24px minmax(0,1fr)!important;
    column-gap:7px!important;
    row-gap:0!important;
    align-items:center!important;
    padding:8px!important;
    border:1px solid #e5edf4!important;
    border-radius:12px!important;
    background:#fff!important;
    color:#34445c!important;
    text-decoration:none!important;
  }
  .kh-drawer-categories>div>a>span{
    grid-row:1/3!important;
    width:24px!important;
    height:24px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:8px!important;
    background:#f1f7fb!important;
    color:var(--blue)!important;
    font-size:11px!important;
    font-weight:900!important;
  }
  .kh-drawer-categories>div>a>b,
  .kh-drawer-categories>div>a>small{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .kh-drawer-categories>div>a>b{font-size:10.5px!important;line-height:1.15!important}
  .kh-drawer-categories>div>a>small{font-size:8.5px!important;color:#7d8da3!important;line-height:1.2!important}
  .kh-drawer-provider small{
    padding-inline:6px!important;
  }
  .kh-drawer-auth a,
  .kh-drawer-provider a,
  .kh-mobile-bottom>a,
  .kh-mobile-bottom>button{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* Professional fixed bottom navigation: attached to the viewport edge, safe-area aware. */
  body{
    padding-bottom:calc(64px + env(safe-area-inset-bottom))!important;
  }
  img,video,canvas,iframe{
    max-width:100%!important;
  }
  main{
    min-width:0!important;
    overflow-x:hidden!important;
  }
  .container{
    width:min(100% - 24px,1180px)!important;
  }
  .page-hero,
  .section,
  .dashboard,
  .customer-hub,
  .provider-quote-page{
    overflow-x:hidden!important;
  }
  .section-head,
  .panel-head,
  .dash-head,
  .admin-heading{
    align-items:flex-start!important;
    gap:10px!important;
  }
  .section-head h2,
  .center-head h2,
  .provider-cta h2,
  .seo-content h2{
    max-width:100%!important;
    font-size:clamp(24px,8vw,31px)!important;
    line-height:1.15!important;
    letter-spacing:0!important;
  }
  .hero h1,
  .page-hero h1{
    font-size:clamp(31px,9.5vw,40px)!important;
    line-height:1.08!important;
    letter-spacing:0!important;
  }
  .hero p,
  .page-hero p{
    font-size:15px!important;
    line-height:1.55!important;
  }
  .content-sidebar,
  .dashboard-grid,
  .customer-shell,
  .customer-content-grid,
  .premium-quote-layout,
  .service-hero-grid,
  .provider-cta-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:16px!important;
  }
  .form-grid,
  .settings-form,
  .premium-price-row{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .stat-grid,
  .stat-grid.four,
  .customer-kpis,
  .portal-kpis,
  .provider-stats{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:9px!important;
  }
  .table-wrap{
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .btn,
  button,
  input,
  select,
  textarea{
    max-width:100%!important;
  }
  .kh-mobile-bottom{
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    height:calc(58px + env(safe-area-inset-bottom))!important;
    min-height:calc(58px + env(safe-area-inset-bottom))!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    align-items:start!important;
    gap:0!important;
    padding:5px 8px calc(5px + env(safe-area-inset-bottom))!important;
    border:0!important;
    border-top:1px solid rgba(213,224,235,.96)!important;
    border-radius:0!important;
    background:rgba(255,255,255,.985)!important;
    box-shadow:0 -10px 26px rgba(15,34,61,.10)!important;
    backdrop-filter:blur(18px) saturate(1.25)!important;
    -webkit-backdrop-filter:blur(18px) saturate(1.25)!important;
    overflow:hidden!important;
    z-index:950!important;
  }
  .kh-mobile-bottom>a,
  .kh-mobile-bottom>button{
    width:100%!important;
    height:48px!important;
    min-width:0!important;
    min-height:48px!important;
    display:grid!important;
    place-items:center!important;
    align-content:center!important;
    gap:2px!important;
    padding:3px 2px!important;
    margin:0!important;
    border:0!important;
    border-radius:14px!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#6b7788!important;
    font-size:9px!important;
    font-weight:820!important;
    line-height:1!important;
    letter-spacing:0!important;
    text-align:center!important;
    transform:none!important;
    transition:background .16s ease,color .16s ease,transform .16s ease!important;
  }
  .kh-mobile-bottom>a>span,
  .kh-mobile-bottom>button>span{
    width:24px!important;
    height:24px!important;
    display:grid!important;
    place-items:center!important;
    margin:0!important;
    border:0!important;
    border-radius:10px!important;
    background:transparent!important;
    color:currentColor!important;
    box-shadow:none!important;
    font-size:18px!important;
    line-height:1!important;
  }
  .kh-mobile-bottom>a.kh-tab-active{
    color:var(--blue)!important;
    background:color-mix(in srgb,var(--blue) 9%,#fff)!important;
  }
  .kh-mobile-bottom>a.kh-tab-active>span{
    color:var(--blue)!important;
  }
  .kh-mobile-bottom .kh-mobile-request{
    height:48px!important;
    min-height:48px!important;
    color:#fff!important;
    border-radius:16px!important;
    background:linear-gradient(135deg,var(--blue),color-mix(in srgb,var(--blue) 58%,var(--orange)))!important;
    box-shadow:0 8px 18px color-mix(in srgb,var(--blue) 22%,transparent)!important;
  }
  .kh-mobile-bottom .kh-mobile-request>span{
    width:22px!important;
    height:22px!important;
    color:#fff!important;
    font-size:18px!important;
  }
  .kh-mobile-bottom .kh-mobile-request>b{
    max-width:100%!important;
    color:#fff!important;
    font-size:9px!important;
    font-weight:900!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .kh-mobile-bottom>a:active,
  .kh-mobile-bottom>button:active{
    transform:scale(.96)!important;
  }
  body.kh-overlay-open .kh-mobile-bottom,
  body.modal-lock .kh-mobile-bottom,
  body.kh-request-fullscreen-open .kh-mobile-bottom{
    transform:translateY(100%)!important;
    opacity:0!important;
    pointer-events:none!important;
  }
}

@media (max-width:390px){
  .kh-drawer-categories>div{
    grid-template-columns:1fr!important;
    padding-left:43px!important;
  }
  .kh-drawer-provider small{font-size:8.8px!important}
  body{padding-bottom:calc(61px + env(safe-area-inset-bottom))!important}
  .kh-mobile-bottom{
    height:calc(56px + env(safe-area-inset-bottom))!important;
    min-height:calc(56px + env(safe-area-inset-bottom))!important;
    padding-left:5px!important;
    padding-right:5px!important;
  }
  .kh-mobile-bottom>a,
  .kh-mobile-bottom>button{
    height:46px!important;
    min-height:46px!important;
    font-size:8.2px!important;
    border-radius:12px!important;
  }
  .kh-mobile-bottom>a>span,
  .kh-mobile-bottom>button>span{
    width:22px!important;
    height:22px!important;
    font-size:16px!important;
  }
  .kh-mobile-bottom .kh-mobile-request{
    height:46px!important;
    min-height:46px!important;
    border-radius:14px!important;
  }
  .kh-mobile-bottom .kh-mobile-request>b{font-size:8.2px!important}
}
