/* CSS Document */
/* ------------------------------------------------------------------------ */

/*  totalbeauty 共通パーツ

/* ------------------------------------------------------------------------ */
#contentsBlock{
	overflow: hidden;
}
div.hg_menu_btn{
	background: rgba(255,255,255,0.5);
}
.hd01{
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
	font-size: 2.5rem;
	color: #8c6239;
	position: relative;
	z-index: 10;
	background-color: #fff;
}

section{
	position: relative;
}
.contents{
	position: relative;
	z-index: 10;
}

.upContets{
	align-items: flex-start;
	justify-content: space-between;
}
	.upContets > div{
		max-width: 480px;
		width: 48%;
	}

.bg_gy{
	background: #dcdcdc;
	padding: 87px 20px 81px;
}

.scroll{
	overflow: auto;
}

.indent{
	text-indent: -1.6rem;
	padding-left: -1.6rem;
}

.contents_wrap{
	position: relative;
	padding-bottom: 11vw;
}

#mainVisual{
	height: 400px;
}



@media screen and (max-width:1500px){
	#mainVisual{
		height: 26.667vw;
	}
}

@media screen and (max-width:1100px){
	#mainBlock .contents{
		padding: 0 20px;
	}
	#mainBlock .course_area{
		padding: 68px 20px;
	}
}
@media screen and (max-width: 900px){
	#mainBlock .course_area {
		padding: 60px 20px;
	}
}
@media screen and (max-width: 767px){
	#mainVisual{
		height: 53.334vw;
	}
	.bg_gy{
		padding: 20px 0;
	}
	.upContets{
		flex-direction: column;
	}
	.upContets > div{
		width: 66%;
	}
		.upContets > div.contents_02{
			margin: 0 0 0 auto;
		}
}


/*  メニュー・コースエリア
------------------------------------------------*/
.menu_hd{
	font-size: 2.5rem;
	color: #666;
	font-weight: 300;
	letter-spacing: 7px;
	margin-bottom: 70px;
}
	.menu_hd span{
		position: relative;
	}
		.menu_hd span::after{
			content: "";
			width: 50px;
			height: 1px;
			background: #666;
			display: inline-block;
			position: absolute;
			bottom: -15px;
			left: 50%;
			transform: translateX(-50%);
		}

.menu_wrap{
	margin-bottom: 35px;
}
	.menu_wrap h3{
		font-size: 2.1rem;
		text-align: left;
		position: relative;
		margin-bottom: 20px;
	}
		.menu_wrap h3::before{
			content: "■";
		}

.menu_tbl,
.course_area table{
	border-collapse: collapse;
}
	.menu_tbl th,
	.menu_tbl td{
		background: #fff;
		border-collapse: collapse;
		border-bottom: solid 10px #dcdcdc;
	}

.menu_tbl{
	width: 100%;
}
	.menu_tbl tr{
		position: relative;
		z-index: -1;
	}
		.menu_tbl th{
			text-align: left;
			padding: 20px 25px;
		}
		.menu_tbl td{
			text-align: right;
			width: 130px;
			padding: 20px 25px 20px 0;
		}
		.menu_tbl td.colspan_td{
			width: 260px;
		}

.menu_tbl tr th .normal{
	font-weight: normal;
}

@media screen and (min-width: 768px){
	.menu_wrap h3 .lead{ margin-top: 10px;}
}

.menu_area ul{
	margin-top: 10px;
	padding: 0 30px;
}
.menu_area ul li,
.course_area ul li{
	text-indent: -1.6rem;
	padding-left: 1.6rem;
	text-align: left;
}

.course_area{
	padding: 68px 0;
	margin-bottom: 40px;
}

.course_area table{
	width: 1078px;
	margin: 0 auto 40px
}
	.course_area table th.ttl{
		font-size: 2.2rem;
		border-top: solid 1px #000;
		border-right: none;
		border-bottom: solid 1px #000;
		text-align: center;
		letter-spacing: 5px;
		padding: 12px;
	}

.course_area table th,
.course_area table td{
	border-right: solid 1px #000;
	padding: 15px;
}


.course_area table th{
	font-weight: normal;
	text-align: left;
}
	.course_area table th.wid_style01{
		width: 152px;
	}

.course_area ul{
	padding: 0 30px;
	margin-bottom: 50px;
}

.course_area ul li{
	line-height: 2;
}

tr.gry{
	background: #f3f3f3;
}

