.intro-cta-content {
    max-width: 56rem;
}

/* steps v24 - tab switcher scroll container tweak, no color rules */

.steps-tab-switcher__tab {
    -webkit-appearance: none;
    appearance: none;
    border: none;
    background: transparent;
    cursor: pointer;
    font: inherit;
}

/* sidebar rail: horizontal scroll on mobile, fixed-width column on desktop
   (no Bootstrap equivalent for a responsive fixed width + overflow switch) */
.docket-switcher__rail {
    overflow-x: auto;
}

@media (min-width: 768px) {
    .docket-switcher__rail {
        overflow-x: visible;
        width: 18rem;
    }
}

/* detail panel needs min-width: 0 as a flex child so long text wraps instead of overflowing */
.docket-switcher__panel {
    min-width: 0;
}

/* fixed-size number badge in the sidebar list item (no Bootstrap size utility) */
.docket-switcher__badge-chip {
    width: 2rem;
    height: 2rem;
    font-size: 0.875rem;
}

/* fixed-size icon badge in the detail panel (no Bootstrap size utility) */
.docket-switcher__badge {
    width: 4rem;
    height: 4rem;
}

/* Active tab state — must win over Bootstrap's own !important bg/text utilities,
   and must not rely on raw Tailwind literal classes (invisible under the bs framework). */
.steps-tab-switcher__tab.is-active {
    background-color: var(--bs-primary, rgb(var(--tw-primary-600, 37 99 235) / 1)) !important;
    color: #fff !important;
}

.dark .steps-tab-switcher__tab.is-active {
    background-color: var(--bs-primary, rgb(var(--tw-primary-400, 96 165 250) / 1)) !important;
    color: rgb(15 23 42) !important;
}

.orbit-column-badge {
    width: 2.5rem;
    height: 2.5rem;
}

.orbit-column-panel {
    height: 700px;
}

.orbit-column-cloud-top {
    width: 24rem;
    height: 24rem;
}

.orbit-column-cloud-bottom {
    width: 20rem;
    height: 20rem;
}

.orbit-column-ring-main {
    width: 24rem;
    height: 24rem;
    animation-duration: 20s;
}

.orbit-column-ring-side {
    width: 20rem;
    height: 20rem;
    animation-duration: 30s;
    animation-direction: reverse;
}

.orbit-column-ring-tail {
    width: 22rem;
    height: 22rem;
    animation-duration: 25s;
}

.orbit-column-ring-main,
.orbit-column-ring-side,
.orbit-column-ring-tail {
    animation-name: orbit-column__spin;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

@keyframes orbit-column__spin {
    to { transform: rotate(360deg); }
}

.minimal-rolex-timeline__year-size {
    font-size: clamp(48px, 8vw, 96px);
}

.minimal-rolex-timeline__vertical-line {
    width: 1px;
    min-height: 100%;
}

.minimal-rolex-timeline__text-width {
    max-width: 36rem;
}

.minimal-rolex-timeline__min-shrink {
  min-width: 0;
}

.minimal-rolex-timeline__item--last {
    border-bottom-width: 0;
}

/* v29 step funnel — badge fixed size (w-16 h-16 has no BS util) */
.perks-funnel__badge {
    width: 4rem;
    height: 4rem;
    flex-shrink: 0;
}

/* connecting horizontal line — full-width (absolute, no BS util) */
.perks-funnel__line {
    pointer-events: none;
}

/* stagger reveal animation (IntersectionObserver adds .is-visible) */
.perks-funnel__step {
    opacity: 0;
    transform: translateY(1.5rem);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.perks-funnel__step.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* stagger delays (max 4 steps) */
.perks-funnel__step:nth-child(1) { transition-delay: 0s; }
.perks-funnel__step:nth-child(2) { transition-delay: 0.1s; }
.perks-funnel__step:nth-child(3) { transition-delay: 0.2s; }
.perks-funnel__step:nth-child(4) { transition-delay: 0.3s; }

/* cta particles card — animated dot field */
.cta-particles-card__root {
  position: relative;
  overflow: hidden;
}

.cta-particles-card__particles {
  position: absolute;
  inset: 0;
  opacity: 0.12;
  background-image: radial-gradient(circle, var(--tw-primary-500, var(--bs-primary)) 1px, transparent 1px);
  background-size: 50px 50px;
  animation: cta-particles-card__drift 20s linear infinite;
}

@keyframes cta-particles-card__drift {
  from { transform: translateY(0); }
  to { transform: translateY(100px); }
}

