.lp-page .flow {
  min-height: 770px;
  padding: 80px 0;
  background: #fff;
  position: relative;
  overflow: hidden;
}
.lp-page .flow .container {
  position: relative;
}
.lp-page .flow-illust {
  position: absolute;
  z-index: 1;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
}
.lp-page .flow-illust--left {
  left: 37px;
  top: 49px;
  width: 79px;
  height: 189px;
  background-image: var(--img-flow-left);
}
.lp-page .flow-illust--right {
  right: 38px;
  top: 389px;
  width: 86px;
  height: 210px;
  background-image: var(--img-flow-right);
}
.lp-page .flow-list { --flow-gap: 42px; --flow-circle: 64px; --flow-line: 2px; width: min(800px, 100%); margin: 54px auto 0; padding: 0; list-style: none; display: grid; gap: var(--flow-gap); position: relative; }
.lp-page .flow-list::before { display: none; }
.lp-page .flow-list li { display: grid; grid-template-columns: 64px 1fr; gap: 32px; position: relative; }
.lp-page .flow-list li:not(:last-child)::after {
  content: "";
  position: absolute;
  left: calc((var(--flow-circle) - var(--flow-line)) / 2);
  top: calc(var(--flow-circle) / 2);
  width: var(--flow-line);
  height: calc(100% + var(--flow-gap));
  background: var(--blue3);
}
.lp-page .flow-list span { z-index: 1; width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; background: var(--blue3); color: #fff; font-size: 24px; }
.lp-page .flow-list h3 { margin: 0 0 7px; font-family: "Noto Sans JP", sans-serif; font-size: 24px; line-height: 27px; font-weight: 700; }
.lp-page .flow-list p { margin: 0; font-size: 16px; line-height: 27px; }
.lp-page .flow-list a {
  color: var(--blue3);
  font-weight: 500;
  transition: color .2s ease;
}
.lp-page .flow-list a:hover,
.lp-page .flow-list a:focus-visible {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.lp-page .flow::before,
.lp-page .flow::after {
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: 1;
}

.lp-page .flow::before {
  left: max(150px, calc((100vw - 1140px) / 2 + 37px));
  top: 128px;
  width: 79px;
  height: 189px;
  background-image: var(--img-flow-left);
}

.lp-page .flow::after {
  right: max(188px, calc((100vw - 1140px) / 2 + 38px));
  bottom: 88px;
  width: 86px;
  height: 210px;
  background-image: var(--img-flow-right);
}

.lp-page .flow::before,
.lp-page .flow::after {
  display: none;
}
