@charset "utf-8";

body .wrap {
  overflow: clip visible;
}



.flow {
  line-height: 1;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
  padding-block: 170px;
}
.flow__heading {
  font-size: clamp(26px, calc(36 / 1200 * 100vw), 36px);
}
.flow__copy {
  font-size: clamp(14px, calc(18 / 1200 * 100vw), 18px);
  line-height: 2.222222222;
  margin-top: calc(50px + ((2.222222222 - 1) / 2 * -1em));
  margin-bottom: calc((2.222222222 - 1) / 2 * -1em);
}
.flow__content {
  position: relative;
  z-index: 1;
  max-width: 1220px;
  margin-top: 150px;
  align-items: flex-start;
  gap: 80px calc(80 / 1220 * 100%);
}
.flow__content__photo {
  position: -webkit-sticky;
  position: sticky;
  top: 260px;
  left: 0;
  width: calc(720 / 1220 * 100%);
}
.flow__content__photo__item + .flow__content__photo__item {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
}
.flow__content__photo__item img {
  max-height: calc(100vh - 280px - 40px);
  object-fit: cover;
}
.flow__content__list {
  flex: 1;
  margin-block: clamp(90px, calc(130 / 1200 * 100vw), 130px);
}
.flow__content__list__item {
  grid-template:
    "num . heading" auto
    ". . ." 40px
    ". . copy" auto
    ". . btn" auto
    / 80px calc(40 / 420 * 100%) minmax(0, 1fr);
  align-items: center;
  padding-bottom: clamp(200px, calc(400 / 1200 * 100vw), 400px);
  background: linear-gradient(0deg, #000, #000) no-repeat top left 39px/1px 100%, linear-gradient(0deg, #B2B2B2, #B2B2B2) no-repeat top left 39px/1px 100%;
}
.flow__content__list__item:last-child {
  padding-bottom: 0;
  background: none;
}
.flow__content__list__item__num {
  grid-area: num;
  align-self: start;
  height: 80px;
  box-sizing: border-box;
  border-radius: 100%;
  font-size: 25px;
  font-weight: 500;
  color: #B2B2B2;
  background: #fff;
  border: 1px solid #B2B2B2;
  transition: color .3s, background .3s, border-color .3s;
}
.flow__content__list__item.active .flow__content__list__item__num {
  color: #fff;
  background: #000;
  border-color: #000;
}
.flow__content__list__item__heading {
  grid-area: heading;
  font-size: clamp(18px, calc(28 / 1200 * 100vw), 28px);
  line-height: 1.714285714;
  margin-block: calc((1.714285714 - 1) / 2 * -1em);
}
.flow__content__list__item__copy {
  grid-area: copy;
  font-size: clamp(11px, calc(16 / 1200 * 100vw), 16px);
  line-height: 2.125;
  margin-block: calc((2.125 - 1) / 2 * -1em);
}
.flow__content__list__item__photo {
  grid-area: photo;
}
.flow__content__list__item__btn {
  grid-area: btn;
  margin-top: clamp(45px, calc(75 / 1200 * 100vw), 75px);
}
.flow__content__list__item__btn__link {
  width: 100%;
  min-height: calc(70 / 16 * 1em);
  font-size: clamp(10px, calc(16 / 1200 * 100vw), 16px);
  box-sizing: border-box;
  border-radius: 3px;
  padding: .5em calc(30 / 16 * 1em);
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="6.339" height="12.229" viewBox="0 0 6.339 12.229"><polygon points=".549 12.229 0 11.71 5.298 6.115 0 .52 .549 0 6.339 6.115 .549 12.229" fill="%23dfdfdf"/></svg>') no-repeat center right calc(20 / 16 * 1em)/calc(6 / 16 * 1em) auto #232323;
}
@media screen and (min-width: 481px) and (max-width: 1024px){
  .flow__content__photo {
    width: calc(550 / 1220 * 100%);
  }
}
@media screen and (max-width: 480px){
  .flow {
    padding-block: 50px;
  }
  .flow__heading {
    font-size: 20px;
  }
  .flow__copy {
    font-size: 16px;
    line-height: 2.125;
    margin-top: calc(30px + ((2.125 - 1) / 2 * -1em));
    margin-bottom: calc((2.125 - 1) / 2 * -1em);
  }
  .flow__content {
    width: 100%;
    margin-top: 65px;
    gap: 0;
  }
  .flow__content__list {
    flex: 1 0 100%;
    margin-block: 0;
  }
  .flow__content__list__item {
    grid-template:
      ". num . heading ." auto
      ". . . . ." 15px
      ". . . copy ." auto
      ". . . . ." 30px
      ". . . photo photo" auto
      ". . . btn ." auto
      / 20px 50px 22px minmax(0, 1fr) 20px;
    padding-bottom: 60px;
    background: linear-gradient(0deg, #000, #000) no-repeat top left 44px/1px 100%, linear-gradient(0deg, #B2B2B2, #B2B2B2) no-repeat top left 44px/1px 100%;
  }
  .flow__content__list__item__num {
    height: 50px;
    font-size: 17px;
  }
  .flow__content__list__item__heading {
    font-size: 20px;
  }
  .flow__content__list__item__copy {
    font-size: 16px;
  }
  .flow__content__list__item__btn {
    margin-top: 20px;
  }
  .flow__content__list__item__btn__link {
    font-size: 16px;
    line-height: 1.4375;
  }
}