@charset "UTF-8";
body {
  color: #000;
}
@media screen and (min-width: 768px) {
  body {
    background: rgb(255, 255, 255);
    background: linear-gradient(0deg, rgb(255, 255, 255) 60%, rgb(222, 230, 127) 100%);
    background-repeat: no-repeat;
  }
}

img {
  width: 100%;
  height: auto;
}

iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  max-width: 100%;
  max-height: 26.25rem;
}

.mb-0 {
  margin-bottom: 0 !important;
}

header {
  width: 100%;
  height: 0vw;
  padding-top: 2.6666666667vw;
  max-width: 48rem;
  margin: 0 auto;
  position: relative;
  background-color: #DEE67F;
}
header .logo {
  width: 44vw;
  height: 14.6666666667vw;
  background-color: #DEE67F;
  position: absolute;
  top: 0rem;
  padding-left: 5.3333333333vw;
  padding-top: 3.3333333333vw;
}
header .logo img {
  width: 33.3333333333vw;
  height: auto;
}
@media screen and (min-width: 768px) {
  header {
    height: 2.8125rem;
  }
  header .logo {
    background-color: transparent;
    width: 10.3125rem;
    height: 3.4375rem;
    padding-left: 1.25rem;
    padding-top: 0.78125rem;
  }
}
main {
  max-width: 48rem;
  margin: 0 auto;
}

footer {
  max-width: 48rem;
  background-color: #333333;
  color: #ffffff;
  margin: 0 auto;
  position: relative;
  padding: 0.625rem;
  font-size: 0.625rem;
  text-align: center;
  padding-bottom: 3.75rem;
}

.footer-menu {
  background-color: #54A6D9;
  color: #ffffff;
  position: fixed;
  width: 100%;
  z-index: 3;
  bottom: 0;
  left: 0;
  padding: 0 1.25rem;
}
.footer-menu .footer-menu-inner {
  height: 2.8125rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.footer-menu .footer-menu-inner p {
  font-size: 0.75rem;
  font-weight: bold;
  line-height: 1;
  margin-block: 0;
}
.footer-menu .footer-menu-inner a {
  font-weight: bold;
  line-height: 1;
  text-decoration: none;
  text-align: center;
  background-color: #ffffff;
  color: #000;
  font-size: 0.875rem;
  width: 7.5rem;
  padding: 0.5rem;
  border-radius: 100px;
}

section#firstview {
  background: rgb(255, 255, 255);
  background: linear-gradient(0deg, rgb(255, 255, 255) 60%, rgb(222, 230, 127) 100%);
  padding: 5.3333333333vw;
}
section#firstview .hero {
  border-radius: 4px;
  padding-top: 3.75rem;
  padding-bottom: 1.875rem;
  margin-bottom: 0.9375rem;
  color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-image: url("../img/img_lp_hero.webp");
  background-size: cover;
  background-position: center;
}
section#firstview .hero h1 {
  text-align: center;
  font-size: 1.3125rem;
  margin-bottom: 1.25rem;
}
section#firstview .hero h1 img {
  width: 12.8125rem;
  margin: 0 auto 1.25rem;
}
section#firstview .hero p {
  text-align: center;
  font-size: 1rem;
  margin-bottom: 1.875rem;
  line-height: 1.8;
}
section#firstview .hero .points3 {
  display: flex;
  justify-content: space-between;
}
section#firstview .hero .points3 div {
  width: 33%;
  display: flex;
  align-items: start;
  justify-content: center;
  font-size: 0.8125rem;
  flex-wrap: wrap;
  flex-shrink: 1;
}
section#firstview .hero .points3 div:first-child {
  border-right: 1px solid rgba(255, 255, 255, 0.728);
}
section#firstview .hero .points3 div:last-child {
  border-left: 1px solid rgba(255, 255, 255, 0.728);
}
section#firstview .hero .points3 div span.point {
  font-weight: bold;
  text-align: center;
  display: block;
  width: 100%;
  margin-top: 0rem;
  color: #f0f11f;
}
section#firstview .hero .points3 div span.point span.big {
  font-size: 1.375rem;
}
section#firstview ul.top-features li {
  font-size: 1.125rem;
  font-weight: bold;
}
section#firstview ul.top-features li span {
  font-weight: normal;
  color: #707070;
  font-size: 0.75rem;
  display: block;
}
@media screen and (min-width: 768px) {
  section#firstview {
    padding: 1.25rem;
  }
}

