table.ics-calendar-grid-wrapper {
	table-layout: fixed;
}

	/* General elements */
	
	.ics-calendar-grid-wrapper hr.ics-calendar-grid-hour-marker {
		background: rgba(0,0,0,0.2);
		border: none !important;
		height: 1px !important;
		margin: 0 !important;
		overflow: hidden;
		padding: 0 !important;
		position: absolute;
		width: 100%;
	}

	.ics-calendar-grid-wrapper > * > tr > * {
		border-right: 4px solid rgba(102,102,102,0.0667);
		padding: 0 !important;
	}

	.ics-calendar-grid-wrapper > * > tr > *:first-child {
		text-align: right;
		width: 60px !important;
	}
	
	.ics-calendar-grid-wrapper *[data-feed-key] {
		background: rgba(238,238,238,0.75);
		border-top: 1px solid rgba(102,102,102,0.1333);
		border-left: 4px solid #666666;
		position: relative;
		z-index: 1;
	}
	
	.ics-calendar-grid-wrapper *[data-feed-key]:hover {
		background: rgba(102,102,102,0.8333);
		color: #ffffff;
		height: auto !important;
		z-index: 2;
	}
	.ics-calendar-grid-wrapper *[data-feed-key]:hover a, .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 */
	
	thead.ics-calendar-grid-header {
	}
	
		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;
		}
		
		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 .ics-calendar-grid-all-day {
			background: rgba(0,0,0,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;
		}

/* CSS3 media queries */

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

	thead.ics-calendar-grid-header th.ics-calendar-grid-day .dow, thead.ics-calendar-grid-header th.ics-calendar-grid-day .date {
		display: block;
	}
	
	tbody.ics-calendar-grid-body .ics-calendar-grid-hours .ics-calendar-grid-hour .hour {
		top: 12px; /* @todo Why is this needed? */
	}
	
	.ics-calendar-grid-wrapper .toggle_day {
		display: none;
	}
	.ics-calendar-grid-wrapper .expanded .toggle_day {
		display: inline-block;
	}
	
}
