body.process-page-body {
  background: #ffffff;
}

.process-page {
  --process-frame-offset: max(0px, calc((100vw - 1728px) / 2));
  --process-dot-top: min(3.356vw, 58px);
  --process-flow-shift: max(
    0px,
    calc(100svh + 64px - min(55.556vw, 960px))
  );

  position: relative;
  min-width: var(--layout-min-width);
  min-height: calc(min(307.87vw, 5320px) + var(--process-flow-shift));
  overflow: hidden;
  background: #ffffff;
  color: #000000;
}

.process-kicker {
  position: absolute;
  top: min(13.137vw, 227px);
  left: calc(var(--process-frame-offset) + min(4.456vw, 77px));
  display: flex;
  align-items: center;
  gap: clamp(10px, 0.579vw, 10px);
  color: #76777a;
}

.process-kicker span {
  width: min(1.1vw, 19px);
  border-top: 1px solid currentColor;
}

.process-kicker p {
  margin: 0;
  font-size: 15px;
  font-weight: 400;
  line-height: 30px;
}

.process-title {
  position: absolute;
  top: min(24.653vw, 426px);
  left: calc(var(--process-frame-offset) + min(9.664vw, 167px));
  width: min(69.734vw, 1205px);
  margin: 0;
  font-size: clamp(42px, 3.704vw, 64px);
  font-weight: 700;
  line-height: 1.203;
}

.process-flow {
  position: absolute;
  top: var(--process-flow-shift);
  left: 0;
  width: 100%;
}

.process-step {
  display: contents;
}

.process-axis {
  position: absolute;
  z-index: 0;
  top: min(64.699vw, 1118px);
  left: calc(var(--process-frame-offset) + min(49.653vw, 858px));
  width: clamp(14px, 1.273vw, 22px);
  height: min(232.06vw, 4010px);
  pointer-events: none;
}

.process-axis__arrow {
  position: absolute;
  top: 0;
  left: 50%;
  color: #000000;
  font-size: clamp(18px, 1.62vw, 28px);
  font-weight: 500;
  line-height: 1;
  transform: translateX(-50%);
}

.process-axis__arrow::before {
  content: "\2193";
}

