.fh-schedule {
	--fh-black: #070707;
	--fh-panel: #141414;
	--fh-panel-2: #1c1c1c;
	--fh-white: #fff;
	--fh-muted: #aaa;
	--fh-line: rgba(255, 255, 255, .14);
	box-sizing: border-box;
	width: 100%;
	padding: clamp(24px, 4vw, 64px);
	background: var(--fh-black);
	color: var(--fh-white);
	font-family: Arial, Helvetica, sans-serif;
	line-height: 1.4;
}

.fh-schedule *, .fh-schedule *::before, .fh-schedule *::after { box-sizing: border-box; }
.fh-schedule button, .fh-schedule a { font: inherit; }

.fh-schedule__filters {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin: 0 auto clamp(28px, 4vw, 44px);
	overflow-x: auto;
	scrollbar-width: thin;
}

.fh-filter {
	flex: 0 0 auto;
	min-height: 44px;
	padding: 11px 25px;
	border: 1px solid var(--fh-line);
	border-radius: 2px;
	background: var(--fh-panel);
	color: var(--fh-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.fh-schedule .fh-filter.fh-elementor-hover-guard:hover,
.fh-schedule .fh-filter.fh-elementor-hover-guard:focus-visible {
	border-color: var(--fh-white) !important;
	background-color: var(--fh-panel) !important;
	color: var(--fh-white) !important;
}

.fh-schedule .fh-filter.fh-elementor-hover-guard.is-active,
.fh-schedule .fh-filter.fh-elementor-hover-guard.is-active:hover,
.fh-schedule .fh-filter.fh-elementor-hover-guard.is-active:focus-visible {
	border-color: var(--fh-white) !important;
	background-color: var(--fh-white) !important;
	color: var(--fh-black) !important;
}

.fh-schedule__dates {
	display: grid;
	grid-auto-columns: minmax(154px, 1fr);
	grid-auto-flow: column;
	gap: 12px;
	margin-bottom: clamp(34px, 5vw, 54px);
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
}

.fh-date {
	display: flex;
	min-height: 106px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 14px;
	border: 1px solid var(--fh-line);
	border-radius: 2px;
	background: var(--fh-panel);
	color: var(--fh-white);
	text-align: center;
	scroll-snap-align: start;
	cursor: pointer;
	transition: transform .18s ease, background .18s ease, color .18s ease;
}

.fh-schedule .fh-date.fh-elementor-hover-guard:hover {
	border-color: rgba(255,255,255,.45) !important;
	background-color: var(--fh-panel) !important;
	color: var(--fh-white) !important;
	transform: translateY(-2px);
}
.fh-schedule .fh-date.fh-elementor-hover-guard.is-active,
.fh-schedule .fh-date.fh-elementor-hover-guard.is-active:hover {
	background-color: var(--fh-white) !important;
	color: var(--fh-black) !important;
}
.fh-date:focus-visible, .fh-filter:focus-visible, .fh-class__button:focus-visible { outline: 2px solid var(--fh-white); outline-offset: 3px; }
.fh-date.is-active { background: var(--fh-white); color: var(--fh-black); }
.fh-date__weekday, .fh-date__count { font-size: 11px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.fh-date__weekday { opacity: .72; }
.fh-date__number { margin: 1px 0 8px; font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; font-size: 22px; font-weight: 500; letter-spacing: .03em; text-transform: uppercase; }
.fh-date__count { opacity: .64; }

.fh-schedule__classes { display: grid; gap: 18px; }

.fh-class {
	position: relative;
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr) auto;
	gap: 24px;
	align-items: center;
	min-height: 150px;
	padding: 28px;
	border: 1px solid var(--fh-line);
	border-radius: 3px;
	background: var(--fh-panel-2);
}

.fh-class--featured { border-color: rgba(255,255,255,.7); }
.fh-class[hidden], .fh-date[hidden] { display: none !important; }

.fh-class__status {
	position: absolute;
	top: -1px;
	right: -1px;
	padding: 5px 14px;
	background: var(--fh-white);
	color: var(--fh-black);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.fh-class__time { display: flex; flex-direction: column; }
.fh-class__time strong { font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; font-size: clamp(28px, 3vw, 36px); font-weight: 500; letter-spacing: .025em; line-height: 1; }
.fh-class--featured .fh-class__time strong { -webkit-text-stroke: 1px var(--fh-white); color: transparent; }
.fh-class__time span { margin-top: 7px; color: var(--fh-muted); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.fh-class__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.fh-class__type { padding: 4px 10px; border: 1px solid rgba(255,255,255,.45); color: var(--fh-white); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fh-class__coach { color: var(--fh-muted); font-size: 12px; }
.fh-class__coach span { display: inline-block; margin-right: 4px; font-size: 7px; vertical-align: 2px; }
.fh-class__body h3 { margin: 7px 0 6px; color: var(--fh-white); font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; font-size: clamp(21px, 2.1vw, 28px); font-weight: 500; letter-spacing: .035em; line-height: 1.1; text-transform: uppercase; }
.fh-class__body p { max-width: 720px; margin: 0; color: var(--fh-muted); font-size: 13px; }

.fh-class__actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.fh-class__availability { padding: 7px 13px; background: #292929; color: #ddd; font-size: 11px; font-weight: 800; white-space: nowrap; }
.fh-class__button { display: inline-flex; min-width: 166px; min-height: 48px; align-items: center; justify-content: center; padding: 12px 20px; border: 1px solid var(--fh-white); background: var(--fh-white); color: var(--fh-black) !important; font-size: 11px; font-weight: 800; letter-spacing: .03em; text-decoration: none !important; text-transform: uppercase; transition: background .18s ease, color .18s ease; }
.fh-schedule .fh-class__button.fh-elementor-hover-guard:hover,
.fh-schedule .fh-class__button.fh-elementor-hover-guard:focus-visible {
	border-color: var(--fh-white) !important;
	background-color: transparent !important;
	color: var(--fh-white) !important;
}
.fh-class--featured .fh-class__button { background: transparent; color: var(--fh-white) !important; }
.fh-schedule .fh-class--featured .fh-class__button.fh-elementor-hover-guard:hover,
.fh-schedule .fh-class--featured .fh-class__button.fh-elementor-hover-guard:focus-visible {
	background-color: var(--fh-white) !important;
	color: var(--fh-black) !important;
}
.fh-schedule__no-results, .fh-schedule--empty { padding: 42px 24px; border: 1px solid var(--fh-line); background: var(--fh-panel); color: var(--fh-muted); text-align: center; }

@media (max-width: 920px) {
	.fh-class { grid-template-columns: 90px minmax(0, 1fr); }
	.fh-class__actions { grid-column: 2; justify-content: flex-start; }
}

@media (max-width: 640px) {
	.fh-schedule { padding: 24px 16px 34px; }
	.fh-schedule__filters { justify-content: flex-start; margin-right: -16px; margin-left: -16px; padding: 0 16px 5px; }
	.fh-filter { padding-inline: 18px; }
	.fh-schedule__dates { grid-auto-columns: minmax(132px, 42vw); margin-right: -16px; margin-left: -16px; padding: 0 16px 5px; }
	.fh-date { min-height: 98px; }
	.fh-class { grid-template-columns: 1fr; gap: 17px; min-height: 0; padding: 24px 20px 20px; }
	.fh-class__status { position: static; width: max-content; max-width: 100%; margin: -24px -20px 1px auto; }
	.fh-class__time { flex-direction: row; align-items: baseline; gap: 10px; }
	.fh-class__time span { margin: 0; }
	.fh-class__actions { grid-column: auto; display: grid; grid-template-columns: 1fr; gap: 10px; }
	.fh-class__availability { width: fit-content; }
	.fh-class__button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.fh-schedule * { scroll-behavior: auto !important; transition: none !important; }
}
