@media (max-width: 1080px) {
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .grid-2,
  .grid-3,
  .footer-grid,
  .form-grid { grid-template-columns: 1fr; }

  .nav-toggle { display: inline-flex; }
  .main-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 78px;
    background: #102117;
    border-bottom: 1px solid rgba(255,255,255,0.12);
    display: none;
  }
  .main-nav.open { display: block; }
  .main-nav ul { flex-direction: column; padding: 1rem 4vw; }

  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .section { padding: 3.3rem 0; }
  .hero { min-height: 60vh; }
  .gallery-grid { grid-template-columns: 1fr; }
  .info-strip .container { align-items: flex-start; }
}
