/************************************************************
  Мобильная адаптация PBGroup
  Подключать после всех остальных стилей
************************************************************/

/* БАЗОВЫЕ ПРАВКИ ДЛЯ МЕЛКИХ ЭКРАНОВ (≤ 1024px) */
@media (max-width: 1024px) {

  /* Общий контейнер — меньше отступы по краям */
  .container {
    padding-left: 16px;
    padding-right: 16px;
  }

  .section {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .section__head {
    text-align: left;
    margin-bottom: 24px;
  }

  .section__head h2 {
    font-size: 26px;
    line-height: 1.25;
  }

  /* ===== HERO ===== */
  .hero {
    padding-top: 32px;
    padding-bottom: 40px;
  }

  .hero__content {
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .hero__grid {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .hero__text {
    max-width: 100%;
  }

  .hero__text h1 {
    font-size: 28px;
    line-height: 1.25;
  }

  .hero__text .lead {
    font-size: 15px;
  }

  .hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .hero__actions .btn {
    flex: 1 1 45%;
    min-width: 140px;
    text-align: center;
  }

  .hero__card {
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
  }

  .hero__card-stats {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 12px;
  }

  .hero__image {
    min-height: 220px;
    background-position: center;
    background-size: cover;
  }

  .hero__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 10px;
    row-gap: 6px;
  }

  /* ===== METRICS ===== */
  .metrics__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .metric-card {
    padding: 14px 12px;
  }

  .metric-card__label {
    font-size: 13px;
  }

  /* ===== SERVICES ===== */
  .services__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .service-card h3 {
    font-size: 16px;
  }

  .service-card p {
    font-size: 13px;
  }

  /* ===== CASES (Слайдер) ===== */
  .section.section--cases {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .cases-slider__viewport {
    overflow: hidden;
  }

  .cases-slider__track {
    display: flex;
    align-items: stretch;
  }

  .section.section--cases .case-card {
    flex: 0 0 80%;
    max-width: 360px;
    height: 260px;
    margin: 0 8px;
  }

  .cases-slider__btn {
    width: 32px;
    height: 32px;
  }

  /* Модалка кейсов — ужимаем до края экрана */
  .case-modal__dialog {
    width: 94vw;
    max-width: 480px;
    margin: 24px auto;
    border-radius: 18px;
  }

  .case-modal__body {
    display: flex;
    flex-direction: column;
  }

  .case-modal__image {
    min-height: 200px;
  }

  .case-modal__content {
    padding: 16px 16px 18px;
  }

  .case-modal__title {
    font-size: 18px;
  }

  .case-modal__meta {
    font-size: 13px;
  }

  .case-modal__actions {
    flex-direction: column;
    gap: 10px;
  }

  .case-modal__btn-primary,
  .case-modal__btn-secondary {
    width: 100%;
    justify-content: center;
  }

  /* ===== STEPS ===== */
  .steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .step {
    padding: 14px 12px;
  }

  .step span {
    font-size: 16px;
  }

  .step h3 {
    font-size: 15px;
  }

  .step p {
    font-size: 13px;
  }

  /* ===== GUARANTEE ===== */
  .guarantee {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .guarantee__badge {
    margin-left: 0;
    max-width: 100%;
  }

  .guarantee__badge h3 {
    font-size: 15px;
  }

  /* ===== CTA ===== */
  .cta {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  .cta h2 {
    font-size: 22px;
  }

  .cta__actions {
    align-items: flex-start;
  }

  .cta__actions .btn {
    width: 100%;
    text-align: center;
  }

  /* ===== QUIZ (общая адаптация, поверх quiz-widget-mobile.css) ===== */
  .section.section--quiz {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  #quiz .quiz-shell {
    max-width: 100%;
    margin-top: 24px;
  }

  #quiz .quiz-container {
    padding: 18px 14px 16px;
    font-size: 16px;
  }

  #quiz .quiz-step h2 {
    font-size: 22px;
  }

  #quiz .quiz-step p {
    font-size: 15px;
  }

  #quiz .quiz-step_radio_cont label {
    font-size: 14px;
  }

  #quiz .quiz-step_radio_cont input[type="text"],
  #quiz .quiz-step_radio_cont input[type="tel"] {
    font-size: 15px;
  }

  #quiz .btn-row {
    gap: 10px;
    flex-wrap: wrap;
  }

  #quiz .btn-row .next-btn,
  #quiz .btn-row .prev-btn {
    flex: 1 1 45%;
    min-width: 130px;
    justify-content: center;
  }

  #quiz #quiz-last-buttons {
    flex-wrap: wrap;
    justify-content: center;
  }

  #quiz #quiz-last-buttons #btn1 {
    width: 100%;
    justify-content: center;
  }

  #quiz #quiz-last-buttons .prev-btn {
    flex: 0 0 auto;
  }

  #quiz-last-buttons .quiz-consent {
    align-items: flex-start;
  }

  #quiz-last-buttons .quiz-consent span {
    flex: 1 1 auto;
  }

  /* ===== FOOTER ===== */
  .footer {
    padding-top: 32px;
    padding-bottom: 32px;
  }

  .footer__grid {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .footer__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .footer__buttons .btn {
    flex: 1 1 45%;
    min-width: 140px;
    text-align: center;
  }

  .footer__copy {
    margin-top: 16px;
    text-align: center;
  }

  /* ===== EXIT POPUP (на всякий случай если включишь на мобилках) ===== */
  .exit-popup__content {
    width: 92vw;
    max-width: 440px;
    margin: 18vh auto;
    padding: 18px 16px 20px;
  }

  .exit-popup__title {
    font-size: 18px;
  }

  .exit-popup__text {
    font-size: 14px;
  }

  .exit-popup__actions .btn {
    width: 100%;
    text-align: center;
  }
}

