/*! ICS Calendar Pro front end styles https://icscalendar.com */


/* Variables */

.ics-calendar, .r34ics_lightbox {
	--r34ics--fc--fc-timegrid-slot--height-ratio: 0.6;
	--r34ics--fc--fc-timegrid-slot--hour-weight: bold;
	--r34ics--image--max-width: 360px;
	--r34ics--widget--max-width: 360px;
}


/* General elements */

.ics-calendar .desclog_toggle { }
	.ics-calendar .descloc_toggle_excerpt { /*cursor: help;*/ display: block; }
	.ics-calendar .descloc_toggle_full { display: none; }

.ics-calendar .hidden { display: none !important; }

.ics-calendar .icon-list, .ics-calendar .icon-month {
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
	display: inline-block;
	height: 20px;
	margin: -5px 5px auto 5px;
	vertical-align: middle;
	width: 20px;
}

.ics-calendar .icon-list {
	background-image: url('data:image/svg+xml;base64,PHN2ZyBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSIgdmlld0JveD0iMCAwIDE3NiAxNzYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYTlhOWE5IiBzdHJva2Utd2lkdGg9IjE2LjY3Ij48cGF0aCBkPSJtMCA4aDE3NiIvPjxwYXRoIGQ9Im0zNi4wMSA0OGgxMzgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIpIi8+PHBhdGggZD0ibTM2LjAxIDg4aDEzOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMikiLz48cGF0aCBkPSJtMCAxMjhoMTc2Ii8+PHBhdGggZD0ibTM2LjAxIDE2OGgxMzgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIpIi8+PC9nPjwvc3ZnPg==');
}

.ics-calendar .icon-month {
	background-image: url('data:image/svg+xml;base64,PHN2ZyBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSIgdmlld0JveD0iMCAwIDE3NiAxNzYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjYTlhOWE5Ij48cGF0aCBkPSJtMCA4OGgxNzZtLTE3NiA0MGgxNzZtLTYyLTcydjEyMG0tNTMtMTIwdjEyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxNi42NyIvPjxnIGZpbGw9IiNhOWE5YTkiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIyIj48cGF0aCBkPSJtMTc2IDIuOTY5aC0xNzMuNTE5djE3My4wMzFoMTczLjUxOXptLTE2LjQzMiAxNi4zODZ2MTQwLjI1OWMwIC4wMDEtMTQwLjY1NS4wMDEtMTQwLjY1NS4wMDF2LTE0MC4yNnoiIHN0cm9rZS13aWR0aD0iLjk4IiB0cmFuc2Zvcm09Im1hdHJpeCgxLjAxNDMgMCAwIDEuMDE3MTYgLTIuNTE2OTEgLTMuMDIwMTcpIi8+PHBhdGggZD0ibTAgMGgxNzZ2NDcuOTI5aC0xNzZ6IiBzdHJva2Utd2lkdGg9Ii45MiIgdHJhbnNmb3JtPSJzY2FsZSgxIDEuMTY4NCkiLz48L2c+PC9nPjwvc3ZnPg==');
}

.ics-calendar .subscribe.button {
	background: var(--r34ics--color--gray);
	border-radius: 4px;
	color: var(--r34ics--color--white);
	display: inline-block;
	margin: 0.5em 0 0.25em 0;
	padding: 0.2em 0.5em;
}
.ics-calendar .subscribe.button:hover, .ics-calendar .subscribe.button:focus {
	background: var(--r34ics--color--darkgray);
	text-decoration: none;
}

.ics-calendar textarea.subscribe {
	display: inline-block;
	font-size: 90%;
	height: 3rem;
	margin: 0.25em 0 0.5em 0;
	min-width: 200px;
	vertical-align: middle;
	width: 50%;
}

.ics-calendar .subscribe-link-copied {
	color: var(--r34ics--color--gray);
	display: inline-block;
	font-size: 150%;
	margin: 0 0.25em;
	vertical-align: middle;
}

.ics-calendar .ics-calendar-sidebar { }

	.ics-calendar .ics-calendar-sidebar .ics-calendar-current-events ul, .ics-calendar .ics-calendar-widget .ics-calendar-current-events ul {
		list-style: none;
		margin: 0;
		padding: 0;
	}
	
	.ics-calendar .ics-calendar-sidebar .ics-calendar-current-events li, .ics-calendar .ics-calendar-widget .ics-calendar-current-events li {
		display: block;
		margin: 0 0 0.5em 0;
	}
	
	/* @todo Add a way to use the site's configured background color instead of white */
	.ics-calendar.multi-feed .ics-calendar-sidebar .ics-calendar-current-events li,
	.ics-calendar.multi-feed .ics-calendar-widget .ics-calendar-current-events li
	{ padding: 0.5em; }
	.ics-calendar.multi-feed .ics-calendar-sidebar .ics-calendar-current-events li[data-feed-color*="255,255,255"],
	.ics-calendar.multi-feed .ics-calendar-widget .ics-calendar-current-events li[data-feed-color*="255,255,255"]
	{ padding: 0; }
	
	.ics-calendar .ics-calendar-sidebar .ics-calendar-current-events li > span,
	.ics-calendar .ics-calendar-widget .ics-calendar-current-events li > span
	{ display: block; }
	
	.ics-calendar .ics-calendar-sidebar .ics-calendar-current-events li .time,
	.ics-calendar .ics-calendar-widget .ics-calendar-current-events li .time,
	.ics-calendar .ics-calendar-sidebar .ics-calendar-current-events li .all-day-indicator,
	.ics-calendar .ics-calendar-widget .ics-calendar-current-events li .all-day-indicator
	{
		font-size: 85%;
		font-weight: bold;
	}
	
	.ics-calendar .ics-calendar-sidebar .ics-calendar-current-events li .time span,
	.ics-calendar .ics-calendar-widget .ics-calendar-current-events li .time span {
		display: inline;
		font-size: 90%;
		font-weight: normal;
	}
	
	.ics-calendar .ics-calendar-sidebar .ics-calendar-current-events li .title.has_desc,
	.ics-calendar .ics-calendar-widget .ics-calendar-current-events li .title.has_desc
	{ cursor: initial; }

	.ics-calendar.r34ics_toggle .ics-calendar-sidebar .ics-calendar-current-events li .title.has_desc,
	.ics-calendar.r34ics_toggle .ics-calendar-widget .ics-calendar-current-events li .title.has_desc
	{ cursor: pointer; }
		
	.ics-calendar .ics-calendar-sidebar .ics-calendar-current-events li .descloc,
	.ics-calendar .ics-calendar-widget .ics-calendar-current-events li .descloc
	{ font-size: 75%; }

