/* ----------------------------------
トップページ

--------------------------------------  */

.more-btn a {
  font-size: 1.6rem;
  padding: 1.5rem 6rem;
  margin: auto;
  display: block;
  width: fit-content;
  margin-top: 2rem;
  position: relative;
}
.more-btn a::after {
  content: "　";
  background-image: url(../images/common/icon-next.webp);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 25px;
  height: 25px;
  position: absolute;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}

.top .main-title {
  margin-bottom: 3rem;
}
.top .main-title h2 {
  font-size: 4rem;
  text-align: center;
  font-weight: bold;
  font-family: "Murecho", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
}

#page-ttl {
  margin: 10rem 0 5rem;
}
.ttl-area h2 {
  font-size: 3rem;
  text-align: center;
  border-bottom: solid 1px;
  width: fit-content;
  margin: auto;
  padding: 0 5rem 1rem;
}

.main-visual-text {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 90;
}

.main-visual-text-title {
  background: #000;
  color: #fff;
  font-size: 3.6rem;
  margin-bottom: 1rem;
  width: fit-content;
  padding: 0 2rem;
}
.main-visual-text-body {
  background: #ffffff85;
  font-size: 1.6rem;
  font-weight: bold;
  width: fit-content;
  padding: 2rem;
  padding-right: 3rem;
  line-height: 2;
}

.main-visual {
  position: relative;
}

.news-area .main-title {
  margin-bottom: 8rem !important ;
}

.news-box {
  background: #fff;
  padding: 5rem 5rem;
  border-radius: 30px;
}
.news-area-list ul li {
  padding-bottom: 3rem;
  border-bottom: solid 1px #b2b2b2;
  margin-bottom: 3rem;
}
.news-area-list ul li:last-child {
  margin-bottom: 0;
}

.news-area-list ul li a {
  display: grid;
  grid-template-columns: 100px 80px auto;
  gap: 3rem;
  align-items: center;
  width: 90%;
  margin: auto;
}

.news-area-list ul li a span {
  font-size: 1.4rem;
  font-weight: bold;
}

.news-area-list ul li a p.category-title {
  font-size: 1.2rem;
  background: #c74489;
  color: #fff;
  text-align: center;
  border-radius: 20px;
  padding: 3px;
}

.news-area .more-btn a {
  display: block;
  background: #f7f7f4;
  font-size: 1.4rem;
  font-weight: bold;
  padding-right: 5rem !important;
  padding: 1.5rem 2rem;
  margin-top: 5rem;
}

.news-area .more-btn a:hover {
  background: #000;
  color: #fff;
  border: solid 1px #000;
}
.news-area .more-btn a::after {
  right: 17px;
}

.single-title h2 {
  font-size: 2.2rem;
  margin-bottom: 3rem;
  padding-bottom: 2rem;
  border-bottom: solid 1px #b2b2b2;
}

.single-title p {
  font-size: 1.4rem;
  margin-bottom: 1rem;
}

.article-content {
  font-size: 1.4rem;
}

.article-cont .more-btn {
  margin-top: 10rem;
}
.article-cont .more-btn a {
  border: solid 1px;
  font-size: 1.4rem;
  border: solid 1px 000;
}
.article-cont .more-btn a:hover {
  background: #000;
  color: #fff;
  border: solid 1px #000;
}

.concept-area .inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 5rem;
}

.concept-area-text-title {
  font-size: 3.4rem;
  font-weight: bold;
  margin-bottom: 2rem;
}

.concept-area-text-body {
  font-size: 1.6rem;
  line-height: 2;
  font-weight: bold;
}

.gallery-area {
  padding: 10rem 0;
  background: url(../images/page/top/Gallery-bg.webp) no-repeat center center;
  background-size: cover;
  color: #fff;
  margin-bottom: 0;
}