section.cont-box {
  padding: 5.3333333333vw;
}
section.cont-box .cont-box-inner {
  position: relative;
  z-index: 2;
}
section.cont-box p.reg {
  font-feature-settings: "palt" 1;
  line-height: 1.7857142857;
  font-size: 0.875rem;
  color: #707070;
  margin-bottom: 0.9375rem;
}
section.cont-box p.reg:last-child {
  margin-bottom: 0;
}
section.cont-box h2 {
  font-feature-settings: "palt" 1;
  line-height: 1.2857142857;
  font-size: 1.3125rem;
  margin-block-end: 1.5625rem;
}
section.cont-box h2 span.sub-blue {
  color: #54A6D9;
  font-size: 1.125rem;
  display: block;
  margin-block-end: 0.1875rem;
}
section.cont-box h3 {
  font-feature-settings: "palt" 1;
  font-size: 1.125rem;
  color: #54A6D9;
}
@media screen and (min-width: 768px) {
  section.cont-box {
    padding: 1.25rem;
  }
  section.cont-box p.reg {
    font-size: 1rem;
  }
  section.cont-box h2 {
    font-size: 1.5rem;
  }
  section.cont-box h3 {
    font-size: 1.3125rem;
  }
}

section.weare .weare-inner {
  background-color: #FBFDE0;
  border-radius: 0.625rem;
  padding: 1.25rem;
}
section.weare .weare-inner p {
  color: #000;
}
section.weare .weare-inner .weare-logo {
  width: 15rem;
  margin: 0 auto 1.875rem;
}
section.weare .weare-inner .weare-image {
  width: 100%;
  margin: 0 auto 0.9375rem;
}
section.facilities {
  position: relative;
}
section.facilities:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100% + 0rem);
  transform: skewY(-5deg);
  transform-origin: 120% 0;
  z-index: 1;
  background-color: #F6F2F9;
}

section.trainers .trainers-text {
  position: relative;
}
section.trainers .trainers-text::after {
  display: block;
  clear: both;
  content: "";
}
section.trainers .trainers-text img {
  float: right;
  width: 7.5rem;
  margin: 0.9375rem 0 0 0.9375rem;
  transform: translateY(-0.9375rem);
}
section.trainers .trainers-box h3 {
  margin-block-end: 0.9375rem;
}
section.trainers .trainers-box .trainers-box-inner {
  display: flex;
  flex-wrap: wrap;
  margin-left: -1.25rem;
  margin-right: -1.25rem;
}
section.trainers .trainers-box .trainers-box-inner .trainer {
  flex: 0 1 25%;
  padding: 0.625rem;
}
section.trainers .trainers-box .trainers-box-inner .trainer a {
  text-decoration: none;
}
section.trainers .trainers-box .trainers-box-inner .trainer figure {
  width: 100%;
}
section.trainers .trainers-box .trainers-box-inner .trainer figure img {
  width: 100%;
}
section.trainers .trainers-box .trainers-box-inner .trainer figure figcaption {
  color: #000;
  padding-top: 0.3125rem;
  font-size: 0.75rem;
  text-align: center;
}

