/* ==========================================================================
   RESPONSIVE RULES — mobile-first breakpoints
   Loaded after style.css. Breakpoints: 1024 / 820 / 768 / 480
   ========================================================================== */

/* ---------- Tablet / small desktop (<=1024px) ---------- */
@media (max-width: 1024px) {
  .hero .container { grid-template-columns: 1fr; gap: 2.5rem; }
  .hero-visual { aspect-ratio: 16/9; max-width: 560px; }
  .why-grid, .service-grid, .project-grid, .values-grid { grid-template-columns: repeat(2, 1fr); }
  .stats-strip .container { grid-template-columns: repeat(2, 1fr); row-gap: 1.75rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; row-gap: 2.25rem; }
  .service-detail { gap: 2rem; }
}

/* ---------- Tablet (<=820px) ---------- */
@media (max-width: 820px) {
  .intro-block { grid-template-columns: 1fr; gap: 2rem; }
  .mission-vision-grid { grid-template-columns: 1fr; }
  .contact-layout { grid-template-columns: 1fr; }
  .contact-info-grid { grid-template-columns: 1fr; }
  .service-detail { grid-template-columns: 1fr; }
  .service-detail.reverse .service-detail-media { order: 0; }
}

/* ---------- Mobile (<=768px) ---------- */
@media (max-width: 768px) {
  .nav-links { display: none; }
  .header-actions .btn-outline { display: none; }
  .nav-toggle { display: flex; }

  .site-header nav.mobile-nav {
    position: fixed; top: var(--header-height); left: 0; right: 0; height: calc(100vh - var(--header-height));
    background: var(--color-cream); padding: 2rem var(--container-pad) 4rem;
    display: block;
    transform: translateX(100%); transition: transform 0.35s var(--ease);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .site-header nav.mobile-nav.is-open { transform: translateX(0); }
  .site-header nav.mobile-nav a { display: block; font-size: 1.3rem; padding: 0.9rem 0; border-bottom: 1px solid var(--color-border); font-family: var(--font-display); font-weight: 600; }
  .site-header nav.mobile-nav .btn { margin-top: 1.5rem; display: flex; justify-content: center; width: 100%; }

  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .why-grid, .service-grid, .project-grid, .values-grid { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .form-group.full { grid-column: 1; }

  .cta-band { flex-direction: column; text-align: center; align-items: center; }
  .cta-band-actions { justify-content: center; }

  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom { flex-direction: column; text-align: center; }

  .process-step { grid-template-columns: 56px 1fr; }
  .process-num { font-size: 1.25rem; }

  .hero { padding-top: calc(var(--header-height) + 1.75rem); }
  .hero-actions .btn { flex: 1 1 auto; justify-content: center; }
}

/* ---------- Small mobile (<=480px) ---------- */
@media (max-width: 480px) {
  :root { --container-pad: 1.1rem; }
  h1 { font-size: 2.1rem; }
  h2 { font-size: 1.6rem; }
  .hero-visual { aspect-ratio: 4/3; }
  .stats-strip .container { grid-template-columns: 1fr 1fr; }
  .cta-band { padding: 2rem 1.4rem; }
  .whatsapp-float { width: 50px; height: 50px; bottom: 1.1rem; right: 1.1rem; }
  .whatsapp-float svg { width: 22px; height: 22px; }
  .back-to-top { width: 42px; height: 42px; bottom: 1.1rem; left: 1.1rem; }
  .project-modal-body { padding: 1.4rem; }
  .contact-info-card { flex-direction: column; }
}