.about_shop_btn a{
	display: inline-block;
	width: 100%;
	background: #4d4d4d;
	color: #fff;
	padding: 16px 10px;
	border: solid 1px #4d4d4d;
	transition: .3s ease-out;
}
.about_shop_btn a:hover{
	background: #fff;
	color: #4d4d4d;
}


@media screen and (max-width: 767px){
	.menu_wrap{
		margin-bottom: 15px;
	}
	.menu_hd{
		font-size: 1.8rem;
		margin-bottom: 20px;
	}
	.menu_hd span::after{
		width: 30px;
		bottom: -10px;
	}
	.menu_tbl th{
		padding: 5px 10px;
		font-weight: 700;
		font-size: 1.2rem;
	}
	.menu_tbl td{
		padding: 5px 10px 5px 0;
		width: 110px;
	}
	.menu_area ul {
		margin-top: 0;
		padding: 0 10px;
	}
		.menu_area ul li,
		.course_area ul li{
			font-size: 1.2rem;
		}
	
	.menu_tbl tr.colspan{
		display: flex;
		flex-direction: column;
	}
	.menu_tbl tr.colspan th,
	.menu_tbl tr.colspan td{
		width: 100%;
	}
	.menu_tbl tr.colspan th{
		border-bottom: none;
	}

	
	.course_area table{
		width: 700px;
		font-size: 1.2rem;
	}
		.course_area table th,
		.course_area table td{
			padding: 10px;
		}
		.course_area table th.ttl{
			font-size: 1.6rem;
			font-weight: 700;
		}
		.course_area table th{
			font-weight: 700;
		}
	
	.course_area ul{
		padding: 0 10px;
		margin-bottom: 20px;
	}
	.about_shop_btn a{
		padding: 10px;
	}
}


/*  サービスの特色など数字使用エリア
------------------------------------------------*/
.num_list li{
	display: flex;
	align-items: center;
	position: relative;
	margin-bottom: 100px;
}
	.num_list li.reverse{
		flex-direction: row-reverse
	}

.num_list li .num{
	position: absolute;
	top: 20px;
	left: 50%;
	transform: translateX(-50%);
	background-size: contain;
	background-position: center center;
	background-repeat: no-repeat;
	z-index: 1;
}

.num_list li.num01 .num{
	background-image: url("/totalbeauty/common/img/num_icon_01.png");
	max-width: 120px;
	width: 20%;
	height: 30%;
}
.num_list li.num02 .num{
	background-image: url("/totalbeauty/common/img/num_icon_02.png");
	max-width: 143px;
	width: 14%;
	height: 25%;
}
.num_list li.num03 .num{
	background-image: url("/totalbeauty/common/img/num_icon_03.png");
	max-width: 122px;
	width: 12%;
	height: 28%;
}
.num_list li.num04 .num{
	background-image: url("/totalbeauty/common/img/num_icon_04.png");
	max-width: 124px;
	width: 12%;
	height: 28%;
}

.num_list li .img_area{
	max-width: 541px;
	width: 56%;
	margin-right: 10%;
}
	.num_list li.reverse .img_area{
		margin-right: 0;
	}

.num_list li .txt_area{
	width: 45%;
	text-align: left;
	line-height: 1.9;
}
	.num_list li.reverse .txt_area{
		margin-right: 8%;
	}

.num_list li .txt_area h3{
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
	font-size: 2.2rem;
	color: #8c6239;
	margin-bottom: 15px;
}

@media screen and (max-width: 900px){
	.num_list li .img_area,
	.num_list li.reverse .txt_area{
		margin-right: 4%;
	}
}

@media screen and (max-width: 767px){
	.num_list li{
		display: block;
		margin-bottom: 40px;
	}
	.num_list li .num {
		position: static;
		top: unset;
		left: unset;
		transform: none;
		display: block;
		margin: 0 auto 20px;
	}
	.num_list li.num01 .num{
		height: 13vw;
		width: 13%;
	}
	.num_list li.num02 .num{
		height: 8vw;
		width: 16%;
	}
	.num_list li.num03 .num{
		width: 16%;
		height: 11vw;
	}
	.num_list li.num04 .num{
		width: 16%;
		height: 11vw;
	}
	.num_list li .img_area,
	.num_list li .txt_area{
		width: 100%;
	}
	.num_list li .img_area,
	.num_list li.reverse .img_area{
		margin: 0 auto 15px;
	}
	
	.num_list li .txt_area h3{
		font-size: 1.6rem;
		margin-bottom: 5px;
	}
}