.gallery-area-text-body {
  text-align: center;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 2;
  margin-bottom: 5rem;
}
.gallery-swiper {
  max-width: 500px;
  margin: 0 auto;
  position: relative;
  overflow: visible;
  margin-top: 3rem;
}

.gallery-swiper .swiper-slide img {
  width: 100%;
  display: block;
  border-radius: 12px;
  object-fit: cover;
  max-width: 500px;
}
/* 共通 */
.swiper-button-next,
.swiper-button-prev {
  width: 40px;
  height: 40px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* 画像差し替え */
.gallery-area .swiper-button-prev::after {
  content: "　";
  background-image: url(../images/page/top/icon-pre.webp);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  right: 60px;
  position: relative;
}

.gallery-area .swiper-button-next::after {
  content: "　";
  background-image: url(../images/page/top/icon-next.webp);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  left: 60px;
  position: relative;
}

.movie-area {
  background: #1e1e1e;
  padding: 10rem 0;
  margin: 0;
}

.movie-area h2 {
  color: #f7f7f4;
}
.staff-blog-list {
  margin-top: 5rem;
}

.staff-blog-list > ul {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2rem 1rem;
}

.staff-blog-list > ul > li > a {
  display: block;
  padding: 1rem;
  background: #fff;
}
.staff-blog-list > ul > li > a:hover {
  background: #c74489;
}

.staff-blog-list > ul > li a img {
  width: 100%;
  height: 230px;
  object-fit: cover;
  background: #fff;
  object-position: center;
}

.staff-blog-list > ul > li a div.staff-ta {
  margin-top: 2rem;
  font-size: 1.6rem;
}

.staff-blog-list > ul > li a div.staff-btn {
  background: #000;
  color: #fff;
  font-size: 1.5rem;
  padding: 1.3rem;
  text-align: center;
  width: 80%;
  margin: 2rem auto 1rem;
}

.blog-area .more-btn a {
  background: #fff;
}
.blog-area .more-btn {
  margin-top: 5rem;
}

/*----------------------------------

  お問い合わせ

  --------------------------------------  */
.contact-text {
  font-size: 1.4rem;
  line-height: 1.5;
  text-align: center;
  color: #000;
}
.form_box {
  margin-top: 5rem;
  box-sizing: border-box;
}

.form-area .inner {
  background: #fff;
  padding:7rem 5rem;
  border-radius: 10px;
}
.form_box .formTable dl {
  display: grid;
  grid-template-columns: 1.4fr 3fr;
  gap: 1rem;
}
.form_box .formTable dl + dl {
  margin-top: 2.5rem;
}
.form_box .formTable dl dt {
  font-size: 1.5rem;
  font-weight: bold;
  color: #000;
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-left: 2rem;
}
.form_box .formTable dl dt span {
  background: #b90012;
  color: #fff;
  font-size: 1.2rem;
  padding: 5px 1.5rem;
}
.form_box .formTable dl dt span.normal {
  background: none;
}

.form_box .formTable dl dd {
  font-size: 1.6rem;
}
.form_box .formTable dl dd input[type="text"],
.form_box .formTable dl dd input[type="email"],
.form_box .formTable dl dd input[type="tel"],
.form_box .formTable dl dd textarea {
  width: 100%;
  padding: 1rem;
  border: none !important;
  box-sizing: border-box;
  background: #ededed;
}

.zip-box div {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.zip-box div:nth-child(2) {
  margin-top: 1rem;
}
#zip {
  width: 40%;
}

#submit > p:nth-child(1) {
  font-size: 20px;
  margin-bottom: 2rem;
}

#submit {
  margin: 60px 0 50px;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
}

.form_box #submit input.confbtn {
  background: #251e1c;
  border: solid 1px #251e1c;
  border-radius: 10px;
  color: #fff;
  font-size: 1.8rem;
  padding: 1.5rem 2rem;
  padding-right: 5rem;
  width: 100%;
}
.form_box #submit input.confbtn:hover {
  background: #fff;
  color: #251e1c;
  cursor: pointer;
  border: 1px solid #251e1c;
}
#send {
  position: relative;
  width: 35%;
}
#send:after {
  content: "　";
  background-image: url(../images/common/icon-next.webp);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 25px;
  height: 25px;
  position: absolute;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}

