@charset "UTF-8";
/*====================================================================================
1. START MAIN VISUAL SECTION.
====================================================================================*/
/* 施術は5つのSTEPから構成されています。 */
/*  身体の声を聴きながら 一人ひとりのお客様に合わせて、 一から作り上げていく施術。 小さな刺激で、ふっとゆるみ整う。 生命力が高まり、美しさがあふれ出す。 */
.main-mv {
  width: 100%;
  position: relative;
}
.main-mv__ttl {
  letter-spacing: 0.1em;
  font-weight: 500;
  text-shadow: 0px 0.2rem 0.9rem rgba(0, 0, 0, 0.25);
  color: #fff;
  font-family: var(--font-Noto_jp);
}
@media only screen and (min-width: 768px) {
  .main-mv__ttl {
    font-size: 6.1rem;
    line-height: 1.65;
    margin-top: 10rem;
  }
  .main-mv__ttl span {
    font-size: 5.5rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-mv__ttl {
    font-size: 2.2rem;
    margin-top: 6.3rem;
  }
  .main-mv__ttl span {
    font-size: 1.6rem;
  }
}
.main-mv .main-mv_slide {
  width: 100%;
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .main-mv .main-mv_slide {
    height: 100vh;
  }
}
@media only screen and (max-width: 767px) {
  .main-mv .main-mv_slide {
    height: 40rem;
  }
}
.main-mv .main-mv_slide .splide__track {
  height: 100%;
}
.main-mv .main-mv_slide .splide__slide {
  -webkit-transition: opacity 1.6s ease-out !important;
  transition: opacity 1.6s ease-out !important;
}
.main-mv .main-mv_slide .splide__slide.is-active {
  opacity: 1;
}
.main-mv .main-mv_slide .splide__slide.is-active img {
  -webkit-transform: scale(1);
          transform: scale(1);
}
.main-mv .main-mv_slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transform: scale(1.07);
          transform: scale(1.07);
  -webkit-transition: -webkit-transform 15s linear;
  transition: -webkit-transform 15s linear;
  transition: transform 15s linear;
  transition: transform 15s linear, -webkit-transform 15s linear;
}
.main-mv__inner {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 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;
}

