section.flow01 {
  padding-bottom: 4em;
}
section.flow02, section.flow03 {
  padding-bottom: 8em;
}
section.flow02 .container > div, section.flow03 .container > div {
  background-color: #31B1B0;
  margin-left: 200px;
  padding: 40px;
  border-radius: 1.2em;
  position: relative;
}
section.flow02 .container > div::before, section.flow03 .container > div::before {
  content: "";
  display: block;
  position: absolute;
  left: -200px;
  top: 0;
  width: 120px;
  aspect-ratio: 250/672;
  background: url(../images/pages/flow/img01.png) no-repeat center center;
  background-size: contain;
}
section.flow02 .container > div > div, section.flow03 .container > div > div {
  background-color: white;
  border-radius: 1em;
  padding: 40px 50px;
  margin-bottom: 40px;
}
section.flow02 .container > div > div h3, section.flow03 .container > div > div h3 {
  padding-bottom: 0.3em;
}
section.flow02 .container > div > div h3 span, section.flow03 .container > div > div h3 span {
  font-weight: 700;
}
section.flow02 .container > div > div h3 span:nth-child(2), section.flow02 .container > div > div h3 span:nth-child(3), section.flow03 .container > div > div h3 span:nth-child(2), section.flow03 .container > div > div h3 span:nth-child(3) {
  font-size: 240%;
}
section.flow02 .container > div > div h3 span:nth-child(2), section.flow03 .container > div > div h3 span:nth-child(2) {
  color: #31B1B0;
  padding-left: 0.1em;
}
section.flow02 .container > div > div h3 span:nth-child(3), section.flow03 .container > div > div h3 span:nth-child(3) {
  padding-left: 0.5em;
}
section.flow02 .container > div > div > p:first-child, section.flow03 .container > div > div > p:first-child {
  border: 1px dashed #31B1B0;
  display: inline-block;
  padding: 0.5em 1em;
  margin-bottom: 0.5em;
  color: #31B1B0;
}
section.flow02 .container > div > div > p:first-child span::before, section.flow03 .container > div > div > p:first-child span::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  background-color: #31B1B0;
  -webkit-mask: url(../svgs/icon06.svg) no-repeat center center;
          mask: url(../svgs/icon06.svg) no-repeat center center;
  -webkit-mask-size: contain;
          mask-size: contain;
  padding-left: 0.5em;
}
section.flow02 .container > div > div > p:first-child span:first-child, section.flow03 .container > div > div > p:first-child span:first-child {
  padding-right: 1em;
}
section.flow02 .container > div > div > p:first-child span:first-child.gray, section.flow03 .container > div > div > p:first-child span:first-child.gray {
  color: #DFDFDF;
}
section.flow02 .container > div > div > p:first-child span:first-child.gray::before, section.flow03 .container > div > div > p:first-child span:first-child.gray::before {
  background-color: #DFDFDF;
}
section.flow02 .container > div > div > p:first-child span:last-child::before, section.flow03 .container > div > div > p:first-child span:last-child::before {
  background: url(../svgs/icon07.svg) no-repeat center center;
  background-size: contain;
}
section.flow02 .container > div > div > p:first-child span:last-child.gray, section.flow03 .container > div > div > p:first-child span:last-child.gray {
  color: #DFDFDF;
}
section.flow02 .container > div > div > p:first-child span:last-child.gray::before, section.flow03 .container > div > div > p:first-child span:last-child.gray::before {
  background: url(../svgs/icon07gray.svg) no-repeat center center;
  background-size: contain;
}
section.flow02 .container > div > div > div, section.flow03 .container > div > div > div {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
section.flow02 .container > div > div > div img, section.flow03 .container > div > div > div img {
  width: 250px;
  height: auto;
  margin-right: 1em;
}
section.flow02 .container > div > div > div > div ul, section.flow03 .container > div > div > div > div ul {
  list-style: disc;
  padding-left: 1.5em;
  padding-bottom: 1em;
}
section.flow03 {
  padding-top: 4em;
  background-color: #F6F6F6;
}
section.flow03 .container > div::before {
  background: url(../images/pages/flow/img02.png) no-repeat center center;
  background-size: contain;
}
section.flow04 {
  padding-bottom: 6em;
}
section.flow04 .container {
  display: flex;
  justify-content: space-between;
}
section.flow04 .container p {
  width: 47%;
}
section.flow04 .container p a {
  display: block;
  border: 1px solid #31B1B0;
  padding: 0.8em 1em;
  font-size: 135%;
  color: #31B1B0;
  font-weight: 700;
  background-color: white;
  transition: background-color 300ms ease;
  position: relative;
}
section.flow04 .container p a::after {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  position: absolute;
  right: 1em;
  top: calc(50% - 0.5em);
  background-color: #31B1B0;
  -webkit-mask: url(../svgs/arrow05.svg) no-repeat center center;
  mask: url(../svgs/arrow05.svg) no-repeat center center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
section.flow04 .container p a:hover {
  background-color: #f5ffff;
  transition: background-color 300ms ease;
}

@media screen and (max-width: 1000px) {
  section.flow02 .container > div, section.flow03 .container > div {
    margin-left: 140px;
    padding: 40px 3%;
  }
  section.flow02 .container > div::before, section.flow03 .container > div::before {
    left: -140px;
  }
  section.flow02 .container > div > div, section.flow03 .container > div > div {
    padding: 40px 20px;
  }
}
@media screen and (max-width: 768px) {
  section.flow02, section.flow03 {
    padding-top: 5em;
  }
  section.flow02 .container, section.flow03 .container {
    padding: 0 3%;
  }
  section.flow02 .container > div, section.flow03 .container > div {
    margin-left: 0;
    padding: 40px 3%;
    position: relative;
    z-index: 2;
  }
  section.flow02 .container > div::before, section.flow03 .container > div::before {
    left: initial;
    right: 6vw;
    top: -160px;
    z-index: -1;
  }
  section.flow02 .container > div::after, section.flow03 .container > div::after {
    content: "";
    display: block;
    width: 200px;
    height: 40px;
    background-color: #31B1B0;
    position: absolute;
    z-index: 1;
    right: 1em;
    top: 0;
  }
  section.flow02 .container > div > div, section.flow03 .container > div > div {
    padding: 40px 3%;
  }
  section.flow04 .container {
    display: block;
  }
  section.flow04 .container p {
    width: 90%;
    margin: 0 auto;
  }
  section.flow04 .container p:first-child {
    margin-bottom: 2em;
  }
}
@media screen and (max-width: 600px) {
  section.flow02 .container > div > div h3 span:nth-child(2), section.flow02 .container > div > div h3 span:nth-child(3), section.flow03 .container > div > div h3 span:nth-child(2), section.flow03 .container > div > div h3 span:nth-child(3) {
    font-size: 6.8vw;
  }
  section.flow02 .container > div > div > div, section.flow03 .container > div > div > div {
    display: block;
  }
  section.flow02 .container > div > div > div img, section.flow03 .container > div > div > div img {
    width: 100%;
    height: auto;
    margin-bottom: 1em;
  }
}