@charset "utf-8";

/*------------------------------ 共通 ------------------------------*/
.pc {
  display: none;
}

.heading h2 {
  font-size: 5.2rem;
}

.heading h1 {
  font-size: 5.2rem;
}

.heading p {
  font-size: 2rem;
}

.text {
  font-size: 2.4rem;
}

.right-arrow {
  height: 73px;
  width: 90%;
  max-width: 367px;
  border-radius: 37px;
  font-size: 3.2rem;
}

.under-arrow {
  font-size: 3.2rem;
  padding-right: 40px;
}

.under-arrow::before {
  width: 171px;
}

.under-fv .inner {
  margin-bottom: 45px;
}

.breadcrumbs {
  margin-bottom: 60px;
}

.breadcrumbs .inner {
  gap: 0 120px;
  font-size: 2rem;
}

@media screen and (max-width: 500px) {
  .breadcrumbs .inner {
    font-size: 1.4rem;
    gap: 0 70px;
  }
}

.breadcrumbs .inner a {
  position: relative;
}

.breadcrumbs .inner a::after {
  left: calc(100% + 60px);
}

@media screen and (max-width: 500px) {
  .breadcrumbs .inner a::after {
    left: calc(100% + 35px);
  }
}


/*------------------------------ ヘッダー ------------------------------*/
header .container .logo img {
  width: 200px;
}

@media screen and (max-width: 500px) {
  header .container .logo img {
    width: 160px;
  }
}

header .container nav ul li a {
  font-size: 2.2rem;
}

/*------------------------------ トップ ------------------------------*/
#top .fv .img img {
  min-height: 500px;
  object-fit: cover;
}

#top .fv .content h2 {
  font-size: clamp(3rem, 8.2vw, 6.2rem);
  margin-bottom: 20px;
}

@media screen and (max-width: 500px) {
  #top .fv .content p {
    font-size: 1.4rem;
  }
}

#top .fv .scroll {
  font-size: 1.8rem;
  bottom: 66px;
}

#top .news {
  padding: 81px 0 100px;
}

#top .news .inner .heading {
  margin-bottom: 47px;
}

#top .news .inner .news-wrap {
  margin-bottom: 58px;
  flex-wrap: wrap;
}

@media screen and (max-width: 500px) {
  #top .news .inner .news-wrap {
    gap: 30px 0;
  }
}

#top .news .inner .news-wrap a {
  width: 50%;
  padding: 0 2%;
}

@media screen and (max-width: 500px) {
  #top .news .inner .news-wrap a {
    width: 100%;
  }
}

@media screen and (max-width: 500px) {
  #top .news .inner .news-wrap a {
    border-left: 1px solid #808080;
  }
}

#top .news .inner .news-wrap a time {
  font-size: 2rem;
}

#top .news .inner .news-wrap a p:first-of-type {
  padding-bottom: 50px;
  font-size: 2.4rem;
}

#top .news .inner .news-wrap a .term {
  right: 6%;
  font-size: 2.8rem;
}

#top .concept {
  padding: 39px 0 100px;
}

#top .concept .inner .heading {
  margin-bottom: 38px;
}

#top .concept .inner p {
  font-size: 2.4rem;
}

#top .takumidou {
  padding: 89px 0 76px;
}

#top .takumidou .inner {
  flex-direction: column;
}

#top .takumidou .inner .img {
  width: 100%;
}

#top .takumidou .inner .img picture {
  text-align: center;
}

#top .takumidou .inner .img picture img {
  margin-inline: auto;
  max-width: 359px;
}

#top .takumidou .inner .img .heading {
  margin-bottom: 45px;
}

#top .takumidou .inner .img .heading h2 {
  font-size: clamp(3.6rem, 11vw, 5.2rem);
}

#top .salon-school {
  flex-direction: column;
}

#top .salon-school .content-wrap {
  padding: 39px 5%;
}

#top .salon-school .content-wrap .content {
  width: 50%;
}

@media screen and (max-width: 500px) {
  #top .salon-school .content-wrap .content {
    width: 100%;
  }
}

#top .salon-school .content-wrap .content .heading-link .heading {
  margin-bottom: 39px;
}

#top .salon-school .content-wrap .content .text {
  margin-bottom: 30px;
}

#top .salon-school .content-wrap .content .under-arrow::before {
  width: 214px;
}

#top .salon-school .content-wrap .content .sp-a {
  text-align: right;
}

#top .salon-school .content-wrap .img {
  height: 100%;
}

