@media (max-width: 70rem) {
  .site-header { min-height: 5.25rem; }
  .site-header.is-scrolled {
    min-height: 4.25rem;
    background: var(--color-cream);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .primary-navigation {
    position: fixed;
    z-index: 98;
    top: var(--mobile-header-height, 5.25rem);
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    width: 100%;
    height: calc(100vh - var(--mobile-header-height, 5.25rem));
    height: calc(100dvh - var(--mobile-header-height, 5.25rem));
    visibility: hidden;
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-start;
    background-color: var(--color-ivory);
    opacity: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: clamp(1.5rem, 4vh, 2.5rem) var(--gutter) max(2rem, env(safe-area-inset-bottom));
    transform: translateY(-1rem);
    transition: opacity var(--duration-medium) var(--ease-standard), transform var(--duration-medium) var(--ease-standard), visibility var(--duration-medium);
    -webkit-overflow-scrolling: touch;
  }
  body.nav-open .site-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    min-height: 5.25rem;
    transition: none;
  }
  .site-header.is-restoring-navigation { transition: none; }
  .site-header > .brand, .site-header > .nav-toggle { position: relative; z-index: 99; }
  .primary-navigation.is-open { visibility: visible; opacity: 1; transform: translateY(0); }
  .primary-navigation ul { align-items: flex-start; flex-direction: column; gap: 1rem; margin-top: auto; }
  .primary-navigation a:not(.button) { font-family: var(--font-display); font-size: clamp(2rem, 7vw, 3.75rem); font-weight: 400; letter-spacing: -0.02em; text-transform: none; }
  .primary-navigation .button { margin-top: var(--space-5); margin-bottom: auto; }
  .site-footer { grid-template-columns: 1.4fr 1fr; }
  .site-footer address { grid-column: 2; grid-row: 1; }
  .site-footer nav { grid-column: 1; grid-row: 2; }
  .site-footer .footer-social { grid-column: 2; grid-row: 2; }
}

@media (max-width: 48rem) {
  .section-heading-split { grid-template-columns: 1fr; align-items: start; gap: var(--space-6); }
  .section-heading-inline { align-items: flex-start; flex-direction: column; }
  .site-footer { grid-template-columns: 1fr; }
  .site-footer nav, .site-footer address, .site-footer .footer-social { grid-column: auto; grid-row: auto; }
  .footer-legal { grid-column: auto; flex-direction: column; }
}

@media (max-width: 30rem) {
  .button-group { align-items: stretch; flex-direction: column; }
  .button-group .button { width: 100%; }
}