.ics-calendar-event-image { overflow: hidden !important; }

	.ics-calendar-event-image img {
		display: block !important;
		height: auto !important;
		margin: 0.2rem 0 !important;
		max-width: var(--r34ics--image--max-width) !important;
		overflow: hidden;
		width: 100% !important;
	}
	
	.ics-calendar-event-image.r34icspro-illus img {
		aspect-ratio: 8 / 5;
		object-fit: cover;
		object-position: right;
	}

.ics-calendar-grid-step-nav {
	clear: both;
	display: block;
	height: 1.5em;
	margin: 1em 0;
	width: 100%;
}
.ics-calendar-grid-step-nav.invisible {
	-moz-user-select: none; -webkit-user-select: none; user-select: none;
	visibility: hidden;
}

	.ics-calendar-grid-step-nav > * {
		opacity: 0.7;
	}
	
	.ics-calendar-grid-step-nav > *:hover, .ics-calendar-grid-step-nav > *:focus, .ics-calendar-grid-step-nav > *:focus-within {
		opacity: 1;
	}
	
	.ics-calendar-grid-step-nav > .prev {
		cursor: w-resize;
		float: left;
		-moz-user-select: none; -webkit-user-select: none; user-select: none;
	}
	
	.ics-calendar-grid-step-nav > .next {
		cursor: e-resize;
		float: right;
		-moz-user-select: none; -webkit-user-select: none; user-select: none;
	}

.ics-calendar-grid-wrapper {
	background: var(--r34ics--color--white);
	table-layout: fixed;
	width: 100%;
}

/* Some properties for hr.ics-calendar-grid-hour-marker are tailored workarounds to the Twenty Twenty theme */
.ics-calendar-grid-wrapper hr.ics-calendar-grid-hour-marker {
	background: var(--r34ics--color--gainsboro) !important;
	border: none !important;
	height: 1px !important;
	margin: 0 !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	width: 100% !important;
}
.ics-calendar-grid-wrapper hr.ics-calendar-grid-hour-marker:before, .ics-calendar-grid-wrapper hr.ics-calendar-grid-hour-marker:after {
	display: none !important;
}

.ics-calendar-grid-wrapper > * > tr > * {
	border-right: 4px solid var(--r34ics--color--whitesmoke);
	padding: 0 !important;
}

.ics-calendar-grid-wrapper > * > tr > *:first-child {
	text-align: right;
	width: 60px !important;
}

.ics-calendar.multi-feed .ics-calendar-grid-wrapper *[data-feed-key] {
	background: var(--r34ics--color--whitesmoke);
	border-top: 1px solid var(--r34ics--color--gainsboro);
	border-left: 4px solid var(--r34ics--color--gray);
	position: absolute;
	z-index: 1;
}

.ics-calendar.multi-feed .ics-calendar-grid-wrapper *[data-feed-key]:hover,
.ics-calendar.multi-feed .ics-calendar-grid-wrapper *[data-feed-key]:focus,
.ics-calendar.multi-feed .ics-calendar-grid-wrapper *[data-feed-key]:focus-within
{
	background: var(--r34ics--color--gray);
	color: var(--r34ics--color--white);
	height: auto !important;
	z-index: 2;
}
.ics-calendar.multi-feed .ics-calendar-grid-wrapper *[data-feed-key]:hover a,
.ics-calendar.multi-feed .ics-calendar-grid-wrapper *[data-feed-key]:focus-within a,
.ics-calendar.multi-feed .ics-calendar-grid-wrapper *[data-feed-key]:hover a:hover,
.ics-calendar.multi-feed .ics-calendar-grid-wrapper *[data-feed-key]:focus-within a:focus
{
	color: var(--r34ics--color--white) !important;
}

.ics-calendar-grid-wrapper .assistive-text { display: none; }

.ics-calendar-grid-wrapper .event {
	display: block;
	font-size: 10px;
	line-height: 1.3em;
	overflow: hidden;
	padding: 2px 4px !important;
	position: absolute;
}
.ics-calendar-grid-wrapper .event:hover, .ics-calendar-grid-wrapper .event:focus {
	min-width: 180px !important;
	overflow: visible;
}

	.ics-calendar-grid-wrapper .event .descloc.show_on_hover {
		display: none;
	}
	.ics-calendar-grid-wrapper .event:hover .descloc.show_on_hover,
	.ics-calendar-grid-wrapper .event:focus .descloc.show_on_hover,
	.ics-calendar-grid-wrapper .event:focus-within .descloc.show_on_hover
	{
		display: block;
		font-size: 10px;
	}

.ics-calendar-grid-wrapper .event .title {
	display: block;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.3em;
}

.ics-calendar-grid-wrapper .event .time {
	font-size: 9px;
	line-height: 1.3em;
}

.ics-calendar-grid-wrapper .toggle_day {
	background: transparent url('button-toggle.svg') center center no-repeat;
	background-size: 20px 20px;
	display: inline-block;
	height: 20px;
	overflow: hidden;
	position: absolute; top: 0.3333em; right: 0.5em;
	transition: transform 0.25s ease;
	vertical-align: middle;
	width: 20px;
}
.ics-calendar-grid-wrapper .expanded .toggle_day {
	transform: scaleX(-1);
}

.ics-calendar-tz-label {
	font-size: 11px;
}


/* Search filter */

.ics-calendar .hidden_in_main { display: none !important; }
/*
.ics-calendar:not(.layout-full) .hidden_in_main { display: none !important; }

.ics-calendar.layout-full .hidden_in_main { opacity: 0.1 !important; }
.ics-calendar.layout-full .hidden_in_main .descloc { display: none !important; }
*/

/* View-specific classes */


/* Basic view */

.ics-calendar.layout-basic.basic_style_flexbox .r34ics-basic-events li {
	border-bottom: 1px solid var(--r34ics--color--trans20);
	display: flex;
	gap: 1.5rem;
	justify-content: flex-end;
	margin: 0;
	padding: 0.75rem 0;
	width: 100%;
}

.ics-calendar.layout-basic.basic_style_flexbox .r34ics-basic-events li .date {
	flex: 1;
	font-weight: bold;
}

.ics-calendar.layout-basic.basic_style_flexbox .r34ics-basic-events li .date:not(.multiday),
.ics-calendar.layout-basic.basic_style_flexbox .r34ics-basic-events li .date .multiday-start,
.ics-calendar.layout-basic.basic_style_flexbox .r34ics-basic-events li .date .multiday-end {
	white-space: nowrap;
}

.ics-calendar.layout-basic.basic_style_flexbox .r34ics-basic-events li .event-info {
	column-gap: 1.5rem;
	display: grid;
	flex: 3;
	grid-template-columns: 2;
	grid-template-rows: 2;
	row-gap: 0;
}

