/* ------------------------------
    mixin
------------------------------ */
/* ----------------------------
	purchase_flow
------------------------------ */
#sec_purchase_flow {
  margin-bottom: 14rem;
}
#sec_purchase_flow .catch {
  font-size: 1.8rem;
  line-height: 2;
  letter-spacing: 0.14em;
  text-align: center;
}
#sec_purchase_flow .catch._big {
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  #sec_purchase_flow .catch {
    font-size: 1.6rem;
    text-align: left;
  }
  #sec_purchase_flow .catch._big {
    font-size: 1.4rem;
    text-align: center;
  }
}
#sec_purchase_flow .btn_arrow {
  max-width: 55rem;
  margin: 6rem auto 0;
}
#sec_purchase_flow .btn_arrow a {
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  #sec_purchase_flow .btn_arrow {
    max-width: 60vw;
    margin-top: 3rem;
  }
  #sec_purchase_flow .btn_arrow a {
    font-size: 1.6rem;
  }
}
#sec_purchase_flow .flow_wrap {
  max-width: 100rem;
  margin: 8rem auto;
}
@media screen and (max-width: 767px) {
  #sec_purchase_flow .flow_wrap {
    margin: 0 auto 6rem;
  }
}
#sec_purchase_flow .flow_wrap .item {
  position: relative;
  padding-top: 2rem;
}
#sec_purchase_flow .flow_wrap .item::after {
  content: "";
  position: absolute;
  left: 26rem;
  top: 0;
  width: 0;
  height: 100%;
  border-left: 1px solid #ddd;
}
#sec_purchase_flow .flow_wrap .item:first-child::after {
  top: auto;
  bottom: 0;
  height: calc(50% - 2rem);
}
#sec_purchase_flow .flow_wrap .item:last-child::after {
  height: calc(50% + 2rem);
}
@media screen and (max-width: 767px) {
  #sec_purchase_flow .flow_wrap .item {
    padding-top: 5rem;
  }
  #sec_purchase_flow .flow_wrap .item::after {
    left: 0;
  }
  #sec_purchase_flow .flow_wrap .item:first-child::after {
    height: calc(50% - 3rem);
  }
  #sec_purchase_flow .flow_wrap .item:last-child::after {
    height: calc(50% + 3rem);
  }
}
#sec_purchase_flow .flow_wrap .item .ttl_wrap {
  background: #f6f4f0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  min-height: 14rem;
  padding: 4rem 8rem 4rem 12rem;
  border-radius: 100px;
  position: relative;
}
#sec_purchase_flow .flow_wrap .item .ttl_wrap::after {
  content: "";
  position: absolute;
  left: 26rem;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 2rem;
  height: 2rem;
  border-radius: 100%;
  background: #333;
  z-index: 1;
}
#sec_purchase_flow .flow_wrap .item .ttl_wrap .step {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  background: #e75e7e;
  color: #fff;
  width: 9rem;
  height: 9rem;
  padding-top: 0.5em;
  border-radius: 100%;
  margin-right: 6rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 1.2rem;
  line-height: 1.4;
  letter-spacing: 0.1em;
}
#sec_purchase_flow .flow_wrap .item .ttl_wrap .step .big {
  font-size: 2.8rem;
}
#sec_purchase_flow .flow_wrap .item .ttl_wrap .ttl {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 10em;
  font-size: 2.4rem;
  line-height: 1.4;
  letter-spacing: 0.1em;
  text-align: center;
}
#sec_purchase_flow .flow_wrap .item .ttl_wrap .ttl .small {
  display: block;
  font-size: 1.2rem;
}
#sec_purchase_flow .flow_wrap .item .ttl_wrap .txt {
  font-size: 1.3rem;
  line-height: 1.8;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 767px) {
  #sec_purchase_flow .flow_wrap .item .ttl_wrap {
    display: block;
    margin: 0 -5vw 0 -10vw;
    border-radius: 0 100px 100px 0;
    padding: 2rem 4rem 2rem 15vw;
  }
  #sec_purchase_flow .flow_wrap .item .ttl_wrap::after {
    left: 10vw;
    width: 1.5rem;
    height: 1.5rem;
  }
  #sec_purchase_flow .flow_wrap .item .ttl_wrap .step {
    position: absolute;
    right: -2rem;
    top: 0;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    width: 6rem;
    height: 6rem;
    font-size: 1rem;
    line-height: 1.2;
  }
  #sec_purchase_flow .flow_wrap .item .ttl_wrap .step .big {
    font-size: 2rem;
  }
  #sec_purchase_flow .flow_wrap .item .ttl_wrap .ttl {
    text-align: left;
    width: auto;
    margin-bottom: 0.5em;
  }
  #sec_purchase_flow .flow_wrap .item .ttl_wrap .ttl .small {
    display: inline;
    margin-left: 0.5em;
  }
  #sec_purchase_flow .flow_wrap .item .ttl_wrap .txt {
    font-size: 1.2rem;
  }
}
#sec_purchase_flow .flow_wrap .item .img_wrap {
  padding-top: 2rem;
}
@media screen and (max-width: 767px) {
  #sec_purchase_flow .flow_wrap .item .img_wrap {
    padding-top: 5rem;
  }
}
#sec_purchase_flow .flow_wrap .item .img_wrap .img {
  position: relative;
}
#sec_purchase_flow .flow_wrap .item .img_wrap .img img {
  display: block;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  #sec_purchase_flow .flow_wrap .item .img_wrap .img img {
    width: 60vw;
    margin: 0 5vw;
  }
}
#sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon {
  background: #fff;
  color: #e75e7e;
  border: 1px solid #e75e7e;
  position: absolute;
  left: 50%;
  top: 3rem;
  margin-left: 4rem;
  border-radius: 100px;
  padding: 1.5rem 3rem;
  font-size: 1.1rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
#sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 3.8rem;
  width: 1.5rem;
  height: 1px;
  background: #fff;
}
#sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon::after {
  content: "";
  position: absolute;
  left: 4rem;
  top: 100%;
  margin-top: -0.5rem;
  height: 3rem;
  width: 1px;
  background: #e75e7e;
  -webkit-transform: rotate(30deg);
          transform: rotate(30deg);
}
#sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon._left {
  left: auto;
  right: 50%;
  margin-left: 0;
  margin-right: 4rem;
}
#sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon._left::before {
  left: auto;
  right: 3.8rem;
}
#sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon._left::after {
  left: auto;
  right: 4rem;
  -webkit-transform: rotate(-30deg);
          transform: rotate(-30deg);
}
@media screen and (max-width: 767px) {
  #sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon {
    font-size: 0.9rem;
    padding: 1rem 2rem;
    top: -2rem;
  }
  #sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon::before {
    left: 2.8rem;
    width: 1.2rem;
  }
  #sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon::after {
    left: 3rem;
    height: 2rem;
    -webkit-transform: rotate(30deg);
            transform: rotate(30deg);
  }
  #sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon._left::before {
    right: 2.8rem;
  }
  #sec_purchase_flow .flow_wrap .item .img_wrap .img .balloon._left::after {
    right: 3rem;
    -webkit-transform: rotate(-30deg);
            transform: rotate(-30deg);
  }
}