@charset "utf-8";
ul.flow {
  max-inline-size: max-content;
  padding: 0;
  margin:0 auto;
}
ul.flow li {
  list-style-type: none;
}
ul.flow li dd {
  margin-left: 0;
}

ul.flow {
  padding-left: 120px;
  position: relative;
}
ul.flow::before {
  content: "";
  width: 15px;
  height: 100%;
  background: #eee;
  margin-left: -8px;
  display: block;
  position: absolute;
  top: 0;
  left: 120px;
}
ul.flow > li {
  position: relative;
}
ul.flow > li:not(:last-child) {
  margin-bottom: 4vh;
}
ul.flow > li .icon {
  font-size: 12px;
  color: #fff;
  background: #9A81CC;
  padding: 8px 20px;
  display: block;
  position: absolute;
  top: 0;
  left: -120px;
  z-index: 100;
}
ul.flow > li .icon::after {
  content: "";
  border-style: solid;
  border-width: 5px 0 5px 10px;
  border-color: transparent transparent transparent #9A81CC;
  position: absolute;
  top: 50%;
  left: 100%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
ul.flow > li dl {
  padding-left: 70px;
  position: relative;
}
ul.flow > li dl::before,
ul.flow > li dl::after {
  content: "";
  display: block;
  position: absolute;
  top: 15px;
}
ul.flow > li dl::before {
  width: 7px;
  height: 7px;
  margin-top: -3px;
  background: #9A81CC;
  border-radius: 50%;
  left: -4px;
}
ul.flow > li dl::after {
  width: 50px;
  border-bottom: 1px dashed #999;
  position: absolute;
  left: 5px;
}
ul.flow > li dl dt {
  font-size: 20px;
  font-weight: 600;
  color: #9A81CC;
  margin-bottom: 0;
}




/* ########### 575px(sm)以下 ########### */
@media (max-width: 575px) {
  ul.flow {
    max-inline-size: 100%;
  }
  ul.flow {
    padding-left: 80px;
  }
  ul.flow::before {
    left: 80px;
  }
  ul.flow > li .icon {
    left:-90px;
    padding: 8px;
    z-index: 90;
  }
  ul.flow > li dl {
    padding-left: 35px;
  }
  ul.flow > li dl::after{
    width: 25px;
  }
}