.ics-calendar.layout-basic.basic_style_flexbox .r34ics-basic-events li .event-info .time {
	text-align: right;
	grid-column-start: 2;
	grid-column-end: 2;
	grid-row-start: 1;
	grid-row-end: 2;
}

.ics-calendar.layout-basic.basic_style_flexbox .r34ics-basic-events li .event-info .title {
	font-weight: bold;
	grid-column-start: 1;
	grid-column-end: 1;
	grid-row-start: 1;
	grid-row-end: 1;
}

.ics-calendar.layout-basic.basic_style_flexbox .r34ics-basic-events li .event-info .descloc {
	grid-column-start: 1;
	grid-column-end: 1;
	grid-row-start: 2;
	grid-row-end: 2;
}

/* Full view */

/* FullCalendar.io variable overrides */
/* @todo Remove all color settings in subsequent .fc CSS and rely on these variables with FC's own CSS instead */
.ics-calendar .fc {
	--r34ics--fc--font--size: 13px;
	--fc-small-font-size: var(--r34ics--fc--font--size);
	--fc-page-bg-color: var(--r34ics--color--white);
	--fc-neutral-bg-color: hsla(0,0%,82%,.3);
	--fc-neutral-text-color: var(--r34ics--color--gray);
	--fc-border-color: var(--r34ics--color--gainsboro);
	--fc-button-text-color: var(--r34ics--color--white);
	--fc-button-bg-color: #2c3e50;
	--fc-button-border-color: #2c3e50;
	--fc-button-hover-bg-color: #1e2b37;
	--fc-button-hover-border-color: #1a252f;
	--fc-button-active-bg-color: #1a252f;
	--fc-button-active-border-color: #151e27;
	--fc-event-bg-color: var(--r34ics--color--dimgray);
	--fc-event-border-color: var(--r34ics--color--dimgray);
	--fc-event-text-color: white; /* This is intentionally not using a variable */
	--fc-event-selected-overlay-color: var(--r34ics--color--trans30);
	--fc-more-link-bg-color: var(--r34ics--color--gainsboro);
	--fc-more-link-text-color: inherit;
	--fc-event-resizer-thickness: 8px;
	--fc-event-resizer-dot-total-width: 8px;
	--fc-event-resizer-dot-border-width: 1px;
	--fc-non-business-color: var(--r34ics--color--trans50);
	--fc-bg-event-color: var(--r34ics--color--gray);
	--fc-bg-event-opacity: 0.3;
	--fc-highlight-color: rgba(188,232,241,.3);
	--fc-today-bg-color: var(--r34ics--color--whitesmoke);
	--fc-now-indicator-color: var(--r34ics--color--crimson);
}
.ics-calendar.darkmode .fc {
	--fc-event-bg-color: var(--r34ics--color--gainsboro);
	--fc-event-border-color: var(--r34ics--color--gainsboro);
}

.ics-calendar .fc {
}

.ics-calendar .fc,
.ics-calendar .fc * {
	flex-wrap: wrap;
	overflow: visible;
}

.ics-calendar .fc table, .ics-calendar .fc th, .ics-calendar .fc td {
	background: var(--r34ics--color--white);
	color: var(--r34ics--color--black);
}

.ics-calendar .fc table:not(.fc-list-table) th, .ics-calendar .fc table:not(.fc-list-table) td {
	margin: 0 !important;
	padding: 0 !important;
}

.ics-calendar .fc td * {
	-ms-word-break: break-all;
	word-break: break-all;
	word-break: break-word;
	-webkit-hyphens: auto;
	-moz-hyphens: auto;
	-ms-hyphens: auto;
	hyphens: auto;
}

.ics-calendar .fc .fc-button {
	border-radius: 100px;
	color: var(--r34ics--color--white) !important;
	padding: 0.167em 1em
}

.ics-calendar .fc .fc-button-primary {
	background-color: var(--r34ics--color--gray) !important;
	border-color: var(--r34ics--color--gray) !important;
}

.ics-calendar .fc .fc-button:focus,
.ics-calendar .fc .fc-button:hover,
.ics-calendar .fc .fc-button-active,
.ics-calendar .fc .fc-button-primary:not(:disabled).fc-button-active,
.ics-calendar .fc .fc-button-primary:not(:disabled):active {
	background-color: var(--r34ics--color--dimgray) !important;
	border-color: var(--r34ics--color--dimgray) !important;
}

.ics-calendar .fc .fc-toolbar-ltr .fc-button-group > .fc-button:not(:last-child) {
	border-bottom-right-radius: 0;
	border-top-right-radius: 0;
	padding-right: 0.667em;
}

.ics-calendar .fc .fc-toolbar-ltr .fc-button-group > .fc-button:not(:first-child) {
	border-bottom-left-radius: 0;
	border-top-left-radius: 0;
	padding-left: 0.667em;
}

.ics-calendar .fc .fc-col-header-cell {
	background: var(--r34ics--color--gainsboro);
	color: var(--r34ics--color--black);
	padding: 0.5em 0.8em 0.2em 0.8em !important;
	text-align: center;
	text-transform: uppercase;
}

.ics-calendar.whitetext .fc .fc-col-header-cell { background: var(--r34ics--color--dimgray); }

.ics-calendar .fc .fc-col-header-cell a,
.ics-calendar .fc .fc-list-event-title > a,
.ics-calendar .fc .fc-multimonth-multicol a
{
	color: inherit !important;
	text-decoration: none;
}

.ics-calendar .fc .fc-daygrid-block-event { padding: 1px 2px; }

.ics-calendar .fc a.fc-daygrid-day-number {
	color: var(--r34ics--color--dimgray) !important;
	text-decoration: none;
}

.ics-calendar .fc .descloc {
	background: var(--r34ics--color--white);
	border: 1px solid var(--r34ics--color--darkgray);
	box-shadow: 2px 2px 5px var(--r34ics--color--trans20);
	display: block;
	font-size: var(--r34ics--fc--font--size);
	max-height: 60vh !important;
	overflow-x: hidden;
	overflow-y: auto;
	padding: 0.4em 0.6em;
	position: absolute; top: 1em !important; bottom: auto !important; right: auto !important; left: 3em !important;
	white-space: normal;
	width: clamp(10rem,20vw,20rem);
	z-index: 9;
}

.ics-calendar .fc tr:nth-of-type(n+5) td .descloc { top: auto !important; bottom: 1em !important; }
.ics-calendar .fc td:nth-of-type(n+5) .descloc { right: 3em !important; left: auto !important; }
@media screen and (max-width: 782px) { .ics-calendar .fc .descloc { width: 33vw; } }

.ics-calendar .fc .descloc .eventdesc { margin-top: 0.5rem; }

/* Fix issue of events on weekend days not being hoverable/clickable */
.ics-calendar .fc .fc-daygrid-day-bg { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 0; }

