/* Mobile viewport stability patch — 2026-09-14.
 * Keeps every brand mark and quick-action control inside the visual viewport.
 */
@media (max-width: 1023px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  .site-header,
  .header-inner,
  .site-header .brand,
  .site-header .header-actions {
    min-width: 0;
  }

  .site-header .brand {
    display: flex;
    align-items: center;
    align-self: stretch;
    width: clamp(96px, 29vw, 118px) !important;
    height: 64px;
    overflow: hidden;
    line-height: 0;
  }

  .site-header .brand-logo--header,
  .site-header .brand > img {
    display: block !important;
    width: 100% !important;
    height: 54px !important;
    max-width: 100% !important;
    max-height: 54px !important;
    margin: 0 !important;
    object-fit: contain !important;
    object-position: center !important;
    background: #fff;
  }

  body {
    padding-bottom: calc(74px + env(safe-area-inset-bottom)) !important;
  }

  .mobile-bottom-nav {
    position: fixed !important;
    inset: auto 0 0 0 !important;
    z-index: 1000 !important;
    display: grid !important;
    grid-template-columns: minmax(0, .78fr) minmax(0, 1.18fr) minmax(0, 1fr) !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    min-height: 74px !important;
    margin: 0 !important;
    padding: 7px max(7px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(7px, env(safe-area-inset-left)) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    overscroll-behavior: contain;
  }

  .mobile-bottom-nav > * {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 60px !important;
    margin: 0 !important;
    padding-inline: 5px !important;
    overflow: hidden;
    box-sizing: border-box !important;
    white-space: nowrap;
    text-overflow: ellipsis;
    touch-action: manipulation;
  }

  .mobile-bottom-nav .mobile-call {
    font-size: clamp(12px, 3.6vw, 14px) !important;
  }

  .mobile-sheet,
  .mobile-estimate-overlay {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
  }
}

@media (max-width: 374px) {
  .header-inner {
    padding-inline: 12px !important;
  }

  .site-header .brand {
    width: 94px !important;
  }

  .mobile-bottom-nav {
    grid-template-columns: minmax(0, .72fr) minmax(0, 1.22fr) minmax(0, 1fr) !important;
    gap: 5px !important;
    padding-inline: 5px !important;
  }

  .mobile-bottom-nav > * {
    padding-inline: 3px !important;
    font-size: 11px !important;
  }
}

/* Final Anywhere palette mobile dock. */
@media(max-width:1023px){.mobile-bottom-nav{background:#fff!important;color-scheme:light!important;border-top:1px solid var(--line)!important}.mobile-bottom-nav>[data-mobile-services-open]{background:#fff!important;color:var(--navy)!important;border:1px solid var(--line)!important}.mobile-bottom-nav>.mobile-call{background:var(--orange)!important;color:#fff!important;border:1px solid var(--orange)!important}.mobile-bottom-nav>.mobile-estimate{background:#fff!important;color:var(--orange)!important;border:1px solid var(--orange)!important}}
