.c-page {
  overflow: hidden;
}

.sp-only {
  display: none;
}

.m-container.-lg {
  max-width: calc(1498px + var(--m-container-padding));
}
.m-container.-xl {
  max-width: calc(1560px + var(--m-container-padding));
}
.m-container.-sm {
  max-width: calc(840px + var(--m-container-padding));
}
.m-container img {
  max-width: 100%;
}

.step .c-heading {
  margin-bottom: 64px;
}

.step-lead {
  margin-bottom: 48px;
}
.step-lead p {
  text-align: center;
}

.step-lead__title {
  font-size: 32px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px;
  margin-bottom: 48px;
}

.step-icn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 160px;
  height: 160px;
  color: var(--v-color-white);
  background: url("./ill-free01.png") no-repeat center/contain;
}
.step-icn:nth-child(2) {
  background-image: url("./ill-free02.png");
}
.step-icn:nth-child(3) {
  background-image: url("./ill-free03.png");
}

.step-sub {
  color: var(--v-color-red);
  font-size: 56px;
}

.step-sm {
  font-size: 32px;
  color: var(--v-color-text);
}

.step-item {
  background-color: var(--v-color-white);
  padding: 40px;
  border-radius: 40px;
  position: relative;
}
.step-item:not(:last-child) {
  margin-bottom: 64px;
}
.step-item:not(:last-child)::after {
  content: "";
  display: block;
  background: var(--v-color-red);
  height: 13.8564064606px;
  width: 40px;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  bottom: -40px;
  left: 50%;
  -webkit-transform: translate(-50%, 0%);
          transform: translate(-50%, 0%);
}
.step-item:nth-child(3) .c-button {
  margin-top: 40px;
}

.step-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 24px;
}

.step-flex__item:nth-child(1) {
  width: 240px;
  text-align: center;
}
.step-flex__item:nth-child(2) {
  width: calc(100% - 264px);
}
.step-flex__item .sm {
  font-size: var(--v-fs-main-small);
}

.step-flex__item--img.-num01 {
  max-width: 203px;
}
.step-flex__item--img.-num02 {
  max-width: 138px;
}
.step-flex__item--img.-num03 {
  max-width: 125px;
}
.step-flex__item--img.-num04 {
  max-width: 191px;
}

.step-num {
  font-size: var(--v-fs-main-big);
  color: var(--v-color-red);
  line-height: var(--v-lh-heading);
}
.step-num::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 100%;
  background-color: var(--v-color-red);
  margin-right: 3px;
  position: relative;
  top: -2px;
}

.step-title {
  font-size: var(--v-fs-h3);
  line-height: var(--v-lh-heading);
  margin-bottom: 16px;
}
.step-title a {
  color: var(--v-color-red);
}

.step-cv {
  margin-top: 40px;
  gap: 40px;
}

.step-cv__item {
  padding: 24px;
  border: 1px solid var(--v-color-red);
  border-radius: 56px;
  text-align: center;
}
.step-cv__item .c-button {
  margin-bottom: 16px;
}
.step-cv__item p a {
  color: var(--v-color-red);
}

.step-cv__title {
  font-size: var(--v-fs-h4);
  margin-bottom: 24px;
}
.step-cv__title span {
  font-size: 20px;
  color: var(--v-color-red);
  display: block;
}

.step-cv__tel {
  font-size: 48px;
  color: var(--v-color-red);
  margin-top: 40px;
  margin-bottom: 32px;
}
.step-cv__tel i {
  margin-right: 16px;
  position: relative;
  top: -5px;
}
.step-cv__tel a {
  color: var(--v-color-red);
  text-decoration: none;
}

.c-button__icon.-mail::before {
  width: 32px;
  height: 32px;
  background: url("./icn-mail.svg") no-repeat center/contain;
  border-radius: 0;
}
.c-button__icon.-mail::after {
  content: none;
}

.color-red {
  color: var(--v-color-red);
}

.m-container.howto {
  padding: 20px !important;
}

.payment .c-heading {
  margin-bottom: 64px;
}
.payment .c-grid {
  gap: 80px;
}

.payment-item {
  background-color: var(--v-color-bg);
  padding: 40px;
  border-radius: 40px;
  text-align: center;
}
.payment-item .c-button__main {
  padding: 8px 10px;
  width: 100%;
  margin-top: 32px;
  margin-bottom: 16px;
}
.payment-item .annotation_l {
  font-size: var(--v-fs-main-small);
  margin-top: 140px;
}
.payment-item .annotation {
  font-size: var(--v-fs-main-small);
}

.payment-title {
  font-size: var(--v-fs-h3);
  line-height: var(--v-lh-heading);
}

.payment-img01 {
  max-width: 135px !important;
}