/* БОЛЕЕ УЗКИЕ ЭКРАНЫ (≤ 768px) */
@media (max-width: 768px) {

  .section {
    padding-top: 32px;
    padding-bottom: 32px;
  }

  .section__head {
    text-align: left;
  }

  .section__head h2 {
    font-size: 22px;
  }

  /* HERO */
  .hero__text h1 {
    font-size: 24px;
  }

  .hero__actions {
    flex-direction: column;
  }

  .hero__actions .btn {
    width: 100%;
  }

  .hero__list {
    grid-template-columns: 1fr;
  }

  /* METRICS & SERVICES & STEPS в одну колонку */
  .metrics__grid,
  .services__grid,
  .steps {
    grid-template-columns: 1fr;
  }

  /* CASES: карточка почти на весь экран */
  .section.section--cases .case-card {
    flex: 0 0 92%;
    max-width: none;
    height: 240px;
  }

  .cases-slider__btn {
    top: 50%;
    transform: translateY(-50%);
  }

  .case-modal__dialog {
    width: 96vw;
    margin: 18px auto;
  }

  /* GUARANTEE / CTA */
  .guarantee,
  .cta {
    gap: 18px;
  }

  .cta__actions {
    align-items: stretch;
  }

  /* QUIZ — кнопки в столбик на маленьких экранах */
  #quiz .btn-row {
    flex-direction: column;
  }

  #quiz .btn-row .next-btn,
  #quiz .btn-row .prev-btn {
    width: 100%;
  }

  #quiz-last-buttons {
    flex-direction: column;
    align-items: stretch !important;
  }

  #quiz-last-buttons .quiz-consent {
    font-size: 12px;
    gap: 6px;
  }

  /* FOOTER */
  .footer__buttons {
    flex-direction: column;
  }

  .footer__buttons .btn {
    width: 100%;
  }

  /* EXIT POPUP */
  .exit-popup__content {
    margin: 14vh auto;
  }
}

/* САМЫЕ МАЛЕНЬКИЕ ЭКРАНЫ (≤ 480px) */
@media (max-width: 480px) {

  body {
    font-size: 14px;
  }

  .container {
    padding-left: 12px;
    padding-right: 12px;
  }

  .hero {
    padding-top: 24px;
    padding-bottom: 32px;
  }

  .hero__text h1 {
    font-size: 21px;
  }

  .hero__card {
    margin-top: 8px;
  }

  .hero__image {
    min-height: 180px;
  }

  .metric-card,
  .service-card,
  .step {
    padding: 12px 10px;
  }

  .section.section--cases .case-card {
    height: 220px;
  }

  .case-modal__content {
    padding: 14px 12px 16px;
  }

  .case-modal__title {
    font-size: 17px;
  }

  .case-modal__meta,
  .case-modal__text p,
  .case-modal__text li {
    font-size: 13px;
  }

  #quiz .quiz-container {
    padding: 16px 12px 14px;
  }

  #quiz .quiz-step h2 {
    font-size: 20px;
  }

  #quiz .quiz-step p {
    font-size: 14px;
  }

  #quiz .quiz-step_radio_cont label {
    font-size: 13px;
  }

  #quiz .quiz-step_radio_cont input[type="text"],
  #quiz .quiz-step_radio_cont input[type="tel"] {
    font-size: 14px;
  }

  #quiz #quiz-last-buttons #btn1 {
    padding-left: 26px;
    padding-right: 26px;
    font-size: 15px;
  }

  .footer__copy {
    font-size: 12px;
  }
}

/* СУПЕР-УЗКИЕ (≤ 360px) — чуть меньше всё */
@media (max-width: 360px) {
  .hero__text h1 {
    font-size: 19px;
  }

  .btn {
    font-size: 13px;
    padding-top: 9px;
    padding-bottom: 9px;
  }

  #quiz .quiz-step h2 {
    font-size: 18px;
  }
}
