/* Responsive breakpoints: 320 / 480 / 768 / 1024 / 1280 / 1440 / 1920 */
@media (max-width: 1440px) {
  :root { --max: 1140px; }
}
@media (max-width: 1280px) {
  .grid-4 { grid-template-columns: repeat(3, 1fr); }
  .mega { width: min(760px, 90vw); }
}
@media (max-width: 1024px) {
  .hero-inner, .grid-2, .quality-grid, .contact-layout, .footer-grid { grid-template-columns: 1fr; }
  .trust-grid { grid-template-columns: repeat(3, 1fr); }
  .grid-3, .related { grid-template-columns: 1fr 1fr; }
  .nav { display: none; }
  .menu-toggle { display: grid; place-items: center; }
  .site-header.is-hero { position: sticky; top: 0; background: rgba(16,18,21,.92); }
  .site-header.is-hero .nav-link { color: var(--ink-2); }
  .site-header.is-hero .logo-text { color: #fff; }
  body.nav-open .nav {
    display: flex; flex-direction: column; align-items: stretch;
    position: absolute; left: 0; right: 0; top: 100%;
    background: #fff; padding: 12px; border-bottom: 1px solid var(--line);
    box-shadow: var(--shadow);
  }
  body.nav-open .has-mega .mega {
    position: static; transform: none; width: 100%; display: grid;
    grid-template-columns: 1fr 1fr; box-shadow: none; border: 0; padding: 8px 0; opacity: 1; pointer-events: auto;
  }
  .hero { min-height: auto; padding-top: 40px; }
  .hero-visual { min-height: 280px; }
  .header-actions .btn-primary span { display: none; }
}
@media (max-width: 768px) {
  .container { width: min(100% - 28px, var(--max)); }
  .grid-4, .grid-3, .related, .trust-grid, .infra-cards { grid-template-columns: 1fr 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .topbar-tag { display: none; }
  .hero-visual img, .gallery-main img, .gallery-main .visual { min-height: 240px; height: 280px; }
  .cta-band .container { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 480px) {
  .grid-4, .grid-3, .related, .trust-grid, .infra-cards, body.nav-open .has-mega .mega { grid-template-columns: 1fr; }
  .trust-item { border-right: 0; border-bottom: 1px solid var(--line); }
  .btn { width: 100%; justify-content: center; }
  .header-actions .icon-btn:not(.wa) { display: none; }
  .logo-text { display: none; }
  h1 { font-size: 1.85rem; }
}
@media (min-width: 1920px) {
  :root { --max: 1320px; }
}