.modal {
  display: none;
}
.modal.is-open {
  display: block;
}
.modal .modal__overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 5.3333333333vw;
  z-index: 3;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
}
.modal .modal__overlay .modal-cont {
  position: relative;
}
.modal .modal__overlay .modal-cont div.close-button {
  font-size: 1.875rem;
  color: #54A6D9;
  position: absolute;
  z-index: 4;
  right: 0.625rem;
  top: 0.9375rem;
}
.modal .modal__overlay .modal-cont .trainer-detail {
  z-index: 2;
  margin-top: 0.9375rem;
  background-color: #F6F2F9;
  border-radius: 0.625rem;
  padding: 32vw 5.3333333333vw 5.3333333333vw;
  position: relative;
}
.modal .modal__overlay .modal-cont .trainer-detail figure {
  width: 32vw;
  position: absolute;
  top: 0;
  left: 50%;
  margin-bottom: -4vw;
  transform: translate(-16vw, -16vw); /* X方向に50px、Y方向に100px移動 */
}
.modal .modal__overlay .modal-cont .trainer-detail figure figcaption {
  text-align: center;
  font-size: 1rem;
  font-weight: bold;
  padding-top: 0.3125rem;
}
.modal .modal__overlay .modal-cont .trainer-detail figure img {
  width: 100%;
}
.modal .modal__overlay .modal-cont .trainer-detail div.trainer-feature {
  margin-top: -0.9375rem;
}
.modal .modal__overlay .modal-cont .trainer-detail div.trainer-feature div.copy {
  font-feature-settings: "palt" 1;
  font-size: 1rem;
  color: #54A6D9;
  line-height: 1.5;
  font-weight: bold;
  margin-bottom: 0.9375rem;
}
.modal .modal__overlay .modal-cont .trainer-detail div.trainer-feature div.explain {
  font-size: 0.9375rem;
  margin-bottom: 0.9375rem;
  border-bottom: 1px solid #707070;
  padding-bottom: 0.9375rem;
}
.modal .modal__overlay .modal-cont .trainer-detail div.trainer-feature div.introduce p.reg {
  font-size: 0.875rem;
}
@media screen and (min-width: 800px) {
  .modal .modal__overlay .modal-cont {
    max-width: 480px;
  }
  .modal .modal__overlay .modal-cont .trainer-detail {
    padding: 160px 45px 30px;
  }
  .modal .modal__overlay .modal-cont .trainer-detail figure {
    width: 240px;
    transform: translate(-120px, -170px);
  }
}

.slide-image-wrap {
  overflow-x: auto;
  white-space: nowrap;
  padding-bottom: 0.625rem;
  width: auto;
  margin-right: -5.3333333333vw;
  margin-left: -5.3333333333vw;
  margin-bottom: 0.9375rem;
}
.slide-image-wrap .slide-image {
  display: flex;
  padding-left: 5.3333333333vw;
  padding-right: 5.3333333333vw;
  width: max-content; /* 要素の内容に基づいて幅を設定 */
}
.slide-image-wrap .slide-image figure {
  width: 80vw;
  position: relative;
}
.slide-image-wrap .slide-image figure:not(:last-child) {
  margin-right: 0.625rem;
}
.slide-image-wrap .slide-image figure figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 0.25rem;
  font-size: 11px;
  background-color: rgba(255, 255, 255, 0.7);
  color: #000;
}
@media screen and (min-width: 768px) {
  .slide-image-wrap {
    margin-right: 0;
    margin-left: 0;
  }
  .slide-image-wrap .slide-image {
    padding-left: 0rem;
    padding-right: 0rem;
  }
  .slide-image-wrap .slide-image figure {
    width: 35%;
  }
}

.point-column {
  z-index: 2;
  margin-top: 0.9375rem;
  background-color: #FBFDE0;
  border-radius: 0.625rem;
  padding: 16vw 4vw 4vw;
  position: relative;
}
.point-column figure.point-column-tb {
  width: 16vw;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-8vw, -5.3333333333vw); /* X方向に50px、Y方向に100px移動 */
}
.point-column figure.point-column-tb:after {
  content: "POINT!";
  font-size: 1.125rem;
  color: #54A6D9;
  transform: translate(16vw, -16vw) rotate(-10deg);
  display: inline-block;
}
.point-column figure.point-column-tb img {
  width: 100%;
}
.point-column p.reg {
  color: #000 !important;
}
@media screen and (min-width: 768px) {
  .point-column {
    margin-top: 5.625rem;
  }
  .point-column figure.point-column-tb {
    width: 11.25rem;
  }
  .point-column figure.point-column-tb:after {
    transform: translate(-1.875rem, -9.375rem) rotate(-10deg);
  }
}

