@charset "utf-8";
/* CSS Document */

html{
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
}

body{
	margin: 0;
	font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
	/*font-family: "Kozuka Gothic Pr6N", sans-serif;*/
}

/* navigation pc */
div.navigation{
	position: fixed;
	top: 10px;
	width: 98%;
	height: 7%;
	font-size: 15px;
	text-align: left;
	font-family: 'segoe UI', 'Helvetica';
	background-color: whitesmoke;
	border-radius: 300px;
	z-index: 99;
	opacity: 0;	
	transform: translateY(-10%);
	transition: transform 0.8s ease, opacity 1.5s ease;
	margin-left: 1%;
	margin-right: 1%;
	box-shadow: 0 3px 15px rgba(0, 0, 0, 0.1);
}

/* スクロール時に表示 */
div.navigation.active {
	transform: translateY(0);
	opacity: 0.8;
	box-shadow: 0 3px 15px rgba(0, 0, 0, 0.1); /* ここでも影を維持 */
	height: auto;
}

ul.navigation-container{
	list-style: none;
	margin: 0px;
	float: left;
	display: flex;
}

li.nav-logo{
	width: 50%;
}

img.logo{
	max-width: 80px;
	max-height: 80px;
	padding-top: 14px;
	padding-bottom: 10px;
}

li.nav-btn{
	letter-spacing: 1px;
	padding-left: 50px;
	padding-top: 8%;
	font-size: small;
}

a.nav-link{
	color: #5f4e45;
	text-decoration-line: none;
}

	
/* header ph 375以下の場合 */ 
@media screen and (max-width: 769px) {
	div.navigation{
		display: none;
	}
	div.navigation img{
		text-align: center;
		top: 13px;
		object-fit: cover;
	}
}

/* navigation drawer pcでは非表示 */
div.nav-drawer{
	display: none;
} 

/* ここから下を各ページにコピペ */
/* navigation drawer */
@media screen and (max-width: 769px) {
	div.nav-drawer{
		top: 2%;
		left: 2%;
		width: 15%;
		opacity: 0.8;
		display: block;
		position: fixed;
		z-index: 99;
	}
	#drawer-checkbox {
  		display: none;
	}
	#drawer-icon {
		cursor: pointer;
		display: inline-block;
		height: 50px;
		position: relative;
		width: 55px;
		top: 3px;
	}
	/* menu */
	#drawer-icon span {
		background: #ae8686;
		border-radius: 1px;
		display: block;
		height: 4%;
		left: 70%;
		margin: -8% 0 0 -42%;
		position: absolute;
		top: 60%;
		transition: all 0.3s ease-in-out;
		width: 47%;
	}
	#drawer-icon span::before,
	#drawer-icon span::after {
		-webkit-transform: rotate(0);
		background: #ae8686;
		border-radius: 1px;
		content: "";
		display: block;
		height: 100%;
		left: 50%;
		margin: -8% 0 0 -50%;
		position: absolute;
		top: 50%;
		transform: rotate(0);
		transition: all 0.3s ease-in-out;
		width: 100%;
	}
	#drawer-icon span::before {
		margin-top: -44%;
		width: 135%;
	}
	#drawer-icon span::after {
		margin-top: 36%;
		width: 60%;
	}
	#drawer-checkbox:checked ~ #drawer-icon span {
		background: rgba(51, 51, 51, 0);
	}
	#drawer-checkbox:checked ~ #drawer-icon span::before,
	#drawer-checkbox:checked ~ #drawer-icon span::after {
  		content: "";
		display: block;
		height: 100%;
		left: 50%;
		margin: -8% 0 0 -42%;
		position: absolute;
		top: 50%;
		width: 100%;
		z-index: 9;
	}
	#drawer-checkbox:checked ~ #drawer-icon span::before {
  		-webkit-transform: rotate(-45deg);
        transform: rotate(-45deg);
	}
	#drawer-checkbox:checked ~ #drawer-icon span::after {
  		-webkit-transform: rotate(45deg);
   		transform: rotate(45deg);
	}
	#drawer-content {
  		overflow: auto;
  		position: fixed;
  		top: 0;
  		left: 0;
  		z-index: 40;
  		width: 70%;
		height: 350px;
		background-color: whitesmoke;
		transition: all 0.3s ease-in-out 0s;
  		transform: translateX(-100%);
		}
	#drawer-checkbox:checked ~ #drawer-content {
  		transform: translateX(0);
  		box-shadow: 6px 0 25px rgba(0, 0, 0, 0.16);
		}
	#drawer-close {
  		display: none;
  		position: fixed;
  		z-index: 39;
  		top: 0;
  		left: 0;
  		width: 100%;
  		height: 100%;
	  	background: #000;
  		opacity: 0;
  		transition: all 0.8s ease-in-out 0s;
	}
	#drawer-checkbox:checked ~ #drawer-close {
  		display: block;
  		opacity: 0.3;
	}
	div.drawer-content{
	}
	p.nav-drawer{
		font-size: 15px;
		letter-spacing: 1px;
		text-align: center;
		margin-top: 15%;
		width: 70%;
		margin-left: auto;
		margin-right: auto;
	}
	li.check{
		width: 60%;
		margin-left: auto;
		margin-right: auto;
		padding-top: 3px;
		padding-bottom: 3px;
		letter-spacing: 1px;
		}
	ul.nav-drawer{
		list-style: none;
		font-size: 17px;
		letter-spacing: 2px;
		text-align: center;
		padding-left: 0;
		margin-top: 70px;
	}
	li.nav-drawer{
		margin: 20px auto 10px auto;
		padding-top: 2%;
		padding-bottom: 2%;
		width: 42%;
	}
	a.nav-drawer{
		text-decoration-line: none;
		color: #3A312E;
	}
}









