@media (max-width: 1180px) {
  .services-grid { grid-template-columns: repeat(3, 1fr); }
  .projects-grid, .faq-grid { grid-template-columns: repeat(2, 1fr); }
  .nav-wrap { gap: 16px; }
  .brand { min-width: 210px; }
  .brand img { width: 210px; }
  .main-nav { gap: 16px; font-size: .88rem; }
  .header-actions { gap: 8px; }
  .phone-link { display: none; }
}

@media (max-width: 920px) {
  .container { width: min(100% - 30px, var(--max)); }
  .nav-wrap { min-height: 72px; }
  .brand { min-width: 205px; }
  .brand img { width: 200px; }
  .menu-toggle { display: block; }
  .main-nav, .header-actions {
    position: fixed;
    left: 0;
    right: 0;
    background: var(--white);
    padding-inline: 22px;
    display: none;
  }
  .main-nav {
    top: 72px;
    gap: 0;
    border-top: 1px solid var(--line);
    box-shadow: 0 18px 30px rgba(31,42,51,.08);
  }
  .main-nav a { padding: 15px 0; border-bottom: 1px solid var(--line); }
  .header-actions {
    top: 332px;
    gap: 12px;
    padding-block: 18px 22px;
    border-bottom: 1px solid var(--line);
  }
  .header-actions .phone-link { display: inline-flex; }
  .site-header.nav-open .main-nav,
  .site-header.nav-open .header-actions {
    display: grid;
  }
  .header-actions .btn { width: 100%; }
  .hero { min-height: 680px; }
  .hero-grid { min-height: 680px; grid-template-columns: 1fr; }
  .hero-copy { padding: 80px 0 70px; }
  .hero-photo::before {
    background:
      linear-gradient(180deg, rgba(5, 21, 38, .88) 0%, rgba(5, 21, 38, .68) 50%, rgba(5, 21, 38, .44) 100%),
      linear-gradient(90deg, rgba(5, 21, 38, .72), rgba(5, 21, 38, .24));
  }
  .about-grid, .contact-grid, .content-grid, .review-submit { grid-template-columns: 1fr; }
  .about-panel { padding: 28px; }
  .about-visual img { aspect-ratio: 1.45 / 1; }
  .local-seo { grid-template-columns: 1fr; }
  .steps, .reviews-grid { grid-template-columns: 1fr 1fr; }
  .step::after { display: none; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .cookie-settings, .cookie-actions { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .container { width: min(100% - 26px, var(--max)); }
  body { background: #f4f6f8; font-size: 15.5px; }
  .site-header { border-bottom: 0; box-shadow: 0 8px 24px rgba(8,34,60,.08); }
  .nav-wrap { min-height: 66px; gap: 12px; }
  .brand { min-width: 0; }
  .brand img { width: 172px; }
  .menu-toggle {
    width: 44px;
    height: 44px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
  }
  .main-nav { top: 66px; padding: 10px 18px 0; }
  .main-nav a {
    min-height: 48px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #edf0f2;
    font-size: 1rem;
  }
  .header-actions { top: 326px; padding: 14px 18px 20px; }
  .section { padding: 46px 0; }
  h1 { font-size: clamp(2rem, 8.8vw, 2.45rem); line-height: 1.07; }
  h2 { font-size: clamp(1.45rem, 6.4vw, 1.9rem); line-height: 1.14; }
  .lead { font-size: 1rem; line-height: 1.68; }
  .eyebrow { font-size: .72rem; letter-spacing: .1em; }
  .hero { min-height: calc(100svh - 66px); background: var(--ink); }
  .hero-copy {
    padding: 50px 0 34px;
    min-height: calc(100svh - 66px);
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .hero-bg { object-position: 62% center; }
  .hero-photo::before {
    background:
      linear-gradient(180deg, rgba(5, 21, 38, .9) 0%, rgba(5, 21, 38, .72) 52%, rgba(5, 21, 38, .5) 100%),
      linear-gradient(90deg, rgba(5, 21, 38, .76), rgba(5, 21, 38, .26));
  }
  .hero .lead { font-size: 1rem; line-height: 1.62; }
  .cookie-actions { display: grid; }
  .btn { width: 100%; min-height: 52px; border-radius: 12px; }
  .service-card,
  .project-card,
  .review-card,
  .info-card,
  .legal-box,
  .form-card,
  .local-panel,
  .faq-item,
  .step {
    border-radius: 16px;
    box-shadow: 0 12px 28px rgba(8,34,60,.07);
  }
  .trust-row { gap: 12px; margin-top: 26px; }
  .services-grid, .projects-grid, .steps, .reviews-grid, .form-grid, .footer-grid, .faq-grid { grid-template-columns: 1fr; }
  .services-grid, .projects-grid, .reviews-grid, .faq-grid { margin-top: 26px; }
  .service-card { text-align: left; padding: 0 16px 20px; }
  .service-card h3 { display: block; font-size: 1.12rem; }
  .service-card p { font-size: .98rem; }
  .service-photo { margin: 0 -16px 16px; }
  .service-photo img { aspect-ratio: 1.55 / 1; }
  .about-panel { padding: 22px; }
  .about-stats { grid-template-columns: 1fr; }
  .about-badge { position: static; margin: -1px 0 0; border-radius: 0; display: block; }
  .about-badge span { display: block; text-align: left; margin-top: 4px; }
  .service-card { padding: 0 18px 24px; }
  .service-card h3 { min-height: 0; }
  .local-panel, .faq-item, .review-card { padding: 20px; }
  .step { padding: 0; }
  .step-body { padding: 18px; }
  .local-panel::before { left: 20px; right: 20px; }
  .local-panel-head { display: block; }
  .local-panel-head span { display: block; margin-top: 5px; }
  .project-card img { aspect-ratio: 1.42 / 1; }
  .form-card { padding: 18px; }
  .field input,
  .field select,
  .field textarea {
    min-height: 52px;
    border-radius: 12px;
    font-size: 16px;
    background: #fff;
  }
  .field textarea { min-height: 128px; }
  .page-hero { padding: 56px 0 40px; }
  .wa-button { width: 54px; height: 54px; right: 16px; bottom: 18px; }
  .wa-button img { width: 48px; height: 48px; }
  .wa-button svg { width: 28px; height: 32px; }
  .to-top { display: none; }
  .cookie-banner {
    bottom: 10px;
    width: calc(100% - 20px);
    max-height: calc(100vh - 20px);
    overflow: auto;
    padding: 15px;
    border-radius: 16px;
  }
  .cookie-settings, .cookie-actions { grid-template-columns: 1fr; }
  .cookie-option { min-height: 0; }
  .callback-modal { align-items: flex-end; padding: 10px; }
  .callback-dialog {
    width: 100%;
    max-height: calc(100svh - 20px);
    padding: 22px;
    border-radius: 20px;
  }
  .callback-dialog h2 { font-size: 1.5rem; }
  .callback-close { top: 12px; right: 12px; }
}

