.vpt-widget {
  --vpt-number-column: 150px;
  --vpt-column-gap: 80px;
  width: 100%;
  overflow: hidden;
  background: #fff;
  color: #263541;
}
.vpt-widget, .vpt-widget * { box-sizing: border-box; }
.vpt__inner { width: 100%; max-width: 1180px; margin: 0 auto; padding: 78px; padding-bottom: 96px; }
.vpt__list { position: relative; display: grid; }
.vpt__track { position: absolute; top: 0; bottom: 0; left: calc(var(--vpt-number-column) + var(--vpt-column-gap) / 2); width: 2px; overflow: hidden; background: rgba(77,128,157,.2); transform: translateX(-50%); }
.vpt__track-fill { position: absolute; inset: 0; background: #4d809d; transform: scaleY(1); transform-origin: top; will-change: transform; }
.vpt__step { position: relative; display: grid; grid-template-columns: var(--vpt-number-column) minmax(0,1fr); column-gap: var(--vpt-column-gap); min-height: 188px; }
.vpt__number { padding-top: 4px; color: #4d809d; font-size: 31px; font-weight: 300; line-height: 1; letter-spacing: .14em; }
.vpt__content { min-width: 0; padding-bottom: 54px; }
.vpt__title { margin: 0 0 14px; color: #263541; font-size: clamp(27px,3vw,38px); font-weight: 300; line-height: 1.15; letter-spacing: -.035em; }
.vpt__text { margin: 0; color: #627580; font-size: clamp(14px,1.45vw,16px); font-weight: 400; line-height: 1.62; }
.vpt__text p { margin: 0; }
.vpt__outro { margin-left: calc(var(--vpt-number-column) + var(--vpt-column-gap)); padding-top: 18px; color: #263541; font-size: clamp(29px,3.35vw,42px); font-weight: 300; line-height: 1.35; letter-spacing: -.025em; }
.vpt-widget.has-scroll-animation .vpt__track-fill { transform: scaleY(0); }
.vpt-widget.has-scroll-animation .vpt__number,
.vpt-widget.has-scroll-animation .vpt__content,
.vpt-widget.has-scroll-animation .vpt__outro { opacity: 0; will-change: opacity, transform; }
@media (max-width: 767px) {
  .vpt-widget { --vpt-number-column: 0px; --vpt-column-gap: 34px; }
  .vpt__inner { padding: 48px 24px 58px; }
  .vpt__track { left: 7px; transform: none; }
  .vpt__step { grid-template-columns: minmax(0,1fr); min-height: 0; padding-left: 34px; }
  .vpt__number { margin-bottom: 15px; font-size: 25px; }
  .vpt__content { padding-bottom: 52px; }
  .vpt__outro { margin-left: 34px; padding-top: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .vpt-widget.has-scroll-animation .vpt__track-fill { transform: scaleY(1) !important; }
  .vpt-widget.has-scroll-animation .vpt__number,
  .vpt-widget.has-scroll-animation .vpt__content,
  .vpt-widget.has-scroll-animation .vpt__outro { opacity: 1 !important; transform: none !important; }
}