#first-view{
	height: 350px;
	width: 100%;
	padding-top: 140px;
	padding-bottom: 220px;
	margin-bottom: 0;
	letter-spacing: 2px;
	font-size: 16px;
	/* background-color: #f1eeed; */
	background-image: url("images/information.jpg");
	background-size: cover;
}

#first-view-logo{
	max-width: none;
	max-height: 80px;
	margin: 0 30px 0 30px;
	opacity: 0;
	animation: fadeInLogo 1.5s ease-out forwards;
	animation-delay: 0.8s;
}

@media screen and (max-width: 769px) {
	#first-view-logo{
		margin: 0 30px 30px 30px;
	}
}

@keyframes fadeInLogo {
	from{
		opacity: 0;
		transform: translateY(10px);
	}
	to{
    	opacity: 1;
    	transform: translateY(0);
  }
}

p.catch-sp{
	display: none;
	opacity: 0;
}

p.catch{
	margin: 30px;
	opacity: 0;
}
p.catch.active {
	opacity: 1;
	transform: translateY(0);
	animation: fadeInUp 2.8s ease-out forwards;
}

@keyframes fadeInUp {
	from{
		opacity: 0;
		transform: translateY(10px);
	}
	to {
    	opacity: 1;
    	transform: translateY(0);
	}
}


@media screen and (max-width: 769px) {
	p.catch {
		display: none;
		font-size: 14px;
		line-height: 28px;
		letter-spacing: 1.2px;
	}
	p.catch-sp {
		display: block;
		margin-bottom: 35px;
		/* 必要ならフォントサイズなどをこの中で調整 */
		}
	}

/* PCで使っているのと同じアニメ定義を catch-sp にも適用 */
p.catch-sp.active {
  opacity: 1;
  transform: translateY(0);
  animation: fadeInUp 2.8s ease-out forwards;
}

div.section{
	text-align: center;
	width: 60%;
	margin: 0 auto 15% auto;
	letter-spacing: 1px;
	font-size: 13px;
}

/* その場で */
.section {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 1.8s, transform 1s;
}.section.active {
	opacity: 1;
	transform: translateY(0px);
}






/*スクロールダウン全体の場所*/
.scrolldown{
	position:absolute;
	left:50%;
	bottom:10px;
	height:50px; /*全体の高さ*/
}