.payment-img02 {
  max-width: 130px !important;
}

.application .c-heading {
  margin-bottom: 64px;
}
.application .c-grid {
  gap: 80px;
}

.application-lead {
  text-align: center;
  font-size: var(--v-fs-main);
}

.application-item {
  background-color: var(--v-color-white);
  margin-top: 64px;
  padding: 40px;
  border-radius: 40px;
  text-align: center;
  width: 500px;
}
.application-item .c-button__main {
  padding: 8px 10px;
  width: 100%;
  margin-top: 32px;
  margin-bottom: 16px;
}
.application-item .annotation_l {
  font-size: var(--v-fs-main-small);
  margin-top: 140px;
}
.application-item .annotation {
  font-size: var(--v-fs-main-small);
}

.application-title {
  font-size: var(--v-fs-h3);
  line-height: var(--v-lh-heading);
}

.application-img {
  margin: 16px auto;
}

.application-img01 {
  max-width: 300px !important;
}

.application-img02 {
  max-width: 365px !important;
}

.application-qr {
  width: 200px;
  height: 200px;
}

.application-circle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 16px auto;
  padding: 50px;
  gap: 10px;
  width: 300px;
  height: 300px;
  background: #FAF4D9;
  border-radius: 50%;
}

@media (min-width: 751px) and (max-width: 1000px) {
  .step-cv {
    gap: 30px;
  }
  .step-cv__item .c-button__main {
    width: 100%;
    padding: 8px 10px;
  }
  .step-cv__tel {
    font-size: 4.5vw;
  }
  .step-cv__tel i {
    width: 4.5vw;
    display: inline-block;
    margin-right: 1vw;
  }
  .payment .c-grid {
    gap: 30px;
  }
  .application .c-grid {
    gap: 30px;
  }
}
@media screen and (min-width: 751px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}
@media screen and (max-width: 750px) {
  .pc-only {
    display: none;
  }
  .sp-only {
    display: block;
  }
  .c-button__icon.-mail::before {
    width: 24px;
    height: 24px;
  }
  .step-lead p {
    text-align: left;
  }
  .step-lead__title {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 28px 8px;
    margin-bottom: 40px;
    font-size: var(--v-fs-h3);
  }
  .step-icn {
    width: 104px;
    height: 104px;
  }
  .step-sub {
    font-size: 40px;
    display: block;
    width: 100%;
    text-align: center;
  }
  .step-sm {
    font-size: var(--v-fs-h2);
  }
  .step-flex {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
  .step-flex__item:nth-child(1) {
    width: 100%;
  }
  .step-flex__item:nth-child(2) {
    width: 100%;
  }
  .step-num {
    margin-bottom: 4px;
  }
  .step-num::before {
    width: 6px;
    height: 6px;
  }
  .step-item {
    padding: 32px 24px;
    border-radius: 32px;
  }
  .step-item .c-button__main {
    width: 100%;
    padding: 8px 10px;
    gap: 16px;
    text-align: left;
  }
  .step-cv__title span {
    font-size: var(--v-fs-main);
  }
  .step-cv__item {
    padding: 24px 20px;
    border-radius: 24px;
  }
  .step-cv__item p {
    font-size: var(--v-fs-main-small);
  }
  .step-cv__tel {
    font-size: 32px !important;
    margin-top: 28px;
    margin-bottom: 16px;
  }
  .step-cv__tel i {
    display: inline-block;
    width: 28px;
    margin-right: 8px;
  }
  .payment .c-heading {
    margin-bottom: 56px;
  }
  .payment .c-grid {
    gap: 24px;
  }
  .payment-item {
    padding: 24px;
    border-radius: 32px;
  }
  .payment-item p {
    text-align: left;
  }
  .payment-item .c-button__main {
    text-align: left;
  }
  .payment-item .annotation_l {
    margin-top: 5px;
  }
  .payment-title {
    margin-bottom: 16px;
  }
  .payment-img {
    margin-bottom: 16px;
  }
  .application .c-heading {
    margin-bottom: 56px;
  }
  .application .c-grid {
    gap: 4px;
  }
  .application-item {
    margin-top: 24px;
    padding: 24px;
    border-radius: 32px;
    width: 100%;
  }
  .application-item p {
    text-align: left;
  }
  .application-item .c-button__main {
    text-align: left;
  }
  .application-item .annotation_l {
    margin-top: 5px;
  }
  .application-title {
    margin-bottom: 16px;
  }
  .application-img {
    margin-bottom: 16px;
  }
  .application-img01 {
    width: 60% !important;
  }
  .application-img02 {
    width: 60% !important;
  }
  .application-qr {
    max-width: 200px !important;
  }
  .application-circle {
    display: none;
  }
  .pb-50 {
    padding-bottom: 50px !important;
  }
}