/**************************************/
/*    予約
/**************************************/
/* common */
.reservation_box h3.reservation_subtitle{
	position: relative;
	font-size: 13px;
	text-align: center;
	margin-bottom: 24px;
}
.reservation_box h3.reservation_subtitle div{
	position: absolute;
	top: 6px;
	left: 20px;
	width: calc(100% - 40px);
	height: 1px;
	background-color: #EBF2EE;
}
.reservation_box h3.reservation_subtitle span{
	position: relative;
	padding: 0px 20px;
	background-color: #FFF;
}

.reservation_box .reservation_calendar_box{
	padding: 0px 4px;
}
.reservation_box .reservation_calendar_day_box{
	text-align: center;
}
.reservation_box .reservation_calendar_day_box .reservation_calendar_day{
	font-weight: bold;
	line-height: 24px;
	width: calc(100% / 7);
}
.reservation_box .sat{
	color: #0D8AE6;
}
.reservation_box .sun{
	color: #E6260D;
}

.reservation_box .reservation_calendar_date_box{
	text-align: center;
}
.reservation_box .reservation_calendar_date_box .reservation_calendar_date{
	position: relative;
	margin: 0px 2px;
	width: calc(100% / 7);
	height: 64px;
	margin-bottom: 4px;
	background-color: #FFF;
	background-size: 18px 18px;
	background-repeat: no-repeat;
	background-position: center 32px;
	border: solid 1px #EBF2EE;
	border-radius: 8px;
}
.reservation_box .reservation_calendar_date_box .reservation_calendar_date span{
	position: absolute;
	top: 12px;
	left: 0px;
	width: 100%;
	text-align: center;
}
.reservation_box .reservation_calendar_date_box .reservation_calendar_date.able{
	background-image: url('/img/reservation/able.png');
}
.reservation_box .reservation_calendar_date_box .reservation_calendar_date.few{
	background-image: url('/img/reservation/few.png');
}
.reservation_box .reservation_calendar_date_box .reservation_calendar_date.disable{
	background-color: rgba(0,0,0,0.1);
	background-image: url('/img/reservation/disable.png');
}
.reservation_box .reservation_calendar_date_box .reservation_calendar_date.tel::after{
	position: absolute;
	bottom: 6px;
	left: 50%;
	content: "TEL";
	color: #0A8647;
	font-size: 14px;
	font-weight: bold;
	transform: translate(-50%, -50%);
}
.reservation_box .reservation_calendar_date_box .reservation_calendar_date.closed{
	background-color: rgba(0,0,0,0.1);
}
.reservation_box .reservation_calendar_date_box .reservation_calendar_date.closed::after{
	position: absolute;
	bottom: 0px;
	left: 50%;
	content: "ー";
	transform: translate(-50%, -50%);
}

.reservation_box .reservation_calendar_icon_list{
	display: block;
	margin: 12px auto 12px;
	width: calc(100% - 20px);
}
.reservation_box .reservation_calendar_icon_list::after{
	display: block;
	content: "";
	clear: both;
	margin-bottom: 12px;
}
.reservation_box .reservation_calendar_icon_list li{
	position: relative;
	float: left;
	height: 36px;
	margin-right: 12px;
	padding: 14px 0px 0px 24px;
	background-size: 18px 18px;
	background-repeat: no-repeat;
	background-position: left center;
}
.reservation_box .reservation_calendar_icon_list li.able{
	background-image: url('/img/reservation/able.png');
}
.reservation_box .reservation_calendar_icon_list li.few{
	background-image: url('/img/reservation/few.png');
}
.reservation_box .reservation_calendar_icon_list li.disable{
	background-image: url('/img/reservation/disable.png');
}
.reservation_box .reservation_calendar_icon_list li.tel{
	padding-left: 32px;
}
.reservation_box .reservation_calendar_icon_list li.tel::after{
	position: absolute;
	top: 15px;
	left: 0px;
	content: "TEL";
	color: #0A8647;
	font-weight: bold;
}
.reservation_box .reservation_calendar_icon_list li.closed::after{
	position: absolute;
	top: 20px;
	left: 8px;
	content: "ー";
	transform: translate(-50%, -50%);
}

