.fc-day { position: relative; }

.fc-day.fc-future.fully_booked, .fc-day.fc-today + .fc-day.fc-future { pointer-events: none!important; }
.fc-content-skeleton { pointer-events: none; }

.fc-day-grid-event.past_event, .fc-day-grid-event.past_event * { pointer-events: none!important; }

.fc-event:not(.past_event) { background-color: #1f4778!important; color: #fff!important; }










.fc-list-view {
  border-width: 0;
}
td.fc-list-item-time { display: none; }

.fc-unthemed .fc-list-heading td {
    background: #000;
	position: relative;
	padding: 2rem 0.75rem 0.5rem;
}
.fc-unthemed .fc-list-heading td * { position: relative; }
.fc-unthemed .fc-list-heading td:before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: calc(100% - 1.5rem);
	background: #222;
	border-radius: 0.25rem;
}
.fc-unthemed .fc-list-item {
	position: relative;
}
.fc-unthemed .fc-list-item:before {
	content: '';
	position: absolute;
	bottom: 1px;
	left: 2px;
	width: calc(100% - 4px);
	height: calc(100% - 2px);
	background: #000;
	transition: all ease 0.25s;
	z-index: -1;
}
.fc-unthemed .fc-list-item:hover:before {
	background: #000;
}
#calendar table .fc-list-item td {
	position: relative;
	border-color: rgba(0,0,0,0)!important;
	font-size: 0.9rem
	padding: 0.5rem 0;
}
.fc-unthemed .fc-list-item:hover td {
	background: none;
}
.fc-list-item.fc-has-url.past_event { pointer-events: none; }
.fc-list-item.fc-has-url.past_event a { color: #777; }
.fc-list-heading-alt { font-weight: normal; color: #666; font-size: 0.85rem; }
.fc-list-heading-main { font-weight: 500; font-family: Montserrat, sans-serif; text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.85rem; }
#calendar table .fc-list-item + .fc-list-item:before { border-top: 1px solid #333!important; }
.fc-event-dot { background: var(--bs-primary); margin: 0 0.25rem 0 0.85rem; width: 8px; height: 8px; }
.fc-list-item-title .fc-title { font-weight: normal; }
.fc-list-item-title { color: #ccc; }
.past_event .fc-list-item-title { color: #777; }
.fc-list-item-title > a {
	display: block;
	text-decoration: none!important;
	transition: all ease 0.25s;
	padding-left: calc(8px + 1.1rem);
	margin-left: calc(-8px - 1.1rem);
}
.fc-list-item-title > a:hover { background: rgba(255,255,255,0.08); }


a.fc-day-grid-event.fully_booked, a.fc-day-grid-event:hover { opacity: 1!important; background-color: #c73137!important;  }
a.fc-day-grid-event.fully_booked { cursor: default; pointer-events: none; }
a.fc-day-grid-event.selectable::before {
	position: absolute;
	color: #fff;
	bottom: 0.25rem;
	right: 0.25rem;
	font-weight: bold;
}

.fc-list-empty {
	background: #222!important;
	padding: 1rem;
	border-radius: 0.25rem;
}

#events_modal { display: none; }
#events_modal * { transition: all 0.5s ease-in-out; }
#events_modal.open {
	display: block;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%!important;
	max-width: unset!important;
	height: 100%;
	background: rgba(0,0,0,0.65);
	z-index: 9999;
}
#events_modal .content {
	position: absolute;
	pointer-events: all;
	top: 50%;
	left: 50%;
	width: min(85%,500px)!important;
	transform: translate(-50%,-50%);
	z-index: 999;
	color: #000;
	box-shadow: 0 0 3rem rgba(0,0,0,0.75);
	border: 1px solid #444;
	background: #222;
	color: #fff;
	padding: 1rem!important;
}
#events_modal .bottom {
	margin: 1.5rem 0 0;
	padding: 1rem;
	text-align: center;
	background: #1a1a1a;
}
#events_modal .events { margin: 1rem 0 0; padding: 0; }
#events_modal .events h4 { margin: 0; }
#events_modal p { margin: 0; font-size: 0.7rem; }
#events_modal p.message { margin-bottom: 0.5rem; }
#events_modal a.btn + a.btn { margin-left: 1rem; }
#events_modal .top { text-align: center; }
#events_modal h5 {
    color: var(--bs-primary);
    font-size: 0.85rem;
	white-space: nowrap;
    margin: 0 0 1rem;
	padding: 0 0 1rem;
	border-bottom: 1px solid #333;
}
#events_modal .bottom a.btn {
	transition: all 0.25s ease-in-out;
	white-space: nowrap;
	padding: 0.5em 1em;
	font-size: 0.75em;
}
#events_modal .bottom a.btn:hover {
	background: #333;
	color: #fff;
}

#events_modal.minimized { pointer-events: none; background: rgba(0,0,0,0); }
#events_modal.minimized .content {
	top: 100%;
	transform: translate(-50%,-100%);
	display: flex;
	width: min(1300px,90vw)!important;
}
#events_modal.minimized .top { flex-grow: 1; display: flex; text-align: left; }
#events_modal.minimized .top .events { display: flex; flex-wrap: wrap; gap: 1rem 0; margin: 0; }
#events_modal.minimized .top .events > div { border-left: 1px solid #333; padding-left: 1rem; margin-left: 1rem; }
#events_modal.minimized .bottom { display: flex; align-items: center; margin: -1rem -1rem -1rem 1rem; }
#events_modal.minimized h5 { margin: 0; padding-bottom: 0; border-bottom: none; }
#events_modal.minimized h5, #events_modal.minimized .events { margin: 0; }
#events_modal.minimized p.message, #events_modal.minimized a.btn.wait { display: none; }






@media screen and (max-width: 767px) {
	.fc-dayGrid-view .fc-body .fc-row { height: 5rem!important; }
	.fc-content-skeleton, .fc-content-skeleton table { height: 5rem; }
	.fc-day-grid-event { width: 100%!important; }
	.fc-day-grid-event.timeslot_morning { height: calc(42% - 1px)!important; }
	.fc-day-grid-event.timeslot_afternoon { height: calc(42% - 2px)!important; }
	/*.fc-day-grid-event .fc-title { opacity: 0; }*/
	.fc-day.fc-future::before { content: ''!important; }
	#BookingForm .gform_wrapper form {
		width: 100%;
		max-width: 100%;
		min-height: 100%;
	}
	body.booking_form_open { overflow: auto; }
	#BookingForm .gform_wrapper { display: block; }
	#BookingForm { overflow: auto; }
	#BookingForm .gform_wrapper form div.close { position: fixed; }
}