/*Scrollテキストの描写*/
.scrolldown span{
	position: absolute;
	top: -15px;
	color: #3A312E;
	font-size: 0.7rem;
	letter-spacing: 6px;
}

/* 線の描写 */
.scrolldown::after{
  content: "";
  position: absolute;
  top: 0;
  width: 1px;
  height: 38px;
  background: #3A312E;
  animation: pathmove 2.3s ease-in-out infinite;
  opacity:0;
}

/*高さ・位置・透過が変化して線が上から下に動く*/
@keyframes pathmove{
  0%{
    height:0;
    top:0;
    opacity: 0;
  }
  30%{
    height:30px;
    opacity: 1;
  }
  100%{
    height:0;
    top:50px;
    opacity: 0;
  }
}

/*========= レイアウトのためのCSS ===============*/
#scroll-parts{
	width:100%;
	height: 20%;
	position: relative;
	opacity: 0; /* ← 初期状態で非表示 */
	transition: opacity 1s ease; /* ← フェードイン演出 */
} 

#scroll-parts:before{
  content: '';
  position:fixed;
  top:0;
  left:0;
  z-index:-1;
  width:100%;
  height: 100vh;
}

#scroll-parts.active {
  opacity: 1;
}

#container{
  position: relative;
  z-index:1;
  background:#eee;
  padding:600px 0;
  text-align: center;
}

@media screen and (max-width:768px){
	#first-view{
		height: 500px;
	}
	#scroll-parts, #scroll-parts:before{
		height: 20vh;    
	}
	
	#scroll-parts, #scroll-parts:before{
		height: 20vh;
	}
	p.catch{
		display: none;
	}
	p.catch-sp{
		display: block;
		margin-bottom: 22px;
		font-size: 14px;
	}
}

/*Top image*/
.section-main-picture {
  position: relative; /* 親要素に対する相対位置を設定 */
  height: 100vh; /* 必要に応じて高さを設定 */
/*  overflow: hidden;  必要に応じてオーバーフローを隠す  */
}

img.top{
	padding-top: 100px;
	margin-bottom: 0;
	display: block;
	overflow: hidden;
	max-height: 780px;
	object-fit: cover;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.sticky-top {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10; /* 他の要素より前面に表示 */
}


@media screen and (max-width: 768px) {
	div.section-main-picture{
		overflow: hidden;
		position: relative;
		width: 100%;
	}
	img.top{
		height: 380px;
		object-fit: cover;
		object-position: 55% center;
		transition: transform 2.5s ease;
	}
}


h2{
	padding: 15% 10% 0% 10%;
	margin-top: 0;
	margin-bottom:110px;
	text-align: center;
	font-size: 30px;
	font-weight: normal;
	position: relative;
	color: #3A312E;
	font-stretch:extra-expanded;
	letter-spacing: 5px;
	font-family: "MS Serif", "New York", "serif";
	z-index: 0!important;
}

h2:before{
	content: '';
	position: absolute;
	left: 50%;
	bottom:-20px;
	display: inline-block;
	width: 30px;
	height: 1px;
	transform: translate(-50%); /*位置調整*/
	background-color: #3A312E;
	border-bottom-color: #3A312E;
	opacity: 0.6;
}

@media screen and (max-width:768px){
	div.section{
	font-size: 13px;
	margin: 0;
	}
	h2{
		padding-top: 150px;
		margin-bottom: 25%;
		font-size: 28px;
		letter-spacing: 2px;
	}
	h2:before{
		height: 1px;
		width: 25px;
	}
}





/* button 回転キーフレーム */
@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* 画像版 Reserve ボタンの土台（位置・出し入れ） */
#reserve {
  position: fixed;
  right: 30px;
  bottom: 50px;
  z-index: 998;
  display: inline-block;
  opacity: 0;
  transform: scale(0.8);
  transition: opacity 0.8s ease, transform 0.8s ease;
  pointer-events: none; /* 非表示時はクリック無効 */
}