.reservation_box .reservation_shop_contact_box{
	text-align: center;
	margin: 12px auto 24px;
	padding: 20px 0px;
	width: calc(100% - 40px);
	background-color: #EBF2EE;
	border-radius: 12px;
}
.reservation_box .reservation_shop_contact_box h4{
	font-size: 14px;
	margin-bottom: 20px;
}
.reservation_box .reservation_shop_contact_box .reservation_shop_contact_number_box{

}
.reservation_box .reservation_shop_contact_box .reservation_shop_contact_number_box h5{
	margin-bottom: 8px;
}
.reservation_box .reservation_shop_contact_box .reservation_shop_contact_number_box .contact_number{
	margin-bottom: 32px;
}
.reservation_box .reservation_shop_contact_box .reservation_shop_contact_number_box .contact_number span{
	height: 20px;
	font-size: 20px;
	font-weight: bold;
	line-height: 20px;
	padding-left: 32px;
	background-image: url('/img/reservation/phone.png');
	background-size: 20px 20px;
	background-repeat: no-repeat;
	background-position: left center;
}
.reservation_box .reservation_shop_contact_box .contact_caution{
	color: #8D928F;
	font-size: 11px;
	text-align: center;
}


/* index */
#reservation_layout{}
#reservation_layout .reservation_main_box{
	position: relative;
	width: 100%;
	height: 224px;
	overflow: hidden;
}
#reservation_layout .reservation_main_box:after{
	position: absolute;
	bottom: 0px;
	left: 0px;
	content: "";
	width: 100%;
	height: 32px;
	background-color: #FFF;
	border-radius: 16px 16px 0px 0px;
}
#reservation_layout .reservation_main_box img{
	width: 100%;
	height: auto;
}