.ics-calendar .fc .fc-daygrid-dot-event.fc-event-mirror,
.ics-calendar .fc .fc-daygrid-dot-event:hover,
.ics-calendar .fc .fc-daygrid-dot-event:focus,
.ics-calendar .fc .fc-daygrid-dot-event:focus-within
{ background-color: var(--r34ics--color--whitesmoke); }

.ics-calendar.whitetext .fc .descloc { background: var(--r34ics--color--black); }

.ics-calendar .fc .fc-daygrid-day.fc-day-today,
.ics-calendar .fc .fc-timegrid-col.fc-day-today
{ background-color: var(--r34ics--color--whitesmoke); }

.ics-calendar .fc .fc-daygrid-day-bottom { font-size: var(--r34ics--fc--font--size); }

.ics-calendar .fc .fc-daygrid-day-frame { padding: 2px; }

.ics-calendar .fc .fc-daygrid-dot-event:not([href]):focus,
.ics-calendar .fc .fc-daygrid-dot-event:not([href]):focus-within,
.ics-calendar .fc .fc-daygrid-dot-event:not([href]):hover,
.ics-calendar .fc .fc-list-table a:not([href]):focus,
.ics-calendar .fc .fc-list-table a:not([href]):focus-within,
.ics-calendar .fc .fc-list-table a:not([href]):hover
{ background: inherit; }

.ics-calendar .fc .fc-daygrid-event:focus,
.ics-calendar .fc .fc-daygrid-event:focus-within,
.ics-calendar .fc .fc-daygrid-event:hover
{ z-index: 9; }

.ics-calendar .fc .fc-daygrid-event-dot { border-color: var(--r34ics--color--gray); }

.ics-calendar .fc .fc-event,
.ics-calendar .fc .fc-event:visited,
.ics-calendar .fc .fc-event:focus,
.ics-calendar .fc .fc-event:focus-within,
.ics-calendar .fc .fc-event:hover,
.ics-calendar .fc .fc-event td,
.ics-calendar .fc .fc-daygrid-event,
.ics-calendar .fc .fc-list-table a:not([href]) {
	color: var(--r34ics--color--black) !important;
	font-size: var(--r34ics--fc--font--size);
	font-weight: normal;
	height: 100%; /* Fills container in timegrid-style views */
	line-height: 1.3;
	white-space: normal;
}

.ics-calendar .fc .fc-event::before, .ics-calendar .fc  .fc-event::after {
	display: none !important; /* @todo Workaround for weird alignment issue on focus in list table; why do these even exist? */
}

.ics-calendar .fc .fc-event td,
.ics-calendar .fc .fc-daygrid-event {
	position: relative;
}

.ics-calendar .fc .fc-event td.fc-list-event-time { white-space: nowrap; }

.ics-calendar .fc .fc-event:not([href]),
.ics-calendar .fc .fc-event:not([href]):focus,
.ics-calendar .fc .fc-event:not([href]):focus-within,
.ics-calendar .fc .fc-event:not([href]):hover,
.ics-calendar .fc .fc-event a:not([href]),
.ics-calendar .fc .fc-event a:not([href]):focus,
.ics-calendar .fc .fc-event a:not([href]):focus-within,
.ics-calendar .fc .fc-event a:not([href]):hover,
.ics-calendar .fc .fc-multimonth-multicol a.fc-more-link
{ text-decoration: none !important; }

.ics-calendar .fc .fc-h-event,
.ics-calendar .fc .fc-v-event
{
	/*background-color: var(--r34ics--color--gray);
	border-color: var(--r34ics--color--gray);*/
}

.ics-calendar .fc .fc-v-event .fc-event-main-frame {
	display: block;
	overflow: hidden;
}

.ics-calendar .fc .fc-header-toolbar > *:first-child { flex-grow: 1; }

.ics-calendar .fc .fc-icon-x:before {
	content: '\00d7';
}

.ics-calendar .fc .fc-list-day-cushion { background-color: var(--r34ics--color--gainsboro); }

.ics-calendar .fc .fc-list-event:hover td,
.ics-calendar .fc .fc-list-event:focus td,
.ics-calendar .fc .fc-list-event:focus-within td
{ background-color: var(--r34ics--color--whitesmoke); }

.ics-calendar .fc .fc-more-popover .fc-daygrid-event { position: static; }

.ics-calendar .fc .fc-multimonth-multicol {
	overflow-x: clip;
	overflow-y: auto;
}

.ics-calendar .fc .fc-multimonth-multicol .fc-daygrid-day-bottom {
	margin-top: -3px !important;
	text-align: center;
}

.ics-calendar .fc .fc-multimonth-multicol .fc-daygrid-more-link {
	background-color: var(--r34ics--color--gray);
	border: none;
	border-radius: 3em;
	color: var(--r34ics--color--white) !important;
	display: inline-block;
	font-weight: bold;
	height: 1.5em;
	line-height: 1.5em;
	width: 1.5em;
}

.ics-calendar .fc .fc-multimonth-multicol .fc-daygrid-more-link:hover,
.ics-calendar .fc .fc-multimonth-multicol .fc-daygrid-more-link:focus
{
	background-color: var(--r34ics--color--dimgray);
}

.ics-calendar .fc .fc-non-business { background-color: var(--r34ics--color--trans10); }

.ics-calendar .fc .fc-popover-close:hover, .ics-calendar .fc .fc-popover-close:focus { opacity: 1; }

.ics-calendar .fc .fc-scroller-harness { overflow: visible }

.ics-calendar .fc .fc-timegrid-col-frame:focus,
.ics-calendar .fc .fc-timegrid-col-frame:focus-within,
.ics-calendar .fc .fc-timegrid-col-frame:hover,
.ics-calendar .fc .fc-timegrid-event-harness:focus,
.ics-calendar .fc .fc-timegrid-event-harness:focus-within,
.ics-calendar .fc .fc-timegrid-event-harness:hover
{ z-index: 9 !important; }

.ics-calendar .fc .fc-timegrid-slot {
	height: calc(var(--r34ics--fc--fc-timegrid-slot--height-ratio) * 2.5em);
}

.ics-calendar .fc .fc-timegrid-slot-label[data-time*=':00:00'] {
	font-weight: var(--r34ics--fc--fc-timegrid-slot--hour-weight);
}

.ics-calendar .fc .fc-toolbar { gap: 12px; }

/* Fixes issue with some FullCalendar translations that do not capitalize the month name */
.ics-calendar .fc .fc-toolbar-title { text-transform: capitalize; }

.ics-calendar .fc .fc-view-harness { background-color: var(--r34ics--color--white); }

.ics-calendar .fc .fc-view-harness * { font-size: var(--r34ics--fc--font--size); }

