@charset "UTF-8";
body {
  color: #707070;
  background-color: #fff;
  font-family: "Noto Sans JP", "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
img {
	max-width: 100%;
}
.innerwrap {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
}

.pc-only {
	display: block;
}
.sp-only {
	display: none;
}

/* ヘッダー */
.header {
  width: 100%;
  height: 100px;
  position: fixed;
  background-color: #fff;
  align-items: center;
  z-index: 100;
}
.nav_header {
  height: 100px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
h1 a {
  transition: .4s;
}
h1 a:hover {
  opacity: 0.6;
}
.nav_pc {
  display: flex;
  align-items: center;
}
.nav_pc a {
  transition: .4s;
}
.nav_pc a:hover {
  opacity: 0.6;
}
.nav_list_pc {
  display: flex;
  align-items: center;
  font-size: 16px;
  letter-spacing: 0.2em;
}
.logo {
  width: 170px;
  height: auto;
  margin-top: 15px;
  margin-left: 56px;
}
.nav_list_pc li {
  margin-right: 38px;
}
.cta {
  font-size: 16px;
  letter-spacing: 0.2em;
  background: rgb(255,223,224);
  background: linear-gradient(43deg, rgba(255,223,224,1) 0%, rgba(196,225,255,1) 100%);
  border-radius: 30px;
  margin-right: 74px;
}
.cta a {
  display: block;
  padding: 14px 35px;
}
.nav_sp {
  display: none;
}

/* メインビジュアル */
.mainvisual {
  padding-top: 100px;
  width: 100%;
}
.mainvisual_wrapper {
  position: relative;
  width: 100%;
  height: auto;
}
.mainvisual_container {
  width: 80%;
  margin-left: auto;
  position: static;
}
.img_hero {
  width: 100%;
  height: auto;
  display: block;
}
.img_hero_sp {
  display: none;
}
.maincopy_inner {
  position: absolute;
  top: 30%;
  right: 5%;
}
.maincopy {
  color: #707070;
  font-size: 32px;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.107em;
  line-height: 1.8;
}
.mainvisual_wrapper .mainvisual_container::before {
  content: "";
  width: 40%;
  height: 70%;
  background-color: #F9ECEC;
  position: absolute;
  bottom: -10%;
  left: 10%;
  z-index: -1;
}

/* お知らせ */
.news {
  padding-top:  200px;
  width: 100%;
}
.main_wrapper {
  max-width: 960px;
  margin: 0 auto;
}
.news_container {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start ;
}
.title {
  font-size: 38px;
  color: #90BAE6;
  font-family: 'Quicksand', sans-serif;
  letter-spacing: 0.192em;
}
.title_news {
  border-right: 5px solid #C8D9EB;
  padding-right: 20px;
}
.list_news_box {
  display: block;
  width: 775px;
  font-size: 16px;
  letter-spacing: .05em;
  padding-left: 15px;
}
.list_news_box a {
	transition: .4s;
}

.list_news_box a:hover {
	opacity: 0.6;
}
.a_news {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #90BAE6;
  padding: 20px 0 20px 0;
}
.a_news {
  display: block;
}
.a_news:first-child {
  padding-top: 0;
}
.news_ttl {
  padding-left: 75px;
}
.list_news_inner {
  padding-left: 20px;
}

/* コンセプト */
#concept {
  padding-top:50px;
  margin-top:-50px;
}
.concept {
  width: 100%;
}
.concept_bg {
  background-image: url(../img/concept1.jpg);
  background-size: 60%;
  background-repeat: no-repeat;
  background-position: top 130px left -10%;
}
.title_center {
  margin-top: 150px;
  text-align: center;
  font-size: 38px;
  color: #90BAE6;
  font-family: 'Quicksand', sans-serif;
  letter-spacing: 0.192em;
}
.concept_container {
  max-width: 100%;
  padding-top: 200px;
  text-align: right;
}
.copy {
  max-width: 610px;
  margin-left: auto;
  text-align: left;
  font-size: 32px;
  font-family: 'Noto Serif JP', serif;
  line-height: 2.1;
}
.copy_sub_innner {
  max-width: 610px;
  margin-left: auto;
  text-align: left;
}
.copy_sub {
  padding-top: 50px;
  font-size: 18px;
  letter-spacing: 0.03em;
  line-height: 2.1;
}
.concept_bg2 {
  width: 100%;
  position: relative;
}
.concept_bg2 img {
  display: block;
  margin-top: 70px;
  margin-left: auto;
  width: 20%;
  height: auto;
  position: relative;
  z-index: -100;
}

/* サービス */
#service {
  padding-top:50px;
  margin-top:-140px;
}
.container {
  width: 100%;
}
.list_service {
  margin-top: 105px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
}
.list_service_item {
  flex-basis: 33.33%;
  display: block;
  padding: 50px 50px;
}
.service_title {
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.03em;
  margin-bottom: 35px;
}
.list_service_item img {
  width: 190px;
  height: auto;
  display: block;
  margin: 0 auto;
}
.text {
  font-size: 15px;
  letter-spacing: 0.03em;
  line-height: 1.8;
  margin-top: 33px;
}

