/**
 * SHHM Calendar frontend.
 *
 * Typeface declarations are intentionally absent. Headings, copy and controls
 * inherit the active WordPress/Avada typography. Every colour and layout token
 * can be overridden by defining the corresponding custom property on an
 * ancestor or on .shhm-calendar.
 */

:root {
	--shhm-calendar-section: var(--awb-color2, #eeeeee);
	--shhm-calendar-text: var(--awb-color4, #004e6e);
	--shhm-calendar-navy: var(--awb-color8, #002f47);
	--shhm-calendar-petrol: var(--awb-color4, #004e6e);
	--shhm-calendar-teal: var(--awb-color6, #006186);
	--shhm-calendar-gold: var(--awb-custom_color_2, #cbb476);
	--shhm-calendar-paper: var(--awb-color1, #f8f8f8);
	--shhm-calendar-white: var(--awb-custom_color_3, #ffffff);
	--shhm-calendar-muted: #596f79;
	--shhm-calendar-border: var(--awb-color3, #dfe1e1);
	--shhm-calendar-border-strong: #73848b;
	--shhm-calendar-focus: var(--awb-color5, #308ba4);
	--shhm-calendar-event-accent-1: var(--awb-color6, #006186);
	--shhm-calendar-event-accent-text-1: var(--awb-custom_color_3, #ffffff);
	--shhm-calendar-event-accent-2: var(--awb-custom_color_2, #cbb476);
	--shhm-calendar-event-accent-text-2: var(--awb-color8, #002f47);
	--shhm-calendar-event-accent-3: var(--awb-color4, #004e6e);
	--shhm-calendar-event-accent-text-3: var(--awb-custom_color_3, #ffffff);
	--shhm-calendar-event-accent-4: var(--awb-color5, #308ba4);
	--shhm-calendar-event-accent-text-4: var(--awb-custom_color_3, #ffffff);
	--shhm-calendar-event-accent-5: var(--awb-custom_color_1, #0b374f);
	--shhm-calendar-event-accent-text-5: var(--awb-custom_color_3, #ffffff);
	--shhm-calendar-event-accent-6: var(--awb-color8, #002f47);
	--shhm-calendar-event-accent-text-6: var(--awb-custom_color_3, #ffffff);
}

.shhm-calendar {
	box-sizing: border-box;
	width: 100%;
	padding: var(--shhm-calendar-section-padding, clamp(3.75rem, 7vw, 6rem) clamp(1.25rem, 5vw, 4.5rem));
	background: var(--shhm-calendar-section, #eeeeee);
	color: var(--shhm-calendar-text, #004e6e);
	container-name: shhm-calendar-embed;
	container-type: inline-size;
}

.shhm-calendar *,
.shhm-calendar *::before,
.shhm-calendar *::after {
	box-sizing: border-box;
}

.shhm-calendar.has-event-accent-1,
.shhm-calendar .has-event-accent-1 {
	--shhm-calendar-event-accent: var(--shhm-calendar-event-accent-1, #006186);
	--shhm-calendar-event-accent-text: var(--shhm-calendar-event-accent-text-1, #ffffff);
}

.shhm-calendar.has-event-accent-2,
.shhm-calendar .has-event-accent-2 {
	--shhm-calendar-event-accent: var(--shhm-calendar-event-accent-2, #cbb476);
	--shhm-calendar-event-accent-text: var(--shhm-calendar-event-accent-text-2, #002f47);
}

.shhm-calendar.has-event-accent-3,
.shhm-calendar .has-event-accent-3 {
	--shhm-calendar-event-accent: var(--shhm-calendar-event-accent-3, #004e6e);
	--shhm-calendar-event-accent-text: var(--shhm-calendar-event-accent-text-3, #ffffff);
}

.shhm-calendar.has-event-accent-4,
.shhm-calendar .has-event-accent-4 {
	--shhm-calendar-event-accent: var(--shhm-calendar-event-accent-4, #308ba4);
	--shhm-calendar-event-surface: var(--shhm-calendar-event-accent-surface-4, #267991);
	--shhm-calendar-event-accent-text: var(--shhm-calendar-event-accent-text-4, #ffffff);
}

@supports (color: color-mix(in srgb, #000000 50%, #ffffff)) {
	.shhm-calendar.has-event-accent-4,
	.shhm-calendar .has-event-accent-4 {
		--shhm-calendar-event-surface: var(--shhm-calendar-event-accent-surface-4, color-mix(in srgb, var(--shhm-calendar-event-accent) 80%, var(--shhm-calendar-navy, #002f47)));
	}
}

.shhm-calendar.has-event-accent-5,
.shhm-calendar .has-event-accent-5 {
	--shhm-calendar-event-accent: var(--shhm-calendar-event-accent-5, #0b374f);
	--shhm-calendar-event-accent-text: var(--shhm-calendar-event-accent-text-5, #ffffff);
}

.shhm-calendar.has-event-accent-6,
.shhm-calendar .has-event-accent-6 {
	--shhm-calendar-event-accent: var(--shhm-calendar-event-accent-6, #002f47);
	--shhm-calendar-event-accent-text: var(--shhm-calendar-event-accent-text-6, #ffffff);
}

.shhm-calendar__inner {
	width: min(100%, var(--shhm-calendar-content-width, 1200px));
	margin-inline: auto;
}

.shhm-calendar__results {
	min-width: 0;
}

.shhm-calendar__header {
	max-width: 50rem;
	margin: 0 0 clamp(2.25rem, 5vw, 4rem);
}

.shhm-calendar__eyebrow,
.shhm-event-card__overline,
.shhm-agenda__category,
.shhm-agenda__overline,
.shhm-calendar__filter-label {
	margin: 0;
	color: var(--shhm-calendar-teal, #006186);
	font-size: var(--shhm-calendar-eyebrow-size, 0.75rem);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.shhm-calendar__heading {
	margin: 0.75rem 0 0;
	color: var(--shhm-calendar-navy, #002f47);
	font-size: var(--shhm-calendar-heading-size, clamp(2rem, 4vw, 3.625rem));
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.shhm-calendar__intro {
	max-width: 45rem;
	margin: 1.25rem 0 0;
	font-size: var(--shhm-calendar-intro-size, 1rem);
	line-height: 1.75;
}

.shhm-calendar__section-button {
	margin-top: 1.75rem;
}

.shhm-calendar a {
	text-underline-offset: 0.18em;
}

.shhm-calendar__button,
.shhm-calendar__filter-submit {
	display: inline-flex;
	min-height: var(--shhm-calendar-button-height, 2.5rem);
	align-items: center;
	justify-content: center;
	padding: 0.65rem 1.5rem;
	border: 0;
	border-radius: 0;
	appearance: none;
	background: var(--shhm-calendar-gold, #cbb476);
	box-shadow: none;
	color: var(--shhm-calendar-navy, #002f47);
	cursor: pointer;
	font: inherit;
	font-size: var(--shhm-calendar-button-size, 0.8125rem);
	line-height: 1.25;
	letter-spacing: 0.06em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
}

.shhm-calendar__button:hover,
.shhm-calendar__button:focus-visible,
.shhm-calendar__filter-submit:hover,
.shhm-calendar__filter-submit:focus-visible {
	background: var(--shhm-calendar-navy, #002f47);
	color: var(--shhm-calendar-paper, #f8f8f8);
	text-decoration: none;
}

.shhm-calendar :where(a, button, input, summary):focus-visible {
	outline: 3px solid var(--shhm-calendar-focus, #308ba4);
	outline-offset: 3px;
}

/* Month navigation */

.shhm-calendar__month-nav {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	margin: 0 0 2rem;
	padding-block: 1.25rem;
	border-block: 1px solid var(--shhm-calendar-border, #dfe1e1);
}

.shhm-calendar__month-link {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	color: var(--shhm-calendar-petrol, #004e6e);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

.shhm-calendar__month-link:hover,
.shhm-calendar__month-link:focus-visible {
	color: var(--shhm-calendar-navy, #002f47);
	text-decoration: underline;
}

.shhm-calendar__month-link--next {
	justify-self: end;
}

.shhm-calendar__month-link.is-disabled {
	opacity: 0.4;
}

.shhm-calendar__month-current {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 0.2rem;
	text-align: center;
}

.shhm-calendar__month-label {
	color: var(--shhm-calendar-navy, #002f47);
	font-size: clamp(1.375rem, 3vw, 1.875rem);
	line-height: 1.25;
}

.shhm-calendar__today-link {
	color: var(--shhm-calendar-teal, #006186);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Search and category filters */

.shhm-calendar__filters {
	display: grid;
	grid-template-columns: minmax(14rem, 0.85fr) minmax(18rem, 1.4fr) minmax(10rem, 0.6fr) auto;
	gap: 1.5rem;
	align-items: end;
	margin: 0 0 2.5rem;
	padding: clamp(1.5rem, 3vw, 2.375rem);
	background: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-calendar__filters > *,
.shhm-calendar__select-filters > * {
	min-width: 0;
}

.shhm-calendar__search,
.shhm-calendar__category-filter {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.shhm-calendar__select-filters {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.shhm-calendar__filter-label {
	display: block;
	margin-bottom: 0.75rem;
}

.shhm-calendar__search-row {
	display: flex;
	min-width: 0;
}

.shhm-calendar__search-input {
	width: 100%;
	min-width: 0;
	min-height: 2.75rem;
	padding: 0.65rem 0.8rem;
	border: 1px solid var(--shhm-calendar-border-strong, #73848b);
	border-radius: 0;
	appearance: none;
	background: var(--shhm-calendar-white, #ffffff);
	box-shadow: none;
	color: var(--shhm-calendar-navy, #002f47);
	font: inherit;
}

.shhm-calendar .shhm-calendar__search-input::placeholder {
	color: var(--shhm-calendar-petrol, #004e6e);
	font-weight: 400;
	opacity: 0.88;
}

.shhm-calendar__select {
	width: 100%;
	min-height: 2.75rem;
	padding: 0.65rem 2rem 0.65rem 0.8rem;
	border: 1px solid var(--shhm-calendar-border-strong, #73848b);
	border-radius: 0;
	background-color: var(--shhm-calendar-white, #ffffff);
	box-shadow: none;
	color: var(--shhm-calendar-navy, #002f47);
	font: inherit;
}

.shhm-calendar__clear-search {
	display: inline-block;
	margin-top: 0.5rem;
	color: var(--shhm-calendar-petrol, #004e6e);
	font-size: 0.8125rem;
}

.shhm-calendar__filter-submit {
	min-width: 4.5rem;
	min-height: 2.75rem;
	padding-inline: 1rem;
	background: var(--shhm-calendar-petrol, #004e6e);
	color: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-calendar__filter-submit:hover,
.shhm-calendar__filter-submit:focus-visible {
	background: var(--shhm-calendar-navy, #002f47);
}

.shhm-calendar__filter-options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.shhm-calendar__filter-option {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	padding: 0.6rem 0.9rem;
	border: 1px solid var(--shhm-calendar-border-strong, #73848b);
	background: transparent;
	color: var(--shhm-calendar-petrol, #004e6e);
	cursor: pointer;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	max-width: 100%;
	overflow-wrap: anywhere;
	text-align: center;
}

.shhm-calendar__filter-option.has-category-color {
	gap: 0.5rem;
}

.shhm-calendar__filter-option.has-category-color::before {
	width: 0.625rem;
	height: 0.625rem;
	border: 1px solid currentColor;
	background: var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	content: "";
	flex: 0 0 auto;
}

.shhm-calendar__filter-option:hover,
.shhm-calendar__filter-input:checked + .shhm-calendar__filter-option,
.shhm-calendar__filter-option.is-active {
	border-color: var(--shhm-calendar-petrol, #004e6e);
	background: var(--shhm-calendar-petrol, #004e6e);
	color: var(--shhm-calendar-paper, #f8f8f8);
	text-decoration: none;
}

.shhm-calendar__filter-input:focus-visible + .shhm-calendar__filter-option {
	outline: 3px solid var(--shhm-calendar-focus, #308ba4);
	outline-offset: 3px;
}

.shhm-calendar__button--filter {
	min-height: 2.75rem;
	white-space: nowrap;
}

.shhm-calendar__visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	border: 0 !important;
	white-space: nowrap !important;
}

/* Cards and homepage teaser */

.shhm-calendar__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--shhm-calendar-card-gap, clamp(1.25rem, 2.5vw, 3rem));
}

.shhm-programs {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.shhm-programs__group {
	display: grid;
	grid-template-columns: minmax(0, 1.65fr) minmax(18rem, 0.95fr);
	min-width: 0;
	border-block-start: 0.375rem solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	background: var(--shhm-calendar-white, #ffffff);
}

.shhm-programs__summary {
	display: grid;
	grid-template-columns: minmax(13rem, 0.82fr) minmax(0, 1.18fr);
	min-width: 0;
	align-self: stretch;
}

.shhm-programs__group--no-image .shhm-programs__summary {
	grid-template-columns: minmax(0, 1fr);
}

.shhm-programs__media {
	min-width: 0;
	min-height: 100%;
	margin: 0;
	background: var(--shhm-calendar-section, #eeeeee);
	overflow: hidden;
}

.shhm-programs__image {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 16rem;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
}

.shhm-programs__content {
	min-width: 0;
	padding: clamp(1.5rem, 3vw, 2.25rem);
}

.shhm-programs__eyebrow {
	margin: 0 0 0.75rem;
	color: var(--shhm-calendar-teal, #006186);
	font-size: var(--shhm-calendar-eyebrow-size, 0.75rem);
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-transform: uppercase;
}

.shhm-programs__heading {
	margin: 0;
	color: var(--shhm-calendar-navy, #002f47);
	font-size: var(--shhm-calendar-program-title-size, clamp(1.75rem, 2.4cqi, 2rem));
	line-height: 1.15;
	overflow-wrap: anywhere;
}

.shhm-programs__heading a {
	color: inherit;
	text-decoration: none;
}

.shhm-programs__heading a:hover,
.shhm-programs__heading a:focus-visible {
	color: var(--shhm-calendar-petrol, #004e6e);
	text-decoration: underline;
}

.shhm-programs__description {
	max-width: 46ch;
	margin-block-start: 1rem;
	color: var(--shhm-calendar-text, #004e6e);
	font-size: var(--shhm-calendar-body-size, 1rem);
	line-height: 1.6;
}

.shhm-programs__description > :first-child {
	margin-block-start: 0;
}

.shhm-programs__description > :last-child {
	margin-block-end: 0;
}

.shhm-programs__more-link {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	margin-block-start: 1.25rem;
	color: var(--shhm-calendar-navy, #002f47);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-decoration: none;
	text-transform: uppercase;
}

.shhm-programs__more-link:hover,
.shhm-programs__more-link:focus-visible {
	color: var(--shhm-calendar-petrol, #004e6e);
	text-decoration: underline;
}

.shhm-programs__lessons {
	min-width: 0;
	border-inline-start: 1px solid var(--shhm-calendar-border, #dfe1e1);
	background: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-programs__lessons-summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 0.75rem;
	align-items: center;
	min-height: 3.75rem;
	padding: 1rem clamp(1.25rem, 2.5vw, 2rem);
	color: var(--shhm-calendar-navy, #002f47);
	cursor: pointer;
	list-style: none;
}

.shhm-programs__lessons-summary::-webkit-details-marker {
	display: none;
}

.shhm-programs__lessons-summary::after {
	content: "+";
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border: 1px solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	border-radius: 50%;
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1;
}

.shhm-programs__lessons[open] > .shhm-programs__lessons-summary::after {
	content: "−";
}

.shhm-programs__lessons-summary:focus-visible {
	outline: 3px solid var(--shhm-calendar-focus, #308ba4);
	outline-offset: -3px;
}

.shhm-programs__lessons-heading {
	font-size: clamp(1.125rem, 2cqi, 1.35rem);
	font-weight: 700;
	line-height: 1.25;
}

.shhm-programs__lessons-count {
	color: var(--shhm-calendar-muted, #596f79);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.3;
}

.shhm-programs__scroll-label {
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.shhm-programs__lesson-list {
	margin: 0;
	padding: 0;
	border-block-start: 1px solid var(--shhm-calendar-border, #dfe1e1);
	list-style: none;
}

.shhm-programs__lesson-list.is-scrollable {
	max-block-size: var(--shhm-programs-lessons-max-height, 46rem);
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-color: var(--shhm-calendar-event-accent, var(--shhm-calendar-teal, #006186)) var(--shhm-calendar-section, #eeeeee);
	scrollbar-gutter: stable;
}

.shhm-programs__lesson-list.is-scrollable:focus-visible {
	outline: 3px solid var(--shhm-calendar-focus, #308ba4);
	outline-offset: -3px;
}

.shhm-programs__lesson {
	margin: 0;
	border-inline-start: 0.25rem solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	border-block-end: 1px solid var(--shhm-calendar-border, #dfe1e1);
}

.shhm-programs__lesson:last-child {
	border-block-end: 0;
}

.shhm-programs__lesson-link {
	display: grid;
	grid-template-columns: minmax(6.75rem, 0.52fr) minmax(0, 1.48fr) auto;
	gap: 1rem;
	align-items: center;
	min-height: 4.5rem;
	padding: 0.85rem clamp(1rem, 2vw, 1.5rem);
	color: var(--shhm-calendar-navy, #002f47);
	text-decoration: none;
}

a.shhm-programs__lesson-link:hover {
	background: var(--shhm-calendar-white, #ffffff);
	color: var(--shhm-calendar-petrol, #004e6e);
}

a.shhm-programs__lesson-link:focus-visible {
	outline: 3px solid var(--shhm-calendar-focus, #308ba4);
	outline-offset: -3px;
}

.shhm-programs__lesson-date {
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.35;
}

.shhm-programs__lesson-body {
	display: grid;
	min-width: 0;
	gap: 0.15rem;
}

.shhm-programs__lesson-number {
	color: var(--shhm-calendar-teal, #006186);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-transform: uppercase;
}

.shhm-programs__lesson-title {
	font-weight: 700;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.shhm-programs__lesson-meta {
	color: var(--shhm-calendar-muted, #596f79);
	font-size: 0.8125rem;
	line-height: 1.4;
}

.shhm-programs__lesson-arrow {
	font-size: 1.35rem;
	line-height: 1;
}

.shhm-programs__empty {
	margin: 0 0 1rem;
}

@container shhm-calendar-embed (max-width: 64rem) {
	.shhm-programs__group {
		grid-template-columns: minmax(0, 1fr);
	}

	.shhm-programs__summary {
		grid-template-columns: minmax(13rem, 0.75fr) minmax(0, 1.25fr);
	}

	.shhm-programs__lessons {
		border-block-start: 1px solid var(--shhm-calendar-border, #dfe1e1);
		border-inline-start: 0;
	}
}

@container shhm-calendar-embed (max-width: 42rem) {
	.shhm-programs__summary {
		grid-template-columns: minmax(0, 1fr);
	}

	.shhm-programs__image {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.shhm-programs__content {
		padding: 1.5rem 1.25rem 1.75rem;
	}

	.shhm-programs__heading {
		font-size: clamp(1.5rem, 7cqi, 1.875rem);
	}

	.shhm-programs__lesson-link {
		grid-template-columns: minmax(5.75rem, 0.46fr) minmax(0, 1.54fr) auto;
		gap: 0.75rem;
		padding-inline: 1rem;
	}
}

@container shhm-calendar-embed (max-width: 28rem) {
	.shhm-programs__lessons-summary {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.shhm-programs__lessons-count {
		display: none;
	}

	.shhm-programs__lesson-link {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.shhm-programs__lesson-date {
		grid-column: 1 / -1;
	}
}

.shhm-event-card {
	display: flex;
	min-width: 0;
	min-height: var(--shhm-calendar-card-min-height, 20.3125rem);
	align-items: flex-start;
	flex-direction: column;
	gap: 2rem;
	padding: var(--shhm-calendar-card-padding, clamp(1.875rem, 3vw, 2.375rem));
	border: 0;
	border-block-start: 0.375rem solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	border-radius: 0;
	background: var(--shhm-calendar-white, #ffffff);
	box-shadow: none;
	color: var(--shhm-calendar-text, #004e6e);
	overflow-wrap: anywhere;
}

.shhm-event-card__content {
	width: 100%;
}

.shhm-event-card__overline {
	margin-bottom: 1.8rem;
}

.shhm-event-card__title {
	margin: 0;
	color: var(--shhm-calendar-navy, #002f47);
	font-size: var(--shhm-calendar-card-title-size, clamp(1.5rem, 2.4vw, 1.875rem));
	line-height: 1.4;
}

.shhm-event-card__excerpt {
	margin: 1.25rem 0 0;
	font-size: var(--shhm-calendar-body-size, 0.9375rem);
	line-height: 1.67;
}

.shhm-event-card__meta {
	display: grid;
	gap: 0.45rem;
	margin: 1.25rem 0 0;
	font-size: 0.875rem;
	line-height: 1.5;
}

.shhm-event-card__meta-row {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	gap: 0.6rem;
}

.shhm-event-card__meta dt {
	font-weight: 700;
}

.shhm-event-card__meta dd {
	margin: 0;
}

.shhm-event-card__button {
	margin-top: auto;
	transform: translateY(0);
}

.shhm-calendar__empty {
	margin: 0;
	padding: 2rem;
	border-inline-start: 4px solid var(--shhm-calendar-gold, #cbb476);
	background: var(--shhm-calendar-paper, #f8f8f8);
	color: var(--shhm-calendar-navy, #002f47);
	line-height: 1.6;
}

/* Public programme page: one canonical home for the complete course. */

body.tax-shhm_event_program .fusion-page-title-bar {
	display: none;
}

/* Let the canonical programme layout meet the global header edge to edge. */
body.tax-shhm_event_program #main,
body.tax-shhm_event_program #main > .fusion-row {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.shhm-calendar.shhm-program-page {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	background: var(--shhm-calendar-paper, #f8f8f8);
	color: var(--shhm-calendar-text, #004e6e);
}

.shhm-program-page__article {
	width: 100%;
}

.shhm-program-page__color-bar {
	height: 0.375rem;
	background: var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
}

.shhm-program-page__hero {
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
	grid-template-areas: "intro image";
	min-height: clamp(30rem, 46vw, 42rem);
	background: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-program-page--no-image .shhm-program-page__hero {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "intro";
}

.shhm-program-page--no-image .shhm-program-page__intro {
	min-height: clamp(24rem, 36vw, 32rem);
}

.shhm-program-page__intro {
	display: flex;
	min-width: 0;
	justify-content: center;
	flex-direction: column;
	grid-area: intro;
	padding: clamp(3rem, 7vw, 7.5rem) clamp(1.5rem, 7vw, 8.5rem);
}

.shhm-program-page__eyebrow,
.shhm-program-page__schedule-eyebrow {
	margin: 0 0 1rem;
	color: var(--shhm-calendar-teal, #006186);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-transform: uppercase;
}

.shhm-calendar .shhm-program-page__title {
	margin: 0;
	color: var(--shhm-calendar-navy, #002f47);
	font-family: var(--h1_typography-font-family, inherit);
	font-size: clamp(2.5rem, 4vw, 3.5rem) !important;
	font-weight: var(--h1_typography-font-weight, inherit);
	letter-spacing: var(--h1_typography-letter-spacing, normal);
	line-height: 1.08 !important;
	overflow-wrap: anywhere;
}

.shhm-program-page__description {
	max-width: 48rem;
	margin-block-start: 1.5rem;
	color: var(--shhm-calendar-text, #004e6e);
	font-size: clamp(1rem, 1.35vw, 1.1875rem);
	line-height: 1.65;
}

.shhm-program-page__description > :first-child {
	margin-block-start: 0;
}

.shhm-program-page__description > :last-child {
	margin-block-end: 0;
}

.shhm-program-page__cta {
	align-self: flex-start;
	margin-block-start: 1.75rem;
}

.shhm-program-page__image {
	grid-area: image;
	min-height: clamp(30rem, 46vw, 42rem);
	margin: 0;
	background: var(--shhm-calendar-section, #eeeeee);
	overflow: hidden;
}

.shhm-program-page__image img,
.shhm-program-page__image-element {
	display: block;
	width: 100%;
	height: 100%;
	min-height: clamp(30rem, 46vw, 42rem);
	object-fit: cover;
	object-position: center;
}

.shhm-program-page__facts {
	border-block-start: 1px solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	background: var(--shhm-calendar-white, #ffffff);
}

@supports (background: color-mix(in srgb, white, black)) {
	.shhm-program-page__facts {
		background: color-mix(in srgb, var(--shhm-calendar-event-accent, #cbb476) 9%, var(--shhm-calendar-white, #ffffff));
	}
}

.shhm-program-page__facts-inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	width: min(100%, 80rem);
	margin-inline: auto;
	padding: clamp(1.25rem, 2.5vw, 1.75rem) max(1.25rem, calc((100vw - 77.5rem) / 2));
}

.shhm-program-page__fact {
	display: grid;
	gap: 0.25rem;
	padding-inline: clamp(1rem, 2.5vw, 2rem);
	border-inline-end: 1px solid var(--shhm-calendar-border, #dfe1e1);
}

.shhm-program-page__fact:first-child {
	padding-inline-start: 0;
}

.shhm-program-page__fact:last-child {
	padding-inline-end: 0;
	border-inline-end: 0;
}

.shhm-program-page__fact-label {
	color: var(--shhm-calendar-teal, #006186);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.shhm-program-page__fact-value {
	color: var(--shhm-calendar-navy, #002f47);
	font-size: 1rem;
	line-height: 1.45;
}

.shhm-program-page__schedule {
	width: min(100%, 80rem);
	margin-inline: auto;
	padding: clamp(4rem, 7vw, 7rem) clamp(1.25rem, 5vw, 4.5rem);
}

.shhm-program-page__schedule-header {
	max-width: 46rem;
	margin-block-end: clamp(2rem, 4vw, 3.25rem);
}

.shhm-program-page__schedule-title {
	margin: 0;
	color: var(--shhm-calendar-navy, #002f47);
	font-size: clamp(2rem, 3.4vw, 3rem);
	line-height: 1.15;
}

.shhm-program-page__schedule-intro {
	margin: 1rem 0 0;
	color: var(--shhm-calendar-text, #004e6e);
	font-size: 1.0625rem;
	line-height: 1.6;
}

.shhm-program-page__date-group {
	background: var(--shhm-calendar-white, #ffffff);
}

.shhm-program-page__date-group-title {
	margin: 0;
	padding: 1.25rem clamp(1.25rem, 3vw, 2rem);
	border-block-start: 0.375rem solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	color: var(--shhm-calendar-navy, #002f47);
	font-size: clamp(1.25rem, 2.4vw, 1.6rem);
	line-height: 1.25;
}

.shhm-program-page__event-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.shhm-program-page__event {
	margin: 0;
	border-inline-start: 0.25rem solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	border-block-start: 1px solid var(--shhm-calendar-border, #dfe1e1);
}

.shhm-program-page__event-link {
	display: grid;
	grid-template-columns: minmax(4.5rem, 0.35fr) minmax(9rem, 0.7fr) minmax(0, 1.65fr) auto;
	gap: clamp(0.75rem, 2vw, 1.5rem);
	align-items: center;
	min-height: 6.25rem;
	padding: 1rem clamp(1.25rem, 3vw, 2rem);
	color: var(--shhm-calendar-navy, #002f47);
	text-decoration: none;
}

a.shhm-program-page__event-link:hover {
	background: var(--shhm-calendar-paper, #f8f8f8);
	color: var(--shhm-calendar-petrol, #004e6e);
}

a.shhm-program-page__event-link:focus-visible {
	outline: 3px solid var(--shhm-calendar-focus, #308ba4);
	outline-offset: -3px;
}

.shhm-program-page__event-sequence,
.shhm-program-page__event-eyebrow {
	color: var(--shhm-calendar-teal, #006186);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.35;
	text-transform: uppercase;
}

.shhm-program-page__event-date {
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.4;
}

.shhm-program-page__event-body {
	display: grid;
	min-width: 0;
	gap: 0.2rem;
}

.shhm-program-page__event-title {
	font-size: clamp(1.0625rem, 1.8vw, 1.25rem);
	font-weight: 700;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.shhm-program-page__event-meta {
	color: var(--shhm-calendar-muted, #596f79);
	font-size: 0.875rem;
	line-height: 1.45;
}

.shhm-program-page__event-action {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.35;
	text-transform: uppercase;
}

.shhm-program-page__previous {
	margin-block-start: 1.5rem;
	background: var(--shhm-calendar-white, #ffffff);
}

.shhm-program-page__previous-summary {
	min-height: 3.5rem;
	padding: 1rem 1.5rem;
	color: var(--shhm-calendar-navy, #002f47);
	font-weight: 700;
	line-height: 1.4;
	cursor: pointer;
}

.shhm-program-page__event-list.is-past {
	opacity: 0.78;
}

.shhm-program-page__empty {
	margin: 0;
	padding: 2rem;
	border-inline-start: 0.25rem solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	background: var(--shhm-calendar-white, #ffffff);
	color: var(--shhm-calendar-navy, #002f47);
}

@container shhm-calendar-embed (max-width: 55rem) {
	.shhm-program-page__hero {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"intro"
			"image";
		min-height: 0;
	}

	.shhm-program-page__intro {
		padding: clamp(2.75rem, 8vw, 4.5rem) clamp(1.25rem, 6vw, 3rem);
	}

	.shhm-calendar .shhm-program-page__title {
		font-size: clamp(2.1rem, 8cqi, 3.25rem) !important;
	}

	.shhm-program-page__image,
	.shhm-program-page__image img,
	.shhm-program-page__image-element {
		min-height: clamp(19rem, 56vw, 30rem);
	}

	.shhm-program-page__facts-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1rem 0;
	}

	.shhm-program-page__fact:nth-child(2n + 1) {
		padding-inline-start: 0;
	}

	.shhm-program-page__fact:nth-child(2n) {
		padding-inline-end: 0;
		border-inline-end: 0;
	}

	.shhm-program-page__event-link {
		grid-template-columns: minmax(4rem, 0.3fr) minmax(8.5rem, 0.65fr) minmax(0, 1.55fr) auto;
	}
}

@container shhm-calendar-embed (max-width: 40rem) {
	.shhm-program-page__facts-inner {
		grid-template-columns: minmax(0, 1fr);
	}

	.shhm-program-page__fact,
	.shhm-program-page__fact:nth-child(n) {
		padding-inline: 0;
		padding-block: 0.75rem;
		border-inline-end: 0;
		border-block-end: 1px solid var(--shhm-calendar-border, #dfe1e1);
	}

	.shhm-program-page__fact:last-child {
		border-block-end: 0;
	}

	.shhm-program-page__schedule {
		padding-block: 3.5rem;
	}

	.shhm-program-page__event-link {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 0.5rem 1rem;
		padding: 1.1rem 1rem;
	}

	.shhm-program-page__event-sequence,
	.shhm-program-page__event-date,
	.shhm-program-page__event-body {
		grid-column: 1;
	}

	.shhm-program-page__event-action {
		grid-column: 2;
		grid-row: 1 / span 3;
		align-self: center;
		font-size: 0;
	}

	.shhm-program-page__event-action span {
		font-size: 1.25rem;
	}
}

/* Public single-event page: editorial event detail layout. */

body.single-shhm_event #main {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

body.single-shhm_event .fusion-page-title-bar,
body.single-shhm_event .fusion-page-title-bar + .fusion-row,
body.single-shhm_event #content h1.fusion-post-title,
body.single-shhm_event #content .entry-title,
body.single-shhm_event .fusion-meta-info,
body.single-shhm_event .single-navigation,
body.single-shhm_event .fusion-sharing-box,
body.single-shhm_event .about-author,
body.single-shhm_event #comments,
body.single-shhm_event .comments-area,
body.single-shhm_event .comment-respond,
body.single-shhm_event .comments-container,
body.single-shhm_event .fusion-comments,
body.single-shhm_event .fusion-comments-tb {
	display: none;
}

body.single-shhm_event #wrapper,
body.single-shhm_event #content {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

body.single-shhm_event #main > .fusion-row,
body.single-shhm_event #main #content {
	width: 100%;
	max-width: none;
	padding: 0;
}

/* The plugin renders the same event image in the split hero below. */
body.single-shhm_event .fusion-post-slideshow,
body.single-shhm_event .fusion-meta-info {
	display: none;
}

body.single-shhm_event .post-content {
	max-width: none;
	margin: 0;
}

body.single-shhm_event article.shhm_event {
	margin: 0;
}

.shhm-calendar.shhm-single-event {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	color: var(--shhm-calendar-navy, #002f47);
}

.shhm-single-event__color-bar {
	height: 0.375rem;
	background: var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
}

.shhm-single-event__hero {
	display: grid;
	grid-template-columns: minmax(0, 48fr) minmax(0, 52fr);
	grid-template-areas: "intro image";
	min-height: clamp(29rem, 42vw, 40rem);
	background: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-single-event--no-image .shhm-single-event__hero {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "intro";
}

.shhm-single-event--no-image .shhm-single-event__intro {
	min-height: clamp(25rem, 38vw, 34rem);
}

.shhm-single-event__intro {
	display: flex;
	flex-direction: column;
	justify-content: center;
	grid-area: intro;
	min-width: 0;
	padding: clamp(2.5rem, 7vw, 7.5rem) clamp(1.5rem, 7vw, 8.5rem);
	background: transparent;
}

.shhm-single-event__type {
	margin: 0 0 1.75rem;
	color: var(--shhm-calendar-teal, #006186);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-transform: uppercase;
}

.shhm-calendar .shhm-single-event__title {
	margin: 0;
	color: var(--shhm-calendar-navy, #002f47);
	font-family: var(--h1_typography-font-family, inherit);
	font-size: clamp(2.5rem, 4.5vw, 4.8rem) !important;
	font-weight: var(--h1_typography-font-weight, inherit);
	letter-spacing: var(--h1_typography-letter-spacing, normal);
	line-height: 1.08 !important;
	overflow-wrap: anywhere;
}

.shhm-single-event__excerpt {
	max-width: 36rem;
	margin: 1.75rem 0 0;
	color: var(--shhm-calendar-text, #004e6e);
	font-size: clamp(1.0625rem, 1.4vw, 1.25rem);
	line-height: 1.6;
}

.shhm-single-event__status {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	width: fit-content;
	margin: 1.5rem 0 0;
	color: var(--shhm-calendar-navy, #002f47);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.4;
}

.shhm-single-event__status span {
	width: 0.65rem;
	height: 0.65rem;
	background: var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	border-radius: 50%;
}

.shhm-single-event__program-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-self: flex-start;
	margin-block-start: 1.75rem;
}

.shhm-single-event__program-link {
	margin: 0;
}

.shhm-single-event__image {
	grid-area: image;
	min-height: clamp(29rem, 42vw, 40rem);
	margin: 0;
	background: var(--shhm-calendar-section, #eeeeee);
	overflow: hidden;
}

.shhm-single-event__image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: clamp(29rem, 42vw, 40rem);
	object-fit: cover;
	object-position: center;
}

.shhm-single-event__facts {
	border-block-start: 1px solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	background: var(--shhm-calendar-paper, #f8f8f8);
}

@supports (background: color-mix(in srgb, white, black)) {
	.shhm-single-event__facts {
		background: color-mix(in srgb, var(--shhm-calendar-event-accent, #cbb476) 10%, var(--shhm-calendar-white, #ffffff));
	}
}

.shhm-single-event__facts-inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
	width: min(100%, 80rem);
	margin-inline: auto;
	padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1.25rem, 2.5vw, 2rem);
}

@media (min-width: 1025px) {
	.shhm-single-event__facts-inner--6 {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}

.shhm-single-event__fact {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	min-width: 0;
	padding: 0.25rem clamp(0.75rem, 2vw, 1.5rem);
	border-inline-end: 1px solid var(--shhm-calendar-border, #dfe1e1);
}

.shhm-single-event__fact:first-child {
	padding-inline-start: 0;
}

.shhm-single-event__fact:last-child {
	border-inline-end: 0;
}

.shhm-single-event__fact-mark {
	flex: 0 0 auto;
	width: 1rem;
	height: 1rem;
	border: 2px solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	border-radius: 50%;
}

.shhm-single-event__fact-label,
.shhm-single-event__fact-value {
	display: block;
}

.shhm-single-event__fact-label {
	color: var(--shhm-calendar-navy, #002f47);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.35;
	text-transform: uppercase;
}

.shhm-single-event__fact-value {
	margin-top: 0.2rem;
	color: var(--shhm-calendar-navy, #002f47);
	font-size: clamp(0.9375rem, 1.1vw, 1.125rem);
	line-height: 1.35;
}

.shhm-single-event__main {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
	gap: clamp(2.5rem, 7vw, 8rem);
	width: min(100%, 77.5rem);
	margin-inline: auto;
	padding: clamp(3.5rem, 8vw, 7rem) 1.25rem;
}

.shhm-single-event__editorial {
	min-width: 0;
}

.shhm-single-event__content {
	color: var(--shhm-calendar-text, #004e6e);
	font-size: clamp(1.0625rem, 1.2vw, 1.1875rem);
	line-height: 1.75;
}

.shhm-single-event__content > :first-child {
	margin-top: 0;
}

.shhm-single-event__content > :last-child {
	margin-bottom: 0;
}

.shhm-single-event__content strong {
	color: var(--shhm-calendar-navy, #002f47);
}

.shhm-single-event__content h2,
.shhm-single-event__content h3 {
	margin-top: 2.25em;
	color: var(--shhm-calendar-navy, #002f47);
}

.shhm-single-event__calendar-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	margin-top: 2.25rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--shhm-calendar-border, #dfe1e1);
}

.shhm-single-event__calendar-links a {
	color: var(--shhm-calendar-navy, #002f47);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.shhm-single-event__about {
	align-self: start;
	padding: clamp(2rem, 4vw, 3.5rem);
	background: var(--shhm-calendar-navy, #002f47);
	color: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-single-event__about-label {
	margin: 0;
	color: var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-transform: uppercase;
}

.shhm-single-event__about-label::after {
	display: block;
	width: 3.25rem;
	height: 2px;
	margin-top: 1rem;
	background: var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	content: '';
}

.shhm-single-event__about-heading {
	margin: 1.75rem 0 0;
	color: var(--shhm-calendar-paper, #f8f8f8);
	font-family: var(--h2_typography-font-family, inherit);
	font-size: clamp(2rem, 3.2vw, 3.25rem);
	font-weight: var(--h2_typography-font-weight, inherit);
	line-height: 1.12;
}

.shhm-single-event__about-text {
	margin: 1.5rem 0 0;
	color: var(--shhm-calendar-paper, #f8f8f8);
	font-size: clamp(1rem, 1.2vw, 1.125rem);
	line-height: 1.6;
}

.shhm-single-event__related {
	width: 100%;
	margin-top: clamp(4rem, 9vw, 8rem);
	padding: clamp(3rem, 7vw, 6rem) max(1.25rem, calc((100vw - 77.5rem) / 2));
	border-block-start: 1px solid var(--shhm-calendar-border, #dfe1e1);
	background: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-single-event__related-inner {
	width: min(100%, 77.5rem);
	margin-inline: auto;
}

.shhm-single-event__related .shhm-calendar__eyebrow {
	margin: 0 0 1.5rem;
	color: var(--shhm-calendar-teal, #006186);
}

.shhm-calendar .shhm-single-event__related-eyebrow {
	font-family: var(--body_typography-font-family, inherit);
	font-size: var(--shhm-calendar-eyebrow-size, 0.75rem) !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	letter-spacing: 0.13em !important;
	text-transform: uppercase !important;
}

.shhm-single-event__related-heading {
	max-width: 48rem;
	margin: 0;
	color: var(--shhm-calendar-navy, #002f47);
	font-family: var(--h2_typography-font-family, inherit);
	font-size: clamp(1.875rem, 3vw, 2.75rem);
	font-weight: var(--h2_typography-font-weight, inherit);
	line-height: 1.15;
}

.shhm-single-event__related-intro {
	max-width: 44rem;
	margin: 1rem 0 2rem;
	color: var(--shhm-calendar-text, #004e6e);
	font-size: clamp(1rem, 1.2vw, 1.125rem);
	line-height: 1.65;
}

.shhm-single-event__related-grid {
	gap: 1rem;
}

.shhm-single-event__related-grid .shhm-event-card {
	min-height: 0;
	gap: 1.25rem;
	padding: clamp(1.5rem, 3vw, 2rem);
}

@media (max-width: 720px) {
	body.single-shhm_event #main > .fusion-row,
	body.single-shhm_event #main #content {
		padding: 0;
	}

	.shhm-single-event__hero {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"intro"
			"image";
		min-height: 0;
	}

	.shhm-single-event__intro {
		padding: 3rem 1.25rem;
	}

	.shhm-calendar .shhm-single-event__title {
		font-size: clamp(2.1rem, 10vw, 3rem) !important;
	}

	.shhm-single-event__image,
	.shhm-single-event__image img {
		min-height: 19rem;
	}

	.shhm-single-event__facts-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1rem 0;
		padding: 1.25rem;
	}

	.shhm-single-event__fact {
		padding-inline: 0.75rem;
	}

	.shhm-single-event__fact:nth-child(2n + 1) {
		padding-inline-start: 0;
	}

	.shhm-single-event__fact:nth-child(2n) {
		padding-inline-end: 0;
		border-inline-end: 0;
	}

	.shhm-single-event__fact:last-child:nth-child(2n + 1) {
		border-inline-end: 0;
	}

	.shhm-single-event__main {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
		padding-block: 3.5rem;
	}

	.shhm-single-event__about {
		order: 2;
	}

	.shhm-single-event__related {
		margin-top: 0;
		padding: 3rem 1.25rem;
	}
}

@media (min-width: 721px) and (max-width: 900px) {
	.shhm-single-event__hero {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"intro"
			"image";
		min-height: 0;
	}

	.shhm-single-event__intro {
		padding: 2.5rem 1.5rem 3rem;
	}

	.shhm-calendar .shhm-single-event__title {
		font-size: clamp(2rem, 7vw, 2.75rem) !important;
	}

	.shhm-single-event__facts-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.shhm-single-event__fact:nth-child(2n + 1) {
		padding-inline-start: 0;
	}

	.shhm-single-event__fact:nth-child(2n) {
		padding-inline-end: 0;
		border-inline-end: 0;
	}

	.shhm-single-event__main {
		gap: 2.5rem;
		padding-block: 3rem;
	}
}

@media (min-width: 901px) and (max-width: 1024px) {
	.shhm-single-event__facts-inner {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1rem 0;
	}

	.shhm-single-event__fact:nth-child(3n) {
		border-inline-end: 0;
	}

	.shhm-single-event__fact:nth-child(3n + 1) {
		padding-inline-start: 0;
	}

	.shhm-single-event__main {
		grid-template-columns: minmax(0, 1fr);
		gap: 3rem;
	}
}

@container shhm-calendar-embed (max-width: 55rem) {
	.shhm-single-event__hero {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"intro"
			"image";
		min-height: 0;
	}

	.shhm-single-event__intro {
		padding: clamp(2.5rem, 8vw, 4.5rem) clamp(1.25rem, 6vw, 3rem);
	}

	.shhm-calendar .shhm-single-event__title {
		font-size: clamp(2rem, 7vw, 2.75rem) !important;
	}

	.shhm-single-event__image,
	.shhm-single-event__image img {
		min-height: clamp(19rem, 55vw, 30rem);
	}

	.shhm-single-event__facts-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.shhm-single-event__fact:nth-child(2n + 1) {
		padding-inline-start: 0;
		border-inline-end: 1px solid var(--shhm-calendar-border, #dfe1e1);
	}

	.shhm-single-event__fact:nth-child(2n) {
		padding-inline-end: 0;
		border-inline-end: 0;
	}

	.shhm-single-event__fact:last-child:nth-child(2n + 1) {
		border-inline-end: 0;
	}

	.shhm-single-event__main {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}
}

/* Expandable agenda */

.shhm-agenda {
	min-width: 0;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--shhm-calendar-border, #dfe1e1);
	list-style: none;
}

.shhm-agenda__item[hidden],
.shhm-agenda__more[hidden],
.shhm-agenda__more-button[hidden] {
	display: none !important;
}

.shhm-agenda__item {
	min-width: 0;
	margin: 0;
	padding: 0;
}

.shhm-agenda__event {
	min-width: 0;
	border-top: 1px solid var(--shhm-calendar-border, #dfe1e1);
	border-inline-start: 5px solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	background: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-agenda__summary {
	display: grid;
	grid-template-columns: minmax(6.5rem, 0.65fr) minmax(14rem, 2.5fr) minmax(6rem, 0.8fr) 1.5rem;
	gap: clamp(1rem, 3vw, 2.5rem);
	align-items: center;
	min-height: 7rem;
	padding: 1.25rem clamp(1.25rem, 3vw, 2.375rem);
	color: var(--shhm-calendar-petrol, #004e6e);
	cursor: pointer;
	list-style: none;
}

.shhm-agenda__summary > * {
	min-width: 0;
}

.shhm-agenda__summary::-webkit-details-marker {
	display: none;
}

.shhm-agenda__summary::marker {
	content: "";
}

.shhm-agenda__summary:hover {
	background: var(--shhm-calendar-white, #ffffff);
}

.shhm-agenda__date {
	display: flex;
	align-items: baseline;
	gap: 0.45rem;
	color: var(--shhm-calendar-teal, #006186);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1;
	text-transform: uppercase;
}

.shhm-agenda__date-day {
	color: var(--shhm-calendar-navy, #002f47);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 400;
	letter-spacing: 0;
}

.shhm-agenda__date-month,
.shhm-agenda__date-label {
	font-size: 0.75rem;
}

.shhm-agenda__date--range {
	align-items: flex-start;
}

.shhm-agenda__date--range .shhm-agenda__date-label {
	line-height: 1.4;
}

.shhm-agenda__summary-main {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 0.4rem;
}

.shhm-agenda__category {
	font-size: 0.6875rem;
	overflow-wrap: anywhere;
}

.shhm-agenda__title {
	color: var(--shhm-calendar-navy, #002f47);
	font-family: var(--shhm-calendar-heading-font-family, var(--h3_typography-font-family, inherit));
	font-style: var(--shhm-calendar-heading-font-style, var(--h3_typography-font-style, inherit));
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	font-weight: var(--shhm-calendar-heading-font-weight, var(--h3_typography-font-weight, inherit));
	letter-spacing: var(--shhm-calendar-heading-letter-spacing, var(--h3_typography-letter-spacing, inherit));
	line-height: 1.3;
	overflow-wrap: anywhere;
	text-transform: var(--shhm-calendar-heading-text-transform, var(--h3_typography-text-transform, none));
}

.shhm-agenda__time {
	justify-self: end;
	font-size: 0.875rem;
	line-height: 1.4;
	overflow-wrap: anywhere;
	text-align: right;
}

.shhm-agenda__toggle {
	position: relative;
	display: block;
	width: 1.25rem;
	height: 1.25rem;
}

.shhm-agenda__toggle::before,
.shhm-agenda__toggle::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 2px;
	background: currentColor;
	content: "";
	transform: translate(-50%, -50%);
}

.shhm-agenda__toggle::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.shhm-agenda__event[open] .shhm-agenda__toggle::after {
	transform: translate(-50%, -50%) rotate(0deg);
}

.shhm-agenda__details {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 2.25rem;
	padding: 1.875rem clamp(1.25rem, 3vw, 2.375rem) 2.75rem;
}

.shhm-agenda__details-content {
	max-width: 48rem;
	padding-inline-start: calc(min(6.5rem, 12vw) + clamp(1rem, 3vw, 2.5rem));
}

.shhm-agenda__overline {
	margin-bottom: 0.75rem;
}

.shhm-agenda__description {
	margin: 0;
	font-size: var(--shhm-calendar-body-size, 0.9375rem);
	line-height: 1.67;
}

.shhm-agenda__meta {
	display: grid;
	gap: 0.45rem;
	margin: 1.25rem 0 0;
	font-size: 0.875rem;
}

.shhm-agenda__meta-row {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	gap: 0.75rem;
}

.shhm-agenda__meta dt {
	font-weight: 700;
}

.shhm-agenda__meta dd {
	margin: 0;
}

.shhm-agenda__actions {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 1rem;
	padding-top: 0.25rem;
}

.shhm-agenda__calendar-link {
	color: var(--shhm-calendar-petrol, #004e6e);
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.4;
}

.shhm-agenda__more {
	display: flex;
	justify-content: center;
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.shhm-agenda__more-button {
	min-width: min(100%, 13rem);
}

.shhm-agenda__more.is-complete {
	margin-top: 0;
}

/* Colour-coded month overview */

.shhm-month-calendar {
	min-width: 0;
}

.shhm-month-calendar__legend {
	display: flex;
	margin: 0 0 1.5rem;
	padding: 0;
	flex-wrap: wrap;
	gap: 0.65rem 1.25rem;
	list-style: none;
}

.shhm-month-calendar__legend-item {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--shhm-calendar-navy, #002f47);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.shhm-month-calendar__legend-swatch {
	width: 0.875rem;
	height: 0.875rem;
	border: 1px solid var(--shhm-calendar-navy, #002f47);
	background: var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
}

.shhm-month-calendar__weekdays,
.shhm-month-calendar__days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.shhm-month-calendar__weekdays {
	border-block: 1px solid var(--shhm-calendar-border, #dfe1e1);
	border-inline-start: 1px solid var(--shhm-calendar-border, #dfe1e1);
	background: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-month-calendar__weekdays span {
	min-width: 0;
	padding: 0.75rem 0.5rem;
	border-inline-end: 1px solid var(--shhm-calendar-border, #dfe1e1);
	color: var(--shhm-calendar-teal, #006186);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-align: center;
	text-transform: uppercase;
}

.shhm-month-calendar__days {
	margin: 0;
	padding: 0;
	border-inline-start: 1px solid var(--shhm-calendar-border, #dfe1e1);
	list-style: none;
}

.shhm-month-calendar__day {
	min-width: 0;
	min-height: 9rem;
	padding: 0.65rem;
	border-inline-end: 1px solid var(--shhm-calendar-border, #dfe1e1);
	border-block-end: 1px solid var(--shhm-calendar-border, #dfe1e1);
	background: var(--shhm-calendar-white, #ffffff);
}

.shhm-month-calendar__day:nth-child(7n),
.shhm-month-calendar__day:nth-child(7n - 6) {
	background: color-mix(in srgb, var(--shhm-calendar-section, #eeeeee) 45%, var(--shhm-calendar-white, #ffffff));
}

.shhm-month-calendar__day.is-adjacent-month {
	background: color-mix(in srgb, var(--shhm-calendar-section, #eeeeee) 72%, var(--shhm-calendar-white, #ffffff));
	color: var(--shhm-calendar-muted, #5b727d);
}

.shhm-month-calendar__date {
	display: block;
	margin-bottom: 0.65rem;
	color: var(--shhm-calendar-navy, #002f47);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1;
}

.shhm-month-calendar__date-number {
	display: inline-flex;
	width: 1.75rem;
	height: 1.75rem;
	align-items: center;
	justify-content: center;
}

.shhm-month-calendar__day.is-today .shhm-month-calendar__date-number {
	border-radius: 50%;
	background: var(--shhm-calendar-petrol, #004e6e);
	color: var(--shhm-calendar-white, #ffffff);
}

.shhm-month-calendar__date-full {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.shhm-month-calendar__events {
	display: grid;
	margin: 0;
	padding: 0;
	gap: 0.4rem;
	list-style: none;
}

.shhm-month-calendar__event {
	display: block;
	min-width: 0;
	padding: 0.45rem 0.5rem;
	border-inline-start: 4px solid var(--shhm-calendar-event-accent-text, var(--shhm-calendar-navy, #002f47));
	background: var(--shhm-calendar-event-surface, var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476)));
	color: var(--shhm-calendar-event-accent-text, var(--shhm-calendar-navy, #002f47));
	font-size: 0.75rem;
	line-height: 1.3;
	overflow-wrap: anywhere;
	text-decoration: none;
}

.shhm-month-calendar__event:hover,
.shhm-month-calendar__event:focus-visible {
	box-shadow: inset 0 0 0 2px currentColor;
	color: var(--shhm-calendar-event-accent-text, var(--shhm-calendar-navy, #002f47));
	text-decoration: none;
}

.shhm-month-calendar__event-time {
	display: block;
	margin-bottom: 0.15rem;
	font-size: 0.6875rem;
	font-weight: 700;
}

.shhm-month-calendar__event-category {
	display: block;
	margin-bottom: 0.15rem;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.25;
	text-transform: uppercase;
}

.shhm-month-calendar__event-title {
	display: block;
	font-weight: 700;
}

/* Split homepage spotlight */

.shhm-calendar--spotlight {
	background: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-calendar--spotlight.shhm-calendar--panel-only {
	padding: 0;
	background: transparent;
}

.shhm-calendar--spotlight .shhm-calendar__inner {
	display: grid;
	grid-template-columns: minmax(18rem, 0.85fr) minmax(0, 1.45fr);
	gap: clamp(2.5rem, 5.5vw, 5.5rem);
	align-items: center;
}

.shhm-calendar--spotlight .shhm-calendar__results:only-child {
	grid-column: 1 / -1;
}

.shhm-calendar--spotlight .shhm-calendar__header {
	margin: 0;
}

.shhm-calendar--spotlight .shhm-calendar__eyebrow::after {
	display: block;
	width: 4.5rem;
	height: 0.25rem;
	margin-top: 2rem;
	background: var(--shhm-calendar-petrol, #004e6e);
	content: "";
}

.shhm-calendar--spotlight .shhm-calendar__heading {
	margin-top: 2rem;
}

.shhm-spotlight {
	min-width: 0;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--shhm-calendar-navy, #002f47);
	color: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-spotlight__eyebrow,
.shhm-spotlight__category {
	margin: 0;
	color: var(--shhm-calendar-gold, #cbb476);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-transform: uppercase;
}

.shhm-calendar .shhm-spotlight__eyebrow {
	color: var(--shhm-calendar-gold, #cbb476) !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em !important;
	line-height: 1.4 !important;
	text-transform: uppercase !important;
}

.shhm-spotlight__events {
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.shhm-spotlight__event {
	margin: 0;
	padding: 0;
	border-inline-start: 0.3rem solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
}

.shhm-spotlight__event + .shhm-spotlight__event {
	border-block-start: 1px solid var(--shhm-calendar-gold, #cbb476);
}

.shhm-spotlight__event-inner {
	display: grid;
	grid-template-columns: minmax(4.75rem, 0.4fr) minmax(0, 1.6fr);
	gap: clamp(1rem, 2vw, 1.5rem);
	align-items: center;
	padding: 1rem 0 1rem clamp(0.875rem, 1.5vw, 1.125rem);
}

.shhm-spotlight__date {
	display: flex;
	align-items: baseline;
	gap: 0.45rem;
	color: var(--shhm-calendar-gold, #cbb476);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.shhm-spotlight__date-day {
	font-size: clamp(1.5rem, 2.8vw, 2rem);
}

.shhm-spotlight__date-month,
.shhm-spotlight__date-label {
	font-size: 0.875rem;
}

.shhm-spotlight__event-content {
	min-width: 0;
}

.shhm-spotlight__category {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin-bottom: 0.2rem;
	color: var(--shhm-calendar-paper, #f8f8f8);
	font-size: 0.6875rem;
}

.shhm-spotlight__category::before {
	width: 0.65rem;
	height: 0.65rem;
	border: 1px solid var(--shhm-calendar-paper, #f8f8f8);
	background: var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	content: "";
	flex: 0 0 auto;
}

.shhm-calendar .shhm-spotlight__title {
	margin: 0;
	color: var(--shhm-calendar-paper, #f8f8f8) !important;
	font-size: clamp(1.125rem, 2vw, 1.375rem);
	line-height: 1.22;
	overflow-wrap: anywhere;
	text-transform: none !important;
}

.shhm-calendar .shhm-spotlight__title a {
	color: inherit !important;
	text-decoration: none;
}

.shhm-calendar .shhm-spotlight__title a:hover,
.shhm-calendar .shhm-spotlight__title a:focus-visible {
	color: var(--shhm-calendar-gold, #cbb476) !important;
	text-decoration: underline;
}

.shhm-spotlight__meta {
	display: flex;
	margin: 0.25rem 0 0;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	color: var(--shhm-calendar-paper, #f8f8f8);
	font-size: 0.8125rem;
	line-height: 1.4;
}

.shhm-spotlight__meta-separator {
	color: var(--shhm-calendar-gold, #cbb476);
}

/* Compact active and upcoming programme spotlight */

.shhm-calendar--program-spotlight {
	background: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-calendar--program-spotlight.shhm-calendar--panel-only {
	padding: 0;
	background: transparent;
}

.shhm-calendar--program-spotlight .shhm-calendar__inner {
	display: grid;
	grid-template-columns: minmax(18rem, 0.85fr) minmax(0, 1.45fr);
	gap: clamp(2.5rem, 5.5vw, 5.5rem);
	align-items: center;
}

.shhm-calendar--program-spotlight .shhm-calendar__results:only-child {
	grid-column: 1 / -1;
}

.shhm-calendar--program-spotlight .shhm-calendar__header {
	margin: 0;
}

.shhm-program-spotlight {
	min-width: 0;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-block-start: 0.35rem solid var(--shhm-calendar-gold, #cbb476);
	background: var(--shhm-calendar-navy, #002f47);
	color: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-calendar--theme-light .shhm-program-spotlight {
	border: 1px solid var(--shhm-calendar-border, #dfe1e1);
	border-block-start: 0.35rem solid var(--shhm-calendar-petrol, #004e6e);
	background: var(--shhm-calendar-white, #fff);
	color: var(--shhm-calendar-navy, #002f47);
}

.shhm-calendar .shhm-program-spotlight__eyebrow {
	margin: 0;
	color: var(--shhm-calendar-gold, #cbb476) !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em !important;
	line-height: 1.4 !important;
	text-transform: uppercase !important;
}

.shhm-calendar--theme-light .shhm-program-spotlight__eyebrow {
	color: var(--shhm-calendar-petrol, #004e6e) !important;
}

.shhm-program-spotlight__items {
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.shhm-program-spotlight__item {
	margin: 0;
	padding: 0;
	border-inline-start: 0.3rem solid var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
}

.shhm-program-spotlight__item + .shhm-program-spotlight__item {
	border-block-start: 1px solid var(--shhm-calendar-gold, #cbb476);
}

.shhm-calendar--theme-light .shhm-program-spotlight__item + .shhm-program-spotlight__item {
	border-block-start-color: var(--shhm-calendar-border, #dfe1e1);
}

.shhm-program-spotlight__link {
	display: grid;
	grid-template-columns: minmax(5rem, 0.35fr) minmax(0, 1.55fr) auto;
	gap: clamp(0.875rem, 2vw, 1.5rem);
	align-items: center;
	min-height: 6.75rem;
	padding: 1rem clamp(0.25rem, 0.7vw, 0.625rem) 1rem clamp(0.875rem, 1.5vw, 1.125rem);
	color: inherit !important;
	text-decoration: none !important;
}

a.shhm-program-spotlight__link:hover {
	background: color-mix(in srgb, var(--shhm-calendar-paper, #f8f8f8) 7%, transparent);
}

.shhm-calendar--theme-light a.shhm-program-spotlight__link:hover {
	background: var(--shhm-calendar-section, #eee);
}

a.shhm-program-spotlight__link:focus-visible {
	outline: 3px solid var(--shhm-calendar-focus, #308ba4);
	outline-offset: -3px;
}

.shhm-program-spotlight__date {
	display: flex;
	align-items: baseline;
	gap: 0.45rem;
	color: var(--shhm-calendar-gold, #cbb476);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.shhm-calendar--theme-light .shhm-program-spotlight__date {
	color: var(--shhm-calendar-petrol, #004e6e);
}

.shhm-program-spotlight__date-day {
	font-size: clamp(1.7rem, 3.2vw, 2.4rem);
}

.shhm-program-spotlight__date-month {
	font-size: 0.875rem;
}

.shhm-program-spotlight__content {
	display: block;
	min-width: 0;
}

.shhm-program-spotlight__context {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.15rem 0.45rem;
	margin-bottom: 0.25rem;
	color: var(--shhm-calendar-paper, #f8f8f8);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	line-height: 1.35;
	text-transform: uppercase;
}

.shhm-calendar--theme-light .shhm-program-spotlight__context {
	color: var(--shhm-calendar-petrol, #004e6e);
}

.shhm-program-spotlight__swatch {
	width: 0.65rem;
	height: 0.65rem;
	border: 1px solid var(--shhm-calendar-paper, #f8f8f8);
	background: var(--shhm-calendar-event-accent, var(--shhm-calendar-gold, #cbb476));
	flex: 0 0 auto;
}

.shhm-calendar--theme-light .shhm-program-spotlight__swatch {
	border-color: var(--shhm-calendar-navy, #002f47);
}

.shhm-calendar .shhm-program-spotlight__title {
	display: block;
	color: var(--shhm-calendar-paper, #f8f8f8) !important;
	font-family: var(--h3_typography-font-family, inherit);
	font-size: clamp(1.25rem, 2.2vw, 1.65rem) !important;
	font-style: var(--h3_typography-font-style, normal);
	font-weight: var(--h3_typography-font-weight, 400);
	letter-spacing: var(--h3_typography-letter-spacing, normal);
	line-height: 1.18 !important;
	overflow-wrap: anywhere;
	text-transform: none !important;
}

.shhm-calendar--theme-light .shhm-program-spotlight__title {
	color: var(--shhm-calendar-navy, #002f47) !important;
}

.shhm-program-spotlight__meta {
	display: flex;
	margin-top: 0.3rem;
	flex-wrap: wrap;
	gap: 0.2rem 0.45rem;
	color: var(--shhm-calendar-paper, #f8f8f8);
	font-size: 0.8125rem;
	line-height: 1.4;
}

.shhm-calendar--theme-light .shhm-program-spotlight__meta {
	color: var(--shhm-calendar-muted, #596f79);
}

.shhm-program-spotlight__arrow {
	color: var(--shhm-calendar-gold, #cbb476);
	font-size: 1.4rem;
	transition: transform 160ms ease;
}

.shhm-calendar--theme-light .shhm-program-spotlight__arrow {
	color: var(--shhm-calendar-petrol, #004e6e);
}

a.shhm-program-spotlight__link:hover .shhm-program-spotlight__arrow,
a.shhm-program-spotlight__link:focus-visible .shhm-program-spotlight__arrow {
	transform: translateX(0.2rem);
}

/* Tablet and mobile */

@media (max-width: 980px) {
	.shhm-calendar__filters {
		grid-template-columns: 1fr;
	}

	.shhm-calendar__button--filter {
		justify-self: start;
	}

}

/*
 * Embeds may sit in an Avada column that is much narrower than the browser.
 * Container queries make the controls respond to that actual space while the
 * viewport media queries below remain a fallback for older browsers.
 */

@container shhm-calendar-embed (max-width: 62rem) {
	.shhm-calendar__filters {
		grid-template-columns: minmax(0, 1fr);
	}

	.shhm-calendar__button--filter {
		justify-self: start;
	}

	.shhm-month-calendar__day {
		min-height: 7.5rem;
		padding: 0.5rem;
	}

	.shhm-month-calendar__event {
		padding: 0.4rem;
		font-size: 0.6875rem;
	}
}

@container shhm-calendar-embed (max-width: 45rem) {
	.shhm-calendar--spotlight .shhm-calendar__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}

	.shhm-calendar--spotlight .shhm-calendar__header {
		max-width: 35rem;
	}

	.shhm-calendar__filters {
		margin-bottom: 2rem;
		padding: 1.5rem;
	}

	.shhm-agenda__summary {
		grid-template-areas:
			"date toggle"
			"main toggle"
			"time toggle";
		grid-template-columns: minmax(0, 1fr) 1.5rem;
		gap: 0.75rem 1rem;
		padding: 1.5rem;
	}

	.shhm-agenda__date {
		grid-area: date;
	}

	.shhm-agenda__summary-main {
		grid-area: main;
	}

	.shhm-agenda__time {
		grid-area: time;
		justify-self: start;
		text-align: left;
	}

	.shhm-agenda__toggle {
		grid-area: toggle;
		align-self: center;
	}

	.shhm-agenda__details {
		grid-template-columns: minmax(0, 1fr);
		padding: 1.75rem 1.5rem 2.5rem;
	}

	.shhm-agenda__details-content {
		padding-inline-start: 0;
	}

	.shhm-agenda__actions,
	.shhm-agenda__actions .shhm-calendar__button {
		width: 100%;
	}

	.shhm-month-calendar__weekdays {
		display: none;
	}

	.shhm-month-calendar__days {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		border: 0;
		gap: 0.75rem;
	}

	.shhm-month-calendar__day {
		display: none;
		min-height: 0;
		padding: 1rem;
		border: 1px solid var(--shhm-calendar-border, #dfe1e1);
	}

	.shhm-month-calendar__day.has-events,
	.shhm-month-calendar__day.is-today {
		display: block;
	}

	.shhm-month-calendar__day.is-adjacent-month:not(.has-events) {
		display: none;
	}

	.shhm-month-calendar__date-number {
		display: none;
	}

	.shhm-month-calendar__date-full {
		position: static;
		width: auto;
		height: auto;
		margin: 0;
		overflow: visible;
		clip: auto;
		clip-path: none;
		white-space: normal;
	}

	.shhm-month-calendar__event {
		padding: 0.65rem 0.75rem;
		font-size: 0.8125rem;
	}

	.shhm-month-calendar__event-time {
		font-size: 0.75rem;
	}

}

@container shhm-calendar-embed (max-width: 30rem) {
	.shhm-calendar__section-button {
		width: 100%;
		min-height: var(--shhm-calendar-mobile-button-height, 3.9375rem);
	}

	.shhm-spotlight__event-inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.75rem;
	}

	.shhm-spotlight__date {
		margin-bottom: 0.25rem;
	}

	.shhm-calendar--program-spotlight .shhm-calendar__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}

	.shhm-program-spotlight__link {
		grid-template-columns: minmax(3.75rem, auto) minmax(0, 1fr);
		gap: 0.75rem;
	}

	.shhm-program-spotlight__arrow {
		display: none;
	}

	.shhm-calendar__month-nav {
		grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem;
		gap: 0.5rem;
	}

	.shhm-calendar__month-link {
		justify-content: center;
		font-size: 0;
	}

	.shhm-calendar__month-link > span[aria-hidden="true"] {
		font-size: 1.25rem;
	}

	.shhm-calendar__search-row {
		flex-direction: column;
		gap: 0.5rem;
	}

	.shhm-calendar__filter-submit,
	.shhm-calendar__button--filter {
		width: 100%;
	}

	.shhm-calendar__filter-option {
		flex: 1 1 100%;
		justify-content: center;
	}

	.shhm-calendar__select-filters {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 720px) {
	.shhm-calendar {
		padding: var(--shhm-calendar-mobile-section-padding, 3.75rem 1.25rem);
	}

	.shhm-calendar--spotlight .shhm-calendar__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}

	.shhm-calendar--spotlight .shhm-calendar__header {
		max-width: 35rem;
	}

	.shhm-calendar--program-spotlight .shhm-calendar__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}

	.shhm-calendar--program-spotlight .shhm-calendar__header {
		max-width: 35rem;
	}

	.shhm-program-spotlight__link {
		grid-template-columns: minmax(4rem, auto) minmax(0, 1fr) auto;
		gap: 0.8rem;
		min-height: 6rem;
	}

	.shhm-calendar__header {
		margin-bottom: 2.5rem;
	}

	.shhm-calendar .shhm-calendar__heading {
		font-size: var(--shhm-calendar-mobile-heading-size, 2.125rem) !important;
		line-height: 1.12 !important;
	}

	.shhm-calendar__month-nav {
		grid-template-columns: 2.75rem 1fr 2.75rem;
		gap: 0.5rem;
	}

	.shhm-calendar__month-link {
		justify-content: center;
		font-size: 0;
	}

	.shhm-calendar__month-link > span[aria-hidden="true"] {
		font-size: 1.25rem;
	}

	.shhm-calendar__filters {
		margin-bottom: 2rem;
		padding: 1.5rem;
	}

	.shhm-calendar__search-row {
		flex-direction: column;
		gap: 0.5rem;
	}

	.shhm-calendar__filter-submit,
	.shhm-calendar__button--filter {
		width: 100%;
	}

	.shhm-calendar__filter-option {
		flex: 1 1 100%;
		justify-content: center;
		text-align: center;
	}

	.shhm-calendar__select-filters {
		grid-template-columns: 1fr;
	}

	.shhm-calendar__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.5rem;
	}

	.shhm-event-card {
		min-height: 0;
		padding: var(--shhm-calendar-mobile-card-padding, 2.375rem 1.875rem);
	}

	.shhm-event-card__title {
		font-size: var(--shhm-calendar-mobile-card-title-size, 1.3125rem);
		line-height: 1.25;
	}

	.shhm-event-card__button {
		width: 100%;
		min-height: var(--shhm-calendar-mobile-button-height, 3.9375rem);
	}

	.shhm-agenda__summary {
		grid-template-areas:
			"date toggle"
			"main toggle"
			"time toggle";
		grid-template-columns: minmax(0, 1fr) 1.5rem;
		gap: 0.75rem 1rem;
		padding: 1.5rem;
	}

	.shhm-agenda__date {
		grid-area: date;
	}

	.shhm-agenda__summary-main {
		grid-area: main;
	}

	.shhm-agenda__time {
		grid-area: time;
		justify-self: start;
		text-align: left;
	}

	.shhm-agenda__toggle {
		grid-area: toggle;
		align-self: center;
	}

	.shhm-agenda__details {
		grid-template-columns: 1fr;
		padding: 1.75rem 1.5rem 2.5rem;
	}

	.shhm-agenda__details-content {
		padding-inline-start: 0;
	}

	.shhm-agenda__actions,
	.shhm-agenda__actions .shhm-calendar__button {
		width: 100%;
	}

	.shhm-month-calendar__weekdays {
		display: none;
	}

	.shhm-month-calendar__days {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		border: 0;
		gap: 0.75rem;
	}

	.shhm-month-calendar__day {
		display: none;
		min-height: 0;
		padding: 1rem;
		border: 1px solid var(--shhm-calendar-border, #dfe1e1);
	}

	.shhm-month-calendar__day.has-events,
	.shhm-month-calendar__day.is-today {
		display: block;
	}

	.shhm-month-calendar__day.is-adjacent-month:not(.has-events) {
		display: none;
	}

	.shhm-month-calendar__date-number {
		display: none;
	}

	.shhm-month-calendar__date-full {
		position: static;
		width: auto;
		height: auto;
		margin: 0;
		overflow: visible;
		clip: auto;
		clip-path: none;
		white-space: normal;
	}

	.shhm-month-calendar__event {
		padding: 0.65rem 0.75rem;
		font-size: 0.8125rem;
	}

	.shhm-month-calendar__event-time {
		font-size: 0.75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.shhm-calendar *,
	.shhm-calendar *::before,
	.shhm-calendar *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

@media print {
	.shhm-calendar {
		padding: 0;
		background: var(--shhm-calendar-white, #ffffff);
	}

	.shhm-calendar__filters,
	.shhm-calendar__month-nav,
	.shhm-calendar__button,
	.shhm-agenda__calendar-link {
		display: none !important;
	}

	.shhm-calendar__grid {
		grid-template-columns: 1fr;
	}

	.shhm-event-card,
	.shhm-agenda__event {
		break-inside: avoid;
		border: 1px solid var(--shhm-calendar-border, #dfe1e1);
	}
}