#submit input.backbtn:hover {
  background: #fff;
  color: #251e1c;
  cursor: pointer;
  border: 1px solid #251e1c;
}
#submit input.backbtn {
  background: #0087d0;
  color: #fff;
  border: 1px solid #0087d0;
  width: 35%;
  padding: 15px 0;
  font-size: 18px;
  letter-spacing: 0;
  border-radius: 10px;
}

.contact-complete .sub-ttl {
  font-size: 3rem;
  font-weight: bold;
  color: #a71527;
  text-align: center;
  margin-bottom: 3rem;
}

.contact-complete p {
  font-size: 1.8rem;
  text-align: center;
  line-height: 2;
}

.top-more-btn {
  color: #3f6eb4;
}

.top-more-btn > a:nth-child(1) {
  color: #3f6eb4;
  text-align: center;
  margin: 2rem auto;
  display: block;
  font-size: 1.8rem;
  text-decoration: underline;
  text-underline-offset: 5px;
}

.completion_area #page-ttl {
  display: none;
}

/*----------------------------------

  
ご入会・料金


  --------------------------------------  */
#price table {
  width: 100%;
  border: solid 2px #000;
  border-collapse: collapse;
  border-spacing: 0;
  background: #fff;
}
#price table td {
  padding: 1rem;
  font-size: 1.6rem;
  border: solid 1px #000;
  text-align: center;
  font-weight: bold;
}
#price table th {
  padding: 1rem;
  font-size: 2rem;
  font-weight: bold;
  border: solid 1px #000;
}

.plan-section table + table {
  margin-top: 5rem;
}
.plan-table th {
  background: #fff533;
  width: 25%;
}
.plan-table td {
  font-size: 2rem;
  font-weight: bold;
}
.plan-table td span {
  font-size: 1.4rem;
  display: block;

}
.plan-table02{margin-top: 5rem;}
.plan-table02 th {
  background: #fff533;
  width: 50%;
}
.plan-table02 td span {
  font-size: 1.2rem;
  display: block;
}
.plan-section ul {
  margin-top: 5rem;
}
.plan-section ul li {
  font-size: 1.4rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
  text-indent: -1em;
  padding-left: 1em;
}

.price-ttl {
  font-size: 2.7rem;
  background: #ea68b2;
  width: fit-content;
  padding: 0.5rem 2rem;
  color: #fff;
  font-weight: bold;
  text-align: center;
  margin: 0px auto 3rem;
  border-radius: 20px;
}

.price-flow {
  background: #fff;
  padding: 3rem 5rem;
  border-radius: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 3rem 4rem;
  margin-bottom: 5rem;
}
.price-flow dl {
  width: 47%;
  display: flex;
  align-items: center;
  gap: 2rem;
}
.price-flow > dl:nth-child(3) {
  width: 100%;
}

.price-flow dl  dt {
  font-size: 1.8rem;
  background: #000;
  color: #fff;
  width: 140px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.9rem;
  font-weight: bold;
}

.price-flow dl > dd {
  width: calc(100% - 140px - 2rem);
  font-size: 2.2rem;
  font-weight: bold;
}

.flow-box + .flow-box {
  margin-top: 5rem;
}

.flow-box-ttl {
  font-size: 2.4rem;
  font-weight: bold;
  margin-bottom: 2rem;
  position: relative;
  padding-left: 2.5rem;
}
.flow-box-ttl::before {
  content: "　";
 border-radius: 50%;
 background: #000;
  width: 20px;
  height: 20px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
}

.flow-box ul li {
  font-size: 1.8rem;
  font-weight: bold;
  margin-top: .5rem;
}
.flow-box-text{margin-top: 2rem;}

