@charset "utf-8";

/* ------ */
/* common */
/* ------ */
:root {
  --color:#4AA9BC;
  --color:#4A2424;

}
html{

	font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 400;
	font-size:16px;
  line-height: 1.6;
	scroll-behavior: smooth;
scroll-padding-top: 90px;

	color:var(--color);
}

@media screen and (max-width: 767px) {
	html{
		scroll-padding-top: 120px;
	}
}
.min{
	font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho Pro", serif;
}
body{

}
img{
	max-width: 100%;
}

a{
	color:var(--color);
}
strong{
	font-weight:bold;
}
.wrapper {
  background: #FAF8F0;
	position:relative;
}

.contents-inner {
	max-width:1400px;
  padding: 0 0px;
	margin:0 auto;
}

@media screen and (max-width: 1500px) {

	.contents-inner {
		width:96%;
	}
}
@media screen and (max-width: 767px) {
  .contents-inner {
    padding: 0 15px;
  }
}

/* ------ */
/* header */
/* ------ */

.header {
  padding: 0;
  transition: .5s;
	border-top:3px solid #4A2424;
 position: sticky;
 top: 0;
  z-index: 99999;
	background:#FAF8F0;
}

.header-inner {
	max-width:1400px;
	margin:0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
	padding:20px 0 20px 0;

}

.header-logo {
  display: flex;
  align-items: center;
  gap: 14px;
}

.header-logo a {
  width: 150px;
}
.is-scrolled .header-logo a {
  width: 100px;
}

.is-scrolled .header-inner {

  padding:12px 0 12px 0;
}


.is-scrolled .header-btn {
  padding: 8px 20px 8px 20px;
}


.header-lead {
	
  font-size: 14px;

  color: var(--color);
}
	.pc-menu{
		display:flex;
		gap:20px;
		  align-items: center;
	}
	.pc-menu .header-nav{
		display:flex;
	  gap: 40px;
	}
	.pc-menu .header-nav-list {
	  display: flex;
	  align-items: center;
	  gap: 40px;
	  transition: .5s;
		margin-right:20px;
	} 

.pc-menu .header-nav-list a {
	  display: block;
	  font-weight: 400;
	  font-size: 16px;
	  line-height: 17px;
	  color: #2B0000;
	}
.pc-menu .header-nav-lang{
	font-weight:bold;
}
.pc-menu .header-nav-lang a{
	font-weight:normal;
 color: #2B0000;
	text-decoration:underline;
}

.sp-menu .header-nav{
		background:#4A2424;
}
.sp-menu .header-nav-list{
	display:flex;

	  align-items: center;
		padding:8px 0 12px 0;
	  transition: .5s;
	color:#fff;
justify-content: center;
}


.sp-menu .header-nav-list a{
	color:#fff;
	font-size:12px;
	line-height:1;
}
.hotpepper-btn {
		opacity:0.9;
	  display: grid;
	  place-items: center;
	  font-weight: 500;
	  font-size: 14px;
	  line-height:1;

	  color: #FFFFFD;

		padding:15px 20px 15px 20px;
		background:#963059;
		border-radius:100px;
		margin-bottom:10px;
}
.hotpepper-btn:hover{
	opacity:0.5;
}
.sc-btn {
		opacity:0.9;
	  display: grid;
	  place-items: center;
	  font-weight: 500;
	  font-size: 14px;
	  line-height:1;

	  color: #FFFFFD;

		padding:15px 20px 15px 20px;
		background:#fc7551;
		border-radius:100px;
		margin-bottom:5px;
}

.sc-btn:hover{
	opacity:0.5;
}
.pc-menu .header-btn:hover {
		opacity:0.5;
}




@media screen and (max-width: 1500px) {

	.header-inner {
		width:90%;
	}

  .header-nav-list {
    gap: 20px;
  }
}

@media screen and (max-width: 1100px) {


  .header-logo a {
    width: 150px;
  }


}

.sp-menu{
	  display: none;
}