.process-axis__dot {
  position: absolute;
  top: var(--process-dot-top);
  left: 50%;
  width: clamp(13px, 1.215vw, 21px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: #000000;
  transform: translateX(-50%);
  transition: top 440ms cubic-bezier(0.72, 0, 0.18, 1);
}

.process-axis__segment {
  position: absolute;
  left: 50%;
  width: 0;
  border-left: 2px solid #000000;
  transform: translateX(-50%);
}

.process-axis__segment--1 {
  top: min(4.63vw, 80px);
  height: min(33.854vw, 585px);
}

.process-axis__segment--2 {
  top: min(47.396vw, 819px);
  height: min(39.583vw, 684px);
}

.process-axis__segment--3 {
  top: min(95.891vw, 1657px);
  height: min(39.583vw, 684px);
}

.process-axis__segment--4 {
  top: min(144.387vw, 2495px);
  height: min(39.583vw, 684px);
}

.process-axis__segment--5 {
  top: min(192.824vw, 3332px);
  height: min(39.583vw, 684px);
}

.process-number {
  position: absolute;
  z-index: 1;
  margin: 0;
  color: rgba(0, 0, 0, 0.5);
  font-size: clamp(68px, 7.407vw, 128px);
  font-weight: 700;
  line-height: 1.211;
  text-align: center;
  transition: color 240ms ease;
}

.process-number--1 {
  top: min(55.556vw, 960px);
  left: calc(var(--process-frame-offset) + min(44.907vw, 776px));
  width: min(9.491vw, 164px);
}

.process-number--2 {
  top: min(103.183vw, 1783px);
  left: calc(var(--process-frame-offset) + min(41.319vw, 714px));
  width: min(17.882vw, 309px);
}

.process-number--3 {
  top: min(151.678vw, 2621px);
  left: calc(var(--process-frame-offset) + min(41.319vw, 714px));
  width: min(17.882vw, 309px);
}

.process-number--4 {
  top: min(200.174vw, 3459px);
  left: calc(var(--process-frame-offset) + min(41.319vw, 714px));
  width: min(17.882vw, 309px);
}

.process-number--5 {
  top: min(248.669vw, 4297px);
  left: calc(var(--process-frame-offset) + min(41.03vw, 709px));
  width: min(17.882vw, 309px);
}

.process-page[data-process-step="1"] {
  --process-dot-top: min(3.356vw, 58px);
}

.process-page[data-process-step="2"] {
  --process-dot-top: min(47.396vw, 819px);
}

.process-page[data-process-step="3"] {
  --process-dot-top: min(95.891vw, 1657px);
}

.process-page[data-process-step="4"] {
  --process-dot-top: min(144.387vw, 2495px);
}

.process-page[data-process-step="5"] {
  --process-dot-top: min(192.824vw, 3332px);
}

.process-page[data-process-step="1"] .process-number--1,
.process-page[data-process-step="2"] .process-number--2,
.process-page[data-process-step="3"] .process-number--3,
.process-page[data-process-step="4"] .process-number--4,
.process-page[data-process-step="5"] .process-number--5 {
  color: #000000;
}

.process-step-title {
  position: absolute;
  z-index: 1;
  margin: 0;
  font-size: clamp(30px, 2.778vw, 48px);
  font-weight: 700;
  line-height: 1.208;
}

.process-step-title--1 {
  top: min(68.866vw, 1190px);
  left: calc(var(--process-frame-offset) + min(4.572vw, 79px));
  width: min(26.62vw, 460px);
}

.process-step-title--2 {
  top: min(117.245vw, 2026px);
  left: calc(var(--process-frame-offset) + min(58.218vw, 1006px));
  width: min(35.706vw, 617px);
}

.process-step-title--3 {
  top: min(167.13vw, 2888px);
  left: calc(var(--process-frame-offset) + min(4.282vw, 74px));
  width: min(23.264vw, 402px);
}

.process-step-title--4 {
  top: min(215.741vw, 3728px);
  left: calc(var(--process-frame-offset) + min(56.481vw, 976px));
  width: min(27.025vw, 467px);
}

.process-step-title--5 {
  top: min(262.789vw, 4541px);
  left: calc(var(--process-frame-offset) + min(4.282vw, 74px));
  width: min(21.817vw, 377px);
}

.process-step-copy {
  position: absolute;
  z-index: 1;
  width: min(37.5vw, 648px);
  margin: 0;
  font-size: clamp(20px, 1.852vw, 32px);
  font-weight: 500;
  line-height: 1.219;
}

.process-step-copy--1 {
  top: min(78.993vw, 1365px);
  left: calc(var(--process-frame-offset) + min(5.035vw, 87px));
}

.process-step-copy--2 {
  top: min(127.373vw, 2201px);
  left: calc(var(--process-frame-offset) + min(58.507vw, 1011px));
}

.process-step-copy--3 {
  top: min(176.331vw, 3047px);
  left: calc(var(--process-frame-offset) + min(4.572vw, 79px));
}

.process-step-copy--4 {
  top: min(226.273vw, 3910px);
  left: calc(var(--process-frame-offset) + min(56.481vw, 976px));
}

.process-step-copy--5 {
  top: min(272.917vw, 4716px);
  left: calc(var(--process-frame-offset) + min(4.282vw, 74px));
}

.process-image {
  position: absolute;
  z-index: 1;
  display: block;
  width: min(41.319vw, 714px);
  height: auto;
  object-fit: cover;
  user-select: none;
}

.process-image--1 {
  top: min(68.866vw, 1190px);
  left: calc(var(--process-frame-offset) + min(56.481vw, 976px));
}

.process-image--2 {
  top: min(117.245vw, 2026px);
  left: calc(var(--process-frame-offset) + min(2.662vw, 46px));
}

.process-image--3 {
  top: min(167.13vw, 2888px);
  left: calc(var(--process-frame-offset) + min(56.481vw, 976px));
}

.process-image--4 {
  top: min(215.741vw, 3728px);
  left: calc(var(--process-frame-offset) + min(4.572vw, 79px));
}

.process-image--5 {
  top: min(262.789vw, 4541px);
  left: calc(var(--process-frame-offset) + min(56.481vw, 976px));
}

.process-cta {
  position: absolute;
  right: 0;
  bottom: clamp(64px, 5.787vw, 100px);
  left: 0;
  width: max-content;
  margin: 0 auto;
}

@media (max-width: 900px) {
  .process-page {
    --process-flow-shift: 0px;

    min-height: 0;
    overflow: visible;
    padding: 150px 28px 90px;
  }

  .process-kicker,
  .process-title {
    position: static;
  }

  .process-kicker {
    margin-top: 72px;
  }

  .process-kicker span {
    width: 19px;
  }

  .process-title {
    width: auto;
    min-height: calc(100svh - 310px);
    margin: 58px 0 76px;
    font-size: clamp(38px, 10vw, 64px);
    line-height: 1.16;
  }

  .process-flow {
    position: static;
    width: auto;
    display: grid;
    gap: 84px;
  }

  .process-axis {
    display: none;
  }

  .process-step {
    display: grid;
    gap: 22px;
  }

  .process-number,
  .process-step-title,
  .process-step-copy,
  .process-image {
    position: static;
    width: 100%;
  }

  .process-number {
    margin: 0;
    font-size: clamp(64px, 22vw, 104px);
    line-height: 0.95;
    text-align: left;
  }

  .process-step-title {
    margin: 0;
    font-size: clamp(32px, 8vw, 48px);
    line-height: 1.12;
  }

  .process-step-copy {
    order: 4;
    margin: 0;
    font-size: clamp(20px, 5.8vw, 32px);
    line-height: 1.24;
  }

  .process-image {
    order: 3;
    justify-self: center;
    max-width: 714px;
    height: auto;
  }

  .process-cta {
    position: static;
    display: block;
    width: max-content;
    margin: 96px auto 0;
  }
}

@media (max-width: 640px) {
  html,
  body.process-page-body,
  .process-page {
    min-width: 0;
  }

  .process-page {
    padding: 98px 20px 80px;
  }

  .process-title {
    min-height: calc(100svh - 248px);
    margin-top: 48px;
    font-size: var(--subpage-mobile-title-size);
  }

  .process-flow {
    gap: 72px;
  }

  .process-cta {
    margin-top: 72px;
    font-size: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .process-axis__dot,
  .process-number {
    transition: none;
  }
}
