/* Mobile header: logo left, hamburger top-right, one row. Menu opens below/overlay. */
:root {
  --mm-accent: var(--dir-green, var(--hi-primary, var(--primary, currentColor)));
  --mm-header-h: 64px;
}

@media (max-width: 991.98px) {
  /* Hide desktop-only chrome on mobile */
  .topbar,
  .header-top-bar,
  .header-actions,
  .header-info,
  .header-phone,
  .header-call,
  .header-cta,
  .header-quote,
  .nv-chrome-header .header-top,
  .site-header .primary-nav:not(.open),
  .site-header .main-nav:not(.open),
  .site-header .desktop-nav {
    /* desktop nav hidden via theme; open state shown below */
  }

  /* Brand row: always one line */
  .navbar,
  .navbar.navbar-expand-lg,
  .navbar.navbar-expand-md,
  .nav-bar .navbar,
  .site-header,
  .site-header .header-inner,
  .site-header .nav-wrap,
  header .header-inner,
  .header .header-inner,
  .header-area .main-header > .container-fluid > .row,
  .mc-chrome-header .navbar > .container,
  .nv-chrome-header .navbar,
  .nv-chrome-header .navbar > .container,
  .header-navigation .container-fluid,
  .header-navigation .container,
  .header-navigation .primary-menu,
  .ftco-navbar-light .container,
  .navbar > .container,
  .navbar > .container-fluid,
  .header-main,
  .nav-wrap-header .header-main {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    column-gap: 8px;
    row-gap: 0 !important;
  }

  .site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 100050 !important;
    display: block !important;
    visibility: visible !important;
    background: var(--header-bar-bg, #fff) !important;
  }

  .site-header .header-inner,
  .site-header .nav-wrap,
  .header .header-inner {
    min-height: var(--mm-header-h);
    width: 100%;
    position: relative;
    z-index: 100053;
    isolation: isolate;
  }

  /* Logo / brand: shrink long names, stay on one row */
  .navbar-brand,
  .site-header .brand,
  .header-area .logo,
  .site-branding,
  header .brand,
  .header .logo,
  .header .brand,
  .nv-brand-link,
  .mc-brand,
  .nv-brand,
  .ap-brand-wrap {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 3.25rem) !important;
    margin-right: .35rem !important;
    position: relative !important;
    z-index: 1;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
  }

  .navbar-brand,
  .navbar-brand h1,
  .brand-copy,
  .brand-copy strong,
  .brand-text,
  .brand-text strong,
  .brand-name,
  .nv-brand__name,
  .mc-brand__name,
  .mc-brand__text,
  .header .logo img + *,
  .navbar-brand span {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    max-width: 100%;
    line-height: 1.15;
  }

  /* Hide taglines on very narrow screens to save room */
  .brand-copy small,
  .brand-text small,
  .nv-brand__tag,
  .mc-brand__tag {
    display: none !important;
  }

  @media (min-width: 400px) {
    .brand-copy small,
    .brand-text small,
    .nv-brand__tag,
    .mc-brand__tag {
      display: block !important;
      overflow: hidden !important;
      text-overflow: ellipsis !important;
      white-space: nowrap !important;
      max-width: 100%;
      font-size: clamp(7px, 2vw, 9px) !important;
    }
  }

  /* Hamburger / toggler: always visible top-right, above closed nav overlay */
  .navbar-toggler,
  .menu-toggle,
  .menu-btn,
  .nav-toggle,
  .vs-menu-toggle,
  .vs-menu-toggle.d-xl-none,
  .slicknav_btn,
  .chrome-menu-btn,
  .phi-menu-btn,
  .navbar-toggler.collapsed,
  [data-toggle="collapse"],
  [data-bs-toggle="collapse"] {
    flex: 0 0 auto !important;
    order: 2 !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    z-index: 100055 !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    padding: 0 !important;
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex-shrink: 0 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
  }

  .site-header .menu-toggle {
    color: var(--header-bar-link, inherit);
  }

  /* Brand text on one line (logo + name + tagline inline) */
  .brand-copy,
  .brand-text {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: baseline !important;
    flex-wrap: nowrap !important;
    gap: 0.35em;
    min-width: 0;
    line-height: 1.1 !important;
  }

  .brand-copy strong,
  .brand-text strong,
  .brand-copy small,
  .brand-text small {
    display: inline !important;
    white-space: nowrap !important;
  }

  .menu-toggle span,
  .menu-btn span,
  .nav-toggle span:not(.navbar-toggler-icon) {
    display: block !important;
    width: 22px !important;
    height: 2px !important;
    margin: 0 !important;
    flex: 0 0 2px;
    background: currentColor !important;
  }

  /* Hide collapsed panels; site-header uses slide drawer */
  .navbar-collapse:not(.show):not(.collapsing),
  .header .nav:not(.open),
  .site-header .nav-menu:not(.open):not(.menu-on) {
    display: none !important;
  }

  .site-header .primary-nav:not(.open),
  .site-header .main-nav:not(.open) {
    display: grid !important;
    transform: translateY(-130%) !important;
    visibility: hidden !important;
    pointer-events: none !important;
    z-index: 1 !important;
  }

  /* Bootstrap collapse panel */
  .navbar-collapse,
  .navbar-collapse.show,
  .navbar-collapse.collapsing {
    flex-basis: 100% !important;
    flex-grow: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    order: 3 !important;
    position: fixed !important;
    top: var(--mm-header-h) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 100051 !important;
    background: #fff !important;
    max-height: calc(100vh - var(--mm-header-h));
    overflow: auto;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .12);
  }

  /* Custom site-header nav drawer (closed: no clicks; open: below header) */
  .site-header .primary-nav,
  .site-header .main-nav,
  .site-header .nav-menu,
  .header .nav {
    position: fixed !important;
    top: var(--mm-header-h) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: none !important;
    flex-basis: auto !important;
    order: 0 !important;
    margin-left: 0 !important;
    transform: translateY(-130%);
    visibility: hidden;
    pointer-events: none;
    z-index: 100054;
    transition: transform 180ms ease, visibility 180ms ease;
  }

  .site-header .primary-nav.open,
  .site-header .main-nav.open,
  .site-header .nav-menu.open,
  .header .nav.open,
  .nav-menu.menu-on {
    display: grid !important;
    transform: translateY(0) !important;
    visibility: visible !important;
    pointer-events: auto !important;
    flex-basis: auto !important;
    width: 100% !important;
    order: 0 !important;
    z-index: 100054 !important;
    padding: 18px 20px 24px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
    background: #fff;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .12);
  }

  .primary-nav.open > a,
  .main-nav.open > a,
  .nav-menu.open > a,
  .header .nav.open > a {
    padding: 14px 4px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }

  /* MPM / Surancy nav drawer */
  .header-navigation.breakpoint-on .nav-menu.menu-on {
    display: block !important;
    position: fixed !important;
    top: var(--mm-header-h) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 100051 !important;
    background: #fff;
    padding: 16px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .12);
  }

  body.menu-open,
  body.mpm-nav-open {
    overflow: hidden;
  }

  .slicknav_nav,
  .chrome-menu-panel,
  .vs-menu-wrapper {
    z-index: 100002 !important;
  }

  /* Addiction theme: hide call buttons in header row on mobile */
  .header .header-actions {
    display: none !important;
  }

  /* Health Coach (ftco) pest sites: icon + "Menu" label, in-flow collapse panel */
  .hc-chrome-header .wrap {
    display: none !important;
  }

  .hc-chrome-header.site-header {
    background: var(--hc-dark, #172747) !important;
    display: block !important;
  }

  .hc-chrome-header .navbar {
    padding: 0.65rem 0 !important;
  }

  .hc-chrome-header .navbar > .container {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    row-gap: 0 !important;
  }

  .hc-chrome-header .navbar-brand,
  .hc-chrome-header .navbar-brand.hc-brand-link {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 7.5rem) !important;
    margin-right: 0.5rem !important;
    overflow: hidden !important;
  }

  .hc-chrome-header .navbar-brand .hc-brand {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .hc-chrome-header .navbar-brand .hc-brand__text {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .hc-chrome-header .navbar-toggler,
  .hc-chrome-header [data-toggle="collapse"],
  .hc-chrome-header [data-bs-toggle="collapse"] {
    width: auto !important;
    min-width: auto !important;
    height: auto !important;
    min-height: 44px !important;
    padding: 8px 14px !important;
    flex: 0 0 auto !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.35rem !important;
    font-size: 12px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    border-radius: 0 !important;
  }

  .hc-chrome-header .navbar-toggler .fa {
    font-size: 16px !important;
    line-height: 1 !important;
  }

  .hc-chrome-header .navbar-collapse,
  .hc-chrome-header .navbar-collapse.show,
  .hc-chrome-header .navbar-collapse.collapsing {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    order: 3 !important;
    flex: 0 0 100% !important;
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    margin-top: 0 !important;
    box-shadow: none !important;
    background: var(--hc-dark, #172747) !important;
    overflow: visible !important;
  }

  .hc-chrome-header .navbar-collapse:not(.show):not(.collapsing) {
    display: none !important;
  }

  .hc-chrome-header .navbar-nav {
    flex-direction: column !important;
    padding: 0.25rem 0 0.75rem !important;
  }

  .hc-chrome-header .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.92) !important;
  }

  .hc-chrome-header .ftco-navbar-light .navbar-nav > .nav-item.active > .nav-link,
  .hc-chrome-header .ftco-navbar-light .navbar-nav > .nav-item > .nav-link.active {
    background: var(--hc-primary, #b9d86b) !important;
    color: var(--hc-dark, #172747) !important;
  }
}

.chrome-vs-menu {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(320px, 86vw);
  z-index: 100003;
  padding: 88px 24px 24px;
  overflow: auto;
  background: #fff;
  box-shadow: -12px 0 32px rgba(0, 0, 0, .18);
}

.chrome-vs-menu.body-visible,
.vs-menu-wrapper.body-visible.chrome-vs-menu {
  display: block;
}

.chrome-vs-menu a {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid rgba(0, 0, 0, .08);
  color: #111;
  font-weight: 600;
  text-decoration: none;
}
