@charset "utf-8";

/* web fonts
======================================================= */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');



/* レイアウト全体 */
.wrapper {
  width:100%;
  height: 100%;
  	
	background:url(../images/common/bg.jpg) repeat-y center top fixed;
	background-size: 100%;
}

/* コンテンツ */
.contentsArea {
  width:100%;
  min-height: 60vh;
  box-sizing: border-box;
}

.contentsArea .fixedSize{
  max-width:1250px;
  margin:auto;
  padding:1.5rem;
  background:rgba(255,255,255,0.5);
  border-radius:10px;
  border:12px solid rgba(255,255,255,0.2);
  box-shadow: 1px 3px 6px rgba(0,0,0,0.04);
}

@media screen and (max-width: 768px){

  .contentsArea .fixedSize{
    width:95%;
    margin:auto;
    padding:1rem;
    background:rgba(255,255,255,0.7);
    border-width:6px;
  }

}

/*===================================================== */
/* LAYOUT
======================================================= */



/* header
======================================================= */

#header{
	width:100%;
	padding:0;
	margin-bottom:1.2rem;
	background: #ffffff;
	background: linear-gradient(90deg, rgba(255, 255, 255, 1) 9%, rgba(255, 247, 253, 0.6) 90%);
	position: sticky;
	top: 0;
	z-index: 50;
	box-sizing: border-box;
	max-width: 100vw;
}
.header-b-line{
	width:100%;
	height: 3px;
	font-size: 0.5rem;
	background: url(../images/common/header/header-b-line.jpg) center;
}

#header .logo{
	min-width:180px;
	max-width: 280px;
	object-fit:cover;
}

#header .logo img{
	width:100%;
  	filter: drop-shadow(15px 15px 20px white);

}


/* phones */

#header .phones{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	flex-shrink: 0;
	white-space: nowrap;
}
#header .phones .open{
  	text-shadow: 0 0 6px white, 0 0 12px white;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}
#header .phones .phone{
  	text-shadow: drop-shadow(2px 2px 5px red);
	flex-shrink: 0;
	text-align: center;
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-weight: weight;
  font-style: normal;
}
#header .phones .phone a{
	text-align: center;
}


/* creditArea */

#header .creditArea{
	position:absolute;
	top:10px;
	right:0px;
	width:36%;
}
#header .creditArea .img{
}
#header .creditArea .cont{
	color: #f6f5e8;
}

@media screen and (max-width: 768px){

  #header{
    margin-bottom:0.8rem;
    padding-top: env(safe-area-inset-top, 0px);
    padding-left: 0;
    padding-right: 0;
    top: 0;
    width: 100%;
    max-width: 100vw;
    overflow: hidden;
    box-sizing: border-box;
    position: sticky;
  }

  #header .logo{
    min-width:120px;
    width:30%;
  }

  #header .phones{
    gap:0.5rem;
    padding:0.5rem;
    flex: 1;
    justify-content: flex-end;
  }

  #header .phones .open{
    width:3rem;
    height:3rem;
    padding:1.25rem;
    border-width:2px;
  }

  #header .phones .phone{
    font-size:1.5rem;
    flex: 1;
    max-width: 60%;
  }

  #header .phones .phone a{
    padding:0.6rem 0.8rem;
    font-size: 1.5rem;
  }

  /* Androidスマートフォンでの表示調整 */
  #header .mx-auto {
    margin-left: auto;
    margin-right: auto;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
    max-width: 100%;
    box-sizing: border-box;
    width: 100%;
  }

  #header .flex {
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  #header .phones {
    flex-shrink: 0;
    flex: 1;
    min-width: 0;
    max-width: 65%;
    justify-content: flex-end;
  }

  #header .phones .phone {
    font-size: 1.3rem;
    white-space: nowrap;
    flex: 1;
    max-width: 70%;
  }

  #header .phones .phone a {
    padding: 0.5rem 0.7rem;
    font-size: 1.3rem;
    display: block;
  }

  /* Androidスマートフォンでの追加調整 */
  #header .phones .open {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 0.6rem;
  }

  #header .phones .open strong {
    font-size: 0.7rem;
  }

}