section.modelplan .modelplan-wrap .case {
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: flex;
  width: 100%;
  height: 55vw;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
section.modelplan .modelplan-wrap .case.case-30-female {
  background-image: url("../img/img_model_1.svg");
}
section.modelplan .modelplan-wrap .case.case-40-male {
  background-image: url("../img/img_model_2.svg");
}
section.modelplan .modelplan-wrap .case h3 {
  transform: translateY(8vw);
  background-color: #f0f11f;
  color: #000;
  font-size: 1rem;
  font-weight: bold;
  display: inline-block;
  margin: 0 auto;
  padding: 0.8em 2em;
  text-align: center;
  border-radius: 100px;
}
section.modelplan .modelplan-wrap .modelplan-scrolls {
  transform: translateY(-5.3333333333vw);
  overflow-x: auto;
  white-space: nowrap;
  padding-bottom: 0.625rem;
  width: auto;
  margin-right: -5.3333333333vw;
  margin-left: -5.3333333333vw;
}
section.modelplan .modelplan-wrap .modelplan-scrolls .days {
  display: flex;
  align-items: flex-start;
  padding-left: 5.3333333333vw;
  padding-right: 5.3333333333vw;
  width: max-content; /* 要素の内容に基づいて幅を設定 */
}
section.modelplan .modelplan-wrap .modelplan-scrolls .days dl {
  border-radius: 0.625rem;
  background-color: #F6F2F9;
  padding: 4vw;
  width: 72vw;
}
section.modelplan .modelplan-wrap .modelplan-scrolls .days dl:not(:last-child) {
  margin-right: 0.9375rem;
}
section.modelplan .modelplan-wrap .modelplan-scrolls .days dl dt {
  font-size: 1.3125rem;
  color: #54A6D9;
  font-weight: bold;
  margin-bottom: 4vw;
}
section.modelplan .modelplan-wrap .modelplan-scrolls .days dl dd p {
  white-space: normal;
  font-size: 0.8125rem;
}
section.modelplan .modelplan-wrap .modelplan-scrolls .days dl dd figure {
  margin-bottom: 0.625rem;
  position: relative;
}
section.modelplan .modelplan-wrap .modelplan-scrolls .days dl dd figure img {
  width: auto;
}
@media screen and (min-width: 768px) {
  section.modelplan .modelplan-wrap .case {
    width: 100%;
    height: 20rem;
  }
  section.modelplan .modelplan-wrap .case h3 {
    transform: translateY(1.875rem);
  }
  section.modelplan .modelplan-wrap .modelplan-scrolls {
    transform: translateY(-1.25rem);
    margin-right: -1.25rem;
    margin-left: -1.25rem;
  }
  section.modelplan .modelplan-wrap .modelplan-scrolls .days {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  section.modelplan .modelplan-wrap .modelplan-scrolls .days dl {
    padding: 0.9375rem;
    width: 26.25rem;
  }
  section.modelplan .modelplan-wrap .modelplan-scrolls .days dl dt {
    font-size: 1.5rem;
    margin-bottom: 1.875rem;
  }
  section.modelplan .modelplan-wrap .modelplan-scrolls .days dl dd p {
    font-size: 1rem;
  }
}

section.price {
  position: relative;
}
section.price:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100% + 0rem);
  transform: skewY(-5deg);
  transform-origin: 120% 0;
  z-index: 1;
  background-color: #F8F7F3;
}
section.price p.reg {
  color: #000;
}
section.price .point-column {
  margin-top: 1.875rem;
  background-color: #ffffff;
}
section.price .price-box {
  background-color: #ffffff;
  padding: 5.3333333333vw;
  margin-bottom: 1.25rem;
  border-radius: 0.625rem;
}
section.price .price-box dt {
  font-size: 1.3125rem;
  font-weight: bold;
}
section.price .price-box dd.times {
  color: #707070;
  font-size: 0.875rem;
}
section.price .price-box dd.price {
  text-align: right;
}
section.price .price-box dd.price span.notax {
  display: block;
  margin-right: 0;
  font-size: 0.875rem;
}
section.price .price-box dd.price span.notax span.nb {
  font-weight: bold;
  display: inline;
  font-size: 1.3125rem;
}
section.price .price-box dd.price span.tax {
  display: block;
  margin-right: 0;
  font-size: 0.875rem;
}
@media screen and (min-width: 768px) {
  section.price .point-column {
    margin-top: 5.625rem;
  }
}

.marker {
  background: linear-gradient(transparent 50%, rgb(255, 255, 0) 30%);
  display: inline;
  /* 背景の繰り返しを停止 */
  background-repeat: no-repeat;
  /* マーカーの横方向を0にして縮める */
  background-size: 0% 100%;
  /* マーカーが引かれる速度を指定 */
  transition: background-size 1.5s;
}

/* マーカーが引かれる際に付与するクラス */
.marker.on {
  /* 横方向を100%にして、マーカーを引く */
  background-size: 100% 100%;
}

