@charset "utf-8";
/*--------------------------------------------------------------
>>> RAYMIX CSS:
----------------------------------------------------------------*/
/*header*/
.logo_area {
	text-align: center;
	height: 37px;
	padding: 10px 0;
	border-bottom: solid 1px #000;
  	vertical-align: middle;
}
.h_logo img {
	width: auto;
	height: 37px;
}
.zdo_drawer_nav {
	font-family: 'Josefin Sans', sans-serif;
	}
.zdo_drawer_nav .icon {
	width: 40px;
	height: auto;
	margin-top: 30px;
}

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

	.logo_area {
		height: auto;
	}
	.logo_area li {
		display: inline-block;
		vertical-align: middle;
	}
	li.h_logo {
		width: 90%;
	}
	.h_logo img {
		width: 100px;
		height: auto;
	}
	.h_icon img {
		width: auto;
		height: 30px;
	}
}

/*mv_area*/
.js_mv_sld img{
	width: 100%;
}
.mv_wrap{
	position: relative;
	padding-top: 58px;
}


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

	.mv_wrap {
		padding-top: 110px;
	}
	/*navi pc*/
	.navi_pc {
		width: 100%;
		height: 40px;
		bottom: 0;
		background: #fff;
		border-bottom: 1px solid #000;
		text-align: center;
		height: 40px;
		color: #fff;
		font-family: 'Josefin Sans', sans-serif;
		white-space: nowrap;
		z-index: 99;
		position: relative;
	}
	.navi_pc li {
		margin-top: 5px;
		display: inline-block;
	}
	.navi_pc a:hover {
		opacity: 1;
	}

	/*flip up button animation*/
	a.button {
  	line-height: 32px;
  	-webkit-perspective: 300px;
  	-moz-perspective: 300px;
  	perspective: 300px;
  	text-align: center;
	}
	a.button span {
  	position: relative;
  	display: inline-block;
  	padding: 0 40px;
  	background: none;
  	-webkit-transition: -webkit-transform 0.3s;
  	-moz-transition: -moz-transform 0.3s;
  	transition: transform 0.3s;
  	-webkit-transform-origin: 50% 0;
  	-moz-transform-origin: 50% 0;
  	transform-origin: 50% 0;
  	-webkit-transform-style: preserve-3d;
  	-moz-transform-style: preserve-3d;
  	transform-style: preserve-3d;
	}
	a.button span::before {
  	position: absolute;
  	top: 100%;
  	left: 0;
  	width: 100%;
  	height: 100%;
  	background: none;
  	content: attr(data-hover);
  	-webkit-transition: background 0.3s;
  	-moz-transition: background 0.3s;
  	transition: background 0.3s;
  	-webkit-transform: rotateX(-90deg);
  	-moz-transform: rotateX(-90deg);
  	transform: rotateX(-90deg);
  	-webkit-transform-origin: 50% 0;
  	-moz-transform-origin: 50% 0;
  	transform-origin: 50% 0;
	}
	a.button:hover span,
	a.button:focus span {
  	-webkit-transform: rotateX(90deg) translateY(-22px);
  	-moz-transform: rotateX(90deg) translateY(-22px);
  	transform: rotateX(90deg) translateY(-22px);
	}
	a.button:hover span::before,
	a.button:focus span::before {
  	background: none;
  	color: #000;
	}

	/* mega submenu */
	.child_menu > li > a { /* 子項目のスタイル */
		color: #fff;
	}
	.child_menu > li > a:hover { /* 子項目のスタイル（ホバー時） */
	}
	.child_menu { /* 下層メニューのスタイル */
		box-sizing: border-box;
  	width: 100%;
  	position: absolute;
  	top: 80%; /* 親項目の直下に配置 */
  	left: 0;
  	padding: 15px 50px;
  	color: #000; /* 文字色 */
  	background: #f3f3f3; /* 背景色 */
  	visibility: hidden; /* 下層メニューを非表示 */
		display: -webkit-flex;
		display: flex;
		-webkit-flex-wrap: nowrap;
		flex-wrap: nowrap;
		-webkit-justify-content: space-around;
		justify-content: space-around;
		-webkit-align-items: stretch;
		align-items: stretch;
	}
	.child_menu li{
		position: relative;
		width: 20%;
		height: 160px;
	}
	.child_menu li a {
		position: absolute;
		width: 100%;
		height: 160px;
		left: 0;
	}
	.inb:hover .child_menu { /* 下層メニューのスタイル（親項目ホバー時） */
  	visibility: visible; /* 下層メニューを表示 */
	}
	.child_menu a:hover {
  	color: #fff;
		background-color: rgb(27, 27, 27);;
	}
	.child_menu .salonlist_inner .logo {
		width: 100px;
		margin-bottom: 5px;
		border: none;
	}
	.child_menu .salonlist_inner h2 {
		color: #000;
		font-size: 0.9em;
		line-height: 1.4;
		margin-top: 3px;
	}
	.child_menu .salonlist_inner img {
		width: 120px;
		border: 1px solid #fff;
	}
	.child_menu .salonlist_inner {
		margin-bottom: 0;
	}
}

