:root {
	/* --event-details-offset: 50px;
	--event-details-padding: 2rem;
	--event-details-background: white;
	--event-details-zindex: 10;
	--selected-day-bg-color: rgba(236, 236, 236, 0.3);
	--requestable-day-bg-color: #fff; */
	/* --form-max-width: 101.25rem; /* eg 1620px */ 
	--fc-bg-event-color: #f5e7e7;
	--fc-bg-event-opacity: .8;
	--fc-non-business-color: rgba(208,208,208,.3); 
	--fc-event-bg-color: var(--color-background-text, var(--dark, #2a2c2f));
	--fc-today-bg-color: rgba(255, 220, 40, .25);
	--fc-border-color: #cecece;
	--fc-event-border-color: green;
	--fc-border-radius: var(--base-border-radius-rem, var(--base-border-radius, 0.25rem));

	--fc-button-text-color: var(--color-background, var(--light, #ffffff));
    --fc-button-bg-color: var(--color-surface-text, var(--dark, #2a2c2f));
    --fc-button-border-color: var(--color-surface-text, var(--dark, #2a2c2f));

    --fc-button-hover-bg-color: var(--color-primary, var(--primary, #70a6ae));
    --fc-button-hover-border-color: var(--color-primary, var(--primary, #70a6ae));
    --fc-button-active-bg-color: var(--color-primary, var(--primary, #70a6ae));
    --fc-button-active-border-color: var(--color-primary, var(--primary, #70a6ae));

	--calendar-skeleton-color: var(--color-surface, var(--medium, #e1e1dacc));

	--calendar-event-bg-color-default: white; 
	--calendar-event-text-color-default: black;

	--calendar-event-bg-color-1: red;
	--calendar-event-text-color-1: white;

	--calendar-event-bg-color-2: blue;
	--calendar-event-text-color-2: white;

	--calendar-event-bg-color-3: green;
	--calendar-event-text-color-3: white;

	--calendar-event-bg-color-4: yellow;
	--calendar-event-text-color-4: black;

	--calendar-event-bg-color-5: orange;
	--calendar-event-text-color-5: black;

	--calendar-event-bg-color-6: pink;
	--calendar-event-text-color-6: black;

	--calendar-event-bg-color-7: turquoise;
	--calendar-event-text-color-7: black;

	--calendar-event-bg-color-8: purple;
	--calendar-event-text-color-8: white;
}

html.contrast-intensify, .contrast-intensify {
	--fc-bg-event-opacity: 1;
	--fc-border-color: var(--color-background-text, var(--dark, #2a2c2f));
}

html.contrast-intensify .fc .fc-non-business, .contrast-intensify .fc .fc-non-business {
	--fc-non-business-color: rgba(208,208,208,.5);
}

/* fix day view when there are bg events */
.fc .fc-view:not(.fc-dayGridMonth-view) .fc-daygrid-day-events {
	padding-top: 2rem;
}
/* fix for german translation lenght */
.fc .fc-timegrid-axis-cushion {
	max-width: 100px;
}
.fc .fc-daygrid-day-number {
	pointer-events: none;
}

.fc .fc-header-toolbar {
	flex-wrap: wrap;
}
.fc .fc-toolbar-chunk {
	margin-bottom: .5rem;	
}
.fc .fc-toolbar-chunk:first-child {
	flex-basis: 100%;
}

.fc-day-past {
	background: var(--fc-neutral-bg-color,rgba(208,208,208,.4));
}
.fc .fc-event {
	cursor: pointer;
	overflow: hidden;
	border-color: var(--color-background-text, var(--dark, #2a2c2f));
	transition: .3s color, .3s background-color;
}
.fc .fc-event:not(.fc-daygrid-dot-event) {
	padding-left: .2rem;
}

/* .fc .fc-event:not(.fc-daygrid-dot-event):not(.event-non-requestable):hover,
.fc .fc-event:not(.fc-daygrid-dot-event):not(.event-non-requestable):focus,
.fc .fc-event:not(.fc-daygrid-dot-event):not(.event-non-requestable).hovered {
	background-color: var(--color-primary, var(--primary, #70a6ae));
} */

.fc .fc-event-past, .fc .fc-bg-event {
	cursor: default;
}
/* hide time from all day events in calendar */
.fc .fc-event.event-all-day:not(.multiday-event-time) .fc-event-time {
	display: none;
}

/* customer requests */
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event) {
	background-color: var(--fc-non-business-color);
}
body .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled).day-requestable,
body .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.day-blocked-by-event),
body .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled).day-requestable,
body .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.day-blocked-by-event) {
	position: relative;
	cursor: pointer;
	outline-offset: -3px;
	transition: background-color .3s;
}
body .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled).day-requestable.request-not-possible,
body .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.day-blocked-by-event).request-not-possible {
	cursor: default;
}
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable:not(:has(.fc-bg-event.event-non-requestable.event-all-day)):not(.day-blocked-by-event):has(.business-hours-day-requestable):before,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event):not(.request-not-possible):not(:has(.fc-bg-event.event-non-requestable.event-all-day)):not(.day-blocked-by-event):before,
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable:not(.day-blocked-by-event):has(.business-hours-day-requestable):before,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event):not(.request-not-possible):not(:has(.fc-bg-event.event-non-requestable.event-all-day)):not(.day-blocked-by-event):before {
	content: "+";
	display: flex;
    justify-content: center;
    align-items: center;
	overflow: hidden;
	font-size: 1rem;
	color: var(--color-background, var(--light, #ffffff));
	position: absolute;
	top: 0.4rem;
    left: 0.4rem;
	height: 1.3rem;
    width: 1.3rem;
	background: var(--color-background-text, var(--dark, #2a2c2f));
	border-radius: var(--fc-border-radius);
	transition: background .3s;
	z-index: 3;
}
.fc .fc-daygrid-day-bg .fc-non-business {
	pointer-events: none;
}
/* bg color gets handled by fc-day-past already */ 
.fc .fc-day-past .fc-non-business {
	background: transparent;
}
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable:hover,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event):hover,
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable:focus,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event):focus,
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable:hover,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event):hover,
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable:focus,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event):focus,
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days:hover .fc-daygrid-day-bg:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days:hover .fc-daygrid-day-bg:before, 
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days:hover .fc-daygrid-day-bg:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days:hover .fc-daygrid-day-bg:before,
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days:focus .fc-daygrid-day-bg:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days:focus .fc-daygrid-day-bg:before, 
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days:focus .fc-daygrid-day-bg:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days:focus .fc-daygrid-day-bg:before {
	background: var(--selected-day-bg-color, rgba(208,208,208,.3));
}
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable:hover:before,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event):hover:before,
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable:focus:before,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event):focus:before,
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable:hover:before,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event):hover:before,
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable:focus:before,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event):focus:before {
	transform: scale(1);
    color: var(--color-background, var(--light, #fff));
    background: rgba(0, 0, 0, .9);
}

body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.request-not-possible, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).request-not-possible, 
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.request-not-possible, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).request-not-possible {
	background-color: var(--fc-non-business-color);
}

.fc-day-disabled {
	visibility: hidden;
}

.fc-bg-event.business-hours-day-requestable {
	pointer-events: none;
	background-color: transparent;
}
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event),
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event) {
	background-color: var(--requestable-day-bg-color, var(--color-background, var(--light, #ffffff)));
	/* z-index: 2; */
}

.calendar-customer-requests-allowed .fc-day[role="gridcell"].has-multiday-event,
.calendar-customer-requests-allowed .fc-day[role="button"].has-multiday-event {
	/* z-index: 3 !important; */
}

body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-timeGridWeek-view .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-timeGridWeek-view .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event),
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-timeGridDay-view .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable,
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-timeGridDay-view .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event) {
	background-color: rgba(255,255,255, .8);
}

/* event details and customer request popup */
.calendar-module-initialized .calendar-event-detail-wrapper {
	position: fixed;
	top: var(--event-details-offset, 0px);
	padding:  var(--event-details-padding, 1rem) 0;
	padding-bottom: calc(var(--event-details-padding, 1rem) * 5);
	left: 0;
	background: var(--event-details-background, var(--color-background, var(--light, #ffffff)));
	z-index: var(--event-details-zindex, 999998);
	bottom: 0;
	overflow-y: auto;
	opacity: 0;
	width: 100%;
	pointer-events: none;
	transform: translateY(1em);
	transition: opacity .3s, transform .3s;
	visibility: hidden;
	overscroll-behavior: contain;
}
.calendar-module-initialized .calendar-event-detail-wrapper.active {
	pointer-events: all;
	opacity: 1;
	transform: translateY(0);
	visibility: visible;
	outline-offset: -3px;
}

/* fix framework styles */
[data-cms-module-name="Calendar"] table {
	display: table;
	margin-bottom: 0;
	background-color: var(--fc-non-business-color);
	border-radius: 0;
}
[data-cms-module-name="Calendar"] input[type="date"] {
	line-height: 1;
}
[data-cms-module-name="Calendar"] .calendar-event-detail-wrapper > [data-calendar-event-detail] > .row:not(.full-width),
[data-cms-module-name="Calendar"] .calendar-event-detail-wrapper > [data-calendar-module-skeleton-loader] > .row:not(.full-width),
[data-cms-module-name="Calendar"] .calendar-event-detail-wrapper > .row:not(.full-width),
[data-cms-module-name="Calendar"] .calendar-event-detail-wrapper form > .row:not(.full-width) {
	max-width: var(--form-max-width, 101.25rem);
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

/* sticky header offset */ 
.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky > * {
	top: var(--calendar-header-offset, 50px);
}

.fc a.fc-col-header-cell-cushion,
.fc .fc-daygrid-day-top a {
	color: var(--color-background-text, var(--dark, #2a2c2f));
}

.fc .fc-button {
	transition: .3s background-color;
	border-radius: var(--fc-border-radius);
}

.fc .fc-button-group > .fc-button span {
	pointer-events: none;
}

.fc .fc-button-primary:focus {
    background-color: var(--fc-button-hover-bg-color);
    border-color: var(--fc-button-hover-border-color);
    color: var(--fc-button-text-color);
}

html.contrast-intensify .fc a.fc-col-header-cell-cushion, 
.contrast-intensify .fc a.fc-col-header-cell-cushion,
html.contrast-intensify .fc .fc-daygrid-day-top a, 
.contrast-intensify .fc .fc-daygrid-day-top a {
	text-decoration: none;
}

html.contrast-intensify [data-cms-module-name="Calendar"] table, 
.contrast-intensify [data-cms-module-name="Calendar"] table {
	outline-offset: 0;
}

.fc .fc-button:focus {
	outline: 3px solid var(--color-warning, var(--alert, #D85D00));
	box-shadow: none;
}

.fc-daygrid-dot-event:hover,
.fc-daygrid-dot-event:focus,
.fc-daygrid-dot-event.hovered {
	color: var(--color-background-text, var(--dark, #2a2c2f));
	background-color: rgba(0, 0, 0, 0.05);
}

.fc-direction-ltr .fc-daygrid-event.fc-event-end, 
.fc-direction-rtl .fc-daygrid-event.fc-event-start {
	margin-right: 6px;
}

.fc-direction-ltr .fc-daygrid-event.fc-event-start, 
.fc-direction-rtl .fc-daygrid-event.fc-event-end {
    margin-left: 6px;
}

.fc-daygrid-event-dot {
	outline: 1px solid var(--color-background, var(--light, #fff));
	outline-offset: -1px;
}

html.contrast-intensify .fc .fc-daygrid-day.fc-day-today {
	outline: 3px solid var(--color-primary, var(--primary, #70a6ae));
	outline-offset: -3px;
	--fc-today-bg-color: rgba(255, 220, 40, .75);
}

html.contrast-intensify .fc .fc-daygrid-day.fc-day-today {
	outline: 3px solid var(--color-primary, var(--primary, #70a6ae));
	outline-offset: -3px;
	--fc-today-bg-color: rgba(255, 220, 40, .75);
}

body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days:focus, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days:focus, 
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days:focus, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days:focus {
	outline-offset: -3px;
	outline: 3px solid var(--color-warning, var(--alert, #D85D00));
}

body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.blocked-by-special-days, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).blocked-by-special-days, 
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.blocked-by-special-days, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).blocked-by-special-days {
	cursor: default;
	background: var(--fc-non-business-color);
}

body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days, 
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days {
	background: var(--color-background, var(--light, #ffffff));
}

body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days:focus .fc-daygrid-day-bg:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days:focus .fc-daygrid-day-bg:before, 
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days:focus .fc-daygrid-day-bg:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days:focus .fc-daygrid-day-bg:before {
	outline: 3px solid var(--color-warning, var(--alert, #D85D00));
	outline-offset: -3px;
}

body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days:before, 
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days:before {
	z-index: 2;
}

body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days .fc-daygrid-day-bg:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days .fc-daygrid-day-bg:before, 
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days .fc-daygrid-day-bg:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days .fc-daygrid-day-bg:before {
	content: "";
	display: inline-block;
	position: absolute;
	inset: 0;
	height: 100%;
	width: 100%;
	background-color: var(--color-background, var(--light, #ffffff));
	z-index: 2;
}

body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days .fc-daygrid-day-bg:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="gridcell"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days .fc-daygrid-day-bg:before, 
body.calendar-module-special-business-hours .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today).day-requestable.opened-by-special-days .fc-daygrid-day-bg:before, 
body:not(.calendar-module-special-business-hours) .calendar-customer-requests-allowed .fc-day[role="button"]:not(.fc-day-past):not(.fc-day-disabled):not(.fc-day-today):not(.day-blocked-by-event).opened-by-special-days .fc-daygrid-day-bg:before {
	z-index: 2;
}

/* custom event colors */
.calendar-event-bg-color-0 {
	--fc-event-bg-color: var(--calendar-event-bg-color-default);
	--fc-event-text-color: var(--calendar-event-text-color-default);
	background-color: var(--fc-event-bg-color);
	color: var(--fc-event-text-color);
}
.calendar-event-bg-color-1 {
	--fc-event-bg-color: var(--calendar-event-bg-color-1);
	--fc-event-text-color: var(--calendar-event-text-color-1);
	background-color: var(--fc-event-bg-color);
	color: var(--fc-event-text-color);
}
.calendar-event-bg-color-2 {
	--fc-event-bg-color: var(--calendar-event-bg-color-2);
	--fc-event-text-color: var(--calendar-event-text-color-2);
	background-color: var(--fc-event-bg-color);
	color: var(--fc-event-text-color);
}
.calendar-event-bg-color-3 {
	--fc-event-bg-color: var(--calendar-event-bg-color-3);
	--fc-event-text-color: var(--calendar-event-text-color-3);
	background-color: var(--fc-event-bg-color);
	color: var(--fc-event-text-color);
}
.calendar-event-bg-color-4 {
	--fc-event-bg-color: var(--calendar-event-bg-color-4);
	--fc-event-text-color: var(--calendar-event-text-color-4);
	background-color: var(--fc-event-bg-color);
	color: var(--fc-event-text-color);
}
.calendar-event-bg-color-5 {
	--fc-event-bg-color: var(--calendar-event-bg-color-5);
	--fc-event-text-color: var(--calendar-event-text-color-5);
	background-color: var(--fc-event-bg-color);
	color: var(--fc-event-text-color);
}
.calendar-event-bg-color-6 {
	--fc-event-bg-color: var(--calendar-event-bg-color-6);
	--fc-event-text-color: var(--calendar-event-text-color-6);
	background-color: var(--fc-event-bg-color);
	color: var(--fc-event-text-color);
}
.calendar-event-bg-color-7 {
	--fc-event-bg-color: var(--calendar-event-bg-color-7);
	--fc-event-text-color: var(--calendar-event-text-color-7);
	background-color: var(--fc-event-bg-color);
	color: var(--fc-event-text-color);
}
.calendar-event-bg-color-8 {
	--fc-event-bg-color: var(--calendar-event-bg-color-8);
	--fc-event-text-color: var(--calendar-event-text-color-8);
	background-color: var(--fc-event-bg-color);
	color: var(--fc-event-text-color);
}

.fc-daygrid-event-dot {
	outline: 1px solid var(--fc-event-text-color, var(--color-background-text, var(--dark, #000000)));
	outline-offset: 0;
	margin: 0 6px;
}

.calendar-event-bg-color-0:not(.fc-bg-event):hover, 
.calendar-event-bg-color-0:not(.fc-bg-event):focus, 
.calendar-event-bg-color-0:not(.fc-bg-event).hovered,
.calendar-event-bg-color-1:not(.fc-bg-event):hover,
.calendar-event-bg-color-1:not(.fc-bg-event):focus,
.calendar-event-bg-color-1:not(.fc-bg-event).hovered,
.calendar-event-bg-color-2:not(.fc-bg-event):hover,
.calendar-event-bg-color-2:not(.fc-bg-event):focus,
.calendar-event-bg-color-2:not(.fc-bg-event).hovered,
.calendar-event-bg-color-3:not(.fc-bg-event):hover,
.calendar-event-bg-color-3:not(.fc-bg-event):focus,
.calendar-event-bg-color-3:not(.fc-bg-event).hovered,
.calendar-event-bg-color-4:not(.fc-bg-event):hover,
.calendar-event-bg-color-4:not(.fc-bg-event):focus,
.calendar-event-bg-color-4:not(.fc-bg-event).hovered,
.calendar-event-bg-color-5:not(.fc-bg-event):hover,
.calendar-event-bg-color-5:not(.fc-bg-event):focus,
.calendar-event-bg-color-5:not(.fc-bg-event).hovered,
.calendar-event-bg-color-6:not(.fc-bg-event):hover,
.calendar-event-bg-color-6:not(.fc-bg-event):focus,
.calendar-event-bg-color-6:not(.fc-bg-event).hovered,
.calendar-event-bg-color-7:not(.fc-bg-event):hover,
.calendar-event-bg-color-7:not(.fc-bg-event):focus,
.calendar-event-bg-color-7:not(.fc-bg-event).hovered,
.calendar-event-bg-color-8:not(.fc-bg-event):hover,
.calendar-event-bg-color-8:not(.fc-bg-event):focus,
.calendar-event-bg-color-8:not(.fc-bg-event).hovered {
	color: var(--color-background, var(--light, #fff));
	background-color: var(--color-background-text, var(--dark, #2a2c2f));
}

.calendar-event-bg-color-0:not(.fc-bg-event):hover .fc-event-main, 
.calendar-event-bg-color-0:not(.fc-bg-event):focus .fc-event-main, 
.calendar-event-bg-color-0:not(.fc-bg-event).hovered .fc-event-main,
.calendar-event-bg-color-1:not(.fc-bg-event):hover .fc-event-main,
.calendar-event-bg-color-1:not(.fc-bg-event):focus .fc-event-main,
.calendar-event-bg-color-1:not(.fc-bg-event).hovered .fc-event-main,
.calendar-event-bg-color-2:not(.fc-bg-event):hover .fc-event-main,
.calendar-event-bg-color-2:not(.fc-bg-event):focus .fc-event-main,
.calendar-event-bg-color-2:not(.fc-bg-event).hovered .fc-event-main,
.calendar-event-bg-color-3:not(.fc-bg-event):hover .fc-event-main,
.calendar-event-bg-color-3:not(.fc-bg-event):focus .fc-event-main,
.calendar-event-bg-color-3:not(.fc-bg-event).hovered .fc-event-main,
.calendar-event-bg-color-4:not(.fc-bg-event):hover .fc-event-main,
.calendar-event-bg-color-4:not(.fc-bg-event):focus .fc-event-main,
.calendar-event-bg-color-4:not(.fc-bg-event).hovered .fc-event-main,
.calendar-event-bg-color-5:not(.fc-bg-event):hover .fc-event-main,
.calendar-event-bg-color-5:not(.fc-bg-event):focus .fc-event-main,
.calendar-event-bg-color-5:not(.fc-bg-event).hovered .fc-event-main,
.calendar-event-bg-color-6:not(.fc-bg-event):hover .fc-event-main,
.calendar-event-bg-color-6:not(.fc-bg-event):focus .fc-event-main,
.calendar-event-bg-color-6:not(.fc-bg-event).hovered .fc-event-main,
.calendar-event-bg-color-7:not(.fc-bg-event):hover .fc-event-main,
.calendar-event-bg-color-7:not(.fc-bg-event):focus .fc-event-main,
.calendar-event-bg-color-7:not(.fc-bg-event).hovered .fc-event-main,
.calendar-event-bg-color-8:not(.fc-bg-event):hover .fc-event-main,
.calendar-event-bg-color-8:not(.fc-bg-event):focus .fc-event-main,
.calendar-event-bg-color-8:not(.fc-bg-event).hovered .fc-event-main {
	color: var(--color-background, var(--light, #fff));
}

.fc-daygrid-dot-event .fc-event-title {
	font-weight: 400;
}

/* skeleton loader */
[data-calendar-module-skeleton-loader] {
	width: 100%;
}
.loaded [data-calendar-module-skeleton-loader] {
	display: none;
}
.calendar-skeleton {
	background-color: var(--calendar-skeleton-color);
	border-radius: 4px;
	position: relative;
	overflow: hidden;
}
.calendar-skeleton-text {
	height: 1rem;
	width: 100%;
	margin-bottom: 1rem;
}
.calendar-skeleton-headline {
	height: 3rem;
	width: 50%;
	margin-bottom: 1rem;
}
.calendar-skeleton-box {
	height: 5rem;
	width: 100%;
	margin-bottom: 1rem;
}
.calendar-skeleton-text:last-child {
	width: 80%;
}
.calendar-skeleton::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: -100%;
	height: 100%;
	width: 100%;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 100%);
	animation: calendar-shimmer 2s infinite;
}

@keyframes calendar-shimmer {
	0% {
	  	left: -100%;
	}
	100% {
	  	left: 100%;
	}
}

tr.fc-scrollgrid-section.fc-scrollgrid-section-body .fc-daygrid-body table.fc-scrollgrid-sync-table .fc-timegrid-axis-frame.fc-scrollgrid-shrink-frame.fc-timegrid-axis-frame-liquid .fc-timegrid-axis-cushion {
	font-size: calc((15 / var(--base-font-size)) * 1rem);
}

.calendar-customer-requests-allowed .fc-timeGridWeek-view tr.fc-scrollgrid-section.fc-scrollgrid-section-body .fc-daygrid-body.fc-daygrid-body-unbalanced.fc-daygrid-body-natural table tr:first-child td:not(:first-child) {
	padding-top: 30px;
}

.calendar-customer-requests-allowed .fc-dayGridWeek-view .fc-day {
	padding-top: 30px;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}