/*  メニュー */
#menu {
  padding-top:50px;
  margin-top:-50px;
}
.list_menu_item {
  display: flex;
  justify-content: space-between;
  margin-top: 115px;
}
.list_menu_item li {
  margin-right: 15px;
  flex-basis: 33.33%;
  display: block;
  background-color: #ECF2F9;
  padding: 40px 30px;
}
.list_menu_item li img {
  width: 207px;
  height: auto;
  display: block;
  margin: 0 auto;
  margin-top: 25px;
}
.title_menu {
  position: relative;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.03em;
  margin-bottom: 35px;
}
.title_menu:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -21px;
  width: 68px;
  height: 1px;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  background-color: #90BAE6;
}
.price_menu {
  display: flex;
  justify-content: center;
  margin-bottom: 16px;
}
.price {
  font-size: 20px;
  align-self: flex-end;
}
.yen {
  font-size: 15px;
  align-self: flex-end;
  margin-left: 3px;
}
.tax {
  font-size: 12px;
  align-self: flex-end;
}
.menu_innner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 30px;
}
.menu_innner p {
  font-size: 15px;
}
.sub_menu {
  width: 30%;
  line-height: 1.5;
}
.text_menu {
  width: 70%;
  margin-bottom: 30px;
  padding-left: 10px;
  line-height: 1.5;
}

/* プロフィール */
#profile {
  padding-top:50px;
  margin-top:-50px;
}
.profile {
  width: 100%;
}
.profile_wrapper {
  max-width: 90vw;
}
.profile_bg {
  background-image: url(../img/prof-bg.jpg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: top 115px left 0;
}
.profile_innner {
  width: 100%;
  display: flex;
  justify-content: space-between;
}
.profile_face_innner {
  width: 35%;
  align-self: flex-end;
  position: relative;
}
.img_face {
  display: block;
  width: 100%;
  margin-left: auto;
  position: absolute;
  right: -30px;
  bottom: 0;
  z-index: 50;
}
.box_text_profile {
  width: 65%;
  padding-top: 200px;
  margin-left: auto;
}
.text_profile_innner {
  width: 100%;
  background-color: #fff;
  padding: 80px 90px 100px 90px;
}
.text_profile_title {
  font-size: 24px;
  letter-spacing: 0.03em;
  margin-bottom: 47px;
}
.text_profile {
  font-size: 15px;
  line-height: 2.3;
  letter-spacing: 0.03em;
  margin-bottom: 47px;
}
.name {
  font-size: 21px;
  letter-spacing: 0.03em;
  margin-bottom: 47px;
  text-align: right;
}
.skills {
  margin-left: 0;
  margin-top: 47px;
}
.text_skills {
  font-size: 12px;
  color: #90BAE6;
  line-height: 2.0;
  letter-spacing: 0.03em;
  text-align: right;
}

/* CTA */
.reservation {
  width: 100%;
  margin-top: 130px;
  background-image: url(../img/cta-bg.jpg);
  background-size: cover;
  background-repeat: no-repeat;
}
.cta_container {
  margin: 0 auto;
  padding-top: 108px;
  padding-bottom: 132px;
}
.title_reservation {
  text-align: center;
  font-size: 38px;
  color: #fff;
  font-family: 'Quicksand', sans-serif;
  letter-spacing: 0.192em;
  margin-bottom: 76px;
}
.text_cta {
  font-size: 18px;
  text-align: center;
  margin-bottom: 43px;
  letter-spacing: 0.09em;
  color: #fff;
}
.btn_cta {
  width: 476px;
  text-align: center;
  display: block;
  background: rgb(255,223,224);
  background: linear-gradient(43deg, rgba(255,223,224,1) 0%, rgba(196,225,255,1) 100%);
  border-radius: 29px;
  padding: 35px 110px;
  font-size: 21px;
  letter-spacing: 0.09em;
  margin: 0 auto;
  color: #707070;
  transition: .4s;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .1);
  box-shadow: 0 5px 10px rgba(0, 0, 0, .1);
}
.btn_cta:hover {
	-webkit-transform: translate(0, -2px);
  transform: translate(0, -2px);
  -webkit-box-shadow: 0 8px 15px rgba(0, 0, 0, .2);
  box-shadow: 0 8px 15px rgba(0, 0, 0, .2);
}
.btn_cta a {
  display: block;
}