@media screen and (max-width: 760px) {
	.pc-menu {

	}
.sp-menu{
	  display: block;
}

.pc-menu .header-nav{
			  display: none;
	}
}






/* ------ */
/* footer */
/* ------ */

.footer {

  position: relative;

  padding: 30px 0 30px;
	background: #4A2424;
	color:#fff;
}



.footer-nav-list {
  display: flex;
  justify-content: center;
  gap: 50px;
  margin-bottom: 24px;
	flex-wrap: wrap;
}

.footer-nav-list a {
  font-weight: 700;
  font-size: 14px;
		color:#fff;
}

.footer-copyright {
  display: block;
  font-weight: 600;
  font-size: 12px;
  line-height: 14px;
  text-align: center;

}

@media screen and (max-width: 767px) {
  .footer {
    padding: 30px 15px 200px;
  }
  
  .footer-nav-list {
		gap:0;
    margin-bottom: 20px;
  }
  .footer-nav-list li{
		width:50%;
		text-align:center;
		margin-bottom:10px;
	}
  .footer-nav-list a {
    font-size: 14px;
    line-height: 1.5;
  }
  
  .footer-copyright {
    font-size: 11px;
    line-height: 1.5;
  } 
}

/* ------ */
/* component */
/* ------ */

/* title */

.title-lv2 {
  position: relative;

  font-weight: 800;
  font-size: 30px;

  text-align: center;
  color: var(--color);
  margin-bottom: 30px;
}



@media screen and (max-width: 767px) {

}

/* btn */

.btn {
  position: relative;
  display: grid;
  place-items: center;
  font-weight: 500;
  font-size: 20px;
  line-height: 48px;
  color: #7B0606;
  max-width: 320px;
  height: 70px;
  border: 1px solid #7B0606;
  padding-right: 12px;
  margin: auto;
}

.btn::after {
  content: "";
  position: absolute;
  top: 48%;
  right: 32px;
  border-right: solid 1px #7B0606;
  border-bottom: solid 1px #7B0606;
  width: 12px;
  height: 12px;
  transform: rotate(-45deg) translateY(-50%);
}
.btn:hover {
	background:#7B0606;
	color:#fff;
}

.btn:hover::after {
  border-right: solid 1px #fff;
  border-bottom: solid 1px #fff;
}
@media screen and (max-width: 767px) {
  .btn {
    font-size: 16px;
    line-height: 1.5;
    height: 60px;
		max-width:90%;
  }
  
  .btn::after {
    width: 8px;
    height: 8px;
  }  
}

/* ------ */
/* kv */
/* ------ */

.kv {
  position: relative;

}
.kv::before {
	content:"";
	width:100%;
	height:100%;
	background:#000;
	opacity:0.2;
	display:block;
  position: absolute;
}

.kv::after {
	content: "";
  position: absolute;
  left: 0;
  bottom:0px;
  background: url(/assets/images/wave.svg) center/cover no-repeat;
  width: 100%;
  height: 5vw;

}

.kv-title-box {
 position: absolute;
  top: 40%;
  right: 20%;
  transform: translate(-50%, -50%);
}

.kv-fukidashi{
 position: absolute;
	width:200px;
	display:block;
bottom:-20px;
right:-80px;

}
.kv-fukidashi img{
	width:100%;
}
.kv-title {
 
	display: inline-flex;
	flex-direction: row-reverse;
	gap:10px;
	align-items: flex-start; 
}

.lang_en .kv-title {
  position: absolute;
  top:5%;
  left:3%;
 	right:auto;
  transform: translate(0, 0);
}
.kv-title span{
	font-size: clamp(24px, 2.92vw, 42px);
  font-weight: 600;
	background:#4A2424;
  color: #fff;
  writing-mode: vertical-rl;
  letter-spacing: .2em;
	display: inline-block;
	padding:8px;
	width: fit-content;

}
.lang_en .kv-title{
	display: block;
}
.lang_en .kv-title span{
	display: block;
  letter-spacing: 0.1em;
  writing-mode: horizontal-tb;
	margin-bottom:10px;
	font-size: clamp(20px, 2.92vw, 30px);
}
.kv-img {
  width: 100%;
}



