.edge-schedule {
	--edge-schedule-background: #090909;
	--edge-schedule-surface: #151719;
	--edge-schedule-surface-raised: #1b1e21;
	--edge-schedule-text: #f7f4ef;
	--edge-schedule-muted: #c3c6c9;
	--edge-schedule-line: rgb(255 255 255 / 16%);
	--edge-schedule-accent: #a9cbe7;
	--edge-schedule-accent-soft: rgb(169 203 231 / 58%);
	--edge-schedule-input: #f4f1eb;
	--edge-schedule-input-text: #17191b;
	--edge-schedule-input-line: #73767a;
	box-sizing: border-box;
	width: 100%;
	max-width: 1440px;
	margin: 70px auto 30px;
	padding: clamp(24px, 4vw, 56px);
	overflow-wrap: anywhere;
	color: var(--edge-schedule-text);
	background: var(--edge-schedule-background);
	border: 1px solid var(--edge-schedule-line);
}

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

.edge-schedule__intro {
	max-width: 780px;
	margin-bottom: 36px;
}

.edge-schedule__eyebrow {
	margin: 0 0 8px;
	color: var(--edge-schedule-accent);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.edge-schedule__intro h2 {
	margin: 0 0 14px;
	color: var(--edge-schedule-text);
	font-size: clamp(2rem, 5vw, 4.5rem);
	line-height: 1;
}

.edge-schedule__intro p {
	margin: 0 0 12px;
}

.edge-schedule__updated {
	color: var(--edge-schedule-muted);
	font-size: 0.95rem;
}

.edge-schedule__notice {
	margin: 0 0 32px;
	padding: 18px 20px;
	color: var(--edge-schedule-text);
	background: var(--edge-schedule-surface-raised);
	border: 1px solid var(--edge-schedule-line);
	border-left: 3px solid var(--edge-schedule-accent);
}

.edge-schedule__notice strong {
	display: block;
	margin-bottom: 3px;
}

.edge-schedule__notice--stale {
	background: #3d2f0f;
	border-left-color: #f6c453;
}

.edge-schedule__notice--unavailable {
	background: #421b1b;
	border-left-color: #ff8e8e;
}

.edge-schedule__filters {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin: 0 0 24px;
	padding: clamp(18px, 3vw, 30px);
	background: var(--edge-schedule-surface);
	border: 1px solid var(--edge-schedule-line);
}

.edge-schedule__filter {
	min-width: 0;
}

.edge-schedule__filter--search {
	grid-column: span 2;
}

.edge-schedule__filter label {
	display: block;
	margin: 0 0 7px;
	color: var(--edge-schedule-text);
	font-size: 0.95rem;
	font-weight: 700;
}

.edge-schedule__filter input,
.edge-schedule__filter select {
	display: block;
	width: 100%;
	height: 50px;
	margin: 0;
	padding: 0 14px;
	color: var(--edge-schedule-input-text);
	font: inherit;
	line-height: 1.2;
	background: var(--edge-schedule-input);
	border: 2px solid var(--edge-schedule-input-line);
	border-radius: 0;
	box-shadow: none;
}

.edge-schedule__filter input::placeholder {
	color: #555;
	opacity: 1;
}

.edge-schedule__filter select option {
	color: var(--edge-schedule-input-text);
	background: var(--edge-schedule-input);
}

.edge-schedule__filter input:focus-visible,
.edge-schedule__filter select:focus-visible,
.edge-schedule__button:focus-visible,
.edge-schedule summary:focus-visible {
	outline: 3px solid var(--edge-schedule-accent);
	outline-offset: 3px;
}

.edge-schedule__filter-actions {
	display: flex;
	align-items: end;
}

.edge-schedule__button {
	display: inline-flex;
	min-height: 50px;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0 28px;
	color: var(--edge-schedule-input-text);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	background: var(--edge-schedule-input);
	border: 2px solid var(--edge-schedule-input);
	border-radius: 100px;
	cursor: pointer;
	transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

.edge-schedule__button:hover {
	color: var(--edge-schedule-input-text);
	background: var(--edge-schedule-accent);
	border-color: var(--edge-schedule-accent);
}

.edge-schedule__button--secondary {
	color: var(--edge-schedule-text);
	background: transparent;
	border-color: var(--edge-schedule-muted);
}

.edge-schedule__button--secondary:hover {
	color: var(--edge-schedule-text);
	background: var(--edge-schedule-surface-raised);
	border-color: var(--edge-schedule-accent);
}

.edge-schedule__filter-actions .edge-schedule__button {
	width: 100%;
}

.edge-schedule__count {
	margin: 0 0 24px;
	color: var(--edge-schedule-muted);
	font-weight: 700;
}

.edge-schedule__group,
.edge-schedule__collection {
	margin: 0 0 46px;
}

.edge-schedule__group > h3,
.edge-schedule__collection > h3 {
	margin: 0 0 18px;
	padding-bottom: 12px;
	color: var(--edge-schedule-text);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	border-bottom: 1px solid var(--edge-schedule-line);
}

.edge-schedule__day-group {
	margin-bottom: 34px;
}

.edge-schedule__day-group > h4 {
	margin: 0 0 16px;
	color: var(--edge-schedule-text);
	font-size: clamp(1.3rem, 2.4vw, 1.85rem);
}

.edge-schedule__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.edge-schedule__class {
	min-width: 0;
	margin: 0;
	padding: 0;
}

.edge-schedule__card {
	display: flex;
	height: 100%;
	min-width: 0;
	flex-direction: column;
	padding: clamp(18px, 2.5vw, 28px);
	background: var(--edge-schedule-surface-raised);
	border: 1px solid var(--edge-schedule-line);
	border-top: 2px solid var(--edge-schedule-accent-soft);
}

.edge-schedule__card-header {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 20px;
}

.edge-schedule__class-name {
	margin: 0 0 4px;
	color: var(--edge-schedule-text);
	font-size: clamp(1.2rem, 2.2vw, 1.6rem);
	line-height: 1.18;
}

.edge-schedule__style {
	margin: 0;
	color: var(--edge-schedule-accent);
	font-size: 0.9rem;
}

.edge-schedule__status {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	min-height: 28px;
	padding: 4px 11px;
	color: #101010;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background: #ddd;
	border-radius: 100px;
}

.edge-schedule__status--open {
	background: #8ee3ae;
}

.edge-schedule__status--full {
	background: #ffd27a;
}

.edge-schedule__status--waitlist {
	color: #111;
	background: #a9cbe7;
}

.edge-schedule__status--unavailable {
	color: var(--edge-schedule-text);
	background: #5c6470;
}

.edge-schedule__facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px 22px;
	margin: 0 0 22px;
}

.edge-schedule__facts > div {
	min-width: 0;
}

.edge-schedule__facts dt {
	margin: 0 0 2px;
	color: var(--edge-schedule-accent);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.edge-schedule__facts dd {
	margin: 0;
	color: var(--edge-schedule-text);
}

.edge-schedule__location {
	grid-column: 1 / -1;
}

.edge-schedule__card-footer {
	display: flex;
	gap: 18px;
	align-items: flex-end;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 18px;
	border-top: 1px solid var(--edge-schedule-line);
}

.edge-schedule__details {
	min-width: 0;
	flex: 1 1 auto;
}

.edge-schedule__details summary,
.edge-schedule__iframe-disclosure summary {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	padding: 8px 0;
	color: var(--edge-schedule-accent);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
}

.edge-schedule__details summary::marker,
.edge-schedule__iframe-disclosure summary::marker {
	display: none;
}

.edge-schedule__details summary::before,
.edge-schedule__iframe-disclosure summary::before {
	content: "+";
	display: inline-block;
	width: 1.25em;
	text-decoration: none;
}

.edge-schedule__details[open] summary::before,
.edge-schedule__iframe-disclosure[open] summary::before {
	content: "−";
}

.edge-schedule__details p {
	margin: 13px 0 0;
	color: var(--edge-schedule-muted);
}

.edge-schedule__no-results {
	margin: 20px 0;
	padding: 24px;
	background: var(--edge-schedule-surface);
	border: 1px solid var(--edge-schedule-line);
	border-left: 3px solid var(--edge-schedule-accent);
}

.edge-schedule__fallback {
	margin-top: 38px;
	padding-top: 28px;
	border-top: 1px solid var(--edge-schedule-line);
}

.edge-schedule__iframe-disclosure {
	margin-top: 25px;
}

.edge-schedule__iframe-status {
	margin: 18px 0 0;
	color: var(--edge-schedule-muted);
}

.edge-schedule__iframe {
	display: block;
	width: 100%;
	min-height: 5200px;
	margin-top: 18px;
	border: 0;
	background: var(--edge-schedule-input);
}

.edge-schedule__sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

@media (max-width: 1024px) {
	.edge-schedule__filters {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.edge-schedule__filter--search {
		grid-column: 1 / -1;
	}

	.edge-schedule__list {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 680px) {
	.edge-schedule {
		margin-top: 40px;
		padding: 22px 16px;
	}

	.edge-schedule__filters {
		grid-template-columns: minmax(0, 1fr);
		padding: 18px 14px;
	}

	.edge-schedule__filter--search {
		grid-column: auto;
	}

	.edge-schedule__card-header,
	.edge-schedule__card-footer {
		align-items: stretch;
		flex-direction: column;
	}

	.edge-schedule__status {
		align-self: flex-start;
	}

	.edge-schedule__facts {
		grid-template-columns: minmax(0, 1fr);
	}

	.edge-schedule__location {
		grid-column: auto;
	}

	.edge-schedule__card-footer .edge-schedule__button,
	.edge-schedule__fallback > .edge-schedule__button {
		width: 100%;
	}

	.edge-schedule__iframe {
		min-height: 14000px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.edge-schedule__button {
		transition: none;
	}
}