/* Fixes issue of hover boxes appearing behind the day name header row...
   ...but why, you ask? https://stackoverflow.com/a/11742116 */
.ics-calendar .fc thead { opacity: 0.9999; }

.ics-calendar .fc td,
.ics-calendar .fc th,
.ics-calendar .fc .fc-list,
.ics-calendar .fc .fc-scrollgrid
{ border-color: var(--r34ics--color--gainsboro); }

.ics-calendar .fc .title_in_hover_block,
.ics-calendar .fc .title_in_hover_block *
{ font-size: calc(var(--r34ics--fc--font--size) * 1.2) !important; }


/* Grid view */

thead.ics-calendar-grid-header {
	-moz-user-select: none; -webkit-user-select: none; user-select: none;
}

	thead.ics-calendar-grid-header th.ics-calendar-grid-tz {
		font-size: 10px;
		font-weight: normal;
		line-height: 1.3em;
		opacity: 0.5;
		padding-right: 6px !important;
		text-align: left;
	}
	
	thead.ics-calendar-grid-header th.ics-calendar-grid-day {
		cursor: ew-resize;
		padding: 2px 6px !important;
		position: relative;
		text-align: center;
	}
	
		thead.ics-calendar-grid-header th.ics-calendar-grid-day .dow {
			font-size: 12px;
			font-weight: normal;
		}

		thead.ics-calendar-grid-header th.ics-calendar-grid-day .date {
			font-size: 14px;
			font-weight: bold;
		}
	
tbody.ics-calendar-grid-body {
}

	tbody.ics-calendar-grid-body th, tbody.ics-calendar-grid-body td {
		position: relative; /* Fixes weird issue with width on .event */
	}

	tbody.ics-calendar-grid-body .ics-calendar-grid-all-day {
		background: var(--r34ics--color--whitesmoke);
	}
	
		tbody.ics-calendar-grid-body .ics-calendar-grid-all-day .all-day-indicator {
			font-size: 10px;
			line-height: 1.3em;
			position: relative;
			right: 6px;
		}

		tbody.ics-calendar-grid-body .ics-calendar-grid-all-day .event {
			height: 2em;
			margin: 0 0 2px 0;
			min-height: 2em;
			position: relative;
			width: calc(100% - 2px);
		}
		
	tbody.ics-calendar-grid-body .ics-calendar-grid-hours {
		position: relative;
		width: 40px;
	}
	
		tbody.ics-calendar-grid-body .ics-calendar-grid-hours .ics-calendar-grid-hour {
			position: absolute; right: 0;
		}
			
			tbody.ics-calendar-grid-body .ics-calendar-grid-hours .ics-calendar-grid-hour .hour {
				font-size: 10px;
				line-height: 1.3em;
				position: relative;
				right: 6px;
				text-align: right;
				top: 20px;
			}
	
	tbody.ics-calendar-grid-body .ics-calendar-grid-day {
		position: relative;
	}


/* List view */

.ics-calendar-list-wrapper .hidden_in_list { display: none !important; }


/* Masonry view */

.ics-calendar.layout-masonry {
	--r34ics--masonry--width: 25%;
}
@media screen and (max-width: 1024px) {
	.ics-calendar.layout-masonry {
		--r34ics--masonry--width: 33.333%;
	}
}
@media screen and (max-width: 768px) {
	.ics-calendar.layout-masonry {
		--r34ics--masonry--width: 50%;
	}
}
@media screen and (max-width: 480px) {
	.ics-calendar.layout-masonry {
		--r34ics--masonry--width: 100%;
	}
}

.ics-calendar-masonry-grid {}

.ics-calendar-masonry-grid-sizer { width: var(--r34ics--masonry--width); }

.ics-calendar-masonry-grid-item {
	border: 1px solid var(--r34ics--color--gainsboro);
	border-radius: 4px;
	margin: 0 1rem 1rem 0;
	padding: 0.75rem 1rem !important; /* !important overrides feed color CSS */
	width: calc(var(--r34ics--masonry--width) - 1rem);
}

	.ics-calendar-masonry-grid-item .ics-calendar-date {
		color: inherit !important;
		font-size: 120%;
		font-weight: 600;
		line-height: 1.3;
		margin: 0;
	}
	
	.ics-calendar-masonry-grid-item .time {
		font-size: 80%;
		line-height: 1.3;
		margin: 0;
	}
	
	.ics-calendar-masonry-grid-item .title {
		border-top: 1px solid var(--r34ics--color--gainsboro);
		display: block;
		font-weight: 600;
		line-height: 1.3;
		margin-top: 0.333rem;
		padding-top: 0.333rem;
	}

.ics-calendar.solidcolors .ics-calendar-masonry-grid-item,
.ics-calendar.solidcolors .ics-calendar-masonry-grid-item *
{
	color: var(--r34ics--color--white);
}


/* Month view/general */

.ics-calendar-controls-wrapper {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin: 1rem 0;
	justify-content: space-between;
}

	.ics-calendar-filter {
		align-items: center;
		display: flex;
		flex-wrap: wrap;
		margin: 0;
		padding: 0;
	}

		.ics-calendar-filter label {
			margin: 0;
		}
	
		.ics-calendar-filter input[type=text] {
			display: inline-block;
			max-width: 240px;
			vertical-align: baseline;
			width: auto;
		}
	
		.ics-calendar-filter input[type=reset] {
			background: var(--r34ics--color--gainsboro) !important;
			border: 1px solid var(--r34ics--color--gainsboro) !important;
			border-radius: 4px !important;
			color: var(--r34ics--color--black) !important;
			display: inline-block !important;
			margin: 0 0.5em !important;
			padding: 0.2em 0.5em !important;
			vertical-align: baseline !important;
		}
	
		.ics-calendar-filter input[type=reset]:hover, .ics-calendar-filter input[type=reset]:focus {
			background: var(--r34ics--color--whitesmoke) !important;
		}
		
	.ics-calendar-month-table-list-toggle {
		margin: 0;
		padding: 0;
	}

	.ics-calendar-month-table-list-toggle > * {
		display: inline-block;
		margin-right: 0.5em;
	}

	.ics-calendar-month-table-list-toggle label {
		background: var(--r34ics--color--whitesmoke);
		border: 1px solid var(--r34ics--color--gainsboro);
		cursor: pointer;
		margin: 0;
		padding: 3px 5px;
	}
	.ics-calendar-month-table-list-toggle label:not(:first-of-type) {
		border-left: none;
	}
	.ics-calendar-month-table-list-toggle label:first-of-type {
		border-top-left-radius: 4px;
		border-bottom-left-radius: 4px;
	}
	.ics-calendar-month-table-list-toggle label:last-of-type {
		border-top-right-radius: 4px;
		border-bottom-right-radius: 4px;
	}
	.ics-calendar-month-table-list-toggle label.current {
		background: transparent;
	}
	.ics-calendar-month-table-list-toggle label:not(.current) > * {
		opacity: 0.4;
	}
	
		.ics-calendar-month-table-list-toggle label input[type=radio] { display: none; }

