.fpr-schedule {
	--fpr-accent: #8d4267;
	--fpr-ink: #27212a;
	--fpr-muted: #6f6670;
	--fpr-border: #e9dfe5;
	--fpr-surface: #fff;
	--fpr-navy: #092039;
	--fpr-gold: #d8b04f;
	--fpr-slot-height: 46px;
	color: var(--fpr-ink);
	max-width: 1560px;
	margin: 0 auto;
	padding: clamp(16px, 3vw, 40px);
	overflow-x: clip;
}

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

.fpr-schedule [hidden] { display: none !important; }

.fpr-schedule__header {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 28px;
	padding: clamp(22px, 4vw, 42px);
	overflow: hidden;
	border-radius: 20px;
	background:
		radial-gradient(circle at 85% 10%, rgba(216,176,79,.24), transparent 28%),
		linear-gradient(135deg, #071b30, #0d3150);
	color: #fff;
	box-shadow: 0 18px 44px rgba(9, 32, 57, .18);
}
.fpr-schedule__header::after {
	position: absolute;
	right: clamp(24px, 8vw, 120px);
	bottom: -62px;
	width: 180px;
	height: 180px;
	border: 1px solid rgba(216,176,79,.24);
	border-radius: 50%;
	content: "";
}

.fpr-schedule__eyebrow {
	margin: 0 0 4px;
	color: #e3c46f;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.fpr-schedule__header h2 {
	margin: 0;
	color: #fff !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 4vw, 3.6rem);
	font-weight: 400;
	letter-spacing: .025em;
}
.fpr-schedule__intro {
	max-width: 720px;
	margin: 8px 0 0;
	color: rgba(255,255,255,.78);
	font-size: clamp(.9rem, 1.5vw, 1.05rem);
}
.fpr-schedule__header .fpr-schedule__print {
	position: relative;
	z-index: 1;
	flex: 0 0 auto;
	border-color: #e3c46f;
	background: transparent;
	color: #fff;
}

.fpr-schedule__registration-status {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	margin: 0 0 28px;
	padding: 16px 18px;
	border: 1px solid #e6c985;
	border-radius: 14px;
	background: #fff9e9;
	color: #4d3b16;
}
.fpr-schedule__registration-status strong { display: block; font-size: 1rem; }
.fpr-schedule__registration-status p { margin: 2px 0 0; }
.fpr-schedule__registration-dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--fpr-gold);
	box-shadow: 0 0 0 6px rgba(216, 176, 79, .18);
}

