@layer responsive {
  @media (max-width: 900px) {
    :root {
      --header-height: 68px;
    }

    .nav-toggle {
      display: grid;
    }

    .primary-nav {
      position: fixed;
      top: var(--header-height);
      right: 1rem;
      left: 1rem;
      padding: 0.75rem;
      transform: translateY(-0.75rem) scale(0.98);
      visibility: hidden;
      border: 1px solid var(--color-line);
      border-radius: var(--radius-md);
      background: rgba(8, 9, 12, 0.94);
      box-shadow: var(--shadow-soft);
      opacity: 0;
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
      transition:
        opacity var(--transition-base),
        transform var(--transition-base),
        visibility var(--transition-base);
    }

    .primary-nav.is-open {
      transform: translateY(0) scale(1);
      visibility: visible;
      opacity: 1;
    }

    body.nav-open {
      overflow: hidden;
    }

    .primary-nav ul {
      display: grid;
      gap: 0;
    }

    .primary-nav li + li {
      border-top: 1px solid var(--color-line);
    }

    .primary-nav a {
      padding: 0.9rem;
      display: block;
      font-size: 0.95rem;
    }

    .primary-nav a::after {
      display: none;
    }

    .site-footer__grid {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 640px) {
    .page-intro,
    .site-header__inner,
    .site-footer > * {
      width: min(calc(100% - 2rem), var(--container));
    }

    .site-brand__wordmark {
      font-size: 0.8rem;
    }

    .page-intro {
      min-height: 68vh;
      padding-top: 8rem;
    }

    .site-footer__intro .button {
      width: 100%;
    }

    .footer-links {
      grid-template-columns: 1fr;
    }

    .site-footer__base {
      align-items: flex-start;
      flex-direction: column;
    }
  }

  @media (max-width: 390px) {
    h1 {
      font-size: 2.7rem;
    }

    .contact-form {
      padding: 1.2rem;
    }
  }

  @media (min-width: 1440px) {
    :root {
      --container: 1280px;
    }
  }

  @media (forced-colors: active) {
    .button,
    .contact-form,
    .primary-nav,
    .site-header.is-scrolled {
      border: 1px solid CanvasText;
    }

    .page-intro h1 {
      color: CanvasText;
    }
  }
}