#top .salon-school .content-wrap .img img {
  height: 100%;
}


/*------------------------------ フッター ------------------------------*/
footer {
  padding-top: 100px;
}

footer .logo {
  margin-bottom: 40px;
}

footer .logo img {
  width: 400px;
}

@media screen and (max-width: 500px) {
  footer .logo img {
    width: 232px;
  }
}

footer address {
  margin-bottom: 40px;
  font-size: 2.8rem;
  width: 90%;
  margin-inline: auto;
}

@media screen and (max-width: 500px) {
  footer address {
    font-size: 2rem;
  }
}

footer address p:first-of-type {
  margin-bottom: 15px;
}

footer .reservation p {
  margin-bottom: 44px;
  font-size: 2.8rem;
}

footer .reservation .links {
  gap: 0 89px;
  margin-bottom: 57px;
}

footer .reservation .links a {
  width: 100px;
}

footer .reservation .links a img {
  width: 100%;
}

footer .wax {
  max-width: 451px;
  padding-top: 57px;
  margin-bottom: 100px;
}

footer .copy {
  height: 60px;
  font-size: 2.2rem;
}

@media screen and (max-width: 500px) {
  footer .copy {
    font-size: 1.6rem;
  }
}


/*------------------------------ サロン ------------------------------*/
#salon .removal {
  padding: 100px 0;
  margin-bottom: 100px;
}

#salon .removal .inner {
  flex-direction: column;
  gap: 62px 0;
}

#salon .removal .inner .img {
  width: 100%;
}

#salon .removal .inner .content {
  width: 100%;
}

#salon .removal .inner .content h2 {
  font-size: 3.4rem;
  margin-bottom: 38px;
}

#salon .menu {
  margin-bottom: 100px;
}

#salon .menu .inner {
  flex-direction: column;
  gap: 62px 0;
  margin-bottom: 100px;
}

#salon .menu .inner .each-menu {
  width: 100%;
}

#salon .menu .inner .each-menu .img {
  margin-bottom: 50px;
  text-align: center;
}

#salon .menu .inner .each-menu .img.dark-mask::before {
  width: 90%;
  left: 50%;
  transform: translateX(-50%);
}

#salon .menu .inner .each-menu .img img {
  width: 90%;
}

#salon .menu .inner .each-menu .img .heading {
  top: 25px;
  left: 0;
  text-align: left;
}

@media screen and (max-width: 500px) {
  #salon .menu .inner .each-menu .img .heading h2 {
    font-size: clamp(3.6rem, 11vw, 5.2rem);
  }

  #salon .menu .inner .each-menu .img .heading p {
    font-size: clamp(1.4rem, 4.4vw, 2rem);
  }
}

#salon .menu .inner .each-menu table thead tr th {
  font-size: 4rem;
  height: 80px;
}

@media screen and (max-width: 500px) {
  #salon .menu .inner .each-menu table thead tr th.th-small {
    font-size: 3rem;
  }
}

#salon .menu .inner .each-menu table tbody {
  padding: 40px 0 40px 24px;
}

#salon .menu .inner .each-menu table tbody tr td {
  font-size: 2.4rem;
}

#salon .menu .inner .each-course {
  margin-bottom: 33px;
}

#salon .menu .inner .each-course h4 {
  margin-bottom: 16px;
  font-size: 3.4rem;
}

#salon .menu .inner .each-course p {
  font-size: 2.4rem;
}


/*------------------------------ 予約とアクセス ------------------------------*/
.reservation-access {
  flex-direction: column;
}

.reservation-access .reservation {
  width: 100%;
  padding: 42px 0 48px;
}

.reservation-access .reservation .content .heading {
  margin-bottom: 43px;
}

@media screen and (max-width: 500px) {
  .reservation-access .reservation .content .heading h2 {
    font-size: clamp(3.6rem, 11vw, 5.2rem);
  }
}


.reservation-access .reservation .content .links {
  gap: 0 65px;
  margin-bottom: 29px;
}

.reservation-access .reservation .content .text {
  font-size: 1.6rem;
}

.reservation-access .access {
  width: 100%;
  /* padding: 40px 0; */
  /* padding: 147px 0; */
  padding: 80px 0;
}

.reservation-access .access a {
  width: 90%;
  height: 86px;
  line-height: 86px;
  border-radius: 43px;
  font-size: 4.4rem;
  max-width: 434px;
}

@media screen and (max-width: 500px) {
  .reservation-access .access a {
    font-size: 2.8rem;
  }
}