/* フッター */
.footer {
  background-color: #F9ECEC;
}
.footer_container {
  display: flex;
  justify-content: space-between;
  padding-top: 110px;
}
.left_footer a {
	transition: .4s;
}
.left_footer a:hover {
	opacity: 0.6;
}
.logo_footer {
  width: 160px;
  height: auto;
}
.icon_sns {
  padding-top: 40px;
}
.icon_sns ul {
  display: flex;
  gap: 15px;
}
.icon_sns ul li {
  align-self: flex-end;
}
.icon_sns img {
  width: 25px;
  height: 25px;
}
.right_footer {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  align-content: flex-start;
  width: 33.33%;
}
.right_footer li {
  align-self: flex-start;
  margin-bottom: 25px;
}
.right_footer li a {
  align-self: flex-start;
  letter-spacing: 0.2em;
  margin-left: 22px;
  transition: .4s;
}
.right_footer li a:hover {
  opacity: 0.6;
}
.copyright {
  padding-top: 115px;
  padding-bottom: 90px;
  text-align: center;
  font-size: 12px;
  letter-spacing: 0.2em
}



/*------------------------------------
      スマホ 
------------------------------------*/
@media screen and (max-width:768px) {

  .pc-only {
    display: none;
  }
  .sp-only {
    display: block;
  }

  /* スマホ　ヘッダー */

  .header {
    width: 100vw;
    height: 60px;
  }
  .nav_header {
    height: 60px;
  }
  .logo {
    width: 97px;
    height: auto;
    margin-top: 10;
    margin-left: 25px;
  }

  /* spメニュー */

  .nav_pc {
    display: none;
  }

  /* メニューを画面上部に固定表示しています */
  .nav_sp {
    display: block;
    position: fixed;
    right: 0;
    top: 0;
    width: 100%;
    z-index: 9999;
  }
  /* メニューアイコンを画面右上に固定しています */
  .nav_sp .menu-icon {
    cursor: pointer;
    position: absolute;
    right: 25px;
    top: 20px;
    padding-top: 5px;
    height: 12px;
  }
  /* メニューアイコン（三本線）の真ん中の線です */
  .nav_sp .menu-icon .navicon {
    background: #707070; /* 色は自由に変更可能です */
    display: block;
    height: 2px; /* 太さ */
    width: 31px; /* 長さ */
    position: relative;
    transition: background .4s ease-out; /* 形が変わる時のアニメーション */
  }
  /* メニューアイコン（三本線）の上と下の線を疑似要素で追加 */
  .nav_sp .menu-icon .navicon::before,
  .nav_sp .menu-icon .navicon::after {
    background: #707070; /* 色は自由に変更可能です */
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    transition: all .4s ease-out; /* 形が変わる時のアニメーション */
    width: 100%;
  }
  .nav_sp .menu-icon .navicon::before {top: 10px;} /* 位置を上にずらしています */
  .nav_sp .menu-icon .navicon::after {top: -10px;} /* 位置を下にずらしています */
  
  /* 表示されるメニューです */
  .nav_sp .nav_menu_sp .nav_list_sp {
    background-color: #F9ECEC;
    overflow: hidden;
    max-height: 0; /* ★最初は高さを0にして非表示状態に */
    transition: max-height .6s; /* 表示されるときのアニメーション */
    text-align: center;
  }
  /* メニュー部分のデザインです */
  .nav_sp .nav_menu_sp .nav_list_sp  {
    height: 100vh;
    margin: 0 auto;
    display: block;
  }
  .nav_sp .nav_menu_sp .nav_list_sp li {
    margin-bottom: 35px;
    letter-spacing: 0.15em;
  }
  .nav_sp .nav_menu_sp .nav_list_sp li a {
    margin: 0 auto;
  }

  .logo_spmenu {
    margin-top: 85px;
    margin-bottom: 25px;
    width: 132px;
    height: auto;
  }
  .cta_sp {
    width: 190px;
    height: 50px;
    font-size: 15px;
    letter-spacing: 0.2em;
    background: rgb(255,223,224);
    background: linear-gradient(43deg, rgba(255,223,224,1) 0%, rgba(196,225,255,1) 100%);
    border-radius: 30px;
    padding: 11px 24px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  /* チェックボックスは常に非表示です */
  .nav_sp .menu-btn {
    display: none;
  }
  /* ▼▼▼以下はチェックボックスがONの時の状態です▼▼▼ */
  .nav_sp .menu-btn:checked ~ .nav_menu_sp .nav_list_sp {
    max-height: 100vh;
    transition: max-height .6s;
  }
  /* メニューボタンの中央の線を非表示に */
  .nav_sp .menu-btn:checked ~ .menu-icon .navicon {background: transparent;}

  /* メニューボタンの上下の線を45度傾けて✕印を作ります */
  .nav_sp .menu-btn:checked ~ .menu-icon .navicon::before {transform: rotate(-45deg);top: 0;}
  .nav_sp .menu-btn:checked ~ .menu-icon .navicon::after {transform: rotate(45deg);top: 0;}




  /* スマホ　メインビジュアル */


  .mainvisual {
    padding-top: 90px;
    /* height: calc(100vh - 60px); */
  }
  .mainvisual_container {
    width: 90%;
    margin-left: auto;
  }
  .img_hero {
    display: none;
  }
  .img_hero_sp {
    width: 100%;
    height: auto;
    display: block;
    padding-top: 90px;
    bottom: 5%;
  }
  .maincopy_inner {
    position: absolute;
    top: 0%;
    right: auto;
  }
  .maincopy {
    color: #707070;
    font-size: 20px;
    font-family: 'Noto Serif JP', serif;
    letter-spacing: 0.107em;
    line-height: 1.8;
  }
  .mainvisual_wrapper .mainvisual_container::before {
    content: "";
    width: 35%;
    height: 35%;
    background-color: #F9ECEC;
    position: absolute;
    bottom: -35px;
    left: 0%;
    z-index: -1;
  }

    /* スマホ　お知らせ */
  .news {
    padding-top:  80px;
    width: 100%;
  }
  .main_wrapper {
    max-width: calc(100vw - 50px);
  }
  .news_container {
    width: 100%;
    display: flex;
    flex-direction: column;
  }
  .title {
    font-size: 20px;
  }
  .title_news {
    border-right: 0 solid #C8D9EB;
    padding-right: 0;
    padding-bottom: 35px;
    margin: 0 auto;
  }
  .list_news_box {
    width: 100%;
    font-size: 12px;
    padding-left: 0;
  }
  .a_news {
    padding: 15px 0 15px 0;
  }
  .news_ttl {
    padding-left: 30px;
  }

  /* スマホ　コンセプト */

  .concept {
    margin-bottom: 80px;
  }
  .concept_bg {
    background-image: none;
  }
  .title_center {
    margin-top: 80px;
    font-size: 20px;
  }
  .concept_container {
    height: 210px;
    margin-top: 48px;
    padding-top: 0;
    padding-right: 25px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }
  .concept_container {
    background-image: url(../img/concept1.jpg);
    background-size: 75%;
    background-repeat: no-repeat;
    background-position: top 0 left -20px;
  }
  .copy {
    font-size: 19px;
    line-height: 1.6;
  }
  .copy_sub_innner {
    max-width: 100%;
    margin-left: 0;
    padding-left: 25px;
    padding-bottom: 25px;
  }
  .copy_sub_innner {
    background-image: url(../img/concept2.jpg);
    background-size: 28%;
    background-repeat: no-repeat;
    background-position: right bottom;
  }
  .copy_sub {
    width: 80%;
    padding-top: 30px;
    font-size: 13px;
  }
  .concept_bg2 img {
    display: none;
  }


  /* スマホ　サービス */

  .list_service {
    margin-top: 30px;
    display: flex;
    flex-direction: column;
  }
  .list_service_item {
    padding: 30px 30px;
  }
  .service_title {
    font-size: 18px;
    margin-bottom: 20px;
  }
  .list_service_item img {
    width: 132px;
  }
  .text {
    font-size: 12px;
    letter-spacing: 0.03em;
    line-height: 1.6;
    margin-top: 20px;
  }

  /*  スマホ　メニュー */
  .list_menu_item {
    flex-direction: column;
    margin-top: 48px;
  }
  .list_menu_item li {
    margin-right: 15px;
    padding: 30px 30px;
    margin-bottom: 20px;
  }
  .list_menu_item li img {
    width: 207px;
    margin: 0 auto;
    margin-top: 25px;
  }
  .title_menu {
    font-size: 18px;
    margin-bottom: 35px;
  }
  .menu_innner {
    width: 207px;
    margin: 0 auto;
    margin-top: 30px;
  }
  .menu_innner p {
    font-size: 12px;
  }
  .text_menu {
    margin-bottom: 15px;
  }

  /* スマホ　プロフィール */
  .profile_wrapper {
    max-width: 100%;
  }
  .profile_bg {
    background-image: none;
  }
  .profile_innner {
    flex-direction: column;
  }
  .plofile_bg_sp {
    width: 80%;
    display: block;
    margin-top: 78px;
  }
  .profile_face_innner {
    display: none;
  }
  .box_text_profile {
    width: 100%;
    padding-top: 0;
    margin: 0 auto;
  }
  .text_profile_innner {
    padding: 30px 0;
    margin-top: 30px;
    background-color: transparent;
  }
  .text_profile_title {
    display: none;
  }
  .name {
    font-size: 20px;
    margin-bottom: 36px;
    text-align: left;
  }
  .text_profile {
    font-size: 13px;
    line-height: 2.0;
    margin-bottom: 23px;
  }
  .skills {
    margin-left: auto;
    margin-top: 0;
  }
  .skills_box_sp {
    background-image: url(../img/prof-face.jpg);
    background-size: 80%;
    background-repeat: no-repeat;
    background-position: right -20px bottom 0;
    padding-bottom: 180px;
  }
  .text_skills_sp_box {
    max-width: calc(100vw - 50px);
    margin: 0 auto;
  }
  .text_skills {
    text-align: left;
  }


  /* スマホ　CTA */
  .reservation {
    margin-top: 75px;
  }
  .cta_container {
    padding-top: 50px;
    padding-bottom: 55px;
  }
  .title_reservation {
    font-size: 20px;
    margin-bottom: 42px;
  }
  .text_cta {
    font-size: 13px;
    color: #fff;
    letter-spacing: 0.05em;
    margin-bottom: 26px;
  }
  .btn_cta {
    width: 214px;
    padding: 15px 35px;
    font-size: 13px;
  }

  /* フッター */
  .footer {
    background-color: #F9ECEC;
  }
  .footer_container {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-top: 40px;
  }
  .left_footer {
    margin: 0 auto;
  }
  .logo_footer {
    width: 97px;
    height: auto;
  }
  .icon_sns {
    padding-top: 21px;
    margin: 0 auto;
  }
  .icon_sns ul {
    display: flex;
    justify-content: center;
    gap: 15px;
  }
  .icon_sns ul li {
    align-self: flex-end;
  }
  .icon_sns img {
    width: 20px;
    height: 20px;
  }
  .right_footer {
    display: none;
  }
  .right_footer li {
    align-self: flex-start;
    margin-bottom: 25px;
  }
  .right_footer li a {
    align-self: flex-start;
    letter-spacing: 0.2em;
    margin-left: 22px;
  }
  .copyright {
    padding-top: 45px;
    padding-bottom: 45px;
    text-align: center;
    font-size: 10px;
    letter-spacing: 0.2em
  }
}

/* アニメーション */
.fadeIn {
	opacity: 0;
	transition: 3s;
}
.fadeIn.is-show {
	opacity: 1;
}
.fadeIn_up {
  opacity: 0;
  transform: translate(0, 10%);
  transition: 2s;
}
.fadeIn_up.is-show {
  transform: translate(0, 0);
  opacity: 1;
}
.inview-delay05 {
  transition-delay: .5s;
}