/*  サービスの流れなど丸付き数字使用エリア
------------------------------------------------*/

.flow{
	padding-left: 70px;
}
	.flow > li{
		display: flex;
		justify-content: flex-start;
		align-items: flex-start;
		font-size: 1.8rem;
		margin-bottom: 30px;
	}

.flow li .flownum{
	width: 61px;
	height: 61px;
	display: flex;
	justify-content: center;
	align-items: center;
	border: solid 1px #666;
	border-radius: 50%;
	font-size: 2rem;
	font-weight: bold;
	margin-right: 10px;
	flex-shrink: 0;
}

.flow li p{
	text-align: left;
}

.flow li ul.hosoku{
	margin-top: 15px;
}
	.flow li ul.hosoku li{
		text-indent: -1.5rem;
		padding-left: 1.5rem;
		font-size: 1.5rem;
		text-align: left;
		margin-bottom: 10px;
	}

.flow li ul.hosoku li:last-child{
	margin-bottom: 0;
}

.flow li p span{
	font-weight: bold;
	display: inline-block;
}

.flow .flow_dl{
	display: flex;
	width: 90%;
	background: #fff;
	padding: 0 30px;
	font-size: 1.5rem;
	margin-top: 10px;
}
	.flow .flow_dl dt{
		font-weight: bold;
	}

	.flow .flow_dl dt,
	.flow .flow_dl dd{
		padding: 20px 10px;
	}

@media screen and (max-width: 1023px){
	.flow .flow_dl{
		width: 100%;
	}
}
@media screen and (max-width: 900px){
	.flow{
		padding-left: 0;
	}
}
@media screen and (max-width: 767px){
	.flow > li{
		font-size: 1.4rem;
	}
	.flow li .flownum{
		width: 35px;
		height: 35px;
		font-size: 1.4rem;
		padding: 2px 0 0 2px;
		margin-right: 15px;
	}
	.flow li p span{
		margin: 8px 0;
	}
	.flow .flow_dl{
		display: block;
		text-align: left;
		padding: 0 10px;
		font-size: 1.4rem;
	}
	.flow .flow_dl dt{
		padding: 10px 10px 0;
	}
	.flow .flow_dl dd{
		padding: 0 10px 10px;
	}
	.menu_wrap h3{
		font-size: 1.4rem;
		margin-bottom: 5px;
	}
}

/*  こんな方におすすめエリア
------------------------------------------------*/
.recommend_sec{
	padding: 194px 0 190px;
}

.recommend_sec .hd01{
	margin-bottom: 23px;
}

.check_box{
	border-top: solid 1px #8c6239;
	border-bottom: solid 1px #8c6239;
	width: 82%;
	margin: 0 auto 97px;
}
	.check_box ul{
		width: 80%;
		margin: 30px auto;
	}
		.check_box ul li{
			position: relative;
			text-align: left;
			font-size: 1.8rem;
			padding-left: 25px;
			margin-bottom: 10px;
		}
			.check_box ul li::before{
				content: "";
				display: inline-block;
				width: 15px;
				height: 15px;
				border: solid 1px #8c6239;
				position: absolute;
				top: 6px;
				left: 0;
			}

			.check_box ul li:last-child{
				margin-bottom: 0;
			}


@media screen and (max-width: 900px){
	.recommend_sec .hd01 {
		margin-bottom: 20px;
	}
	.check_box{
		width: 100%;
	}
	.check_box ul{
		width: 90%;
		margin: 20px auto;
	}
}
@media screen and (max-width:767px){
	.recommend_sec {
		padding: 80px 0;
	}
	.recommend_sec .hd01{
		font-size: 1.6rem;
	}
	.check_box ul li{
		font-size: 1.2rem;
	}
	.check_box ul li::before{
		top: 3px;
	}
}

/*  .type_wrap（サービスの特色 商品img有エリア）
------------------------------------------------*/
.type_wrap .box{
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 60px;
}
	.type_wrap .box:last-child{
		margin-bottom: 0;
	}

	.type_wrap .box .box_l{
		width: 56.5%;
		text-align: left;
		line-height: 1.8;
	}
	.type_wrap .box .box_r{
		width: 41%;
		padding-top: 56px;
	}

.type_wrap .box h3{
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
	font-size: 1.8rem;
	display: inline-block;
	background: #8c6239;
	color: #fff;
	padding: 12px 18px;
	letter-spacing: -1px;
	margin-bottom: 25px;
}