.flow-box p.text {
  font-size: 1.4rem;
  font-weight: bold;
}
.flow-box  table  th {
  font-size: 2rem;
  font-weight: bold;
  width: 50%;
  background: #878788;
  color: #fff;
}
.flow-box  table  td {
  font-size: 1.6rem;
  font-weight: bold;
  background: #fff;
  min-height: 45px;
}


/*----------------------------------

  アクセス

  --------------------------------------  */

.access-section iframe {
  width: 100%;
  height: 500px;
}
.access-text-area {
  margin-top: 5rem;
  display: grid;
  gap: 2rem;
  grid-template-columns: 1.6fr 1fr;
}

.access-text {
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 2.5;
}

.access-link a {
  background: #000;
  color: #fff;
  font-size: 1.6rem;
  padding: 2rem;
  display: block;
  text-align: center;
}
.access-link a:hover {
  background: #fff;
  color: #000;
  border: solid 1px #000;
}

/*----------------------------------

  FITベスフレについて

  --------------------------------------  */



.about-section .inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}

.about-txt .catch-txt {
  font-size: 3.2rem;
  font-weight: bold;
  margin-bottom: 2rem;
  }

.about-txt p {
  font-size: 1.8rem;
  line-height: 2;
}

 .about-ttl h2 {
  background: #c74489;
  color: #fff;
  font-size: 2.4rem;
  text-align: center;
  width: 420px;
  margin: auto;
  padding: 10px;
}

.about-ttl  {
  margin-bottom: 5rem;
}


.reason-section ul {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8rem;
  width: 87%;
  margin: auto;
}


.reason-section ul li img {
  width: 190px;
  margin: auto;
  display: block;
}


.reason-section ul li p.catch-txt {
  font-size: 2.2rem;
  text-align: center;
  margin: 2rem 0;
}



.reason-section ul li p {
  font-size: 1.4rem;
}




.training-machines-list-ttl {
  background: #c74489;
  color: #fff;
  font-size: 1.8rem;
  padding: 1rem;
  margin-bottom: 2rem;
}


.training-machines-list-txt {
  margin-top: 2rem;
}


.training-machines-list > p {
  font-size: 1.6rem;
  text-align: center;
}


.training-machines-ttl {
  font-size: 2.2rem;
  background: #fff;
  width: 320px;
  padding: 1.5rem;
  margin: 5rem auto 3rem;
  text-align: center;
  border: solid 1px;
}

.training-machines-list ul {
  margin-top: 3rem;
}


.training-machines-swiper-cont > p {
  font-size: 1.6rem;
  text-align: center;
  margin: 5rem 0;
}

.training-machines-swiper {
  max-width: 600px;
  margin: 0 auto;
  position: relative;
  overflow: visible;
  margin-top: 3rem;
}

.training-machines-swiper .swiper-slide img {
  width: 100%;
  display: block;
  object-fit: cover;
  max-width: 600px;
}


/* 画像差し替え */
.training-machines-swiper .swiper-button-prev::after {
  content: "　";
  background-image: url(../images/page/top/icon-pre.webp);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  right: 60px;
  position: relative;
}

.training-machines-swiper .swiper-button-next::after {
  content: "　";
  background-image: url(../images/page/top/icon-next.webp);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  left: 60px;
  position: relative;
}
.training-machines-swiper {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}

/*----------------------------------

  よくある質問

  --------------------------------------  */

#faq {
  margin-bottom: 30rem;
}
#faq .questions {
  display: flex;
  gap: 1rem;
  font-size: 2rem;
  margin-bottom: 1rem;
}
#faq .answer {
  padding: 2rem 4rem;
  background: #fff;
  margin: 2rem;
  margin-top: 1rem;
  font-size: 1.6rem;
}

.qa_cont dl + dl {
  margin-top: 4rem;
}
