@charset "utf-8";

/* ========================================================
	reserve.css
======================================================== */

/* reserve_type_select
============================================================================================================ */
.reserve_type_select {
	position: relative;
	overflow: hidden;
	margin-top: 40px;
	margin-bottom: 70px;
	padding: 40px;
	border: 1px solid #c5c2b7;
}
.reserve_type_select dl + dl {
	margin-top: 30px;
}
body.init .reserve_type_select dl {
	-webkit-transition: opacity 0.2s ease-in-out;
	-o-transition: opacity 0.2s ease-in-out;
	transition: opacity 0.2s ease-in-out;
}
.reserve_type_select dl.hide {
	position: absolute;
	left: -999vw;
	opacity: 0;
}
.reserve_type_select .type2-group.hide {
	display: none;
}
.reserve_type_select dt {
	margin-bottom: 15px;
}
.reserve_type_select ul {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
}
.reserve_type_select .type1 ul {
	flex-wrap: wrap;
}
.reserve_type_select .type1 ul li {
	margin-bottom: 20px;
}
.reserve_type_select ul input {
	position: absolute;
	visibility: hidden;
}
.reserve_type_select ul label {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	justify-content: center;
	-ms-align-items: center;
	align-items: center;
	height: 50px;
	text-align: center;
	border: 1px solid #c5c2b7;
}
.page-reserve .reserve_type_select ul label {
	line-height: 1.2;
}
.reserve_type_select ul input:checked + label {
	background-color: #c5c2b7;
	color: #fff;
}
.reserve_type_select .shop--step2 {
	margin-top: 20px;
	-webkit-transition: opacity 0.2s ease-in-out;
	-o-transition: opacity 0.2s ease-in-out;
	transition: opacity 0.2s ease-in-out;
}
.reserve_type_select .shop--step2.shop-hide,
.reserve_type_select .shop--step2 li.shop-hide {
	position: absolute;
	left: -999vw;
	opacity: 0;
}
.page-reserve .reserve_type_select ul label.type2-enamelring-label {
	flex-direction: column;
}
.page-reserve .reserve_type_select ul label.type2-enamelring-label .type2-enamelring-label-text {
	width: 100%;
	padding: 10px;
}
.reserve_type_select .shop--step2 .reserve_note {
	margin-top: 10px;
}
@media screen and (min-width: 769px), print {
	.reserve_type_select ul {
		margin-left: -20px;
	}
	.reserve_type_select ul li {
		padding-left: 20px;
		width: 25%;
	}
	body.init .reserve_type_select ul label {
		-webkit-transition: color 0.2s ease-in-out, background 0.2s ease-in-out, border 0.2s ease-in-out, opacity 0.2s ease-in-out;
		-o-transition: color 0.2s ease-in-out, background 0.2s ease-in-out, border 0.2s ease-in-out, opacity 0.2s ease-in-out;
		transition: color 0.2s ease-in-out, background 0.2s ease-in-out, border 0.2s ease-in-out, opacity 0.2s ease-in-out;
	}
	.reserve_type_select ul label:hover {
		background-color: #c5c2b7;
		color: #fff;
	}
}
@media screen and (max-width: 768px) {
	.reserve_type_select {
		margin-top: 20px;
		margin-bottom: 40px;
		padding: 20px;
	}
	.reserve_type_select dl + dl {
		margin-top: 20px;
	}
	.reserve_type_select dt {
		margin-bottom: 8px;
	}
	.reserve_type_select ul {
		-webkit-flex-wrap: wrap;
		-moz-flex-wrap: wrap;
		-ms-flex-wrap: wrap;
		-o-flex-wrap: wrap;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.reserve_type_select ul li {
		width: calc(50% - 5px);
	}
	.reserve_type_select ul li:nth-child(2) ~ * {
		margin-top: 10px;
	}
	.reserve_type_select .type1 ul li {
		margin-bottom: unset;
	}
}

#calender {
	position: relative;
	min-height: 100px;
}
#calender.loading::before {
	content: "";
	position: absolute;
	top: 20px;
	left: 50%;
	margin: -25px 0 0 -25px;
	width: 50px;
	height: 50px;
	border-top: 8px solid rgba(197,194,183,.3);
	border-right: 8px solid rgba(197,194,183,.3);
	border-bottom: 8px solid rgba(197,194,183,.3);
	border-left: 8px solid rgba(197,194,183,1);
	border-radius: 100%;
	-webkit-transform: translateZ(0);
	-ms-transform: translateZ(0);
	transform: translateZ(0);
	-webkit-animation: form_db_entry_loadimg 1.1s infinite linear;
	animation: form_db_entry_loadimg 1.1s infinite linear;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	z-index: 999;
}
#calender.loading > * {
	opacity: .3;
	pointer-events: none;
}
@-webkit-keyframes form_db_entry_loadimg {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
@keyframes form_db_entry_loadimg {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
#calender table {
	width: 100%;
	table-layout: fixed;
}
#calender table caption {
	margin-bottom: 20px;
	font-size: 2.6rem;
	line-height: 1.5;
	text-align: center;
}
#calender table th,
#calender table td {
	border: 1px solid #d1d0cb;
	text-align: center;
	font-weight: bold;
}
#calender table th {
	padding: 5px;
	background-color: #f8f8f7;
	font-size: 1.5rem;
}
#calender table th.w6 {
	color: #007bba;
}
#calender table th.w0 {
	color: #df143d;
}
#calender table td {
	padding: 5px 0 10px;
	vertical-align: top;
	font-size: 1.3rem;
}
#calender table td.w6 {
	background-color: #e5f4fa;
	color: #007bba;
}
#calender table td.w0 {
	background-color: #ffe8ec;
	color: #df143d;
}
#calender table td.non {
	background-color: #f8f8f7;
}
#calender table td.non span {
	opacity: .4;
}
#calender table td a {
	display: block;
	position: relative;
	height: 38px;
	margin: auto;
}
#calender table td.ok a {
	padding: 4px;
}
#calender table td.ok a::before {
	content: "";
	display: block;
	width: 30px;
	height: 30px;
	margin: auto;
	border: 3px solid #ffae00;
	border-radius: 100%;
}
#calender table td.ng {
	background-color: #f8f8f7;
}
#calender table td.ng a::before,
#calender table td.ng a::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 30px;
	margin: -2px 0 0 -15px;
	border-top: 4px solid #a9a9a9;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	-o-transform: rotate(45deg);
	transform: rotate(45deg);
}
#calender table td.ng a::after {
	-webkit-transform: rotate(-45deg);
	-ms-transform: rotate(-45deg);
	-o-transform: rotate(-45deg);
	transform: rotate(-45deg);
}
#calender table td.half a {
	padding: 3px;
}
#calender table td.half a::after {
	content: "";
	display: block;
	width: 42px;
	height: 32px;
	margin: auto;
	background: url(../images/ico_sankaku.png) no-repeat 50%;
	-webkit-background-size: auto 100%;
	background-size: auto 100%;
}
#calender table td.tel a {
	padding: 1px;
}
#calender table td.tel a::before {
	content: "";
	display: block;
	width: 36px;
	height: 36px;
	margin: auto;
	background: #ffae00 url(../images/ico_tel.png) no-repeat 50%;
	-webkit-background-size: 100%;
	background-size: 100%;
	border-radius: 100%;
}
#calender table td.tel a span {
	position: absolute;
	left: 50%;
	bottom: 95%;
	width: 90%;
	padding: 5px;
	background-color: #c5c2b7;
	color: #fff;
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
	-o-transform: translateX(-50%);
	transform: translateX(-50%);
	z-index: 3;
	opacity: 0;
	pointer-events: none;
}
#calender table td.tel a span::after {
	content: "";
	position: absolute;
	bottom: -8px;
	left: 50%;
	width: 16px;
	height: 16px;
	background-color: #c5c2b7;
	-webkit-transform-origin: 0 100%;
	-moz-transform-origin: 0 100%;
	-ms-transform-origin: 0 100%;
	-o-transform-origin: 0 100%;
	transform-origin: 0 100%;
	-webkit-transform: rotate(-45deg);
	-ms-transform: rotate(-45deg);
	-o-transform: rotate(-45deg);
	transform: rotate(-45deg);
	z-index: -1;
}
@media screen and (min-width: 769px), print {
	#calender .calender {
		padding: 0 40px;
	}
	#calender table td.tel a:hover span {
		-webkit-transform: translate(-50%, -2px);
		-ms-transform: translate(-50%, -2px);
		-o-transform: translate(-50%, -2px);
		transform: translate(-50%, -2px);
		opacity: 1;
	}
	body.init #calender table td.tel a span {
		-webkit-transition: -webkit-transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
		-o-transition: -o-transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
		transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
	}
}
@media screen and (max-width: 768px) {
	#calender table caption {
		margin-bottom: 15px;
		font-size: 1.8rem;
	}
	#calender table th {
		padding: 2px;
		font-size: 1.2rem;
	}
	#calender table td {
		padding: 2px 0 5px;
		font-size: 1rem;
	}
	#calender table td a {
		height: 26px;
	}
	#calender table td.ok a {
		padding: 2px;
	}
	#calender table td.ok a::before {
		width: 22px;
		height: 22px;
		border-width: 2px;
	}
	#calender table td.ng a::before,
	#calender table td.ng a::after {
		width: 24px;
		margin: -1px 0 0 -12px;
		border-top-width: 2px;
	}
	#calender table td.half a {
		padding: 2px;
	}
	#calender table td.half a::after {
		width: auto;
		height: 22px;
		margin: auto;
	}
	#calender table td.tel a {
		padding: 0;
	}
	#calender table td.tel a::before {
		width: 26px;
		height: 26px;
	}
}


