/* intro v20 — Calvin Klein magazine: shimmer sheen, mist, scale-up reveal, strike-through draw */

.intro-mag__img { object-fit: cover; }
.intro-mag__figure { aspect-ratio: 21 / 9; }

/* Gold-foil sheen → shimmer sweep (gradient colours come from Tailwind, motion from CSS) */
.intro-mag__sheen {
    background-size: 220% 220%;
    animation: intro-mag-shimmer 3s linear infinite;
    opacity: 0.35;
}
@keyframes intro-mag-shimmer {
    0%   { background-position: 0% 0%; }
    100% { background-position: 100% 100%; }
}

/* Smoke / mist wisp */
.intro-mag__mist {
    width: 24rem;
    height: 24rem;
    filter: blur(48px);
    opacity: 0.4;
}

/* LED step badge fixed size (no BS w-N/h-N utility) */
.intro-mag__led {
    width: 4rem;
    height: 4rem;
}

/* Dashed connector line (no BS border-style utility) */
.intro-mag__connector {
    border-style: dashed;
}

/* Scale-up on scroll into view — hidden only once JS arms it (no-JS content stays visible) */
.intro-mag.is-armed .intro-mag__scale {
    opacity: 0;
    transform: scale(0.92);
    transition: opacity 560ms ease, transform 560ms ease;
}
.intro-mag.is-armed .intro-mag__scale.is-in {
    opacity: 1;
    transform: scale(1);
}

/* Strikethrough line draw on hover */
.intro-mag__strike { height: 0.125rem; width: 0; transition: width 300ms ease; }
.intro-mag__st:hover .intro-mag__strike { width: 100%; }

@media (prefers-reduced-motion: reduce) {
    .intro-mag__sheen { animation: none; }
    .intro-mag__scale { opacity: 1; transform: none; }
}

/* Вертикальний таймлайн — позиція рейки та вузлів */
.services__rail {
  position: absolute;
  left: 1.3rem;
  top: 0.75rem;
  bottom: 0.75rem;
  width: 2px;
  background-color: var(--bs-border-color, #dee2e6);
  border-radius: 1px;
}

.dark .services__rail {
  background-color: rgba(148, 163, 184, 0.45);
}

.services__node {
  position: relative;
  padding-left: 3.5rem;
  padding-bottom: 1.5rem;
}

.services__node:last-child {
  padding-bottom: 0;
}

@media (max-width: 575.98px) {
  .services__node {
    padding-left: 3.25rem;
  }

  .services__rail {
    left: 1.4rem;
  }
}

.services__badge {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
}

/* process stack — sticky scroll layering, marker, oversized step numbers */
.process-stack__marker {
    width: 0.625rem;
    height: 0.625rem;
}

.process-stack__num {
    font-size: clamp(3.5rem, 11vw, 7.5rem);
    line-height: 0.85;
    letter-spacing: -0.04em;
}

@media (min-width: 768px) {
    .process-stack__slot {
        min-height: min(52vh, 26rem);
    }

    .process-stack__slot:last-child {
        min-height: 0;
    }

    .process-stack__panel {
        position: sticky;
        top: 5rem;
        z-index: calc(var(--stack-index, 0) + 1);
    }
}

/* 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; }

/* FAQ v11 — timeline layout helpers */
.faq-timeline__thumb {
    width: 4rem;
    height: 4rem;
}

.faq-timeline__line {
    left: 2rem;
    width: 0.125rem;
}

@media (min-width: 768px) {
    .faq-timeline__line {
        left: 50%;
        transform: translateX(-50%);
    }
}

