/* Breakpoints: tablet 768px, desktop 1024px */
@media (min-width: 640px) {
  .btn-row { flex-direction: row; }
}

@media (min-width: 768px) {
  :root { --gutter: 2rem; }

  h1 { font-size: 3rem; }
  h2 { font-size: 2.2rem; }

  .section { padding-top: 7rem; padding-bottom: 7rem; }
  .grid--2 { grid-template-columns: 1fr 1fr; }
  .grid--3 { grid-template-columns: repeat(3, 1fr); }
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .site-nav { display: flex; }
  .nav-toggle { display: none; }
  .mobile-nav, .mobile-nav.is-open { display: none; }

  .brand__name { display: block; }

  .hero__mark { height: 9rem; width: 9rem; }
  .hero__brand { font-size: 1.875rem; }
  .banner__overlay p { font-size: 2rem; }

  .site-footer__top { flex-direction: row; align-items: flex-start; justify-content: space-between; }
  .site-footer__top > div { max-width: 24rem; }

  .contact-stack { gap: 2.5rem; }
  .panel { padding: 3.5rem; }
}

@media (min-width: 1024px) {
  :root { --gutter: 2.5rem; }

  h1 { font-size: 3.5rem; }
  h2 { font-size: 2.6rem; }

  .section { padding-top: 9rem; padding-bottom: 9rem; }
  .grid { gap: 4rem; }
  .grid--split { grid-template-columns: 0.9fr 1.1fr; gap: 6rem; }
  .grid--4 { grid-template-columns: repeat(4, 1fr); }
  .card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .feature-img { height: 30rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
}
