/* ==========================================================================
   Responsive rules — desktop-first overrides
   Breakpoints: 1024px (tablet), 768px (large phone), 480px (phone)
   ========================================================================== */

@media (max-width:1024px){
  .hero-inner{ grid-template-columns:1fr; }
  .hero-visual{ order:-1; max-width:420px; }
  .service-grid{ grid-template-columns:repeat(2,1fr); }
  .reason-grid{ grid-template-columns:repeat(3,1fr); }
  .footer-grid{ grid-template-columns:1.2fr 1fr 1fr; }
  .footer-grid .footer-col:last-child{ grid-column:1 / -1; }
  .contact-grid{ grid-template-columns:1fr; }
  .stat-strip .container{ grid-template-columns:repeat(2,1fr); row-gap:1.6rem; }
}

@media (max-width:860px){
  .nav-links, .nav-cta .nav-phone{ display:none; }
  .nav-toggle{ display:block; }
  .nav-cta{ gap:.8rem; }

  .site-header.nav-open .nav-links{
    display:flex;
    position:absolute;
    top:100%; left:0; right:0;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    background:var(--forest-canopy-2);
    padding:.5rem 1.5rem 1.4rem;
    border-top:1px solid var(--line-dark);
  }
  .site-header.nav-open .nav-links a{ padding:.8rem 0; width:100%; }

  .nav-toggle.is-active span:nth-child(1){ transform:translateY(11px) rotate(45deg); }
  .nav-toggle.is-active span:nth-child(2){ opacity:0; }
  .nav-toggle.is-active span:nth-child(3){ transform:translateY(-11px) rotate(-45deg); }
}

@media (max-width:768px){
  section{ padding:4rem 0; }
  .hero{ padding:7.5rem 0 4rem; }
  .page-hero{ padding:7rem 0 3.5rem; }
  .service-grid{ grid-template-columns:1fr; }
  .values-grid{ grid-template-columns:1fr; }
  .vm-grid{ grid-template-columns:1fr; }
  .reason-grid{ grid-template-columns:repeat(2,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .footer-brand{ grid-column:1 / -1; }
  .cta-band .container{ flex-direction:column; align-items:flex-start; }
  .form-row{ grid-template-columns:1fr; }
}

@media (max-width:480px){
  .container{ padding:0 1.1rem; }
  .hero h1{ font-size:2rem; }
  .stat-strip .container{ grid-template-columns:1fr 1fr; }
  .reason-grid{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .contact-info-card, .form-card{ padding:1.6rem; }
}