.reservation-access .access a::before {
  width: 80px;
  right: -15px;
}

.reservation-access .access a::after {
  right: -15px;
}


/*------------------------------ スクール ------------------------------*/
#school .under-fv .img img {
  /* object-position: center; */
  object-position: 50% 0%;
}

/* @media screen and (max-width: 375px) {
  #school .under-fv .img img {
    object-position: left;
  }
} */

#school .takumidou {
  padding: 89px 0 76px;
}

#school .takumidou .inner {
  flex-direction: column;
}

#school .takumidou .inner .img {
  width: 100%;
}

#school .takumidou .inner .img picture {
  text-align: center;
}

#school .takumidou .inner .img picture img {
  margin-inline: auto;
  max-width: 359px;
}

#school .takumidou .inner .img .heading {
  margin-bottom: 45px;
}

#school .takumidou .inner .img .heading h2 {
  font-size: clamp(3.6rem, 11vw, 5.2rem);
}

#school .quality-about {
  padding: 0 0 100px;
}

#school .quality-about .inner .quality {
  flex-direction: column;
  margin-bottom: 100px;
}

#school .quality-about .inner .quality .img {
  top: -30px;
  text-align: center;
}

#school .quality-about .inner .quality .content {
  width: 100%;
}

#school .quality-about .inner .quality .content h3 {
  font-size: 3.4rem;
  margin-bottom: 38px;
}

#school .quality-about .inner .quality .content p {
  font-size: 2.4rem;
}

#school .quality-about .inner .about {
  flex-direction: column-reverse;
  gap: 41px 0;
}

#school .quality-about .inner .about .content {
  width: 100%;
}

#school .quality-about .inner .about .content h3 {
  font-size: 3.4rem;
  margin-bottom: 30px;
}

#school .quality-about .inner .about .content p {
  font-size: 2.4rem;
}

#school .quality-about .inner .about .img {
  text-align: center;
}

#school .point .bg .gray {
  display: none;
}

#school .point .bg .img {
  width: 100%;
}

#school .point .container {
  padding-bottom: 100px;
}

#school .point .container .each-point {
  flex-direction: column-reverse;
  gap: 40px 0;
  padding-top: 100px;
}

#school .point .container .each-point:not(:last-of-type) {
  /* margin-bottom: 100px; */
}

#school .point .container .each-point .img {
  width: 100%;
}

#school .point .container .each-point .content {
  width: 100%;
}

#school .point .container .each-point .content h2 {
  font-size: 4.4rem;
  margin-bottom: 26px;
}

#school .point .container .each-point .content h2 span {
  font-size: 8.2rem;
  padding-left: 10px;
}

#school .point .container .each-point .content h3 {
  font-size: 3.4rem;
  margin-bottom: 21px;
}

#school .point .container .each-point .content p {
  font-size: 2.4rem;
}

#school .chance {
  padding: 134px 0 129px;
}

#school .chance .inner .content h2 {
  font-size: 3.4rem;
  margin-bottom: 39px;
}

#school .chance .inner .content p {
  font-size: 2.4rem;
}

#school .reason {
  padding: 88px 0 60px;
}

#school .reason h2 {
  font-size: 4.4rem;
  margin-bottom: 79px;
}

#school .reason .inner {
  flex-direction: column;
  gap: 33px 0;
}

#school .reason .inner .each-reason {
  width: 100%;
}

#school .reason .inner .each-reason p:first-of-type {
  font-size: 8.2rem;
  margin-bottom: 23px;
}

#school .reason .inner .each-reason h3 {
  font-size: 3.4rem;
  margin-bottom: 21px;
}

#school .reason .inner .each-reason p:last-of-type {
  font-size: 2.4rem;
}

#school .lecturer-idea {
  padding: 100px 0;
}

#school .lecturer-idea .inner .lecturer {
  flex-direction: column;
  gap: 41px 0;
  margin-bottom: 94px;
}

#school .lecturer-idea .inner .lecturer .img {
  width: 100%;
  text-align: center;
}

#school .lecturer-idea .inner .lecturer .img img {
  max-width: 319px;
}

#school .lecturer-idea .inner .lecturer .content {
  width: 100%;
}

#school .lecturer-idea .inner .lecturer .content h2 {
  font-size: 3.4rem;
  margin-bottom: 38px;
}

#school .lecturer-idea .inner .lecturer .content p {
  font-size: 2.4rem;
}

#school .lecturer-idea .inner .idea h3 {
  font-size: 3.4rem;
  margin-bottom: 33px;
}

