.tf-mobile-toolbar {
  display: contents;
}

@media (max-width: 1060px) {
  .site-header {
    /* A filtered header otherwise contains the fixed drawer below the topbar. */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .site-header .header-inner {
    flex-direction: row;
    flex-wrap: nowrap;
    min-width: 0;
  }

  .site-header .brand-logo {
    max-width: 100%;
    object-fit: contain;
  }

  .site-header .nav-toggle {
    flex-shrink: 0;
  }

  body.tf-mobile-ready .main-navigation {
    display: block;
    top: 0;
    bottom: 0;
    width: min(100vw, 420px);
    height: 100dvh;
    max-height: 100dvh;
    padding: calc(12px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));
    scroll-padding-top: 68px;
    overscroll-behavior: contain;
    visibility: hidden;
    pointer-events: none;
  }

  body.tf-mobile-ready .main-navigation.is-open {
    visibility: visible;
    pointer-events: auto;
  }

  body.tf-mobile-ready .tf-mobile-toolbar {
    display: flex;
    position: sticky;
    top: 0;
    justify-content: flex-end;
    padding-bottom: 8px;
    margin-bottom: 4px;
    background: white;
    z-index: 2;
    box-shadow: 0 -12px 0 12px white;
  }

  body.tf-mobile-ready .nav-close {
    position: static;
    right: auto;
    width: 44px;
    height: 44px;
    margin: 0;
  }

  body.tf-mobile-ready .primary-menu {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  body.tf-mobile-ready .primary-menu > li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    align-items: start;
    gap: 0 8px;
    padding: 6px 0;
    min-width: 0;
  }

  body.tf-mobile-ready .primary-menu > li > a {
    width: auto;
    min-width: 0;
    min-height: 44px;
    padding: 12px 4px;
    font-size: 14px;
  }

  body.tf-mobile-ready .primary-menu > li > .subnav-toggle {
    width: 44px;
    height: 44px;
    margin: 0;
  }

  body.tf-mobile-ready .primary-menu > li > ul {
    grid-column: 1 / -1;
    padding: 0 0 8px;
    max-width: 100%;
  }

  body.tf-mobile-ready .primary-menu > li.is-submenu-open > ul {
    display: grid;
    gap: 8px;
  }

  body.tf-mobile-ready .primary-menu > li > ul .sub-menu {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 0;
    margin: 0;
  }

  body.tf-mobile-ready .primary-menu > li > ul li {
    min-width: 0;
    padding: 0;
  }

  body.tf-mobile-ready .primary-menu > li > ul a {
    display: block;
    min-height: 44px;
    padding: 11px 8px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.45;
    overflow-wrap: anywhere;
  }

  body.tf-mobile-ready .primary-menu > li > ul a[href="#"] {
    min-height: 0;
    padding: 10px 8px 4px;
    font-size: 12px;
    font-weight: 700;
    color: #53666f;
    pointer-events: none;
  }

  body.tf-mobile-ready .primary-menu > li > ul .subnav-toggle,
  body.tf-mobile-ready .primary-menu .menu-item-desc,
  body.tf-mobile-ready .primary-menu .menu-item-description,
  body.tf-mobile-ready .primary-menu .menu-item-visual,
  body.tf-mobile-ready .primary-menu .menu-item-icon,
  body.tf-mobile-ready .primary-menu .mega-menu-heading,
  body.tf-mobile-ready .primary-menu .tf-mobile-duplicate {
    display: none !important;
  }

  .site-main .container[style*="grid-template-columns"],
  .site-main .approach-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
  }

  .site-main .container,
  .site-main .container *,
  .site-footer .container,
  .site-footer .container * {
    min-width: 0;
  }

  .site-main :is(h1, h2, h3, p, a, li, dd),
  .site-main .tf-wysiwyg-content,
  .site-footer :is(p, a, li) {
    overflow-wrap: anywhere;
  }

  .site-main img,
  .site-main video,
  .site-main iframe,
  .site-main input,
  .site-main select,
  .site-main textarea {
    max-width: 100%;
  }

  .site-main img,
  .site-main video {
    height: auto;
  }

  .site-main .btn {
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }

  .site-footer .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-main .visual-panel-content .display {
    font-size: clamp(2.5rem, 10vw, 5.25rem);
    overflow-wrap: anywhere;
  }
}

@media (max-width: 768px) {
  .site-main [style*="grid-template-columns"] {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 20px !important;
  }

  @media (max-width: 680px) {
    .site-footer .footer-grid {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 480px) {
    .site-main .step {
      grid-template-columns: minmax(0, 1fr);
      gap: 12px;
    }
  }

  .site-main .container[style*="display:flex"],
  .site-main .container[style*="display: flex"] {
    flex-wrap: wrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.tf-mobile-ready .main-navigation,
  body.tf-mobile-ready .mobile-nav-backdrop {
    transition: none;
  }
}