#reservation_layout .reservation_box{}
#reservation_layout .reservation_box .reservation_course_list_box{
	margin: 0px auto;
	width: calc(100% - 20px);
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list{}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_img{
	text-align: center;
	width: 100px;
	margin-bottom: 10px;
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_img img{
	width: 100px;
	border-radius: 12px;
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_img .item_no_image{
	line-height: 100px;
	width:100px;
	height: 100px;
	background-color:#EEE;
	border-radius: 4px;
	box-shadow: inset 0px 0px 4px rgba(0,0,0,0.5);
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_detail{
	padding-left: 10px;
	width: calc(100% - 100px);
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_detail h4.course_title{
	font-size: 13px;
	margin-bottom: 12px;
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_detail h4.course_title span{
	font-size: 10px;
	font-weight: normal;
	padding: 2px 6px;
	background-color: #EBF2EE;
	border-radius: 4px;
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_description{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-bottom: 8px;
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_rule{
	width: 100%;
	margin-bottom: 8px;
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_rule .course_rule_num{
	line-height: 14px;
	margin-right: 12px;
	padding-left: 20px;
	background-image: url('/img/reservation/users.png');
	background-size: 14px 14px;
	background-repeat: no-repeat;
	background-position: left center;
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_rule .course_rule_date{
	line-height: 14px;
	padding-left: 20px;
	background-image: url('/img/reservation/clock.png');
	background-size: 14px 14px;
	background-repeat: no-repeat;
	background-position: left center;
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_rule .course_price{
	color: #0A8647;
	font-weight: bold;
	padding-top: 8px;
	width: 30%;
}
#reservation_layout .reservation_box .reservation_course_list_box .reservation_course_list .course_rule .course_detail_box{
	width: 70%;
}

/******** 詳細パーツ用 ********/
.reservation_course_detail_box h2.course_detail_title{
	position: relative;
	font-size: 13px;
	line-height: 72px;
	text-align: center;
}
.reservation_course_detail_box h2.course_detail_title span{
	position: absolute;
	left: 12px;
	top: 0px;
	width: 32px;
}

.reservation_course_detail_box .course_main_box{
	width: 100%;
	background-color: #EFEFEF;
	overflow: hidden;
}
.reservation_course_detail_box .course_main_box .item_no_image{
	text-align: center;
	line-height: 224px;
}
.reservation_course_detail_box .course_main_box img{
	width: 100%;
	height: auto;
}
.reservation_course_detail_box .course_detail_box{
	margin: 10px auto 20px;
	width: calc(100% - 40px);
}
.reservation_course_detail_box .course_detail_box h3{
	font-size: 14px;
	line-height: 36px;
}
.reservation_course_detail_box .course_detail_box h4{
	line-height: 36px;
}
.reservation_course_detail_box .course_detail_box .course_detail_description{
	margin-bottom: 20px;
}

.reservation_course_detail_box .course_detail_price{
	margin-bottom: 24px;
}
.reservation_course_detail_box .course_detail_price .course_detail_price_title{
	line-height: 44px;
	padding-left:20px;
	background-color: #EBF2EE;
	border: solid 1px #EBF2EE;
}
.reservation_course_detail_box .course_detail_price .course_detail_price_value{
	color: #0A8647;
	font-size: 18px;
	font-weight: bold;
	line-height: 44px;
	text-align: right;
	padding-right:12px;
	border-top: solid 1px #EBF2EE;
	border-bottom: solid 1px #EBF2EE;
}
.reservation_course_detail_box .course_detail_price .course_detail_price_discount{
	padding:2px 2px 2px 4px;
	color:#FFF;
	font-size:11px;
	margin:0px 4px;
	background-color: #C00;
	border-radius: 2px;
}

/* input-info */
#reservation_layout h2.reservation_title{
	font-size: 13px;
	line-height: 72px;
	text-align: center;
}

#reservation_layout .reservation_date_box{
	margin: 0px auto 32px;
	width: calc(100% - 40px);
}
#reservation_layout .reservation_date_box .reservation_date{
	width: calc(100% / 3 * 2);
}
#reservation_layout .reservation_date_box .reservation_num{
	width: calc(100% / 3);
	padding-left: 12px;
}
#reservation_layout .reservation_date_box .reservation_date select,
#reservation_layout .reservation_date_box .reservation_num select{
	height: 50px;
	width: 100%;
	padding-left: 12px;
	border: solid 1px #8D928F;
	border-radius: 4px;
}

#reservation_layout .reservation_time_box{
	margin: 0px 0px 20px 12px;
}
#reservation_layout .reservation_time_box .reservation_time_list{
	display: flex;
	width: 100%;
	height:48px;
	line-height: 48px;
	overflow-x: scroll;
}
#reservation_layout .reservation_time_box .reservation_time_list .reservation_time_item{
	flex-shrink: 0;
	color: #FFF;
	font-weight: bold;
	line-height: 28px;
	text-align: center;
	margin-right: 8px;
	width: 60px;
	height: 28px;
	background-color: #CCC;
	border-radius: 4px;
}
#reservation_layout .reservation_time_box .reservation_time_list input:checked + .reservation_time_item{
	flex-shrink: 0;
	color: #FFF;
	font-weight: bold;
	line-height: 28px;
	text-align: center;
	margin-right: 8px;
	width: 60px;
	height: 28px;
	background-color: #0A8647;
	border-radius: 4px;
}


#reservation_layout .reservation_course_select_list_box{
	margin: 0px auto;
	width: calc(100% - 40px);
}
#reservation_layout .reservation_course_select_list_box .reservation_course_select_list{
	margin-bottom: 16px;
	padding: 20px;
	width: 100%;
	border-radius: 10px;
	box-shadow: 0px 0px 4px 4px rgba(0,0,0,0.1);
}
#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_img{
	width: 80px;
}
#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_img img{
	width: 100%;
	border-radius:8px;
}
#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_img .course_price{
	color: #0A8647;
	font-size: 14px;
	font-weight: bold;
	text-align: center;
	padding-top: 8px;
}