.ics-calendar[data-month-table-list-toggle=list] { }

	.ics-calendar[data-month-table-list-toggle=list] .hidden_in_list { display: none !important; }
	
	.ics-calendar.monthnav-compact[data-month-table-list-toggle=list] .ics-calendar-month-wrapper {
		 margin-top: 0;
	}


	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid { margin-bottom: 1.5em; }

	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid,
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid tbody,
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid tr,
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid th,
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid td
	{
		border: none;
		display: block;
		font-size: 100%;
		width: 100%;
	}
	
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid tr.previous-week,
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid tr.next-week
	{
		display: none;
	}
	
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid thead,
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid .off,
	.ics-calendar[data-month-table-list-toggle=list]:not(.show-past-events) .ics-calendar-month-grid .past,
	.ics-calendar[data-month-table-list-toggle=list].layout-month.month_list_all:not(.show-past-events) .past,
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid .empty
	{ display: none; }
	.ics-calendar[data-month-table-list-toggle=list]:not(.show-past-events):not(.month_list_all) .ics-calendar-month-wrapper.past .past.has_events
	{ display: block; }
	
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid .day {
		padding: 0.5em 0.8em;
	}

	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid .day *.phone_only { display: inline-block !important; }
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid .day *.no_phone { display: none; }
	
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid td { height: auto; }
	
	.ics-calendar[data-month-table-list-toggle=list] .ics-calendar-month-grid .events .time .show_on_hover { visibility: visible; }
	
	.ics-calendar[data-month-table-list-toggle=list] .phone_only:not(.hidden) { display: inherit !important; }
	
	.ics-calendar[data-month-table-list-toggle=list] .event { position: relative; }
	
		.ics-calendar[data-month-table-list-toggle=list] .event .hover_block {
			background: transparent;
			border: none;
			box-shadow: none;
			padding: 0;
			position: relative; top: auto !important; right: auto !important; bottom: auto !important; left: auto !important;
		}
	
			.ics-calendar[data-month-table-list-toggle=list] .event .hover_block .title_in_hover_block,
			.ics-calendar[data-month-table-list-toggle=list] .event .hover_block .time_in_hover_block { display: none; }
	
	/* Month list all */
	.ics-calendar[data-month-table-list-toggle=list].month_list_all .ics-calendar-select,
	.ics-calendar[data-month-table-list-toggle=list].month_list_all .ics-calendar-arrow-nav
	{ display: none !important; }
	
	.ics-calendar[data-month-table-list-toggle=list].month_list_all .ics-calendar-month-wrapper:not(.past),
	.ics-calendar[data-month-table-list-toggle=list].month_list_all.show-past-events .ics-calendar-month-wrapper.past
	{ display: block !important; }


/* Views with sidebar */

.ics-calendar-main-with-sidebar {
	clear: both;
	display: flex;
	justify-content: space-between;
	/* Don't put an overflow here or position: sticky won't work! */
	position: relative;
	width: 100%;
}

	.ics-calendar-main {
		display: block;
		flex-direction: column;
		overflow: hidden;
		width: 75%;
	}

		.ics-calendar-main-with-sidebar .ics-calendar-main .event_count {
			display: block;
			height: 3em;
			padding: 0.5em;
			text-align: center;
		}
		@media screen and (min-width: 783px) {
			.ics-calendar-main-with-sidebar .ics-calendar-main .event_count.phone_only { display: none; }
		}
		
			.ics-calendar-main-with-sidebar .ics-calendar-main .event_count .badge {
				background: var(--r34ics--color--gray);
				border-radius: 2em;
				color: var(--r34ics--color--white);
				display: inline-block;
				font-weight: bold;
				height: 2em;
				line-height: 2em;
				padding: 0;
				text-align: center;
				width: 2em;
			}
	
		.ics-calendar-main-with-sidebar .ics-calendar-main .sidebar_only { display: none !important; }
		
		.ics-calendar-main-with-sidebar .ics-calendar-main .hidden_in_main { display: none !important; }
		
		.ics-calendar-main-with-sidebar .ics-calendar-main .more_events {
			font-style: italic;
			font-size: 90%;
			line-height: 1.5em;
			padding: 0.4em 0.8em;
			text-align: right;
		}

	.ics-calendar-sidebar {
		align-self: flex-start;
		display: block;
		flex-direction: column;
		height: auto;
		overflow: hidden;
		padding: 0 0 0 1.5rem;
		position: sticky; top: 0;
		width: 25%;
	}


/* Month with sidebar view */

.ics-calendar-month-with-sidebar { }

	.ics-calendar-month-with-sidebar .ics-calendar-month-grid td[data-formatted-date] { /*cursor: help;*/ }
	
	.ics-calendar-month-with-sidebar .ics-calendar-month-grid .day { cursor: pointer; }

	.ics-calendar-month-grid .current .day {
		background: var(--r34ics--color--gray);
		color: var(--r34ics--color--white);
	}
	
	/* This is for the end times, which should only display in the sidebar, mainly to prevent a blank line at many window widths */
	.ics-calendar-month-with-sidebar .ics-calendar-month-grid .event .time .show_on_hover {
		display: none !important;
	}


/* Widget view */