/* 表示状態（既存の .active と同じ考え方） */
#reserve.active {
  opacity: 0.9;
  transform: scale(1);
  pointer-events: auto;
}

/* 画像自体を回転させる（右回り＝時計回り） */
#reserve img {
  display: block;
  width: 120px;  /* 画像サイズに合わせて調整 */
  height: 120px; /* SVGなら高さは自動でもOK */
  animation: spin 18s linear infinite;
}

/* 端末の設定でアニメ抑制しているユーザーに配慮（任意） */
@media (prefers-reduced-motion: reduce) {
  #reserve img { animation: none; }
}



.square {
  display: inline-block;
  padding: 10px 20px;
  margin-top: 30px;
  letter-spacing: 2px;
  font-size: 13px;
  font-family: 'Segoe UI', 'Helvetica', sans-serif;
  font-weight: 100;
  text-align: center;
  color: #ffffff;
  background-color: #696669;
  border: 1px solid #696669;
  border-radius: 1px;
  text-decoration: none;
  transition: 0.7s;
}

.square:hover {
  border-radius: 50px;
  background-color: #ffffff;
  color: #696669; /* ← ここでホバー時に文字色を反転 */
}






div.section{
	width: 100%;
	margin-top: 0;
}

@media screen and (max-width:768px){
	.square {
		margin: 30px 25% 0 25%;
		display: block;
		width: 40%;
	}
}


/* concept */
div.section-concept{
	position: relative;
	background-color: rgba(241,238,237, 0.8);
/*	background: linear-gradient(to bottom, rgba(241,238,237,0.5), white); */
	margin-top: 40%;
	padding-bottom: 100px;
	transform: translateY(50px);
	transition: opacity 1s, transform 1s;
    width: 80%;
    margin-left: 10%;
    backdrop-filter: blur(5px);
}

div.section-concept.visible {
	opacity: 1;
	transform: translateY(0);
    }


div.contents-concept{
	display: flex;
	margin-left: 5%;
	margin-right: 5%;
	text-align: center;
}

img.concept-picture, span.concept-introduction{
	width: 40%;
	float: left;
	margin: 20px;
}

span.concept-introduction p{
	width: 100%;
}

img.concept-icon{
	width: 15%;
	margin-bottom: 10px;
}

@media screen and (max-width:768px){
	div.section-concept{
		width: 90%;
		margin-left: 5%;
	}
	
	div.contents-concept{
		margin: 0; 
		width: 100%;
		float: none;
		display: inline-block;
	}
	div.contents-concept botton{
		display: inline-block;
	}
	img.concept-icon{
		margin-bottom: 0;
		width: 13%;
	}
	img.concept-picture{
		margin: 0 5% 0 5%;
		min-width: unset;
		width: 90%;
	}
	span.concept-introduction{
		margin: 30px 0 35px 0;
		min-width: unset;
		width: 100%;
		font-size: 13px;
		
	}
	span.concept-introduction p{
		width: 90%;
		margin: auto;
		margin-top: 3%;
	}
}


/* menu */
div.section-menu{
	padding-bottom: 150px;
}

div.section-menu h2{
	padding-top: 0;
}

div.contents-menu{
	margin: 0 10% 0 10%;
	text-align: left;
}

span.menu-introduction{
	background:rgba(241,238,237,0.8);
	backdrop-filter: blur(5px);
	display: inline-block;
	width: 55%;
	height: 180px;
	min-width: 400px;
	padding: 4% 0 3% 0;
	float: left;
	margin-left: 45%;
	margin-top: -15%;
}

span.menu-introduction p{
	padding: 0 10% 0 10%;
	line-height: 25px;
}

p.menu-note{
	font-size: 11px;
}

img.menu-picture{
	width: 70%;
}

div.section-menu botton.square{
	margin: 2% 0 0 10%;
}

