/* Geoform mobile layer */
.gf-burger { display: none; }
.gf-mobnav { display: none; }

@media (max-width: 860px) {
  /* only hide the desktop links once the menu button actually exists,
     so a script failure never leaves the nav with no way through */
  nav.gf-nav[data-gf-mobile="done"] > a:not(.gf-logotext),
  nav.gf-nav[data-gf-mobile="done"] > div:not(.gf-logotext) { display: none !important; }
  nav.gf-nav { padding-top: calc(16px + env(safe-area-inset-top, 0px)); padding-bottom: 16px; }

  .gf-burger {
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 46px; height: 46px; padding: 11px; margin: -11px -8px -11px 0;
    background: none; border: 0; cursor: pointer;
  }
  .gf-burger span {
    display: block; height: 2px; width: 100%; background: currentColor;
    transition: transform .25s ease, opacity .2s ease;
  }
  .gf-burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .gf-burger.is-open span:nth-child(2) { opacity: 0; }
  .gf-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .gf-mobnav {
    display: block; position: fixed; z-index: 49; left: 0; right: 0;
    top: calc(78px + env(safe-area-inset-top, 0px));
    background: #0D0D0E; border-bottom: 1px solid rgba(255,255,255,0.10);
    padding: 8px 20px calc(20px + env(safe-area-inset-bottom, 0px));
    max-height: calc(100svh - 78px); overflow-y: auto;
  }
  .gf-mobnav[hidden] { display: none; }
  .gf-mobnav a {
    display: block; padding: 17px 0; min-height: 48px;
    color: #F3EFEB; text-decoration: none;
    font-family: 'Archivo', system-ui, sans-serif; font-size: 18px; font-weight: 600;
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }
  .gf-mobnav a:last-child { border-bottom: 0; }
  .gf-mobnav .gf-mobnav-call {
    margin-top: 12px; background: #FF0030; color: #fff;
    text-align: center; border-radius: 2px; font-weight: 700;
  }

  /* tap targets */
  footer a, .gf-navlink { display: inline-block; padding: 12px 0; min-height: 44px; }
  footer a { line-height: 1.5; }

  /* never let anything push the page sideways */
  img, video, iframe, table { max-width: 100%; }

  /* legibility */
  body, div, p, span, li, label { -webkit-text-size-adjust: 100%; }
}

@media (max-width: 700px) {
  form > div { grid-template-columns: 1fr !important; }
}

@media (max-width: 420px) {
  [style*="minmax(320px"] { grid-template-columns: 1fr !important; }
}