/* concept */
.concept {
	margin: 50px 0;	
}
.concept h1{
	font-size: 1.4rem;
	text-align: center;
	line-height: 2;
}
.concept .serif {
	font-size: 1.8rem;
	display: block;
	font-weight: 600;
}

@media screen and (min-width: 768px){
	.concept {		
		background-image: url(../img/concept_back.jpg);
		background-size: cover;
	}
	.concept_box {
		background: #fff;
		width: 500px;
		margin: 0 auto;
		padding: 60px 30px;
		opacity: 0.9;
	}
	.concept h1{
		font-size: 1.4rem;
	}
	.concept .serif {
		font-size: 2rem;
	}
}

/* title */
.title {
	text-align: center;
	padding: 10px;
}
.title h2 {
	font-size: 2rem;
	font-family: 'Josefin Sans', sans-serif ;
	line-height: 1;
}
.title .sml {
	font-size: 1.2rem;
}

/* border left to right */
.borderAnime {
  position: relative;
  width: 50%;
  display: block;
  z-index: 1;
}
.borderAnime:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0%;
  height: 1px;
  background: #000;
  z-index: -1;
  transition: all 0.8s;
}
.borderAnime.isActive:after {
  width: 100%;
}
/* border right to left */
.fr.borderAnime {
  position: relative;
  width: 50%;
  display: block;
  z-index: 1;
}
.fr.borderAnime:after {
  content: '';
  position: absolute;
  left: 100%;
  bottom: 0;
  width: 0%;
  height: 1px;
  background: #000;
  z-index: -1;
  transform: translateX(-100%);
  transition: all 0.8s;
}
.fr.borderAnime.isActive:after {
  width: 100%;
}

/* news */
.news_wrap {
	width: 100%;
	height: auto;
	padding: 30px 0;
}
.news {
	width: 90%;
	margin: 50px auto;
}