/* Androidスマートフォン専用の調整 */
@media screen and (max-width: 480px) {
  #header {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
  }

  #header .mx-auto {
    padding-left: 0.125rem;
    padding-right: 0.125rem;
    margin-left: 0;
    margin-right: 0;
    width: 100%;
  }

  #header .flex {
    padding-left: 0.125rem;
    padding-right: 0.125rem;
  }

  #header .phones {
    gap: 0.25rem;
    padding: 0.25rem;
    max-width: 65%;
    flex: 1;
    justify-content: flex-end;
  }

  #header .phones .phone {
    font-size: 1.1rem;
    flex: 1;
    max-width: 70%;
  }

  #header .phones .phone a {
    padding: 0.4rem 0.6rem;
    font-size: 1.1rem;
  }

  #header .phones .open {
    width: 1.8rem;
    height: 1.8rem;
    font-size: 0.45rem;
  }

  #header .phones .open strong {
    font-size: 0.55rem;
  }

  #header .logo {
    min-width: 100px;
    width: 25%;
  }
}

/* 横画面での調整 */
@media screen and (orientation: landscape) and (max-height: 500px) {
  #header {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
  }

  #header .phones .open {
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.4rem;
  }

  #header .phones .phone {
    font-size: 0.6rem;
  }

  #header .phones .phone a {
    padding: 0.1rem 0.2rem;
    font-size: 0.6rem;
  }
}

/* 極小画面での追加調整 */
@media screen and (max-width: 360px) {
  #header .phones {
    max-width: 60%;
    flex: 1;
    justify-content: flex-end;
  }

  #header .phones .open {
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.4rem;
  }

  #header .phones .phone {
    font-size: 0.95rem;
    flex: 1;
    max-width: 65%;
  }

  #header .phones .phone a {
    padding: 0.3rem 0.5rem;
    font-size: 0.95rem;
  }

  #header .logo {
    min-width: 80px;
    width: 20%;
  }
}



/* navi
======================================================= */
.navigation{
	width:100%;
  padding:3rem 0;
}
.navigation nav{


}
.navigation nav a{
	display: block;
	padding:0.8rem;
	font-size: 0.9rem;
	white-space: nowrap;
	background: #ffffff;
	background: linear-gradient(90deg, rgba(255, 255, 255, 1) 9%, rgba(255, 247, 253, 1) 90%);

	border-radius:8px;
	color: #f36ec7;
	border:1px solid #f36ec7;
}
.navigation a:hover{
	background:rgb(245, 135, 221);
	text-decoration: none;
	color: #fff;
}


@media screen and (max-width: 768px){

  .navigation nav a{
    padding:0.6rem;
    font-size:0.8rem;
  }

}



/* footer */


footer{
	padding:1.5rem;
	background: url(../images/common/footer/bg.png);
  color: #444;
}


footer .navigation{
  padding:1.8rem;
}
footer .navigation nav a{
  padding-left:2rem;
  padding-right: 2rem;
  background:rgba(255,255,255,0.4);
  color: #ff7ccd;
  font-weight: bold;
  border: none;
}
footer .navigation ul{
	margin:0 auto 5rem;
	padding:0.4rem 0;
	
	background: rgba(105,29,53, 0.5);

}
footer .navigation li a:hover{
	background:rgba(20,20,20,0.14);
}

@media screen and (max-width: 768px){

  footer{
    padding:1rem;
  }

  footer .navigation{
    padding:1rem;
  }

  footer .navigation nav a{
    padding-left:1rem;
    padding-right:1rem;
    font-size:0.75rem;
  }

  footer .navigation ul{
    margin:0 auto 2rem;
  }

}