.type_wrap .box .lead{
	font-size: 2.2rem;
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
	font-weight: bold;
	color: #8c6239;
	margin-bottom: 15px;
	line-height: 1.5;
}

.type_wrap .box dl{
	margin-top: 25px;
}
	.type_wrap .box dl dt{
		font-size: 1.8rem;
		font-weight: bold;
		color: #8c6239;
		border-bottom: solid 1px #8c6239;
		padding-bottom: 9px;
		margin-bottom: 10px;
	}

.type_wrap .check_box{
	width: 100%;
	border: solid 1px #8c6239;
	padding: 20px 30px;
	margin: 40px 0;
}
	.type_wrap .box .check_box h3{
		display: block;
		background: none;
		color: #8c6239;
		font-size: 2.2rem;
		padding: 0;
		margin-bottom: 14px;
	}
	.type_wrap .box .check_box ul{
		width: 100%;
		margin: 0;
		padding: 0;
	}
		.type_wrap .box .check_box ul li{
			margin-bottom: 5px;
		}

@media screen and (max-width: 767px){
	.type_wrap .box h3{
		font-size: 1.4rem;
		margin-bottom: 10px;
		padding: 5px 10px;
	}
	.type_wrap .box .imgbox{
		margin: 10px auto;
		text-align: center;
		width: 40%;
	}
	.type_wrap .box .lead{
		font-size: 1.4rem;
		margin-bottom: 10px;
	}
	.type_wrap .box dl dt{
		font-size: 1.4rem;
	}
	.type_wrap .check_box{
		padding: 15px;
		margin: 20px 0;
	}
	.type_wrap .box .check_box h3{
		font-size: 1.6rem;
		margin-bottom: 10px;
	}
}


/*  取り扱い店舗から予約
------------------------------------------------*/

.tgl_btn{
	cursor: pointer;
	font-size: 2rem;
	font-weight: bold;
	background: #c1272d;
	color: #fff;
	padding: 13px 10px;
	position: relative;
	border: solid 1px #c1272d;
	transition: .3s ease-out;
}
	.tgl_btn:hover{
		background: #d82f36;
	}
	.tgl_btn::before{
		content: "";
		border-top: solid 1px #fff;
		border-right: solid 1px #fff;
		display: inline-block;
		width: 10px;
		height: 10px;
		position: absolute;
		top: 50%;
		right: 52px;
		transform: translateY(-50%) rotate(135deg);
		transition: .3s ease-out;
	}

.tgl_btn.on::before{
	transform: translateY(-50%) rotate(-45deg);
}

.slide_link{
	display: none;
	border: solid 1px #000;
	border-bottom: none;
}
	.slide_link li{
		border-bottom: solid 1px #000;
	}
		.slide_link li a{
			display: inline-block;
			width: 100%;
			font-size: 2.2rem;
			padding: 13px 10px;
			transition: .3s ease-out;
			position: relative;
		}

.slide_link li a::after{
	content: "";
	display: inline-block;
	width: 17px;
	height: 17px;
	background: url("/common/img/icon/icon_blankmark_bk.png") no-repeat center center;
	background-size: contain;
	position: absolute;
	top: 50%;
	right: 49px;
	transform: translateY(-50%);
	transition: .3s ease-out;
}

.slide_link li a:hover{
	background: #000;
	color: #fff;
}
	.slide_link li a:hover::after{
		background: url("/common/img/icon/icon_blankmark_wh.png") no-repeat center center;
		background-size: contain;
	}

.type_wrap .box .box_l,
.type_wrap .box .box_r{
	width: 100%;
}

@media screen and (max-width: 767px){
	.tgl_btn{
		padding: 10px;
		font-size: 1.4rem;
	}
		.tgl_btn::before{
			right: 20px;
		}
	.slide_link li a{
		font-size: 1.2rem;
	}
	.slide_link li a::after{
		right: 20px;
		width: 10px;
	}
}



/*  背景
------------------------------------------------*/

.bg_arrow::after{
	content: "";
	display: block;
	width: 100%;
	height: 11vw;
	background: url("/totalbeauty/common/img/bg_gy.jpg") no-repeat center bottom;
	background-size: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
}
.bg_arrow .hd01::before{
	content: "";
	display: block;
	width: 100%;
	height: 11vw;
	background: url("/totalbeauty/common/img/bg_wh.jpg") no-repeat center bottom;
	background-size: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: -1;
}