@media screen and (max-width: 768px) {
	div.section-menu{
		display: inline-block;
		margin-top: 200px;
		padding-bottom: 150px;
	}
	div.contents-menu{
		background-color: unset;
		width: 90%;
		margin: 0 5% 0 5%;
		display: block;
	}
	span.menu-introduction{
		min-width: unset;
		width: 100%;
		padding-left: 0;
		margin: 0;
		letter-spacing: 1.5px;
		line-height: 30px;
		background-color: unset;
	}
	span.menu-introduction p{
		padding: 0%;
	}
	img.menu-picture{
		width: 100%;
	}	
	div.section-menu botton.square{
		margin: 50px auto 0 auto;
}

}



/* products */
div.section-products{
	background-color: #E1E2E6;
	background:rgba(225,226,230,0.5);
	background: linear-gradient(to bottom, rgba(225, 226, 230, 0.4), #e5e6ea);
	padding-bottom: 15%;
}

#section-product-margin{
	margin-bottom: 0;
}

div.product-pictures{
	margin: 0 10% 0 10%;
}

div.product-pictures img.product-images{
	width: 40%;
	margin: 15px;		
}
span.product-introduction-sp{
	display: none;
}
span.product-introduction{
	display: inline-block;
	width: 100%;
	margin: 30px 0 20px 0;
}

@media screen and (max-width: 768px) {
	div.section-products{
		padding-bottom: 150px;
	}
	div.product-pictures{
		margin: 0 5% 0 5%;
	}
	div.product-pictures img.product-images{
		width: 100%;
		margin: 0 0 20px 0;
	}
	span.product-introduction{
		display: none;
	}
	span.product-introduction-sp{
		display: inline-block;
		width: 90%;
		text-align: left;
		line-height: 25px;
	}
	span.product-introduction p{		
	}
	p.moii{
		margin: 0;
		line-height: 30px;
		letter-spacing: 1.5px;
	}
}


/* stylist */
div.containts-stylist{
	margin: 0 25%;
	display: flex;
	background-color: whitesmoke;
	min-width: 690px;
	max-width: 750px;
}

div.section-stylist h2{
	paddinng-top: 0;
}

img.photo-stylist{
	width: 23%;
	height: auto;
	padding: 4%;
/*	filter: grayscale(50%); */
}

span.stylist-introduction{
	display: inline-block;
	width: 70%;
	float: right;
	padding-top: 4%;
	text-align: left;
}

#stylist-name{
	/* display: inline-block; */
	width: 95%;
	font-size: 16px;
	margin-top: 10px;
	margin-bottom: 25px;
	border-bottom-style: solid;
	border-bottom-color: darkgray;
	border-bottom-width: 1px;
}

p.stylist{
	margin: 10px 0 10px 0;
}

img.kamishitusaisei{
	width: 35%;
	max-width: 200px;
	padding-top: 20px;
}

p.stylist-anchor{
	display: inline-flex;
	margin-left: 43%;
}

img.stylist-icon{
	width: 23px;
	height: 23px;
	padding-right: 20px;
	padding-top: 7px;
	float: right;
}


@media screen and (max-width: 769px) {
	div.containts-stylist{
		margin: 0;
		padding-bottom: 150px;
		width: 100%;
		display: block;
		border-style: none;
		min-width: unset;
		background-color: unset;
	}
	img.photo-stylist{
		width: 50%;
		height: auto;
		padding: 0;
	}
	span.stylist-introduction{
		display: inline-block;
		width: 90%;
		float: none;
		padding-top: 5%;
	}
	#stylist-position{
		font-size: 13px;
		letter-spacing: 3px;
		text-align: center;
	}
	#stylist-name{
		text-align: center;
		width: 50%;
		margin-bottom: 20px;
		margin-left: 25%;
		font-size: 18px;
/*		border-bottom-style: none; */
	}
	p.stylist{
		width: 105%;
		margin: 0;
		line-height: 30px;
		letter-spacing: 0.8px;
		text-align: left;
	}
	
	p.stylist-anchor{
		margin-top: 20px;
		margin-bottom: 0;
		margin-left: 40%;
		width: 30px;
	}	
	img.stylist-icon{
		padding: 6px 6px 0 6px;
		width: 32px;
		height: 32px;
	}
}







