/*
 * Public UI CSS
 * Architecture: SMACSS sections with BEM-style modules.
 */

/* Base */

:root {
	--amazonite: var(--wa-color-cyan, hsl(167, 65%, 55%));
	--amazonite-light: var(--wa-color-cyan-60, hsl(167, 65%, 65%));
	--ruby: var(--wa-color-red, hsl(360, 76%, 50%));
	--ruby-light: var(--wa-color-red-60, hsl(360, 76%, 60%));
	--amber: var(--wa-color-brand, var(--wa-color-orange, #ea580c));
	--amber-light: var(--wa-color-orange-60, #f97316);
	--citrine: var(--wa-color-yellow, hsl(44, 100%, 48%));
	--citrine-light: var(--wa-color-yellow-60, hsl(44, 100%, 58%));
	--emerald: var(--wa-color-green, hsl(89, 100%, 42%));
	--emerald-light: var(--wa-color-green-60, hsl(89, 100%, 52%));
	--apatite: var(--wa-color-cyan-60, hsl(197, 100%, 60%));
	--apatite-light: var(--wa-color-cyan-70, hsl(197, 100%, 70%));
	--sapphire: var(--wa-color-blue, hsl(206, 100%, 50%));
	--sapphire-light: var(--wa-color-blue-60, hsl(206, 100%, 60%));
	--iolite: var(--wa-color-indigo, hsl(253, 100%, 61%));
	--iolite-light: var(--wa-color-indigo-60, hsl(253, 100%, 71%));
	--amethyst: var(--wa-color-purple-50, hsl(287, 76%, 50%));
	--amethyst-light: var(--wa-color-purple-60, hsl(287, 76%, 60%));
	--garnet: var(--wa-color-danger, hsl(360, 100%, 32%));
	--garnet-light: var(--wa-color-danger-60, hsl(360, 100%, 42%));
	--copper: var(--wa-color-orange-40, hsl(30, 100%, 44%));
	--copper-light: var(--wa-color-orange-50, hsl(30, 100%, 54%));
	--sun: var(--wa-color-warning, hsl(55, 100%, 66%));
	--sun-light: var(--wa-color-warning-70, hsl(55, 100%, 76%));
	--forest: var(--wa-color-success, hsl(90, 100%, 20%));
	--forest-light: var(--wa-color-success-60, hsl(90, 100%, 30%));
	--ocean: var(--wa-color-cyan-40, hsl(176, 95%, 35%));
	--ocean-light: var(--wa-color-cyan-50, hsl(176, 95%, 45%));
	--blue-hour: var(--wa-color-text-link, hsl(210, 40%, 50%));
	--blue-hour-light: var(--wa-color-blue-60, hsl(210, 40%, 60%));
	--sky: var(--wa-color-blue-80, hsl(206, 100%, 85%));
	--sky-light: var(--wa-color-blue-90, hsl(206, 100%, 93%));
	--haze: var(--wa-color-purple-70, hsl(253, 60%, 73%));
	--haze-light: var(--wa-color-purple-80, hsl(253, 60%, 83%));
	--purple: var(--wa-color-purple-30, #4a1d96);
	--purple-light: var(--wa-color-purple-50, #8b5cf6);
	--black: var(--wa-color-gray-05, #000);
	--offblack: var(--wa-color-gray-10, #111);
	--dark: var(--wa-color-gray-10, #1a1a1a);
	--gray: var(--wa-color-text-normal, #333);
	--graphite: var(--wa-color-text-quiet, #595959);
	--mid-tone: var(--wa-color-gray-40, #6b7280);
	--mid: var(--wa-color-gray-50, #808080);
	--mid-light: var(--wa-color-gray-60, #a6a6a6);
	--metal: var(--wa-color-surface-border, #d8d8d8);
	--metal--light: var(--wa-color-gray-90, #f0f0f0);
	--cloud: var(--wa-color-surface-lowered, #f3f4f6);
	--offwhite: var(--wa-color-surface-default, #fafafa);
	--white: var(--wa-color-surface-raised, #fff);
	--info: var(--wa-color-brand, var(--sapphire));
	--danger: var(--wa-color-danger, var(--garnet));
	--success: var(--wa-color-success, var(--forest));
	--caution: var(--wa-color-warning, var(--sun));
	--shadow: color-mix(in srgb, var(--wa-color-shadow, #000), transparent 80%);
	--shadow--faint: color-mix(in srgb, var(--wa-color-shadow, #000), transparent 90%);
}

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

html {
	font-size: 100%;
	--site-header-offset: 4.1rem;
	--lesson-study-help-offset: 6rem;
	--lesson-sticky-offset: calc(var(--site-header-offset) + 1rem);
	--lesson-study-sticky-offset: calc(var(--site-header-offset) + var(--lesson-study-help-offset) + 1rem);
}

body {
	margin: 0;
	min-height: 100vh;
	background: var(--offwhite, #fafafa);
	color: var(--gray, #333);
	font-family: Helvetica, Arial, sans-serif;
	font-size: 1rem;
	line-height: 1.55;
}

img,
svg {
	display: block;
	max-width: 100%;
}

a {
	color: var(--blue-hour, #4d80b3);
}

a:hover,
a:focus {
	color: var(--blue-hour-light, #6699cc);
}

/* Layout */

.l-container {
	width: min(88vw, 80rem);
	margin-inline: auto;
}

.l-stack {
	display: grid;
	gap: var(--l-stack-gap, 1.25rem);
}

.l-stack--sm {
	--l-stack-gap: 0.75rem;
}

.l-stack--lg {
	--l-stack-gap: 2rem;
}

.l-cluster {
	display: flex;
	flex-wrap: wrap;
	gap: var(--l-cluster-gap, 0.75rem);
	align-items: center;
}

.l-cluster--end {
	justify-content: flex-end;
}

.l-grid {
	display: grid;
	gap: var(--l-grid-gap, 1rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--l-grid-min, 16rem)), 1fr));
}

.l-grid--two {
	--l-grid-min: 15rem;
}

.l-grid--teachers {
	--l-grid-min: 16rem;
}

.l-split {
	display: grid;
	gap: var(--l-split-gap, 1.5rem);
}

@media (min-width: 56rem) {
	.l-split--half {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: stretch;
	}

	.l-split--align-start {
		align-items: start;
	}

	.l-split--lesson-section {
		--l-split-gap: clamp(2rem, 4vw, 3rem);
		grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
		align-items: start;
	}

	.l-split--hero-actions {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: end;
	}

	.l-split--content-rail {
		grid-template-columns: minmax(0, 2fr) minmax(17.5rem, 1fr);
		align-items: start;
	}
}

.l-detail-rail {
	display: grid;
	gap: 1.25rem;
}

.ui-shell {
	display: flex;
	min-height: 100vh;
	flex-direction: column;
}

.ui-main {
	flex: 1;
	padding-block: clamp(1rem, 3vw, 2rem);
}

/* Modules */

.m-site-header {
	position: sticky;
	top: -1px;
	z-index: 50;
	width: 100%;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	background: var(--purple, #4a1d96);
	color: var(--white, #fff);
	box-shadow: 0 0.5rem 1.25rem rgba(17, 24, 39, 0.12);
}

.m-site-header::before {
	content: '';
	position: absolute;
	right: 0;
	bottom: 100%;
	left: 0;
	height: 2px;
	background: inherit;
}

.m-site-header__inner {
	display: flex;
	flex-wrap: nowrap;
	gap: 1rem;
	align-items: center;
	padding-block: 0.55rem;
}

.m-site-header__logo {
	display: grid;
	width: 3rem;
	height: 3rem;
	flex: 0 0 auto;
	place-items: center;
	padding: 0.25rem;
	border-radius: 0.75rem;
	background: var(--white, #fff);
}

.m-site-header__logo img {
	width: 2.5rem;
	height: 2.5rem;
}

.m-site-header__title {
	margin-right: auto;
	font-size: clamp(1.125rem, 2vw, 1.5rem);
	font-weight: 800;
}

.m-site-header__title a,
.m-site-header__nav a {
	color: var(--white, #fff);
	text-decoration: none;
}

.m-site-header__nav {
	display: none;
	width: auto;
	flex-wrap: wrap;
	gap: 0.5rem;
	font-size: 0.9rem;
	font-weight: 800;
}

.m-site-header__menu-trigger::part(base) {
	color: var(--white, #fff);
}

.m-site-header__drawer-nav {
	display: grid;
	gap: 0.75rem;
}

.m-site-header__drawer-nav a {
	border-radius: 0.85rem;
	padding: 0.85rem 1rem;
	color: var(--wa-color-neutral-10, #111827);
	font-weight: 850;
	text-decoration: none;
}

.m-site-header__drawer-nav a:hover,
.m-site-header__drawer-nav a:focus {
	background: var(--wa-color-neutral-fill-quiet, #f3f4f6);
}

@media (min-width: 48rem) {
	.m-site-header__inner {
		flex-wrap: wrap;
		padding-block: 0.85rem;
	}

	.m-site-header__nav {
		display: flex;
		width: auto;
		justify-content: flex-end;
	}

	.m-site-header__menu-trigger {
		display: none;
	}
}

.m-site-header__nav a {
	border-radius: 999px;
	padding: 0.5rem 0.75rem;
}

.m-site-header__nav a:hover,
.m-site-header__nav a:focus {
	background: rgba(255, 255, 255, 0.12);
}

.m-site-header__admin-link::part(base) {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	border-color: var(--wa-color-neutral-100, #fff);
	background: var(--wa-color-neutral-100, #fff);
	color: var(--wa-color-purple-50, #7e22ce);
}

.m-site-header__admin-link::part(base):hover,
.m-site-header__admin-link::part(base):focus-visible {
	background: var(--wa-color-purple-95, #faf5ff);
	color: var(--wa-color-purple-40, #9333ea);
}

.m-site-header__account {
	background: var(--white, #fff);
	color: var(--purple, #4a1d96) !important;
}

.m-site-footer {
	background: var(--gray, #333);
	color: var(--white, #fff);
	padding-block: 2rem;
}

.m-site-footer a {
	color: var(--sky, #b3dcff);
}

.m-site-footer__brand {
	max-width: 42rem;
}

.m-site-footer__title {
	margin: 0 0 0.75rem;
	color: var(--white, #fff);
	font-size: 1.5rem;
}

.m-site-footer__meta {
	margin-top: 2rem;
	font-size: 0.9rem;
	text-align: center;
}

.m-admin-nav {
	margin-block: 1rem 1.5rem;
	border: 2px solid var(--wa-color-orange-80, #fed7aa);
	border-radius: 1rem;
	padding: 0.75rem;
	background: var(--wa-color-orange-95, #fff7ed);
}

.m-teacher-nav {
	margin-block: 1rem 1.5rem;
	border: 2px solid var(--wa-color-blue-80, #bfdbfe);
	border-radius: 1rem;
	padding: 0.75rem;
	background: var(--wa-color-blue-95, #eff6ff);
}

.m-role-breadcrumb {
	align-self: stretch;
	display: flex;
	align-items: center;
	color: var(--graphite, #595959);
	font-size: 0.85rem;
	font-weight: 900;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.m-role-breadcrumb wa-breadcrumb-item {
	color: inherit;
}

.m-role-breadcrumb wa-icon {
	margin-inline-end: 0.35rem;
}

.m-role-breadcrumb--admin {
	color: var(--wa-color-orange-20, #9a3412);
}

.m-role-breadcrumb--teacher {
	color: var(--wa-color-blue-20, #1e3a8a);
}

.m-card {
	overflow: hidden;
	border: 1px solid var(--metal, #d8d8d8);
	border-radius: 1.5rem;
	background: var(--white, #fff);
	box-shadow: 0 1rem 2.5rem rgba(17, 24, 39, 0.06);
}

.m-card__body {
	padding: clamp(1.25rem, 3vw, 1.75rem);
}

.m-detail-section {
	border-top: 8px solid var(--wa-color-orange-50, var(--amber));
	border-top-left-radius: 12px;
	border-top-right-radius: 12px;
}

.m-detail-section--purple {
	border-top-color: var(--wa-color-purple-50, var(--purple));
}

.m-detail-section--stone {
	border-top-color: var(--wa-color-neutral-50, var(--metal));
}

.m-page-header {
	padding: clamp(1.25rem, 3vw, 2rem);
}

.m-page-header__eyebrow {
	margin: 0;
	color: var(--amber, #ea580c);
	font-size: 0.85rem;
	font-weight: 900;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.m-page-header__title {
	max-width: 56rem;
	margin: 0;
	color: var(--wa-color-purple-10, #3b0764);
	font-size: clamp(2.25rem, 6vw, 3.75rem);
	font-weight: 950;
	line-height: 1;
}

.m-page-header__intro {
	max-width: 48rem;
	color: var(--graphite, #595959);
}

.m-page-heading {
	display: grid;
	gap: 0.75rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--metal, #d8d8d8);
}

.m-page-heading__eyebrow {
	margin: 0;
	color: var(--wa-color-purple-30, var(--purple));
	font-size: 0.85rem;
	font-weight: 900;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.m-page-heading__title {
	margin: 0;
	color: var(--wa-color-purple-10, #3b0764);
	font-size: clamp(2.25rem, 5vw, 3.25rem);
	font-weight: 950;
	line-height: 1.05;
}

.m-page-heading__intro {
	max-width: 48rem;
	margin: 0;
	color: var(--graphite, #595959);
	font-size: 1.125rem;
}

.m-page-banner {
	display: block;
	box-sizing: border-box;
	width: min(95vw, 1600px);
	max-width: 1600px;
	margin: 24px auto;
	border: 1px solid var(--wa-color-neutral-border-normal, #d8d8d8);
	border-radius: 12px;
	aspect-ratio: 32 / 11;
	height: auto;
	object-fit: cover;
	box-shadow: 0 -2px 10px rgba(17, 24, 39, 0.06), 0 16px 36px rgba(17, 24, 39, 0.16);
}

.m-hero__image {
	width: 100%;
	height: clamp(14rem, 28vw, 20rem);
	object-fit: cover;
}

.m-anchor-nav {
	padding: 1rem;
}

.m-section-index {
	display: none;
}

@media (min-width: 48rem) {
	.m-section-index {
		display: flex;
		flex-wrap: wrap;
		gap: 0.65rem;
		align-items: center;
		justify-content: center;
		width: min(60%, 48rem);
		margin-inline: auto;
		padding-inline: 1.5rem;
	}
}

.m-section-card {
	overflow: visible;
	scroll-margin-top: var(--lesson-study-sticky-offset);
}

.m-section-card .m-lesson-teacher-grid {
	--l-grid-gap: clamp(1rem, 2.5vw, 1.5rem);
	margin-top: 0.5rem;
}

.m-section-card__image {
	width: 100%;
	aspect-ratio: 1 / 1;
	height: auto;
	object-fit: cover;
}

.m-section-card__media .m-media-card {
	display: none;
}

.m-section-card__image-gradient,
.m-section-card__image-title {
	display: none;
}

@media (min-width: 56rem) {
	.m-section-card__media {
		display: grid;
		align-self: start;
	}

	.m-section-card__media--sticky-md {
		position: sticky;
		top: var(--lesson-study-sticky-offset);
	}

	.m-section-card__media .m-media-card {
		display: block;
	}

	.m-section-card__mobile-heading {
		display: none;
	}

	.m-section-card__media-card {
		position: relative;
	}

	.m-section-card__image-gradient,
	.m-section-card__image-title {
		display: block;
	}

	.m-section-card__image-gradient {
		position: absolute;
		inset: 0 0 auto;
		height: 48%;
		background: linear-gradient(180deg, rgba(17, 24, 39, 0.78), rgba(17, 24, 39, 0));
		pointer-events: none;
	}

	.m-section-card__image-title {
		position: absolute;
		top: 1rem;
		right: 1rem;
		left: 1rem;
		z-index: 2;
		display: grid;
		gap: 0.25rem;
		color: var(--white, #fff);
		font-size: clamp(1.5rem, 3vw, 2.25rem);
		font-weight: 950;
		line-height: 1.05;
		text-shadow: 0 1px 3px rgba(0, 0, 0, 0.72), 0 6px 18px rgba(0, 0, 0, 0.34);
	}

	.m-section-card__image-title .m-section-heading__eyebrow {
		color: var(--wa-color-orange-80, #fed7aa);
	}

	.m-section-card__image {
		height: auto;
		max-height: 600px;
	}
}

@media (min-width: 64rem) {
	.m-section-card__media--sticky-md {
		position: static;
	}

	.m-section-card__media--sticky-lg {
		position: sticky;
		top: var(--lesson-study-sticky-offset);
	}
}

.m-section-heading__eyebrow {
	margin: 0;
	color: var(--purple, #4a1d96);
	font-size: 0.85rem;
	font-weight: 900;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.m-section-heading__title {
	margin: 0;
	color: var(--wa-color-purple-10, #3b0764);
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 950;
	line-height: 1.05;
}

.m-section-heading__intro {
	max-width: 48rem;
	margin: 0;
	color: var(--graphite, #595959);
}

.m-section-heading__intro a {
	font-weight: 800;
}

.m-media-card {
	overflow: hidden;
	border-radius: 12px;
	background: var(--cloud, #e7e7e4);
}

.m-fact-list {
	display: grid;
	gap: 0.75rem;
	color: var(--graphite, #595959);
}

.m-fact-list__item {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
}

.m-fact-list__item wa-icon {
	margin-top: 0.2rem;
	color: var(--wa-color-purple-30, var(--purple));
}

.m-status-pill {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 0.4rem;
	border: 1px solid transparent;
	border-radius: 999px;
	padding: 0.35rem 0.75rem;
	font-size: 0.875rem;
	font-weight: 900;
	line-height: 1.1;
	text-decoration: none;
}

a.m-status-pill:hover,
a.m-status-pill:focus {
	filter: brightness(0.97);
	text-decoration: none;
}

.m-status-pill--open {
	border-color: var(--wa-color-success-border-normal, var(--wa-color-green-70, #86efac));
	background: var(--wa-color-success-fill-quiet, var(--wa-color-green-95, #f0fdf4));
	color: var(--wa-color-success-on-quiet, var(--wa-color-green-20, #166534));
}

.m-status-pill--limited {
	border-color: var(--wa-color-warning-border-normal, var(--wa-color-orange-70, #fdba74));
	background: var(--wa-color-warning-fill-quiet, var(--wa-color-orange-95, #fff7ed));
	color: var(--wa-color-warning-on-quiet, var(--wa-color-orange-20, #9a3412));
}

.m-status-pill--waitlist,
.m-status-pill--closed {
	border-color: var(--wa-color-danger-border-normal, var(--wa-color-red-70, #fca5a5));
	background: var(--wa-color-danger-fill-quiet, var(--wa-color-red-95, #fef2f2));
	color: var(--wa-color-danger-on-quiet, var(--wa-color-red-20, #991b1b));
}

.m-camp-list {
	gap: clamp(2rem, 5vw, 3.5rem);
}

.m-camp-list-card {
	display: grid;
	overflow: hidden;
	border: 1px solid var(--metal, #d8d8d8);
	border-radius: 1.5rem;
	background: var(--white, #fff);
	box-shadow: 0 1rem 2rem rgba(17, 24, 39, 0.08);
}

@media (min-width: 48rem) {
	.m-camp-list-card {
		grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	}

	.m-camp-list-card--flipped .m-camp-list-card__media {
		order: 2;
	}
}

.m-camp-list-card__media {
	display: block;
	min-height: 17rem;
	background: var(--cloud, #f3f4f6);
}

.m-camp-list-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.m-camp-list-card__placeholder {
	display: grid;
	min-height: 17rem;
	place-items: center;
	color: var(--wa-color-purple-70, #d8b4fe);
	font-size: 3rem;
}

.m-camp-list-card__body {
	padding: clamp(1.5rem, 4vw, 2.75rem);
	align-content: start;
}

.m-program-submit-status {
	display: none;
	gap: 0.5rem;
	align-items: center;
	color: var(--wa-color-neutral-on-quiet, #374151);
	font-weight: 700;
}

.m-program-submit-status.htmx-request {
	display: flex;
}

.m-camp-list-card__title {
	margin: 0;
	color: var(--wa-color-purple-10, #3b0764);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 950;
	line-height: 1.05;
}

.m-camp-list-card__title a {
	color: inherit;
	text-decoration: none;
}

.m-camp-list-card__meta {
	margin: 0;
	color: var(--graphite, #595959);
	font-weight: 800;
}

.m-camp-list-card__description {
	color: var(--graphite, #595959);
}

.m-registration-panel {
	border: 1px solid var(--metal, #d8d8d8);
	border-top: 12px solid var(--wa-color-purple-30, var(--purple));
	border-radius: 1.75rem;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: var(--white, #fff);
	box-shadow: 0 1.5rem 3rem rgba(17, 24, 39, 0.1);
}

.m-registration-panel__form {
	min-height: 20rem;
}

.m-camp-registration-receipt {
	display: grid;
	gap: 1.75rem;
	max-width: 600px;
	width: 100%;
}

.m-camp-registration-receipt__back-link {
	display: inline-flex;
	gap: 0.35rem;
	align-items: center;
	justify-self: center;
	padding: 0.35rem 0.75rem;
	border: 1px solid var(--metal, #d8d8d8);
	border-radius: 999px;
	background: var(--offwhite, #f7f3e8);
	color: var(--graphite, #595959);
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: none;
}

.m-camp-registration-receipt__back-link:hover,
.m-camp-registration-receipt__back-link:focus {
	border-color: var(--blue-hour, #4d80b3);
	background: var(--white, #fff);
	color: var(--blue-hour, #4d80b3);
}

.m-camp-registration-receipt__section {
	padding-top: 1.75rem;
}

.m-camp-registration-receipt__section--transactions {
	padding-top: 2rem;
}

.m-program-detail-hero {
	position: relative;
	overflow: hidden;
	min-height: clamp(10rem, 22vw, 15rem);
	margin-bottom: -2.5rem;
	background: linear-gradient(135deg, var(--wa-color-purple-20, #581c87), var(--wa-color-orange-40, #ea580c));
}

.m-program-detail-hero__image {
	position: absolute;
	inset: -0.75rem;
	width: calc(100% + 1.5rem);
	height: calc(100% + 1.5rem);
	object-fit: cover;
	filter: blur(4px);
	transform: scale(1.02);
}

.m-program-detail-hero__overlay {
	position: absolute;
	inset: 0;
	background: rgba(17, 24, 39, 0.56);
}

.m-program-detail-hero--compact {
	min-height: clamp(7rem, 16vw, 10rem);
	margin-bottom: -1.75rem;
}

.m-program-detail {
	position: relative;
	display: grid;
	gap: 1.5rem;
	align-items: start;
}

.m-program-detail__summary,
.m-program-action-panel {
	border: 1px solid var(--wa-color-neutral-border-normal, var(--metal));
	border-radius: 1.5rem;
	background: var(--white, #fff);
	box-shadow: 0 1rem 2rem rgba(17, 24, 39, 0.1);
}

.m-program-detail__summary {
	display: grid;
	gap: 1.15rem;
	padding: clamp(1.25rem, 3vw, 2rem);
}

.m-program-detail__eyebrow {
	margin: 0;
	color: var(--wa-color-orange-40, var(--amber));
	font-size: 0.8rem;
	font-weight: 900;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.m-program-detail__title {
	margin: 0;
	color: var(--wa-color-neutral-10, #111827);
	font-size: clamp(2rem, 4vw, 3.75rem);
	font-weight: 900;
	letter-spacing: -0.035em;
	line-height: 0.8;
}

.m-program-detail__status-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.m-program-detail__facts {
	display: grid;
	gap: 0.85rem;
	padding-top: 0.25rem;
}

.m-program-detail__fact {
	display: grid;
	grid-template-columns: 1.4rem minmax(0, 1fr);
	gap: 0.75rem;
	align-items: start;
	color: var(--wa-color-neutral-30, var(--graphite));
	font-size: 1rem;
	font-weight: 700;
}

.m-program-detail__fact sl-icon,
.m-program-detail__fact wa-icon {
	margin-top: 0.15rem;
	color: var(--wa-color-purple-30, var(--purple));
}

.m-program-detail__note {
	margin: 0;
	color: var(--wa-color-neutral-40, var(--graphite));
	font-size: 0.95rem;
	font-weight: 700;
}

.m-program-detail__about {
	padding-top: 1.25rem;
	border-top: 1px solid var(--wa-color-neutral-border-normal, var(--metal));
}

.m-program-detail__about h2 {
	margin-top: 0;
}

.m-program-detail__bio-toggle {
	display: none;
}

@media (max-width: 719px) {
	.m-program-detail__about--collapsible {
		position: relative;
	}

	.m-program-detail__about--collapsible:not(.is-open) .m-program-detail__bio {
		position: relative;
		max-height: 180px;
		overflow: hidden;
	}

	.m-program-detail__about--collapsible:not(.is-open) .m-program-detail__bio::after {
		content: '';
		position: absolute;
		right: 0;
		bottom: 0;
		left: 0;
		height: 4.5rem;
		background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--white, #fff));
		pointer-events: none;
	}

	.m-program-detail__bio-toggle {
		display: inline-flex;
		align-items: center;
		gap: 0.35rem;
		margin-top: 0.65rem;
		border: 0;
		background: transparent;
		color: var(--wa-color-purple-30, var(--purple));
		font: inherit;
		font-size: 0.78rem;
		font-weight: 900;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		cursor: pointer;
	}
}

.m-program-action-panel {
	overflow: hidden;
	border-top: 12px solid var(--wa-color-purple-30, var(--purple));
}

.m-program-action-panel__header {
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border-bottom: 1px solid var(--wa-color-neutral-border-quiet, #f3f4f6);
}

.m-program-action-panel__header h2 {
	margin: 0;
	color: var(--wa-color-neutral-10, #111827);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 900;
	letter-spacing: -0.035em;
	line-height: 1;
}

.m-program-action-panel__header p {
	margin: 0.75rem 0 0;
	color: var(--wa-color-neutral-40, var(--graphite));
	font-size: 0.95rem;
}

.m-program-action-panel__form {
	display: grid;
	gap: 1.25rem;
	padding: clamp(1.25rem, 3vw, 1.75rem);
}

.m-program-action-panel__form > section,
.m-program-action-panel .field,
.m-program-action-panel [id^='k_element_'] {
	display: grid;
	gap: 0.75rem;
}

.m-program-action-panel__form > section > div,
.m-program-action-panel__form > section > label {
	display: grid;
	gap: 0.75rem;
}

@media (min-width: 720px) {
	.m-program-action-panel__form > section > div:has(> label + label) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.m-program-action-panel .field.inline {
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

.m-program-action-panel .field.radios,
.m-program-action-panel .field:has(input[type='checkbox']),
.m-program-action-panel .field:has(input[type='radio']) {
	padding: 1rem;
	border-radius: 1rem;
	background: var(--wa-color-neutral-fill-quiet, #f9fafb);
}

.m-program-action-panel label {
	display: grid;
	gap: 0.35rem;
	color: var(--wa-color-neutral-20, #1f2937);
	font-size: 0.95rem;
	font-weight: 800;
}

.m-program-choice-field {
	display: grid;
	gap: 0.75rem;
	padding: 1rem;
	border-radius: 1rem;
	background: var(--wa-color-neutral-fill-quiet, #f9fafb);
}

.m-program-choice-field > label,
.m-program-choice-field > p {
	margin: 0;
}

.m-program-form-label {
	color: var(--wa-color-neutral-20, #1f2937);
	font-size: 0.95rem;
	font-weight: 800;
}

.m-program-choice-field__options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem 1rem;
}

.m-program-radio-group--inline::part(form-control-input) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem 1rem;
}

@media (min-width: 56rem) {
	.m-terms-image-rail {
		position: sticky;
		top: calc(var(--site-header-offset, 0rem) + 1rem);
	}
}

.m-terms-image-card__image {
	aspect-ratio: 1;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.m-program-choice-field__option {
	display: inline-flex;
	grid-template-columns: none;
	align-items: center;
	gap: 0.45rem;
	font-weight: 700;
}

.m-program-guest-students {
	display: grid;
	gap: 0.75rem;
}

.m-program-guest-student-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.25rem;
	align-items: center;
}

.m-program-guest-student {
	display: grid;
	gap: 0.85rem;
	padding: 1rem;
	border: 1px solid var(--wa-color-neutral-border-normal, var(--metal));
	border-radius: 1rem;
	background: var(--wa-color-neutral-fill-quiet, #f9fafb);
}

.m-program-guest-student h3 {
	margin: 0;
	color: var(--wa-color-neutral-50, #6b7280);
	font-size: 0.5rem;
	font-weight: 900;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.m-program-repeat-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
}

.m-program-repeat-icon {
	flex: 0 0 auto;
}

.m-program-student-fields {
	display: grid;
	gap: 0.85rem;
}

.m-program-student-fields__interest {
	grid-column: 1 / -1;
}

.m-program-field-hint {
	color: var(--wa-color-neutral-40, #6b7280);
	font-size: 0.8125rem;
	font-weight: 400;
	line-height: 1.4;
}

@media (min-width: 720px) {
	.m-program-student-fields {
		grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
	}
}

.m-program-choice-field table,
.m-program-choice-field tbody,
.m-program-choice-field tr {
	display: block;
}

.m-program-choice-field td {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0.9rem 0.5rem 0;
	padding: 0;
}

.m-program-choice-field input[type='radio'],
.m-program-choice-field input[type='checkbox'] {
	margin: 0 0.35rem 0 0;
}

.m-program-action-panel > .m-program-detail__note {
	padding: clamp(1.25rem, 3vw, 1.75rem);
}

.m-camp-list-intro {
	display: grid;
	gap: clamp(1.25rem, 4vw, 2rem);
	align-items: center;
}

.m-camp-list-intro__content {
	min-width: 0;
}

.m-camp-list-intro__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

@media (min-width: 860px) {
	.m-camp-list-intro {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
}

.m-camp-content-mosaic {
	display: grid;
	gap: 1rem;
}

.m-camp-content-mosaic__image {
	margin: 0;
}

.m-camp-content-mosaic__image img {
	display: block;
	width: 100%;
	border-radius: 1rem;
}

.m-camp-content-mosaic__video {
	position: relative;
	overflow: hidden;
	border-radius: 1rem;
	background: var(--wa-color-neutral-fill-quiet, #f9fafb);
}

.m-camp-content-mosaic__video::before {
	display: block;
	padding-top: 56.25%;
	content: '';
}

.m-camp-content-mosaic__video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.m-camp-content-mosaic__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.m-ensemble-landing {
	gap: clamp(2rem, 5vw, 3.5rem);
}

.m-ensemble-intro .m-program-detail__summary {
	border: 0;
	padding: 0;
	background: transparent;
	box-shadow: none;
}

.m-ensemble-intro__image,
.m-ensemble-intro__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	border: 1px solid var(--wa-color-neutral-border-normal, var(--metal));
	border-radius: 1.5rem;
	object-fit: cover;
	box-shadow: 0 0.75rem 1.5rem rgba(17, 24, 39, 0.08);
}

.m-ensemble-intro__placeholder {
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--wa-color-purple-20, #581c87), var(--wa-color-orange-40, #ea580c));
	color: var(--white, #fff);
	font-size: clamp(3rem, 10vw, 6rem);
}

.m-ensemble-pricing-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 0.75rem;
	align-items: center;
	border: 1px solid var(--wa-color-purple-80, #e9d5ff);
	border-radius: 0.85rem;
	padding: 0.75rem 0.9rem;
	background: var(--wa-color-purple-95, #faf5ff);
	color: var(--wa-color-purple-20, #581c87);
	font-size: 0.92rem;
}

.m-ensemble-pricing-summary strong {
	font-weight: 950;
}

.m-ensemble-pricing-summary span {
	color: var(--wa-color-neutral-30, var(--graphite));
	font-weight: 750;
}

.m-ensemble-pricing-summary--detail {
	display: grid;
	gap: 0.35rem;
}

.m-program-action-panel__fields {
	display: grid;
	gap: 1.25rem;
}

.m-program-action-panel sl-button,
.m-program-action-panel wa-button,
.m-program-action-panel input[type='submit'] {
	width: 100%;
}

.m-program-action-panel .m-program-submit-button::part(base) {
	border-color: var(--wa-color-purple-30, var(--purple));
	background: var(--wa-color-purple-30, var(--purple));
	color: var(--white, #fff);
	font-weight: 900;
	box-shadow: 0 0.75rem 1.5rem rgba(88, 28, 135, 0.22);
}

.m-program-action-panel .m-program-submit-button::part(base):hover,
.m-program-action-panel .m-program-submit-button::part(base):focus-visible {
	border-color: var(--wa-color-purple-40, var(--purple-light));
	background: var(--wa-color-purple-40, var(--purple-light));
}

.m-program-action-panel input[type='submit'] {
	border: 0;
	background: var(--wa-color-purple-30, var(--purple));
	color: var(--white, #fff);
	font-weight: 900;
	cursor: pointer;
}

.m-program-action-panel input[type='submit']:hover,
.m-program-action-panel input[type='submit']:focus {
	background: var(--wa-color-purple-40, var(--purple-light));
}

.class-registration-form sl-input,
.class-registration-form sl-textarea {
	--sl-input-border-color: rgb(156 163 175);
	--sl-input-border-color-focus: rgb(126 34 206);
	--sl-input-border-width: 1.5px;
	--sl-input-border-radius-medium: 0.85rem;
	--sl-focus-ring-color: rgb(233 213 255);
}

.m-program-action-panel input:not([type='checkbox']):not([type='radio']):not([type='submit']):not([type='hidden']),
.m-program-action-panel textarea,
.m-program-action-panel select {
	box-sizing: border-box;
	width: 100%;
	border: 1.5px solid rgb(156 163 175);
	border-radius: 0.85rem;
	padding: 0.75rem 0.9rem;
}

.class-registration-form sl-textarea::part(textarea),
.m-program-action-panel textarea {
	min-height: 8.5rem;
}

.m-program-action-panel .select-caret {
	display: none;
}

.m-program-action-panel table {
	width: 100%;
}

.m-program-terms-note {
	margin: 0;
	color: var(--wa-color-neutral-50, #6b7280);
	font-size: 0.85rem;
	line-height: 1.5;
}

.m-program-terms-note a {
	color: var(--wa-color-purple-30, var(--purple));
	font-weight: 800;
}

.m-debug-list {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	gap: 0.5rem 1rem;
	margin: 1rem 0 0;
}

.m-debug-list dt {
	color: var(--wa-color-neutral-40, var(--graphite));
	font-weight: 900;
}

.m-debug-list dd {
	margin: 0;
	overflow-wrap: anywhere;
}

.m-debug-json {
	max-height: 16rem;
	margin: 0;
	overflow: auto;
	padding: 1rem;
	border: 1px solid var(--wa-color-neutral-border-normal, var(--metal));
	border-radius: 1rem;
	background: var(--wa-color-neutral-fill-quiet, #f9fafb);
	color: var(--wa-color-neutral-20, #1f2937);
	font-size: 0.78rem;
	line-height: 1.45;
	white-space: pre-wrap;
}

.m-debug-heading {
	margin: 1rem 0 0.5rem;
	color: var(--wa-color-neutral-30, #374151);
	font-size: 0.9rem;
	font-weight: 900;
}

@media (min-width: 720px) {
	.m-program-action-panel__fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.m-program-action-panel__fields--contact {
		grid-template-columns: minmax(0, 1fr) 14rem;
	}
}

@media (min-width: 960px) {
	.m-program-detail {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 2rem;
	}
}

.m-program-detail--action-first .m-program-detail__summary {
	order: 1;
}

.m-program-detail--action-first .m-program-action-panel {
	order: 2;
}

@media (min-width: 960px) {
	.m-program-detail--action-first .m-program-detail__summary {
		position: sticky;
		top: 1.5rem;
		order: 2;
	}

	.m-program-detail--action-first .m-program-action-panel {
		order: 1;
	}
}

.m-lesson-intro__copy {
	color: var(--wa-color-neutral-30, var(--graphite));
}

.m-lesson-process-shell {
	display: grid;
	gap: 0.75rem;
}

.m-lesson-process-shell__title {
	margin: 0;
	color: var(--wa-color-neutral-10, #111827);
	font-size: clamp(1.25rem, 2.4vw, 1.75rem);
	font-weight: 900;
	letter-spacing: -0.03em;
	line-height: 1;
}

.m-lesson-process {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	border: 1px solid var(--wa-color-neutral-border-normal, var(--metal));
	border-radius: 1rem;
	background: var(--white, #fff);
	overflow: hidden;
	list-style: none;
}

.m-lesson-process__step {
	position: relative;
	display: grid;
	grid-template-columns: 2rem minmax(0, 1fr);
	gap: 0.9rem;
	padding: 1.15rem;
	color: var(--wa-color-neutral-30, var(--graphite));
}

.m-lesson-process__step + .m-lesson-process__step {
	border-top: 1px solid var(--wa-color-neutral-border-normal, var(--metal));
}

.m-lesson-process__number {
	display: grid;
	place-items: center;
	width: 1.85rem;
	height: 1.85rem;
	border-radius: 999px;
	background: var(--wa-color-orange-50, var(--amber));
	color: var(--white, #fff);
	font-size: 0.82rem;
	font-weight: 950;
}

.m-lesson-process__content {
	display: grid;
	gap: 0.45rem;
}

.m-lesson-process__content h2,
.m-lesson-process__content p {
	margin: 0;
}

.m-lesson-process__content h2 {
	color: var(--wa-color-neutral-10, #111827);
	font-size: 1rem;
	font-weight: 900;
	line-height: 1.1;
}

.m-lesson-process__content p {
	color: var(--wa-color-neutral-40, var(--graphite));
	font-size: 0.86rem;
	line-height: 1.45;
}

.m-lesson-process__note {
	border-left: 3px solid var(--wa-color-orange-50, var(--amber));
	padding-left: 0.65rem;
	font-weight: 800;
}

.m-lesson-process__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	padding-top: 0.15rem;
}

.m-lesson-process__actions wa-button::part(base) {
	justify-content: flex-start;
}

.m-lesson-intro__panel-image {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.m-lesson-intro__actions {
	display: grid;
	gap: 0.75rem;
	align-content: center;
}

.m-lesson-intro__actions wa-button::part(base) {
	justify-content: flex-start;
}

.m-lesson-intro .m-program-detail__summary {
	border: 0;
	padding: 0;
	background: transparent;
	box-shadow: none;
}

.m-lesson-intro__studies {
	margin-top: clamp(1.5rem, 4vw, 2.25rem);
	gap: 1.15rem;
	padding: clamp(1.25rem, 3vw, 2rem) clamp(0.5rem, 2vw, 1rem);
}

.m-lesson-intro__studies .m-section-heading--center {
	margin-inline: 0;
	text-align: left;
}

.m-lesson-intro__studies .m-section-index {
	justify-content: flex-start;
	width: 100%;
	margin-inline: 0;
	padding-inline: 0;
}

.m-lesson-study-list {
	margin-top: clamp(3rem, 9vw, 4.5rem);
}

.m-lesson-study-help-shell {
	position: static;
	z-index: 20;
}

.m-lesson-study-help-shell__mask {
	display: none;
}

.m-lesson-study-help {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem 0.85rem;
	align-items: center;
	justify-content: space-between;
	border: 2px solid var(--wa-color-orange-50, var(--amber));
	border-radius: 0.85rem;
	padding: 0.55rem 0.85rem 0.45rem;
	background: var(--white, #fff);
}

@media (min-width: 56rem) {
	.m-lesson-study-help-shell {
		position: sticky;
		top: calc(var(--site-header-offset) + 8px);
		width: calc(100% + 120px);
		margin-inline: -60px;
	}

	.m-lesson-study-help-shell__mask {
		display: block;
		width: 100%;
		height: 12px;
		background: var(--white, #fff);
	}

	.m-lesson-study-help {
		margin-inline: 24px;
		padding: 0.65rem 0.95rem 0.5rem;
	}
}

.m-lesson-study-help__content {
	display: grid;
	gap: 0.15rem;
	color: var(--wa-color-neutral-20, #1f2937);
}

.m-lesson-study-help__content h2 {
	margin: 0;
	font-size: clamp(0.92rem, 1.3vw, 1.05rem);
	font-weight: 900;
	line-height: 1.1;
}

.m-lesson-study-help__content span {
	color: var(--wa-color-neutral-40, var(--graphite));
	font-size: 0.74rem;
}

@media (min-width: 960px) {
	.m-lesson-intro__media {
		position: sticky;
		top: var(--lesson-sticky-offset);
		align-self: start;
	}
}

.m-teacher-profile__portrait {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	border: 1px solid var(--wa-color-neutral-border-normal, var(--metal));
	border-radius: 1.5rem;
	object-fit: cover;
	box-shadow: 0 0.75rem 1.5rem rgba(17, 24, 39, 0.08);
}

.m-teacher-profile .m-program-detail__summary {
	box-shadow: 0 1rem 2rem rgba(17, 24, 39, 0.08);
}

.m-teacher-profile__chip-pod {
	min-width: 0;
	max-width: 100%;
}

.m-teacher-profile__chip-row {
	display: flex;
	flex-wrap: wrap;
	column-gap: 0.5rem;
	row-gap: 0.6rem;
	align-items: center;
	min-width: 0;
	max-width: 100%;
}

.m-teacher-profile__chip-row .m-status-pill {
	margin-block: 0.05rem;
}

.m-status-pill--program {
	border-color: var(--wa-color-orange-40, var(--amber));
	background: var(--wa-color-orange-90, #ffedd5);
	color: var(--wa-color-orange-20, #9a3412);
}

@media (min-width: 960px) {
	.m-teacher-profile__media-panel {
		position: sticky;
		top: var(--lesson-sticky-offset);
		align-self: start;
		overflow: visible;
	}
}

.m-teacher-profile__request-panel {
	margin-top: 0.35rem;
}

.m-teacher-profile__request-title-name {
	display: inline-block;
	margin-block: -0.3rem 0.35rem;
	color: var(--wa-color-purple-30, var(--purple));
	font-size: clamp(1.45rem, 3vw, 2rem);
	font-weight: 750;
	letter-spacing: -0.02em;
	line-height: 0.95;
}

.m-teacher-profile__request-panel .teacher-request-form {
	padding: 0;
}

.m-teacher-request-response {
	margin-top: 0.75rem;
}

.m-teacher-request-follow-up {
	display: grid;
	gap: 0.65rem;
	border: 1px solid var(--wa-color-neutral-border-normal, var(--metal));
	border-radius: var(--wa-border-radius-l, 0.75rem);
	padding: clamp(1rem, 3vw, 1.35rem);
	background: var(--wa-color-success-fill-quiet, var(--wa-color-green-95, #f0fdf4));
	color: var(--wa-color-success-on-quiet, var(--wa-color-green-20, #166534));
}

.m-teacher-request-follow-up h3,
.m-teacher-request-follow-up p {
	margin: 0;
}

.m-teacher-request-follow-up h3 {
	font-size: 1rem;
}

.m-teacher-request-follow-up a {
	color: inherit;
	font-weight: 800;
}

.m-teacher-bio-dialog {
	--width: min(92vw, 68rem);
}

.m-teacher-bio-dialog::part(body) {
	padding: clamp(1rem, 3vw, 1.75rem);
}

.m-teacher-bio-dialog__loading {
	display: grid;
	place-items: center;
	min-height: 12rem;
}

.m-teacher-profile--dialog {
	gap: clamp(1rem, 3vw, 1.75rem);
}

.m-teacher-profile--dialog-split {
	grid-template-columns: 1fr;
}

.m-teacher-profile__identity-panel {
	display: grid;
	gap: 1rem;
}

.m-teacher-profile__identity-panel .m-teacher-profile__portrait {
	order: -1;
}

.m-teacher-profile__content-panel {
	align-content: start;
}

.m-teacher-profile__content-panel .m-program-detail__about:first-child {
	padding-top: 0;
	border-top: 0;
}

.m-teacher-profile__related-content {
	padding-top: 1rem;
}

.m-teacher-profile--dialog .m-program-detail__title {
	font-size: clamp(2rem, 5vw, 3rem);
}

.m-teacher-profile--dialog .m-program-detail__about {
	margin-top: 1rem;
}

.m-teacher-profile--dialog .m-teacher-profile__media-panel {
	position: sticky;
	top: 0;
	align-self: start;
}

@media (min-width: 54rem) {
	.m-teacher-profile--dialog-split {
		grid-template-columns: minmax(16rem, 2fr) minmax(0, 3fr);
	}

	.m-teacher-profile--dialog-split .m-teacher-profile__identity-panel {
		position: sticky;
		top: 0;
		align-self: start;
	}
}

@media (min-width: 44rem) {
	.m-lesson-teacher-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64rem) {
	.m-lesson-teacher-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.m-section-heading--center {
	max-width: 48rem;
	margin-inline: auto;
	text-align: center;
}

.m-registration-panel__header-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	justify-content: space-between;
}

.m-registration-panel__header-row > * {
	margin: 0;
}

.m-ensemble-inquiry-panel__image {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 1.25rem;
	box-shadow: 0 1rem 2rem rgba(17, 24, 39, 0.1);
	object-fit: cover;
}

@media (min-width: 56rem) {
	.m-ensemble-inquiry-panel {
		position: sticky;
		top: 1.5rem;
		align-self: start;
	}
}

.ensemble-inquiry-form {
	gap: 1rem;
}

.ensemble-inquiry-form label {
	display: grid;
	gap: 0.35rem;
	color: var(--wa-color-neutral-20, #1f2937);
	font-size: 0.9rem;
	font-weight: 800;
}

.ensemble-inquiry-form input:not([type='checkbox']),
.ensemble-inquiry-form textarea,
.ensemble-inquiry-form select {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--wa-color-neutral-border-normal, var(--metal));
	border-radius: 0.85rem;
	padding: 0.75rem 0.9rem;
	background: var(--wa-color-surface-default, #fff);
}

.m-native-submit-button {
	border: 0;
	border-radius: 0.85rem;
	padding: 0.85rem 1.25rem;
	background: var(--wa-color-brand-fill-loud, var(--purple));
	color: var(--wa-color-brand-on-loud, #fff);
	font-weight: 900;
	cursor: pointer;
}

.m-native-submit-button:hover,
.m-native-submit-button:focus {
	filter: brightness(0.96);
}

.m-account-overview {
	position: relative;
	max-width: 52rem;
	margin-inline: auto;
}

.m-registration-form {
	display: grid;
	gap: 1.25rem;
	max-width: none;
	background: var(--white, #fff);
}

.m-registration-form__body {
	display: grid;
	gap: 1.5rem;
	background: var(--white, #fff);
}

.m-registration-form__section {
	display: grid;
	gap: 1rem;
	align-items: start;
}

.m-registration-form__section-title,
.m-registration-form__group-title {
	margin: 0;
}

.m-registration-form__group {
	display: flex;
	position: relative;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: flex-start;
	border: 1px dashed var(--metal, #d8d8d8);
	border-radius: 1rem;
	padding: 1.25rem;
	background: var(--white, #fff);
}

.m-registration-form__group-title,
.m-registration-form__full,
.m-registration-form__custom-fields,
.m-registration-form__notes,
.m-registration-form__supplemental {
	flex-basis: 100%;
	width: 100%;
}

.m-registration-form__supplemental {
	display: grid;
	gap: 1rem;
	border: 1px solid var(--wa-color-gray-80, #d1d5db);
	border-radius: 1rem;
	padding: 1rem;
	background: var(--wa-color-gray-95, #f8fafc);
}

.m-registration-form__supplemental-title {
	color: var(--wa-color-gray-30, #374151);
	font-size: 0.95rem;
	font-weight: 900;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.m-registration-form__supplemental-fields {
	display: grid;
	gap: 0.9rem;
	padding-inline: 0.35rem;
}

.m-registration-form__supplemental-item {
	display: grid;
	gap: 0.5rem;
	max-width: 28rem;
}

.m-registration-form__field {
	flex: 1 1 14rem;
}

.m-registration-form__field--wide {
	flex-grow: 2;
}

.m-registration-form__field--short {
	max-width: 14rem;
}

.m-registration-form__field--select {
	max-width: 20rem;
}

.m-registration-form__field--textarea {
	max-width: 25rem;
}

.m-registration-form__custom-fields,
.m-registration-form__notes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.m-registration-form__mini-actions {
	display: flex;
	gap: 0.5rem;
	padding-inline: 0.5rem;
}

.m-registration-form__actions {
	display: grid;
	gap: 0.75rem;
	padding-top: 1rem;
	border-top: 1px solid var(--metal, #d8d8d8);
	background: var(--white, #fff);
}

.m-registration-form__submit {
	width: 100%;
}

.m-detail-card__title,
.m-offering-mini-card__title {
	margin: 0;
	color: var(--wa-color-purple-10, #3b0764);
	font-size: 1.25rem;
	font-weight: 950;
	line-height: 1.15;
}

.m-detail-card__banner {
	display: block;
	width: 100%;
	height: clamp(12rem, 24vw, 16rem);
	object-fit: cover;
}

.m-offering-mini-card {
	display: grid;
	gap: 0.5rem;
	border: 1px solid var(--metal, #d8d8d8);
	border-radius: 0.75rem;
	padding: 1rem;
	background: var(--cloud, #f3f4f6);
}

.m-offering-mini-card p {
	margin: 0;
	color: var(--graphite, #595959);
	font-size: 0.9rem;
}

.m-teacher-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--metal, #d8d8d8);
	border-radius: 1rem;
	background: var(--offwhite, #fafafa);
}

.m-teacher-card__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--wa-color-purple-95, #faf5ff);
	color: var(--white, #fff);
	text-decoration: none;
}

.m-teacher-card__image,
.m-teacher-card__placeholder {
	position: absolute;
	inset: 0;
}

.m-teacher-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 180ms ease;
}

.m-teacher-card__media:hover .m-teacher-card__image,
.m-teacher-card__media:focus .m-teacher-card__image {
	transform: scale(1.035);
}

.m-teacher-card__placeholder {
	display: grid;
	place-items: center;
	color: var(--wa-color-purple-70, #d8b4fe);
	font-size: 3rem;
}

.m-teacher-card__gradient {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	min-height: 30%;
	background: linear-gradient(to top, rgba(17, 24, 39, 0.92), rgba(17, 24, 39, 0));
	pointer-events: none;
}

.m-teacher-card__content {
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	left: 1rem;
	z-index: 2;
	display: grid;
	gap: 0.6rem;
	align-items: start;
	justify-items: start;
}

.m-teacher-card__name {
	color: var(--white, #fff);
	font-size: 1.25rem;
	font-weight: 950;
	line-height: 1.1;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.72), 0 6px 18px rgba(0, 0, 0, 0.34);
}

.m-teacher-card__tags {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.5rem;
	max-width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	padding-right: 1.5rem;
	-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2rem), transparent);
	mask-image: linear-gradient(to right, #000 calc(100% - 2rem), transparent);
	scrollbar-width: none;
}

.m-teacher-card__tags::-webkit-scrollbar {
	display: none;
}

.m-teacher-card__tag {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	border-radius: 999px;
	padding: 0.28rem 0.62rem;
	background: rgba(255, 255, 255, 0.9);
	color: var(--wa-color-purple-20, #581c87);
	font-size: 0.68rem;
	font-weight: 900;
	line-height: 1.1;
}

.m-teacher-card__action {
	display: inline-flex;
	gap: 0.45rem;
	align-items: center;
	justify-content: center;
	margin-top: auto;
	border-top: 1px solid var(--wa-color-neutral-border-quiet, #f3f4f6);
	padding: 0.55rem 0.85rem;
	background: var(--white, #fff);
	color: var(--wa-color-orange-35, var(--amber));
	font-size: 0.78rem;
	font-weight: 900;
	letter-spacing: 0.05em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
}

.m-teacher-card__action::after {
	content: '';
	width: 0.4em;
	height: 0.4em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	opacity: 0.75;
	transform: rotate(-45deg);
}

.m-teacher-card__action:hover,
.m-teacher-card__action:focus {
	background: var(--wa-color-orange-95, #fff7ed);
	color: var(--wa-color-orange-30, var(--amber));
}

.m-empty-state {
	border: 1px dashed var(--metal, #d8d8d8);
	border-radius: 0.75rem;
	padding: 1.25rem;
	color: var(--graphite, #595959);
	font-size: 0.9rem;
}

.m-meeting-room__stage {
	overflow: hidden;
	padding: 0;
	background: var(--wa-color-gray-05, #111827);
}

.m-meeting-room__video {
	height: 80vh;
	min-height: 420px;
}

@media (max-width: 47.99rem) {
	.m-meeting-room__video {
		height: 68vh;
		min-height: 360px;
	}
}

.m-prose {
	max-width: 48rem;
}

.m-prose > :first-child {
	margin-top: 0;
}

.m-prose > :last-child {
	margin-bottom: 0;
}

/* Utilities */

.u-hidden {
	display: none !important;
}

.u-text-strong {
	font-weight: 900;
}

/* Temporary legacy utility bridge for public templates not yet migrated to modules. */

.block { display: block; }
.hidden { display: none; }
.grid { display: grid; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.flex-wrap { flex-wrap: wrap; }
.items-start { align-items: flex-start; }
.items-center { align-items: center; }
.items-end { align-items: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-end { justify-content: flex-end; }
.place-items-center { place-items: center; }
.shrink-0 { flex-shrink: 0; }
.flex-grow { flex-grow: 1; }

.gap-1 { gap: 0.25rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }

.m-0 { margin: 0; }
.mx-auto { margin-inline: auto; }
.my-6 { margin-block: 1.5rem; }
.mt-0\.5 { margin-top: 0.125rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-12 { margin-top: 3rem; }
.mb-0 { margin-bottom: 0; }
.mr-auto { margin-right: auto; }

.p-1 { padding: 0.25rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.px-2 { padding-inline: 0.5rem; }
.px-2\.5 { padding-inline: 0.625rem; }
.px-3 { padding-inline: 0.75rem; }
.px-4 { padding-inline: 1rem; }
.px-5 { padding-inline: 1.25rem; }
.py-1 { padding-block: 0.25rem; }
.py-2 { padding-block: 0.5rem; }
.py-3 { padding-block: 0.75rem; }
.py-4 { padding-block: 1rem; }
.pb-6 { padding-bottom: 1.5rem; }
.pt-2 { padding-top: 0.5rem; }
.pt-4 { padding-top: 1rem; }

.w-full { width: 100%; }
.w-11\/12 { width: 91.666667%; }
.h-full { height: 100%; }
.h-10 { height: 2.5rem; }
.h-12 { height: 3rem; }
.h-56 { height: 14rem; }
.h-64 { height: 16rem; }
.w-10 { width: 2.5rem; }
.w-12 { width: 3rem; }
.max-w-none { max-width: none; }
.max-w-md { max-width: 28rem; }
.max-w-xl { max-width: 36rem; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-7xl { max-width: 80rem; }
.min-h-80 { min-height: 20rem; }
.min-h-\[100vh\] { min-height: 100vh; }

.overflow-hidden { overflow: hidden; }
.relative { position: relative; }
.absolute { position: absolute; }
.inset-0 { inset: 0; }
.inset-x-0 { left: 0; right: 0; }
.bottom-0 { bottom: 0; }
.bottom-4 { bottom: 1rem; }
.z-10 { z-index: 10; }
.z-20 { z-index: 20; }
.object-cover { object-fit: cover; }
.aspect-square { aspect-ratio: 1 / 1; }
.pointer-events-none { pointer-events: none; }

.border { border: 1px solid var(--metal, #d8d8d8); }
.border-2 { border-width: 2px; }
.border-b { border-bottom: 1px solid var(--metal, #d8d8d8); }
.border-t { border-top: 1px solid var(--metal, #d8d8d8); }
.border-t-\[12px\] { border-top-width: 12px; }
.border-dashed { border-style: dashed; }
.border-gray-100 { border-color: rgb(243 244 246); }
.border-gray-200 { border-color: rgb(229 231 235); }
.border-gray-300 { border-color: rgb(209 213 219); }
.border-orange-200 { border-color: var(--wa-color-orange-80, #fed7aa); }
.border-purple-100 { border-color: var(--wa-color-purple-90, #f3e8ff); }
.border-t-purple-800 { border-top-color: var(--purple, #4a1d96); }

.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-full { border-radius: 999px; }
.rounded-\[1\.5rem\] { border-radius: 1.5rem; }
.rounded-\[1\.75rem\] { border-radius: 1.75rem; }

.bg-white { background: var(--white, #fff); }
.bg-gray-50 { background: rgb(249 250 251); }
.bg-gray-100 { background: rgb(243 244 246); }
.bg-gray-800 { background: rgb(31 41 55); }
.bg-orange-50 { background: var(--wa-color-orange-95, #fff7ed); }
.bg-orange-600 { background: var(--amber, #ea580c); }
.bg-purple-50 { background: var(--wa-color-purple-95, #faf5ff); }
.bg-purple-700 { background: var(--wa-color-purple-30, #7e22ce); }
.bg-purple-800 { background: var(--purple, #4a1d96); }
.bg-gradient-to-t { background-image: linear-gradient(to top, var(--tw-gradient-from, rgba(17, 24, 39, 0.8)), var(--tw-gradient-to, transparent)); }
.from-gray-950\/80 { --tw-gradient-from: rgba(3, 7, 18, 0.8); }
.to-transparent { --tw-gradient-to: transparent; }

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-xs { font-size: 0.75rem; }
.text-sm { font-size: 0.875rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: 1.25rem; }
.text-2xl { font-size: 1.5rem; }
.text-3xl { font-size: 1.875rem; }
.text-4xl { font-size: 2.25rem; }
.text-5xl { font-size: 3rem; }
.font-normal { font-weight: 400; }
.font-semibold { font-weight: 700; }
.font-bold { font-weight: 800; }
.font-extrabold,
.font-black { font-weight: 950; }
.italic { font-style: italic; }
.uppercase { text-transform: uppercase; }
.tracking-wide { letter-spacing: 0.04em; }
.tracking-\[0\.18em\] { letter-spacing: 0.18em; }
.tracking-\[0\.2em\] { letter-spacing: 0.2em; }
.leading-none { line-height: 1; }
.leading-tight { line-height: 1.1; }
.text-white { color: var(--white, #fff); }
.text-gray-400 { color: rgb(156 163 175); }
.text-gray-500 { color: rgb(107 114 128); }
.text-gray-600 { color: rgb(75 85 99); }
.text-gray-700 { color: rgb(55 65 81); }
.text-gray-800 { color: rgb(31 41 55); }
.text-gray-950 { color: rgb(3 7 18); }
.text-orange-600 { color: var(--amber, #ea580c); }
.text-purple-300 { color: var(--wa-color-purple-70, #d8b4fe); }
.text-purple-700 { color: var(--wa-color-purple-30, #7e22ce); }
.text-purple-800 { color: var(--purple, #4a1d96); }
.text-purple-950 { color: var(--wa-color-purple-10, #3b0764); }
.text-sky-300 { color: var(--sky, #b3dcff); }
.text-sky-700 { color: var(--wa-color-blue-30, #0369a1); }
.no-underline { text-decoration: none; }

.shadow-lg { box-shadow: 0 1rem 2rem rgba(17, 24, 39, 0.08); }
.shadow-xl { box-shadow: 0 1.25rem 2.5rem rgba(17, 24, 39, 0.1); }
.shadow-2xl { box-shadow: 0 1.5rem 3rem rgba(17, 24, 39, 0.12); }
.shadow-gray-950\/5 { box-shadow: 0 1rem 2rem rgba(3, 7, 18, 0.05); }
.shadow-gray-950\/10 { box-shadow: 0 1rem 2.5rem rgba(3, 7, 18, 0.1); }
.shadow-purple-950\/10 { box-shadow: 0 1rem 2.5rem rgba(59, 7, 100, 0.1); }
.shadow-purple-900\/20 { box-shadow: 0 1rem 2rem rgba(88, 28, 135, 0.2); }

.prose {
	max-width: 65ch;
}

.prose > :first-child { margin-top: 0; }
.prose > :last-child { margin-bottom: 0; }

.line-clamp-4 {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
}

@media (min-width: 40rem) {
	.sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sm\:col-span-2 { grid-column: span 2 / span 2; }
}

@media (min-width: 48rem) {
	.md\:p-7 { padding: 1.75rem; }
	.md\:p-8 { padding: 2rem; }
	.md\:py-4 { padding-block: 1rem; }
	.md\:py-8 { padding-block: 2rem; }
	.md\:h-80 { height: 20rem; }
	.md\:text-2xl { font-size: 1.5rem; }
	.md\:text-5xl { font-size: 3rem; }
	.md\:text-6xl { font-size: 3.75rem; }
	.md\:w-auto { width: auto; }
	.md\:justify-end { justify-content: flex-end; }
	.md\:text-center { text-align: center; }
	.md\:mt-12 { margin-top: 3rem; }
}

@media (min-width: 64rem) {
	.lg\:block { display: block; }
	.lg\:hidden { display: none; }
	.lg\:items-start { align-items: start; }
	.lg\:items-end { align-items: end; }
	.lg\:items-stretch { align-items: stretch; }
	.lg\:justify-end { justify-content: flex-end; }
	.lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.lg\:col-span-3 { grid-column: span 3 / span 3; }
	.lg\:grid-cols-\[minmax\(0\,1fr\)_380px\] { grid-template-columns: minmax(0, 1fr) 380px; }
	.lg\:grid-cols-\[minmax\(0\,1fr\)_420px\] { grid-template-columns: minmax(0, 1fr) 420px; }
	.lg\:grid-cols-\[minmax\(0\,1fr\)_auto\] { grid-template-columns: minmax(0, 1fr) auto; }
	.lg\:grid-cols-\[minmax\(0\,2fr\)_minmax\(280px\,1fr\)\] { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }
}

@media (min-width: 80rem) {
	.xl\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