.main-message {
  text-align: center;
  font-weight: 500;
}
@media only screen and (min-width: 768px) {
  .main-message {
    font-size: 3rem;
    line-height: 3;
    padding: 9rem 0 14.9rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-message {
    font-size: 1.8rem;
    padding: 4rem 0;
  }
}
.main-message_img {
  width: 100%;
  border-radius: 0.5rem;
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .main-message_img {
    max-width: 111.8rem;
    margin: 7.6rem auto 0;
  }
}
@media only screen and (max-width: 767px) {
  .main-message_img {
    margin: 4rem auto 0;
  }
}
.main-message_img img {
  width: 100%;
  display: block;
}
.main-message p {
  margin: 0;
  letter-spacing: 0.1em;
  font-family: var(--font-Noto_jp);
  color: #130d3d;
}

.fade-in-text {
  opacity: 0;
  -webkit-transform: translateY(100px);
          transform: translateY(100px);
  -webkit-transition: opacity 0.56s ease-out, -webkit-transform 0.7s ease-out;
  transition: opacity 0.56s ease-out, -webkit-transform 0.7s ease-out;
  transition: opacity 0.56s ease-out, transform 0.7s ease-out;
  transition: opacity 0.56s ease-out, transform 0.7s ease-out, -webkit-transform 0.7s ease-out;
  -webkit-transition-delay: calc(var(--delay) * 0.7s);
          transition-delay: calc(var(--delay) * 0.7s);
}
.fade-in-text.visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.slow {
  opacity: 0;
  -webkit-transform: translateY(30px);
          transform: translateY(30px);
  -webkit-transition: opacity 0.6s ease, -webkit-transform 0.6s ease;
  transition: opacity 0.6s ease, -webkit-transform 0.6s ease;
  transition: opacity 0.6s ease, transform 0.6s ease;
  transition: opacity 0.6s ease, transform 0.6s ease, -webkit-transform 0.6s ease;
}
.slow.show {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.main-custom {
  background: url(../images/top/bg.webp) no-repeat center center;
  background-size: cover;
}
@media only screen and (min-width: 768px) {
  .main-custom {
    padding-top: 9rem;
    padding-bottom: 16.4rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom {
    padding: 4rem 1.2rem;
  }
}
.main-custom .cm-title {
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .main-custom .cm-title {
    margin-bottom: 4.3rem;
  }
  .main-custom .cm-title .cm-title__en {
    margin-top: 2.5rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom .cm-title {
    margin-bottom: 2rem;
  }
}
.main-custom__sec01 {
  position: relative;
}
.main-custom__sec01 .img img {
  width: 100%;
}
.main-custom__sec01 .inner {
  text-align: center;
}
.main-custom__sec01 .inner p {
  letter-spacing: 0.1em;
  color: #444343;
  font-family: var(--font-Noto_jp);
}
@media only screen and (min-width: 768px) {
  .main-custom__sec01 .inner p {
    font-size: 2.4rem;
    line-height: 2.5;
    margin: 0 0.9rem 1.3rem;
  }
  .main-custom__sec01 .inner p:last-child {
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec01 .inner p {
    font-size: 1.6rem;
    margin: 0 0 1.3rem;
  }
  .main-custom__sec01 .inner p:last-child {
    margin-bottom: 0;
  }
}
@media only screen and (min-width: 768px) {
  .main-custom__sec01 .inner .inner_btn {
    margin-top: 5.6rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec01 .inner .inner_btn {
    margin-top: 3rem;
  }
}
@media only screen and (min-width: 768px) {
  .main-custom__sec01 .img {
    max-width: 111.8rem;
    margin: 8.8rem auto 0;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec01 .img {
    max-width: 111.8rem;
    margin: 3rem auto 0;
  }
}
.main-custom__sec01 .img img {
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .main-custom__sec02 {
    margin: 8.9rem auto 0;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec02 {
    margin: 4rem auto 0;
  }
}
@media only screen and (min-width: 768px) {
  .main-custom__sec02Inner {
    max-width: 64.4rem;
    margin: auto;
  }
}
.main-custom__sec02ttl {
  font-weight: 400;
  letter-spacing: 0.1em;
  margin: 0;
  text-align: center;
  font-family: var(--font-Noto_jp);
  color: #444343;
}
@media only screen and (min-width: 768px) {
  .main-custom__sec02ttl {
    font-size: 2.4rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec02ttl {
    font-size: 1.6rem;
  }
}
.main-custom__sec02ttl span {
  color: #063190;
}
@media only screen and (min-width: 768px) {
  .main-custom__sec02list {
    margin-top: 5.1rem;
    padding-left: 1.1rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec02list {
    margin-top: 2rem;
  }
}
.main-custom__sec02list dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-weight: 400;
  color: #444343;
}
@media only screen and (min-width: 768px) {
  .main-custom__sec02list dl {
    margin: 0 auto 3rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec02list dl {
    margin: 0 auto 1.5rem;
  }
}
.main-custom__sec02list dl:last-child {
  margin-bottom: 0;
}
.main-custom__sec02list dl dt {
  margin: 0;
  padding: 0;
  border-radius: 0.5rem;
  background: #fff;
  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;
  letter-spacing: 0.1em;
  color: #063190;
  text-align: center;
  font-family: var(--font-Noto_jp);
}
@media only screen and (min-width: 768px) {
  .main-custom__sec02list dl dt {
    width: 10rem;
    height: 10rem;
    font-size: 1.5rem;
    line-height: 1.6666666667;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec02list dl dt {
    width: 8rem;
    height: 8rem;
    font-size: 1.4rem;
  }
}
.main-custom__sec02list dl dd {
  margin: 0;
}
@media only screen and (min-width: 768px) {
  .main-custom__sec02list dl dd {
    width: calc(100% - 10rem);
    padding-left: 3.7rem;
    padding-top: 0.7rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec02list dl dd {
    width: calc(100% - 8rem);
    padding-left: 2rem;
    padding-top: 1.5rem;
  }
}
.main-custom__sec02list dl dd p {
  margin: 0;
  font-weight: 400;
  font-family: var(--font-Noto_jp);
  color: #444343;
  letter-spacing: 0.1em;
}
@media only screen and (min-width: 768px) {
  .main-custom__sec02list dl dd p {
    font-size: 2rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec02list dl dd p {
    font-size: 1.4rem;
  }
}
.main-custom__sec02list dl dd p.ttl {
  font-weight: 500;
}
@media only screen and (min-width: 768px) {
  .main-custom__sec02list dl dd p.ttl {
    font-size: 2.4rem;
    margin-bottom: 0.5rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec02list dl dd p.ttl {
    font-size: 1.6rem;
    margin-bottom: 0.2rem;
  }
}
@media only screen and (min-width: 768px) {
  .main-custom__sec02 .inner_btn {
    margin-top: 6.9rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-custom__sec02 .inner_btn {
    margin-top: 3rem;
  }
}

@media only screen and (min-width: 768px) {
  .main-greeting {
    margin-top: 12.9rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-greeting {
    margin-top: 4rem;
  }
}
@media only screen and (min-width: 768px) {
  .main-greeting__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-top: 9.8rem;
    padding: 0 4.1rem;
  }
}
@media only screen and (min-width: 768px) {
  .main-greeting__inner .img {
    width: 55rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-greeting__inner .img {
    width: 100%;
  }
}
@media only screen and (min-width: 768px) {
  .main-greeting__inner .ct {
    width: calc(100% - 55rem);
    margin: -1rem 0;
    padding-right: 7.1rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-greeting__inner .ct {
    width: 100%;
    margin: 2rem 0;
  }
}
.main-greeting__inner .ct p {
  letter-spacing: 0.05em;
  color: #444343;
}
@media only screen and (min-width: 768px) {
  .main-greeting__inner .ct p {
    margin: 4.7rem 0 0;
    font-size: 1.8rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-greeting__inner .ct p {
    margin: 0;
  }
}
@media only screen and (min-width: 768px) {
  .main-greeting__btn {
    margin-top: 7.1rem;
  }
}
.main-price {
  position: relative;
}
@media only screen and (min-width: 768px) {
  .main-price {
    margin-top: 15rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-price {
    margin-top: 4rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}
.main-price::after {
  content: "";
  clear: both;
  display: block;
}
.main-price_img {
  position: relative;
}
@media only screen and (min-width: 768px) {
  .main-price_img {
    height: 55rem;
    border-radius: 0.5rem 0 0 0.5rem;
    overflow: hidden;
    float: right;
    width: 50%;
  }
  .main-price_img img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center center;
    object-position: center center;
    display: block;
  }
}
@media only screen and (max-width: 767px) {
  .main-price_img {
    width: 100%;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin-top: 3rem;
  }
  .main-price_img img {
    display: block;
    width: 100%;
  }
}
@media only screen and (min-width: 768px) {
  .main-price__inner {
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
  .main-price__inner .ct {
    width: 60rem;
    padding: 0 6.8rem 0 3.1rem;
    margin-top: -0.7rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-price__inner {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
.main-price__inner p {
  letter-spacing: 0.05em;
  color: #444343;
}
@media only screen and (min-width: 768px) {
  .main-price__inner p {
    margin: 4.8rem 0 0;
    font-size: 1.8rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-price__inner p {
    margin: 0;
  }
}
@media only screen and (min-width: 768px) {
  .main-price__inner .float__btn {
    margin-top: 7.9rem;
  }
}
@media only screen and (min-width: 768px) {
  .main-beginner {
    margin-top: 11.2rem;
    margin-bottom: 5.6rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-beginner {
    margin-top: 4rem;
    margin-bottom: 4rem;
  }
}
.main-beginner__ttl {
  text-align: center;
  font-weight: 400;
  letter-spacing: 0.1em;
  margin: 0;
  font-family: var(--font-Noto_jp);
  color: #130d3d;
}
@media only screen and (min-width: 768px) {
  .main-beginner__ttl {
    font-size: 3rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-beginner__ttl {
    font-size: 1.8rem;
  }
}
@media only screen and (min-width: 768px) {
  .main-beginner__inner {
    margin-top: 5.8rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
@media only screen and (max-width: 767px) {
  .main-beginner__inner {
    margin-top: 3rem;
  }
}
.main-beginner__inner a {
  display: block;
  position: relative;
  color: #fff;
  text-decoration: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .main-beginner__inner a {
    width: 50%;
    height: 38.1rem;
    padding-top: 11.5rem;
    padding-left: 10.2rem;
  }
}
.main-beginner__inner a.banner1:after {
  background: rgba(0, 0, 0, 0.3);
}
.main-beginner__inner a.banner2:after {
  background: rgba(0, 0, 0, 0.45);
}
@media only screen and (min-width: 768px) {
  .main-beginner__inner a.banner2 {
    padding-top: 9.5rem;
  }
  .main-beginner__inner a.banner2 .ttl {
    line-height: 1.2;
  }
  .main-beginner__inner a.banner2 .ttl span {
    margin-top: 2rem;
  }
  .main-beginner__inner a.banner2 .cm-btn01 {
    margin-top: 1.7rem;
  }
}
.main-beginner__inner a:hover {
  opacity: 0.7;
}
.main-beginner__inner a:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media only screen and (min-width: 768px) {
  .main-beginner__inner a img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center center;
    object-position: center center;
    display: block;
    -webkit-transition: all 0.8s ease;
    transition: all 0.8s ease;
  }
}
@media only screen and (max-width: 767px) {
  .main-beginner__inner a img {
    width: 100%;
  }
}
.main-beginner__inner a .ct {
  z-index: 9;
}
@media only screen and (min-width: 768px) {
  .main-beginner__inner a .ct {
    position: relative;
  }
}
@media only screen and (max-width: 767px) {
  .main-beginner__inner a .ct {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 0 4rem;
  }
}
.main-beginner__inner a .ttl {
  z-index: 1;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin: 0;
  font-family: var(--font-Noto_jp);
}
@media only screen and (min-width: 768px) {
  .main-beginner__inner a .ttl {
    font-size: 3rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-beginner__inner a .ttl {
    font-size: 1.8rem;
  }
}
.main-beginner__inner a .ttl span {
  letter-spacing: 0;
  font-weight: 400;
  display: block;
}
@media only screen and (min-width: 768px) {
  .main-beginner__inner a .ttl span {
    font-size: 1.6rem;
    margin-top: 0.6rem;
  }
}
@media only screen and (max-width: 767px) {
  .main-beginner__inner a .ttl span {
    font-size: 1.4rem;
    margin-top: 0.5rem;
  }
}
.main-beginner__inner a .cm-btn01 {
  border-bottom: 1px solid #fff;
  color: #fff;
}
@media only screen and (min-width: 768px) {
  .main-beginner__inner a .cm-btn01 {
    margin: 2.8rem 0 0;
  }
}
@media only screen and (max-width: 767px) {
  .main-beginner__inner a .cm-btn01 {
    margin: 3rem 0 0;
  }
}
.main-beginner__inner a .cm-btn01 span {
  margin-top: 0.5rem;
  background: #fff;
}