/*
 * Parish calendar styling: the sister sites' look (cream grid, hairline cells,
 * solid blue event blocks with bold time and title) in Prairie Light colors.
 */
.hd-calendar { font-size: 13.5px; line-height: 1.5; }
.hd-calendar.is-loading { opacity: 0.6; }
.hd-calendar__loading, .hd-calendar__error { text-align: center; font-style: italic; padding: 2rem 0; }

/* Toolbar */
.hd-calendar.fc .fc-toolbar { margin-bottom: 18px; gap: 12px; flex-wrap: wrap; }
.hd-calendar.fc .fc-toolbar-title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 26px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}
.hd-calendar.fc .fc-button {
	font-family: var(--wp--preset--font-family--display);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 10px 14px;
	border-radius: 0;
	background: var(--wp--preset--color--primary);
	border: 1px solid var(--wp--preset--color--primary);
	color: #fff;
	box-shadow: none !important;
}
.hd-calendar.fc .fc-button:hover,
.hd-calendar.fc .fc-button-active { background: var(--wp--preset--color--contrast) !important; border-color: var(--wp--preset--color--contrast) !important; }
.hd-calendar.fc .fc-button:disabled { opacity: 0.4; }
.hd-calendar.fc .fc-button-group > .fc-button { margin-left: -1px; }

/* Grid */
.hd-calendar.fc { --fc-border-color: var(--wp--preset--color--rule); --fc-page-bg-color: var(--wp--preset--color--base); --fc-neutral-bg-color: var(--wp--preset--color--base-2); --fc-today-bg-color: #fdf3d2; }
.hd-calendar.fc-theme-standard .fc-scrollgrid { border: 1px solid var(--wp--preset--color--rule); }
.hd-calendar.fc .fc-col-header-cell {
	background: var(--wp--preset--color--base-2);
	padding: 12px 0;
	font-family: var(--wp--preset--font-family--body);
	font-weight: 700;
	font-size: 15px;
	color: var(--wp--preset--color--primary);
}
.hd-calendar.fc .fc-col-header-cell-cushion { padding: 0; }
.hd-calendar.fc .fc-daygrid-day-number { font-size: 14px; padding: 6px 8px; color: var(--wp--preset--color--contrast); }
.hd-calendar.fc .fc-day-other .fc-daygrid-day-number { opacity: 0.45; }
.hd-calendar.fc .fc-daygrid-day-frame { min-height: 120px; }
.hd-calendar.fc .fc-daygrid-day-events { margin: 0 4px 4px; }

/* Events */
.hd-calendar.fc .fc-daygrid-event,
.hd-calendar.fc .fc-daygrid-dot-event,
.hd-calendar.fc .fc-daygrid-block-event {
	display: block;
	margin: 0 0 4px;
	padding: 6px 8px;
	border-radius: 0;
	border: 0;
	background: var(--wp--preset--color--primary);
	color: #fff;
	white-space: normal;
	cursor: pointer;
}
.hd-calendar.fc .fc-daygrid-event:hover { background: var(--wp--preset--color--contrast); }
.hd-calendar.fc .fc-event.hd-ev--past { background: #7d90b3; }
.hd-calendar.fc .fc-event.hd-ev--past:hover { background: var(--wp--preset--color--primary); }
.hd-calendar.fc .fc-daygrid-event .fc-event-main { color: inherit; padding: 0; }
.hd-calendar .hd-ev__time { display: block; font-weight: 700; font-size: 12.5px; }
.hd-calendar .hd-ev__title { display: block; font-size: 13.5px; }
.hd-calendar.fc .fc-daygrid-event-dot { display: none; }

/* List view */
.hd-calendar.fc .fc-list { border: 1px solid var(--wp--preset--color--rule); }
.hd-calendar.fc .fc-list-day-cushion { background: var(--wp--preset--color--base-2); font-family: var(--wp--preset--font-family--display); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--primary); }
.hd-calendar.fc .fc-list-event td { padding: 10px 12px; }
.hd-calendar.fc .fc-list-event:hover td { background: #fdf3d2; }
.hd-calendar.fc .fc-list-event-time { font-weight: 700; white-space: nowrap; }
/* Past events in the list: quiet grey on grey, so upcoming (cream/parchment) rows lead the eye. */
.hd-calendar.fc .fc-list-event.hd-ev--past td { background: #ECEAE4; color: #5F6169; }
.hd-calendar.fc .fc-list-event.hd-ev--past:hover td { background: #E3E0D8; color: #3F4148; }
.hd-calendar.fc .fc-list-event.hd-ev--past td a { color: inherit; }
.hd-calendar.fc .fc-list-event-dot { display: none; }
.hd-calendar.fc .fc-list-event-graphic { display: none; }

/* Event popover */
.hd-pop {
	position: absolute;
	z-index: 50;
	width: min(360px, calc(100vw - 32px));
	background: #fff;
	border: 1px solid var(--wp--preset--color--rule);
	border-top: 3px solid var(--wp--preset--color--gold);
	box-shadow: 0 10px 30px rgba(15, 32, 51, 0.15);
	padding: 18px 20px 16px;
	font-size: 14px;
}
.hd-pop__title { font-size: 17px; margin: 0 28px 6px 0; }
.hd-pop__when { font-weight: 700; margin: 0 0 6px; }
.hd-pop__loc { margin: 0 0 6px; opacity: 0.8; }
.hd-pop__desc { margin: 8px 0 0; font-size: 13.5px; }
.hd-pop__close { position: absolute; top: 8px; right: 10px; border: 0; background: none; font-size: 22px; line-height: 1; cursor: pointer; color: var(--wp--preset--color--contrast); }

@media (max-width: 700px) {
	.hd-calendar.fc .fc-toolbar { flex-direction: column; align-items: stretch; }
	.hd-calendar.fc .fc-toolbar-title { font-size: 20px; text-align: center; }
}