#school .lecturer-idea .inner .idea p {
  font-size: 2.4rem;
}

#school .lecturer-idea .inner .idea p:nth-of-type(even) {
  margin-bottom: 50px;
}

#school .lecturer-idea .inner .idea p:last-of-type {
  margin-bottom: 0;
}

#school .treatment {
  padding: 45px 0;
}

#school .treatment .inner {
  gap: 45px 0;
}

#school .treatment .inner .img {
  width: calc(100% / 2 - 45px / 2);
}

#school .price {
  padding: 89px 0 100px;
}

#school .price .inner .heading {
  margin-bottom: 45px;
}

#school .price .inner h3 {
  font-size: 4rem;
  height: 80px;
  line-height: 80px;
  margin-bottom: 41px;
}

@media screen and (max-width: 400px) {
  #school .price .inner h3.sp-small {
    font-size: 3.4rem;
  }
}

#school .price .inner .course .course-price {
  margin-bottom: 36px;
  flex-direction: column;
  gap: 20px 0;
}

#school .price .inner .course .course-price .ttl {
  font-size: 3.4rem;
}

#school .price .inner .course .course-price .dashed {
  display: none;
}

#school .price .inner .course .course-price .each-price {
  text-align: right;
}

#school .price .inner .course .course-price .each-price p:last-of-type span {
  font-size: 3.4rem;
  padding-right: 11px;
}

#school .price .inner .course .text {
  font-size: 2.4rem;
}

#school .price .inner .basic {
  margin-bottom: 48px;
}

#school .price .inner .option .first-text {
  margin-bottom: 46px;
}

#school .price .inner .option .each-course {
  margin-bottom: 33px;
}

#school .price .inner .option .each-course h4 {
  margin-bottom: 16px;
  font-size: 3.4rem;
}

#school .takmidou-link {
  padding: 143px 0;
}

#school .takmidou-link a {
  width: 90%;
  height: 86px;
  font-size: 4.1rem;
  border-radius: 43px;
  max-width: 434px;
}

#school .takmidou-link a::before {
  width: 80px;
  right: -15px;
}

#school .takmidou-link a::after {
  right: -15px;
}


/*------------------------------ お知らせ ------------------------------*/
#news .inner {
  margin-bottom: 100px;
}

#news .inner .news-wrap {
  gap: 30px 0;
  margin-bottom: 100px;
}

#news .inner .news-wrap a {
  width: 50%;
  padding: 0 2%;
}

#news .inner .news-wrap a:nth-of-type(odd) {
  border-left: 1px solid #808080;
}

#news .inner .news-wrap a time {
  font-size: 2rem;
}

#news .inner .news-wrap a p:first-of-type {
  padding-bottom: 50px;
  font-size: 2.4rem;
}

#news .inner .news-wrap a .term {
  right: 6%;
  font-size: 2.8rem;
}


/*------------------------------ お知らせ詳細 ------------------------------*/
#single-news .news {
  margin-bottom: 100px;
}

#single-news .news time {
  font-size: 2.4rem;
  margin-bottom: 8px;
}

#single-news .news h2 {
  font-size: 2.8rem;
  padding-bottom: 8px;
  margin-bottom: 13px;
}

#single-news .news .term {
  margin-bottom: 44px;
  font-size: 2.8rem;
}

#single-news .news .content p {
  font-size: 2.4rem;
}

#single-news .news .content p:not(:last-of-type) {
  margin-bottom: 30px;
}

#single-news .news .content p:last-of-type {
  margin-bottom: 78px;
}


/*------------------------------ アクセス ------------------------------*/
#access .salon-school {
  margin-bottom: 100px;
}

#access .salon-school .container .heading {
  margin-bottom: 47px;
}

@media screen and (max-width: 600px) {
  #access .salon-school .container .heading h2 {
    font-size: clamp(3.2rem, 9vw, 5.2rem);
  }
}

#access .salon-school .container address {
  gap: 42px 0;
  flex-direction: column;
}

#access .salon-school .container address .google-map {
  width: 100%;
}

#access .salon-school .container address .content {
  gap: 33px 0;
  margin-bottom: 39px;
}

#access .salon-school .container address .content .each-address {
  width: 100%;
}

#access .salon-school .container address .content .each-address .list {
  font-size: 3.4rem;
  margin-bottom: 5px;
}

#access .salon-school .container address .content .each-address p {
  font-size: 2.8rem;
}

