.line .contents {
  max-width: 1180px;
  margin: 0 auto;
  padding: 65px 20px 114px;
}
@media screen and (max-width: 768px) {
  .line .contents {
    padding: 5.2631578947vw 2.6315789474vw 10.5263157895vw;
  }
}
.line h2 {
  font-size: 40px;
  color: #000;
  text-align: center;
  line-height: 1;
  margin-bottom: 65px;
}
@media screen and (max-width: 768px) {
  .line h2 {
    font-size: 5.2631578947vw;
    margin-bottom: 4.4736842105vw;
  }
}
.line h2 span {
  position: relative;
  padding: 0 44px;
}
@media screen and (max-width: 768px) {
  .line h2 span {
    display: inline-block;
    padding: 0 8.4210526316vw;
  }
}
.line h2 span::before,
.line h2 span::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 26px;
  height: 65px;
  background-size: cover;
}
@media screen and (max-width: 768px) {
  .line h2 span::before,
  .line h2 span::after {
    width: 9.3421052632vw;
    height: 15.3947368421vw;
  }
}
.line h2 span::before {
  left: 0;
  background-image: url(../images/line/h2_be.png);
}
@media screen and (max-width: 768px) {
  .line h2 span::before {
    background-image: url(../images/line/h2_be_sp.png);
  }
}
.line h2 span::after {
  right: 0;
  background-image: url(../images/line/h2_af.png);
}
@media screen and (max-width: 768px) {
  .line h2 span::after {
    background-image: url(../images/line/h2_af_sp.png);
  }
}
.line h2 em {
  color: #b01f25;
  font-style: normal;
}
@media screen and (max-width: 768px) {
  .line h2 em {
    display: block;
  }
}
.line h2 i {
  font-size: 60px;
  font-style: normal;
}
@media screen and (max-width: 768px) {
  .line h2 i {
    font-size: 7.8947368421vw;
  }
}
.line .blocks .block + .block {
  margin-top: 90px;
}
@media screen and (max-width: 768px) {
  .line .blocks .block + .block {
    margin-top: 10.5263157895vw;
  }
}
.line .blocks .block .title {
  display: flex;
  gap: 30px;
  margin-bottom: 24px;
  padding: 12px 14px;
  background-color: #0f0d56;
}
@media screen and (max-width: 768px) {
  .line .blocks .block .title {
    gap: 6.5789473684vw;
    margin-bottom: 3.9473684211vw;
    padding: 2.1052631579vw 2.1052631579vw;
  }
}
.line .blocks .block .title p {
  font-size: 20px;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .line .blocks .block .title p {
    font-size: 3.9473684211vw;
  }
}
.line .blocks .block .title h3 {
  font-size: 20px;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .line .blocks .block .title h3 {
    font-size: 3.9473684211vw;
  }
}
.line .blocks .block .text {
  font-size: 18px;
  color: #000000;
  margin-bottom: 48px;
  text-align: left;
}
@media screen and (max-width: 768px) {
  .line .blocks .block .text {
    font-size: 3.6842105263vw;
  }
}
.line .blocks .block .inr {
  max-width: 825px;
  width: 100%;
  margin: 0 auto;
}
.line .step01 .row {
  display: flex;
  justify-content: space-between;
  column-gap: 35px;
}
@media screen and (max-width: 768px) {
  .line .step01 .row {
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 0;
    row-gap: 4.4736842105vw;
  }
}
.line .step01 .col {
  max-width: 400px;
  width: 100%;
  background-color: #00b900;
  border-top: 10px solid #00b900;
  border-bottom: 10px solid #00b900;
  border-left: 12px solid #00b900;
  border-right: 12px solid #00b900;
}
@media screen and (max-width: 768px) {
  .line .step01 .col {
    width: 78.9473684211vw;
    border-width: 2.1052631579vw;
  }
}
.line .step01 .col h4 {
  font-size: 24px;
  color: #ffffff;
  text-align: center;
  line-height: 1;
  padding: 18px 5px 28px;
}
@media screen and (max-width: 768px) {
  .line .step01 .col h4 {
    font-size: 4.7368421053vw;
    padding: 3.1578947368vw 0.6578947368vw 4.4736842105vw;
  }
}
.line .step01 .col div {
  min-height: 212px;
  padding: 25px 5px 15px;
  background-color: #fff;
}
@media screen and (max-width: 768px) {
  .line .step01 .col div {
    min-height: 42.1052631579vw;
    padding: 4.4736842105vw 4.4736842105vw 2.6315789474vw;
  }
}
.line .step01 .col div p {
  font-size: 20px;
  color: #0d0d0d;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .line .step01 .col div p {
    font-size: 3.9473684211vw;
  }
}
.line .step01 .col div .btn {
  max-width: 320px;
  width: 100%;
  margin: 22px auto 0;
  display: block;
}
@media screen and (max-width: 768px) {
  .line .step01 .col div .btn {
    max-width: initial;
    width: 100%;
    margin-top: 3.9473684211vw;
  }
}
.line .step01 .col div .qr {
  max-width: 98px;
  width: 100%;
  margin: 10px auto 0;
  display: block;
}
@media screen and (max-width: 768px) {
  .line .step01 .col div .qr {
    max-width: initial;
    width: 19.4736842105vw;
    margin-top: 3.9473684211vw;
  }
}
.line .step02 .img {
  max-width: 425px;
  width: 100%;
  margin-bottom: 70px;
}
@media screen and (max-width: 768px) {
  .line .step02 .img {
    margin-bottom: 7.3684210526vw;
  }
}
.line .step02 .row {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 768px) {
  .line .step02 .row {
    flex-wrap: wrap;
    justify-content: center;
    gap: 7.8947368421vw;
  }
}
.line .step02 .fig {
  max-width: 271px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .line .step02 .fig {
    max-width: initial;
    width: 44.7368421053vw;
  }
}
.line .step02 .col {
  max-width: 499px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .line .step02 .col {
    max-width: initial;
  }
}
.line .step02 .txt {
  font-size: 18px;
  color: #0d0d0d;
  text-align: left;
  margin-bottom: 55px;
}
@media screen and (max-width: 768px) {
  .line .step02 .txt {
    font-size: 3.6842105263vw;
    margin-bottom: 5.7894736842vw;
  }
}
.line .step02 .box {
  padding: 32px 24px 45px;
  background-color: #eeeeee;
  text-align: left;
}
@media screen and (max-width: 768px) {
  .line .step02 .box {
    padding: 6.5789473684vw 4.6052631579vw;
  }
}
.line .step02 .box p {
  font-size: 24px;
  color: #0d0d0d;
  font-weight: bold;
  margin-bottom: 15px;
}
@media screen and (max-width: 768px) {
  .line .step02 .box p {
    font-size: 4.4736842105vw;
    margin-bottom: 1.3157894737vw;
  }
}
.line .step02 .box ul li {
  font-size: 18px;
  color: #0d0d0d;
}
@media screen and (max-width: 768px) {
  .line .step02 .box ul li {
    font-size: 3.6842105263vw;
  }
}
.line .step02 .box ul li span {
  padding-left: 16px;
}
@media screen and (max-width: 768px) {
  .line .step02 .box ul li span {
    padding-left: 0;
    font-size: 3.4210526316vw;
  }
}
.line .step03 .text {
  margin-bottom: 75px !important;
}
@media screen and (max-width: 768px) {
  .line .step03 .text {
    margin-bottom: 6.5789473684vw !important;
  }
}
.line .step03 .row {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 768px) {
  .line .step03 .row {
    flex-wrap: wrap;
    justify-content: center;
    gap: 7.8947368421vw;
  }
}
.line .step03 .fig {
  max-width: 271px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .line .step03 .fig {
    max-width: initial;
    width: 44.7368421053vw;
  }
}
.line .step03 .col {
  max-width: 499px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .line .step03 .col {
    max-width: initial;
  }
}
.line .step03 .txt {
  font-size: 18px;
  color: #0d0d0d;
  text-align: left;
  margin-bottom: 55px;
}
@media screen and (max-width: 768px) {
  .line .step03 .txt {
    font-size: 3.6842105263vw;
    margin-bottom: 0;
  }
}
.line .step03 .label {
  position: relative;
  margin-top: 75px;
  width: 100%;
  padding: 35px 10px 35px 24px;
  background-color: #010442;
  font-size: 36px;
  color: #ffffff;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .line .step03 .label {
    width: 100vw;
    margin: 9.2105263158vw -2.6315789474vw 0;
    padding: 5.2631578947vw 2.6315789474vw 5.2631578947vw 20.7894736842vw;
    font-size: 4.4736842105vw;
    text-align: left;
  }
}
.line .step03 .label .img {
  position: absolute;
  top: -20px;
  left: 100px;
  width: 126px;
}
@media screen and (max-width: 768px) {
  .line .step03 .label .img {
    top: -2.6315789474vw;
    left: 3.9473684211vw;
    width: 16.5789473684vw;
  }
}