/**
 * Court calendar ([nauru_court_calendar]) + FullCalendar overrides.
 */

.njcms-court-calendar__heading {
	text-align: center;
	margin: 0 0 var(--njcms-space-xl, 2rem);
	font-size: clamp(1.125rem, 2vw, 1.35rem);
	font-weight: 600;
	color: var(--njcms-color-primary, #14325c);
	max-width: 52rem;
	margin-left: auto;
	margin-right: auto;
}

.njcms-court-calendar__frame {
	border: 2px solid var(--njcms-color-primary, #012169);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 18px 42px rgba(1, 22, 74, 0.08);
}

.njcms-court-calendar__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 10px;
	background: #f4f7fc;
	border-bottom: 1px solid #d8e1ef;
}

@media (max-width: 560px) {
	.njcms-court-calendar__tabs {
		flex-direction: column;
	}

	.njcms-court-calendar__tab {
		width: 100%;
		flex-basis: auto;
		text-align: center;
		padding: 0.85rem 1rem;
		font-size: 0.875rem;
	}
}

.njcms-court-calendar__tab {
	flex: 1 1 10rem;
	min-width: 0;
	min-height: 44px;
	padding: 0.75rem 1rem;
	border: 1px solid rgba(1, 33, 105, 0.18);
	border-radius: 8px;
	background: #fff;
	color: var(--njcms-color-primary, #012169);
	font: inherit;
	font-size: 0.8125rem;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
	transition: background var(--njcms-transition-fast, 160ms ease),
		border-color var(--njcms-transition-fast, 160ms ease),
		color var(--njcms-transition-fast, 160ms ease),
		box-shadow var(--njcms-transition-fast, 160ms ease);
}

.njcms-court-calendar__tab:hover,
.njcms-court-calendar__tab:focus {
	border-color: var(--njcms-color-primary, #012169);
	background: #e8eefc;
	color: var(--njcms-color-primary, #012169);
}

.njcms-court-calendar__tab:focus-visible {
	outline: 3px solid rgba(1, 33, 105, 0.22);
	outline-offset: 2px;
}

.njcms-court-calendar__tab.is-active {
	border-color: var(--njcms-color-primary, #012169);
	background: var(--njcms-color-primary, #012169);
	color: #fff;
	box-shadow: 0 8px 20px rgba(1, 22, 74, 0.15);
}

.njcms-court-calendar__calendar {
	padding: var(--njcms-space-md, 1rem);
	background: #fff;
}

/* FullCalendar chrome */
.njcms-court-calendar .fc .fc-button-primary {
	background: #fff;
	border-color: rgba(1, 33, 105, 0.35);
	border-radius: 6px;
	color: var(--njcms-color-primary, #012169);
	text-transform: capitalize;
	box-shadow: none;
}

.njcms-court-calendar .fc .fc-button-primary:hover,
.njcms-court-calendar .fc .fc-button-primary:focus {
	background: #e8eefc;
	border-color: var(--njcms-color-primary, #012169);
	color: var(--njcms-color-primary, #012169);
}

.njcms-court-calendar .fc .fc-button-primary:not(:disabled):active,
.njcms-court-calendar .fc .fc-button-primary:not(:disabled).fc-button-active {
	background: var(--njcms-color-primary, #012169);
	border-color: var(--njcms-color-primary, #012169);
	color: #fff;
}

.njcms-court-calendar .fc .fc-toolbar-title {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--njcms-color-primary, #14325c);
}

.njcms-court-calendar .fc .fc-daygrid-day-number {
	text-decoration: none;
}

.njcms-court-calendar .fc-daygrid-day-top .fc-daygrid-day-number + .fc-daygrid-day-number {
	display: none;
}

.njcms-court-calendar .fc .fc-daygrid-event,
.njcms-court-calendar .fc .fc-daygrid-event a,
.njcms-court-calendar .fc .fc-list-event-title a {
	text-decoration: none;
}

.njcms-court-calendar .fc .fc-daygrid-day.fc-day-today {
	background: rgba(232, 238, 252, 0.78) !important;
}

.njcms-court-calendar__detail {
	padding: var(--njcms-space-lg, 1.5rem);
	border-top: 1px solid var(--njcms-color-border, #d8e1ef);
	background: #fafbfd;
}

.njcms-court-calendar__detail-title {
	margin: 0 0 var(--njcms-space-md, 1rem);
	font-size: 1.05rem;
	color: var(--njcms-color-text, #1c2e4a);
}

.njcms-court-calendar__detail-dl {
	margin: 0;
	display: grid;
	grid-template-columns: minmax(6rem, 28%) 1fr;
	gap: 0.35rem 1rem;
	font-size: 0.9375rem;
}

.njcms-court-calendar__detail-dl dt {
	margin: 0;
	font-weight: 700;
	color: var(--njcms-color-text, #1c2e4a);
}

.njcms-court-calendar__detail-dl dd {
	margin: 0;
	color: var(--njcms-color-muted, #60708a);
}

.njcms-court-calendar__detail-dl a {
	color: var(--njcms-color-primary, #14325c);
	word-break: break-all;
}

@media (max-width: 560px) {
	.njcms-court-calendar__detail-dl {
		grid-template-columns: 1fr;
		gap: 0.15rem 0;
	}

	.njcms-court-calendar__detail-dl dt {
		margin-top: 0.5rem;
	}

	.njcms-court-calendar__detail-dl dt:first-child {
		margin-top: 0;
	}

	.njcms-court-calendar .fc .fc-header-toolbar {
		flex-direction: column;
		align-items: stretch;
		gap: 0.65rem;
	}

	.njcms-court-calendar .fc .fc-toolbar-chunk {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.35rem;
	}
}

/* Month grid: slightly taller day cells when user switches to month on a phone */
@media (max-width: 767px) {
	.njcms-court-calendar .fc-dayGridMonth-view .fc-daygrid-day-frame {
		min-height: 2.75rem;
	}

	.njcms-court-calendar .fc-dayGridMonth-view .fc-daygrid-day-number {
		font-size: 0.8rem;
		padding: 0.2rem 0.35rem;
	}
}