.ics-calendar.layout-widget, .ics-calendar-widget { max-width: var(--r34ics--widget--max-width); }

	.ics-calendar-widget .ics-calendar-label {
		padding: 0 calc(28 + 0.5em);
		position: relative;
		text-align: center;
	}
	
	.ics-calendar-widget .ics-calendar-label * {
		-moz-user-select: none; -webkit-user-select: none; user-select: none;
	}

	.ics-calendar-widget .ics-calendar-pagination {
		background: var(--r34ics--color--whitesmoke);
		border: 1px solid var(--r34ics--color--gainsboro);
		border-radius: 4px;
		color: var(--r34ics--color--black);
		cursor: pointer;
		display: block;
		font-size: 14px;
		height: 28px;
		line-height: 28px;
		position: absolute; top: 0;
		text-align: center;
		vertical-align: middle;
		width: 28px;
	}
	.ics-calendar-widget .ics-calendar-pagination:hover, .ics-calendar-widget .ics-calendar-pagination:focus {
		background: var(--r34ics--color--gainsboro);
	}
	
	.ics-calendar-widget .ics-calendar-pagination[disabled] {
		background: var(--r34ics--color--gainsboro);
		cursor: not-allowed;
		opacity: 0.25;
	}

	.ics-calendar-widget .ics-calendar-pagination.prev { left: 0; }

	.ics-calendar-widget .ics-calendar-pagination.next { right: 0; }
	
	.ics-calendar-widget .ics-calendar-day-details { margin: 1.5em 0; }
	
	.ics-calendar-widget-grid, .ics-calendar-widget-grid *, .ics-calendar-year-availability-grid, .ics-calendar-year-availability-grid * {
		font-size: 12px;
	}

	.ics-calendar-widget-grid, .ics-calendar-year-availability-grid {
		background: var(--r34ics--color--white);
		border: none;
		border-collapse: collapse;
		margin: 0.5em 0;
		width: 100%;
	}
	
	.ics-calendar-widget-grid *, .ics-calendar-year-availability-grid * {
		-moz-user-select: none; -webkit-user-select: none; user-select: none;
	}
	
	.ics-calendar-widget-grid th, .ics-calendar-widget-grid td, .ics-calendar-year-availability-grid th, .ics-calendar-year-availability-grid td {
		padding: 2px 0 !important;
		text-align: center;
	}

	.ics-calendar-widget-grid td.past, .ics-calendar-year-availability-grid td.past {
		opacity: 0.5;
	}
	
	.ics-calendar-widget-grid td .day, .ics-calendar-year-availability-grid .day {
		display: inline-block;
		height: 2.333em;
		line-height: 2.333em;
		padding: 0;
		text-align: center;
		width: 2.333em;
	}

	.ics-calendar-widget-grid td .day {
		border: 2px solid transparent;
		border-radius: 2.333em;
		cursor: pointer;
		line-height: calc(2.333em - 2px);
	}

	.ics-calendar-widget-grid td.empty .day {
		cursor: not-allowed;
	}

	.ics-calendar-widget-grid td.has_events .day, .ics-calendar-year-availability-grid td.has_events:not(.past) .day {
		background: var(--r34ics--color--gainsboro);
		font-weight: bold;
	}

	.ics-calendar-widget-grid td.has_events .day {
		border-color: var(--r34ics--color--gray);
		/*cursor: help;*/
	}

	.ics-calendar-year-availability-grid td {
		white-space: nowrap;
	}
	
	.ics-calendar-year-availability-grid td.past .day {
		background: transparent !important;
		border: none !important;
		color: var(--r34ics--color--gray) !important;
	}
	
	.ics-calendar:not(.no_angled_backgrounds) .ics-calendar-year-availability-grid td.has_events.multiday_first:not(.multiday_last):not(.past) .day {
		background: linear-gradient(-45deg,var(--r34ics--color--gainsboro) 0%,var(--r34ics--color--gainsboro) 45%,transparent 45%,transparent 100%);
	}

	.ics-calendar:not(.no_angled_backgrounds) .ics-calendar-year-availability-grid td.has_events.multiday_last:not(.multiday_first):not(.past) .day {
		background: linear-gradient(-45deg,transparent 0%,transparent 55%,var(--r34ics--color--gainsboro) 55%,var(--r34ics--color--gainsboro) 100%);
	}

	.ics-calendar:not(.no_angled_backgrounds) .ics-calendar-year-availability-grid td.has_events.multiday_first.multiday_last:not(.past) .day {
		background: linear-gradient(-45deg,var(--r34ics--color--gainsboro) 0%,var(--r34ics--color--gainsboro) 45%,transparent 45%,transparent 55%,var(--r34ics--color--gainsboro) 55%,var(--r34ics--color--gainsboro) 100%);
	}

	.ics-calendar-widget-grid td.today:not(.has_events) .day, .ics-calendar-widget-grid td.current:not(.has_events):not(.past) .day {
		border-color: var(--r34ics--color--gainsboro);
	}
	
	.ics-calendar-widget-grid td.today.has_events .day, .ics-calendar-widget-grid td.current.has_events .day,
	.ics-calendar-year-availability-grid td.today.has_events .day, .ics-calendar-year-availability-grid td.current.has_events:not(.past) .day {
		background: var(--r34ics--color--gray);
		border-color: var(--r34ics--color--gray);
		color: var(--r34ics--color--white) !important;
	}
	
	.ics-calendar-widget .ics-calendar-current-events .event .time {
		display: block;
		font-size: 85%;
		font-weight: bold;
	}


/* Up Next view */

.ics-calendar-up-next-wrapper .event {
	display: none;
}

.ics-calendar-up-next-wrapper .event.up-next {
	display: block;
}

.ics-calendar-up-next-wrapper .ics-calendar-label {
	margin: 1rem 0 0.5rem 0 !important;
}

.ics-calendar-up-next-wrapper .event .title {
	font-weight: bold;
}


/* Year views */

.ics-calendar-year-wrapper {
	width: calc(100% + 2em);
}

	.ics-calendar-year-wrapper > .ics-calendar-label {
		margin-bottom: 1em !important; /* Nicer layout than putting clear: both on .ics-calendar-year-wrapper */
	}

	.ics-calendar-year-wrapper .ics-calendar-year-month {
		display: inline-block;
		margin: 0 1.5em 1.5em 0;
		width: calc(33.333% - 2em);
	}
	@media screen and (max-width: 1024px) and (min-width: 783px) {
		.ics-calendar-year-wrapper .ics-calendar-year-month { width: calc(50% - 2em); }
	}
	
	.ics-calendar-year-wrapper .ics-calendar-year-month:first-of-type {
		clear: both;
	}


/* Year availability view */

.ics-calendar.layout-year-availability { }

	.ics-calendar.layout-year-availability .event.available .descloc.hover_block {
		padding: 0.2em 0.5em;
	}
	
	.ics-calendar.layout-year-availability .event.available:hover .descloc.hover_block,
	.ics-calendar.layout-year-availability .event.available:focus .descloc.hover_block,
	.ics-calendar.layout-year-availability .event.available:focus-within .descloc.hover_block
	{
		display: block;
		top: 90%; left: 0;
	}


/* ICS Event CPT */

body.post-type-archive-r34icspro_event main.wp-block-group, body.single-r34icspro_event main.wp-block-group {
	margin: 0 auto;
	max-width: 1280px;
	width: 100%;
}

.r34icspro--details--toggle {
	background: var(--r34ics--color--whitesmoke);
	border: 1px solid var(--r34ics--color--gainsboro);
	border-radius: 4px;
	color: var(--r34ics--color--black);
	padding: 0;
}

.r34icspro--details--summary {
	font-weight: 700;
	padding: 0.5rem 1.5rem;
}

.r34icspro--details--content {
	padding: 1rem 1.5rem 1.5rem 1.5rem;
}