.kv-text {
  font-weight: 600;
  font-size: 18px;
  line-height:1.4;

}

.kv-time {
  font-weight: 600;
  font-size: 28px;
  line-height: 30px;
  margin: 10px 0 10px;
}

.kv-price {
  font-weight: 600;
  font-size: 40px;
  line-height: 40px;
}
.kv-price-yen{
	  font-size:24px;
}
@media screen and (max-width: 767px) {


	.kv-title-box {
	 position: absolute;
	  top: 40vw;
	  right: -10vw;
	  transform: translate(-50%, -50%);
	}
	.kv-title {
	  gap: 5px;
	}
.kv-fukidashi{
 position: absolute;
	width:130px;
	display:block;
	bottom:-50px;
	right:-10px;

}
  .kv-text {
    font-size: 3.8vw;
    line-height: 1.6;
		margin-bottom:10px;
  }

  .kv-time {
    font-size:5vw;
    line-height: 2.08vw;
    margin: 0.55vw 0 10px;
  }

  .kv-price {
    font-size: 6vw;

  }

  .kv-price .kv-price-yen{
    font-size: 4vw;
	}


	.lang_en .kv-title {
	  position: absolute;
		top:auto;
	  bottom:10%;
	  left:3%;
	 	right:auto;
	  transform: translate(0, 0);
	}



}

@media screen and (max-width: 767px) {

}

/* ------ */
/* concept */
/* ------ */

.concept {
  padding-top: 40px;
  padding-bottom: 0;

}
.concept-important{
	font-size:14px;
	line-height:1.6;
	margin-bottom:20px;
}
.concept-title {
  font-weight: 600;
  font-size: 36px;
	line-height:1.6;
  text-align: center;
  margin-bottom: 33px;
	letter-spacing:0.1em;
}
.lang_en .concept-title{
	letter-spacing:0;
}

.lang_en .concept-important{
	border:1px solid #4A2424;
	max-width:400px;
	margin:0 auto 30px auto;
	text-align:center;
	padding:10px;
	width:100%;
}

.lang_en .concept-important-title{
	font-weight:bold;
}
.concept-lead {
  font-weight: 400;
  font-size: 18px;
  line-height: 30px;
  text-align: center;
  margin-bottom: 76px;
}
.concept-lead strong{
	font-weight:bold;
}
.concept-media {
  position: relative;
  display: flex;
  align-items: center;
}

.concept-media.reverse {
  flex-direction: row-reverse;
}

.concept-img {
  width: 50%;
}

.concept-body {
  position: absolute;
  right: 0;

  width: 50%;
  background:#4A2424;
  z-index: 1;
	height:100%;

	color:#fff;

  padding-right: clamp(5px, 4vw, 100px);
  padding-left: clamp(5px, 4vw, 100px);
  padding-top: clamp(10px, 3vw, 150px);
  padding-bottom: clamp(20px, 3vw, 150px);
}

.concept-media.reverse .concept-body {
  left: 0;
  right: auto;

}

.concept-media-title {
  font-weight: 700;

  line-height: 1.6;
	font-size: clamp(24px, 2.22vw, 32px);
	margin-bottom: clamp(16px, 1vw, 30px);
}



.concept-media-text {
  font-weight: 500;
  font-size: clamp(14px, 1.11vw, 16px);
  line-height: 2;
}


@media screen and (max-width: 960px) {
.concept-img {
  width: 100%;
}
	.concept-media {

	  display: block;

	}

	.concept-body {
	  position: static;
	  right: 0;

	  width: 100%;
	  background:#4A2424;
	  z-index: 1;
		height:100%;

		color:#fff;

	  padding-right: clamp(15px, 4vw, 100px);
	  padding-left: clamp(15px, 4vw, 100px);
	  padding-top: clamp(15px, 3vw, 150px);
	}

	.concept-title {

	  font-size:5vw;

	}
}

/* ------ */
/* menu */
/* ------ */