#calender .slide_arrow {
	margin-bottom: 10px;
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	justify-content: space-between;
}
#calender .slide_arrow a {
	position: relative;
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	justify-content: center;
	-ms-align-items: center;
	align-items: center;
	height: 50px;
	text-align: center;
	border: 1px solid #c5c2b7;
	text-decoration: none;
}
#calender .slide_arrow a.slick-disabled {
	opacity: .3;
	pointer-events: none;
}
#calender .slide_arrow a::after {
	content: "";
	position: absolute;
	bottom: 50%;
	width: 18px;
	height: 4px;
	border-bottom: 1px solid #aba8a0;
}
#calender .slide_arrow a.prev::after {
	left: 15px;
	border-left: 2px solid #aba8a0;
	-webkit-transform-origin: 0 100%;
	-moz-transform-origin: 0 100%;
	-ms-transform-origin: 0 100%;
	-o-transform-origin: 0 100%;
	transform-origin: 0 100%;
	-webkit-transform: skewX(-60deg);
	-ms-transform: skewX(-60deg);
	-o-transform: skewX(-60deg);
	transform: skewX(-60deg);
}
#calender .slide_arrow a.next::after {
	right: 15px;
	border-right: 2px solid #aba8a0;
	-webkit-transform-origin: 100% 100%;
	-moz-transform-origin: 100% 100%;
	-ms-transform-origin: 100% 100%;
	-o-transform-origin: 100% 100%;
	transform-origin: 100% 100%;
	-webkit-transform: skewX(60deg);
	-ms-transform: skewX(60deg);
	-o-transform: skewX(60deg);
	transform: skewX(60deg);
}
@media screen and (min-width: 769px), print {
	#calender .slide_arrow {
		padding: 0 40px;
	}
	#calender .slide_arrow li {
		width: 220px;
	}
	#calender .slide_arrow a:hover {
		background-color: #c5c2b7;
		color: #fff;
	}
	#calender .slide_arrow a:hover::after {
		border-color: #fff;
	}
}
@media screen and (max-width: 768px) {
	#calender .slide_arrow {
		margin-bottom: 20px;
	}
	#calender .slide_arrow li {
		width: calc(50% - 25px);
	}
	#calender .slide_arrow a {
		height: 40px;
	}
	#calender .slide_arrow a.prev::after {
		left: 10px;
	}
	#calender .slide_arrow a.next::after {
		right: 10px;
	}

}

/* multilingual */
.page_title {
	flex-direction: column;
}
.multilingual_title {
	font-size: 16px;
	font-size: 1rem;
}
.reserve_type_select dt {
	line-height: 1.2;
}
.multilingual_text {
	font-size: 12px;
	font-size: 0.75rem;
}
.reserve_type_select ul label {
	flex-direction: column;
}
#calender .slide_arrow a {
	flex-direction: column;
	line-height: 1.2;
}
#calender table caption {
	line-height: 1.2;
}
.multilingual_calenderDate {
	font-size: 16px;
	font-size: 1rem;
}