/* salonlist_wrap */
.salonlist_wrap {
	padding: 30px 0;
}
.salonlist {
	margin:  30px auto;
	width: 90%;
	display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.salonlist article {
	width: 47%;
	margin-bottom: 30px;
}
.salonlist_inner {
	display:table;
	width: 100%;
	height: 140px;
	margin-bottom: 20px;
	text-align: center;
	white-space: nowrap;
}
.salonlist_inner .logo {
	width: 80%;
	height: auto;
	margin-bottom: 5px;
}
.salonlist_inner h2 {
	font-size: 1.5rem;
	font-weight: 800;
	padding: 5px 10px;
}
@media screen and (min-width: 768px){
	.salonlist_wrap {
		padding: 80px 0;
	}
	.salonlist {
		margin: 80px auto;
		width: 80%;
	}
	.salonlist article {
		width: 22%;
	}
	.salonlist_inner .logo {
		width: 60%;
		height: auto;
		margin-bottom: 10px;
	}
	.salonlist_inner h2 {
		margin-top: 10px;
	}
}

/* salon_wrap */
.salon_wrap {
	padding-top: 80px;
}
.salon {	
	padding: 80px 0;
}
.salon h2 {
	text-align: center;
	font-size: 1.8rem;
	font-weight: 800;
	margin-bottom: 30px;
}
.salon_inner {
	display: block;
	width: 90%;
	margin: 0 auto;
	text-align: center;
}
.salon_inner .img_cell, .salon_inner .text_cell {
	display: block;
}
.salon_inner .img_cell {
	width: 100%;
	height: auto;
}
.salon_inner .text_cell {
	padding: 10px;
}
.salon_inner .text_cell p {
	line-height: 2;
}
.salon_inner .add {
	margin-top: 30px;
}
.salon_inner .tel {
	margin-top: 20px;
	font-size: 2rem;
	font-weight: 800;
}
.salon_inner .btn {
	width: 80%;
	padding: 30px;
	margin: 0 auto;
}
.salon_inner button {
	width: 100%;
	padding: 30px;
	position: relative;
	}
.salon_inner button p {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.media_btn {
		margin: 10px 0;
	}
.media_btn li {
	display: inline-block;
	margin: 5px;
}
.insta, .line {
	width: auto;
	height: 40px;
}

/* gradient button */
.gradient {
    margin: 10px auto;
    padding: 15px;
    transition: 0.5s;
    background-size: 200% auto;
    color: #fff;
    border-radius: 5px;
    transition: all 0.3s cubic-bezier(.25,.8,.25,1);
    cursor: pointer;
    display: inline-block;
    border-radius: 5px;
}
.web_btn {
	background-image: linear-gradient(to right, #efd7d7 0%, #dba5a5 51%, #efd7d7 100%);
	background-image: -moz-linear-gradient(to right, #efd7d7 0%, #dba5a5 51%, #efd7d7 100%);
	background-image: -webkit-linear-gradient(to right, #efd7d7 0%, #dba5a5 51%, #efd7d7 100%);
}
.web_btn:hover {
	background-position: right center;
}
.site_btn {
	background-image: linear-gradient(to right, #53626a 0%, #b3b8bc 51%, #53626a 100%);
	background-image: -moz-linear-gradient(to right, #53626a 0%, #b3b8bc 51%, #53626a 100%);
	background-image: -webkit-linear-gradient(to right, #53626a 0%, #b3b8bc 51%, #53626a 100%);
	font-family: 'Josefin Sans', sans-serif;
}
.site_btn:hover {
	background-position: right center;
}

/* 光らせるためのstyle */
.shine {
  border: 1px solid #fff;
  position: relative;
  overflow: hidden;
}
/* 光の疑似要素 */
.shine::before {
  content: "";
  animation: shine 5s cubic-bezier(0.25, 0, 0.25, 1) infinite;
  background-color: #fff;
  width: 140%;
  height: 100%;
  transform: skewX(-45deg);
  top: 0;
  left: -300%;
  opacity: 0.5;
  position: absolute;
}
/* 光の動き */
@keyframes shine {
  0% {
    left: -300%;
    opacity: 0;
  }
  70% {
    left: -300%;
    opacity: 0.5;
  }
  71% {
    left: -300%;
    opacity: 1;
  }
  100% {
    left: -20%;
    opacity: 0;
  }
}

@media screen and (min-width: 768px){
	.salon {	
		padding: 120px 0;
	}
	.salon h2 {
		font-size: 2.3rem;
	}
	.salon_inner {
		display: table;
		width: 90%;
		margin: 0 auto;
	}
	.salon_inner {
		display: table;
		width: 100%;
		margin: 80px 0;
	}
	.salon_inner .img_cell, .salon_inner .text_cell {
		display: table-cell;
		vertical-align: top;
	}
	.salon_inner .img_cell {
	/*width: 550px;*/
		height: auto;
	}
	.salon_inner .img_cell_l {
		display: none;
	}
	.salon_inner .text_cell {
		padding: 10px 50px;
		width: 450px;
	}
	.salon_inner p {
		text-align: left;
	}
	.salon_inner .add {
		margin-top: 20px;
	}
	.salon_inner .tel {
		margin-top: 20px;
		font-size: 1.8rem;
		font-weight: 700;
	}
	.salon_inner .btn {
		width: 300px;
		margin: 30px 0 0 0;
		padding: 0;
	}
	.salon_inner button {
		width: 300px;
		height: 60px;
	}
	.salon_inner .btn p {
  	position: absolute;
  	top: 50%;
  	left: 50%;
  	transform: translateY(-50%) translateX(-50%);
  	-webkit- transform: translateY(-50%) translateX(-50%);
	}
	.media_btn {
		text-align: left;
	}
	.media_btn li {
		display: inline-block;
		margin: 5px;
	}
	.insta, .line {
		width: auto;
		height: 35px;
	}
}

/* brand */
.greeting {
	width: 90%;
	margin: 30px auto;
}
.greeting h2 {
	text-align: center;
	font-size: 2rem;
	font-weight: 600;
	margin: 60px 0 30px 0;
}
.service_wrap {
	margin: 30px 0;
}
.service_wrap h2 {
	text-align: center;
	font-size: 2rem;
	font-weight: 600;
	margin: 40px 0 0 0;
}
.service {
	width: 90%;
	margin: 0 auto;
}
.service h3 {
	font-size: 1.8rem;
	font-weight: 800;
	margin-bottom: 30px;
}
.service p {
	margin: 10px;
	text-align: left;
}
.cyclesystem {
	width: 100%;
	margin: 0 auto;
	text-align: center;
	margin-top: 50px;
}
.cyclesystem img {
	width: 80%;
	height: auto;
	margin-bottom: 20px;
}
.cyclesystem li {
	width: 100%;
	display: block;
}
.cyclesystem_box {
	padding: 30px;
	text-align: center;
	background: #fff5ee;
}
.cyclesystem .emphasis {
	font-size: 1.5em;
	font-weight: normal;
}
.other {
	width: 100%;
	margin: 60px auto;
	text-align: center;
}
.other h3 {
	text-align: center;
	font-size: 1.6rem;
	font-weight: 800;
	margin: 10px;
}
.other li {
	display: block;
	width: 90%;
	margin: 0 auto;
	margin-bottom: 40px;
}
.other img {
	width: 100%;
	height: auto;
}

@media screen and (min-width: 768px){
	.greeting {
		width: 80%;
		margin: 50px auto;
	}
	.greeting h2 {
		margin: 60px 0;
	}
	.service_wrap h2 {
		margin: 60px 0 0 0;
	}
	.service {
		margin: 30px;
	}
	.cyclesystem {
		width: 80%;
		margin-top: 80px;
	}
	.cyclesystem img {
		width: 260px;
		height: auto;
	}
	.cyclesystem ul {
		margin-top: 50px;
	}
	.cyclesystem li {
		width: 44%;
		display: inline-block;
		vertical-align: top;
	}
	.cyclesystem p {
		margin: 20px;
	}
	.other {
		max-width: 1200px;
		margin-top: 40px;
	}
	.other li {
		display: inline-block;
		width: 300px;
		vertical-align: top;
		text-align: left;
		margin: 20px;
	}
}

/* privacy pilicy */
.privacy_wrap {
	margin: 30px 0;
}
.privacy {
	width: 90%;
	margin: 50px auto;
}
.privacy h4 {
	font-size: 1.4rem;
	font-weight: 800;
}
.privacy p {
	margin-bottom: 30px;
}
.privacy ul {
	margin: 0 0 50px 20px;
}
.privacy li {
	list-style: disc;
}
@media screen and (min-width: 768px){
	.privacy_wrap h2 {
		font-size: 2rem;
		margin: 40px 0 0 0;
	}
	.privacy {
		width: 80%;
		margin: 60px auto;
	}
}
/* company */
.company_wrap {
	margin: 30px 0;
}
.company {
	width: 90%;
	margin: 50px auto;
	min-height: 300px;
}
.company h3 {
	font-size: 1.4rem;
	font-weight: 800;
	margin: 10px;
}
.company .table {
	display: table;
	width: 100%;
}
.company .table .row {
	display: table-row;
}
.company .table .cell, .company .table .th {
	display: table-cell;
	border-bottom: 1px solid #f3f3f3;
	padding: 10px;
	vertical-align: top;
}
.company .table .th {
	white-space: nowrap;
}
@media screen and (min-width: 768px){
	.company_wrap h2 {
		font-size: 2rem;
		margin: 40px 0 0 0;
	}
	.company {
		width: 50%;
		margin: 60px auto;
	}
	.company h3 {
	margin-top: 80px;
	}
}