.menu {
  position: relative;
	padding-bottom:60px;
	padding-top:60px;
	background:#fff;
}


.menu-wrap{


	width:100%;
	padding:30px 0;
	margin:0 auto;

}
.menu-lead {
  font-weight: 600;
  font-size: 20px;
  

  text-align: center;
  margin-bottom: 30px;
}

.menu-title {
  font-weight: 700;
  font-size: 24px;



  text-align: center;
 
  margin-bottom: 30px;
}

.menu-title span{
	display:inline-block;
	padding:5px;

}
.menu-list{

  display: flex;
	margin:0 auto 60px auto;
	flex-wrap: wrap;
	justify-content: space-between; 
}
.menu-list dl{
	width:49%;
  display: block;
	position:relative;
	padding:15px;
	color:var(--color);
	margin-bottom:20px;
	border-radius:10px;
	background: #FAF8F0;
	border:1px solid #b89a9a;


  display: flex;

  justify-content: space-between;
  flex-wrap: wrap;
	line-height:1.6;
  font-size: 16px;
}







.menu-list dt{
	width:100px;

}


.menu-list dt img{
	width:100%;
	border-radius:5px;
}
.menu-list dd{
	width:calc(100% - 120px);

}
.menu-list dd p{
	font-size:14px;
}
.menu-list .menu-name{
	font-weight:bold;
	margin-bottom:5px;
}

