.athsl-directory {
	--athsl-directory-bg: var(--surface-1, var(--wp--preset--color--base, #f6f9ff));
	--athsl-directory-surface: var(--surface-2, var(--wp--preset--color--base, #fff));
	--athsl-directory-raised: var(--surface-0, #fff);
	--athsl-directory-soft: var(--surface-3, var(--wp--preset--color--contrast-2, #edf4fb));
	--athsl-directory-text: var(--text-high, var(--wp--preset--color--contrast, #172033));
	--athsl-directory-muted: var(--text-mid, var(--wp--preset--color--contrast-2, #4b5b72));
	--athsl-directory-border: var(--border, var(--border-color, #d7e0ed));
	--athsl-directory-accent: var(--accent, var(--wp--preset--color--primary, #2d5bd1));
	--athsl-directory-success: var(--status-success, #147a52);
	--athsl-directory-warning: var(--status-warning, #9a6700);
	--athsl-directory-focus: var(--focus-ring, var(--athsl-directory-accent));
	--athsl-directory-shadow: var(--shadow-md, 0 12px 28px color-mix(in srgb, var(--athsl-directory-text) 12%, transparent));
	background: var(--athsl-directory-bg);
	border: 1px solid var(--athsl-directory-border);
	border-radius: var(--radius-lg, 16px);
	box-sizing: border-box;
	color: var(--athsl-directory-text);
	margin: clamp(1.25rem, 4vw, 3rem) auto;
	max-width: 1600px;
	padding: clamp(.75rem, 2vw, 1.25rem);
	width: calc(100% - clamp(1rem, 5vw, 5rem));
}

.athsl-directory *,
.athsl-directory *::before,
.athsl-directory *::after {
	box-sizing: border-box;
}
.athsl-directory__view { min-height: 12rem; position: relative; }
.athsl-directory__view.is-loading { cursor: progress; }
.athsl-directory__view.is-loading::before { background: color-mix(in srgb, var(--athsl-directory-surface) 68%, transparent); content: ''; inset: 0; position: absolute; z-index: 5; }
.athsl-directory__view.is-loading::after { animation: athsl-directory-spin .75s linear infinite; border: 3px solid color-mix(in srgb, var(--athsl-directory-accent) 20%, transparent); border-radius: 50%; border-top-color: var(--athsl-directory-accent); content: ''; height: 2rem; left: 50%; position: absolute; top: 5rem; transform: translateX(-50%); width: 2rem; z-index: 6; }
@keyframes athsl-directory-spin { to { transform: translateX(-50%) rotate(360deg); } }

.athsl-directory__hero,
.athsl-directory__locations,
.athsl-directory__mapPanel,
.athsl-directory__calendarPanel {
	background: var(--athsl-directory-surface);
	border: 1px solid var(--athsl-directory-border);
	border-radius: var(--radius, 12px);
}

.athsl-directory__hero {
	align-items: start;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	padding: clamp(1rem, 3vw, 1.7rem);
}

.athsl-directory__hero h2,
.athsl-directory h3 {
	color: var(--athsl-directory-text);
	margin: 0;
}

.athsl-directory__hero h2 {
	font-size: clamp(1.35rem, 3vw, 2.15rem);
	line-height: 1.12;
}

.athsl-directory__hero p {
	color: var(--athsl-directory-muted);
	margin: .4rem 0 0;
	max-width: 760px;
}

.athsl-directory__eyebrow {
	color: var(--athsl-directory-accent);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .08em;
	margin: 0 0 .35rem;
	text-transform: uppercase;
}

.athsl-directory__count {
	background: color-mix(in srgb, var(--athsl-directory-accent) 10%, var(--athsl-directory-surface));
	border: 1px solid var(--athsl-directory-border);
	border-radius: 999px;
	color: var(--athsl-directory-accent);
	font-size: .78rem;
	font-weight: 800;
	padding: .4rem .65rem;
	white-space: nowrap;
}

.athsl-directory__layout {
	align-items: stretch;
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(260px, .72fr) minmax(0, 1.55fr);
	margin-top: 1rem;
}

.athsl-directory__locations,
.athsl-directory__mapPanel,
.athsl-directory__calendarPanel {
	min-width: 0;
	padding: clamp(.85rem, 2vw, 1.15rem);
}

.athsl-directory__sectionHead {
	align-items: start;
	display: flex;
	gap: .75rem;
	justify-content: space-between;
	margin-bottom: .8rem;
}

.athsl-directory__sectionHead span {
	color: var(--athsl-directory-muted);
	display: block;
	font-size: .8rem;
	margin-top: .25rem;
}

.athsl-directory__locationList,
.athsl-directory__offeringList {
	display: grid;
	gap: .55rem;
}

.athsl-directory__location,
.athsl-directory__offering {
	background: var(--athsl-directory-raised);
	border: 1px solid var(--athsl-directory-border);
	border-radius: var(--control-radius, 8px);
	color: inherit;
	display: grid;
	gap: .2rem;
	padding: .7rem;
	position: relative;
	text-decoration: none;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.athsl-directory__location:hover,
.athsl-directory__location:focus-visible,
.athsl-directory__offering:hover,
.athsl-directory__offering:focus-visible,
.athsl-directory__location.is-selected,
.athsl-directory__offering.is-selected {
	border-color: var(--athsl-directory-accent);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--athsl-directory-accent) 16%, transparent), 0 10px 24px color-mix(in srgb, var(--athsl-directory-accent) 12%, transparent);
	outline: none;
}

.athsl-directory__location:hover,
.athsl-directory__offering:hover {
	transform: translateY(-1px);
}

.athsl-directory__location:focus-visible,
.athsl-directory__offering:focus-visible,
.athsl-directory__dayLink:focus-visible,
.athsl-directory__monthNav a:focus-visible,
.athsl-directory__dayReset:focus-visible {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--athsl-directory-focus) 30%, transparent);
	outline: 2px solid var(--athsl-directory-focus);
	outline-offset: 2px;
}

.athsl-directory__location strong,
.athsl-directory__offering strong {
	color: var(--athsl-directory-text);
	font-size: 1.3rem;
}

.athsl-directory__location span,
.athsl-directory__location small,
.athsl-directory__offering span,
.athsl-directory__offering small {
	color: var(--athsl-directory-muted);
	font-size: 1rem;
}

.athsl-directory__typePill {
	align-self: start;
	background: color-mix(in srgb, var(--athsl-directory-accent) 10%, var(--athsl-directory-surface));
	border: 1px solid color-mix(in srgb, var(--athsl-directory-accent) 30%, var(--athsl-directory-border));
	border-radius: 999px;
	color: var(--athsl-directory-accent) !important;
	display: inline-flex;
	font-size: .68rem !important;
	font-weight: 800;
	padding: .2rem .45rem;
	width: fit-content;
}

.athsl-directory__map {
	background: var(--athsl-directory-soft);
	border: 1px solid var(--athsl-directory-border);
	border-radius: var(--control-radius, 8px);
	min-height: 360px;
	overflow: hidden;
}

.athsl-directory__mapFallback {
	color: var(--athsl-directory-muted);
	padding: 1rem;
}

.athsl-directory__calendarPanel {
	margin-top: 1rem;
}

.athsl-directory__calendarPanel>.athsl-directory__sectionHead {
	align-items: center;
}

.athsl-directory__monthNav {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	justify-content: end;
}

.athsl-directory__monthNav a {
	background: var(--athsl-directory-raised);
	border: 1px solid var(--athsl-directory-border);
	border-radius: 999px;
	color: var(--athsl-directory-accent);
	font-size: .75rem;
	font-weight: 800;
	padding: .5rem .75rem;
	text-decoration: none;
	transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.athsl-directory__monthNav a:hover {
	background: color-mix(in srgb, var(--athsl-directory-accent) 8%, var(--athsl-directory-raised));
	border-color: var(--athsl-directory-accent);
	transform: translateY(-1px);
}

.athsl-directory__monthNav strong {
	background: var(--athsl-directory-soft);
	border: 1px solid var(--athsl-directory-border);
	border-radius: 999px;
	font-size: .85rem;
	min-width: 8.25rem;
	padding: .5rem .75rem;
	text-align: center;
}

.athsl-directory__offeringList {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin-bottom: .85rem;
}

.athsl-directory__calendarMeta {
	align-items: center;
	background: linear-gradient(105deg, color-mix(in srgb, var(--athsl-directory-accent) 9%, var(--athsl-directory-surface)), var(--athsl-directory-soft));
	border: 1px solid var(--athsl-directory-border);
	border-left: 4px solid var(--athsl-directory-accent);
	border-radius: var(--control-radius, 8px);
	display: flex;
	gap: .75rem;
	justify-content: space-between;
	margin-bottom: .85rem;
	padding: .75rem .85rem;
}

.athsl-directory__calendarMeta strong {
	font-size: .95rem;
	letter-spacing: -.01em;
}

.athsl-directory__calendarMeta span {
	color: var(--athsl-directory-muted);
	font-size: .76rem;
}

.athsl-directory__calendar {
	background: var(--athsl-directory-border);
	border: 1px solid var(--athsl-directory-border);
	border-radius: var(--radius, 12px);
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	overflow: hidden;
}

.athsl-directory__weekday {
	background: linear-gradient(180deg, var(--athsl-directory-soft), color-mix(in srgb, var(--athsl-directory-soft) 78%, var(--athsl-directory-surface)));
	color: var(--athsl-directory-muted);
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: .08em;
	padding: .7rem .4rem;
	text-align: center;
	text-transform: uppercase;
}

.athsl-directory__day {
	background: var(--athsl-directory-raised);
	display: grid;
	gap: .25rem;
	min-height: 102px;
	padding: .6rem;
	position: relative;
	transition: filter .18s ease, box-shadow .18s ease;
}

.athsl-directory__day:nth-child(7n) {
	border-right: 0;
}

.athsl-directory__dayLink {
	align-content: start;
	color: inherit;
	display: grid;
	gap: .38rem;
	min-height: 100%;
	text-decoration: none;
}

.athsl-directory__dayLink:hover,
.athsl-directory__dayLink:hover {
	color: inherit;
}

.athsl-directory__day:hover {
	filter: brightness(.98);
}

.athsl-directory__day.is-selected {
	box-shadow: inset 0 0 0 3px var(--athsl-directory-accent), inset 0 0 0 5px color-mix(in srgb, var(--athsl-directory-accent) 12%, transparent);
	z-index: 1;
}

.athsl-directory__day strong {
	align-items: center;
	display: inline-flex;
	font-size: 1.5rem;
	height: 1.7rem;
	justify-content: center;
	width: 1.7rem;
}

.athsl-directory__day span {
	align-items: center;
	border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
	border-radius: 999px;
	display: inline-flex;
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.1;
	padding: .22rem .42rem;
	width: fit-content;
}

.athsl-directory__day small {
	color: var(--athsl-directory-muted);
	font-size: .9rem;
	line-height: 1.2;
}

.athsl-directory__day.is-available,
.athsl-directory__day.is-open {
	background: linear-gradient(145deg, color-mix(in srgb, var(--athsl-directory-success) 10%, var(--athsl-directory-raised)), var(--athsl-directory-raised));
}

.athsl-directory__day.is-available span {
	background: color-mix(in srgb, var(--athsl-directory-success) 12%, var(--athsl-directory-raised));
	color: var(--athsl-directory-success);
}

.athsl-directory__day.is-open span {
	background: color-mix(in srgb, var(--athsl-directory-accent) 10%, var(--athsl-directory-raised));
	color: var(--athsl-directory-accent);
}

.athsl-directory__day.is-scheduled {
	background: linear-gradient(145deg, color-mix(in srgb, var(--athsl-directory-accent) 15%, var(--athsl-directory-raised)), var(--athsl-directory-raised));
}

.athsl-directory__day.is-scheduled span {
	background: color-mix(in srgb, var(--athsl-directory-accent) 14%, var(--athsl-directory-raised));
	color: var(--athsl-directory-accent);
}

.athsl-directory__day.is-blackout {
	background: linear-gradient(145deg, color-mix(in srgb, var(--athsl-directory-warning) 16%, var(--athsl-directory-raised)), var(--athsl-directory-raised));
}

.athsl-directory__day.is-blackout span {
	background: color-mix(in srgb, var(--athsl-directory-warning) 14%, var(--athsl-directory-raised));
	color: var(--athsl-directory-warning);
}

.athsl-directory__day.is-closed,
.athsl-directory__day.is-empty {
	background: var(--athsl-directory-soft);
}

.athsl-directory__legend {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin-top: .8rem;
}

.athsl-directory__legend span {
	background: var(--athsl-directory-soft);
	border: 1px solid var(--athsl-directory-border);
	border-radius: 999px;
	color: var(--athsl-directory-muted);
	font-size: .7rem;
	padding: .3rem .5rem;
}

.athsl-directory__legend span::before {
	background: currentColor;
	border-radius: 999px;
	content: '';
	display: inline-block;
	height: .55rem;
	margin-right: .3rem;
	width: .55rem;
}

.athsl-directory__legend .is-available {
	color: var(--athsl-directory-success);
}

.athsl-directory__legend .is-scheduled {
	color: var(--athsl-directory-accent);
}

.athsl-directory__legend .is-blackout {
	color: var(--athsl-directory-warning);
}

.athsl-directory__legend .is-closed {
	color: var(--athsl-directory-muted);
}

.athsl-directory__daily {
	background: linear-gradient(145deg, var(--athsl-directory-raised), var(--athsl-directory-surface));
	border: 1px solid var(--athsl-directory-border);
	border-radius: var(--radius, 12px);
	box-shadow: var(--athsl-directory-shadow);
	margin-top: 1rem;
	padding: clamp(.85rem, 2vw, 1.1rem);
}

.athsl-directory__dailyHead {
	align-items: start;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: .8rem;
}

.athsl-directory__dailyHead h3 {
	font-size: clamp(1.05rem, 2vw, 1.35rem);
	margin: 0;
}

.athsl-directory__dailyHead span {
	color: var(--athsl-directory-muted);
	display: block;
	font-size: .78rem;
	margin-top: .25rem;
}

.athsl-directory__dayReset {
	background: var(--athsl-directory-raised);
	border: 1px solid var(--athsl-directory-border);
	border-radius: 999px;
	color: var(--athsl-directory-accent);
	font-size: .76rem;
	font-weight: 800;
	padding: .5rem .7rem;
	text-decoration: none;
	transition: background .18s ease, border-color .18s ease;
	white-space: nowrap;
}

.athsl-directory__dayReset:hover {
	background: color-mix(in srgb, var(--athsl-directory-accent) 8%, var(--athsl-directory-raised));
	border-color: var(--athsl-directory-accent);
}

.athsl-directory__dailyScroll {
	border: 1px solid var(--athsl-directory-border);
	border-radius: var(--control-radius, 8px);
	max-width: 100%;
	overflow-x: auto;
}

.athsl-directory__dailyTable {
	border-collapse: separate;
	border-spacing: 0;
	min-width: 720px;
	width: 100%;
}

.athsl-directory__dailyTable th,
.athsl-directory__dailyTable td {
	border-bottom: 1px solid var(--athsl-directory-border);
	border-right: 1px solid var(--athsl-directory-border);
	padding: .65rem;
	text-align: left;
	vertical-align: top;
}

.athsl-directory__dailyTable tr:last-child th,
.athsl-directory__dailyTable tr:last-child td {
	border-bottom: 0;
}

.athsl-directory__dailyTable th:last-child,
.athsl-directory__dailyTable td:last-child {
	border-right: 0;
}

.athsl-directory__dailyTable thead th {
	background: linear-gradient(180deg, var(--athsl-directory-soft), color-mix(in srgb, var(--athsl-directory-soft) 78%, var(--athsl-directory-surface)));
	color: var(--athsl-directory-text);
	font-size: 1.2rem;
	min-width: 150px;
	position: sticky;
	top: 0;
	z-index: 2;
}

.athsl-directory__dailyTable thead th:first-child,
.athsl-directory__dailyTable tbody th {
	background: var(--athsl-directory-surface);
	box-shadow: 6px 0 10px color-mix(in srgb, var(--athsl-directory-text) 8%, transparent);
	min-width: 105px;
	position: sticky;
	left: 0;
	z-index: 1;
}

.athsl-directory__dailyTable thead th:first-child {
	box-shadow: 6px 0 10px color-mix(in srgb, var(--athsl-directory-text) 8%, transparent);
	left: 0;
	width: 15%;
	z-index: 3;
}

.athsl-directory__dailyTable thead th strong,
.athsl-directory__dailyTable thead th small,
.athsl-directory__dailyTable thead th em {
	display: block;
}

.athsl-directory__dailyTable thead th small {
	color: var(--athsl-directory-muted);
	font-size: 1rem;
	font-weight: 500;
	margin-top: .3rem;
}

.athsl-directory__dailyTable thead th em {
	color: var(--athsl-directory-muted);
	font-size: 1rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.35;
	margin-top: .3rem;
}

.athsl-directory__dailyTable tbody th {
	color: var(--athsl-directory-muted);
	font-size: 1.1rem;
	font-weight: 800;
	white-space: nowrap;
}

.athsl-directory__dailyTable td {
	background: var(--athsl-directory-soft);
	min-width: 150px;
	transition: filter .18s ease;
}

.athsl-directory__dailyTable td:hover {
	filter: brightness(.98);
}

.athsl-directory__dailyTable td.is-available {
	background: color-mix(in srgb, var(--athsl-directory-success) 10%, var(--athsl-directory-raised));
	border-left: 3px solid var(--athsl-directory-success);
}

.athsl-directory__dailyTable td.is-open {
	background: color-mix(in srgb, var(--athsl-directory-accent) 8%, var(--athsl-directory-raised));
	border-left: 3px solid var(--athsl-directory-accent);
}

.athsl-directory__dailyTable td.is-scheduled {
	background: color-mix(in srgb, var(--athsl-directory-accent) 17%, var(--athsl-directory-raised));
	border-left: 3px solid var(--athsl-directory-accent);
}

.athsl-directory__dailyTable td.is-blackout {
	background: color-mix(in srgb, var(--athsl-directory-warning) 14%, var(--athsl-directory-raised));
	border-left: 3px solid var(--athsl-directory-warning);
}

.athsl-directory__dailyTable td.is-closed {
	border-left: 3px solid var(--athsl-directory-muted);
}

.athsl-directory__slotStatus {
	background: color-mix(in srgb, currentColor 10%, var(--athsl-directory-raised));
	border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
	border-radius: 999px;
	display: inline-flex;
	font-size: 1rem;
	font-weight: 800;
	padding: .25rem .45rem;
}

.athsl-directory__dailyTable td.is-available .athsl-directory__slotStatus {
	color: var(--athsl-directory-success);
}

.athsl-directory__dailyTable td.is-open .athsl-directory__slotStatus {
	color: var(--athsl-directory-accent);
}

.athsl-directory__dailyTable td.is-scheduled .athsl-directory__slotStatus {
	color: var(--athsl-directory-accent);
}

.athsl-directory__dailyTable td.is-blackout .athsl-directory__slotStatus {
	color: var(--athsl-directory-warning);
}

.athsl-directory__dailyTable td.is-closed .athsl-directory__slotStatus {
	color: var(--athsl-directory-muted);
}

.athsl-directory__dailyTable td small {
	color: var(--athsl-directory-muted);
	display: block;
	font-size: .9rem;
	line-height: 1.3;
	margin-top: .25rem;
}

.athsl-directory__dailyLegend {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem 1rem;
	margin-top: .7rem;
}

.athsl-directory__dailyLegend span {
	color: var(--athsl-directory-muted);
	font-size: 1.1rem;
}

.athsl-directory__dailyLegend span::before {
	background: currentColor;
	border-radius: 999px;
	content: '';
	display: inline-block;
	height: .5rem;
	margin-right: .3rem;
	width: .5rem;
}

.athsl-directory__dailyLegend .is-available {
	color: var(--athsl-directory-success);
}

.athsl-directory__dailyLegend .is-open {
	color: var(--athsl-directory-accent);
}

.athsl-directory__dailyLegend .is-scheduled {
	color: var(--athsl-directory-accent);
}

.athsl-directory__dailyLegend .is-blackout {
	color: var(--athsl-directory-warning);
}

.athsl-directory__empty {
	color: var(--athsl-directory-muted);
}

@media (max-width: 900px) {
	.athsl-directory__layout {
		grid-template-columns: 1fr;
	}

	.athsl-directory__map {
		min-height: 300px;
	}
}

@media (max-width: 640px) {
	.athsl-directory {
		width: calc(100% - 1rem);
	}

	.athsl-directory__hero,
	.athsl-directory__calendarPanel>.athsl-directory__sectionHead,
	.athsl-directory__calendarMeta,
	.athsl-directory__dailyHead {
		display: grid;
	}

	.athsl-directory__monthNav {
		justify-content: start;
	}

	.athsl-directory__calendar {
		display: block;
	}

	.athsl-directory__weekday,
	.athsl-directory__day.is-empty {
		display: none;
	}

	.athsl-directory__day {
		border-right: 0;
		min-height: 72px;
	}

	.athsl-directory__calendarMeta {
		align-items: start;
	}

	.athsl-directory__offeringList {
		grid-template-columns: 1fr;
	}
}
