/* CSS Document */
.fc-event {
	border-radius: 0px;
}

#calendar .fc-event-main .duration {
	font-size: 12px;
}

.zabuto_calendar {}

.zabuto_calendar table {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	grid-gap: 0.5em;
}

.zabuto_calendar tr {
	display: contents;
}

.zabuto_calendar th {
	justify-self: center;
	text-align: center;
}

.zabuto_calendar th[colspan="5"] {
	grid-column: 2 / 7;
}

.zabuto_calendar th span {
	display: contents;
}

.zabuto_calendar td {
	position: relative;
	padding-top: 100%;
	background: #f2f2f2;
	border-radius: calc(var(--theme-corner) * 16);
}

.zabuto_calendar td:empty {
	opacity: 0;
}

.zabuto_calendar td div {
	position: absolute;
	top: 0;
	left: 0;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	cursor: pointer;
}

.zabuto_calendar .calendar-month-header {}

.zabuto_calendar .calendar-month-header th {
	margin-bottom: 1em;
}

.zabuto_calendar .calendar-month-navigation {
	width: 1em;
	height: 1em;
	-webkit-mask-position: center;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	background: currentColor;
	overflow: hidden;
	transform: scale(1.2);
	cursor: pointer;
}

.zabuto_calendar .calendar-month-navigation[id*="prev"] {
	-webkit-mask-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"/></svg>');
}

.zabuto_calendar .calendar-month-navigation[id*="next"] {
	-webkit-mask-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"/></svg>');
}

.zabuto_calendar .calendar-dow-header {}

.zabuto_calendar .calendar-dow-header th {
	margin-bottom: 0.25em;
}

.zabuto_calendar .ls-disable,
.zabuto_calendar .ls-past {
	pointer-events: none;
	opacity: 0.25;
}

.zabuto_calendar .sat {}

.zabuto_calendar .sat:where(th, td) {
	color: #a0a0FF;
}

.zabuto_calendar .sat:where(td) {
	background: rgba(160, 160, 255, 0.1);
}

.zabuto_calendar .sun {}


.zabuto_calendar .event-styled.ls-holiday,
.zabuto_calendar .sun:where(td) {
	background: rgba(255, 160, 160, 0.1);
}

.zabuto_calendar .event-styled.ls-holiday,
.zabuto_calendar .sun:where(th, td) {
	color: #FFa0a0;
}

.zabuto_calendar .ls-disable {
	pointer-events: none;
	opacity: 0.25;
}

.zabuto_calendar .selected {
	background: var(--theme-color);
	color: var(--theme-font-color);
	font-weight: 900;
}


#calendar .lsSlot:hover {
	box-shadow: 0px 0px 16px 0px rgba(0, 0, 0, 0.25);
}


#calendar .lsSelect {
	box-shadow: 0px 0px 16px 0px rgba(0, 0, 0, 0.5);
}

#calendar .lsSelect:hover {
	box-shadow: 0px 0px 16px 0px rgba(0, 0, 0, 0.6);
}

/* end fullcalendar */




#booking {
	display: grid;
	grid-column-gap: 4em;
}

#booking section {
	display: grid;
	grid-gap: 1.5em;
	margin-top: calc(var(--space) / 2);
}

#bookingStudio {}

#bookingStudio h3+div {
	display: grid;
	grid-gap: 0.5em;
}

#bookingSeat .floorPlan {
	overflow-x: auto;
}

#bookingAction {
	display: grid;
	justify-items: center;
	grid-gap: 1.5em;
}

#bookingAction #errorText:not(:empty)+.buttonSet {
	display: none;
}

#bookingReserved {
	display: grid;
	grid-gap: 1.5em;
	margin-top: var(--space);
}

#bookingReserved.none {
	display: none;
}

#bookingWaitlisted {
	display: grid;
	grid-gap: 1.5em;
	margin-top: var(--space);
}

#bookingWaitlisted.none {
	display: none;
}

#step5 {
	display: contents;
}

[data-bind="foreach:legend"] {
	display: flex;
	flex-wrap: wrap;
	grid-gap: 1em 24px;
	justify-content: center;
	font-size: 14px;
}

[data-bind="foreach:legend"] li {
	display: flex;
	align-items: center;
	grid-gap: 4px;
}

[data-bind="html:iconsLegend"] {
	display: flex;
	flex-wrap: wrap;
	margin-top: 0.25em;
}

[data-bind="html:iconsLegend"] span {
	margin-right: 1em;
}

.table {
	position: relative;
}

.bkgFree {
	position: absolute;
	top: 2em;
	right: 2em;
	display: grid;
	place-items: center;
	width: 10em;
	height: 2em;
	background: var(--theme-color-variable);
	color: #fff;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.05em;
	transform: translate(50%, -50%) rotate(45deg);
	z-index: 1;
}


/* for lower */
@media (max-width: 1199.98px) {
	/*1199px以下*/
}

@media (max-width: 991.98px) {
	/*991px以下*/
}

@media (max-width: 767.98px) {
	/*767px以下*/
}

@media (max-width: 575.98px) {
	/*575px以下*/
}


/* Small */
@media (min-width: 576px) {
	/*576px以上*/
}

@media (min-width: 576px) and (max-width: 767.98px) {
	/*576px～767px*/
}

@media (min-width: 576px) and (max-width: 991.98px) {
	/*576px～991px*/
}

@media (min-width: 576px) and (max-width: 1199.98px) {
	/*576px～1199px*/
}

@media (min-width: 576px) and (max-width: 1399.98px) {
	/*576px～1399px*/
}


/* Medium */
@media (min-width: 768px) {

	/*768px以上*/
	#booking {}

	#booking>* {
		grid-column: 1 / 3;
	}

	#booking #bookingStudio {
		grid-column: 1;
		grid-row: 2;
	}

	#booking #bookingDate {
		grid-column: 1;
		grid-row: 3;
	}

	#booking #bookingProgram {
		grid-column: 2;
		grid-row: 2 / 5;
		align-content: start;
	}
}

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

	/*768px～991px*/
	#booking {
		grid-template-columns: 1fr 1.5fr;
	}
}

@media (min-width: 768px) and (max-width: 1199.98px) {
	/*768px～1199px*/
}

@media (min-width: 768px) and (max-width: 1399.98px) {
	/*768px～1399px*/
}


/* Large */
@media (min-width: 992px) {

	/*992px以上*/
	#booking {
		grid-template-columns: 1fr 3fr;
	}
}

@media (min-width: 992px) and (max-width: 1199.98px) {
	/*992px～1199px*/
}

@media (min-width: 992px) and (max-width: 1399.98px) {
	/*992px～1399px*/
}


/* X-Large */
@media (min-width: 1200px) {
	/*1200px以上*/
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
	/*1200px～1399px*/
}


/* XX-Large */
@media (min-width: 1400px) {
	/*1400px以上*/
}



.seats {}

.seats label {
	opacity: 1;
}

.seats input:checked+label {
	background: var(--theme-color-variable);
	color: #fff;
}



.dimOnly.loading:before {
	content: "";
}

.dimOnly.loading:after {
	content: "";
	display: none;
}

.loading:before {
	z-index: 10;
}

.loading:after {
	z-index: 11;
}

.loadingFadeOut.step:before,
.loadingFadeOut.step:after {
	opacity: 0;
	transition: opacity 0.2s;
}