@media (max-width: 1024px) {
  .mega-menu { min-width: 600px; left: 0; transform: none; }
  .mega-menu-container { grid-template-columns: repeat(2, 1fr); }
  .hero h1 { font-size: 2.75rem; }
  .pillars { grid-template-columns: 1fr; }
  .process-steps { grid-template-columns: repeat(2, 1fr); }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .portfolio-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .contact-grid { grid-template-columns: 1fr; }
  .team-card { flex-direction: column; align-items: center; text-align: center; }
}

@media (max-width: 768px) {
  :root { --header-height: 64px; }
  .mobile-menu-toggle { display: flex; }
  .header-cta { display: none; }
  .main-nav { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; height: 100dvh; background: var(--color-white); z-index: 9999; transform: translateX(-100%); transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1); overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: none; display: flex; flex-direction: column; }
  .main-nav.open { transform: translateX(0); }
  .mobile-nav-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--color-linen); background: var(--color-white); flex-shrink: 0; }
  .mobile-nav-close { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: none; border: none; cursor: pointer; border-radius: 8px; transition: background 0.15s; color: var(--color-charcoal); }
  .mobile-nav-close:hover { background: var(--color-linen); }
  .mobile-nav-close:active { background: #ece9e1; }
  .nav-list { flex-direction: column; align-items: stretch; gap: 0; padding: 8px 0; }
  .nav-item { border-bottom: 1px solid var(--color-linen); }
  .nav-link { display: block; padding: 18px 20px; font-size: 1rem; font-weight: 500; color: var(--color-charcoal); text-transform: none; letter-spacing: 0; }
  .nav-link::after { display: none; }
  .nav-link:hover { color: var(--color-gold); background: transparent; }
  .has-dropdown .mega-menu { position: static; transform: none; opacity: 1; visibility: visible; box-shadow: none; border: none; padding: 0 0 0 20px; min-width: auto; display: none; background: var(--color-linen); border-radius: 0; }
  .has-dropdown.open .mega-menu { display: block; }
  .mega-menu-container { grid-template-columns: 1fr; gap: 16px; padding: 12px 0; }
  .mega-menu-title { font-size: 0.95rem; }
  .dropdown-toggle { justify-content: space-between; width: 100%; }
  .mobile-nav-cta { padding: 20px; border-top: 1px solid var(--color-linen); background: var(--color-white); margin-top: auto; }
  .mobile-nav-cta .btn { display: block; width: 100%; text-align: center; padding: 14px 24px; font-size: 0.9rem; }
  .sticky-mobile-cta { display: block; }
  .hero { min-height: 80vh; }
  .hero h1 { font-size: 2rem; }
  .hero-subheadline { font-size: 1rem; }
  .hero-content { padding: 100px 20px 60px; }
  h2 { font-size: 1.75rem; }
  .section { padding: 60px 0; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .portfolio-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: 1fr; }
  .carousel { aspect-ratio: 4/3; }
  .process-steps { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .testimonials-grid { grid-template-columns: 1fr; }
  .categories-list { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .newsletter-form-inline { flex-direction: column; }
  .partners-grid { grid-template-columns: repeat(3, 1fr); }
  .team-grid { grid-template-columns: 1fr; }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
  .contact-grid { grid-template-columns: 1fr; }
  .form-card { padding: 24px; }
  .page-hero { padding: 120px 20px 60px; }
  .page-hero h1 { font-size: 2rem; }
  .page-hero--services { height: auto; min-height: 280px; padding: 100px 20px 40px; }
  .page-hero--services h1 { font-size: 2rem; }
  .breadcrumb { font-size: 0.75rem; }
}

@media (max-width: 480px) {
  .services-grid { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: 1fr; }
  .partners-grid { grid-template-columns: repeat(2, 1fr); }
  .values-grid { grid-template-columns: 1fr; }
  .hero h1 { font-size: 1.75rem; }
  .btn-lg { padding: 16px 28px; font-size: 0.95rem; }
  .container { padding: 0 16px; }
}