.fpr-schedule__filters {
	display: grid;
	gap: 12px;
	margin: 0 0 24px;
	padding: 16px 18px;
	overflow: hidden;
	border: 1px solid rgba(9,32,57,.12);
	border-radius: 20px;
	background:
		radial-gradient(circle at 95% -30%, rgba(216,176,79,.24), transparent 32%),
		linear-gradient(120deg, rgba(9,32,57,.035), transparent 38%),
		#fff;
	box-shadow: 0 16px 42px rgba(9,32,57,.1);
}
.fpr-schedule__filter-anchor { min-width: 0; }
.fpr-schedule__filter-heading {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 11px;
	align-items: center;
	padding-bottom: 12px;
	border-bottom: 1px solid #ebe4dd;
}
.fpr-schedule__filter-heading > span {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--fpr-navy);
	box-shadow: 0 7px 16px rgba(9,32,57,.18);
	color: #e3c46f;
}
.fpr-schedule__filter-heading svg {
	width: 22px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-width: 1.7;
}
.fpr-schedule__filter-heading strong {
	display: block;
	color: var(--fpr-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.08rem;
	font-weight: 500;
}
.fpr-schedule__filter-heading p {
	margin: 2px 0 0;
	color: #756b72;
	font-size: .75rem;
}
.fpr-schedule__filter-heading-actions { display: flex; gap: 6px; }
.fpr-schedule button.fpr-schedule__mobile-filter-toggle { display: none; }
.fpr-schedule button.fpr-schedule__filter-reset {
	min-height: 34px;
	padding: 6px 11px;
	border: 0;
	border-radius: 9px;
	background: #f1ece7;
	color: #6b6066;
	font: inherit;
	font-size: .7rem;
	font-weight: 750;
	cursor: pointer;
}
.fpr-schedule__filter-row {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr);
	gap: 10px;
	align-items: center;
}
.fpr-schedule__filter-row--days { display: none; }
.fpr-schedule__filter-row--poles,
.fpr-schedule__filter-row--views { display: none; }
.fpr-schedule__filter-row--types { grid-template-columns: 92px minmax(0, 1fr) auto; }
.fpr-schedule__filter-row--compact { grid-template-columns: 92px minmax(0, 1fr); }
.fpr-schedule__filter-row > strong {
	color: #7a6d63;
	font-size: .67rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.fpr-schedule__filter-scroll {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	min-width: 0;
}
.fpr-schedule .fpr-schedule__filter-row button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 42px;
	padding: 8px 13px;
	border: 1px solid #e3dcd5;
	border-radius: 12px;
	background: linear-gradient(180deg, #fff, #fbf8f5);
	box-shadow: 0 3px 9px rgba(9,32,57,.045);
	color: #4a4148;
	font: inherit;
	font-size: .76rem;
	font-weight: 750;
	line-height: 1;
	cursor: pointer;
	transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease, background .18s ease;
	white-space: nowrap;
}
.fpr-schedule .fpr-schedule__filter-row button[class^="is-"]::before {
	width: 10px;
	height: 10px;
	border: 1px solid rgba(9,32,57,.08);
	border-radius: 4px;
	background: var(--filter-color);
	content: "";
}
.fpr-schedule .fpr-schedule__filter-row button.is-classique { --filter-color: #f1c85e; }
.fpr-schedule .fpr-schedule__filter-row button.is-moderne { --filter-color: #dc86a7; }
.fpr-schedule .fpr-schedule__filter-row button.is-hiphop { --filter-color: #70a9df; }
.fpr-schedule .fpr-schedule__filter-row button.is-ragga { --filter-color: #67b9aa; }
.fpr-schedule .fpr-schedule__filter-row button.is-wellness { --filter-color: #8fb764; }
.fpr-schedule .fpr-schedule__filter-row button.is-other { --filter-color: #b798c5; }
.fpr-schedule .fpr-schedule__filter-row button.is-artistic { --filter-color: #d8b04f; }
.fpr-schedule .fpr-schedule__filter-row button.is-dance { --filter-color: #8d4267; }
.fpr-schedule .fpr-schedule__filter-row button[aria-pressed="true"] {
	border-color: var(--fpr-navy);
	background: linear-gradient(145deg, #092039, #153d5d);
	box-shadow: 0 7px 17px rgba(9,32,57,.2);
	color: #fff;
	transform: translateY(-1px);
}
.fpr-schedule .fpr-schedule__filter-row button:hover:not(:disabled) {
	border-color: #a99a8e;
	transform: translateY(-1px);
}
.fpr-schedule .fpr-schedule__selected-filter {
	min-width: 124px;
	border-color: #c7a34c;
	background: linear-gradient(145deg, #fff9e9, #f8edcc);
	color: #4f3c0e;
}
.fpr-schedule .fpr-schedule__selected-filter span {
	display: grid;
	place-items: center;
	min-width: 21px;
	height: 21px;
	padding-inline: 5px;
	border-radius: 999px;
	background: #e3c46f;
	color: #182332;
	font-size: .68rem;
}
.fpr-schedule .fpr-schedule__selected-filter[aria-pressed="true"] span {
	background: #fff;
}
.fpr-schedule__filter-status {
	margin: 0;
	color: #81756b;
	font-size: .72rem;
	text-align: right;
}
.fpr-schedule__filter-empty {
	display: grid;
	gap: 3px;
	margin: 18px 0;
	padding: 22px;
	border: 1px dashed #cbbdb1;
	border-radius: 14px;
	background: #fbf8f3;
	text-align: center;
}
.fpr-schedule__filter-empty span { color: var(--fpr-muted); font-size: .85rem; }
.fpr-schedule__view-switch {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4px;
	padding: 3px;
	border-radius: 12px;
	background: #eee8e2;
}
.fpr-schedule .fpr-schedule__view-switch button {
	min-height: 36px;
	border: 0;
	box-shadow: none;
}

.fpr-schedule__pole {
	margin-top: 24px;
	overflow: hidden;
	border: 1px solid #dcd4ca;
	border-radius: 16px;
	background: #fffdf9;
	box-shadow: 0 12px 34px rgba(35, 31, 25, .07);
}
.fpr-schedule__pole-heading {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 15px 20px;
	background: #f3e8c9;
	color: var(--fpr-navy);
}
.fpr-schedule__pole--artistic .fpr-schedule__pole-heading { background: var(--fpr-navy); color: #fff; }
.fpr-schedule__pole-heading h3 { margin: 0; color: inherit !important; font-size: 1.18rem; text-transform: uppercase; letter-spacing: .06em; }
.fpr-schedule__pole-heading p { margin: 2px 0 0; font-size: .82rem; opacity: .8; }
.fpr-schedule__pole-icon { font-size: 1.55rem; color: var(--fpr-gold); }
.fpr-schedule__mobile-calendar-tools { display: none; }
.fpr-schedule__table-wrap { max-width: 100%; overflow-x: auto; outline-offset: -3px; }
.fpr-schedule__table {
	display: grid;
	grid-template-columns: repeat(6, minmax(145px, 1fr));
	min-width: 960px;
	background: #f7f2e9;
}
.fpr-schedule__table.has-timeline { grid-template-columns: 84px repeat(6, minmax(145px, 1fr)); }
.fpr-schedule__table.has-timeline:has(.fpr-schedule__course.is-overlap) {
	grid-template-columns:
		84px
		repeat(3, minmax(145px, 1fr))
		minmax(315px, 2fr)
		repeat(2, minmax(145px, 1fr));
}
.fpr-schedule__time-heading,
.fpr-schedule__day-heading {
	display: grid;
	place-items: center;
	min-height: 50px;
	padding: 10px;
	border-right: 1px solid #d7d1c8;
	border-bottom: 1px solid #d7d1c8;
	background: var(--fpr-navy);
	color: #fff;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
}
.fpr-schedule__time-heading {
	padding-inline: 5px;
	color: #e3c46f;
	font-size: .7rem;
	letter-spacing: .035em;
	text-align: center;
}
.fpr-schedule__day-heading {
	position: sticky;
	z-index: 4;
	top: 0;
}
.fpr-schedule__time-axis {
	display: grid;
	grid-template-rows: repeat(52, calc(var(--fpr-slot-height) / 2));
	border-right: 1px solid #d7d1c8;
	background: #f5efe4;
}
.fpr-schedule__time-axis span {
	display: flex;
	grid-row: var(--fpr-time-row) / span 4;
	align-items: start;
	justify-content: center;
	padding: 5px 2px;
	border-top: 1px solid #ddd5c9;
	color: #6b6257;
	font-size: .7rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	text-align: center;
}
.fpr-schedule__day {
	min-width: 0;
	padding: 10px;
	border-right: 1px solid #ddd7cd;
	border-bottom: 1px solid #ddd7cd;
	background:
		repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--fpr-slot-height) - 1px), rgba(122, 110, 94, .085) calc(var(--fpr-slot-height) - 1px), rgba(122, 110, 94, .085) var(--fpr-slot-height)),
		#fffdf9;
}
.fpr-schedule__day h4 {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 10px;
	color: var(--fpr-navy);
	font-size: .86rem;
	text-transform: capitalize;
}
.fpr-schedule__day h4 small {
	color: #8b7b68;
	font-size: .7rem;
	font-weight: 600;
}
.fpr-schedule__table.has-timeline .fpr-schedule__day { padding: 5px; }
.fpr-schedule__table.has-timeline .fpr-schedule__day h4 { display: none; }
.fpr-schedule__course-list { display: grid; align-content: start; gap: 7px; }
.fpr-schedule__table.has-timeline .fpr-schedule__course-list {
	grid-template-columns: repeat(var(--fpr-day-lanes, 1), minmax(0, 1fr));
	grid-template-rows: repeat(52, calc(var(--fpr-slot-height) / 2));
	gap: 0;
	min-height: calc(26 * var(--fpr-slot-height));
}
.fpr-schedule .fpr-schedule__course {
	display: grid;
	width: 100%;
	min-height: 76px;
	padding: 9px 10px;
	border: 2px solid rgba(255,255,255,.7);
	border-radius: 8px;
	background: var(--fpr-course-bg, #f2dce7);
	box-shadow: 0 2px 7px rgba(55, 34, 46, .08);
	color: var(--fpr-ink);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.fpr-schedule__table.has-timeline .fpr-schedule__course {
	grid-column: 1 / -1;
	grid-row: var(--fpr-course-row) / span var(--fpr-course-span);
	align-content: center;
	min-height: 0;
	margin: 3px;
	padding: 8px 9px;
	overflow: hidden;
	border-radius: 6px;
	box-shadow: 0 1px 4px rgba(55, 34, 46, .07);
}
.fpr-schedule__table.has-timeline .fpr-schedule__course.is-overlap {
	grid-column: var(--fpr-course-lane) / span 1;
	margin-inline: 2px;
	padding: 26px 6px 7px;
	border-color: rgba(9,32,57,.13);
	box-shadow: 0 3px 10px rgba(9,32,57,.12);
}
.fpr-schedule__overlap-group {
	z-index: 3;
	display: inline-flex;
	grid-column: 1 / -1;
	grid-row: var(--fpr-course-row) / span 1;
	align-self: start;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 23px;
	margin: 3px 3px 0;
	border-radius: 5px 5px 0 0;
	background: var(--fpr-navy);
	box-shadow: 0 4px 10px rgba(9,32,57,.15);
	color: #fff;
	font-size: .56rem;
	line-height: 1;
	pointer-events: none;
}
.fpr-schedule__overlap-group span { color: #e3c46f; font-weight: 850; }
.fpr-schedule__overlap-group strong {
	font-size: inherit;
	font-weight: 750;
	letter-spacing: .02em;
	text-transform: uppercase;
}
.fpr-schedule__overlap-badge {
	display: none;
	align-items: center;
	justify-self: center;
	margin-bottom: 2px;
	padding: 2px 5px;
	border-radius: 999px;
	background: rgba(9,32,57,.82);
	color: #fff;
	font-size: .56rem;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1.2;
	white-space: nowrap;
}

.fpr-schedule .fpr-schedule__course--yoga,
.fpr-schedule .fpr-schedule__course--pilates { --fpr-course-bg: #dcebc9; }
.fpr-schedule .fpr-schedule__course--hip-hop,
.fpr-schedule .fpr-schedule__course--hip-hop-enfants,
.fpr-schedule .fpr-schedule__course--hip-hop-moyens,
.fpr-schedule .fpr-schedule__course--hip-hop-ados { --fpr-course-bg: #cfe3f8; }
.fpr-schedule .fpr-schedule__course--modern-jazz,
.fpr-schedule .fpr-schedule__course--modern-jazz,
.fpr-schedule .fpr-schedule__course--moderne-contemporain,
.fpr-schedule .fpr-schedule__course--contemporain { --fpr-course-bg: #f5d2df; }
.fpr-schedule .fpr-schedule__course--classique { --fpr-course-bg: #fff0c9; }
.fpr-schedule .fpr-schedule__course--ragga,
.fpr-schedule .fpr-schedule__course--street-jazz { --fpr-course-bg: #cce9e4; }
.fpr-schedule .fpr-schedule__course--technique,
.fpr-schedule .fpr-schedule__course--heels,
.fpr-schedule .fpr-schedule__course--broadway,
.fpr-schedule .fpr-schedule__course--eveil { --fpr-course-bg: #eadcf0; }
.fpr-schedule .fpr-schedule__course--piano,
.fpr-schedule .fpr-schedule__course--theatre,
.fpr-schedule .fpr-schedule__course--chant,
.fpr-schedule .fpr-schedule__course--dessin { --fpr-course-bg: #fff; }

.fpr-schedule .fpr-schedule__course:hover:not(:disabled),
.fpr-schedule .fpr-schedule__course:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 7px 18px rgba(55, 34, 46, .12);
}

.fpr-schedule .fpr-schedule__course.is-selected,
.fpr-schedule .fpr-schedule__course[aria-pressed="true"] {
	border-color: var(--fpr-accent);
	background: #fff7fb;
}

.fpr-schedule .fpr-schedule__course:disabled {
	cursor: not-allowed;
	opacity: .68;
	box-shadow: none;
}
.fpr-schedule .fpr-schedule__course.is-registration-locked,
.fpr-schedule__pole--artistic .fpr-schedule__course:disabled {
	opacity: 1 !important;
	box-shadow: 0 2px 7px rgba(55, 34, 46, .08);
}
.fpr-schedule__table.has-timeline .fpr-schedule__course-type,
.fpr-schedule__table.has-timeline .fpr-schedule__course-meta:last-of-type { display: none; }
.fpr-schedule__table.has-timeline .fpr-schedule__course-time {
	font-size: .69rem;
	line-height: 1.15;
}
.fpr-schedule__table.has-timeline .fpr-schedule__course-title {
	margin-block: 4px;
	color: #222028;
	font-size: .76rem;
	font-weight: 680;
	letter-spacing: .025em;
	text-transform: uppercase;
}
.fpr-schedule__table.has-timeline .fpr-schedule__course-meta {
	font-size: .69rem;
	line-height: 1.15;
}
.fpr-schedule__pole--artistic .fpr-schedule__course {
	align-content: start;
	min-height: 0;
	padding: 14px;
}
.fpr-schedule__pole--artistic .fpr-schedule__course-status,
.fpr-schedule__pole--artistic .fpr-schedule__course-meta:last-of-type { display: none; }

.fpr-schedule .fpr-schedule__course.is-full { --fpr-course-color: #bc8644; }
.fpr-schedule .fpr-schedule__course.is-cancelled { --fpr-course-color: #b65353; }
.fpr-schedule__course-time { color: var(--fpr-muted); font-size: .82rem; font-weight: 700; }
.fpr-schedule__course-time {
	font-variant-numeric: tabular-nums;
	letter-spacing: .015em;
}
.fpr-schedule__course-title {
	margin: 3px 0;
	color: #17466d;
	font-weight: 750;
	line-height: 1.2;
	text-wrap: balance;
}
.fpr-schedule__course-type { color: #776a5e; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.fpr-schedule__course-meta { color: var(--fpr-muted); font-size: .8rem; }
.fpr-schedule__course-meta::before {
	margin-right: 5px;
	color: var(--fpr-accent);
	content: "•";
}
.fpr-schedule__course-status { margin-top: 6px; color: #8a3434; font-size: .78rem; font-weight: 700; }

.fpr-schedule__artistic-board {
	margin-bottom: 0;
	border-radius: 16px 16px 0 0;
	box-shadow: 0 8px 26px rgba(35, 31, 25, .06);
}
.fpr-schedule__artistic-grid {
	display: grid;
	grid-template-columns: minmax(150px, .82fr) repeat(4, minmax(0, 1fr));
	background: #fff;
}
.fpr-schedule__artistic-title,
.fpr-schedule__artistic-day {
	min-height: 58px;
	border-right: 1px solid rgba(255,255,255,.14);
	background: var(--fpr-navy);
	color: #fff;
}
.fpr-schedule__artistic-title {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 11px 16px;
}
.fpr-schedule__artistic-title > span {
	display: grid;
	flex: 0 0 auto;
	width: 35px;
	height: 35px;
	place-items: center;
	border: 1px solid rgba(216,176,79,.65);
	border-radius: 50%;
	color: var(--fpr-gold);
}
.fpr-schedule__artistic-title > span svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
}
.fpr-schedule__artistic-title h3 {
	margin: 0;
	color: #fff !important;
	font-size: .92rem;
	font-weight: 750;
	letter-spacing: .065em;
	line-height: 1.15;
	text-transform: uppercase;
}
.fpr-schedule__artistic-day {
	display: grid;
	place-items: center;
	padding: 10px;
	font-size: .76rem;
	font-weight: 750;
	letter-spacing: .055em;
	text-transform: uppercase;
}
.fpr-schedule__artistic-row { display: contents; }
.fpr-schedule__artistic-row[hidden] { display: none; }
.fpr-schedule__artistic-row--piano { --fpr-artistic-accent: #c38d27; --fpr-artistic-soft: #fff8e8; }
.fpr-schedule__artistic-row--theatre { --fpr-artistic-accent: #a84f72; --fpr-artistic-soft: #fff2f7; }
.fpr-schedule__artistic-row--chant { --fpr-artistic-accent: #267f82; --fpr-artistic-soft: #edfafa; }
.fpr-schedule__artistic-row--dessin { --fpr-artistic-accent: #3f7198; --fpr-artistic-soft: #f0f7fc; }
.fpr-schedule__artistic-discipline,
.fpr-schedule__artistic-cell {
	min-width: 0;
	min-height: 92px;
	border-right: 1px solid #ded7cd;
	border-bottom: 1px solid #ded7cd;
}
.fpr-schedule__artistic-discipline {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 12px 16px;
	border-left: 4px solid var(--fpr-artistic-accent, var(--fpr-gold));
	background: linear-gradient(135deg, var(--fpr-artistic-soft, #f3e8c9), #f8edce);
	color: var(--fpr-navy);
}
.fpr-schedule__artistic-discipline span {
	display: grid;
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	place-items: center;
	color: var(--fpr-navy);
}
.fpr-schedule__artistic-discipline span svg {
	width: 29px;
	height: 29px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.45;
}
.fpr-schedule .fpr-schedule__artistic-discipline strong {
	color: var(--fpr-navy) !important;
	font-size: .75rem;
	font-weight: 760;
	letter-spacing: .065em;
	text-transform: uppercase;
}
.fpr-schedule__artistic-cell {
	display: grid;
	align-content: stretch;
	gap: 7px;
	padding: 7px;
	background:
		linear-gradient(135deg, rgba(255,255,255,.72), transparent),
		#f7f3ec;
}
.fpr-schedule__artistic-entry {
	display: grid;
	grid-template-columns: minmax(60px, auto) minmax(0, 1fr);
	grid-template-rows: auto auto;
	align-content: center;
	column-gap: 10px;
	min-height: 91px;
	padding: 10px 12px;
	color: var(--fpr-ink);
}
.fpr-schedule button.fpr-schedule__artistic-entry {
	width: 100%;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid rgba(9,32,57,.1);
	border-left: 4px solid var(--fpr-artistic-accent, var(--fpr-gold));
	border-radius: 10px;
	background: linear-gradient(145deg, #fff, var(--fpr-artistic-soft, #fffaf0));
	box-shadow: 0 5px 14px rgba(9,32,57,.08);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: background-color .16s ease, box-shadow .16s ease;
}
.fpr-schedule button.fpr-schedule__artistic-entry:hover:not(:disabled),
.fpr-schedule button.fpr-schedule__artistic-entry:focus-visible {
	transform: none;
	border-color: color-mix(in srgb, var(--fpr-artistic-accent, var(--fpr-accent)) 58%, white);
	background: #fff;
	box-shadow: 0 9px 22px rgba(9,32,57,.13);
}
.fpr-schedule button.fpr-schedule__artistic-entry.is-selected,
.fpr-schedule button.fpr-schedule__artistic-entry[aria-pressed="true"] {
	border-color: var(--fpr-artistic-accent, var(--fpr-accent));
	background: var(--fpr-artistic-soft, #f6e8ef);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--fpr-artistic-accent, var(--fpr-accent)) 20%, transparent), 0 8px 20px rgba(9,32,57,.12);
}
.fpr-schedule button.fpr-schedule__artistic-entry:disabled { cursor: not-allowed; }
.fpr-schedule__artistic-entry + .fpr-schedule__artistic-entry { border-top: 1px solid #e7e0d8; }
.fpr-schedule__artistic-entry em { display: none; }
.fpr-schedule__artistic-entry > span {
	grid-row: 1 / span 2;
	align-self: center;
	justify-self: start;
	padding: 5px 7px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--fpr-artistic-accent, var(--fpr-gold)) 12%, white);
	color: var(--fpr-artistic-accent, #796f64);
	font-size: .7rem;
	font-style: normal;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	line-height: 1.25;
}
.fpr-schedule .fpr-schedule__artistic-entry strong {
	align-self: end;
	color: #222028 !important;
	font-size: .73rem;
	font-weight: 680;
	letter-spacing: .025em;
	line-height: 1.25;
	text-transform: uppercase;
}
.fpr-schedule__artistic-entry small {
	align-self: start;
	color: #766e65;
	font-size: .68rem;
	line-height: 1.3;
}
.fpr-schedule__artistic-entry .fpr-schedule__course-status {
	grid-column: 2;
	margin-top: 3px;
	font-size: .65rem;
}
.fpr-schedule__artistic-note {
	margin: 0;
	padding: 9px 16px;
	border-bottom: 1px solid #ded7cd;
	background: #faf6ee;
	color: #6d655c;
	font-size: .72rem;
	text-align: right;
}

.fpr-schedule__summary {
	position: sticky;
	z-index: 20;
	bottom: max(12px, env(safe-area-inset-bottom));
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 18px;
	margin-top: 24px;
	padding: 14px 18px;
	border: 1px solid var(--fpr-border);
	border-radius: 16px;
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 10px 35px rgba(55, 34, 46, .15);
}

.fpr-schedule__selected-list {
	display: flex;
	gap: 8px;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	list-style: none;
}
.fpr-schedule__selected-list li { flex: 0 0 auto; color: var(--fpr-muted); font-size: .82rem; }
.fpr-schedule__summary-actions { display: flex; gap: 8px; }
.fpr-schedule__registration-reminder {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
	padding: 14px 18px;
	border: 1px solid #d8d8d8;
	border-radius: 14px;
	background: #f1f1f1;
	color: #575757;
}
.fpr-schedule__registration-reminder > span {
	display: grid;
	flex: 0 0 34px;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 2px solid #9a9a9a;
	border-radius: 50%;
	font-size: 0;
}
.fpr-schedule__registration-reminder > span::after {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #888;
}
.fpr-schedule__registration-reminder strong { display: block; }
.fpr-schedule__registration-reminder p { margin: 3px 0 0; font-size: .82rem; }

.fpr-schedule button.fpr-schedule__clear,
.fpr-schedule button.fpr-schedule__continue,
.fpr-schedule button.fpr-schedule__print {
	min-height: 44px;
	padding: 9px 16px;
	border: 1px solid var(--fpr-accent);
	border-radius: 999px;
	background: var(--fpr-surface);
	color: var(--fpr-accent);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.fpr-schedule button.fpr-schedule__continue { background: var(--fpr-accent); color: #fff; }
.fpr-schedule button:disabled { cursor: not-allowed; opacity: .5; }
.fpr-schedule__notice { min-height: 24px; margin-top: 8px; color: #8a3434; text-align: center; }
.fpr-course-sheet-open { overflow: hidden; }
.fpr-schedule__course-sheet {
	--fpr-navy: #092039;
	position: fixed;
	z-index: 2147483646;
	inset: 0;
	display: none;
	align-items: end;
}
.fpr-schedule__course-sheet-backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	border: 0;
	background: rgba(9,24,42,.62);
	backdrop-filter: blur(4px);
}
.fpr-schedule__course-sheet-dialog {
	position: relative;
	width: 100%;
	padding: 8px 18px max(18px, env(safe-area-inset-bottom));
	border-radius: 24px 24px 0 0;
	background: #fff;
	box-shadow: 0 -22px 60px rgba(9,24,42,.25);
	animation: fpr-sheet-arrive .26s cubic-bezier(.2,.8,.2,1) both;
}
.fpr-schedule__course-sheet-handle {
	width: 46px;
	height: 5px;
	margin: 0 auto 13px;
	border-radius: 99px;
	background: #d8d1cb;
}
.fpr-schedule__course-sheet-dialog header {
	display: flex;
	align-items: start;
	justify-content: space-between;
	gap: 14px;
}
.fpr-schedule__course-sheet-dialog header p {
	margin: 0 0 2px;
	color: #9a7724;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.fpr-schedule__course-sheet-dialog h2 {
	margin: 0;
	color: var(--fpr-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.6rem;
}
.fpr-schedule__course-sheet .fpr-schedule__course-sheet-dialog header button {
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid #e4ddd6;
	border-radius: 50%;
	background: #f7f3ef;
	color: #4f4850;
	font: 400 1.5rem/1 sans-serif;
}
.fpr-schedule__course-sheet-facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0,1fr));
	gap: 8px;
	margin: 18px 0 12px;
}
.fpr-schedule__course-sheet-facts p {
	display: grid;
	gap: 4px;
	margin: 0;
	padding: 11px;
	border-radius: 12px;
	background: #f7f3ef;
}
.fpr-schedule__course-sheet-facts span { color: #847981; font-size: .64rem; text-transform: uppercase; }
.fpr-schedule__course-sheet-facts strong { color: #302a31; font-size: .76rem; line-height: 1.25; }
.fpr-schedule__course-sheet-status { margin: 12px 0; color: #6f6670; font-size: .82rem; }
.fpr-schedule__course-sheet button.fpr-schedule__course-sheet-select {
	width: 100%;
	min-height: 48px;
	border: 0;
	border-radius: 14px;
	background: var(--fpr-navy);
	color: #fff;
	font: inherit;
	font-weight: 800;
}
.fpr-schedule__debug { color: var(--fpr-muted); font-size: .8rem; }
.fpr-schedule__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin: -1px 0 0;
	padding: 12px 18px;
	border: 1px solid #dcd4ca;
	border-top-color: #e7e0d8;
	border-radius: 0 0 16px 16px;
	background: #faf6ee;
	color: #625b53;
	font-size: .74rem;
}
.fpr-schedule__legend span::before {
	display: inline-block;
	width: 13px;
	height: 13px;
	margin-right: 6px;
	border: 1px solid rgba(9,32,57,.08);
	border-radius: 3px;
	background: var(--legend-color);
	content: "";
	vertical-align: -2px;
}
.fpr-schedule__legend .is-classique { --legend-color: #fff0c9; }
.fpr-schedule__legend .is-moderne { --legend-color: #f5d2df; }
.fpr-schedule__legend .is-hiphop { --legend-color: #cfe3f8; }
.fpr-schedule__legend .is-ragga { --legend-color: #cce9e4; }
.fpr-schedule__legend .is-wellness { --legend-color: #dcebc9; }
.fpr-schedule__legend .is-artistic { --legend-color: #fff; }

@media (min-width: 621px) {
	.fpr-schedule__table.has-timeline .fpr-schedule__course {
		place-items: center;
		text-align: center;
	}
}

.fpr-schedule-modal-open { overflow: hidden; }
.fpr-schedule-modal-open .fpr-planning-bubble { display: none !important; }
.fpr-schedule-modal-open .csa-layer { display: none !important; }
.fpr-mobile-calendar-open .fpr-planning-bubble { display: none !important; }
.fpr-schedule__poster-modal[hidden] { display: none; }
.fpr-schedule__poster-modal {
	--fpr-accent: #8d4267;
	--fpr-border: #ded7dd;
	--fpr-ink: #27212a;
	--fpr-muted: #6f6670;
	position: fixed;
	z-index: 100000;
	inset: 0;
	display: grid;
	place-items: center;
	padding: clamp(10px, 3vw, 32px);
}
.fpr-schedule__poster-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(9, 24, 42, .82);
	backdrop-filter: blur(5px);
}
.fpr-schedule__poster-dialog {
	position: relative;
	display: grid;
	grid-template-rows: auto auto minmax(0, 1fr) auto;
	width: min(980px, 100%);
	max-height: calc(100dvh - 20px);
	overflow: hidden;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 28px 80px rgba(0, 0, 0, .35);
}
.fpr-schedule__poster-dialog header,
.fpr-schedule__poster-dialog footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 16px;
}
.fpr-schedule__poster-dialog header { border-bottom: 1px solid var(--fpr-border); }
.fpr-schedule__poster-dialog footer { justify-content: flex-end; border-top: 1px solid var(--fpr-border); }
.fpr-schedule__poster-dialog h2 { margin: 0; font-size: clamp(1rem, 2vw, 1.35rem); }
.fpr-schedule__poster-dialog header p,
.fpr-schedule__poster-dialog footer p {
	margin: 3px 0 0;
	color: var(--fpr-muted);
	font-size: .82rem;
}
.fpr-schedule__poster-dialog footer p { margin: 0 auto 0 0; }
.fpr-schedule__poster-tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	padding: 10px 16px;
	border-bottom: 1px solid var(--fpr-border);
	background: #fff;
}
.fpr-schedule__poster-modal .fpr-schedule__poster-tabs button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 8px 14px;
	border: 1px solid #d7dce2;
	border-radius: 12px;
	background: #f7f8fa;
	color: var(--fpr-ink);
	font-weight: 700;
	cursor: pointer;
}
.fpr-schedule__poster-modal .fpr-schedule__poster-tabs button span {
	display: grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #fff;
	color: var(--fpr-muted);
	font-size: .76rem;
}
.fpr-schedule__poster-modal .fpr-schedule__poster-tabs button[aria-selected="true"] {
	border-color: var(--fpr-accent);
	background: var(--fpr-accent);
	color: #fff;
	box-shadow: 0 7px 18px rgba(9, 32, 57, .16);
}
.fpr-schedule__poster-modal .fpr-schedule__poster-tabs button[aria-selected="true"] span {
	background: rgba(255, 255, 255, .18);
	color: #fff;
}
.fpr-schedule__poster-scroll {
	min-height: 0;
	overflow: auto;
	overscroll-behavior: contain;
	background: #f4efe7;
	scrollbar-gutter: stable;
}
.fpr-schedule__poster-scroll figure {
	width: min(720px, calc(100% - 32px));
	margin: 18px auto 28px;
	animation: fpr-poster-page-in .24s ease both;
}
.fpr-schedule__poster-scroll figure[hidden] { display: none; }
.fpr-schedule__poster-scroll figcaption {
	margin: 0 0 8px;
	color: #5c5360;
	font-size: .8rem;
	font-weight: 700;
	text-align: center;
}
.fpr-schedule__poster-scroll img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 4px;
	background: #fff;
	box-shadow: 0 14px 40px rgba(9, 24, 42, .16);
}
.fpr-schedule__poster-modal button.fpr-schedule__poster-close {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--fpr-ink);
	font: 400 2rem/1 sans-serif;
	cursor: pointer;
}
.fpr-schedule__poster-download,
.fpr-schedule__poster-modal button.fpr-schedule__poster-print {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 16px;
	border: 1px solid var(--fpr-accent);
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
}
.fpr-schedule__poster-download { background: var(--fpr-accent); color: #fff; }
.fpr-schedule__poster-modal button.fpr-schedule__poster-print { background: #fff; color: var(--fpr-accent); }

@keyframes fpr-poster-page-in {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 980px) {
	.fpr-schedule__summary { grid-template-columns: 1fr auto; }
	.fpr-schedule__selected-list { grid-column: 1 / -1; grid-row: 2; }
}

@media (max-width: 620px) {
	.fpr-schedule { position: relative; padding-inline: 12px; }
	.fpr-schedule__header {
		align-items: start;
		flex-direction: column;
		padding: 24px 20px;
		border-radius: 14px;
	}
	.fpr-schedule__header h2 { font-size: 2.2rem; }
	.fpr-schedule__registration-status { align-items: start; }
	.fpr-schedule__filters {
		position: relative;
		z-index: 18;
		gap: 8px;
		margin: 0 -4px 16px;
		padding: 9px;
		border: 1px solid #e4d8ca;
		border-radius: 14px;
		background: rgba(255,255,255,.96);
		box-shadow: 0 8px 24px rgba(9,32,57,.12);
		backdrop-filter: blur(12px);
	}
	.fpr-schedule__filter-heading { padding-bottom: 8px; }
	.fpr-schedule__filter-heading > span { width: 34px; height: 34px; border-radius: 10px; }
	.fpr-schedule__filter-heading strong { font-size: .9rem; }
	.fpr-schedule__filter-heading p { display: none; }
	.fpr-schedule button.fpr-schedule__filter-reset { padding-inline: 8px; font-size: .62rem; }
	.fpr-schedule button.fpr-schedule__mobile-filter-toggle {
		display: inline-flex;
		align-items: center;
		min-height: 32px;
		padding: 6px 9px;
		border: 1px solid #ddd4cc;
		border-radius: 9px;
		background: #fff;
		color: var(--fpr-navy);
		font: inherit;
		font-size: .62rem;
		font-weight: 800;
	}
	.fpr-schedule__filters.is-mobile-fixed {
		position: fixed;
		top: 8px;
		left: var(--fpr-filter-fixed-left);
		width: var(--fpr-filter-fixed-width);
		margin: 0;
		animation: fpr-filter-arrive .2s ease-out both;
	}
	.fpr-schedule__filters.is-mobile-bottom {
		position: absolute;
		top: auto;
		bottom: 8px;
		left: var(--fpr-filter-local-left);
		width: var(--fpr-filter-fixed-width);
		margin: 0;
	}
	.fpr-schedule__filter-row,
	.fpr-schedule__filter-row--types,
	.fpr-schedule__filter-row--compact,
	.fpr-schedule__filter-row--days,
	.fpr-schedule__filter-row--poles,
	.fpr-schedule__filter-row--views {
		display: grid;
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 6px;
	}
	.fpr-schedule__filters.is-mobile-collapsed .fpr-schedule__filter-row,
	.fpr-schedule__filters.is-mobile-collapsed .fpr-schedule__filter-status,
	.fpr-schedule__filters.is-mobile-collapsed .fpr-schedule__filter-reset {
		display: none;
	}
	.fpr-schedule__filter-row--types .fpr-schedule__selected-filter {
		grid-column: 1 / -1;
		justify-self: stretch;
		min-height: 36px;
	}
	.fpr-schedule__filter-row > strong { padding-left: 3px; font-size: .62rem; }
	.fpr-schedule__filter-scroll {
		flex-wrap: nowrap;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}
	.fpr-schedule__filter-scroll::-webkit-scrollbar { display: none; }
	.fpr-schedule .fpr-schedule__filter-row button {
		flex: 0 0 auto;
		min-height: 36px;
		padding: 6px 10px;
		font-size: .7rem;
		scroll-snap-align: start;
	}
	.fpr-schedule__filter-status { display: none; }
	.fpr-schedule__view-switch { width: min(210px, 100%); }
	.fpr-schedule__pole { border-radius: 12px; }
	.fpr-schedule__pole-heading { padding: 13px 14px; }
	.fpr-schedule__table-wrap { overflow: visible; }
	.fpr-schedule__table,
	.fpr-schedule__table.has-timeline {
		display: block;
		min-width: 0;
	}
	.fpr-schedule__time-heading,
	.fpr-schedule__day-heading,
	.fpr-schedule__time-axis { display: none; }
	.fpr-schedule__day,
	.fpr-schedule__table.has-timeline .fpr-schedule__day {
		padding: 12px;
		border-right: 0;
		background: #fffdf9;
	}
	.fpr-schedule__table.has-timeline .fpr-schedule__day h4 { display: flex; }
	.fpr-schedule__table.has-timeline .fpr-schedule__course-list {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: none;
		gap: 12px;
		min-width: 0;
		min-height: 0;
		padding-inline: clamp(5px, 2vw, 9px);
	}
	.fpr-schedule__table.has-timeline .fpr-schedule__course {
		grid-column: auto;
		grid-row: auto;
		min-height: 90px;
		margin: 0;
		padding: 14px;
		place-items: start;
		text-align: left;
	}
	.fpr-schedule__table.has-timeline .fpr-schedule__course.is-overlap {
		position: relative;
		grid-column: auto;
		margin: 0;
		padding: 14px 14px 14px 18px;
		border-left: 4px solid var(--fpr-navy);
	}
	.fpr-schedule__table.has-timeline .fpr-schedule__course.is-overlap::after {
		position: absolute;
		top: -10px;
		left: 14px;
		width: 1px;
		height: 10px;
		background: #9c8e80;
		content: "";
	}
	.fpr-schedule__overlap-group { display: none; }
	.fpr-schedule__overlap-badge {
		display: inline-flex;
		position: absolute;
		top: 9px;
		right: 10px;
		padding: 4px 7px;
		font-size: .61rem;
	}
	.fpr-schedule__table.has-timeline .fpr-schedule__course-time {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		width: fit-content;
		padding: 5px 8px;
		border: 1px solid rgba(9, 32, 57, .12);
		border-radius: 999px;
		background: rgba(255, 255, 255, .82);
		color: var(--fpr-navy);
		font-size: .86rem;
		font-weight: 850;
		line-height: 1;
	}
	.fpr-schedule__table.has-timeline .fpr-schedule__course-time::before {
		content: "◷";
		color: var(--fpr-accent);
		font-size: 1rem;
		line-height: 1;
	}
	.fpr-schedule__table.has-timeline .fpr-schedule__course-title {
		font-size: .96rem;
		letter-spacing: .015em;
		text-transform: none;
	}
	.fpr-schedule__table.has-timeline .fpr-schedule__course-meta { font-size: .8rem; }
	.fpr-schedule__pole--artistic .fpr-schedule__day.is-empty { display: none; }
	.fpr-schedule__artistic-board { border-radius: 12px 12px 0 0; }
	.fpr-schedule__artistic-grid { display: block; }
	.fpr-schedule__artistic-title { min-height: 58px; }
	.fpr-schedule__artistic-day { display: none; }
	.fpr-schedule__artistic-row { display: block; }
	.fpr-schedule__artistic-row[hidden] { display: none; }
	.fpr-schedule__artistic-discipline {
		min-height: 52px;
		padding: 9px 13px;
		border-right: 0;
	}
	.fpr-schedule__artistic-discipline span {
		width: 36px;
		height: 36px;
	}
	.fpr-schedule__artistic-cell {
		display: block;
		min-height: 0;
		padding: 8px;
		border-right: 0;
	}
	.fpr-schedule__artistic-cell:not(:has(.fpr-schedule__artistic-entry:not([hidden]))) { display: none; }
	.fpr-schedule__artistic-entry {
		grid-template-columns: 72px minmax(0, 1fr);
		grid-template-rows: auto auto;
		column-gap: 12px;
		min-height: 72px;
		padding: 11px 13px;
	}
	.fpr-schedule button.fpr-schedule__artistic-entry {
		margin: 0;
		padding: 12px 13px;
		border-radius: 10px;
	}
	.fpr-schedule__artistic-entry em {
		display: block;
		grid-column: 1;
		grid-row: 1;
		align-self: end;
		color: #9a7724;
		font-size: .65rem;
		font-style: normal;
		font-weight: 750;
		letter-spacing: .05em;
		text-transform: uppercase;
	}
	.fpr-schedule__artistic-entry > span {
		grid-column: 1;
		grid-row: 2;
		align-self: start;
		font-size: .68rem;
	}
	.fpr-schedule__artistic-entry strong {
		grid-column: 2;
		grid-row: 1;
		font-size: .78rem;
	}
	.fpr-schedule__artistic-entry small {
		grid-column: 2;
		grid-row: 2;
		font-size: .72rem;
	}
	.fpr-schedule__artistic-note {
		padding: 10px 13px;
		text-align: left;
	}
	.fpr-schedule__legend {
		gap: 9px 13px;
		padding: 12px 13px;
		border-radius: 0 0 12px 12px;
	}
	.fpr-schedule__summary {
		position: static;
		grid-template-columns: minmax(0, 1fr);
	}
	.fpr-schedule__registration-reminder {
		align-items: start;
		margin-top: 16px;
		padding: 13px;
	}
	.fpr-schedule__selected-list { grid-column: auto; grid-row: auto; flex-direction: column; }
	.fpr-schedule__summary-actions { display: grid; grid-template-columns: 1fr 1fr; }
	.fpr-schedule__poster-modal { padding: 0; }
	.fpr-schedule__poster-dialog { width: 100%; max-height: 100dvh; border-radius: 0; }
	.fpr-schedule__poster-dialog header { padding-inline: 14px; }
	.fpr-schedule__poster-dialog header p { display: none; }
	.fpr-schedule__poster-tabs { padding: 8px; }
	.fpr-schedule__poster-modal .fpr-schedule__poster-tabs button {
		gap: 5px;
		padding-inline: 8px;
		font-size: .82rem;
	}
	.fpr-schedule__poster-scroll figure {
		width: calc(100% - 16px);
		margin: 10px auto 18px;
	}
	.fpr-schedule__poster-dialog footer { display: grid; grid-template-columns: 1fr; }
	.fpr-schedule__poster-dialog footer p { text-align: center; }
	.fpr-schedule__poster-download,
	.fpr-schedule__poster-modal button.fpr-schedule__poster-print { width: 100%; }
	.fpr-schedule__course-sheet:not([hidden]) { display: flex; }
	.fpr-schedule__course-sheet-facts { grid-template-columns: 1fr; }

	.fpr-schedule.is-mobile-calendar {
		--fpr-slot-height: var(--fpr-mobile-slot-height, 46px);
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__mobile-calendar-tools {
		display: grid;
		gap: 7px;
		padding: 9px 10px;
		border-bottom: 1px solid #e7ded5;
		background: #fff;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__pole--dance { scroll-margin-top: 270px; }
	.fpr-schedule.is-mobile-calendar .fpr-schedule__calendar-day-nav {
		display: grid;
		grid-template-columns: 38px minmax(0, 1fr) 38px;
		align-items: center;
		gap: 8px;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__calendar-day-nav strong {
		color: var(--fpr-navy);
		font-size: .86rem;
		font-weight: 850;
		text-align: center;
		text-transform: capitalize;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__calendar-actions {
		display: flex;
		align-items: center;
		gap: 6px;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__calendar-actions > span {
		margin-left: auto;
		color: #7d7279;
		font-size: .65rem;
		font-weight: 750;
		text-transform: uppercase;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__mobile-calendar-tools button {
		min-height: 34px;
		padding: 6px 10px;
		border: 1px solid #ded6ce;
		border-radius: 9px;
		background: #fff;
		color: var(--fpr-navy);
		font: inherit;
		font-size: .7rem;
		font-weight: 800;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__calendar-actions strong {
		min-width: 42px;
		color: var(--fpr-navy);
		font-size: .68rem;
		text-align: center;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__calendar-day-nav button:disabled {
		opacity: .28;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__calendar-day-nav button {
		padding: 0;
		font-size: 1.35rem;
		line-height: 1;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__filter-row--days [data-fpr-day-filter="all"] {
		display: none;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__table-wrap {
		max-height: min(72dvh, 720px);
		overflow: auto;
		overscroll-behavior: contain;
		scrollbar-width: thin;
		touch-action: pan-y;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__table.has-timeline {
		display: grid;
		grid-template-columns: 54px minmax(0, 1fr);
		min-width: 0;
		background: #fff;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__time-axis {
		position: sticky;
		z-index: 4;
		left: 0;
		display: grid;
		grid-column: 1;
		grid-row: 1;
		grid-template-rows: repeat(52, calc(var(--fpr-slot-height) / 2));
		min-height: calc(26 * var(--fpr-slot-height));
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__time-axis span {
		display: block;
		grid-row: var(--fpr-time-row) / span 4;
		padding: 4px;
		font-size: .62rem;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__table.has-timeline .fpr-schedule__day:not([hidden]) {
		display: block;
		grid-column: 2;
		grid-row: 1;
		min-width: 0;
		padding: 0 5px;
		border: 0;
		background: #fffdf9;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__table.has-timeline .fpr-schedule__day h4 {
		display: none;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__table.has-timeline .fpr-schedule__course-list {
		display: grid;
		grid-template-columns: repeat(var(--fpr-day-lanes, 1), minmax(0, 1fr));
		grid-template-rows: repeat(52, calc(var(--fpr-slot-height) / 2));
		gap: 0;
		min-height: calc(26 * var(--fpr-slot-height));
		padding: 0;
		background:
			repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--fpr-slot-height) - 1px), rgba(122,110,94,.12) calc(var(--fpr-slot-height) - 1px), rgba(122,110,94,.12) var(--fpr-slot-height));
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__table.has-timeline .fpr-schedule__course {
		grid-column: 1 / -1;
		grid-row: var(--fpr-course-row) / span var(--fpr-course-span);
		align-content: center;
		min-height: 0;
		margin: 3px;
		padding: 7px;
		overflow: hidden;
		border-left-width: 2px;
		border-radius: 8px;
		text-align: center;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__table.has-timeline .fpr-schedule__course.is-overlap {
		grid-column: var(--fpr-course-lane) / span 1;
		padding: 25px 4px 5px;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__course.is-overlap::after { display: none; }
	.fpr-schedule.is-mobile-calendar .fpr-schedule__overlap-group {
		display: inline-flex;
		height: calc(var(--fpr-slot-height) / 2);
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__overlap-badge { display: none; }
	.fpr-schedule.is-mobile-calendar .fpr-schedule__course-time {
		padding: 3px 5px;
		font-size: .66rem;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__course-time::before { display: none; }
	.fpr-schedule.is-mobile-calendar .fpr-schedule__course-title {
		margin-block: 3px;
		font-size: .72rem;
		line-height: 1.08;
		text-transform: none;
	}
	.fpr-schedule.is-mobile-calendar .fpr-schedule__course-meta { font-size: .62rem; }
}

@media (prefers-reduced-motion: reduce) {
	.fpr-schedule *,
	.fpr-schedule *::before,
	.fpr-schedule *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

@keyframes fpr-filter-arrive {
	from { transform: translateY(-6px); opacity: .92; }
	to { transform: translateY(0); opacity: 1; }
}

@keyframes fpr-sheet-arrive {
	from { transform: translateY(24px); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}

@media print {
	.fpr-schedule__summary,
	.fpr-schedule__print,
	.fpr-schedule__notice,
		.fpr-schedule__poster-dialog > header,
		.fpr-schedule__poster-dialog > footer,
		.fpr-schedule__poster-tabs { display: none !important; }
	.fpr-schedule__poster-modal[hidden] { display: none !important; }
	.fpr-schedule__poster-modal:not([hidden]) {
		position: static;
		display: block;
		padding: 0;
	}
	.fpr-schedule__poster-backdrop { display: none; }
	.fpr-schedule__poster-dialog { display: block; max-height: none; box-shadow: none; }
	.fpr-schedule__poster-scroll { overflow: visible; }
	.fpr-schedule__poster-scroll figure,
	.fpr-schedule__poster-scroll figure[hidden] {
		display: block !important;
		width: 100%;
		margin: 0;
		break-after: page;
		page-break-after: always;
	}
	.fpr-schedule__poster-scroll figure:last-child {
		break-after: auto;
		page-break-after: auto;
	}
	.fpr-schedule__poster-scroll figcaption { display: none; }
	.fpr-schedule__poster-scroll img { border-radius: 0; box-shadow: none; }
	.fpr-schedule__days { grid-template-columns: repeat(3, 1fr); }
}