#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_detail{
	padding-left: 20px;
	width: calc(100% - 110px);	
}
#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_detail h4{
	font-size: 14px;
	margin-bottom: 12px;
}
#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_detail h4 span{
	font-size: 12px;
	line-height: 14px;
	padding: 0px 4px;
	background-color:#EBF2EE;
	border-radius: 4px;
}
#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_detail .course_description{
    color: #8D928F;
    font-size: 10px;
    line-height: 120%;
    margin-bottom: 12px;
}
#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_detail .course_rule{
	width: 100%;
	margin-bottom: 12px;
}
#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_detail .course_rule .course_num{
	line-height: 14px;
	margin-right: 12px;
	padding-left: 20px;
	background-image: url('/img/reservation/users.png');
	background-size: 14px 14px;
	background-repeat: no-repeat;
	background-position: left center;
}
#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_detail .course_rule .course_date{
	line-height: 14px;
	padding-left: 20px;
	background-image: url('/img/reservation/clock.png');
	background-size: 14px 14px;
	background-repeat: no-repeat;
	background-position: left center;
}

#reservation_layout .reservation_course_select_list_box .reservation_course_select_list .course_select_input{
	width: 30px;
	text-align: center;
	padding-top: 50px;
}
.course_select_input input[type=radio]{
	display: none;
}
.course_select_input label {
	cursor: pointer;
	position: relative;
}
.course_select_input label::before,
.course_select_input label::after {
	position: absolute;
	display: block;
	content: "";
	border-radius: 50%;
	transform: translateY(-50%);
	top: 50%;
}
.course_select_input label::before {
	left: 0px;
	height: 16px;
	width: 16px;
	background-color: #fff;
	border: 1px solid #0A8647;
}
.course_select_input label::after {
	left: 2.75px;
	height: 10px;
	width: 10px;
	background-color: #0A8647;
	opacity: 0;
}
.course_select_input input:checked + label::after {
	opacity: 1;
}

#reservation_layout .reservation_box .reservation_seat_select_box{
	padding:0px 20px;
	margin-bottom: 20px;
}
#reservation_layout .reservation_box .reservation_seat_select_box select{
	padding:0px 8px;
	width:100%;
	height: 40px;
	border-radius:4px;
	border:solid 1px #999;
}

#reservation_layout .reservation_box .reservation_select{
	padding:0px 20px;
}
#reservation_layout .reservation_box .reservation_select li{
	line-height: 32px;
}
#reservation_layout .reservation_box .reservation_select li input[type=radio]{
	display: none;
}
#reservation_layout .reservation_box .reservation_select li label {
	cursor: pointer;
	padding-left: 30px;
	position: relative;
}
#reservation_layout .reservation_box .reservation_select li label::before,
#reservation_layout .reservation_box .reservation_select li label::after {
	content: "";
	display: block;
	border-radius: 50%;
	position: absolute;
	transform: translateY(-50%);
	top: 50%;
}
#reservation_layout .reservation_box .reservation_select li label::before {
	background-color: #fff;
	border: 1px solid #0A8647;
	height: 18px;
	width: 18px;
	left: 0px;
}
#reservation_layout .reservation_box .reservation_select li label::after {
	background-color: #0A8647;
	opacity: 0;
	height: 11px;
	width: 11px;
	left: 4px;
}
#reservation_layout .reservation_box .reservation_select li input:checked + label::after {
	opacity: 1;
}

#reservation_layout .payment_card_select{
	font-size:14px;
	padding:0px 8px;
	width:100%;
	height: 40px;
}


/* confirm */
#reservation_layout .reservation_info_box{
	margin: 0px auto 20px;
	width: calc(100% - 40px);
}
#reservation_layout .reservation_info_box h3{
	font-size: 14px;
	margin-bottom: 8px;
}
#reservation_layout .reservation_info_box .reservation_info_detail{
	color: #0A8647;
	font-size: 18px;
	font-weight: bold;
	line-height: 48px;
	text-align: center;
	width: 100%;
	height: 48px;
	border-bottom: solid 1px #ABB3AF;
}
#reservation_layout .reservation_info_box.flexbox > div:nth-child(odd){
	margin-right: 8px;
}
#reservation_layout .reservation_info_box.flexbox > div:nth-child(even){
	margin-left: 8px;
}
#reservation_layout .reservation_info_box .reservation_confirm_txt{
	width: 100%;
	height: 100px;
	padding: 8px;
	border-radius: 4px;
}