.r34icspro--event--archive, .r34icspro--event--single {
	margin: 1.5rem auto;
	max-width: calc(100vw - 3rem);
	min-width: calc(100% - 3rem);
	width: 100%;
}

	.r34icspro--event--archive--header, .r34icspro--event--archive--content {
		margin-bottom: 1.5rem;
	}
	
	.r34icspro--event--single--breadcrumb {
		border-bottom: 1px solid var(--r34ics--color--gainsboro);
		font-size: 0.875rem;
		line-height: 1.5;
		margin: 1.5rem 0;
		padding: 0;
	}
	
	.r34icspro--event--single--content img {
		aspect-ratio: auto;
		display: block;
		height: auto;
		margin: 1.5rem auto;
		max-height: 600px;
		max-width: 600px;
		position: relative;
		width: calc(100vw - 3rem);
	}

	.r34icspro--event--single--content .date_in_hover_block {
		font-weight: bold;
		margin: 0;
	}

	.r34icspro--event--single--content .time_in_hover_block {
		margin: 0;
	}
	
	.r34icspro--event--single--content .title_in_hover_block { display: none; }
	
	.r34icspro--event--single--content .eventurl,
	.r34icspro--event--single--content .location,
	.r34icspro--event--single--content .organizer
	{
		background: var(--r34ics--color--whitesmoke);
		border: 1px solid var(--r34ics--color--gainsboro);
		font-size: 0.875rem;
		line-height: 1.5;
		margin: 1.5rem 0;
		padding: 1rem;
	}
	
	.r34icspro--event--single--content .attach div {
		color: var(--r34ics--color--dimgray);
		font-size: 0.875rem;
		line-height: 1.5;
		margin: 1.5rem 0;
	}
	
	.r34icspro--event--single--content .eventdesc {
		margin: 1.5rem 0;
	}
	
	.r34icspro--event--single--content .recurrence {
		color: var(--r34ics--color--dimgray);
		font-size: 0.875rem;
		line-height: 1.5;
		margin: 0.5rem 0;
	}

.r34icspro-subscribe-link-wrapper {
	display: inline-block;
	position: relative;
}

	.r34icspro-subscribe-button {
		display: inline-block;
		position: relative;
		z-index: 1;
	}
	
	.r34icspro-subscribe-floating-menu {
		background: var(--r34ics--color--whitesmoke);
		border: 1px solid var(--r34ics--color--gainsboro);
		box-shadow: 2px 2px 5px var(--r34ics--color--trans20);
		display: none;
		padding: 0.75rem;
		position: absolute; top: 100%; left: 0;
		z-index: 2;
	}
	
	.r34icspro-subscribe-floating-menu.open {
		display: block;
	}
	
		.r34icspro-subscribe-floating-menu ul, .r34icspro-subscribe-floating-menu li {
			list-style: none;
			margin: 0;
			padding: 0;
			white-space: nowrap;
		}
		
		.r34icspro-subscribe-floating-menu-copy-url-hidden-input {
			opacity: 0;
			position: fixed;
			z-index: -9999;
		}
	
/* Phone breakpoint */

@media screen and (max-width: 782px) {

	body:not(#tinymce) .ics-calendar .no_phone.no_phone_important { display: none !important; }
	body:not(#tinymce) .ics-calendar .phone_only.phone_only_important { display: inline-block !important; }
	
	.ics-calendar:not(.nomobile):not(.show-past-events) .hidden_in_list { display: none !important; }
	
	.ics-calendar.layout-basic.basic_style_flexbox .r34ics-basic-events li { display: block; }

	thead.ics-calendar-grid-header th.ics-calendar-grid-day .dow, thead.ics-calendar-grid-header th.ics-calendar-grid-day .date {
		display: block;
	}
	
	.ics-calendar-grid-wrapper .toggle_day {
		display: none;
	}
	.ics-calendar-grid-wrapper .expanded .toggle_day {
		display: inline-block;
	}
	
	/* Override minimum width and horizontal scrolling imposed on month tables in free version */
	.ics-calendar.nomobile .ics-calendar-month-with-sidebar .ics-calendar-month-wrapper,
	.ics-calendar.nomobile .ics-calendar-widget-availability .ics-calendar-month-wrapper,
	.ics-calendar.nomobile .ics-calendar-year-availability .ics-calendar-month-wrapper
	{ overflow-x: auto; }
	.ics-calendar.nomobile .ics-calendar-month-with-sidebar .ics-calendar-month-wrapper .ics-calendar-month-grid,
	.ics-calendar.nomobile .ics-calendar-widget-availability .ics-calendar-month-wrapper .ics-calendar-month-grid,
	.ics-calendar.nomobile .ics-calendar-year-availability .ics-calendar-month-wrapper .ics-calendar-month-grid
	{ min-width: 240px; overflow-x: auto; }

	.ics-calendar:not(.nomobile) .ics-calendar-month-table-list-toggle { display: none; }

	.ics-calendar.month_list_all .ics-calendar-select,
	.ics-calendar.month_list_all .ics-calendar-arrow-nav
	{ display: none !important; }
	
	.ics-calendar.month_list_all .ics-calendar-month-wrapper:not(.past),
	.ics-calendar.month_list_all.show-past-events .ics-calendar-month-wrapper.past,
	.ics-calendar:not(.show-past-events):not(.month_list_all) .ics-calendar-month-wrapper.past .past.has_events
	{ display: block !important; }

	.ics-calendar-main-with-sidebar {
		display: block;
	}

		.ics-calendar-main {
			display: block;
			width: 100%;
		}
	
			.ics-calendar-main-with-sidebar .ics-calendar-main .sidebar_only { display: none !important; }
			
			/* This currently isn't usable so we're just hiding it until it can be redesigned */
			.ics-calendar.layout-month-with-sidebar .ics-calendar-filter,
			.ics-calendar.layout-year-with-sidebar .ics-calendar-filter
			{ display: none !important; }
			
			body:not(#tinymce) .ics-calendar.nomobile .ics-calendar-main-with-sidebar .ics-calendar-main .events.no_phone, body:not(#tinymce) .ics-calendar.nomobile .ics-calendar-main-with-sidebar .ics-calendar-main .more_events.no_phone
			{ display: none !important; }
			body:not(#tinymce) .ics-calendar.nomobile .ics-calendar-main-with-sidebar .ics-calendar-main .event_count.phone_only { display: block !important; }

		.ics-calendar-sidebar {
			display: block;
			padding: 0;
			/* DON'T override position: sticky here because then top needs to be compensated for as well; the browser will handle this properly automatically. */
			width: 100%;
		}

	.ics-calendar-year-wrapper {
		width: 100%;
	}

	.ics-calendar-year-wrapper .ics-calendar-year-month {
		display: block;
		margin: 0 0 1.5em 0;
		width: 100%;
	}
	
}
