/* Shared timer tab slider — progress bar + horizontal paper scroll
   Section tokens: --tab-slide-ms, --tab-scroll-ms, --tab-progress-track, --tab-progress-fill
   ========================================================= */

.tabSliderPanels {
  position: relative;
  overflow: hidden;
}

.tabSliderTrack {
  display: flex;
  width: 100%;
  transition: transform var(--tab-scroll-ms, 850ms) cubic-bezier(0.45, 0.05, 0.25, 1);
  will-change: transform;
}

.tabSliderTrack > * {
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  box-sizing: border-box;
}

.tabSliderTabText {
  position: relative;
  z-index: 1;
}

.tabSliderProgress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: var(--tab-progress-track, rgba(183, 32, 46, 0.12));
  opacity: 0;
  pointer-events: none;
}

.tabSliderProgressBar {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--tab-progress-fill, var(--color-power-red));
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}

.programsTab.isActive .tabSliderProgress,
.placementsTab.isActive .tabSliderProgress,
.testimonialsTab.isActive .tabSliderProgress {
  opacity: 1;
}

.programsTab.isActive.isPaused .tabSliderProgressBar,
.placementsTab.isActive.isPaused .tabSliderProgressBar,
.testimonialsTab.isActive.isPaused .tabSliderProgressBar {
  opacity: 0.55;
}

.programsTabs,
.placementsTabs,
.testimonialsTabs {
  scroll-behavior: smooth;
}

@media (max-width: 768px) {
  .programsWrap,
  .placementsCard,
  .testimonialsStack {
    position: relative;
  }

  .programsTrack.tabSliderTrack {
    align-items: flex-start;
  }

  .programsPanels.tabSliderPanels {
    transition: height 0.25s ease;
  }

  /* Click-only on mobile — hide autoplay progress bar */
  .programsTab .tabSliderProgress,
  .placementsTab .tabSliderProgress,
  .testimonialsTab .tabSliderProgress,
  .isTabClickOnly .tabSliderProgress {
    display: none;
  }

  .programsWrap::after {
    content: "";
    position: absolute;
    top: var(--prog-strip-h, 16px);
    right: 0;
    width: 32px;
    height: var(--prog-tab-h, 48px);
    background: linear-gradient(to right, rgba(35, 31, 32, 0), rgba(35, 31, 32, 0.92) 75%);
    pointer-events: none;
    z-index: 2;
  }

  .placementsCard::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 32px;
    height: var(--place-tab-h, 48px);
    background: linear-gradient(to right, rgba(255, 255, 255, 0), var(--color-white) 75%);
    pointer-events: none;
    z-index: 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tabSliderTrack {
    transition: none;
  }

  .programsTab.isActive .tabSliderProgressBar,
  .placementsTab.isActive .tabSliderProgressBar,
  .testimonialsTab.isActive .tabSliderProgressBar {
    transform: scaleX(1);
  }
}
