@charset "UTF-8";
:root {
  --color-font: #333;
  --color-black: #000;
  --color-white: #fff;
  --color-primary: #51a199;
  --color-lightGreen: #ddedec;
  --color-lightGreen02: #e7f2f0;
  --color-red: #ce6161;
  --c-line-brand: #4cc764; /* LINE公式ブランドカラー */
}

.mv {
  background: var(--color-lightGreen);
  padding-top: 13rem;
  overflow: hidden;
}
@media only screen and (max-width: 1600px) {
  .mv {
    padding-top: 8.125vw;
  }
}
@media only screen and (max-width: 640px) {
  .mv {
    padding-top: 15.625vw;
  }
}

.mv__top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  gap: 4.53125vw;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (max-width: 640px) {
  .mv__top {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
    padding-bottom: 7.8125vw;
  }
}

.mv__title {
  width: 43.75vw;
  z-index: 2;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .mv__title {
    width: 90%;
    margin: 0 auto;
  }
}
.mv__title::before {
  content: "";
  position: absolute;
  background: url(../images/deco-cloud02.webp) no-repeat center center/contain;
  width: 10.5729166667vw;
  height: 5.78125vw;
  top: 3.5416666667vw;
  right: -11.875vw;
}
@media only screen and (max-width: 640px) {
  .mv__title::before {
    width: 20.3125vw;
    height: 11.09375vw;
    z-index: -1;
    top: 0;
    right: -17.96875vw;
  }
}
.mv__title::after {
  content: "";
  position: absolute;
  background: url(../images/deco-cloud03.webp) no-repeat center center/contain;
  width: 10vw;
  height: 12.1875vw;
  top: 13.9583333333vw;
  right: -11.3541666667vw;
}
@media only screen and (max-width: 640px) {
  .mv__title::after {
    width: 15.625vw;
    height: 19.0625vw;
    top: 17.96875vw;
    right: -16.40625vw;
    z-index: -1;
  }
}

.mv__body {
  position: relative;
}
@media only screen and (max-width: 640px) {
  .mv__body {
    width: 90%;
    margin: 0 auto;
  }
}
.mv__body::before {
  content: "";
  position: absolute;
  background: url(../images/deco-cloud02.webp) no-repeat center center/contain;
  width: 9.1666666667vw;
  height: 5vw;
  top: 7.8125vw;
  left: -7.5520833333vw;
}
@media only screen and (max-width: 640px) {
  .mv__body::before {
    width: 27.5vw;
    height: 15vw;
    top: 12.8125vw;
  }
}
.mv__body::after {
  content: "";
  position: absolute;
  background: url(../images/deco-cloud01.webp) no-repeat center center/contain;
  width: 15.15625vw;
  height: 7.96875vw;
  top: -1.5625vw;
  right: -3.125vw;
}
@media only screen and (max-width: 640px) {
  .mv__body::after {
    width: 39.0625vw;
    height: 20.46875vw;
    right: -18.75vw;
    top: 0;
  }
}

.mv__lead {
  isolation: isolate;
}
@media only screen and (max-width: 640px) {
  .mv__lead {
    text-align: center;
  }
}

.mv__lead-red {
  color: var(--color-black);
  font-size: 1.875vw;
  font-weight: 700;
  line-height: 1.3;
}
@media only screen and (max-width: 640px) {
  .mv__lead-red {
    font-size: 5.3125vw;
  }
}
.mv__lead-red .-middle {
  color: var(--color-red);
}
.mv__lead-red .-large {
  color: var(--color-red);
  font-size: 5.2083333333vw;
}
@media only screen and (max-width: 640px) {
  .mv__lead-red .-large {
    font-size: 14.0625vw;
  }
}
.mv__lead-red .-small {
  color: var(--color-red);
  font-size: 1.25vw;
}
@media only screen and (max-width: 640px) {
  .mv__lead-red .-small {
    font-size: 3.75vw;
  }
}

.mv__lead__primary {
  color: var(--color-black);
  font-size: 1.875vw;
  font-weight: 700;
  line-height: 1.3;
}
@media only screen and (max-width: 640px) {
  .mv__lead__primary {
    font-size: 5.3125vw;
    margin-top: -1.25vw;
    line-height: 1.5;
  }
}
.mv__lead__primary .-large {
  color: var(--color-primary);
  font-size: 2.7083333333vw;
}
@media only screen and (max-width: 640px) {
  .mv__lead__primary .-large {
    font-size: 7.5vw;
  }
}

.mv__text {
  font-size: 1.25vw;
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: 0.05em;
  margin-top: 2.2916666667vw;
}
@media only screen and (max-width: 640px) {
  .mv__text {
    font-size: 3.75vw;
    letter-spacing: normal;
    line-height: 1.8;
    margin-top: 1.5625vw;
    text-align: center;
  }
}

.mv__bottom {
  background: var(--color-primary);
  margin-top: -11.9791666667vw;
  padding: 2.6041666667vw 7.65625vw 3.125vw;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .mv__bottom {
    margin-top: 0;
    padding: 7.8125vw 6.25vw;
  }
}
.mv__bottom::before {
  content: "";
  position: absolute;
  background: url(../images/deco-house01.webp) repeat-x center center/contain;
  width: 100%;
  height: 4.5833333333vw;
  left: 0;
  top: -4.1666666667vw;
  z-index: 1;
}
@media only screen and (max-width: 640px) {
  .mv__bottom::before {
    background-size: cover;
    height: 7.8125vw;
    top: -7.5vw;
  }
}

.mv__bottom-account {
  position: relative;
  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: 1.25vw;
  width: 33.3333333333vw;
  height: 5.9375vw;
  padding: 0 4.1666666667vw;
  border-radius: 100vw;
  background: var(--color-red);
  color: var(--color-white);
  font-size: 2.0833333333vw;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media only screen and (max-width: 640px) {
  .mv__bottom-account {
    width: 87.5vw;
    gap: 2.5vw;
    height: 15vw;
    padding: 0 8.75vw;
    font-size: 4.6875vw;
  }
}
.mv__bottom-account img {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2.8645833333vw;
  height: auto;
}
@media only screen and (max-width: 640px) {
  .mv__bottom-account img {
    width: 6.875vw;
  }
}
.mv__bottom-account::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 3.125vw;
  width: 0.46875vw;
  height: 0.9895833333vw;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background: url("../images/icon-arrow.svg") no-repeat center/contain;
}
@media only screen and (max-width: 640px) {
  .mv__bottom-account::after {
    right: 4.375vw;
    width: 1.40625vw;
    height: 2.96875vw;
  }
}

