/* SSMS public timetable — Workshop-style app/card presentation. */

.ssms-timetable {
	--ssms-tt-deep: #0d4655;
	--ssms-tt-deep-2: #113f4b;
	--ssms-tt-brand: #5f808d;
	--ssms-tt-accent: #418b9d;
	--ssms-tt-pink: #efb6ce;
	--ssms-tt-text: #17323d;
	--ssms-tt-muted: #657f89;
	--ssms-tt-line: #d6e4e9;
	--ssms-tt-soft: #f5f9fa;
	--ssms-tt-card: #ffffff;
	--ssms-tt-adult: #2f9478;
	--ssms-tt-child: #2689d8;
	width: 100%;
	margin: 0 auto;
	color: var(--ssms-tt-text);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.45;
	box-sizing: border-box;
}

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

.ssms-timetable button,
.ssms-timetable select {
	font: inherit;
}

.ssms-timetable button {
	-webkit-tap-highlight-color: transparent;
}

.ssms-timetable__shell {
	width: min(100%, 1180px);
	margin: 0 auto;
	overflow: hidden;
	border: 1px solid var(--ssms-tt-line);
	border-radius: 28px;
	background: #f8fbfc;
	box-shadow: 0 18px 50px rgba(13, 70, 85, 0.08);
}