#access .salon-school .container .note {
  margin-bottom: 100px;
}

#access .salon-school .container .clinic-gym {
  margin: 0 calc(50% - 50vw);
  width: 100vw;
}

#access .salon-school .container .clinic-gym .card {
  padding: 67px 0 63px;
}

#access .salon-school .container .clinic-gym .card .content h3 {
  font-size: 4.5rem;
  margin-bottom: 30px;
}

#access .salon-school .container .clinic-gym .card .content h4 {
  font-size: 3.4rem;
  margin-bottom: 20px;
}

#access .salon-school .container .clinic-gym .card .content p {
  font-size: 1.6rem;
}

#access .salon-school .container .clinic-gym .card a {
  bottom: 37px;
  right: 30px;
}

#access .salon-school .container .clinic-gym .card a {
  font-size: 1.8rem;
  bottom: 25px;
}

#access .salon-school .container .clinic-gym .card a::before {
  width: 128px;
}


/*------------------------------ お問い合わせ 完了 ------------------------------*/
#contact-thanks .content {
  margin-bottom: 140px;
}

#contact-thanks .content h2 {
  font-size: 2.8rem;
  padding-bottom: 8px;
  margin-bottom: 40px;
}

#contact-thanks .content p:not(:last-of-type) {
  margin-bottom: 50px;
}

#contact-thanks .content p:last-of-type {
  margin-bottom: 80px;
}


/* ハンバーガー */
header .container nav {
  position: fixed;
  top: 0;
  left: 0;
  background-color: #fff;
  width: 100vw;
  height: calc(100vh + 64px);
  padding-top: 128px;
  opacity: 0;
  pointer-events: none;
}

header .container nav.active {
  transition: .5s;
  opacity: 1;
  pointer-events: auto;
}

header .container nav ul {
  flex-direction: column;
  gap: 48px 0;
  align-items: center;
}

header .container .hamburger {
  position: absolute;
  width: 50px;
  height: 30px;
  top: 50%;
  right: 5%;
  transform: translateY(-50%);
  cursor: pointer;
}

header .container .hamburger span {
  position: absolute;
  height: 2px;
  background-color: #000000;
  left: 0;
  transition: .5s;
  width: 100%;
}

header .container .hamburger.active span {
  background-color: #000000;
}

header .container .hamburger span:first-of-type {
  top: 0;
}

header .container .hamburger.active span:first-of-type {
  transform: rotate(30deg);
  transform-origin: left top;
  width: 58px;
}

header .container .hamburger span:nth-of-type(2) {
  top: 50%;
  transform: translateY(-50%);
  opacity: 1;
}

header .container .hamburger.active span:nth-of-type(2) {
  opacity: 0;
}

header .container .hamburger span:last-of-type {
  bottom: 0;
}

header .container .hamburger.active span:last-of-type {
  transform: rotate(-30deg);
  transform-origin: left top;
  width: 58px;
}


/*------------------------------ お問い合わせ ------------------------------*/
#contact .wpcf7 {
  margin-bottom: 100px;
}

#contact .contact-form .inner dl {
  flex-direction: column;
}

#contact .contact-form .inner dl:not(:last-of-type) {
  margin-bottom: 43px;
}

#contact .contact-form .inner dl:last-of-type {
  margin-bottom: 100px;
}

#contact .contact-form .inner dl dt {
  font-size: 2.8rem;
  margin-bottom: 10px;
}

#contact .contact-form .inner dl dd input,
#contact .contact-form .inner dl dd textarea {
  padding: 10px;
}


/*------------------------------ お問い合わせ確認 ------------------------------*/
#contact-confirm .wpcf7 {
  margin-bottom: 100px;
}

#contact-confirm .contact-form .inner dl {
  padding: 43px 0 13px;
  flex-direction: column;
}

#contact-confirm .contact-form .inner dl:last-of-type {
  margin-bottom: 100px;
}

#contact-confirm .contact-form .inner dl dt {
  margin-bottom: 14px;
  font-size: 2.8rem;
}

#contact-confirm .contact-form .inner dl dd {
  font-size: 2.4rem;
}

#contact-confirm .contact-form .inner .prev-submit {
  flex-direction: column;
  gap: 50px 0;
}


/*------------------------------ ページネーション ------------------------------*/
.pagination {
  gap: 20px;
}

.pagination .current {
  width: 40px;
  height: 40px;
  font-size: 1.8rem;
}

.pagination a.page-numbers {
  width: 40px;
  height: 40px;
  font-size: 1.8rem;
}