@media screen and (min-width: 1020px) {
}

ul.icon{
	list-style: none;
	padding-left: 0;
	width: 18%;	
	text-align: center;
	justify-content: space-between;
	display: flex;
}
img.reserve{
	width: 30px;
	opacity: 0.7;
}

/* Reserveボタン：初期状態（非表示） */
#circle {
	opacity: 0;
	transform: scale(0.8);
	transition: opacity 0.8s ease, transform 0.8s ease;
	pointer-events: none;
}

/* 表示アニメーションを発動するクラス */
#circle.active {
	opacity: 1;
	transform: scale(1);
	pointer-events: auto;
}

@media screen and (max-width: 769px) {
	ul.icon{
		width: 40%;
		margin-top: 10px;
	}
	li.icon{
		width: 20%;
	}
}





/*salon information*/
div.section-information{
	background-color: #f5f5f5;
	background-size: cover;
	background-repeat: repeat;
	text-align: left;
	display: inline-block;
	width: 100%;
	padding-bottom: 15%;
}

#last-section{
	margin-bottom: 0;
}

div.section-information h2{
	/*padding-top: 0;*/
}

div.containts-information{
	margin: 0 10%;
}

div.info-details{
	width: 48%;
	float: left;
	margin: 0% 1% 0% 1%;
	letter-spacing: 1px;
}

span.each-item{
	display: block;
	margin-bottom: 30px;	
}

span.each-item p{
	margin: 0 0 7px 5px;
	font-size: 13px;
}

span.each-item botton{
	margin-top: 0;
}

p.p-title{
	border-left: groove;
	padding-left: 5px;
	width: fit-content;
}

p.info-containts-each-explanation{
	
	
	
}

div.info-details span{
	margin-bottom: 30px;
	width: 95%;
}

iframe.map{
	width: 95%;
	height: 300px;
}

p.brand-name{
	border-radius: 30px;
	border: 1px solid lightgray;
	padding: 2px 10px 1px 10px;
	width: fit-content;
	float: left;
}

a.brand-anchor{
	text-decoration: none;
	color: cadetblue;
}



@media screen and (min-width: 666px) {
	h2.access{
		margin-top: 10%;
		font-size: 28px;
		letter-spacing: 2px;
	}
	
	h2.access:before{
		height: 1px;
		width: 25px;
	}
}

@media screen and (max-width: 665px) {
	h2.access{
		margin-top: 10%;
		font-size: 28px;
		letter-spacing: 2px;
	}
	
	h2.access:before{
		height: 1px;
		width: 25px;
	}
}


@media screen and (max-width: 768px) {
	div.section-information{
		padding-bottom: 150px;
	}
	
	div.containts-information{
		width: 90%;
		margin-left: 5%;
		padding-bottom: 150px;
	}
	div.info-details{
		margin: 0;
		width: 100%;
	}
	div.info-details span{
		width: 100%;
		margin-bottom: 40px;
	}
	iframe.map{
		text-align: center;
		margin-left: 2%;
		margin-right: 2%;
		width: 96%;
		height: 300px;
	}	
}







footer{
	
}

div.footer{
	text-align: center;
	padding-top: 30px;
	padding-bottom: 20px;
	background-color:#5f4e45;
	filter: opacity(0.9);
	bottom: 0px;
	opacity: 0.7;
}

li.footer{
	float: left;
	padding: 0px 13px 0px 13px;
}

img.footer{
	width: 25px;
	height: 25px;
	padding-left: 15px;
	padding-right: 15px;
}

a.footer{
	text-decoration-line: none;
}

p.footer{
	font-size: 13px;
	font-family: 'segoe UI', 'Helvetica';
	text-align: center;
	letter-spacing: 1px;
	font-weight: 100;
	color: #ffffff;
}

@media screen and (max-width: 665px) {
		p.footer{
		font-size: 13px;
		font-family: 'segoe UI', 'Helvetica';
		text-align: center;
	}
}