@media screen and (max-width: 767px) {
  .menu {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .menu-lead {
    font-size: 16px;
    line-height: 1.5;
    margin-bottom: 20px;
  }

  .menu-title {
    font-size: 20px;
    line-height: 1.5;
    margin-bottom: 10px;
  }

  .menu-list {
		width:100%;
    display: block;
    font-size: 14px;
    line-height: 1.5;
    margin: 0 auto 40px;
  }
	.menu-list dl {
  
	font-size:16px;

	width:100%;
	}
  .menu-list dd {
    margin-top: 3px;
    margin-bottom: 10px;

  }

  .menu-list + .menu-title {
    margin-top: 40px;
  }
}

/* ------------------------------------
ボタンの基本スタイル
------------------------------------*/

/* ボタン自体のスタイル */

.shine-button {
	background: #C76009;
	margin: 1em auto;

	text-align: center;
	display: block;
	line-height:1.6;
	width: 100%;
	max-width: 500px;
	cursor: pointer;
	position: relative;
	overflow:hidden;
	font-weight:bold;
	border-radius: 100px;
}


.shine-button a {
	display: block;	
	width: 100%;
	padding: 20px;

	color: white;
	text-decoration:none;
}


/* リンク自体でボタンを作る場合の追加のスタイル
（ボックス＋その中にリンクのあるボタンの場合には不要）*/

a.shine-button {
    padding: 1em;	/* 上下左右に1文字分の余白を設ける */
    color: white;	/* 文字色を白色に指定*/
    text-decoration: none;	/* リンクの下線は非表示 */
}


/* ------------------------------------
ボタンの外側にボックス作成
（疑似要素「before」を使う）
------------------------------------*/
.shine-button::before {
	content: "";			/* 文字は表示しないので中身無しを指定 */
    
	position: absolute;	/* ボタンの位置を基準に絶対値指定する */
	display: block;		/* 形式はblock */

	background: linear-gradient(to right,rgba(255,255,255,0), rgba(255,255,255,0.9));
    /* 背景色は透明から白になるグラデーション */
	
	width: 50px;	/* 横幅 */
	height: 50px;	/* 縦幅 */

	top: -60px;	/* ボタン左上を基準に上へ60pxの位置 */
	left: -60px;	/* ボタン左上を基準に左へ60pxの位置 */


	/* アニメーションの動作指定 */
	animation-name:shine-run;	/* アニメーション名の指定 */
	animation-delay:0s;		/* アニメーションの開始時間指定 */
	animation-duration: 3s;	/* アニメーション動作時間の指定 */
	animation-timing-function: ease-in;
	/* アニメーションの動き指定（徐々に早く）*/
	animation-iteration-count: infinite;
	/* アニメーションの無限繰り返しの指定 */
}


/* ------------------------------------
アニメーションのタイミングとボックスの
拡大率、角度、透過率の指定
------------------------------------*/
@keyframes shine-run {
    0% {
        transform: scale(0) rotate(50deg);
        /* アニメ開始時は大きさ0、50度の傾き */
        
        opacity: 0;
        /* アニメ開始時は全透過 */
    }

    40% {
        transform: scale(1) rotate(50deg);
        /* 40%まで進む間に大きさを等倍に。傾きは50度のまま*/
        
        opacity: 1;
        /* 透過しない（しっかり表示される）ように1を設定 */
    }

    100% {
        transform: scale(250) rotate(50deg);
        /* 最後は元の大きさの250倍になるようにする。傾きは50度のまま*/

        opacity: 0;
        /* 全透過になるようにして、徐々に消えるような変化を付ける */
    }
}


/* ------ */
/* faq */
/* ------ */

.faq {
  padding-top: 60px;
	margin-bottom:60px;
}

.faq-accordion {

  margin: 60px auto 0;
}

.faq-accordion-list {
border:1px solid #b89a9a;
	border-radius: 10px;
  padding: 20px 20px;
  position: relative;
	background:#fff;
}

.faq-accordion-list + .faq-accordion-list {
  margin-top:15px;
}

.faq-accordion-list dt {

  font-weight: 600;
  font-size: 20px;
  line-height: 24px;
  cursor: pointer;
}

.faq-accordion-list dt::before,
.faq-accordion-list dt::after  {
  content: '';
  display: inline-block;
  width: 10px;
  height: 2px;
  background: var(--color);
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  transition: opacity 1s;
}

.faq-accordion-list dt::after {
  transform: translateY(-50%) rotate(90deg);
  transition: transform .5s;
}

.faq-accordion-list dt.active::before {
  opacity: 0;
}

.faq-accordion-list dt.active::after {
  transform: translateY(-50%) rotate(180deg);
}

.faq-accordion-list dd {
 	display: none;
  margin-top: 10px;
}
.faq-accordion-list.active dd{
 	display: block;
}
.faq-accordion-list dd p {
  font-weight: 400;
  line-height: 1.8;
	padding-right:30px;
}
.faq-title-lv3{
	font-size:20px;
	margin-bottom:15px;
	font-weight:bold;
}
.faq-title-lv3.mt{
	margin-top:30px;
}
@media screen and (max-width: 767px) {
  .faq {
    padding-top: 60px;
  }

  .faq-accordion {
    margin: 50px auto 0;
  }

  .faq-accordion-list {
  
  }

  .faq-accordion-list dt {
    font-size: 16px;
    line-height: 1.5;
    padding-right: 30px;
  }

  .faq-accordion-list + .faq-accordion-list {
    margin-top: 15px;
  }

  .faq-accordion-list dd {
    margin-top: 10px;
  }

  .faq-accordion-list dd p {
    font-size: 14px;
    line-height: 1.5;
  }
}

/* ------ */
/* therapists */
/* ------ */

.therapists {
  padding-top: 150px;
  padding-bottom: 150px;
}
.therapists-wrap{
	width:1100px;
	margin:0 auto;
	justify-content:center;
	display:flex;
	gap:50px;
	flex-wrap: wrap;
	margin-bottom:60px;
}

.therapist-item figure{
	width:300px;
	border-radius:50%;
	overflow:hidden;
}
.therapist-item img{

}
.therapists-name {
  font-weight: 400;
  font-size: 16px;
	margin-top:15px;
  text-align: center;

}


/* ------ */
/* access */
/* ------ */

.access {
  margin-bottom: 60px;
}

.access-text {
  font-weight: 400;
  line-height: 32px;
  text-align: center;
 
}
.access-map-wrap {

	margin:30px auto;

}
.access-tab{
	display:flex;
}
.access-tab a{
	display:block;
	width:50%;
  text-align: center;
	padding:20px 0 20px 0;
	font-size:16px;
	background: #EAEAEA;
}

.access-tab a.active,
.access-tab a:hover{ 
		background: var(--color);
		color:#fff;
}
.access-map {
  width:100%;
  margin: 0px auto;

}
.access-map-filter{
  filter: sepia(.2);
}
.access-map iframe{
	width:100%;
	height:500px;
}

.access-map .gmap-streetview{
	display:none;
}
@media screen and (max-width: 767px) {
  .access {
    margin-bottom: 60px;
  }

  .access-text {
    font-size: 14px;
    line-height: 1.5;
  }

  .access-map {
    margin: 0px auto;
  }

  .access-map iframe {
    height: 300px;
  }
}

.access-image{
	display:flex;
	width:100%;
	margin:20px auto 30px auto;
	gap:10px;
}
.access-image img{
		width:100%;
}
.access-image .access-image-item{
	width:calc(100% / 4);
	text-align:center;

}

.access-image .access-image-item p{
	margin-top:10px;
}
.access-map-wrap {
  max-width: 1400px;
	margin:30px auto;

}

@media screen and (max-width: 767px) {
.access-image .access-image-item {
	line-height:1.4;
  text-align: center;
	font-size:12px;
}
}
.footer-reserve{
  transition: opacity .5s ease, transform .5s ease;
	position:fixed;
	background:#4A2424;
	z-index:10000;
	bottom:20px;
	right:20px;
	
	width:320px;
	color:#fff;
	border:2px solid #FAF8F0;
	border-radius:10px;
	text-align:center;
	background:#4A2424;
	padding:10px;

}
.footer-reserve.is-hidden{
  opacity: 0;
  transform: translateY(10px);

}
@media screen and (max-width: 767px) {
	.footer-reserve{

		bottom:10px;
		right:10px;
		
		width:calc(100% - 20px);

	}
}
.footer-reserve a{

	color:#fff;
}
.footer-reserve-inner{
	text-alignm:center;
}


.footer-reserve a{

}

.footer-reserve a:hover{

}
.footer-reserve-tel-box{
	line-height:1.6;
justify-content: space-between;
	align-items:center;

display:flex;

}
.footer-reserve-tel{
display:block;
	width:calc(100% - 50px);

}

.footer-reserve-tel-btn{

	display:block;
	border-radius:10px;
	width:96%;
	padding:2px;
	background:#654545;

}

.footer-reserve-tel-title{

	

	font-size:12px;
	display:block;

}
.footer-reserve-tel-title-text{
	display:block;
	line-height:1.4;

background: #FAF8F0;
	border-radius:8px;
color:#4A2424;
	font-weight:bold;
	padding:5px 0;
}
.footer-reserve-tel-box{
	margin-top:10px;

}
.footer-reserve-tel-no{
	font-weight:bold;
	font-size:16px;	

}

.footer-reserve-tel-no i{
	margin-right:5px;
	width:15px;
	height:15px;
	background-image:url(../images/icon-tel.png);
  background-repeat: no-repeat;
  background-size:contain;

	display:inline-block;


}
.footer-reserve-line{
	width:50px;
}

.footer-reserve-close{
  cursor:pointer;
	top:-12.5px;
	left:-12.5px;
  display: inline-block;

  color: #fff;
  line-height: 1;
  	position:absolute;
  width: 25px;
  height: 25px;
  border: 2px solid #fff;
  border-radius: 50%;
  box-sizing: content-box;
	background:#4A2424;
}
.footer-reserve-close span{
  width: 52%;
  height: 0.1em;
  background: currentColor;
  border-radius: 0.1em;
  position: relative;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

.footer-reserve-close span::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: inherit;
  border-radius: inherit;
  transform: rotate(90deg);
}
.fade-out {
  opacity: 0;
  transition: opacity .4s ease;
}
@media screen and (max-width: 767px) {
.footer-reserve a{
	font-size:12px;
}
.footer-reserve-tel-title{
	font-size:14px;
	text-align:center;

}
a.footer-reserve-tel {
  display:block;
	text-align:center;

 }

}