.mv__contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.25vw;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 0.7291666667vw;
}
@media only screen and (max-width: 640px) {
  .mv__contact {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0vw;
    margin-top: 3.125vw;
  }
}

.mv__contact-txt {
  color: var(--color-white);
  font-size: 1.0416666667vw;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 640px) {
  .mv__contact-txt {
    font-size: 3.4375vw;
  }
}

.mv__contact-phone {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5729166667vw;
}
@media only screen and (max-width: 640px) {
  .mv__contact-phone {
    gap: 1.71875vw;
  }
}
.mv__contact-phone img {
  width: 2.4479166667vw;
  height: auto;
  padding-top: 0.78125vw;
}
@media only screen and (max-width: 640px) {
  .mv__contact-phone img {
    width: 7.8125vw;
    padding-top: 2.34375vw;
  }
}

.mv__contact-num {
  color: var(--color-white);
  font-size: 2.9166666667vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 640px) {
  .mv__contact-num {
    font-size: 9.375vw;
  }
}

.features {
  background: var(--color-lightGreen);
}

.features__container {
  padding: 11rem 0 14.6rem;
}
@media only screen and (max-width: 1200px) {
  .features__container {
    padding: 9.1666666667vw 0 12.1666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .features__container {
    padding: 9.375vw 0;
  }
}

.features__intro {
  border-radius: 2.4rem;
  border: 5px solid var(--color-primary);
  background: var(--color-white);
  padding: 8rem;
  position: relative;
}
@media only screen and (max-width: 1200px) {
  .features__intro {
    border-radius: 2vw;
    padding: 6.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .features__intro {
    padding: 6.25vw;
    border: 0.78125vw solid var(--color-primary);
  }
}
.features__intro::after {
  content: "";
  position: absolute;
  background: url(../images/img-features01.webp) no-repeat center center/contain;
  width: 37.5rem;
  height: 44.3rem;
  bottom: -12rem;
  right: -2.7rem;
}
@media only screen and (max-width: 1200px) {
  .features__intro::after {
    width: 31.25vw;
    height: 36.9166666667vw;
    bottom: -10vw;
    right: -2.25vw;
  }
}
@media only screen and (max-width: 640px) {
  .features__intro::after {
    width: 35.9375vw;
    height: 42.34375vw;
    right: -3.125vw;
    bottom: -3.125vw;
  }
}

.features__intro-title {
  color: var(--color-primary);
  font-size: 4.2rem;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
@media only screen and (max-width: 1200px) {
  .features__intro-title {
    font-size: 3.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .features__intro-title {
    font-size: 5.625vw;
    line-height: 1.5;
  }
}

.features__intro-body {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.9;
  margin-top: 3rem;
}
@media only screen and (max-width: 1200px) {
  .features__intro-body {
    font-size: 2vw;
    margin-top: 2.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .features__intro-body {
    font-size: 3.75vw;
    letter-spacing: normal;
  }
}
.features__intro-body .is-accent {
  color: var(--color-red);
}

.features__title {
  color: var(--color-primary);
  font-size: 4.2rem;
  font-weight: 700;
  line-height: normal;
  text-align: center;
  margin-top: 4.8rem;
}
@media only screen and (max-width: 1200px) {
  .features__title {
    font-size: 3.5vw;
    margin-top: 4vw;
  }
}
@media only screen and (max-width: 640px) {
  .features__title {
    font-size: 5.625vw;
    margin-top: 7.8125vw;
  }
}
.features__title strong {
  font-size: 8.2rem;
}
@media only screen and (max-width: 1200px) {
  .features__title strong {
    font-size: 6.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .features__title strong {
    font-size: 10.9375vw;
  }
}

.features__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.2rem;
  margin-top: 7.2rem;
}
@media only screen and (max-width: 1200px) {
  .features__grid {
    gap: 2.6666666667vw;
    margin-top: 6vw;
  }
}
@media only screen and (max-width: 640px) {
  .features__grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 9.375vw;
    margin-top: 6.25vw;
  }
}

.point-card {
  border-radius: 1.2rem;
  border: 5px solid var(--color-primary);
  background: var(--color-white);
  padding: 0 2rem 16rem;
  position: relative;
}
@media only screen and (max-width: 1200px) {
  .point-card {
    border-radius: 1vw;
    padding: 0 1.6666666667vw 13.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-card {
    border: 0.78125vw solid var(--color-primary);
    padding: 0 3.125vw 3.125vw;
    border-radius: 1.875vw;
  }
}
@media only screen and (max-width: 1200px) {
  .point-card:nth-child(1) .point-card__title {
    letter-spacing: normal;
  }
}
.point-card:nth-child(1) .point-card__title strong {
  font-size: 4.8rem;
}
@media only screen and (max-width: 1200px) {
  .point-card:nth-child(1) .point-card__title strong {
    font-size: 4vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-card:nth-child(1) .point-card__title strong {
    font-size: 6.25vw;
  }
}
.point-card:nth-child(1) .point-card__img {
  width: 14.7rem;
  bottom: 0;
}
@media only screen and (max-width: 1200px) {
  .point-card:nth-child(1) .point-card__img {
    width: 12.25vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-card:nth-child(1) .point-card__img {
    width: 29.6875vw;
    margin-bottom: -3.4375vw;
  }
}
.point-card:nth-child(2) .point-card__body {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.point-card:nth-child(2) .point-card__img {
  width: 19.5rem;
  bottom: 2.6rem;
}
@media only screen and (max-width: 1200px) {
  .point-card:nth-child(2) .point-card__img {
    width: 16.25vw;
    bottom: 2.1666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-card:nth-child(2) .point-card__img {
    width: 29.6875vw;
    margin-bottom: 7.8125vw;
  }
}
.point-card:nth-child(3) .point-card__img {
  width: 10.2rem;
  bottom: 0;
}
@media only screen and (max-width: 1200px) {
  .point-card:nth-child(3) .point-card__img {
    width: 8.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-card:nth-child(3) .point-card__img {
    width: 21.875vw;
    margin-bottom: -3.4375vw;
  }
}

.point-badge {
  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;
  width: 10.5rem;
  height: 10.5rem;
  border: 4px solid var(--color-primary);
  background: var(--color-white);
  border-radius: 100vw;
  margin: -5rem auto 0;
}
@media only screen and (max-width: 1200px) {
  .point-badge {
    width: 8.75vw;
    height: 8.75vw;
    margin: -4.1666666667vw auto 0;
  }
}
@media only screen and (max-width: 640px) {
  .point-badge {
    width: 15.625vw;
    height: 15.625vw;
    margin-top: -7.8125vw;
    border: 0.625vw solid var(--color-primary);
  }
}

.point-badge__label {
  color: var(--color-primary);
  text-align: center;
  font-size: 2rem;
  font-weight: 900;
  line-height: normal;
  letter-spacing: 0.05em;
  margin-top: 1rem;
}
@media only screen and (max-width: 1200px) {
  .point-badge__label {
    font-size: 1.6666666667vw;
    margin-top: 0.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-badge__label {
    font-size: 3.125vw;
    margin-top: 1.5625vw;
  }
}

.point-badge__num {
  color: var(--color-primary);
  font-size: 6rem;
  font-weight: 500;
  line-height: normal;
  margin-top: -3rem;
}
@media only screen and (max-width: 1200px) {
  .point-badge__num {
    font-size: 5vw;
    margin-top: -2.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-badge__num {
    font-size: 7.1875vw;
    margin-top: -3.125vw;
  }
}

.point-card__body {
  text-align: center;
  margin-top: 2.5rem;
}
@media only screen and (max-width: 1200px) {
  .point-card__body {
    margin-top: 2.0833333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-card__body {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas: "title img" "desc img";
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
    -webkit-column-gap: 2.5vw;
       -moz-column-gap: 2.5vw;
            column-gap: 2.5vw;
    text-align: left;
    margin-top: 0vw;
  }
}

.point-card__title {
  color: var(--color-primary);
  text-align: center;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.3;
}
@media only screen and (max-width: 1200px) {
  .point-card__title {
    font-size: 2.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-card__title {
    grid-area: title;
    text-align: left;
    font-size: 4.375vw;
  }
}
.point-card__title strong {
  font-size: 4rem;
}
@media only screen and (max-width: 1200px) {
  .point-card__title strong {
    font-size: 3.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-card__title strong {
    font-size: 5.625vw;
  }
}

.point-card__desc {
  color: var(--color-black);
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: normal;
  margin-top: 1.4rem;
}
@media only screen and (max-width: 1200px) {
  .point-card__desc {
    font-size: 1.6666666667vw;
    margin-top: 1.1666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .point-card__desc {
    grid-area: desc;
    text-align: left;
    font-size: 3.4375vw;
    margin-top: 1.5625vw;
    font-weight: 500;
  }
}

.point-card__img {
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media only screen and (max-width: 640px) {
  .point-card__img {
    grid-area: img;
    align-self: end;
    position: static;
    margin-top: 0;
    -webkit-transform: none;
            transform: none;
  }
}

.membership {
  padding: 11rem 0;
}
@media only screen and (max-width: 1200px) {
  .membership {
    padding: 9.1666666667vw 0;
  }
}
@media only screen and (max-width: 640px) {
  .membership {
    padding: 12.5vw 0;
  }
}

.membership__card {
  position: relative;
  margin-top: 3.6rem;
  border: 5px solid var(--color-primary);
  border-radius: 2.4rem;
  background: var(--color-white);
  padding: 9rem 17.4rem;
}
@media only screen and (max-width: 1200px) {
  .membership__card {
    margin-top: 3vw;
    border-radius: 2vw;
    padding: 7.5vw 14.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .membership__card {
    margin-top: 6.25vw;
    border: 0.625vw solid var(--color-primary);
    border-radius: 3.125vw;
    padding: 7.8125vw 5.46875vw;
  }
}

.membership__heading {
  position: absolute;
  left: 50%;
  top: 0;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  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;
  background: var(--color-primary);
  color: var(--color-white);
  padding: 1.5rem 6rem;
  border-radius: 100vw;
  font-size: 4.2rem;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media only screen and (max-width: 1200px) {
  .membership__heading {
    padding: 1.25vw 5vw;
    font-size: 3.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .membership__heading {
    padding: 2.1875vw 7.5vw;
    font-size: 5.625vw;
  }
}

.membership__rows {
  width: 100%;
}

.membership__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 3.2rem 0;
  border-bottom: 1px dashed var(--color-primary);
}
.membership__row:first-child {
  padding-top: 0;
}
.membership__row:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
@media only screen and (max-width: 1200px) {
  .membership__row {
    padding: 2.6666666667vw 0;
  }
}
@media only screen and (max-width: 640px) {
  .membership__row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 0.78125vw;
    padding: 3.125vw 0;
  }
}
.membership__row dt {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 22.1rem;
  color: var(--color-primary);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 1200px) {
  .membership__row dt {
    width: 18.4166666667vw;
    font-size: 2vw;
  }
}
@media only screen and (max-width: 640px) {
  .membership__row dt {
    width: 100%;
    font-size: 4.6875vw;
  }
}
.membership__row dd {
  width: calc(100% - 22.1rem);
  color: var(--color-font);
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 1200px) {
  .membership__row dd {
    width: calc(100% - 18.4166666667vw);
    font-size: 1.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .membership__row dd {
    width: 100%;
    font-size: 4.0625vw;
    line-height: 1.5;
  }
}
.membership__row dd small {
  display: block;
  margin-top: 1.6rem;
  color: var(--color-font);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 1200px) {
  .membership__row dd small {
    margin-top: 1.3333333333vw;
    font-size: 1.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .membership__row dd small {
    margin-top: 0.78125vw;
    font-size: 3.4375vw;
    letter-spacing: normal;
    text-align: center;
  }
}
.membership__row .btn {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.6rem;
  width: 52.5rem;
  max-width: 100%;
  height: 9.4rem;
  padding: 0 4.8rem;
  border: 1px solid var(--color-red);
  border-radius: 100vw;
  background: var(--color-red);
  color: var(--color-white);
  font-size: 3.4rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media only screen and (max-width: 1200px) {
  .membership__row .btn {
    gap: 1.3333333333vw;
    width: 43.75vw;
    height: 7.8333333333vw;
    padding: 0 4vw;
    font-size: 2.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .membership__row .btn {
    gap: 2.1875vw;
    width: 100%;
    height: 15vw;
    padding: 0 9.375vw;
    font-size: 4.6875vw;
  }
}
.membership__row .btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 4rem;
  width: 1.1rem;
  height: 2.1rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background: url("../images/icon-arrow.svg") no-repeat center/contain;
}
@media only screen and (max-width: 1200px) {
  .membership__row .btn::after {
    right: 3.3333333333vw;
    width: 0.9166666667vw;
    height: 1.75vw;
  }
}
@media only screen and (max-width: 640px) {
  .membership__row .btn::after {
    right: 4.375vw;
    width: 1.71875vw;
    height: 3.28125vw;
  }
}
.membership__row .btn__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 4.5rem;
  height: auto;
}
@media only screen and (max-width: 1200px) {
  .membership__row .btn__icon {
    width: 3.75vw;
  }
}
@media only screen and (max-width: 640px) {
  .membership__row .btn__icon {
    width: 6.875vw;
  }
}

.merit__block {
  position: relative;
  background: var(--color-lightGreen);
  padding: 11rem 0 12rem;
  overflow: hidden;
}
@media only screen and (max-width: 1200px) {
  .merit__block {
    padding: 9.1666666667vw 0 10vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit__block {
    padding: 12.5vw 0 12.5vw;
  }
}

.section-heading {
  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: 93.9rem;
  max-width: 100%;
  min-height: 12.1rem;
  margin: 0 auto;
  padding: 1.5rem 4rem;
  border-radius: 100vw;
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 4.2rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.1em;
  text-align: center;
}
@media only screen and (max-width: 1200px) {
  .section-heading {
    width: 78.25vw;
    min-height: 10.0833333333vw;
    font-size: 3.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .section-heading {
    width: 100%;
    min-height: 0;
    padding: 3.4375vw 4.6875vw;
    border-radius: 9.375vw;
    font-size: 5.3125vw;
  }
}
.section-heading span {
  letter-spacing: 0.3em;
}
.section-heading strong {
  font-size: 8.2rem;
  font-weight: 700;
}
@media only screen and (max-width: 1200px) {
  .section-heading strong {
    font-size: 6.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .section-heading strong {
    font-size: 9.375vw;
  }
}

.merit-1 {
  margin-top: 7rem;
}
@media only screen and (max-width: 1200px) {
  .merit-1 {
    margin-top: 5.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-1 {
    margin-top: 7.8125vw;
  }
}

.merit-1 .merit__bottom {
  position: relative;
  z-index: 1;
  background: var(--color-white);
  border-radius: 2.4rem;
  padding: 6rem 5.2rem 46rem;
  margin-top: 6.7rem;
}
@media only screen and (max-width: 1200px) {
  .merit-1 .merit__bottom {
    border-radius: 2vw;
    padding: 5vw 4.3333333333vw 38.3333333333vw;
    margin-top: 5.5833333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-1 .merit__bottom {
    border-radius: 2.5vw;
    padding: 6.25vw 4.6875vw 65.625vw;
  }
}

.merit__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 4rem;
}
@media only screen and (max-width: 1200px) {
  .merit__body {
    gap: 3.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit__body {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 2.34375vw;
  }
}

.merit__text {
  width: 64rem;
  max-width: 100%;
}
@media only screen and (max-width: 1200px) {
  .merit__text {
    width: 53.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit__text {
    width: 100%;
  }
}

.merit-heading {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2.7rem;
}
@media only screen and (max-width: 1200px) {
  .merit-heading {
    gap: 2.25vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-heading {
    gap: 3.125vw;
  }
}

.number-badge {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  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: 10rem;
  height: 10rem;
  border-radius: 50%;
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 6rem;
  font-weight: 700;
  line-height: 1;
}
@media only screen and (max-width: 1200px) {
  .number-badge {
    width: 8.3333333333vw;
    height: 8.3333333333vw;
    font-size: 5vw;
  }
}
@media only screen and (max-width: 640px) {
  .number-badge {
    width: 13.75vw;
    height: 13.75vw;
    font-size: 8.125vw;
  }
}

.merit-heading__title {
  color: var(--color-primary);
  font-size: 4.2rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
@media only screen and (max-width: 1200px) {
  .merit-heading__title {
    font-size: 3.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-heading__title {
    font-size: 5.3125vw;
    white-space: normal;
  }
}
.merit-heading__title small {
  font-size: 3.6rem;
  font-weight: 700;
}
@media only screen and (max-width: 1200px) {
  .merit-heading__title small {
    font-size: 3vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-heading__title small {
    font-size: 3.75vw;
  }
}

.merit__lead {
  color: var(--color-font);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
  margin-top: 2rem;
}
@media only screen and (max-width: 1200px) {
  .merit__lead {
    font-size: 1.6666666667vw;
    margin-top: 1.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit__lead {
    font-size: 4.0625vw;
    margin-top: 2.5vw;
    line-height: 1.6;
  }
}

.merit__img {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 36rem;
  height: auto;
}
@media only screen and (max-width: 1200px) {
  .merit__img {
    width: 30vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit__img {
    width: 50vw;
    margin: 0 auto;
  }
}

.empathy-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.2rem;
  padding: 2.8rem 3.2rem;
  border-radius: 1.6rem;
  background: var(--color-lightGreen02);
  text-align: center;
}
@media only screen and (max-width: 1200px) {
  .empathy-box {
    gap: 1vw;
    padding: 2.3333333333vw 2.6666666667vw;
    border-radius: 1.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .empathy-box {
    padding: 4.375vw 3.75vw;
  }
}
.empathy-box > p:first-child {
  color: var(--color-primary);
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.5;
}
@media only screen and (max-width: 1200px) {
  .empathy-box > p:first-child {
    font-size: 2.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .empathy-box > p:first-child {
    font-size: 4.0625vw;
    letter-spacing: normal;
  }
}
.empathy-box .body-text {
  color: var(--color-font);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.05em;
  margin-top: 1.6rem;
}
@media only screen and (max-width: 1200px) {
  .empathy-box .body-text {
    font-size: 1.6666666667vw;
    margin-top: 1.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .empathy-box .body-text {
    font-size: 3.75vw;
    text-align: left;
    margin-top: 1.5625vw;
    letter-spacing: normal;
    line-height: 1.6;
  }
}

.merit__caption {
  color: var(--color-black);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  margin-top: 3rem;
}
@media only screen and (max-width: 1200px) {
  .merit__caption {
    font-size: 2vw;
    margin-top: 2.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit__caption {
    font-size: 4.0625vw;
    margin-top: 3.75vw;
  }
}

.merit__gallery {
  position: relative;
  z-index: 2;
  margin-top: -42rem;
}
@media only screen and (max-width: 1200px) {
  .merit__gallery {
    margin-top: -35vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit__gallery {
    margin-top: -62.5vw;
  }
}

.merit-slider {
  overflow: visible;
}
.merit-slider .swiper-slide {
  width: 48rem;
  height: auto;
  border: 1px solid rgba(0, 0, 0, 0.24);
  background: var(--color-white);
  -webkit-box-shadow: 4px 4px 2px rgba(0, 0, 0, 0.08);
          box-shadow: 4px 4px 2px rgba(0, 0, 0, 0.08);
}
@media only screen and (max-width: 1200px) {
  .merit-slider .swiper-slide {
    width: 40vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-slider .swiper-slide {
    width: 71.875vw;
  }
}
.merit-slider .swiper-slide img {
  display: block;
  width: 100%;
  height: auto;
}

.merit-slider__pagination {
  position: static;
  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: 1rem;
  margin-top: 3rem;
}
@media only screen and (max-width: 1200px) {
  .merit-slider__pagination {
    gap: 0.8333333333vw;
    margin-top: 2.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-slider__pagination {
    gap: 1.5625vw;
    margin-top: 3.75vw;
  }
}

.merit-slider__bullet {
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: var(--color-primary);
  opacity: 0.3;
  cursor: pointer;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media only screen and (max-width: 1200px) {
  .merit-slider__bullet {
    width: 0.8333333333vw;
    height: 0.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-slider__bullet {
    width: 1.875vw;
    height: 1.875vw;
  }
}
.merit-slider__bullet.is-active {
  opacity: 1;
}

.merit--white {
  background: var(--color-white);
}

.merit-2 {
  padding: 11rem 0;
}
@media only screen and (max-width: 1200px) {
  .merit-2 {
    padding: 9.1666666667vw 0;
  }
}
@media only screen and (max-width: 640px) {
  .merit-2 {
    padding: 12.5vw 0;
  }
}
@media only screen and (max-width: 640px) {
  .merit-2 .merit__img {
    width: 43.75vw;
  }
}

.merit__body.-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
@media only screen and (max-width: 640px) {
  .merit__body.-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

.merit-2 .merit__lead {
  margin-top: 5rem;
}
@media only screen and (max-width: 1200px) {
  .merit-2 .merit__lead {
    margin-top: 4.1666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-2 .merit__lead {
    margin-top: 2.5vw;
  }
}

.merit-2 .body-text {
  color: var(--color-font);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
  margin-top: 6rem;
}
@media only screen and (max-width: 1200px) {
  .merit-2 .body-text {
    font-size: 1.6666666667vw;
    margin-top: 5vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-2 .body-text {
    font-size: 4.0625vw;
    margin-top: 6.25vw;
    line-height: 1.6;
  }
}

.empathy-box__title {
  font-size: 2.8rem;
  line-height: 1.5;
  text-align: center;
  white-space: normal;
  margin-top: 6rem;
}
@media only screen and (max-width: 1200px) {
  .empathy-box__title {
    font-size: 2.3333333333vw;
    margin-top: 5vw;
  }
}
@media only screen and (max-width: 640px) {
  .empathy-box__title {
    font-size: 4.375vw;
    margin-top: 7.5vw;
  }
}

.bubble-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2rem;
  margin-top: 3.2rem;
}
@media only screen and (max-width: 1200px) {
  .bubble-row {
    gap: 2vw;
    margin-top: 2.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .bubble-row {
    gap: 2.5vw;
    margin-top: 4.375vw;
  }
}

.bubble {
  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: 35rem;
  max-width: 100%;
  padding: 1.6rem 2.2rem;
  border-radius: 100vw;
  background: var(--color-lightGreen02);
  color: var(--color-primary);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
  white-space: nowrap;
  text-align: center;
}
@media only screen and (max-width: 1200px) {
  .bubble {
    width: 29.1666666667vw;
    padding: 1.3333333333vw 1.8333333333vw;
    font-size: 1.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .bubble {
    width: auto;
    width: 65.625vw;
    padding: 2.5vw 4.375vw;
    font-size: 3.75vw;
    white-space: normal;
  }
}

.merit__contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 4rem;
  margin-top: 8rem;
}
@media only screen and (max-width: 1200px) {
  .merit__contact {
    gap: 3.3333333333vw;
    margin-top: 6.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit__contact {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 6.25vw;
    margin-top: 8.75vw;
  }
}

.tel-block__label {
  color: var(--color-primary);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 1200px) {
  .tel-block__label {
    font-size: 2vw;
  }
}
@media only screen and (max-width: 640px) {
  .tel-block__label {
    font-size: 3.75vw;
    text-align: center;
  }
}
.tel-block a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.4rem;
  margin-top: 0.6rem;
}
@media only screen and (max-width: 1200px) {
  .tel-block a {
    gap: 1.1666666667vw;
    margin-top: 0.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .tel-block a {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 1.875vw;
  }
}
.tel-block__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 5.25rem;
  height: auto;
}
@media only screen and (max-width: 1200px) {
  .tel-block__icon {
    width: 4.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .tel-block__icon {
    width: 8.125vw;
  }
}
.tel-block__number {
  color: var(--color-primary);
  font-size: 6.8rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 1200px) {
  .tel-block__number {
    font-size: 5.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .tel-block__number {
    font-size: 6.875vw;
  }
}

.merit-2 .btn {
  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: 2rem;
  width: 51.7rem;
  max-width: 100%;
  height: 10rem;
  border-radius: 100vw;
  color: var(--color-white);
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media only screen and (max-width: 1200px) {
  .merit-2 .btn {
    gap: 1.6666666667vw;
    width: 43.0833333333vw;
    height: 8.3333333333vw;
    font-size: 2.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-2 .btn {
    gap: 2.5vw;
    width: 100%;
    height: 15vw;
    font-size: 4.6875vw;
  }
}
.merit-2 .btn--line {
  background: var(--c-line-brand);
}
.merit-2 .btn .btn__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 5.4rem;
  height: auto;
}
@media only screen and (max-width: 1200px) {
  .merit-2 .btn .btn__icon {
    width: 4.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-2 .btn .btn__icon {
    width: 7.5vw;
  }
}

.merit-3 {
  background: var(--color-lightGreen);
  padding: 11rem 0;
  overflow: hidden;
}
@media only screen and (max-width: 1200px) {
  .merit-3 {
    padding: 9.1666666667vw 0;
  }
}
@media only screen and (max-width: 640px) {
  .merit-3 {
    padding: 12.5vw 0;
  }
}

.merit-3 .merit__lead {
  margin-top: 3rem;
}
@media only screen and (max-width: 1200px) {
  .merit-3 .merit__lead {
    margin-top: 2.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-3 .merit__lead {
    margin-top: 2.5vw;
  }
}

.price-card {
  position: relative;
  margin-top: 6rem;
  padding: 4rem 5.2rem 6rem;
  border-radius: 2.4rem;
  background: var(--color-white);
}
@media only screen and (max-width: 1200px) {
  .price-card {
    margin-top: 5vw;
    padding: 3.3333333333vw 4.3333333333vw 5vw;
    border-radius: 2vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-card {
    margin-top: 7.8125vw;
    padding: 5vw 3.75vw 7.5vw;
    border-radius: 2.5vw;
  }
}

.price-card__title {
  color: var(--color-primary);
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.1em;
  text-align: center;
  margin-top: 5rem;
}
@media only screen and (max-width: 1200px) {
  .price-card__title {
    font-size: 3vw;
    margin-top: 4.1666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-card__title {
    font-size: 5vw;
    margin-top: 6.25vw;
  }
}

.price-table {
  max-width: 96.2rem;
  margin: 4rem auto 0;
}
@media only screen and (max-width: 1200px) {
  .price-table {
    margin-top: 3.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-table {
    margin-top: 5vw;
  }
}

.price-table__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 6.4rem;
  margin-bottom: 1.2rem;
  padding-right: 1rem;
}
@media only screen and (max-width: 1200px) {
  .price-table__head {
    gap: 5.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-table__head {
    gap: 1.5625vw;
    padding-right: 0;
  }
}

.price-tag {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0.4rem 2rem;
  border-radius: 100vw;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media only screen and (max-width: 1200px) {
  .price-tag {
    font-size: 1.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-tag {
    font-size: 3.4375vw;
  }
}
.price-tag--normal {
  border: 1px solid var(--color-font);
  background: var(--color-white);
  color: var(--color-font);
}
.price-tag--member {
  background: var(--color-red);
  color: var(--color-white);
}

.price-table__list {
  width: 100%;
}

.price-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 3rem;
  padding: 1.6rem 0;
  border-bottom: 1px dashed var(--color-primary);
}
.price-row:last-child {
  border-bottom: none;
}
@media only screen and (max-width: 1200px) {
  .price-row {
    gap: 2.5vw;
    padding: 1.3333333333vw 0;
  }
}
@media only screen and (max-width: 640px) {
  .price-row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 0vw;
    padding: 2.34375vw 0;
  }
}

.price-row__name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2rem;
  color: var(--color-font);
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 1200px) {
  .price-row__name {
    gap: 1.6666666667vw;
    font-size: 2.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-row__name {
    gap: 2.5vw;
    font-size: 4.0625vw;
  }
}
.price-row__name small {
  font-size: 2rem;
  font-weight: 700;
}
@media only screen and (max-width: 1200px) {
  .price-row__name small {
    font-size: 1.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-row__name small {
    font-size: 3.125vw;
  }
}

.price-row__crown {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 5.4rem;
  height: auto;
}
@media only screen and (max-width: 1200px) {
  .price-row__crown {
    width: 4.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-row__crown {
    width: 7.5vw;
  }
}

.price-row:nth-child(n+4) .price-row__crown {
  width: 4.4rem;
}
@media only screen and (max-width: 1200px) {
  .price-row:nth-child(n+4) .price-row__crown {
    width: 3.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-row:nth-child(n+4) .price-row__crown {
    width: 6.25vw;
  }
}

.price-row__prices {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 3rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media only screen and (max-width: 1200px) {
  .price-row__prices {
    gap: 2.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-row__prices {
    gap: 7.03125vw;
  }
}

.price-row__before {
  width: 19rem;
  text-align: right;
  color: var(--color-font);
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.5;
}
.price-row__before .price-row__num {
  text-decoration: line-through;
}
.price-row__before small {
  font-size: 2rem;
}
@media only screen and (max-width: 1200px) {
  .price-row__before {
    width: 15.8333333333vw;
    font-size: 3vw;
  }
  .price-row__before small {
    font-size: 1.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-row__before {
    width: auto;
    font-size: 4.0625vw;
  }
  .price-row__before small {
    font-size: 2.8125vw;
  }
}

.price-row__after {
  width: 17rem;
  text-align: right;
  color: var(--color-red);
  font-size: 4.4rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.price-row__after small {
  font-size: 2rem;
}
@media only screen and (max-width: 1200px) {
  .price-row__after {
    width: 14.1666666667vw;
    font-size: 3.6666666667vw;
  }
  .price-row__after small {
    font-size: 1.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-row__after {
    width: auto;
    font-size: 5.3125vw;
  }
  .price-row__after small {
    font-size: 2.8125vw;
  }
}

.price-reasons {
  margin-top: 9rem;
}
@media only screen and (max-width: 1200px) {
  .price-reasons {
    margin-top: 7.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-reasons {
    margin-top: 9.375vw;
  }
}

.price-reasons__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.2rem;
}
@media only screen and (max-width: 1200px) {
  .price-reasons__list {
    gap: 2.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-reasons__list {
    grid-template-columns: 1fr;
    gap: 7.5vw;
  }
}

.reason {
  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;
  gap: 1.2rem;
  text-align: center;
}
@media only screen and (max-width: 1200px) {
  .reason {
    gap: 1vw;
  }
}
@media only screen and (max-width: 640px) {
  .reason {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-column-gap: 2.34375vw;
       -moz-column-gap: 2.34375vw;
            column-gap: 2.34375vw;
    row-gap: 1.5625vw;
    text-align: left;
  }
}

.reason__badge {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  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;
  width: 8.4rem;
  height: 8.4rem;
  border: 3px solid var(--color-primary);
  border-radius: 50%;
  background: var(--color-white);
}
@media only screen and (max-width: 1200px) {
  .reason__badge {
    width: 7vw;
    height: 7vw;
  }
}
@media only screen and (max-width: 640px) {
  .reason__badge {
    width: 12.5vw;
    height: 12.5vw;
    border: 0.625vw solid var(--color-primary);
  }
}

.reason__badge-label {
  color: var(--color-primary);
  font-size: 1.7rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.05em;
  margin-top: 1.2rem;
}
@media only screen and (max-width: 1200px) {
  .reason__badge-label {
    font-size: 1.4166666667vw;
    margin-top: 1vw;
  }
}
@media only screen and (max-width: 640px) {
  .reason__badge-label {
    font-size: 2.34375vw;
    margin-top: 1.25vw;
  }
}

.reason__badge-num {
  color: var(--color-primary);
  font-size: 4.8rem;
  font-weight: 500;
  line-height: 1;
  margin-top: -0.6rem;
}
@media only screen and (max-width: 1200px) {
  .reason__badge-num {
    font-size: 4vw;
    margin-top: -0.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .reason__badge-num {
    font-size: 5.9375vw;
    margin-top: -0.78125vw;
  }
}

.reason__title {
  color: var(--color-primary);
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.5;
}
@media only screen and (max-width: 1200px) {
  .reason__title {
    font-size: 1.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .reason__title {
    width: calc(100% - 15vw - 3.75vw);
    font-size: 4.375vw;
    text-align: left;
  }
}

.reason__desc {
  width: 100%;
  color: var(--color-font);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.03em;
  text-align: left;
}
@media only screen and (max-width: 1200px) {
  .reason__desc {
    font-size: 1.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .reason__desc {
    font-size: 3.75vw;
    line-height: 1.6;
  }
}

.price-reasons .empathy-box__title {
  margin-top: 4rem;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 1200px) {
  .price-reasons .empathy-box__title {
    margin-top: 3.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-reasons .empathy-box__title {
    margin-top: 5.625vw;
  }
}

.price-card__btn {
  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: 1.6rem;
  width: 35.5rem;
  max-width: 100%;
  height: 6.7rem;
  margin: 6rem auto 0;
  border: 3px solid var(--color-primary);
  border-radius: 100vw;
  background: var(--color-white);
  color: var(--color-primary);
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media only screen and (max-width: 1200px) {
  .price-card__btn {
    gap: 1.3333333333vw;
    width: 29.5833333333vw;
    height: 5.5833333333vw;
    margin-top: 5vw;
    font-size: 2.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-card__btn {
    gap: 2.5vw;
    width: 62.5vw;
    height: 14.0625vw;
    margin-top: 7.8125vw;
    font-size: 4.6875vw;
  }
}
.price-card__btn::after {
  content: "";
  width: 1.2rem;
  height: 1.2rem;
  margin-top: -0.4rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
@media only screen and (max-width: 1200px) {
  .price-card__btn::after {
    width: 1vw;
    height: 1vw;
  }
}
@media only screen and (max-width: 640px) {
  .price-card__btn::after {
    width: 2.1875vw;
    height: 2.1875vw;
  }
}

.merit-4 {
  padding: 11rem 0;
}
@media only screen and (max-width: 1200px) {
  .merit-4 {
    padding: 9.1666666667vw 0;
  }
}
@media only screen and (max-width: 640px) {
  .merit-4 {
    padding: 12.5vw 0;
  }
}

.merit-4 .merit__lead {
  font-size: 2.2rem;
  margin-top: 3rem;
}
@media only screen and (max-width: 1200px) {
  .merit-4 .merit__lead {
    font-size: 1.8333333333vw;
    margin-top: 2.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-4 .merit__lead {
    font-size: 4.0625vw;
    margin-top: 2.5vw;
  }
}

.merit-4 .empathy-box {
  margin-top: 5rem;
}
@media only screen and (max-width: 1200px) {
  .merit-4 .empathy-box {
    margin-top: 4.1666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit-4 .empathy-box {
    margin-top: 6.25vw;
  }
}

.merit4__table-title {
  color: var(--color-primary);
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.1em;
  text-align: center;
  margin-top: 5.5rem;
}
@media only screen and (max-width: 1200px) {
  .merit4__table-title {
    font-size: 3vw;
    margin-top: 4.5833333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit4__table-title {
    font-size: 4.6875vw;
    margin-top: 6.25vw;
    letter-spacing: 0.05em;
  }
}

.merit4__table {
  margin-top: 4rem;
  border-radius: 1rem;
  overflow: hidden;
}
@media only screen and (max-width: 1200px) {
  .merit4__table {
    margin-top: 3.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit4__table {
    margin-top: 4.375vw;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 2.5vw;
  }
}

.merit4__grid {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border: 4px solid var(--color-primary);
  font-family: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.04em;
  color: var(--color-font);
}
@media only screen and (max-width: 1200px) {
  .merit4__grid {
    font-size: 1.6666666667vw;
    border-width: 0.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit4__grid {
    min-width: 175vw;
    font-size: 3.75vw;
    border-width: 0.625vw;
  }
}
.merit4__grid th,
.merit4__grid td {
  padding: 1rem;
  border: 1px solid var(--color-primary);
  vertical-align: middle;
  white-space: nowrap;
}
@media only screen and (max-width: 1200px) {
  .merit4__grid th,
  .merit4__grid td {
    padding: 0.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit4__grid th,
  .merit4__grid td {
    padding: 2.5vw;
  }
}
.merit4__grid thead tr:first-child th:first-child {
  width: 11.5rem;
}
@media only screen and (max-width: 1200px) {
  .merit4__grid thead tr:first-child th:first-child {
    width: 9.5833333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit4__grid thead tr:first-child th:first-child {
    width: 18.75vw;
  }
}
.merit4__grid thead th {
  background: var(--color-lightGreen);
  color: var(--color-black);
  text-align: center;
}
.merit4__grid tbody td {
  text-align: right;
}
.merit4__grid tbody td.-center {
  text-align: center;
}
.merit4__grid tbody td.-red {
  color: var(--color-red);
}
.merit4__grid tbody td.-total {
  color: var(--color-black);
}

.merit4__grid-sub {
  display: block;
  font-size: 1.4rem;
}
@media only screen and (max-width: 1200px) {
  .merit4__grid-sub {
    font-size: 1.1666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit4__grid-sub {
    font-size: 2.8125vw;
  }
}

.merit4__note {
  margin-top: 1rem;
  color: var(--color-black);
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-align: right;
}
@media only screen and (max-width: 1200px) {
  .merit4__note {
    font-size: 1.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit4__note {
    font-size: 3.125vw;
    margin-top: 1.875vw;
  }
}

.merit4__terms {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 4rem;
  margin-top: 4rem;
  padding: 2.3rem;
  border: 4px solid var(--color-primary);
  border-radius: 1rem;
}
@media only screen and (max-width: 1200px) {
  .merit4__terms {
    gap: 3.3333333333vw;
    margin-top: 3.3333333333vw;
    padding: 1.9166666667vw;
    border-radius: 0.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit4__terms {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 3.75vw;
    margin-top: 6.25vw;
    padding: 4.375vw;
    border-width: 0.625vw;
  }
}

.merit4__terms-label {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  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: 20.7rem;
  border-radius: 1rem;
  background: var(--color-lightGreen);
  color: var(--color-black);
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 1200px) {
  .merit4__terms-label {
    width: 17.25vw;
    font-size: 2vw;
    border-radius: 0.8333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit4__terms-label {
    width: 100%;
    padding: 3.125vw 0;
    font-size: 4.0625vw;
  }
}

.merit4__terms-list li {
  color: var(--color-black);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
  text-indent: -1em;
  padding-left: 1em;
}
@media only screen and (max-width: 1200px) {
  .merit4__terms-list li {
    font-size: 2vw;
  }
}
@media only screen and (max-width: 640px) {
  .merit4__terms-list li {
    font-size: 3.75vw;
  }
}
.merit4__terms-list li::before {
  content: "・";
}

.price {
  padding: 11rem 0;
  background: var(--color-lightGreen);
}
@media only screen and (max-width: 1200px) {
  .price {
    padding: 9.1666666667vw 0;
  }
}
@media only screen and (max-width: 640px) {
  .price {
    padding: 12.5vw 0;
  }
}

.price__title {
  text-align: center;
  line-height: 0;
}
.price__title img {
  display: inline-block;
  width: 71rem;
  height: auto;
}
@media only screen and (max-width: 1200px) {
  .price__title img {
    width: 59.1666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price__title img {
    width: 87.5vw;
  }
}

.price__table {
  margin-top: 5rem;
}
@media only screen and (max-width: 1200px) {
  .price__table {
    margin-top: 4.1666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price__table {
    margin-top: 6.25vw;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

.price__grid {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border: 2px solid var(--color-primary);
  font-family: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.04em;
  color: var(--color-primary);
}
@media only screen and (max-width: 1200px) {
  .price__grid {
    font-size: 1.6666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price__grid {
    min-width: 175vw;
    font-size: 3.75vw;
  }
}
.price__grid th,
.price__grid td {
  padding: 0.6rem 1.2rem;
  border: 1px solid var(--color-primary);
  background: var(--color-white);
  vertical-align: middle;
  white-space: nowrap;
}
@media only screen and (max-width: 1200px) {
  .price__grid th,
  .price__grid td {
    padding: 0.5vw 1vw;
  }
}
@media only screen and (max-width: 640px) {
  .price__grid th,
  .price__grid td {
    padding: 1.875vw 2.5vw;
  }
}
.price__grid thead th {
  text-align: center;
}
.price__grid .price__grid-cat {
  text-align: center;
}
.price__grid .price__grid-detail {
  position: relative;
  padding-left: 6.5rem;
  text-align: left;
}
@media only screen and (max-width: 1200px) {
  .price__grid .price__grid-detail {
    padding-left: 5.4166666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price__grid .price__grid-detail {
    padding-left: 13.125vw;
  }
}
.price__grid .price__grid-normal {
  text-align: center;
}
.price__grid .price__grid-member {
  text-align: center;
  background: var(--color-red);
  color: var(--color-white);
}
.price__grid .price-row__crown {
  position: absolute;
  left: 1.1rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 4rem;
  margin: 0;
}
@media only screen and (max-width: 1200px) {
  .price__grid .price-row__crown {
    left: 0.9166666667vw;
    width: 3.3333333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .price__grid .price-row__crown {
    left: 1.875vw;
    width: 7.5vw;
  }
}

.price__grid-col-cat,
.price__grid-col-price {
  width: 16%;
}

.price__note {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 2rem;
  margin-top: 1.2rem;
  font-family: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
}
@media only screen and (max-width: 1200px) {
  .price__note {
    gap: 1.6666666667vw;
    margin-top: 1vw;
  }
}
@media only screen and (max-width: 640px) {
  .price__note {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 0.78125vw;
    margin-top: 2.5vw;
  }
}

.price__best {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  gap: 0.8rem;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 1200px) {
  .price__best {
    gap: 0.6666666667vw;
    font-size: 1.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .price__best {
    gap: 1.5625vw;
    font-size: 3.75vw;
  }
}
.price__best img {
  width: 2.6rem;
  height: auto;
}
@media only screen and (max-width: 1200px) {
  .price__best img {
    width: 2.1666666667vw;
  }
}
@media only screen and (max-width: 640px) {
  .price__best img {
    width: 5.3125vw;
  }
}
.price__best span {
  color: var(--color-red);
}

.price__note-txt {
  color: var(--color-primary);
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
@media only screen and (max-width: 1200px) {
  .price__note-txt {
    font-size: 1.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .price__note-txt {
    width: 100%;
    font-size: 3.4375vw;
    letter-spacing: 0.04em;
  }
}