/*パンくずリスト*/
.pankuzu {
	margin:0;
	padding:0;
}
.pankuzu ol{
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin-bottom:0.4rem;
	padding:0 1rem;
	color: #333;
	font-size: 0.8rem;
}
.pankuzu li{
	display: block;
	margin:0 0.8rem;
}
.pankuzu li a{
	display: inline-block;
	font-size: 0.8rem;
	color: #b91856;
}
@media screen and (max-width: 768px){

  .pankuzu ol{
    padding:0 0.5rem;
    font-size:0.7rem;
  }

  .pankuzu li{
    margin:0 0.4rem;
  }

  .pankuzu li a{
    font-size:0.7rem;
  }

}


/* 
/* 名前 */
/* .card-name {
  @apply text-lg font-semibold text-pink-600;
} */

/* プロフィール（年齢・身長・スリーサイズなど） */
/* .card-size {
  @apply text-sm text-gray-600;
} */

/* スケジュール用の時間バッジ */
/* .card-schedule {
  @apply mt-2 text-sm font-medium text-gray-800 bg-pink-100 rounded-full py-1 px-3 inline-block;
}  */


/*===================================================== */
/* fixNav
======================================================= */

#fixNavArea{
	position:fixed;
	width:100%;
	bottom:0px; 
	left:0; 
	/* background:rgba(131,6,35,0.90); */
	z-index: 999;
}
#fixNav{
	display: flex;
  gap:0.4rem;
  align-items: center;
  width:96%;
  margin:auto;
	justify-content: space-between; 
	padding:0;
	background:url(../images/common/fixNav/bg.jpg);
	background-color: #FFFFFF;
	box-sizing:border-box;
}

#fixNav a{
	display: block;
	color: #fff;
	text-decoration: none;
background: #ff61c5;
background: linear-gradient(180deg, rgba(255, 97, 197, 1) 16%, rgba(255, 117, 227, 1) 56%, rgba(224, 173, 255, 1) 96%);
  border-radius:15px;
}

#fixNav div.tel,
#fixNav div.credit,
#fixNav div.companion,
#fixNav div.system,
#fixNav div.schedule,
#fixNav div.navigation
{
	width:20%; 
	height:auto;
	padding:0.3rem 0.5%;
	text-align: center;
	box-sizing: border-box;
}
#fixNav img{
	display: block;
	width:60%;
	height: auto;
	margin:0 auto 0.2rem;
}
#fixNav span{
	display: block;
	font-size: 0.65rem;
	font-weight: bold;
	white-space: nowrap;
	line-height: 1;
}
/* #fixNav div.tel span{color: #28ffe3 !important;}
#fixNav div.sokuhime span{color: #ff27ca !important;}
#fixNav div.companion span{color: #cd53fa !important;}
#fixNav div.system span{color: #fffbbf !important;}
#fixNav div.reserve span{color: #6eec6e !important;}
#fixNav div.schedule span{color: #62dc96 !important;}
#fixNav div.navigation span{color: #FFF !important; margin-top: -4px !important; font-size: 0.65rem !important;} */

/* スマートフォンサイズでのfixNav調整 */
@media screen and (max-width: 768px) {
	#fixNav div.tel,
	#fixNav div.credit,
	#fixNav div.companion,
	#fixNav div.system,
	#fixNav div.schedule,
	#fixNav div.navigation
	{
		width:20%; 
		padding:0.25rem 0.3%;
	}
	
	#fixNav img{
		width:50%;
		height: auto;
		margin:0 auto 0.15rem;
	}
	
	#fixNav span{
		font-size: 0.6rem;
		line-height: 1;
	}
}

/* 極小画面での調整 */
@media screen and (max-width: 480px) {
	#fixNav div.tel,
	#fixNav div.credit,
	#fixNav div.companion,
	#fixNav div.system,
	#fixNav div.schedule,
	#fixNav div.navigation
	{
		width:20%; 
		padding:0.2rem 0.2%;
	}
	
	#fixNav img{
		width:45%;
		height: auto;
		margin:0 auto 0.1rem;
	}
	
	#fixNav span{
		font-size: 0.55rem;
		line-height: 1;
	}
}
