/* Мобильная и планшетная раскладка. Один источник для всех страниц.
   Подключается в <helmet> после токенов дизайн-системы.
   ВАЖНО про селекторы: правила ищут ПОДСТРОКУ в атрибуте style поэтому
   зависят от того как стиль записан в DOM. Браузер и React нормализуют
   запись (`padding: 0px 40px` — с пробелом после двоеточия и с единицами)
   а в исходнике она обычно компактная (`padding:0 40px`). Каждое правило
   продублировано в обеих записях — не удаляйте вторую половину селекторов
   при переносе. Если собираете страницы на классах эти правила не найдут
   ничего и адаптив отключится молча: переносите их на свои классы. */

@media (max-width: 767px) {
  body { padding-top: 60px !important; }

  /* Мобильная шапка 60px: в макетах scroll-margin-top задан под 76-100px */
  #top, #routes, #contact, #faq, #formats, #brief, #invite, #cookie,
  #vliyanie, #intellekt, #rezultaty, #disciplina, #strategiya {
    scroll-margin-top: 68px !important;
  }

  /* Поля по краям страницы */
  [style*="padding: 0px 40px"],


  /* Поля по краям страницы */
  [style*="padding:0 40px"] {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* Ритм секций */
  section[style], header[style], footer[style] {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  /* Любая сетка — в одну колонку */
  [style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* Ряды кнопок и мета-строк — в столбик */
  [style*="display: flex"][style*="gap: 18px"],
  [style*="display: flex"][style*="gap: 20px"],
  [style*="justify-content: space-between"][style*="gap: 32px"],
  [style*="justify-content: space-between"][style*="gap: 40px"],
  [style*="justify-content: space-between"][style*="gap: 56px"],


  /* Ряды кнопок и мета-строк — в столбик */
  [style*="display:flex"][style*="gap:18px"],
  [style*="display:flex"][style*="gap:20px"],
  [style*="justify-content:space-between"][style*="gap:32px"],
  [style*="justify-content:space-between"][style*="gap:40px"],
  [style*="justify-content:space-between"][style*="gap:56px"] {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  /* Кнопки во всю ширину */
  a[style*="height: 50px"],
  a[style*="height: 48px"],
  a[style*="height: 46px"],
  button[type="submit"],


  /* Кнопки во всю ширину */
  a[style*="height:50px"],
  a[style*="height:48px"],
  a[style*="height:46px"] {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    height: auto !important;
    min-height: 48px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  /* Длинные строки не должны распирать страницу */
  main [style*="white-space: nowrap"],


  /* Длинные строки не должны распирать страницу */
  main [style*="white-space:nowrap"] { white-space: normal !important; }

  /* Типографика */
  h1[style] { font-size: clamp(34px, 9.5vw, 44px) !important; line-height: 1.06 !important; }
  h2[style] { font-size: clamp(27px, 7.6vw, 34px) !important; line-height: 1.14 !important; }
  h3[style] { font-size: 21px !important; }
  p[style*="var(--font-display)"] { font-size: 21px !important; line-height: 1.42 !important; }
  [style*="font-size: 19px"],
  [style*="font-size: 18px"],
  [style*="font-size:19px"],
  [style*="font-size:18px"] { font-size: 16.5px !important; }
  [style*="font-size: 17px"],
  [style*="font-size:17px"] { font-size: 16px !important; }

  /* Поля ввода: 16px иначе Safari зумит страницу при тапе */
  input[style], textarea[style], select[style] {
    font-size: 16px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  input[type="text"][style], input[type="email"][style] {
    height: 52px !important;
    width: 100% !important;
  }
  button[type="submit"] {
    height: 52px !important;
    min-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  /* Пилюля-подпись: текст переносится и фон растёт вместе с ним */
  [style*="border-radius: var(--radius-pill)"],
  [style*="border-radius:var(--radius-pill)"] {
    height: auto !important;
    min-height: 34px !important;
    padding: 8px 15px !important;
    align-items: flex-start !important;
    line-height: 1.45 !important;
  }

  /* Цитата на тёмной плашке */
  blockquote[style] {
    font-size: 21px !important;
    line-height: 1.4 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  [style*="padding: 80px"],
  [style*="padding:80px"] { padding: 32px 22px !important; }

  /* Портреты */
  image-slot[style] { aspect-ratio: 4 / 5 !important; height: auto !important; }

  /* Внутренние отступы карточек и панелей */
  [style*="padding: 36px"],
  [style*="padding: 40px"],


  /* Внутренние отступы карточек и панелей */
  [style*="padding:36px"],
  [style*="padding:40px"] { padding: 24px !important; }
  [style*="padding: 72px 80px"],
  [style*="padding:72px 80px"] { padding: 32px 22px !important; }
  [style*="padding: 32px 28px"],
  [style*="padding: 28px 26px"],
  [style*="padding:32px 28px"],
  [style*="padding:28px 26px"] { padding: 22px 20px !important; }
  [style*="padding: 22px 4px"],
  [style*="padding: 26px 4px"],
  [style*="padding: 28px 4px"],
  [style*="padding: 30px 4px"],
  [style*="padding:22px 4px"],
  [style*="padding:26px 4px"],
  [style*="padding:28px 4px"],
  [style*="padding:30px 4px"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  [style*="padding: 28px 32px"],
  [style*="padding:28px 32px"] { padding: 22px 20px !important; }
  [style*="padding: 0px 32px 32px"],
  [style*="padding:0 32px 32px"] { padding: 0 20px 24px !important; }

  /* Полоса «Среди клиентов» и подобные подписи сбоку */
  [style*="gap: 44px"],


  /* Полоса «Среди клиентов» и подобные подписи сбоку */
  [style*="gap:44px"] { flex-direction: column !important; gap: 12px !important; }

  /* Крупные декоративные смещения sage-прямоугольника ужимаются */
  [style*="left: -22px"],


  /* Крупные декоративные смещения sage-прямоугольника ужимаются */
  [style*="left:-22px"] { left: -10px !important; bottom: -10px !important; }
  [style*="right: -20px"],
  [style*="right:-20px"] { right: -10px !important; top: -10px !important; }
}

@media (min-width: 768px) and (max-width: 1023px) {
  [style*="padding: 0px 40px"],
  [style*="padding:0 40px"] {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
  section[style], header[style] {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
  h1[style] { font-size: clamp(44px, 6vw, 56px) !important; }
  [style*="grid-template-columns: repeat(4"],
  [style*="grid-template-columns:repeat(4"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  [style*="grid-template-columns: repeat(3"],
  [style*="grid-template-columns:repeat(3"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  input[style] { min-width: 0 !important; }
}

@media (max-width: 1023px) {
  /* Чекбокс согласия по умолчанию ~13px — на телефоне в него не попасть */
  input[type="checkbox"] {
    width: 22px !important;
    height: 22px !important;
    flex: none !important;
    margin-top: 1px !important;
  }

  /* Почта и кнопка подписки в столбик одинаковой ширины */
  [style*="display: flex"][style*="gap: 12px"],
  [style*="display:flex"][style*="gap:12px"] {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }
  [style*="display: flex"][style*="gap: 12px"] > input,
  [style*="display: flex"][style*="gap: 12px"] > button,
  [style*="display:flex"][style*="gap:12px"] > input,
  [style*="display:flex"][style*="gap:12px"] > button {
    flex: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
    height: 52px !important;
    min-height: 52px !important;
  }

  /* Пилюля-подпись: текст переносится и фон растёт вместе с ним */
  [style*="border-radius: var(--radius-pill)"],
  [style*="border-radius:var(--radius-pill)"] {
    height: auto !important;
    min-height: 34px !important;
    padding: 8px 15px !important;
    align-items: flex-start !important;
    line-height: 1.45 !important;
  }
}