section.testimonial .voice {
  z-index: 2;
  margin-top: 1.875rem;
  background-color: #F6F2F9;
  border-radius: 0.625rem;
  padding: 26.6666666667vw 4vw 4vw;
  position: relative;
}
section.testimonial .voice figure.point-column-tb {
  width: 24vw;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-12vw, -5.3333333333vw); /* X方向に50px、Y方向に100px移動 */
}
section.testimonial .voice figure.point-column-tb img {
  width: 100%;
}
section.testimonial .voice figure.point-column-tb figcaption {
  padding-top: 0px;
  font-size: 0.875rem;
  text-align: center;
}
section.testimonial .voice p, section.testimonial .voice reg {
  color: #000 !important;
  font-size: 0.875rem;
}
@media screen and (min-width: 768px) {
  section.testimonial .voice {
    margin-top: 2.8125rem;
    padding: 12.5rem 1.25rem 1.25rem;
  }
  section.testimonial .voice figure.point-column-tb {
    width: 11.25rem;
    transform: translate(-5.625rem, -2.8125rem); /* X方向に50px、Y方向に100px移動 */
  }
  section.testimonial .voice p.reg {
    font-size: 1rem;
  }
}

section.faq {
  position: relative;
}
section.faq:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100% + 0rem);
  transform: skewY(-5deg);
  transform-origin: 120% 0;
  z-index: 1;
  background-color: #FBFDE0;
}
section.faq .faq-item {
  margin-top: 0.9375rem;
  max-width: 720px;
  margin-left: auto;
  border-radius: 0.625rem;
  margin-right: auto;
  background-color: #ffffff;
  border: 1px solid #F6F2F9;
}
section.faq .faq-question__wrap {
  position: relative;
  padding: 0.9375rem 3.4375rem 0.9375rem 0.9375rem;
  cursor: pointer;
}
section.faq .minus-icon {
  position: absolute;
  content: "";
  width: 20px;
  height: 3px;
  background: #000;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}
section.faq .plus-icon {
  position: absolute;
  content: "";
  width: 20px;
  height: 3px;
  background: #000;
  right: 20px;
  top: 50%;
  transform: translateY(-50%) rotate(90deg);
  transition: ease all 0.5s; /* 擬似要素のトランジションを追加 */
}
section.faq .plus-icon.active {
  transform: translateY(-50%);
}
section.faq .faq-question__title {
  font-weight: bold;
  color: #000;
  font-size: 1rem;
  position: relative;
}
section.faq .faq-answer__wrap {
  padding: 0.9375rem 0.9375rem 0.9375rem 0.9375rem;
  transition: ease all 0.5s; /* 擬似要素のトランジションを追加 */
  height: 0;
  overflow: hidden;
  padding-top: 0;
  padding-bottom: 0;
}
section.faq .faq-answer__wrap.active {
  height: auto;
  padding: 0.9375rem 0.9375rem 0.9375rem 0.9375rem;
}
section.faq .faq-answer__wrap {
  opacity: 0;
  padding: 0.9375rem 0.9375rem 0.9375rem 0.9375rem;
  padding-top: 0;
  padding-bottom: 0;
  overflow: hidden;
  transition: ease all 0.7s; /* 擬似要素のトランジションを追加 */
}
section.faq .faq-answer__wrap.active {
  opacity: 1;
  border-top: 1px solid #F6F2F9;
  padding: 0.9375rem 0.9375rem 0.9375rem 0.9375rem;
}
section.faq .faq-answer__text {
  font-size: 0.875rem;
}

.access .mapBox {
  margin-left: -5.3333333333vw;
  margin-right: -5.3333333333vw;
  margin-bottom: 1.25rem;
}
.access .access-info .access-1 {
  margin-bottom: 1.875rem;
  font-size: 0.8125rem;
  text-align: left;
  vertical-align: top;
}
.access .access-info .access-1 th {
  width: 35%;
  vertical-align: top;
}
.access .access-info .access-1 td {
  width: 65%;
  vertical-align: top;
}
.access .access-info .access-2 ul li {
  margin-bottom: 0.3125rem;
  text-align: left;
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  justify-content: start;
}
.access .access-info .access-2 ul li i {
  width: 1.2em;
  color: #54A6D9;
  font-size: 1rem;
}
.access .access-info .access-2 ul li span {
  width: calc(100% - 1.2em);
  padding-left: 0.625rem;
}

/*# sourceMappingURL=style.css.map */
