/* Touch targets & cross-device polish */
.menu-toggle {
  min-height: 44px;
  min-width: 44px;
  -webkit-tap-highlight-color: transparent;
}

@media (max-width: 600px) {
  .form-page form {
    padding: 1.25rem clamp(0.75rem, 4vw, 1.25rem);
  }

  .form-page {
    padding-inline: 0;
  }
}

@media (max-width: 420px) {
  .brand {
    max-width: calc(100% - 5.25rem);
  }
}

@media (max-width: 960px) {
  .hero-inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .hero-visual {
    order: -1;
    min-height: 240px;
  }

  .hero-blob {
    right: 10%;
    width: min(100%, 360px);
  }

  .hero-card--top {
    left: 5%;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .footer-grid .footer-col:first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  .card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .site-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    padding: 1rem 4% 1.25rem;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0.25rem;
    box-shadow: var(--shadow-md);
  }

  .site-nav.open {
    display: flex;
  }

  .site-nav a:not(.btn) {
    padding: 0.65rem 0;
  }

  .site-nav a:not(.btn)::after {
    display: none;
  }

  .site-nav .btn {
    margin-top: 0.5rem;
    text-align: center;
  }

  .card-grid {
    grid-template-columns: 1fr;
  }

  .trust-strip {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .footer-bottom {
    flex-direction: column;
    text-align: center;
  }
}
