/* ==========================================================================
   Responsive rules — Desktop → Laptop → Tablet → Mobile
   ========================================================================== */

/* Laptop */
@media (max-width: 1180px){
  .container{ padding: 0 var(--sp-5); }
  .grid-4{ grid-template-columns: repeat(2, 1fr); }
  .grid-6{ grid-template-columns: repeat(3, 1fr); }
  .stats{ grid-template-columns: repeat(2, 1fr); gap: var(--sp-8); }
}

/* Tablet */
@media (max-width: 960px){
  .main-nav{ display: none; }
  .header-actions .btn--primary{ display: none; }
  .hamburger{ display: flex; }

  .two-col, .two-col--reverse{
    grid-template-columns: 1fr;
    gap: var(--sp-6);
  }
  .two-col--reverse .two-col__media{ order: 0; }
  .two-col__media{ order: -1; }

  .grid-3{ grid-template-columns: repeat(2, 1fr); }
  .footer-grid{ grid-template-columns: repeat(2, 1fr); gap: var(--sp-7); }
  .form-grid{ grid-template-columns: 1fr; }
  .next-steps{ grid-template-columns: 1fr; }
  .route__line{ left: 23px; }
  .route__marker{ width: 48px; height: 48px; font-size: var(--fs-sm); }
  .route__step{ grid-template-columns: 48px 1fr; }
}

/* Mobile */
@media (max-width: 640px){
  .container{ padding: 0 var(--sp-4); }
  .section{ padding: var(--sp-8) 0; }
  .section--tight{ padding: var(--sp-7) 0; }

  h1{ font-size: 2rem; }
  h2{ font-size: 1.6rem; }
  .fs-lede{ font-size: var(--fs-base); }

  .grid-2, .grid-3, .grid-4, .grid-6{ grid-template-columns: 1fr; }
  .stats{ grid-template-columns: 1fr 1fr; }
  .footer-grid{ grid-template-columns: 1fr; gap: var(--sp-7); }
  .footer-bottom{ flex-direction: column; }

  .btn-row{ flex-direction: column; align-items: stretch; }
  .btn-row .btn{ width: 100%; }

  .cta-block{ padding: var(--sp-7) var(--sp-5); }
  .contact-form-card{ padding: var(--sp-5); }

  .page-hero{ padding: var(--sp-8) 0 var(--sp-7); }

  .site-header__inner{
    padding-top: var(--sp-3);
    padding-right: var(--sp-5);
    padding-bottom: var(--sp-3);
    padding-left: var(--sp-5);
  }
  .mobile-nav{
    top: 100%;
    height: calc(100vh - 68px);
    height: calc(100dvh - 68px);
    padding: var(--sp-4) var(--sp-5) var(--sp-6);
  }
  .mobile-nav ul{ gap: 0; }
  .mobile-nav a{
    font-size: 1rem;
    line-height: 1.35;
    padding: var(--sp-3) 0;
  }
  .mobile-nav .btn{
    margin-top: var(--sp-5);
    padding: 12px 18px;
  }

  .card--sector__body{ padding: var(--sp-5); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