/* Header */
.ssms-timetable__header {
	position: relative;
	min-height: 182px;
	padding: 34px 44px 32px;
	background: linear-gradient(115deg, #0d4655 0%, #0f5262 100%);
	color: #fff;
	display: flex;
	align-items: center;
}

.ssms-timetable__header-copy {
	min-width: 0;
}

.ssms-timetable__logo {
	display: block;
	width: min(var(--ssms-tt-logo-width, 180px), 220px);
	max-height: 52px;
	object-fit: contain;
	object-position: left center;
	margin: 0 0 8px;
	filter: brightness(0) invert(1);
}

.ssms-timetable__eyebrow {
	display: block;
	margin: 0 0 3px;
	color: rgba(255, 255, 255, 0.9);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.27em;
	text-transform: uppercase;
}

.ssms-timetable__header h2 {
	margin: 0;
	color: #fff;
	font-size: clamp(36px, 5vw, 54px);
	font-weight: 780;
	line-height: 1.03;
	letter-spacing: -0.035em;
}

.ssms-timetable__subtitle {
	margin: 8px 0 0;
	color: rgba(255, 255, 255, 0.9);
	font-size: 17px;
	font-weight: 450;
}

/* Optional management message */
.ssms-timetable__notice {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 0;
	padding: 14px 28px 4px;
	color: #58727d;
	background: #fff;
	font-size: 14px;
}

.ssms-timetable__notice .dashicons {
	width: 19px;
	height: 19px;
	font-size: 19px;
	color: var(--ssms-tt-accent);
	flex: 0 0 auto;
}

.ssms-timetable__notice p {
	margin: 0;
}

/* Filters */
.ssms-timetable__filters {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
	gap: 12px;
	align-items: center;
	padding: 26px 30px 22px;
	background: #fff;
}

.ssms-timetable__filter {
	position: relative;
	display: flex;
	align-items: center;
	min-width: 0;
	height: 54px;
	margin: 0;
	border: 1px solid #cbdde3;
	border-radius: 14px;
	background: #fff;
	color: #244453;
	transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.ssms-timetable__filter:focus-within {
	border-color: var(--ssms-tt-accent);
	box-shadow: 0 0 0 3px rgba(65, 139, 157, 0.12);
}

.ssms-timetable__filter > .dashicons {
	position: absolute;
	left: 15px;
	z-index: 1;
	width: 21px;
	height: 21px;
	font-size: 21px;
	color: #315f6d;
	pointer-events: none;
}

.ssms-timetable__filter select {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	height: 100%;
	min-width: 0;
	margin: 0;
	padding: 0 41px 0 45px;
	border: 0 !important;
	outline: 0;
	border-radius: 14px;
	background-color: transparent;
	background-image:
		linear-gradient(45deg, transparent 50%, #52727e 50%),
		linear-gradient(135deg, #52727e 50%, transparent 50%);
	background-position:
		calc(100% - 20px) 24px,
		calc(100% - 15px) 24px;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	color: #233f4c;
	font-size: 14px;
	font-weight: 750;
	line-height: 1;
	box-shadow: none !important;
	cursor: pointer;
}

.ssms-timetable__filter.is-disabled {
	background: #f4f7f8;
	border-color: #e1eaed;
}

.ssms-timetable__filter.is-disabled > .dashicons,
.ssms-timetable__filter.is-disabled select {
	color: #a8bac0;
	cursor: default;
}

.ssms-timetable__filter.is-fixed select {
	color: #6f8790;
}

.ssms-timetable__reset {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-width: 88px;
	height: 54px;
	margin: 0;
	padding: 0 12px;
	border: 0;
	border-radius: 14px;
	background: transparent;
	color: #708790;
	font-size: 14px;
	font-weight: 650;
	cursor: pointer;
	transition: color .18s ease, background-color .18s ease;
}

.ssms-timetable__reset .dashicons {
	width: 24px;
	height: 24px;
	font-size: 24px;
}

.ssms-timetable__reset:hover,
.ssms-timetable__reset:focus-visible {
	color: var(--ssms-tt-deep);
	background: #f2f7f8;
	outline: 0;
}

/* Results/cards */
.ssms-timetable__table {
	padding: 0 30px 30px;
	background: #f8fbfc;
}

.ssms-timetable__rows {
	display: grid;
	gap: 12px;
}

.ssms-timetable__row {
	--ssms-tt-row-accent: var(--ssms-tt-adult);
	position: relative;
	display: grid;
	grid-template-columns: 118px minmax(210px, 1.35fr) minmax(250px, 1.25fr) minmax(180px, .8fr);
	gap: 24px;
	align-items: center;
	min-height: 150px;
	padding: 22px 26px 22px 31px;
	border: 1px solid var(--ssms-tt-line);
	border-radius: 18px;
	background: var(--ssms-tt-card);
	box-shadow: 0 7px 20px rgba(13, 70, 85, 0.035);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
	overflow: hidden;
}

.ssms-timetable__row::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 7px;
	background: var(--ssms-tt-row-accent);
}

.ssms-timetable__row[data-audience="child"] {
	--ssms-tt-row-accent: var(--ssms-tt-child);
}

.ssms-timetable__row:hover {
	border-color: #c8dce2;
	box-shadow: 0 11px 28px rgba(13, 70, 85, 0.065);
	transform: translateY(-1px);
}

.ssms-timetable__row[hidden] {
	display: none !important;
}

.ssms-timetable__visual {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
}

.ssms-timetable__class-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 98px;
	height: 98px;
	border-radius: 50%;
	background: #e8f5fb;
	overflow: hidden;
	flex: 0 0 auto;
}

.ssms-timetable__icon-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.ssms-timetable__row--pink .ssms-timetable__class-icon { background: #f8e8f2; }
.ssms-timetable__row--purple .ssms-timetable__class-icon,
.ssms-timetable__row--lavender .ssms-timetable__class-icon { background: #efe8fb; }
.ssms-timetable__row--peach .ssms-timetable__class-icon { background: #fff0e6; }
.ssms-timetable__row--mint .ssms-timetable__class-icon,
.ssms-timetable__row--teal .ssms-timetable__class-icon { background: #e6f4ed; }
.ssms-timetable__row--blue .ssms-timetable__class-icon { background: #e7f4fa; }

.ssms-timetable__class {
	min-width: 0;
}

.ssms-timetable__audience-line {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 5px;
}

.ssms-timetable__audience {
	color: var(--ssms-tt-row-accent);
	font-size: 12px;
	font-weight: 850;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ssms-timetable__class h3 {
	margin: 0 0 7px;
	color: #17333f;
	font-size: 21px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.015em;
}

.ssms-timetable__range {
	display: inline-flex;
	align-items: center;
	min-height: 25px;
	padding: 4px 10px;
	border-radius: 7px;
	background: #e8f3f7;
	color: #416b7b;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
}

.ssms-timetable__row--pink .ssms-timetable__range { background: #fde7f3; color: #a5658c; }
.ssms-timetable__row--purple .ssms-timetable__range,
.ssms-timetable__row--lavender .ssms-timetable__range { background: #ede6fb; color: #7557ac; }
.ssms-timetable__row--peach .ssms-timetable__range { background: #fff0e4; color: #b06439; }
.ssms-timetable__row--mint .ssms-timetable__range,
.ssms-timetable__row--teal .ssms-timetable__range { background: #e6f5ed; color: #4c866b; }

.ssms-timetable__schedule {
	min-width: 0;
	padding-left: 24px;
	border-left: 1px solid #dbe7eb;
	display: grid;
	gap: 5px;
	color: #55717c;
	font-size: 14px;
}

.ssms-timetable__schedule > span {
	display: flex;
	align-items: center;
	gap: 7px;
}

.ssms-timetable__schedule > span > .dashicons {
	width: 17px;
	height: 17px;
	font-size: 17px;
	color: #6d8993;
}

.ssms-timetable__details {
	display: grid;
	gap: 2px;
	margin-top: 6px;
	color: #59727c;
	font-size: 13px;
}

.ssms-timetable__details b {
	color: #17333f;
	font-weight: 800;
}

.ssms-timetable__details-availability {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 3px;
	color: var(--ssms-tt-row-accent);
	font-size: 12px;
	font-weight: 750;
	line-height: 1.25;
}

.ssms-timetable__details-availability .dashicons {
	width: 15px;
	height: 15px;
	font-size: 15px;
	line-height: 15px;
	flex: 0 0 auto;
}

.ssms-timetable__details-availability.is-full {
	color: #a46363;
}

.ssms-timetable__action {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-width: 0;
}

.ssms-timetable__fee {
	grid-area: fee;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	line-height: 1.05;
}

.ssms-timetable__fee strong {
	color: #17333f;
	font-size: 20px;
	font-weight: 850;
}

.ssms-timetable__fee small {
	margin-top: 4px;
	color: #718891;
	font-size: 10px;
	font-weight: 650;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.ssms-timetable__book {
	grid-area: book;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 145px;
	height: 48px;
	margin: 0;
	padding: 0 18px;
	border: 1.5px solid var(--ssms-tt-row-accent);
	border-radius: 13px;
	background: #fff;
	color: var(--ssms-tt-row-accent);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .035em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.ssms-timetable__book:hover,
.ssms-timetable__book:focus-visible {
	background: var(--ssms-tt-row-accent);
	color: #fff;
	box-shadow: 0 6px 14px rgba(13, 70, 85, .12);
	outline: 0;
	transform: translateY(-1px);
}

.ssms-timetable__book-plus {
	display: none;
}

.ssms-timetable__availability {
	grid-area: spaces;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	color: var(--ssms-tt-row-accent);
	font-size: 12px;
	font-weight: 750;
	white-space: nowrap;
}

.ssms-timetable__availability .dashicons {
	width: 17px;
	height: 17px;
	font-size: 17px;
}

.ssms-timetable__availability.is-full {
	color: #a46363;
}

.ssms-timetable__results-count {
	min-height: 0;
	padding: 0 30px 23px;
	background: #f8fbfc;
	color: #81959d;
	font-size: 12px;
	text-align: right;
}

/* Empty / unavailable states */
.ssms-timetable__empty,
.ssms-timetable__unavailable {
	padding: 56px 24px;
	text-align: center;
	color: #6d838b;
}

.ssms-timetable__empty[hidden] {
	display: none !important;
}

.ssms-timetable__empty .dashicons,
.ssms-timetable__unavailable .dashicons {
	width: 36px;
	height: 36px;
	font-size: 36px;
	color: var(--ssms-tt-accent);
}

.ssms-timetable__empty h3,
.ssms-timetable__unavailable h2 {
	margin: 10px 0 4px;
	color: var(--ssms-tt-text);
}

.ssms-timetable__empty p,
.ssms-timetable__unavailable p {
	margin: 0;
}

/* Legacy feature footer remains available when enabled, but follows the new visual system. */
.ssms-timetable__features {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	border-top: 1px solid var(--ssms-tt-line);
	background: var(--ssms-tt-line);
}

.ssms-timetable__features > div {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 78px;
	padding: 14px;
	background: #fff;
}

.ssms-timetable__features .dashicons {
	color: var(--ssms-tt-accent);
}

.ssms-timetable__features p {
	margin: 0;
	display: grid;
}

.ssms-timetable__features strong {
	font-size: 12px;
	color: #31515d;
}

.ssms-timetable__features small {
	font-size: 10px;
	color: #81949b;
}

/* Booking placeholder modal */
html.ssms-timetable-modal-open,
html.ssms-timetable-modal-open body {
	overflow: hidden;
}

.ssms-timetable__modal[hidden] {
	display: none !important;
}

.ssms-timetable__modal {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: grid;
	place-items: center;
	padding: 20px;
}

.ssms-timetable__modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(8, 44, 53, .58);
	backdrop-filter: blur(7px);
	-webkit-backdrop-filter: blur(7px);
}

.ssms-timetable__modal-card {
	position: relative;
	z-index: 1;
	width: min(100%, 470px);
	padding: 38px 34px 30px;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 24px 70px rgba(8, 44, 53, .25);
	text-align: center;
	outline: none;
}

.ssms-timetable__modal-close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #eef5f7;
	color: #4d6c76;
	cursor: pointer;
}

.ssms-timetable__modal-icon {
	display: block;
	width: 44px;
	height: 44px;
	margin: 0 auto 12px;
	font-size: 44px;
	color: var(--ssms-tt-accent);
}

.ssms-timetable__modal-card .ssms-timetable__eyebrow {
	color: var(--ssms-tt-accent);
}

.ssms-timetable__modal-card h3 {
	margin: 6px 0 12px;
	color: var(--ssms-tt-text);
	font-size: 25px;
}

.ssms-timetable__modal-class {
	display: block;
	margin-bottom: 10px;
	color: #385967;
}

.ssms-timetable__modal-message {
	margin: 0 0 22px;
	color: #667f88;
}

.ssms-timetable__modal-action {
	min-width: 130px;
	height: 45px;
	border: 0;
	border-radius: 12px;
	background: var(--ssms-tt-deep);
	color: #fff;
	font-weight: 750;
	cursor: pointer;
}

/* Tablet */
@media (max-width: 980px) {
	.ssms-timetable__shell {
		border-radius: 22px;
	}

	.ssms-timetable__header {
		padding: 30px 30px 28px;
		min-height: 158px;
	}

	.ssms-timetable__filters {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding: 20px 22px;
	}

	.ssms-timetable__reset {
		grid-column: 1 / -1;
		width: 100%;
		border: 1px solid #dfebee;
	}

	.ssms-timetable__table {
		padding: 0 22px 24px;
	}

	.ssms-timetable__row {
		grid-template-columns: 95px minmax(170px, 1fr) minmax(210px, 1.1fr) minmax(150px, .8fr);
		gap: 18px;
		padding: 20px 20px 20px 27px;
	}

	.ssms-timetable__class-icon {
		width: 80px;
		height: 80px;
	}

	.ssms-timetable__schedule {
		padding-left: 18px;
	}

	.ssms-timetable__action {
		align-items: stretch;
		gap: 6px;
	}

	.ssms-timetable__trial-available {
		align-self: center;
	}

	.ssms-timetable__book {
		width: 100%;
		min-width: 0;
	}

	.ssms-timetable__availability {
		justify-content: flex-start;
		white-space: normal;
	}
}

/* Mobile — same card system, compressed rather than replaced. */
@media (max-width: 700px) {
	.ssms-timetable {
		font-size: 15px;
	}

	.ssms-timetable__shell {
		width: 100%;
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}

	.ssms-timetable__header {
		min-height: 148px;
		padding: max(24px, env(safe-area-inset-top)) 22px 24px;
		border-radius: 0;
	}

	.ssms-timetable__logo {
		width: min(var(--ssms-tt-logo-width, 150px), 170px);
		max-height: 39px;
	}

	.ssms-timetable__header h2 {
		font-size: 38px;
	}

	.ssms-timetable__subtitle {
		font-size: 14px;
	}

	.ssms-timetable__notice {
		justify-content: flex-start;
		padding: 12px 18px 0;
		font-size: 12px;
	}

	.ssms-timetable__filters {
		position: relative;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		padding: 16px 14px;
		border-bottom: 1px solid #e0eaed;
	}

	.ssms-timetable__filter {
		height: 45px;
		border-radius: 11px;
	}

	.ssms-timetable__filter > .dashicons {
		left: 11px;
		width: 18px;
		height: 18px;
		font-size: 18px;
	}

	.ssms-timetable__filter select {
		padding-left: 35px;
		padding-right: 28px;
		background-position: calc(100% - 14px) 20px, calc(100% - 10px) 20px;
		background-size: 4px 4px, 4px 4px;
		font-size: 11px;
	}

	.ssms-timetable__reset {
		height: 43px;
		font-size: 12px;
		border-radius: 11px;
	}

	.ssms-timetable__reset .dashicons {
		width: 19px;
		height: 19px;
		font-size: 19px;
	}

	.ssms-timetable__table {
		padding: 14px 12px 18px;
	}

	.ssms-timetable__rows {
		gap: 9px;
	}

	.ssms-timetable__row {
		grid-template-columns: 70px minmax(0, 1fr) 54px;
		grid-template-areas:
			"visual class action"
			"visual schedule action";
		gap: 7px 12px;
		min-height: 0;
		padding: 15px 13px 35px 18px;
		border-radius: 15px;
	}

	.ssms-timetable__row::before {
		width: 5px;
	}

	.ssms-timetable__visual {
		grid-area: visual;
		align-self: start;
		padding-top: 4px;
	}

	.ssms-timetable__class-icon {
		width: 62px;
		height: 62px;
	}

	.ssms-timetable__class {
		grid-area: class;
	}

	.ssms-timetable__audience-line {
		margin-bottom: 2px;
	}

	.ssms-timetable__audience {
		font-size: 9px;
	}

	.ssms-timetable__class h3 {
		margin-bottom: 5px;
		font-size: 16px;
	}

	.ssms-timetable__range {
		min-height: 20px;
		padding: 3px 7px;
		font-size: 8px;
		border-radius: 5px;
	}

	.ssms-timetable__schedule {
		grid-area: schedule;
		padding: 0;
		border-left: 0;
		gap: 2px;
		font-size: 11px;
	}

	.ssms-timetable__schedule > span {
		gap: 5px;
	}

	.ssms-timetable__schedule > span > .dashicons {
		width: 13px;
		height: 13px;
		font-size: 13px;
	}

	.ssms-timetable__details {
		gap: 0;
		margin-top: 3px;
		font-size: 10px;
	}

	.ssms-timetable__action {
		grid-area: action;
		align-self: stretch;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: space-between;
		gap: 7px;
	}

	.ssms-timetable__fee {
		align-items: center;
		margin-top: 1px;
	}

	.ssms-timetable__fee strong {
		font-size: 13px;
	}

	.ssms-timetable__fee small {
		display: none;
	}

	.ssms-timetable__book {
		width: 44px;
		height: 44px;
		min-width: 44px;
		padding: 0;
		border-radius: 50%;
		font-size: 28px;
		font-weight: 400;
		line-height: 1;
		letter-spacing: 0;
	}

	.ssms-timetable__book-label {
		display: none;
	}

	.ssms-timetable__book-plus {
		display: block;
		margin-top: -2px;
	}

	.ssms-timetable__availability {
		position: absolute;
		left: 100px;
		bottom: 12px;
		max-width: calc(100% - 170px);
		justify-content: flex-start;
		font-size: 10px;
		white-space: normal;
	}

	.ssms-timetable__availability .dashicons {
		width: 13px;
		height: 13px;
		font-size: 13px;
	}

	.ssms-timetable__results-count {
		padding: 0 14px 18px;
		font-size: 10px;
	}

	.ssms-timetable__features {
		display: none;
	}

	.ssms-timetable__modal-card {
		padding: 34px 24px 26px;
		border-radius: 20px;
	}
}

@media (max-width: 420px) {
	.ssms-timetable__row {
		grid-template-columns: 61px minmax(0, 1fr) 47px;
		gap: 7px 9px;
		padding-left: 15px;
		padding-right: 10px;
	}

	.ssms-timetable__class-icon {
		width: 54px;
		height: 54px;
	}

	.ssms-timetable__class h3 {
		font-size: 15px;
	}

	.ssms-timetable__book {
		width: 42px;
		height: 42px;
		min-width: 42px;
	}

	.ssms-timetable__availability {
		left: 85px;
		max-width: calc(100% - 145px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ssms-timetable__row,
	.ssms-timetable__book,
	.ssms-timetable__filter {
		transition: none;
	}
}


/* ==========================================================================
   Full viewport public-app shell
   Keeps WordPress/the theme underneath the SSMS timetable rather than in the
   customer's visual/scrolling experience. The header and filters stay put;
   only the class-results panel scrolls.
   ========================================================================== */
html.ssms-timetable-app-open,
body.ssms-timetable-app-open {
	height: 100% !important;
	max-height: 100% !important;
	overflow: hidden !important;
	overscroll-behavior: none;
}

body.ssms-timetable-app-open {
	margin: 0 !important;
	padding: 0 !important;
}

.ssms-timetable {
	position: fixed !important;
	inset: 0 !important;
	z-index: 2147483000 !important;
	display: block !important;
	width: 100vw !important;
	max-width: none !important;
	height: 100vh !important;
	height: 100dvh !important;
	min-height: 100dvh !important;
	margin: 0 !important;
	padding: 0 !important;
	background: #f5f9fa;
	overflow: hidden !important;
	isolation: isolate;
	overscroll-behavior: none;
}

.ssms-timetable__shell {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #f5f9fa;
	box-shadow: none !important;
	overflow: hidden !important;
}

.ssms-timetable__header {
	position: sticky !important;
	top: 0;
	z-index: 30;
	flex: 0 0 auto;
	width: 100%;
	border-radius: 0 !important;
}

.ssms-timetable__notice,
.ssms-timetable__filters {
	position: relative;
	z-index: 25;
	flex: 0 0 auto;
	width: 100%;
}

.ssms-timetable__filters {
	box-shadow: 0 1px 0 rgba(13, 70, 85, 0.08), 0 7px 18px rgba(13, 70, 85, 0.04);
}

.ssms-timetable__table {
	position: relative;
	flex: 1 1 auto !important;
	min-height: 0 !important;
	width: 100%;
	max-width: none;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-y: contain;
	scrollbar-gutter: stable;
	padding-bottom: max(28px, env(safe-area-inset-bottom)) !important;
}

.ssms-timetable__rows,
.ssms-timetable__empty,
.ssms-timetable__results-count {
	width: min(100%, 1180px);
	margin-left: auto;
	margin-right: auto;
}

.ssms-timetable__results-count {
	padding-bottom: max(24px, env(safe-area-inset-bottom));
}

/* Footer features do not belong in the viewport app journey. */
.ssms-timetable__features {
	display: none !important;
}

/* The modal belongs to SSMS and therefore stays above the full-screen shell. */
.ssms-timetable__modal {
	z-index: 2147483001 !important;
}

@media (min-width: 701px) {
	.ssms-timetable__header-copy,
	.ssms-timetable__notice > *,
	.ssms-timetable__filters {
		max-width: 1180px;
	}

	.ssms-timetable__header-copy {
		width: 100%;
		margin-left: auto;
		margin-right: auto;
	}

	.ssms-timetable__filters {
		align-self: center;
	}
}

@media (max-width: 700px) {
	.ssms-timetable {
		width: 100% !important;
	}

	.ssms-timetable__header {
		padding-top: max(18px, env(safe-area-inset-top)) !important;
	}

	.ssms-timetable__table {
		scrollbar-gutter: auto;
		padding-bottom: max(20px, env(safe-area-inset-bottom)) !important;
	}

	.ssms-timetable__rows,
	.ssms-timetable__empty,
	.ssms-timetable__results-count {
		width: 100%;
	}
}

/* ==========================================================================
   Timetable booking-app refinement — 10 Aug 2026
   Restores live weekday availability and aligns the header/class modal with
   the established Workshop Booking public-app language.
   ========================================================================== */

.ssms-timetable__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 116px;
	padding: 24px max(30px, calc((100vw - 1180px) / 2));
}

.ssms-timetable__header-copy {
	min-width: 0;
}

.ssms-timetable__header h2 {
	font-size: clamp(34px, 4vw, 48px);
}

.ssms-timetable__subtitle {
	margin-top: 5px;
	font-size: 15px;
}

.ssms-timetable__basket-placeholder {
	display: grid;
	grid-template-columns: auto auto auto auto;
	align-items: center;
	gap: 8px;
	min-height: 54px;
	margin: 0;
	padding: 9px 14px;
	border: 1px solid rgba(255,255,255,.24);
	border-radius: 17px;
	background: linear-gradient(135deg,#f6c9dd,#f1b8d1);
	box-shadow: 0 8px 22px rgba(5,29,38,.16);
	color: #102934;
	font: inherit;
	cursor: default;
	flex: 0 0 auto;
}

.ssms-timetable__basket-placeholder > .dashicons-cart {
	width: 22px;
	height: 22px;
	font-size: 22px;
	line-height: 22px;
}

.ssms-timetable__basket-count {
	display: grid;
	place-items: center;
	min-width: 27px;
	height: 27px;
	padding: 0 7px;
	border-radius: 999px;
	background: var(--ssms-tt-deep);
	color: #fff;
	font-size: 12px;
	font-weight: 900;
}

.ssms-timetable__basket-total {
	font-size: 16px;
	font-weight: 850;
	white-space: nowrap;
}

.ssms-timetable__basket-chevron {
	width: 18px;
	height: 18px;
	font-size: 18px;
	line-height: 18px;
}

/* Weekday availability strip. The existing timetable JS supplies the
   is-available/is-active state from the currently selected class/filter set. */
.ssms-timetable__day-tabs {
	position: relative;
	z-index: 24;
	flex: 0 0 auto;
	display: grid;
	grid-template-columns: repeat(6, minmax(0,1fr));
	width: min(calc(100% - 60px), 1180px);
	margin: 0 auto 14px;
	border: 1px solid #d5e3e8;
	border-radius: 15px;
	background: #edf4f6;
	overflow: hidden;
	box-shadow: 0 5px 14px rgba(13,70,85,.035);
}

.ssms-timetable__day-tab {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	height: 48px;
	margin: 0;
	padding: 0 8px;
	border: 0;
	border-right: 1px solid #d5e3e8;
	border-radius: 0;
	background: transparent;
	color: #496b77;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .035em;
	cursor: pointer;
	transition: background-color .16s ease,color .16s ease,opacity .16s ease;
}

.ssms-timetable__day-tab:last-child { border-right: 0; }

.ssms-timetable__day-tab.is-available:not(.is-active):hover,
.ssms-timetable__day-tab.is-available:not(.is-active):focus-visible {
	background: #e3eef1;
	outline: 0;
}

.ssms-timetable__day-tab.is-active {
	background: #d7e7eb;
	color: #173f4c;
	box-shadow: inset 0 -4px 0 var(--ssms-tt-brand);
}

.ssms-timetable__day-tab:disabled {
	cursor: default;
}

.ssms-timetable__day-x {
	display: none;
	color: #aabac0;
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
}

.ssms-timetable.has-selected-class-type .ssms-timetable__day-tab:not(.is-available) {
	background: #f5f7f8;
	color: #b3c0c5;
	opacity: .78;
}

.ssms-timetable.has-selected-class-type .ssms-timetable__day-tab:not(.is-available) .ssms-timetable__day-x {
	display: inline-block;
}

.ssms-timetable__row {
	cursor: pointer;
}

.ssms-timetable__row:focus-visible {
	outline: 3px solid rgba(65,139,157,.28);
	outline-offset: 2px;
}

/* Workshop-style class detail card. */
.ssms-timetable__modal-card {
	width: min(100%, 680px);
	padding: 34px 34px 30px;
	border-radius: 28px;
	text-align: center;
}

.ssms-timetable__modal-icon {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin: 0 0 18px;
	border-radius: 18px;
	background: #edf6f8;
	font-size: 31px;
	line-height: 64px;
	color: #5d818d;
}

.ssms-timetable__modal-eyebrow {
	display: block;
	margin: 0 0 18px;
	color: var(--ssms-tt-brand);
	font-size: 12px;
	font-weight: 850;
	letter-spacing: .25em;
	text-transform: uppercase;
}

.ssms-timetable__modal-summary {
	display: grid;
	justify-items: center;
	padding: 28px 26px 26px;
	border: 1px solid #cfe0e5;
	border-radius: 22px;
	background: #f5f9fa;
}

.ssms-timetable__modal-visual {
	display: grid;
	place-items: center;
	width: 82px;
	height: 82px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: #e7f3f7;
	overflow: hidden;
}

.ssms-timetable__modal-visual:empty { display: none; }
.ssms-timetable__modal-visual .ssms-timetable__icon-image { width: 100%; height: 100%; object-fit: contain; }

.ssms-timetable__modal-audience {
	color: var(--ssms-tt-accent);
	font-size: 11px;
	font-weight: 850;
	letter-spacing: .15em;
}

.ssms-timetable__modal-card h3.ssms-timetable__modal-class {
	margin: 7px 0 7px;
	font-size: clamp(24px,4vw,32px);
	line-height: 1.12;
}

.ssms-timetable__modal-range {
	display: inline-flex;
	align-items: center;
	min-height: 27px;
	margin-bottom: 13px;
	padding: 4px 11px;
	border-radius: 999px;
	background: #e7f1f4;
	color: #567784;
	font-size: 11px;
	font-weight: 850;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ssms-timetable__modal-date-time,
.ssms-timetable__modal-teacher-studio {
	margin: 3px 0;
	color: #617d87;
	font-size: 15px;
}

.ssms-timetable__modal-fee {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin-top: 18px;
	padding: 0 23px;
	border: 1px solid #d0e0e4;
	border-radius: 999px;
	background: #fff;
	color: #237758;
	font-size: 20px;
	font-weight: 850;
}

.ssms-timetable__modal-availability {
	display: block;
	margin-top: 12px;
	color: #2f9478;
	font-size: 13px;
	font-weight: 800;
}

.ssms-timetable__modal-availability.is-full { color: #a46363; }

.ssms-timetable__modal-message {
	margin: 14px 0 0;
	padding: 12px 14px;
	border-radius: 12px;
	background: #fff6e8;
	color: #7a6344;
	font-size: 13px;
}
.ssms-timetable__modal-message[hidden] { display: none !important; }

.ssms-timetable__modal-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-top: 22px;
}

.ssms-timetable__modal-book {
	min-width: 190px;
	height: 52px;
	padding: 0 22px;
	border: 1px solid #e6a8c3;
	border-radius: 15px;
	background: linear-gradient(135deg,#f6c9dd,#f1b8d1);
	color: #17333f;
	font-weight: 850;
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(13,70,85,.09);
}

.ssms-timetable__modal-book:disabled {
	background: #eef2f3;
	border-color: #d9e2e5;
	color: #8da0a7;
	box-shadow: none;
	cursor: default;
}

.ssms-timetable__modal-action {
	min-width: 90px;
	background: transparent;
	color: #597781;
}

@media (max-width: 980px) {
	.ssms-timetable__day-tabs {
		width: calc(100% - 44px);
		margin-bottom: 10px;
	}
}

@media (max-width: 700px) {
	.ssms-timetable__header {
		min-height: 92px;
		padding: max(12px, env(safe-area-inset-top)) 15px 12px !important;
		gap: 10px;
	}

	.ssms-timetable__header h2 {
		font-size: 27px;
		line-height: 1.04;
		letter-spacing: -.025em;
	}

	.ssms-timetable__subtitle {
		margin-top: 3px;
		font-size: 11.5px;
		line-height: 1.2;
		white-space: nowrap;
	}

	.ssms-timetable__basket-placeholder {
		min-height: 46px;
		gap: 5px;
		padding: 7px 9px;
		border-radius: 14px;
	}

	.ssms-timetable__basket-placeholder > .dashicons-cart {
		width: 19px;
		height: 19px;
		font-size: 19px;
		line-height: 19px;
	}

	.ssms-timetable__basket-count {
		min-width: 23px;
		height: 23px;
		padding: 0 5px;
		font-size: 11px;
	}

	.ssms-timetable__basket-total { font-size: 12px; }
	.ssms-timetable__basket-chevron { width: 15px; height: 15px; font-size: 15px; line-height: 15px; }

	.ssms-timetable__notice {
		min-height: 45px;
		padding: 9px 14px;
		font-size: 11px;
		line-height: 1.3;
	}

	.ssms-timetable__notice .dashicons {
		width: 17px;
		height: 17px;
		font-size: 17px;
	}

	.ssms-timetable__filters {
		gap: 7px;
		padding: 10px 12px;
	}

	.ssms-timetable__filter { height: 42px; }
	.ssms-timetable__reset { height: 39px; }

	.ssms-timetable__day-tabs {
		width: calc(100% - 24px);
		margin: 0 auto 9px;
		border-radius: 11px;
	}

	.ssms-timetable__day-tab {
		height: 39px;
		gap: 2px;
		padding: 0 2px;
		font-size: 9px;
		letter-spacing: .02em;
	}

	.ssms-timetable__day-tab.is-active { box-shadow: inset 0 -3px 0 var(--ssms-tt-brand); }
	.ssms-timetable__day-x { font-size: 13px; }

	/* Increase the information density without sacrificing readability. */
	.ssms-timetable__class h3 { font-size: 18px; line-height: 1.18; }
	.ssms-timetable__audience { font-size: 11px; }
	.ssms-timetable__range { min-height: 23px; padding: 4px 8px; font-size: 9.5px; }

	.ssms-timetable__schedule {
		gap: 3px;
		font-size: 14px;
		line-height: 1.35;
	}

	.ssms-timetable__schedule > span { gap: 6px; }
	.ssms-timetable__schedule > span > .dashicons { width: 16px; height: 16px; font-size: 16px; }

	.ssms-timetable__details {
		gap: 1px;
		margin-top: 5px;
		font-size: 13px;
		line-height: 1.35;
	}

	.ssms-timetable__fee strong { font-size: 15px; }

	.ssms-timetable__availability {
		font-size: 12px;
		line-height: 1.25;
	}

	.ssms-timetable__availability .dashicons { width: 15px; height: 15px; font-size: 15px; }


	.ssms-timetable__modal {
		padding: 12px;
	}

	.ssms-timetable__modal-card {
		width: 100%;
		max-height: calc(100dvh - 24px);
		overflow-y: auto;
		padding: 26px 18px 20px;
		border-radius: 22px;
	}

	.ssms-timetable__modal-icon {
		width: 52px;
		height: 52px;
		margin-bottom: 12px;
		font-size: 26px;
		line-height: 52px;
		border-radius: 15px;
	}

	.ssms-timetable__modal-eyebrow { margin-bottom: 13px; font-size: 10px; }
	.ssms-timetable__modal-summary { padding: 20px 15px 18px; border-radius: 18px; }
	.ssms-timetable__modal-visual { width: 68px; height: 68px; margin-bottom: 9px; }
	.ssms-timetable__modal-card h3.ssms-timetable__modal-class { font-size: 23px; }
	.ssms-timetable__modal-date-time,
	.ssms-timetable__modal-teacher-studio { font-size: 13px; }
	.ssms-timetable__modal-fee { min-height: 43px; margin-top: 14px; font-size: 18px; }
	.ssms-timetable__modal-actions { gap: 8px; margin-top: 16px; }
	.ssms-timetable__modal-book { flex: 1 1 auto; min-width: 0; height: 49px; }
	.ssms-timetable__modal-action { flex: 0 0 auto; min-width: 70px; height: 49px; }
}

@media (max-width: 390px) {
	.ssms-timetable__header h2 { font-size: 25px; }
	.ssms-timetable__subtitle { font-size: 10.5px; }
	.ssms-timetable__basket-placeholder { padding-left: 7px; padding-right: 7px; }
	.ssms-timetable__basket-total { font-size: 11px; }
	.ssms-timetable__day-tab { font-size: 8.5px; }
}


/* ==========================================================================
   Timetable exit control — 10 Aug 2026
   Adds a clear route back to the main Savvy Studios site and removes the
   secondary header copy so the public app shell stays compact.
   ========================================================================== */

.ssms-timetable__header {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 28px;
}

.ssms-timetable__back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 9px 15px;
	border: 1px solid rgba(255,255,255,.35);
	border-radius: 14px;
	background: rgba(255,255,255,.035);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.15;
	text-decoration: none;
	white-space: nowrap;
	transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.ssms-timetable__back:hover,
.ssms-timetable__back:focus-visible {
	background: rgba(255,255,255,.10);
	border-color: rgba(255,255,255,.62);
	color: #fff;
	text-decoration: none;
}

.ssms-timetable__back:active {
	transform: translateY(1px);
}

.ssms-timetable__back .dashicons {
	width: 18px;
	height: 18px;
	font-size: 18px;
	line-height: 18px;
}

.ssms-timetable__header-copy {
	min-width: 0;
}

@media (max-width: 700px) {
	.ssms-timetable__header {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"back back"
			"title basket";
		row-gap: 8px;
		column-gap: 10px;
		min-height: 0;
		padding: max(10px, env(safe-area-inset-top)) 15px 11px !important;
	}

	.ssms-timetable__back {
		grid-area: back;
		justify-self: start;
		min-height: 34px;
		padding: 5px 10px;
		border-radius: 10px;
		font-size: 11.5px;
		gap: 5px;
	}

	.ssms-timetable__back .dashicons {
		width: 15px;
		height: 15px;
		font-size: 15px;
		line-height: 15px;
	}

	.ssms-timetable__header-copy {
		grid-area: title;
		align-self: center;
	}

	.ssms-timetable__basket-placeholder {
		grid-area: basket;
		align-self: center;
	}

	.ssms-timetable__header h2 {
		font-size: 27px;
		line-height: 1;
	}
}

@media (max-width: 390px) {
	.ssms-timetable__back {
		font-size: 11px;
	}

	.ssms-timetable__header h2 {
		font-size: 25px;
	}
}

/* ==========================================================
   TIMETABLE-NATIVE CLASS BOOKING JOURNEY
   ========================================================== */
.ssms-timetable__basket-placeholder{cursor:pointer}
.ssms-timetable__basket-placeholder.has-items{box-shadow:0 8px 24px rgba(10,57,70,.18)}
.ssms-timetable__booking-feedback{flex:0 0 auto;margin:10px auto 0;width:min(1120px,calc(100% - 32px));padding:11px 14px;border-radius:12px;font-weight:750;text-align:center}
.ssms-timetable__booking-feedback.is-success{background:#e8f5ef;color:#257257;border:1px solid #bfe3d4}
.ssms-timetable__booking-feedback.is-error{background:#fff0f0;color:#9d3d45;border:1px solid #f0c9cc}
.ssms-timetable__booking-feedback.is-info{background:#edf5f7;color:#456b77;border:1px solid #d2e5ea}
html.ssms-timetable-booking-open,html.ssms-timetable-booking-open body{overflow:hidden!important}
.ssms-timetable-booking[hidden]{display:none!important}
.ssms-timetable-booking{position:absolute;inset:0;z-index:180;display:grid;place-items:center;padding:22px}
.ssms-timetable-booking__backdrop{position:absolute;inset:0;background:rgba(13,49,59,.58);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.ssms-timetable-booking__panel{position:relative;z-index:1;width:min(820px,100%);max-height:calc(100dvh - 44px);overflow:auto;overscroll-behavior:contain;border-radius:26px;background:#fff;box-shadow:0 26px 70px rgba(13,49,59,.28);color:#1f3942}
.ssms-timetable-booking__form{margin:0}
.ssms-timetable-booking__header{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px;border-bottom:1px solid #dbe7ea;background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}
.ssms-timetable-booking__header span{display:block;margin-bottom:3px;color:#5f808d;font-size:10px;font-weight:900;letter-spacing:.18em}
.ssms-timetable-booking__header h2{margin:0;font-size:27px;line-height:1.1;color:#17333c}
.ssms-timetable-booking__close{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #c9dce1;border-radius:50%;background:#f4f8f9;color:#456b77;cursor:pointer}
.ssms-timetable-booking__step{display:none;padding:24px 26px 28px}
.ssms-timetable-booking__step.is-active{display:block}
.ssms-timetable-booking__intro{margin-bottom:18px}
.ssms-timetable-booking__intro h3{margin:0 0 5px;font-size:22px;color:#203b44}
.ssms-timetable-booking__intro p{margin:0;color:#6c8189;line-height:1.5}
.ssms-timetable-booking__basket-list{display:grid;gap:10px}
.ssms-timetable-booking__basket-empty{padding:28px 18px;border:1px dashed #cddde1;border-radius:16px;background:#f8fbfb;color:#788b91;text-align:center}
.ssms-timetable-booking__basket-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 18px;border:1px solid #d5e3e7;border-radius:16px;background:#fff}
.ssms-timetable-booking__basket-item>div:first-child{display:grid;gap:3px}
.ssms-timetable-booking__basket-item span{color:#3d8c73;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.ssms-timetable-booking__basket-item strong{font-size:18px;color:#17333c}
.ssms-timetable-booking__basket-item em{font-style:normal;color:#5d7480;font-weight:750}
.ssms-timetable-booking__basket-item small{color:#6b8088}
.ssms-timetable-booking__basket-item>div:last-child{display:grid;justify-items:end;gap:2px}
.ssms-timetable-booking__basket-item b{font-size:18px;color:#17333c}
.ssms-timetable-booking__basket-item button{margin-top:5px;padding:0;border:0;background:none;color:#a44d5d;font-size:11px;font-weight:800;cursor:pointer}
.ssms-timetable-booking__basket-total{display:flex;justify-content:space-between;gap:20px;margin-top:14px;padding:15px 18px;border-radius:14px;background:#edf5f6}
.ssms-timetable-booking__basket-total span{font-weight:750;color:#577079}
.ssms-timetable-booking__basket-total strong{font-size:20px;color:#17333c}
.ssms-timetable-booking__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.ssms-timetable-booking__primary,.ssms-timetable-booking__secondary,.ssms-timetable-booking__pay{min-height:46px;padding:0 18px;border-radius:12px;font-weight:850;cursor:pointer}
.ssms-timetable-booking__primary,.ssms-timetable-booking__pay{border:1px solid #e8a8bf;background:#efb4ca;color:#15343e}
.ssms-timetable-booking__secondary{border:1px solid #cadde2;background:#fff;color:#496c77}
.ssms-timetable-booking__pay{display:inline-flex;align-items:center;gap:8px}
.ssms-timetable-booking__person-card{margin:0 0 14px;padding:18px;border:1px solid #d5e3e7;border-radius:17px;background:#fbfdfd}
.ssms-timetable-booking__person-card header{margin-bottom:15px}
.ssms-timetable-booking__person-card header span{color:#5f808d;font-size:9px;font-weight:900;letter-spacing:.16em}
.ssms-timetable-booking__person-card h4{margin:4px 0 2px;font-size:20px;color:#18343d}
.ssms-timetable-booking__person-card p{margin:0;color:#6d828a}
.ssms-timetable-booking__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ssms-timetable-booking__fields label{display:grid;gap:6px;color:#405f69;font-size:12px;font-weight:800}
.ssms-timetable-booking__fields label.full{grid-column:1/-1}
.ssms-timetable-booking__fields input,.ssms-timetable-booking__fields textarea,.ssms-timetable-booking__fields select{width:100%;min-height:44px;padding:9px 11px;border:1px solid #cbdde2;border-radius:10px;background:#fff;color:#203942;font:inherit}
.ssms-timetable-booking__review{display:grid;gap:10px}
.ssms-timetable-booking__review-row{display:flex;justify-content:space-between;gap:18px;padding:15px 17px;border:1px solid #d8e5e8;border-radius:14px}
.ssms-timetable-booking__review-row>div{display:grid;gap:2px}.ssms-timetable-booking__review-row span,.ssms-timetable-booking__review-row small{color:#6d8188}.ssms-timetable-booking__review-row>b{display:grid;justify-items:end}.ssms-timetable-booking__review-row>b small{font-size:9px;text-transform:uppercase}
.ssms-timetable-booking__review-note{padding:16px;border-radius:14px;background:#eef6f7;color:#4c6973}.ssms-timetable-booking__review-note p{margin:7px 0 0;line-height:1.5}
.ssms-timetable-booking__consent{display:flex;gap:10px;align-items:flex-start;margin-top:13px;padding:13px;border:1px solid #dce7e9;border-radius:12px;color:#526c75;line-height:1.45}.ssms-timetable-booking__consent input{margin-top:3px}

@media(max-width:700px){
	.ssms-timetable-booking{padding:0;place-items:stretch}
	.ssms-timetable-booking__panel{width:100%;height:100dvh;max-height:none;border-radius:0}
	.ssms-timetable-booking__header{padding:max(14px,env(safe-area-inset-top)) 17px 14px}
	.ssms-timetable-booking__header h2{font-size:23px}
	.ssms-timetable-booking__step{padding:18px 16px calc(22px + env(safe-area-inset-bottom))}
	.ssms-timetable-booking__intro h3{font-size:20px}
	.ssms-timetable-booking__fields{grid-template-columns:1fr}
	.ssms-timetable-booking__fields label.full{grid-column:auto}
	.ssms-timetable-booking__actions{display:grid;grid-template-columns:1fr;position:sticky;bottom:0;padding-top:10px;background:linear-gradient(to top,#fff 72%,rgba(255,255,255,0))}
	.ssms-timetable-booking__primary,.ssms-timetable-booking__secondary,.ssms-timetable-booking__pay{width:100%;justify-content:center}
	.ssms-timetable-booking__basket-item{grid-template-columns:minmax(0,1fr) auto;padding:14px}
}

/* Class booking: secure Savvy-record check before collecting new-student details. */
.ssms-timetable-booking__person-intro{margin:0 0 15px;color:#4f6d77;line-height:1.5}
.ssms-timetable-booking__identity-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ssms-timetable-booking__identity-fields label{display:grid;gap:6px;color:#405f69;font-size:12px;font-weight:800}
.ssms-timetable-booking__identity-fields input{width:100%;min-height:48px;padding:10px 12px;border:1px solid #cbdde2;border-radius:11px;background:#fff;color:#203942;font:inherit}
.ssms-timetable-booking__match-actions{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;margin-top:16px}
.ssms-timetable-booking__match-actions p{margin:0;color:#6d828a;line-height:1.45}
.ssms-timetable-booking__check{min-height:46px;padding:0 18px;border:0;border-radius:12px;background:#456f7b;color:#fff;font-weight:850;cursor:pointer}
.ssms-timetable-booking__check:disabled{opacity:.6;cursor:wait}
.ssms-timetable-booking__match-result{margin-top:14px;padding:13px 15px;border-radius:12px;font-weight:750;line-height:1.45}
.ssms-timetable-booking__match-result.is-match{border:1px solid #bfe2d3;background:#e8f5ef;color:#267059}
.ssms-timetable-booking__match-result.is-new{border:1px solid #d5e4e8;background:#eef5f7;color:#496b76}
.ssms-timetable-booking__match-result.is-error{border:1px solid #efc8cb;background:#fff0f0;color:#9b3e45}
.ssms-timetable-booking__new-details{margin-top:16px;padding-top:16px;border-top:1px solid #dce7ea}
.ssms-timetable-booking__new-details h5{margin:0 0 5px;color:#203b44;font-size:17px}
.ssms-timetable-booking__new-details>p{margin:0 0 14px;color:#6d828a;line-height:1.45}
@media(max-width:700px){
 .ssms-timetable-booking__identity-fields{grid-template-columns:1fr}
 .ssms-timetable-booking__match-actions{grid-template-columns:1fr}
 .ssms-timetable-booking__check{width:100%}
}


/* Class booking basket selection and sequential person assignment. */
.ssms-timetable__row.is-in-basket{
	border-color:color-mix(in srgb,var(--ssms-tt-row-accent) 42%,#d4e3e7);
	box-shadow:0 7px 22px rgba(13,70,85,.11),inset 0 0 0 1px color-mix(in srgb,var(--ssms-tt-row-accent) 22%,transparent);
}
.ssms-timetable__book.is-in-basket{
	background:var(--ssms-tt-row-accent);
	color:#fff;
	box-shadow:0 5px 13px rgba(13,70,85,.14);
}
.ssms-timetable__book.is-in-basket:hover,
.ssms-timetable__book.is-in-basket:focus-visible{
	background:var(--ssms-tt-row-accent);
	color:#fff;
}
.ssms-timetable-booking__assignment-progress{
	margin:0 0 12px;
	color:#6b838c;
	font-size:12px;
	font-weight:850;
	letter-spacing:.08em;
	text-transform:uppercase;
}
.ssms-timetable-booking__person-chooser{
	margin:0;
	padding:18px;
	border:1px solid #d5e3e7;
	border-radius:17px;
	background:#fbfdfd;
}
.ssms-timetable-booking__person-chooser header{margin-bottom:18px}
.ssms-timetable-booking__person-chooser header span{color:#5f808d;font-size:9px;font-weight:900;letter-spacing:.16em}
.ssms-timetable-booking__person-chooser h4{margin:4px 0 2px;color:#18343d;font-size:20px}
.ssms-timetable-booking__person-chooser header p{margin:0;color:#6d828a}
.ssms-timetable-booking__person-chooser h5{margin:0 0 4px;color:#203b44;font-size:17px}
.ssms-timetable-booking__person-chooser>p{margin:0 0 14px;color:#6d828a}
.ssms-timetable-booking__person-chooser [data-reusable-people]{display:grid;gap:10px}
.ssms-timetable-booking__person-choice{
	display:grid;
	grid-template-columns:34px minmax(0,1fr);
	grid-template-areas:"tick name" "tick hint";
	align-items:center;
	gap:1px 10px;
	width:100%;
	min-height:62px;
	padding:10px 14px;
	border:1px solid #cbdde2;
	border-radius:13px;
	background:#fff;
	color:#203b44;
	text-align:left;
	cursor:pointer;
}
.ssms-timetable-booking__person-choice:hover,
.ssms-timetable-booking__person-choice:focus-visible{
	border-color:#79a7b4;
	box-shadow:0 0 0 3px rgba(65,139,157,.10);
	outline:0;
}
.ssms-timetable-booking__person-choice>span{
	grid-area:tick;
	display:grid;
	place-items:center;
	width:30px;
	height:30px;
	border-radius:50%;
	background:#e8f5ef;
	color:#267059;
	font-weight:900;
}
.ssms-timetable-booking__person-choice>strong{grid-area:name;font-size:15px}
.ssms-timetable-booking__person-choice>small{grid-area:hint;color:#71858d}
.ssms-timetable-booking__add-person{
	width:100%;
	min-height:46px;
	margin-top:12px;
	border:1px dashed #9ab8c1;
	border-radius:12px;
	background:#f7fbfc;
	color:#456f7b;
	font-weight:850;
	cursor:pointer;
}
.ssms-timetable-booking__assign-person{
	width:100%;
	min-height:48px;
	margin-top:16px;
	padding:0 18px;
	border:0;
	border-radius:12px;
	background:#f1b5d0;
	color:#17333d;
	font-weight:900;
	cursor:pointer;
}
.ssms-timetable-booking__assign-person[hidden]{display:none!important}
.ssms-timetable-booking__assignment-complete{
	margin-bottom:12px;
	padding:15px 16px;
	border:1px solid #bfe2d3;
	border-radius:13px;
	background:#e8f5ef;
	color:#267059;
}
.ssms-timetable-booking__assignment-complete strong{font-size:16px}
.ssms-timetable-booking__assignment-complete p{margin:4px 0 0}
.ssms-timetable-booking__assignment-summary{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:18px;
	margin-bottom:9px;
	padding:13px 15px;
	border:1px solid #d8e5e8;
	border-radius:12px;
	background:#fff;
}
.ssms-timetable-booking__assignment-summary>div{display:grid;gap:2px}
.ssms-timetable-booking__assignment-summary small{color:#748991}
.ssms-timetable-booking__assignment-summary>span{color:#267059;font-weight:800;text-align:right}
@media(max-width:700px){
	.ssms-timetable-booking__assignment-summary{display:grid;gap:7px}
	.ssms-timetable-booking__assignment-summary>span{text-align:left}
	.ssms-timetable__book.is-in-basket .ssms-timetable__book-plus{font-size:22px;font-weight:800}
}

.ssms-timetable-booking__actions button[hidden]{display:none!important}


/* Class booking assignment clarity refinements. */
.ssms-timetable-booking__person-card header em,
.ssms-timetable-booking__person-chooser header em,
.ssms-timetable-booking__assignment-summary em,
.ssms-timetable-booking__review-row em{
	display:inline-flex;
	justify-self:start;
	margin:5px 0 2px;
	padding:4px 8px;
	border-radius:7px;
	background:#eaf2f5;
	color:#496b78;
	font-size:11px;
	font-style:normal;
	font-weight:850;
}
.ssms-timetable-booking__assigned-so-far{
	display:grid;
	gap:8px;
	margin:0 0 16px;
	padding:14px;
	border:1px solid #bfe2d3;
	border-radius:14px;
	background:#eff8f4;
}
.ssms-timetable-booking__assigned-so-far>strong{
	color:#267059;
	font-size:14px;
}
.ssms-timetable-booking__assignment-summary.is-assigned{
	margin:0;
	border-color:#c6e5d8;
	background:#fff;
}
.ssms-timetable-booking__assignment-summary.is-assigned>span{
	display:inline-flex;
	align-items:center;
	justify-content:flex-end;
	min-height:34px;
	padding:6px 10px;
	border-radius:9px;
	background:#e8f5ef;
	color:#267059;
}
.ssms-timetable-booking__assignment-progress{
	margin-top:4px;
	padding:8px 11px;
	border-radius:9px;
	background:#eef4f6;
	color:#456f7b;
}
.ssms-timetable-booking__assign-person{
	min-height:56px;
	padding:10px 18px;
	line-height:1.3;
	background:#f1b5d0;
	border:1px solid #e6a6c4;
	box-shadow:0 5px 14px rgba(13,70,85,.08);
}
.ssms-timetable-booking__assign-person:hover,
.ssms-timetable-booking__assign-person:focus-visible{
	background:#efaccb;
	box-shadow:0 0 0 3px rgba(241,181,208,.28);
	outline:0;
}
.ssms-timetable-booking__review-row>div{
	display:grid;
	gap:3px;
}
@media(max-width:700px){
	.ssms-timetable-booking__assigned-so-far{padding:11px}
	.ssms-timetable-booking__assignment-summary.is-assigned>span{justify-content:flex-start}
	.ssms-timetable-booking__assign-person{font-size:15px}
}

/* Class booking polish: identity, close control, terms and basket reset. */
.ssms-timetable-booking__close{
	width:54px;
	height:54px;
	min-width:54px;
	min-height:54px;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:0;
}
.ssms-timetable-booking__close>span{
	display:block;
	width:100%;
	text-align:center;
	font-size:26px;
	font-weight:600;
	line-height:1;
	transform:translateY(-1px);
}
.ssms-timetable-booking__check{
	background:#f1b5d0;
	color:#17333d;
	border:1px solid #e6a6c4;
	box-shadow:0 5px 14px rgba(13,70,85,.07);
}
.ssms-timetable-booking__check:hover,
.ssms-timetable-booking__check:focus-visible{
	background:#efaccb;
	box-shadow:0 0 0 3px rgba(241,181,208,.28);
	outline:0;
}
.ssms-timetable-booking__identity-fields{
	grid-template-columns:repeat(3,minmax(0,1fr));
}
.ssms-timetable-booking__terms-link{
	margin:15px 0 4px;
}
.ssms-timetable-booking__terms-link a{
	display:inline-flex;
	align-items:center;
	min-height:38px;
	padding:0 12px;
	border-radius:10px;
	background:#edf5f7;
	color:#456f7b;
	font-weight:850;
	text-decoration:none;
}
.ssms-timetable-booking__terms-link a:hover,
.ssms-timetable-booking__terms-link a:focus-visible{
	text-decoration:underline;
	outline:0;
}
.ssms-timetable-booking__empty-basket{
	min-height:46px;
	padding:0 16px;
	border:1px solid #e5c3ca;
	border-radius:12px;
	background:#fff7f8;
	color:#9b4b5b;
	font-weight:850;
	cursor:pointer;
}
.ssms-timetable-booking__empty-basket:hover,
.ssms-timetable-booking__empty-basket:focus-visible{
	background:#fff0f3;
	outline:0;
}
.ssms-timetable-booking__empty-basket[hidden]{display:none!important}
.ssms-timetable-booking__actions--basket{
	align-items:center;
}
.ssms-timetable-booking__actions--basket .ssms-timetable-booking__empty-basket{
	margin-right:auto;
}
@media(max-width:700px){
	.ssms-timetable-booking__close{
		width:52px;
		height:52px;
		min-width:52px;
		min-height:52px;
	}
	.ssms-timetable-booking__close>span{font-size:27px}
	.ssms-timetable-booking__identity-fields{grid-template-columns:1fr}
	.ssms-timetable-booking__actions--basket .ssms-timetable-booking__empty-basket{margin-right:0}
}

/* Class Booking Centre controlled timetable announcement */
html.ssms-timetable-announcement-open,
html.ssms-timetable-announcement-open body {
	overflow: hidden !important;
}

.ssms-timetable__announcement[hidden] {
	display: none !important;
}

.ssms-timetable__announcement {
	position: fixed;
	inset: 0;
	z-index: 2147483002;
	display: grid;
	place-items: center;
	padding: 22px;
}

.ssms-timetable__announcement-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(8, 44, 53, .62);
	backdrop-filter: blur(7px);
	-webkit-backdrop-filter: blur(7px);
}

.ssms-timetable__announcement-card {
	position: relative;
	z-index: 1;
	width: min(100%, 560px);
	padding: 38px 38px 34px;
	border: 1px solid #d6e4e8;
	border-radius: 26px;
	background: #fff;
	box-shadow: 0 28px 80px rgba(8, 44, 53, .28);
	color: #17333d;
	outline: none;
	text-align: left;
}

.ssms-timetable__announcement-close {
	position: absolute;
	top: 18px;
	right: 18px;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid #cadde3;
	border-radius: 50%;
	background: #f4f8f9;
	color: #55757f;
	cursor: pointer;
}

.ssms-timetable__announcement-close .dashicons {
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	font-size: 22px;
	line-height: 1;
}

.ssms-timetable__announcement-eyebrow {
	display: block;
	margin: 0 58px 8px 0;
	color: #5f808d;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.ssms-timetable__announcement-card h3 {
	margin: 0 58px 14px 0;
	color: #17333d;
	font-size: 30px;
	line-height: 1.12;
}

.ssms-timetable__announcement-card p {
	margin: 0;
	color: #657f89;
	font-size: 17px;
	line-height: 1.65;
}

.ssms-timetable__announcement-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 140px;
	min-height: 50px;
	margin-top: 24px;
	padding: 0 22px;
	border: 0;
	border-radius: 14px;
	background: #efadca;
	color: #17333d;
	font-size: 16px;
	font-weight: 850;
	cursor: pointer;
}

@media (max-width: 720px) {
	.ssms-timetable__announcement {
		padding: 14px;
	}
	.ssms-timetable__announcement-card {
		padding: 32px 24px 26px;
		border-radius: 22px;
	}
	.ssms-timetable__announcement-close {
		top: 14px;
		right: 14px;
		width: 46px;
		height: 46px;
	}
	.ssms-timetable__announcement-card h3 {
		font-size: 26px;
	}
	.ssms-timetable__announcement-card p {
		font-size: 16px;
	}
	.ssms-timetable__announcement-action {
		width: 100%;
	}
}


/* Timetable trial merge / quantity / Discover More */
.ssms-timetable__trial-available{
	display:block;margin:0 0 7px;color:#9a7417;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;
}
.ssms-timetable__modal-quantity{
	display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:16px 18px;border:1px solid #d6e4e8;border-radius:16px;background:#f7fafb;
}
.ssms-timetable__modal-quantity>div:first-child{display:grid;gap:4px}
.ssms-timetable__modal-quantity strong{color:#17333d}
.ssms-timetable__modal-quantity small{color:#71858d}
.ssms-timetable__quantity-control{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid #c7dce2;border-radius:14px;background:#fff}
.ssms-timetable__quantity-control button{width:42px;height:42px;border:0;border-radius:11px;background:#edf4f6;color:#416773;font-size:24px;font-weight:800;cursor:pointer}
.ssms-timetable__quantity-control>strong{min-width:42px;text-align:center;font-size:19px}
.ssms-timetable__modal-discover,.ssms-timetable__modal-trial{
	min-height:48px;padding:0 19px;border-radius:13px;font-weight:850;cursor:pointer
}
.ssms-timetable__modal-discover{border:1px solid #bdd2d9;background:#fff;color:#456975}
.ssms-timetable__modal-trial{border:1px solid #d7b45b;background:#fff8df;color:#765c16}

.ssms-timetable__trial-modal,.ssms-timetable__discover{position:fixed;inset:0;z-index:100000}
.ssms-timetable__trial-backdrop,.ssms-timetable__discover-backdrop{position:absolute;inset:0;background:rgba(18,48,58,.55);backdrop-filter:blur(7px)}
.ssms-timetable__trial-card,.ssms-timetable__discover-card{
	position:relative;z-index:1;width:min(680px,calc(100vw - 34px));max-height:calc(100dvh - 44px);overflow:auto;margin:22px auto;padding:34px;border-radius:26px;background:#fff;box-shadow:0 28px 70px rgba(19,48,58,.28);color:#17333d
}
.ssms-timetable__trial-close,.ssms-timetable__discover-close{
	position:absolute;top:20px;right:20px;width:52px;height:52px;border:1px solid #cadfe5;border-radius:50%;background:#f3f8f9;color:#4c707b;font-size:23px;font-weight:800;cursor:pointer
}
.ssms-timetable__trial-eyebrow,.ssms-timetable__discover-eyebrow{
	display:block;margin:8px 0 12px;color:#9a7417;font-size:11px;font-weight:900;letter-spacing:.2em;text-transform:uppercase
}
.ssms-timetable__discover-eyebrow{color:#5f808d}
.ssms-timetable__trial-card h3,.ssms-timetable__discover-card h3{margin:0 70px 10px 0;font-size:30px}
.ssms-timetable__trial-meta{margin:0 0 20px;color:#6d828b;font-size:17px}
.ssms-timetable__trial-fee{display:inline-flex;padding:10px 18px;margin-bottom:20px;border-radius:999px;background:#fff3cc;color:#7b5e13;font-size:20px;font-weight:900}
.ssms-timetable__trial-fee.is-free{background:#e9f6ef;color:#25775d}
.ssms-timetable__trial-date-label{display:grid;gap:7px;color:#365963;font-size:13px;font-weight:850}
.ssms-timetable__trial-date-label select{width:100%;min-height:50px;padding:0 14px;border:1px solid #cadde2;border-radius:12px;background:#fff;color:#17333d;font:inherit}
.ssms-timetable__trial-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.ssms-timetable__trial-actions button,.ssms-timetable__discover-return{min-height:50px;padding:0 20px;border:0;border-radius:13px;cursor:pointer;font-weight:850}
.ssms-timetable__trial-add{background:#f0c96a;color:#49380d}
.ssms-timetable__trial-actions button:last-child,.ssms-timetable__discover-return{background:#eaf1f3;color:#365963}
.ssms-timetable__discover-copy{padding:20px;border:1px solid #d8e5e8;border-radius:16px;background:#f6fafb;color:#58717a;font-size:16px;line-height:1.65}
.ssms-timetable__discover-return{margin-top:18px}

.ssms-timetable-booking__basket-item.is-trial,
.ssms-timetable-booking__person-card.is-trial,
.ssms-timetable-booking__person-chooser.is-trial,
.ssms-timetable-booking__assignment-summary.is-trial{
	border-color:#e4cf91;background:#fffaf0
}
.ssms-timetable-booking__basket-item.is-trial{border-left:5px solid #d6ad43}
.ssms-timetable-booking__basket-kind,.ssms-timetable-booking__assignment-kind,.ssms-timetable-booking__review-kind{
	display:inline-flex;align-items:center;justify-content:center;width:max-content;margin-bottom:5px;padding:4px 8px;border-radius:999px;background:#e9f1f3;color:#56737d;font-size:9px;font-weight:900;letter-spacing:.1em
}
.is-trial .ssms-timetable-booking__basket-kind,
.is-trial .ssms-timetable-booking__assignment-kind,
.ssms-timetable-booking__review-row.is-trial .ssms-timetable-booking__review-kind{background:#fff0bd;color:#826313}
.ssms-timetable-booking__basket-qty{display:block;margin-top:8px;color:#56737d;font-size:12px}
.ssms-timetable-booking__assignment-progress.is-trial{background:#fff3c9;color:#7c6117}
.ssms-timetable-booking__trial-date-inline{color:#9a7417!important;font-weight:750}
.ssms-timetable-booking__review-row.is-trial{background:#fffaf0;border-color:#e4cf91}

@media(max-width:720px){
	.ssms-timetable__modal-quantity{align-items:flex-start;flex-direction:column}
	.ssms-timetable__quantity-control{align-self:stretch;justify-content:flex-end}
	.ssms-timetable__trial-card,.ssms-timetable__discover-card{width:100%;height:100dvh;max-height:none;margin:0;border-radius:0;padding:28px 20px calc(28px + env(safe-area-inset-bottom))}
	.ssms-timetable__trial-actions{display:grid;grid-template-columns:1fr 1fr}
	.ssms-timetable__modal-actions{flex-wrap:wrap}
	.ssms-timetable__modal-discover,.ssms-timetable__modal-trial,.ssms-timetable__modal-book{flex:1 1 100%}
}


/* Trial/timetable merge refinements. */
.ssms-timetable__trial-available{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:6px;
	margin:0 0 2px;
	color:#9a7417;
	font-size:10px;
	font-weight:900;
	letter-spacing:.08em;
	text-transform:uppercase;
}
.ssms-timetable__trial-available span{font-size:10px}
.ssms-timetable-booking__consent[hidden],
.ssms-timetable-booking [data-class-payment-day][hidden]{display:none!important}
.ssms-timetable__trial-modal:not([hidden]),
.ssms-timetable__discover:not([hidden]){
	display:grid;
	place-items:center;
	padding:22px;
}
.ssms-timetable__trial-card,.ssms-timetable__discover-card{
	margin:0;
}
@media(max-width:700px){
	.ssms-timetable__trial-modal:not([hidden]),
	.ssms-timetable__discover:not([hidden]){padding:0}
	.ssms-timetable__trial-card,.ssms-timetable__discover-card{
		width:100%;
		max-height:100dvh;
		min-height:100dvh;
		border-radius:0;
		padding:28px 20px calc(28px + env(safe-area-inset-bottom));
	}
	.ssms-timetable__trial-available{font-size:9px}
}

/* Trial already selected: use the warm trial colour rather than the class green. */
.ssms-timetable__row.is-trial-in-basket{
	border-color:#e5bd55;
	box-shadow:0 7px 22px rgba(154,113,11,.11),inset 0 0 0 1px rgba(229,189,85,.24);
}
.ssms-timetable__book.is-trial-in-basket,
.ssms-timetable__book.is-trial-in-basket:hover,
.ssms-timetable__book.is-trial-in-basket:focus-visible{
	background:#f5cf67;
	border-color:#d9ad3e;
	color:#5d4710;
	box-shadow:0 5px 13px rgba(154,113,11,.14);
}


/* ==========================================================================
   Mobile booking UX refinement — 11 Aug 2026
   ========================================================================== */
html.ssms-timetable-app-open,
body.ssms-timetable-app-open {
	background: #fff !important;
	color-scheme: light;
}
.ssms-timetable { background: #f5f9fa; }

.ssms-timetable-booking__person-card.is-matched .ssms-timetable-booking__match-actions { display: none !important; }
.ssms-timetable-booking__person-card.is-matched .ssms-timetable-booking__match-result.is-match {
	margin-top:14px;margin-bottom:0;padding:14px 16px 9px;border:1px solid #b7dfcf;border-bottom:0;border-radius:13px 13px 0 0;background:#e7f5ee;color:#236d55;font-size:15px;font-weight:900;
}
.ssms-timetable-booking__person-card.is-matched .ssms-timetable-booking__assign-person {
	margin-top:0;padding:11px 16px 15px;border:1px solid #b7dfcf;border-top:0;border-radius:0 0 13px 13px;background:#e7f5ee;color:#236d55;box-shadow:none;font-size:16px;
}
.ssms-timetable-booking__person-card.is-matched .ssms-timetable-booking__assign-person:hover,
.ssms-timetable-booking__person-card.is-matched .ssms-timetable-booking__assign-person:focus-visible { background:#dff1e9;box-shadow:none; }

@media (max-width:700px) {
	.ssms-timetable input,.ssms-timetable select,.ssms-timetable textarea,.ssms-timetable-booking input,.ssms-timetable-booking select,.ssms-timetable-booking textarea{font-size:16px!important;}
	.ssms-timetable__modal{padding:8px;}
	.ssms-timetable__modal-card{max-height:calc(100dvh - 16px);padding:18px 14px 14px;}
	.ssms-timetable__modal-icon{display:none!important;}
	.ssms-timetable__modal-close{top:10px;right:10px;}
	.ssms-timetable__modal-eyebrow{margin:4px 54px 10px;}
	.ssms-timetable__modal-summary{padding:16px 13px 15px;}
	.ssms-timetable__modal-visual{width:62px;height:62px;margin-bottom:7px;}
	.ssms-timetable__modal-card h3.ssms-timetable__modal-class{font-size:22px;}

	.ssms-timetable__modal-quantity{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;margin:11px 0;padding:9px 10px;min-height:52px;}
	.ssms-timetable__modal-quantity>div:first-child{display:block;min-width:0;}
	.ssms-timetable__modal-quantity>div:first-child strong{white-space:nowrap;font-size:14px;}
	.ssms-timetable__modal-quantity>div:first-child small{display:none;}
	.ssms-timetable__quantity-control{flex:0 0 auto;align-self:auto;}
	.ssms-timetable__quantity-control button{width:35px;height:35px;font-size:20px;}
	.ssms-timetable__quantity-control>strong{min-width:34px;font-size:17px;}

	.ssms-timetable-booking__consent{position:relative;display:block;min-height:96px;padding:45px 18px 17px;border:1px solid #d5e4e8;border-radius:15px;background:#fff;color:#4e6871;font-size:16px;font-weight:750;line-height:1.45;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease;}
	.ssms-timetable-booking__consent input[type="checkbox"]{position:absolute!important;width:1px!important;height:1px!important;min-height:1px!important;margin:0!important;opacity:0;pointer-events:none;}
	.ssms-timetable-booking__consent::before{content:"Tap to agree";position:absolute;top:13px;left:17px;display:inline-flex;align-items:center;min-height:25px;padding:3px 9px;border-radius:999px;background:#edf4f6;color:#4f707a;font-size:12px;font-weight:900;}
	.ssms-timetable-booking__consent.is-agreed{border-color:#9fd6c2;background:#e8f5ef;color:#236d55;}
	.ssms-timetable-booking__consent.is-agreed::before{content:"✓ Agreed";background:#cfeadb;color:#236d55;}

	.ssms-timetable-booking__identity-fields input[name$="[date_of_birth]"]{appearance:none;-webkit-appearance:none;}
	.ssms-timetable-booking__actions{padding-bottom:max(12px,env(safe-area-inset-bottom));background:linear-gradient(to top,#fff 82%,rgba(255,255,255,0));}
}


/* ==========================================================================
   Mobile trial marker / DOB / person chooser refinement — 11 Aug 2026
   ========================================================================== */
.ssms-timetable-booking__dob{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1.35fr);
	align-items:center;
	gap:8px;
	width:100%;
}
.ssms-timetable-booking__dob>span{
	color:#6b858e;
	font-size:18px;
	font-weight:850;
	text-align:center;
}
.ssms-timetable-booking__dob input[data-dob-part]{
	min-width:0;
	text-align:center;
}
.ssms-timetable-booking__dob input[data-dob-value]{display:none!important}
.ssms-timetable-booking__add-person[hidden]{display:none!important}

@media(max-width:700px){
	.ssms-timetable-booking__dob{
		grid-template-columns:1fr auto 1fr auto 1.35fr;
		gap:5px;
	}
	.ssms-timetable-booking__dob>span{font-size:17px}
	.ssms-timetable-booking__dob input[data-dob-part]{
		padding-left:8px!important;
		padding-right:8px!important;
	}
	.ssms-timetable-booking__person-chooser + .ssms-timetable-booking__person-card{
		margin-top:14px;
	}
}

/* Timetable booking feedback + assignment clarity — 11 Aug 2026 */
.ssms-timetable__booking-feedback{position:relative;display:flex;align-items:center;justify-content:center;gap:14px;padding-right:54px}
.ssms-timetable__booking-feedback>span{display:block;flex:1;text-align:center}
.ssms-timetable__booking-feedback [data-dismiss-booking-feedback]{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid currentColor;border-radius:50%;background:rgba(255,255,255,.55);color:inherit;font-size:24px;line-height:1;cursor:pointer}
.ssms-timetable-booking__person-card.is-matched .ssms-timetable-booking__assign-person{background:#2b7d63!important;color:#fff!important;border-color:#2b7d63!important;font-weight:900;cursor:pointer}
.ssms-timetable-booking__person-card.is-matched .ssms-timetable-booking__assign-person:hover,.ssms-timetable-booking__person-card.is-matched .ssms-timetable-booking__assign-person:focus-visible{background:#236d55!important}
@media(max-width:700px){.ssms-timetable__booking-feedback{padding:14px 52px 14px 14px;font-size:15px}.ssms-timetable__booking-feedback [data-dismiss-booking-feedback]{right:10px;width:32px;height:32px;font-size:22px}.ssms-timetable-booking__person-card.is-matched .ssms-timetable-booking__assign-person{font-size:16px;line-height:1.35;padding:15px 14px}}

/* Assignment preflight validation and in-flow corrections. */
.ssms-timetable-booking__assignment-conflicts {
	margin: 0 0 14px;
	padding: 16px 18px;
	border: 1px solid #efb9b9;
	border-radius: 14px;
	background: #fff0f0;
	color: #9a3838;
}
.ssms-timetable-booking__assignment-conflicts strong { display:block; font-size:17px; }
.ssms-timetable-booking__assignment-conflicts p { margin:5px 0 0; color:#9a5555; }
.ssms-timetable-booking__assignment-conflict {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:18px;
	margin:0 0 14px;
	padding:16px 18px;
	border:2px solid #dc7d7d;
	border-radius:16px;
	background:#fff;
	color:#17333d;
}
.ssms-timetable-booking__assignment-conflict strong { display:block; font-size:18px; }
.ssms-timetable-booking__assignment-conflict em { display:inline-flex; margin:5px 0; padding:4px 8px; border-radius:7px; background:#eaf2f5; color:#496b78; font-style:normal; font-weight:800; }
.ssms-timetable-booking__assignment-conflict small { display:block; color:#68818b; }
.ssms-timetable-booking__assignment-conflict p { margin:8px 0 0; color:#a13d3d; font-weight:800; }
.ssms-timetable-booking__conflict-actions,
.ssms-timetable-booking__assigned-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.ssms-timetable-booking__conflict-actions button,
.ssms-timetable-booking__assigned-actions button {
	min-height:36px;
	padding:0 12px;
	border:1px solid #c9dce1;
	border-radius:10px;
	background:#fff;
	color:#41626c;
	font:inherit;
	font-size:13px;
	font-weight:800;
	cursor:pointer;
}
.ssms-timetable-booking__conflict-actions button:last-child { border-color:#e6b4b4; color:#9a3f3f; }
.ssms-timetable-booking__assigned-actions > span { font-weight:800; color:#237457; }

@media (max-width:700px) {
	.ssms-timetable-booking__assignment-conflict { display:block; }
	.ssms-timetable-booking__conflict-actions { justify-content:stretch; margin-top:12px; }
	.ssms-timetable-booking__conflict-actions button { flex:1 1 0; min-height:44px; }
	.ssms-timetable-booking__assigned-actions { justify-content:flex-start; margin-top:9px; }
	.ssms-timetable-booking__assigned-actions > span { flex:1 1 100%; }
	.ssms-timetable-booking__assigned-actions button { min-height:40px; }
}

/* Class Cards Centre / Discover More content */
.ssms-timetable__discover-image{width:104px;height:104px;margin:4px auto 16px;border-radius:50%;overflow:hidden;background:#edf5f7;box-shadow:0 0 0 1px #d6e6e9 inset}.ssms-timetable__discover-image img{width:100%;height:100%;object-fit:cover;display:block}.ssms-timetable__discover-card .ssms-timetable__discover-eyebrow{display:block;text-align:center;margin-bottom:12px}.ssms-timetable__discover-card h3{text-align:center;margin:0 auto 18px!important}.ssms-timetable__discover-copy{font-size:17px;line-height:1.7}.ssms-timetable__discover-copy p{margin:0;white-space:pre-line}.ssms-timetable__discover-context{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:#edf4f6;color:#607a83;font-size:13px;text-align:center}@media(max-width:700px){.ssms-timetable__discover-image{width:88px;height:88px}.ssms-timetable__discover-copy{font-size:16px;line-height:1.62}}


/* ==========================================================================
   Class Booking fee explanation + FAQs — 12 Aug 2026
   ========================================================================== */

/* Timetable is for discovery; prices are explained only after Book Class. */
.ssms-timetable__fee{display:none!important}

.ssms-timetable__modal-card{
	width:min(100%,600px);
	max-height:calc(100vh - 40px);
	max-height:calc(100dvh - 40px);
	overflow-y:auto;
	-webkit-overflow-scrolling:touch;
	overscroll-behavior:contain;
	padding-top:28px;
}
.ssms-timetable__modal-eyebrow{
	margin-top:0;
}
.ssms-timetable__modal-fees{
	margin:14px 0;
	padding:16px 18px;
	border:1px solid #d5e4e8;
	border-radius:15px;
	background:#f7fafb;
	color:#29444e;
	text-align:left;
}
.ssms-timetable__modal-fees-eyebrow{
	display:block;
	margin-bottom:4px;
	color:#5f808d;
	font-size:10px;
	font-weight:900;
	letter-spacing:.16em;
}
.ssms-timetable__modal-monthly-fee{
	display:block;
	margin-bottom:12px;
	color:#1f7c5d;
	font-size:21px;
}
.ssms-timetable__modal-fees-intro{
	margin:0 0 8px;
	color:#617981;
	font-size:13px;
}
.ssms-timetable__modal-fee-line,
.ssms-timetable__modal-fee-total{
	display:flex;
	justify-content:space-between;
	gap:16px;
	padding:8px 0;
	border-top:1px solid #e2eaed;
	font-size:13px;
}
.ssms-timetable__modal-fee-line strong,
.ssms-timetable__modal-fee-total strong{
	white-space:nowrap;
}
.ssms-timetable__modal-fee-total{
	margin-top:3px;
	padding-top:11px;
	color:#17353f;
	font-size:15px;
	font-weight:900;
}
.ssms-timetable__modal-next-payment{
	margin:12px 0 0;
	padding:10px 12px;
	border-radius:10px;
	background:#e8f5ef;
	color:#226d55;
	font-size:13px;
	font-weight:850;
}
.ssms-timetable__modal-amp-note{
	margin:10px 0 0;
	color:#667f88;
	font-size:12px;
	line-height:1.55;
}
.ssms-timetable__modal-faq{
	min-height:45px;
	padding:0 16px;
	border:1px solid #bfd3d9;
	border-radius:12px;
	background:#fff;
	color:#496b76;
	font-weight:800;
	cursor:pointer;
}
.ssms-timetable__modal-actions .ssms-timetable__modal-faq{
	flex:1 1 auto;
}

/* FAQ overlay follows the same card-to-card pattern as Discover More. */
.ssms-timetable__faq-modal{
	position:fixed;
	inset:0;
	z-index:1000002;
}
.ssms-timetable__faq-modal[hidden]{display:none!important}
.ssms-timetable__faq-modal:not([hidden]){
	display:grid;
	place-items:center;
	padding:22px;
}
.ssms-timetable__faq-backdrop{
	position:absolute;
	inset:0;
	background:rgba(14,50,59,.54);
	backdrop-filter:blur(7px);
}
.ssms-timetable__faq-card{
	position:relative;
	z-index:1;
	width:min(100%,650px);
	max-height:min(86dvh,820px);
	overflow:auto;
	padding:32px;
	border-radius:24px;
	background:#fff;
	box-shadow:0 24px 70px rgba(8,44,53,.25);
	color:#17333d;
}
.ssms-timetable__faq-close{
	position:absolute;
	top:16px;
	right:16px;
	width:48px;
	height:48px;
	border:1px solid #d2e1e5;
	border-radius:50%;
	background:#eef5f7;
	color:#4d6c76;
	font-size:24px;
	cursor:pointer;
}
.ssms-timetable__faq-eyebrow{
	display:block;
	margin:5px 60px 8px 0;
	color:#5f808d;
	font-size:11px;
	font-weight:900;
	letter-spacing:.17em;
}
.ssms-timetable__faq-card h3{
	margin:0 60px 6px 0;
	font-size:28px;
}
.ssms-timetable__faq-intro{
	margin:0 0 18px;
	color:#71878f;
}
.ssms-timetable__faq-list{
	display:grid;
	gap:9px;
}
.ssms-timetable__faq-item{
	border:1px solid #d6e4e8;
	border-radius:13px;
	background:#f9fbfc;
	overflow:hidden;
}
.ssms-timetable__faq-item summary{
	position:relative;
	padding:15px 44px 15px 16px;
	color:#29444e;
	font-weight:850;
	cursor:pointer;
	list-style:none;
}
.ssms-timetable__faq-item summary::-webkit-details-marker{display:none}
.ssms-timetable__faq-item summary::after{
	content:"+";
	position:absolute;
	right:16px;
	top:50%;
	transform:translateY(-50%);
	color:#5f808d;
	font-size:22px;
	font-weight:500;
}
.ssms-timetable__faq-item[open] summary::after{content:"−"}
.ssms-timetable__faq-item>div{
	padding:0 16px 15px;
	color:#607881;
	font-size:14px;
	line-height:1.65;
}
.ssms-timetable__faq-item p{margin:0}
.ssms-timetable__faq-return{
	margin-top:18px;
	min-height:46px;
	padding:0 17px;
	border:0;
	border-radius:11px;
	background:#5f808d;
	color:#fff;
	font-weight:850;
	cursor:pointer;
}

html.ssms-timetable-faq-open,
html.ssms-timetable-faq-open body{overflow:hidden!important}

@media(max-width:700px){
	.ssms-timetable__modal-card{
		padding-top:18px;
	}
	.ssms-timetable__modal-summary{
		padding-top:12px;
		padding-bottom:12px;
	}
	.ssms-timetable__modal-fees{
		margin:10px 0;
		padding:13px 14px;
	}
	.ssms-timetable__modal-monthly-fee{font-size:19px}
	.ssms-timetable__modal-fee-line{font-size:12px}
	.ssms-timetable__modal-amp-note{font-size:11px}
	.ssms-timetable__modal-actions{gap:8px}
	.ssms-timetable__modal-faq,
	.ssms-timetable__modal-discover,
	.ssms-timetable__modal-trial,
	.ssms-timetable__modal-book{flex:1 1 100%}
	.ssms-timetable__faq-modal:not([hidden]){padding:0}
	.ssms-timetable__faq-card{
		width:100%;
		min-height:100dvh;
		max-height:100dvh;
		border-radius:0;
		padding:28px 18px calc(28px + env(safe-area-inset-bottom));
	}
	.ssms-timetable__faq-card h3{font-size:25px}
}


/* ==========================================================================
   Timetable clarity + 7-day trial booking refinement — 12 Aug 2026
   ========================================================================== */
/* Desktop/iPad modal actions: equal, tidy controls rather than narrow wrapped buttons. */
@media (min-width:701px){
  .ssms-timetable__modal-actions{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(125px,1fr));
    align-items:stretch;
    gap:10px!important;
  }
  .ssms-timetable__modal-actions > button{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    height:auto!important;
    margin:0!important;
    padding:10px 12px!important;
    line-height:1.2!important;
    white-space:normal;
  }
  .ssms-timetable__modal-actions .ssms-timetable__modal-faq,
  .ssms-timetable__modal-actions .ssms-timetable__modal-discover{
    flex:none!important;
  }
}

/* Weekday availability: green/tick where the selected class type runs; warm orange otherwise. */
.ssms-timetable__day-check{display:none;margin-left:6px;font-size:13px;font-weight:900;line-height:1}
.ssms-timetable.has-selected-class-type .ssms-timetable__day-tab.is-available{
  background:#e8f5ef!important;
  color:#236d55!important;
  border-color:#b8ddcf!important;
  opacity:1!important;
}
.ssms-timetable.has-selected-class-type .ssms-timetable__day-tab.is-available .ssms-timetable__day-check{display:inline!important}
.ssms-timetable.has-selected-class-type .ssms-timetable__day-tab.is-available .ssms-timetable__day-x{display:none!important}
.ssms-timetable.has-selected-class-type .ssms-timetable__day-tab.is-active{
  background:#cfeadb!important;
  color:#175f49!important;
  box-shadow:inset 0 -4px 0 #2b7d63!important;
}
.ssms-timetable.has-selected-class-type .ssms-timetable__day-tab:not(.is-available){
  background:#fff3e8!important;
  color:#b06b37!important;
  border-color:#f0d4bc!important;
  opacity:.72!important;
}
.ssms-timetable.has-selected-class-type .ssms-timetable__day-tab:not(.is-available) .ssms-timetable__day-x{
  display:inline!important;
  color:#c47b43!important;
}

/* Trial booking now offers one next available date only. */
.ssms-timetable__trial-date-label{
  display:grid;
  gap:7px;
  margin:18px 0 16px;
  padding:15px 16px;
  border:1px solid #e1c578;
  border-radius:14px;
  background:#fffaf0;
}
.ssms-timetable__trial-date-label>span{
  color:#725b1a;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.ssms-timetable__trial-date-label>strong{
  color:#17333d;
  font-size:19px;
  line-height:1.25;
}
.ssms-timetable__trial-date-label>small{
  color:#846d31;
  font-size:12px;
  line-height:1.45;
}
.ssms-timetable__trial-date-label input[type="hidden"]{display:none!important}

/* Timetable card action layout — consolidated 12 Aug 2026. */
.ssms-timetable__trial-add:disabled {
	opacity: .62;
	cursor: not-allowed;
	filter: saturate(.75);
}

/* Desktop: Trial Available sits directly above Book Class. */
@media (min-width: 981px) {
	.ssms-timetable__action {
		align-items: center;
		justify-content: center;
		gap: 7px;
	}

	.ssms-timetable__trial-available {
		margin: 0;
		text-align: center;
	}
}

/* Mobile: keep the circular booking button on the card's true vertical centre,
   move the action axis slightly right, and place Trial Available beneath it. */
@media (max-width: 700px) {
	.ssms-timetable__row {
		padding-top: 15px;
		padding-bottom: 15px;
	}

	.ssms-timetable__action {
		position: relative;
		align-self: stretch;
		display: block;
		min-width: 0;
		transform: translateX(4px);
	}

	.ssms-timetable__book {
		position: absolute;
		top: 50%;
		left: 50%;
		right: auto;
		bottom: auto;
		margin: 0;
		transform: translate(-50%, -50%);
		z-index: 2;
	}

	.ssms-timetable__book:hover,
	.ssms-timetable__book:focus-visible {
		transform: translate(-50%, -50%);
	}

	.ssms-timetable__trial-available {
		position: absolute;
		/* With equal 15px top/bottom card padding and a 44px booking circle,
		   this centres the marker in the remaining space below the button. */
		top: calc(75% + 18.5px);
		left: 50%;
		right: auto;
		bottom: auto;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 1px;
		width: 58px;
		margin: 0;
		padding: 0;
		transform: translate(-50%, -50%);
		color: #9a7417;
		font-size: 8px;
		font-weight: 900;
		line-height: 1.05;
		letter-spacing: .045em;
		text-align: center;
		text-transform: uppercase;
		pointer-events: none;
		z-index: 1;
	}

	.ssms-timetable__trial-available span {
		display: block;
		margin: 0 0 2px;
		font-size: 13px;
		line-height: 1;
	}

	.ssms-timetable__details-availability {
		margin-top: 4px;
		font-size: 12px;
		line-height: 1.2;
	}

	.ssms-timetable__details-availability .dashicons {
		width: 14px;
		height: 14px;
		font-size: 14px;
		line-height: 14px;
	}

	.ssms-timetable__trial-date-label {
		margin: 14px 0;
		padding: 13px 14px;
	}

	.ssms-timetable__trial-date-label > strong {
		font-size: 17px;
	}
}

/* Narrow mobile uses a 42px booking circle, so retain the same equal-spacing geometry. */
@media (max-width: 420px) {
	.ssms-timetable__trial-available {
		top: calc(75% + 18px);
	}
}

/* Successful class booking confirmation — payment return overlay. */
html.ssms-timetable-confirmation-open,
html.ssms-timetable-confirmation-open body {
	overflow: hidden !important;
}

/* Make the success state unmistakable even where backdrop-filter support is weak.
 * The confirmation itself is excluded so only the timetable behind it is blurred. */
html.ssms-timetable-confirmation-open .ssms-timetable__shell > :not(.ssms-timetable__payment-confirmation):not(script) {
	filter: blur(6px);
	pointer-events: none;
	user-select: none;
}

.ssms-timetable__payment-confirmation {
	position: fixed;
	inset: 0;
	z-index: 2147483005;
	display: grid;
	place-items: center;
	padding: 22px;
}

.ssms-timetable__payment-confirmation-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(13, 50, 59, .50);
	backdrop-filter: blur(9px);
	-webkit-backdrop-filter: blur(9px);
	cursor: pointer;
}

.ssms-timetable__payment-confirmation-card {
	position: relative;
	z-index: 1;
	width: min(100%, 590px);
	padding: 44px 42px 38px;
	border: 1px solid #cfe1dc;
	border-radius: 28px;
	background: #fff;
	box-shadow: 0 30px 90px rgba(8, 44, 53, .30);
	color: #17333d;
	outline: none;
	text-align: center;
}

.ssms-timetable__payment-confirmation-close {
	position: absolute;
	top: 17px;
	right: 17px;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid #bed9d0;
	border-radius: 50%;
	background: #f3f9f6;
	color: #28765e;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}

.ssms-timetable__payment-confirmation-close span {
	display: block;
	transform: translateY(-1px);
}

.ssms-timetable__payment-confirmation-icon {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	margin: 0 auto 20px;
	border-radius: 50%;
	background: #e7f5ef;
	color: #2d8b6d;
}

.ssms-timetable__payment-confirmation-icon .dashicons {
	width: 38px;
	height: 38px;
	font-size: 38px;
	line-height: 38px;
}

.ssms-timetable__payment-confirmation-eyebrow {
	display: block;
	margin: 0 0 9px;
	color: #2d8b6d;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.ssms-timetable__payment-confirmation-card h3 {
	margin: 0 0 12px;
	color: #17333d;
	font-size: 34px;
	line-height: 1.12;
}

.ssms-timetable__payment-confirmation-card p {
	max-width: 470px;
	margin: 0 auto;
	color: #607b85;
	font-size: 19px;
	line-height: 1.55;
}

.ssms-timetable__payment-confirmation-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 190px;
	min-height: 52px;
	margin-top: 28px;
	padding: 0 24px;
	border: 0;
	border-radius: 15px;
	background: #efadca;
	color: #17333d;
	font-size: 16px;
	font-weight: 850;
	cursor: pointer;
}

@media (max-width: 700px) {
	.ssms-timetable__payment-confirmation { padding: 14px; }
	.ssms-timetable__payment-confirmation-card {
		padding: 40px 24px 28px;
		border-radius: 23px;
	}
	.ssms-timetable__payment-confirmation-close {
		top: 13px;
		right: 13px;
		width: 44px;
		height: 44px;
	}
	.ssms-timetable__payment-confirmation-icon {
		width: 64px;
		height: 64px;
		margin-bottom: 17px;
	}
	.ssms-timetable__payment-confirmation-card h3 { font-size: 30px; }
	.ssms-timetable__payment-confirmation-card p { font-size: 17px; }
	.ssms-timetable__payment-confirmation-action { width: 100%; }
}


/* ======================================================================
 * Members access + single-line Timetable header — 16 Aug 2026
 * Keeps the existing basket dimensions and adds a compact Members Centre
 * access control without increasing the mobile header height.
 * ====================================================================== */
.ssms-timetable__header-actions{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:10px;
	min-width:0;
	justify-self:end;
}
.ssms-timetable__header-actions .ssms-member-access-trigger{
	flex:0 0 54px;
}

@media (max-width:700px){
	.ssms-timetable__header{
		display:grid!important;
		grid-template-columns:auto minmax(0,1fr) auto!important;
		grid-template-areas:none!important;
		align-items:center!important;
		column-gap:8px!important;
		row-gap:0!important;
		min-height:70px!important;
		padding:max(10px,env(safe-area-inset-top)) 10px 10px!important;
	}
	.ssms-timetable__back{
		grid-area:auto!important;
		justify-self:start!important;
		min-height:34px!important;
		padding:5px 8px!important;
		gap:4px!important;
		font-size:10.5px!important;
		line-height:1!important;
	}
	.ssms-timetable__back .dashicons{
		width:14px!important;
		height:14px!important;
		font-size:14px!important;
		line-height:14px!important;
	}
	.ssms-timetable__header-copy{
		grid-area:auto!important;
		min-width:0!important;
		align-self:center!important;
	}
	.ssms-timetable__header h2{
		margin:0!important;
		font-size:24px!important;
		line-height:1!important;
		white-space:nowrap!important;
	}
	.ssms-timetable__header-actions{
		grid-area:auto!important;
		gap:6px!important;
		min-width:0!important;
	}
	.ssms-timetable__basket-placeholder{
		grid-area:auto!important;
		min-height:46px!important;
		padding:7px 9px!important;
		gap:5px!important;
		border-radius:14px!important;
	}
	.ssms-timetable__header-actions .ssms-member-access-trigger{
		flex:0 0 46px!important;
	}
}

@media (max-width:390px){
	.ssms-timetable__header{
		column-gap:5px!important;
		padding-left:7px!important;
		padding-right:7px!important;
	}
	.ssms-timetable__back{
		padding-left:5px!important;
		padding-right:5px!important;
		font-size:9.5px!important;
	}
	.ssms-timetable__header h2{font-size:21px!important}
	.ssms-timetable__header-actions{gap:4px!important}
}

/* ======================================================================
 * Members access final header-fit pass — 17 Aug 2026
 * Keeps Savvy Studios, Timetable, basket and member access on one line.
 * ====================================================================== */
@media (max-width:700px){
	.ssms-timetable__header{
		grid-template-columns:auto minmax(0,1fr) auto!important;
		align-items:center!important;
		column-gap:7px!important;
		row-gap:0!important;
		min-height:70px!important;
	}
	.ssms-timetable__header-copy{min-width:0!important}
	.ssms-timetable__header h2{font-size:23px!important;white-space:nowrap!important}
	.ssms-timetable__header-actions{gap:6px!important;white-space:nowrap!important}
}
@media (max-width:390px){
	.ssms-timetable__header{column-gap:4px!important;padding-left:6px!important;padding-right:6px!important}
	.ssms-timetable__back{font-size:9.25px!important;padding-left:4px!important;padding-right:4px!important}
	.ssms-timetable__header h2{font-size:19px!important}
	.ssms-timetable__header-actions{gap:4px!important}
	.ssms-timetable__basket-placeholder{padding-left:6px!important;padding-right:6px!important}
}

/* ======================================================================
 * Class Waiting List Centre — public Timetable journey
 * Full classes remain useful: + WAITING opens a compact first-party card.
 * A 48-hour offer is shown as a reserved-place banner and uses the normal
 * Class Booking journey only when the customer is ready to pay.
 * ====================================================================== */
.ssms-timetable__book.is-waiting{
	border-color:#c69549;
	background:#fffaf1;
	color:#8a611f;
}
.ssms-timetable__book.is-waiting:hover,
.ssms-timetable__book.is-waiting:focus-visible{
	border-color:#b88232;
	background:#c69549;
	color:#fff;
}
.ssms-timetable__book.is-waiting.is-in-basket{
	background:#fffaf1;
	color:#8a611f;
}

html.ssms-timetable-waiting-open,
html.ssms-timetable-waiting-open body{
	overflow:hidden!important;
}
.ssms-timetable__waiting-modal[hidden]{display:none!important}
.ssms-timetable__waiting-modal{
	position:fixed;
	inset:0;
	z-index:100070;
	display:grid;
	place-items:center;
	padding:20px;
}
.ssms-timetable__waiting-backdrop{
	position:absolute;
	inset:0;
	background:rgba(13,49,59,.48);
	backdrop-filter:blur(5px);
	-webkit-backdrop-filter:blur(5px);
}
.ssms-timetable__waiting-card{
	position:relative;
	z-index:1;
	width:min(560px,100%);
	max-height:min(86dvh,760px);
	overflow:auto;
	padding:30px;
	border:1px solid #d5e2e6;
	border-radius:24px;
	background:#fff;
	box-shadow:0 24px 70px rgba(20,55,66,.24);
	color:#20363e;
}
.ssms-timetable__waiting-close{
	position:absolute;
	top:16px;
	right:16px;
	display:grid;
	place-items:center;
	width:40px;
	height:40px;
	padding:0;
	border:1px solid #d2e0e4;
	border-radius:50%;
	background:#fff;
	color:#5f808d;
	font-size:25px;
	line-height:1;
	cursor:pointer;
}
.ssms-timetable__waiting-eyebrow{
	display:block;
	margin:0 52px 6px 0;
	color:#5f808d;
	font-size:10px;
	font-weight:900;
	letter-spacing:.15em;
}
.ssms-timetable__waiting-card h3{
	margin:0 52px 8px 0;
	font-size:28px;
	line-height:1.1;
}
.ssms-timetable__waiting-class{
	display:grid;
	gap:3px;
	margin:20px 0 12px;
	padding:16px 18px;
	border:1px solid #d8e5e8;
	border-radius:16px;
	background:#f3f7f8;
}
.ssms-timetable__waiting-class strong{font-size:16px}
.ssms-timetable__waiting-class span{color:#677e87;font-size:13px}
.ssms-timetable__waiting-intro,
.ssms-timetable__waiting-note{
	margin:0 0 18px;
	color:#647b84;
	font-size:13px;
	line-height:1.55;
}
.ssms-timetable__waiting-note{
	margin:14px 0 0;
	font-size:11px;
}
.ssms-timetable__waiting-member{margin-bottom:14px}
.ssms-timetable__waiting-member[hidden],
.ssms-timetable__waiting-fields[hidden]{display:none!important}
.ssms-timetable__waiting-fields{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:12px;
	margin-bottom:12px;
}
.ssms-timetable__waiting-fields .full{grid-column:1/-1}
.ssms-timetable__waiting-card label{
	display:grid;
	gap:6px;
	color:#516a73;
	font-size:11px;
	font-weight:850;
	letter-spacing:.02em;
}
.ssms-timetable__waiting-card input,
.ssms-timetable__waiting-card select{
	width:100%;
	min-height:46px;
	padding:9px 12px;
	border:1px solid #c8d9de;
	border-radius:11px;
	background:#fff;
	color:#20363e;
	font:inherit;
	font-size:14px;
	outline:none;
}
.ssms-timetable__waiting-card input:focus,
.ssms-timetable__waiting-card select:focus{
	border-color:#5f808d;
	box-shadow:0 0 0 3px rgba(95,128,141,.13);
}
.ssms-timetable__waiting-message{
	min-height:0;
	margin:6px 0 10px;
	padding:0;
	color:#647b84;
	font-size:12px;
	font-weight:700;
}
.ssms-timetable__waiting-message.is-success,
.ssms-timetable__waiting-message.is-error{
	padding:10px 12px;
	border-radius:10px;
}
.ssms-timetable__waiting-message.is-success{background:#e9f5ef;color:#2e735a}
.ssms-timetable__waiting-message.is-error{background:#faecea;color:#914d47}
.ssms-timetable__waiting-card.is-confirmed .ssms-timetable__waiting-intro,
.ssms-timetable__waiting-card.is-confirmed .ssms-timetable__waiting-member,
.ssms-timetable__waiting-card.is-confirmed .ssms-timetable__waiting-fields,
.ssms-timetable__waiting-card.is-confirmed .ssms-timetable__waiting-submit,
.ssms-timetable__waiting-card.is-confirmed .ssms-timetable__waiting-note{display:none!important}
.ssms-timetable__waiting-card.is-confirmed .ssms-timetable__waiting-message{
	display:block!important;
	margin:18px 0 0;
	padding:18px 20px;
	border:1px solid #cfe6da;
	border-radius:14px;
	background:#e9f5ef;
	color:#2e735a;
	font-size:14px;
	font-weight:750;
	line-height:1.5;
}
.ssms-timetable__waiting-submit{
	width:100%;
	min-height:50px;
	padding:11px 18px;
	border:1px solid #5f808d;
	border-radius:13px;
	background:#5f808d;
	color:#fff;
	font-weight:850;
	cursor:pointer;
}
.ssms-timetable__waiting-submit:disabled{opacity:.66;cursor:default}

.ssms-timetable__waiting-offer{
	display:grid;
	grid-template-columns:auto minmax(0,1fr) auto;
	align-items:center;
	gap:14px;
	width:min(1120px,calc(100% - 32px));
	margin:12px auto 0;
	padding:14px 16px;
	border:1px solid #c9ddd6;
	border-radius:15px;
	background:linear-gradient(135deg,#f0f8f4 0%,#f7fafb 100%);
	box-shadow:0 8px 22px rgba(43,91,73,.06);
}
.ssms-timetable__waiting-offer-icon{
	display:grid;
	place-items:center;
	width:42px;
	height:42px;
	border-radius:13px;
	background:#dff0e8;
	color:#2f795e;
}
.ssms-timetable__waiting-offer-icon .dashicons{width:22px;height:22px;font-size:22px}
.ssms-timetable__waiting-offer span{
	display:block;
	color:#5f808d;
	font-size:9px;
	font-weight:900;
	letter-spacing:.12em;
}
.ssms-timetable__waiting-offer h3{margin:2px 0 2px;font-size:17px;line-height:1.2}
.ssms-timetable__waiting-offer p{margin:0;color:#627982;font-size:12px}
.ssms-timetable__waiting-offer button{
	min-height:42px;
	padding:0 15px;
	border:1px solid #3f7461;
	border-radius:11px;
	background:#3f7461;
	color:#fff;
	font-size:12px;
	font-weight:850;
	white-space:nowrap;
	cursor:pointer;
}

@media(max-width:700px){
	.ssms-timetable__book.is-waiting{
		width:68px!important;
		min-width:68px!important;
		height:38px!important;
		border-radius:11px!important;
		font-size:9px!important;
		font-weight:900!important;
		letter-spacing:.025em!important;
	}
	.ssms-timetable__book.is-waiting .ssms-timetable__book-label{display:block!important}
	.ssms-timetable__book.is-waiting .ssms-timetable__book-plus{display:none!important}
	.ssms-timetable__waiting-modal{padding:10px}
	.ssms-timetable__waiting-card{
		max-height:calc(100dvh - 20px);
		padding:24px 17px 18px;
		border-radius:20px;
	}
	.ssms-timetable__waiting-card h3{font-size:24px}
	.ssms-timetable__waiting-fields{grid-template-columns:1fr}
	.ssms-timetable__waiting-fields .full{grid-column:auto}
	.ssms-timetable__waiting-offer{
		grid-template-columns:auto minmax(0,1fr);
		gap:10px;
		width:calc(100% - 20px);
		padding:12px;
	}
	.ssms-timetable__waiting-offer h3{font-size:15px}
	.ssms-timetable__waiting-offer p{font-size:11px}
	.ssms-timetable__waiting-offer button{grid-column:1/-1;width:100%}
}

/* ========================================================================
   Mobile timetable action/footer refinement — 1 Sep 2026
   Clear BOOK / WAITING actions, a reserved action column, and an iOS-safe
   visual-viewport height so the timetable reaches the live Safari viewport.
   ======================================================================== */
@media (max-width: 700px) {
	/* iOS Safari can restore a layout viewport that is shorter than the visible
	   browser area. JS keeps this variable synced to the visual viewport. */
	.ssms-timetable {
		top: 0 !important;
		right: 0 !important;
		bottom: auto !important;
		left: 0 !important;
		height: var(--ssms-tt-visual-height, 100dvh) !important;
		min-height: var(--ssms-tt-visual-height, 100dvh) !important;
		max-height: var(--ssms-tt-visual-height, 100dvh) !important;
	}

	/* Reserve a real action column instead of squeezing a variable-width action
	   into the old circular-plus column. */
	.ssms-timetable__row,
	.ssms-timetable__row:not(.ssms-timetable__row--legacy) {
		grid-template-columns: 62px minmax(0, 1fr) 92px;
		gap: 7px 10px;
		padding-right: 12px;
	}

	.ssms-timetable__action {
		position: relative;
		align-self: stretch;
		min-width: 88px;
		width: 100%;
		transform: none;
	}

	.ssms-timetable__book,
	.ssms-timetable__book.is-waiting {
		position: absolute;
		top: 50%;
		left: 50%;
		right: auto;
		bottom: auto;
		width: 84px !important;
		min-width: 84px !important;
		height: 44px !important;
		margin: 0 !important;
		padding: 0 12px !important;
		border-width: 1.5px !important;
		border-radius: 22px !important;
		font-size: 12px !important;
		font-weight: 850 !important;
		line-height: 1 !important;
		letter-spacing: .045em !important;
		text-transform: uppercase;
		transform: translate(-50%, -50%) !important;
		white-space: nowrap;
	}

	.ssms-timetable__book:hover,
	.ssms-timetable__book:focus-visible,
	.ssms-timetable__book.is-waiting:hover,
	.ssms-timetable__book.is-waiting:focus-visible {
		transform: translate(-50%, -50%) !important;
	}

	/* The visual control is deliberately BOOK / WAITING on mobile. The button's
	   aria-label still carries the fuller accessible action. */
	.ssms-timetable__book-label,
	.ssms-timetable__book.is-waiting .ssms-timetable__book-label {
		display: block !important;
		font-size: 0 !important;
		line-height: 1 !important;
	}
	.ssms-timetable__book:not(.is-waiting) .ssms-timetable__book-label::after {
		content: "BOOK";
		font-size: 12px;
	}
	.ssms-timetable__book.is-waiting .ssms-timetable__book-label::after {
		content: "WAITING";
		font-size: 11px;
	}
	.ssms-timetable__book-plus,
	.ssms-timetable__book.is-waiting .ssms-timetable__book-plus {
		display: none !important;
	}

	/* Pressed / selected state remains the existing filled class colour. */
	.ssms-timetable__book.is-in-basket {
		color: #fff;
	}

	/* When a trial marker is present, lift BOOK slightly and place the marker
	   beneath it without expanding the action column or pushing it off-screen. */
	.ssms-timetable__trial-available + .ssms-timetable__book {
		top: 40%;
	}
	.ssms-timetable__trial-available {
		top: 73%;
		left: 50%;
		width: 84px;
		transform: translate(-50%, -50%);
	}

	/* Keep the final result line close to the last card. The viewport-height fix
	   removes the large iOS blank strip; these smaller paddings avoid adding a
	   second artificial gap inside the results scroller. */
	.ssms-timetable__table {
		padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
	}
	.ssms-timetable__results-count {
		padding: 4px 14px max(8px, env(safe-area-inset-bottom)) !important;
	}
}

@media (max-width: 420px) {
	.ssms-timetable__row,
	.ssms-timetable__row:not(.ssms-timetable__row--legacy) {
		grid-template-columns: 56px minmax(0, 1fr) 88px;
		gap: 7px 8px;
		padding-left: 14px;
		padding-right: 9px;
	}
	.ssms-timetable__action {
		min-width: 84px;
	}
	.ssms-timetable__book,
	.ssms-timetable__book.is-waiting {
		width: 80px !important;
		min-width: 80px !important;
		height: 42px !important;
	}
	.ssms-timetable__trial-available {
		width: 80px;
	}
}

@media (max-width: 360px) {
	.ssms-timetable__row,
	.ssms-timetable__row:not(.ssms-timetable__row--legacy) {
		grid-template-columns: 52px minmax(0, 1fr) 80px;
		gap: 6px 7px;
		padding-left: 12px;
		padding-right: 7px;
	}
	.ssms-timetable__class-icon {
		width: 50px;
		height: 50px;
	}
	.ssms-timetable__action {
		min-width: 76px;
	}
	.ssms-timetable__book,
	.ssms-timetable__book.is-waiting {
		width: 76px !important;
		min-width: 76px !important;
		padding: 0 8px !important;
	}
	.ssms-timetable__trial-available {
		width: 76px;
	}
}

/* ======================================================================
 * Trial reserved-place conversion — Stage 4
 * Keeps the normal waiting-list journey simple while allowing the exact
 * trial student to reclaim a still-active held class place.
 * ====================================================================== */
.ssms-timetable__trial-code{
	margin-top:14px;
	padding-top:14px;
	border-top:1px solid #e0e9ec;
}
.ssms-timetable__trial-code-toggle{
	width:100%;
	padding:0;
	border:0;
	background:transparent;
	color:#526f7a;
	font-size:12px;
	font-weight:800;
	text-align:left;
	text-decoration:underline;
	text-underline-offset:3px;
	cursor:pointer;
}
.ssms-timetable__trial-code-entry{
	display:grid;
	gap:10px;
	margin-top:12px;
	padding:14px;
	border:1px solid #d3e1e5;
	border-radius:13px;
	background:#f6f9fa;
}
.ssms-timetable__trial-code-entry[hidden]{display:none!important}
.ssms-timetable__trial-code-entry p{
	min-height:0;
	margin:0;
	color:#647b84;
	font-size:11px;
	font-weight:700;
	line-height:1.45;
}
.ssms-timetable__trial-code-entry p.is-error{
	padding:9px 10px;
	border-radius:9px;
	background:#faecea;
	color:#914d47;
}
.ssms-timetable__trial-code-entry > button{
	min-height:44px;
	padding:9px 14px;
	border:1px solid #3f7461;
	border-radius:11px;
	background:#3f7461;
	color:#fff;
	font-size:12px;
	font-weight:850;
	cursor:pointer;
}
.ssms-timetable__trial-code-entry > button:disabled{opacity:.66;cursor:default}
.ssms-timetable-booking__assignment-summary.is-locked{
	border-color:#c9ddd6;
	background:#f3f8f5;
}
.ssms-timetable-booking__assignment-summary.is-locked .ssms-timetable-booking__assigned-actions small{
	display:block;
	color:#58746a;
	font-size:10px;
	font-weight:700;
}

@media(max-width:700px){
	.ssms-timetable__trial-code-entry{padding:12px}
}
