/* ============================================================
   Campaign Journey — responsive (horizontal + mobile stack)
   ============================================================ */

@media (max-width: 1199.98px) {
  .campaign-journey__sticky {
    padding: 64px 0 36px;
  }

  .campaign-journey__hero-fig {
    width: min(70%, 280px);
  }

  .campaign-journey__hero-fig--dashboard {
    width: min(94%, 720px);
  }

  .campaign-journey__pair {
    max-width: 460px;
  }

  .campaign-journey__pair-fig--primary {
    width: min(44%, 200px);
  }

  .campaign-journey__pair-fig--secondary {
    width: min(38%, 170px);
  }
}

@media (max-width: 991.98px) {
  .campaign-journey__sticky {
    padding: 56px 0 32px;
  }

  .campaign-journey__stage {
    gap: 28px;
  }

  .campaign-journey__progress {
    gap: 6px 12px;
  }

  .campaign-journey__progress-item {
    font-size: 0.58rem;
  }

  .campaign-journey__hero-fig {
    width: min(68%, 240px);
  }

  .campaign-journey__pair-fig .campaign-journey__hero-img {
    max-height: min(38vh, 300px);
  }

  .campaign-journey__float {
    width: clamp(56px, 16%, 80px);
  }
}

/* Mobile: vertical stack — no sideways pin */
@media (max-width: 767.98px) {
  .campaign-journey__sticky {
    padding: 48px 0 32px;
    min-height: 0;
    display: block;
  }

  .campaign-journey__viewport {
    overflow: visible;
    min-height: 0;
  }

  .campaign-journey__track {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: auto;
    transform: none !important;
  }

  .campaign-journey__panel {
    width: 100% !important;
    height: auto;
    padding: 8px 0 36px;
  }

  .campaign-journey__progress {
    display: none;
  }

  .campaign-journey__stage {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .campaign-journey__copy {
    max-width: 28rem;
    margin: 0 auto;
    order: 2;
  }

  .campaign-journey__visual {
    order: 1;
    margin: 0 auto;
    max-width: 360px;
  }

  .campaign-journey__visual--dashboard {
    max-width: 100%;
  }

  .campaign-journey__hero-fig {
    width: min(72%, 240px);
    max-height: none;
    margin: 0 auto;
  }

  .campaign-journey__hero-fig--dashboard {
    width: min(100%, 420px);
  }

  .campaign-journey__hero-img {
    max-height: 320px;
  }

  .campaign-journey__pair {
    max-width: 320px;
    margin: 0 auto;
  }

  .campaign-journey__pair-fig--primary {
    width: 48%;
  }

  .campaign-journey__pair-fig--secondary {
    width: 42%;
    transform: translateY(-4px) translateX(-4px);
  }

  .campaign-journey__pair-fig .campaign-journey__hero-img {
    max-height: 260px;
  }

  .campaign-journey__pair-arrow {
    font-size: 1rem;
  }

  .campaign-journey__float--branded {
    top: 4%;
    left: 0;
    width: 64px;
  }

  .campaign-journey__float--qr {
    bottom: 6%;
    left: 2%;
    width: 58px;
  }

  .campaign-journey__float--lead {
    top: 10%;
    right: 0;
    width: 62px;
  }

  .campaign-journey__float--contest {
    top: 4%;
    right: 0;
    width: 60px;
  }

  .campaign-journey.is-ready .campaign-journey__float img {
    animation: none;
  }
}

@media (max-width: 575.98px) {
  .campaign-journey__sticky {
    padding: 40px 0 28px;
  }

  .campaign-journey__title {
    font-size: 1.55rem;
  }

  .campaign-journey__lede {
    font-size: 0.86rem;
  }

  .campaign-journey__copy-title {
    font-size: 1.25rem;
  }

  .campaign-journey__hero-fig {
    width: min(78%, 210px);
  }

  .campaign-journey__float--branded,
  .campaign-journey__float--qr,
  .campaign-journey__float--lead,
  .campaign-journey__float--contest {
    width: 50px;
  }
}
