/**
 * 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-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-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-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-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-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-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-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__search-input::placeholder {
	color: var(--shhm-calendar-muted, #5b727d);
	opacity: 1;
}

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

/* Metadata on the theme-rendered single event page */

.shhm-calendar.shhm-single-event-meta {
	width: 100%;
	margin: 0 0 2rem;
	padding: clamp(1.5rem, 3vw, 2.375rem);
	border-inline-start: 5px solid var(--shhm-calendar-gold, #cbb476);
	background: var(--shhm-calendar-paper, #f8f8f8);
}

.shhm-single-event-meta .shhm-calendar__eyebrow {
	margin-bottom: 1.25rem;
}

.shhm-single-event-meta__details {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 2rem;
	margin: 0;
}

.shhm-single-event-meta__details > div {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	gap: 0.75rem;
}

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

.shhm-single-event-meta__details dd {
	margin: 0;
}

.shhm-single-event-meta__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.85rem 1.25rem;
	margin-top: 1.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 {
	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;
}

/* 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(2rem, 4.5vw, 3.5rem);
	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.75rem 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(6.75rem, 0.52fr) minmax(0, 1.48fr);
	gap: clamp(1.25rem, 3vw, 2.5rem);
	align-items: center;
	padding: 1.35rem 0 1.35rem clamp(1rem, 2vw, 1.5rem);
}

.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.75rem, 3.5vw, 2.25rem);
}

.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.3rem;
	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.25rem, 2.5vw, 1.75rem);
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.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.35rem 0 0;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	color: var(--shhm-calendar-paper, #f8f8f8);
	font-size: 0.875rem;
	line-height: 1.45;
}

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

/* 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__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__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-single-event-meta__details {
		grid-template-columns: 1fr;
	}

	.shhm-single-event-meta__actions,
	.shhm-single-event-meta__actions .shhm-calendar__button {
		width: 100%;
	}

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