/* ==========================================================================
   Responsive rules — mobile-first overrides
   Desktop: 1200px container / 3-col property grid / full nav
   Tablet:  2-col property grid / compact nav
   Mobile:  1-col cards / hamburger / full-width buttons / stacked filters
   ========================================================================== */

/* ---------- Tablet (<=1024px) ---------- */
@media (max-width: 1024px) {
  .section { padding: 64px 0; }

  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .category-grid { grid-template-columns: repeat(2, 1fr); }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .why-grid { grid-template-columns: repeat(3, 1fr); row-gap: 32px; }
  .steps { grid-template-columns: repeat(3, 1fr); row-gap: 32px; }
  .post-grid { grid-template-columns: repeat(2, 1fr); }
  .location-grid { grid-template-columns: repeat(2, 1fr); }

  .split { gap: 40px; }
  .split, .split.reverse { grid-template-columns: 1fr; }
  .split-media, .split.reverse .split-media { order: -1; }

  .search-card { grid-template-columns: 1fr 1fr; }
  .search-card .btn { grid-column: 1 / -1; }

  .contact-grid { grid-template-columns: 1fr; }
  .agent-card { position: static; }

  .team-grid { grid-template-columns: 1fr; }
  .vm-grid { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr 1fr; row-gap: 36px; }

  .cta-band { padding: 48px 28px; }
}

/* ---------- Mobile (<=640px) ---------- */
@media (max-width: 640px) {
  .section { padding: 52px 0; }

  .hero { min-height: 92vh; }
  .hero-content { padding: 120px 0 48px; }
  .hero-actions .btn, .cta-actions .btn { width: 100%; }
  .hero-actions, .cta-actions { flex-direction: column; }

  .search-module { margin-top: -30px; }
  .search-card { grid-template-columns: 1fr; padding: 18px; gap: 14px; }

  .card-grid { grid-template-columns: 1fr; }
  .category-grid { grid-template-columns: 1fr 1fr; }
  .service-grid { grid-template-columns: 1fr; }
  .why-grid { grid-template-columns: 1fr 1fr; }
  .steps { grid-template-columns: 1fr; }
  .post-grid { grid-template-columns: 1fr; }
  .location-grid { grid-template-columns: 1fr; }

  .detail-specs { grid-template-columns: 1fr 1fr; }
  .feature-list { grid-template-columns: 1fr; }
  .gallery-thumbs { grid-template-columns: repeat(4, 1fr); }

  .footer-grid { grid-template-columns: 1fr; row-gap: 32px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }

  .filters-bar { flex-direction: column; align-items: stretch; }
  .filters-bar select, .filters-bar input { width: 100%; }

  .team-card, .vm-card { padding: 24px; }
  .cta-band { padding: 40px 20px; }

  h1 { font-size: 2rem; }
  h2 { font-size: 1.6rem; }
}