/* complete */
#reservation_layout .reservation_info_box .reservation_complete_number{
	color: #FFF;
	font-size: 28px;
	font-weight: bold;
	line-height: 64px;
	text-align: center;
	width: 100%;
	height: 60px;
	background-color: #0A8647;
}

#reservation_layout .reservation_info_box.bb{
	border-bottom: solid 1px #ABB3AF;
}
#reservation_layout .reservation_info_box.bb > div{
	padding: 12px 0px;
}
#reservation_layout .reservation_info_box .telephone_number{
	position: relative;
	font-size: 20px;
	font-weight: bold;
	line-height: 42px;
	margin-top: 12px;
	padding-left: 28px;
}
#reservation_layout .reservation_info_box .telephone_number:before{
	position: absolute;
	top: 4px;
	left: 0px;
	display: inline-block;
	content: "";
	width: 20px;
	height: 20px;
	background-image: url('/img/reservation/phone.png');
	background-size: 20px 20px;
}
#reservation_layout .reservation_info_box input[type=text],
#reservation_layout .reservation_info_box input[type=email],
#reservation_layout .reservation_info_box select{
	padding:0px 8px;
	width:100%;
	height: 40px;
	border-radius:4px;
	border:solid 1px #999;
}


/* history / history-detail */
#reservation_layout .reservation_info_logo{
	text-align: center;
	margin-bottom: 32px;
}
#reservation_layout .reservation_info_logo img{
	width: 80px;
	height: auto;
}

#reservation_layout .reservation_history_box{
	margin: 0px auto;
	width: calc(100% - 40px);
}
#reservation_layout .reservation_history_box .reservation_history_list{
	position: relative;
	color: #000;
	border-bottom: solid 1px #EBF2EE;
	padding: 8px 0px;
}
#reservation_layout .reservation_history_box .reservation_history_list::after{
	position: absolute;
	top: 50%;
	right: 0px;
	color: #8D928F;
	content: "▶";
}
#reservation_layout .reservation_history_box .reservation_history_list .reservation_history_title{
	font-weight: bold;
	padding-right: 12px;
}
#reservation_layout .reservation_history_box .reservation_history_list .reservation_history_datetime{
	line-height: 18px;
}
#reservation_layout .reservation_history_box .reservation_history_list .reservation_history_datetime .reservation_status{
	font-size:11px;
	padding:2px 10px;
	height:18px;
	line-height: 18px;
	background-color:#EBF2EE;
}
#reservation_layout .reservation_history_box .reservation_history_list .reservation_history_list_item{
	position: relative;
}
#reservation_layout .reservation_history_box .reservation_history_list .reservation_history_shop_image{
	text-align: center;
	min-width: 80px;
	padding: 6px 0px;
	margin-top:6px;
}
#reservation_layout .reservation_history_box .reservation_history_list .reservation_history_shop_image img{
	width: auto;
	height: 36px;
}
#reservation_layout .reservation_history_box .reservation_history_list .item_no_image{
	color:white;
	font-size:12px;
	line-height: 36px;
	text-align: center;
	width:72px;
	height:36px;
	background-color:#BBB;
	border-radius:8px;
}
#reservation_layout .reservation_history_box .reservation_history_list .reservation_history_shop_name{
	line-height: 30px;
	padding: 14px 8px 0px 8px;
}

/* payment */
#reservation_layout .reservation_payment_box{
	margin: 0px auto;
	width: calc(100% - 40px);
}
#reservation_layout .reservation_payment_box .reservation_content_list{
	margin:12px auto;
}
#reservation_layout .reservation_payment_box .reservation_content_list h3{
	margin-bottom: 8px;
}
