@media (max-width: 960px) {
  html,
  body {
    overflow-x: hidden;
  }

  img,
  video,
  iframe,
  svg {
    max-width: 100%;
    height: auto;
  }

  .container,
  .official-footer-grid,
  .qr-footer,
  .brand-note {
    width: calc(100% - 0.8rem) !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .section {
    padding: 0.45rem 0 !important;
  }

  .card {
    padding: 0.75rem !important;
    border-radius: 13px !important;
  }

  .hero-card,
  .home-survey,
  .events-plan-wrap,
  .masterclass-card,
  .partners-wrap,
  .docs-files-toolbar {
    border-radius: 13px !important;
    padding: 0.75rem !important;
    max-width: 100%;
    box-sizing: border-box;
  }

  .events-plan-grid,
  .partners-grid,
  .docs-layout,
  .docs-main,
  .docs-side,
  .ner-voi-grid,
  .ner-voi-grid--faq,
  .faq-toc .faq-toc-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.55rem !important;
  }

  .topbar .topbar-dropdown__menu,
  .topbar .topbar-dropdown__menu--wide,
  .topbar .topbar-dropdown__menu--faq {
    display: none !important;
  }

  /* Карусель партнёров: убираем разъезжающуюся по ширине сетку */
  .partners-wrap.partners--marquee {
    overflow: hidden;
  }

  .partners-wrap.partners--marquee .partners-grid {
    animation: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
    white-space: normal !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-content: center;
    gap: 0.55rem !important;
    padding: 0.35rem 0 !important;
  }

  .partners-wrap.partners--marquee .partner-card {
    min-width: min(220px, 100%) !important;
    max-width: 100% !important;
    flex: 1 1 140px !important;
  }

  .events-plan-card__img,
  .partner-card img {
    height: auto !important;
    max-height: 180px !important;
  }

  .doc-inline-dialog {
    border-radius: 10px !important;
  }

  .doc-inline-head {
    padding: 0.5rem !important;
  }

  .doc-inline-head p {
    font-size: 0.92rem !important;
  }

  .official-footer-nav a,
  .hero-actions a,
  .file-doc-actions a,
  .file-doc-actions button {
    min-height: 38px !important;
    font-size: 0.86rem !important;
    padding: 0.3rem 0.55rem !important;
  }

  .premium-page-arrows {
    display: none !important;
  }

  .faq-panel {
    width: min(100% - 0.6rem, 860px) !important;
    max-height: 92vh !important;
    border-radius: 12px !important;
  }

  .faq-panel__body,
  .answer {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
  }

  .vk-news-layout,
  #vk-news-cards .vk-post,
  #vk-news-cards .card,
  .hero-card {
    border-radius: 12px !important;
    padding: 0.72rem !important;
  }

  #vk-news-cards .vk-post h3 + p,
  #vk-news-cards .card h3 + p {
    min-height: 0 !important;
    -webkit-line-clamp: 4 !important;
  }
}

/* «О нас»: сложные сетки в одну колонку на планшетах и телефонах */
@media (max-width: 768px) {
  [data-cms-page="about"] .offices-grid,
  [data-cms-page="about"] .kpi-grid,
  [data-cms-page="about"] .contacts-grid,
  [data-cms-page="about"] .leader-grid,
  [data-cms-page="about"] .grid-2,
  [data-cms-page="about"] .honor-modal-body {
    grid-template-columns: 1fr !important;
  }

  [data-cms-page="about"] .office-map {
    min-height: 200px;
  }
}

@media (max-width: 700px) {
  html {
    font-size: 15px;
  }

  .hero h1,
  h1 {
    font-size: clamp(1.28rem, 6vw, 1.65rem) !important;
  }

  h2 {
    font-size: clamp(1.08rem, 4.8vw, 1.35rem) !important;
  }

  .official-footer-card {
    padding: 0.75rem !important;
  }

  /* Не ломать нижнюю шторку панели слабовидящих (см. site-theme.css .toolbar--popover) */

  .doc-inline-head {
    gap: 0.4rem !important;
  }

  .doc-inline-btn {
    min-height: 36px !important;
  }

  .topbar-list__link,
  .topbar-list__button {
    min-height: 44px !important;
    font-size: 0.8rem !important;
    padding: 0.18rem 0.42rem !important;
  }

  .about-quick-nav a,
  .doc-quick-nav a {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
  }
}
