/*
ICS Calendar Pro
https://icscalendar.com
*/


/* 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: #808080;
	border-radius: 4px;
	color: #ffffff;
	display: inline-block;
	margin: 0.5em 0 0.25em 0;
	padding: 0.2em 0.5em;
}
.ics-calendar .subscribe.button:hover {
	background: #a9a9a9;
	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: #808080;
	display: inline-block;
	font-size: 150%;
	margin: 0 0.25em;
	vertical-align: middle;
}

.ics-calendar-filter {
	margin: 0;
	padding: 0.5em 0;
}

	.ics-calendar-filter label {
		margin: 0;
		width: 100%;
	}
	
	.ics-calendar-filter label input[type=text] {
		display: inline-block;
		max-width: 240px;
		vertical-align: baseline;
		width: 50%;
	}
	
	.ics-calendar-filter label input[type=reset] {
		display: inline-block;
		margin: 0 0.5em;
		padding: 0.2em 0.5em;
		vertical-align: baseline;
	}

.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-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 {
		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: #ffffff;
	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: rgba(25,25,25,0.2) !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 rgba(119,119,119,0.0667);
	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: rgba(221,221,221,0.667);
	border-top: 1px solid rgba(119,119,119,0.1333);
	border-left: 4px solid #777777;
	position: absolute;
	z-index: 1;
}

.ics-calendar.multi-feed .ics-calendar-grid-wrapper *[data-feed-key]:hover {
	background: rgba(119,119,119,0.8333);
	color: #ffffff;
	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]:hover a:hover {
	color: #ffffff !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 {
	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 {
		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);
}


/* Hierarchical elements */

/* 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: rgba(25,25,25,0.05);
	}
	
		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; }


/* Month view with table/list toggle set to list */

.ics-calendar-month-table-list-toggle { }

	.ics-calendar-month-table-list-toggle > * {
		display: inline-block;
		margin-right: 0.5em;
	}
	
	.ics-calendar-month-table-list-toggle label {
		background: rgba(153,153,153,0.2);
		border: 1px solid rgba(153,153,153,0.5);
		cursor: pointer;
		margin: 1.5em 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;
		}
		
			.ics-calendar-main-with-sidebar .ics-calendar-main .event_count .badge {
				background: #777777;
				border-radius: 2em;
				color: #ffffff;
				display: inline-block;
				font-weight: bold;
				height: 2em;
				line-height: 2em;
				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: #777777;
		color: #ffffff;
	}
	
	/* 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-widget { max-width: 360px; }

	.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: rgba(25,25,25,0.1);
		border: 1px solid rgba(25,25,25,0.2);
		border-radius: 4px;
		color: #111111;
		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 {
		background: rgba(25,25,25,0.2);
	}
	
	.ics-calendar-widget .ics-calendar-pagination[disabled] {
		background: rgba(25,25,25,0.2);
		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: #ffffff;
		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 .day {
		background: #dddddd;
		font-weight: bold;
	}
	.ics-calendar-widget-grid td.has_events .day {
		border-color: #777777;
		/*cursor: help;*/
	}
	.ics-calendar-year-availability-grid td.has_events.multiday_first:not(.multiday_last) .day {
		background: linear-gradient(-45deg,#dddddd 0%,#dddddd 50%,transparent 50%,transparent 100%);
	}
	.ics-calendar-year-availability-grid td.has_events.multiday_last:not(.multiday_first) .day {
		background: linear-gradient(-45deg,transparent 0%,transparent 50%,#dddddd 50%,#dddddd 100%);
	}
	
	.ics-calendar-widget-grid td.today:not(.has_events) .day, .ics-calendar-widget-grid td.current:not(.has_events) .day {
		border-color: #dddddd;
	}
	
	.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 .day {
		background: #777777;
		border-color: #777777;
		color: #ffffff !important;
	}
	
	.ics-calendar-widget .ics-calendar-current-events .event .time {
		display: block;
		font-size: 85%;
		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);
	}
	
	.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 {
		display: block;
		top: 90%; left: 0;
	}


/* CSS3 media queries */

@media screen and (min-width: 783px) {

	.ics-calendar-main-with-sidebar .ics-calendar-main .event_count.phone_only {
		display: none;
	}
	
}

@media screen and (max-width: 1024px) and (min-width: 783px) {

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

@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) .hidden_in_list { display: none !important; }

	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;
	}
	
	.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; }
			
			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%;
	}
	
}
