/* Bookings tab — progressive home / stage flow */

.lh-student-portal__page.lh-bookings-v2 {
	padding: 1.35rem 1.15rem 1.75rem;
}

.lh-bookings__flow.is-transitioning {
	opacity: 0.98;
}

.lh-bookings__views {
	align-items: start;
	display: grid;
	grid-template: auto / 1fr;
	overflow: visible;
	position: relative;
}

.lh-bookings__home,
.lh-bookings__stage {
	grid-area: 1 / 1;
	transition: opacity 0.32s ease, transform 0.32s ease, visibility 0.32s;
	width: 100%;
}

.lh-bookings__stage {
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	transform: translateX(18px);
	visibility: hidden;
}

.lh-bookings__home {
	opacity: 1;
	pointer-events: auto;
	position: relative;
	transform: translateX(0);
	visibility: visible;
}

.lh-bookings__flow[data-active-task="book"] .lh-bookings__home,
.lh-bookings__flow[data-active-task="regular"] .lh-bookings__home,
.lh-bookings__flow[data-active-task="usual"] .lh-bookings__home,
.lh-bookings__flow[data-active-task="holiday"] .lh-bookings__home {
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	transform: translateX(-14px);
	visibility: hidden;
}

.lh-bookings__flow[data-active-task="book"] .lh-bookings__stage--regular,
.lh-bookings__flow[data-active-task="book"] .lh-bookings__stage--usual,
.lh-bookings__flow[data-active-task="book"] .lh-bookings__stage--holiday,
.lh-bookings__flow[data-active-task="regular"] .lh-bookings__stage--book,
.lh-bookings__flow[data-active-task="regular"] .lh-bookings__stage--usual,
.lh-bookings__flow[data-active-task="regular"] .lh-bookings__stage--holiday,
.lh-bookings__flow[data-active-task="usual"] .lh-bookings__stage--book,
.lh-bookings__flow[data-active-task="usual"] .lh-bookings__stage--regular,
.lh-bookings__flow[data-active-task="usual"] .lh-bookings__stage--holiday,
.lh-bookings__flow[data-active-task="holiday"] .lh-bookings__stage--book,
.lh-bookings__flow[data-active-task="holiday"] .lh-bookings__stage--regular,
.lh-bookings__flow[data-active-task="holiday"] .lh-bookings__stage--usual {
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	transform: translateX(18px);
	visibility: hidden;
}

.lh-bookings__flow[data-active-task="home"] .lh-bookings__home {
	opacity: 1;
	pointer-events: auto;
	position: relative;
	transform: translateX(0);
	visibility: visible;
}

.lh-bookings__flow[data-active-task="book"] .lh-bookings__stage--book,
.lh-bookings__flow[data-active-task="regular"] .lh-bookings__stage--regular,
.lh-bookings__flow[data-active-task="usual"] .lh-bookings__stage--usual,
.lh-bookings__flow[data-active-task="holiday"] .lh-bookings__stage--holiday {
	isolation: isolate;
	opacity: 1;
	pointer-events: auto;
	position: relative;
	transform: translateX(0);
	visibility: visible;
	z-index: 2;
}

.lh-bookings__flow[data-active-task="book"] .lh-bookings__home,
.lh-bookings__flow[data-active-task="regular"] .lh-bookings__home,
.lh-bookings__flow[data-active-task="usual"] .lh-bookings__home,
.lh-bookings__flow[data-active-task="holiday"] .lh-bookings__home {
	z-index: 0;
}

.lh-bookings__next-hub {
	background: #faf8f5;
	border: 1px solid #ece6de;
	border-radius: 14px;
	margin: 0 0 0.5rem;
	max-width: 32rem;
	padding: 0.85rem 0.9rem 0.75rem;
}

.lh-bookings__next {
	background: #fff;
	border: 1px solid #e8e2da;
	border-radius: 12px;
	padding: 0.7rem 0.85rem;
}

.lh-bookings__next-copy {
	min-width: 0;
}

.lh-bookings__next-edit-wrap {
	display: flex;
	justify-content: flex-start;
	margin-top: 0.75rem;
}

.lh-bookings__next-edit {
	flex: 0 0 auto;
}

.lh-bookings__next-empty {
	color: #6b625c;
	font-size: 0.88rem;
	margin: 0;
}

.lh-bookings__next-label {
	color: #6b625c;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin: 0 0 0.2rem;
	text-transform: uppercase;
}

.lh-bookings__next-main {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.65rem;
}

.lh-bookings__next-date {
	color: #222;
	font-size: 1rem;
	font-weight: 700;
}

.lh-bookings__next-time {
	color: #6b625c;
	font-size: 0.88rem;
	font-weight: 600;
}

.lh-bookings__next-summary {
	color: #6b625c;
	flex: 1 1 100%;
	font-size: 0.82rem;
}

.lh-bookings__next-edit-panel {
	border-top: 1px solid #f0ebe4;
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	text-align: left;
}

.lh-bookings__next-edit-trigger {
	align-items: center;
	background: #fff;
	border: 1px solid #7a3e48;
	border-radius: 999px;
	color: #7a3e48;
	cursor: pointer;
	display: inline-flex;
	font-size: 0.82rem;
	font-weight: 700;
	gap: 0.35rem;
	list-style: none;
	padding: 0.38rem 0.75rem;
	white-space: nowrap;
}

.lh-bookings__next-edit-trigger::-webkit-details-marker {
	display: none;
}

.lh-bookings__next-edit-trigger:hover,
.lh-bookings__next-edit-trigger:focus-visible {
	background: #f3ecee;
	outline: none;
}

.lh-bookings__next-edit-icon {
	display: inline-flex;
	line-height: 0;
}

.lh-bookings__next-edit-panel .lh-student-portal__lesson-note {
	font-size: 0.82rem;
	margin: 0 0 0.55rem;
}

.lh-bookings__next-edit-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem 0.75rem;
	justify-content: flex-start;
}

.lh-bookings__next-edit-cant {
	margin: 0;
}

.lh-bookings__next-edit-link,
button.lh-bookings__next-edit-link {
	background: #7a3e48;
	border: 0;
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-size: 0.84rem;
	font-weight: 600;
	padding: 0.42rem 0.9rem;
	text-decoration: none;
}

.lh-bookings__next-edit-link:hover,
.lh-bookings__next-edit-link:focus-visible {
	background: #62323a;
	color: #fff;
	outline: none;
}

.lh-bookings__next-edit-cancel {
	margin: 0;
}

.lh-bookings__next-edit-cancel-btn {
	background: transparent;
	border: 1px solid #b8aea4;
	border-radius: 999px;
	color: #6b625c;
	cursor: pointer;
	font: inherit;
	font-size: 0.82rem;
	font-weight: 600;
	padding: 0.38rem 0.75rem;
}

.lh-bookings__next-edit-cancel-btn:hover,
.lh-bookings__next-edit-cancel-btn:focus-visible {
	background: #faf8f5;
	border-color: #7a3e48;
	color: #7a3e48;
	outline: none;
}

.lh-bookings__upcoming-more {
	margin-top: 0.65rem;
}

.lh-bookings__upcoming-more > summary {
	align-items: center;
	color: #7a3e48;
	cursor: pointer;
	display: inline-flex;
	font-size: 0.86rem;
	font-weight: 600;
	gap: 0.35rem;
	list-style: none;
	padding: 0.15rem 0;
}

.lh-bookings__upcoming-more > summary::-webkit-details-marker {
	display: none;
}

.lh-bookings__toggle-label--open {
	display: none;
}

.lh-bookings__upcoming-more[open] .lh-bookings__toggle-label--closed {
	display: none;
}

.lh-bookings__upcoming-more[open] .lh-bookings__toggle-label--open {
	display: inline;
}

.lh-bookings__toggle-chevron {
	display: inline-flex;
	line-height: 0;
	transition: transform 0.2s ease;
}

.lh-bookings__upcoming-more[open] .lh-bookings__toggle-chevron {
	transform: rotate(180deg);
}

.lh-bookings__upcoming-more[open] > summary {
	margin-bottom: 0.55rem;
}

.lh-bookings__upcoming-more .lh-student-portal__next-cards {
	display: grid;
	gap: 0.55rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.lh-bookings__upcoming-more .lh-student-portal__next-card {
	align-items: center;
	background: #fff;
	border: 1px solid #e8e2da;
	border-radius: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.75rem;
	justify-content: space-between;
	padding: 0.65rem 0.75rem;
}

.lh-bookings__upcoming-more .lh-student-portal__next-card-when {
	min-width: 0;
}

.lh-bookings__upcoming-more .lh-lesson-change {
	flex: 0 0 auto;
	width: auto;
}

.lh-bookings__upcoming-more .lh-lesson-change__trigger {
	display: inline-flex;
	font-size: 0.82rem;
	width: auto;
}

.lh-bookings__upcoming-more .lh-lesson-change__panel {
	flex: 1 1 100%;
	margin-top: 0.35rem;
}

.lh-bookings__home > .lh-lessons-rearrange-banner {
	margin-left: 0;
	margin-right: 0;
	max-width: 32rem;
}

.lh-bookings__actions-section {
	margin: 0;
	max-width: 32rem;
}

.lh-bookings__section-divider {
	background: linear-gradient(to right, transparent, #d4ccc2 20%, #d4ccc2 80%, transparent);
	height: 1px;
	margin: 1.65rem 0 1.35rem;
}

.lh-bookings__actions-heading {
	color: #222;
	font-size: 0.92rem;
	font-weight: 700;
	margin: 0 0 0.75rem;
}

.lh-bookings__choices {
	display: grid;
	gap: 0.75rem;
	margin: 0;
}

.lh-bookings__choice {
	align-items: center;
	background: #fff;
	border: 1px solid #e8e2da;
	border-radius: 14px;
	box-shadow: 0 8px 24px rgb(50 35 25 / 0.07);
	cursor: pointer;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: auto 1fr auto;
	padding: 0.95rem 1rem;
	text-align: left;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
	width: 100%;
}

.lh-bookings__choice:hover,
.lh-bookings__choice:focus-visible {
	border-color: #7a3e48;
	box-shadow: 0 12px 32px rgb(122 62 72 / 0.14);
	outline: none;
	transform: translateY(-1px);
}

.lh-bookings__choice-icon {
	align-items: center;
	background: #f3ecee;
	border-radius: 12px;
	color: #7a3e48;
	display: inline-flex;
	height: 2.65rem;
	justify-content: center;
	width: 2.65rem;
}

.lh-bookings__choice--book .lh-bookings__choice-icon {
	background: #eef5f0;
	color: #4a7a52;
}

.lh-bookings__choice--regular .lh-bookings__choice-icon {
	background: #f3ecee;
	color: #7a3e48;
}

.lh-bookings__choice-copy {
	display: grid;
	gap: 0.12rem;
	min-width: 0;
}

.lh-bookings__choice-label {
	color: #222;
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1.25;
}

.lh-bookings__choice-hint {
	color: #6b625c;
	font-size: 0.82rem;
	line-height: 1.35;
}

.lh-bookings__choice-chevron {
	color: #b8aea4;
	display: inline-flex;
	line-height: 0;
}

.lh-bookings__choice:hover .lh-bookings__choice-chevron,
.lh-bookings__choice:focus-visible .lh-bookings__choice-chevron {
	color: #7a3e48;
}

.lh-bookings__choice-wrap {
	position: relative;
}

.lh-bookings__choice-wrap--disabled .lh-bookings__choice {
	padding-right: 2.75rem;
}

.lh-bookings__choice.is-disabled,
.lh-bookings__choice:disabled {
	box-shadow: none;
	cursor: not-allowed;
	opacity: 0.55;
	transform: none;
}

.lh-bookings__choice.is-disabled:hover,
.lh-bookings__choice:disabled:hover,
.lh-bookings__choice.is-disabled:focus-visible,
.lh-bookings__choice:disabled:focus-visible {
	border-color: #e8e2da;
	box-shadow: none;
	transform: none;
}

.lh-bookings__choice-wrap--disabled .lh-help-tip {
	position: absolute;
	right: 0.85rem;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
}

.lh-holiday-days__lede {
	color: #6b625c;
	font-size: 0.92rem;
	line-height: 1.45;
	margin: 0 0 1rem;
}

.lh-holiday-days__bulk {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	margin: 0 0 0.85rem;
}

.lh-holiday-days__link {
	background: none;
	border: 0;
	color: #7a3e48;
	cursor: pointer;
	font: inherit;
	font-size: 0.86rem;
	font-weight: 600;
	padding: 0;
	text-decoration: underline;
}

.lh-holiday-days__week {
	border: 1px solid #e8e2da;
	border-radius: 12px;
	margin: 0 0 0.75rem;
	padding: 0.75rem 0.9rem;
}

.lh-holiday-days__week legend {
	font-size: 0.88rem;
	font-weight: 700;
	padding: 0 0.25rem;
}

.lh-holiday-days__list {
	display: grid;
	gap: 0.35rem;
	grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
	list-style: none;
	margin: 0.35rem 0 0;
	padding: 0;
}

.lh-holiday-days__list label {
	align-items: center;
	background: #faf8f5;
	border: 1px solid #e8e2da;
	border-radius: 8px;
	cursor: pointer;
	display: flex;
	gap: 0.45rem;
	padding: 0.45rem 0.55rem;
}

.lh-holiday-days__list label:has(input:checked) {
	border-color: #7a3e48;
	box-shadow: inset 0 0 0 1px #7a3e48;
}

.lh-holiday-days__actions {
	margin: 1rem 0 0;
}

.lh-bookings__stage-head {
	border-bottom: 1px solid #f0ebe4;
	margin: 0 0 1rem;
	padding: 0 0 0.85rem;
}

.lh-bookings__back {
	align-items: center;
	background: transparent;
	border: 0;
	color: #7a3e48;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	gap: 0.3rem;
	margin: 0 0 0.55rem;
	padding: 0.15rem 0;
}

.lh-bookings__back-icon svg {
	height: 18px;
	width: 18px;
}

.lh-bookings__back:hover,
.lh-bookings__back:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.lh-bookings__back-icon {
	display: inline-flex;
	line-height: 0;
}

.lh-bookings__stage-title {
	color: #222;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.25;
	margin: 0;
}

.lh-bookings__stage--book .lh-bookings__stage-head {
	margin-bottom: 0.65rem;
	padding-bottom: 0.65rem;
}

.lh-bookings__stage--book .lh-student-portal__book-region {
	margin-bottom: 0.35rem;
}

.lh-bookings__usual-availability {
	color: #6b625c;
	font-size: 0.88rem;
	line-height: 1.45;
	margin: 0.65rem 0 0;
	max-width: 32rem;
}

.lh-usual-availability {
	margin: 0.75rem 0 0;
	max-width: 32rem;
}

.lh-usual-availability__card {
	align-items: flex-start;
	background: #fff;
	border: 1px solid #e8e2da;
	border-radius: 12px;
	display: grid;
	gap: 0.75rem;
	padding: 0.85rem 0.95rem;
}

.lh-usual-availability__title {
	color: #222;
	font-size: 0.95rem;
	font-weight: 700;
	margin: 0 0 0.25rem;
}

.lh-usual-availability__lede {
	color: #6b625c;
	font-size: 0.86rem;
	line-height: 1.45;
	margin: 0;
}

.lh-usual-availability__open {
	align-self: flex-start;
	background: transparent;
	border: 1px solid #d4ccc2;
	border-radius: 999px;
	color: #7a3e48;
	cursor: pointer;
	font: inherit;
	font-size: 0.84rem;
	font-weight: 700;
	padding: 0.48rem 0.95rem;
}

.lh-usual-availability__open:hover,
.lh-usual-availability__open:focus-visible {
	background: #faf8f5;
	border-color: #7a3e48;
	outline: none;
}

.lh-bookings__stage--usual .lh-usual-availability__form {
	display: flex;
	flex-direction: column;
	margin-top: 0.35rem;
	max-width: none;
	width: 100%;
}

.lh-bookings__stage--usual .lh-usual-availability__form-lede {
	color: #6b625c;
	font-size: 0.88rem;
	line-height: 1.45;
	margin: 0 0 0.85rem;
}

.lh-bookings__stage--usual .lh-avail-calendar {
	flex: 0 0 auto;
	max-width: none;
}

.lh-bookings__stage--usual .lh-usual-availability__form-actions {
	clear: both;
	flex: 0 0 auto;
	margin: 1.25rem 0 0;
	padding-top: 0.25rem;
	position: static;
}

.lh-vacancy-alert {
	border-bottom: 1px solid #e8e2da;
	margin: 0 0 0.75rem;
	max-width: 32rem;
	padding-bottom: 0.75rem;
}

.lh-vacancy-alert__match {
	color: #2c6c42;
	font-size: 0.82rem;
	line-height: 1.4;
	margin: 0 0 0.45rem;
}

.lh-vacancy-alert__details {
	background: #faf8f5;
	border: 1px solid #e8e2da;
	border-radius: 1.125rem;
	interpolate-size: allow-keywords;
	margin: 0;
	overflow: hidden;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.lh-vacancy-alert__details:not([open]):hover {
	background: #f5f1ec;
	border-color: #d4ccc2;
}

.lh-vacancy-alert__details::details-content {
	block-size: 0;
	opacity: 0;
	overflow: hidden;
	transition:
		block-size 0.25s ease,
		opacity 0.25s ease,
		content-visibility 0.25s allow-discrete;
}

.lh-vacancy-alert__details[open]::details-content {
	block-size: auto;
	opacity: 1;
}

@starting-style {
	.lh-vacancy-alert__details[open]::details-content {
		block-size: 0;
		opacity: 0;
	}
}

.lh-vacancy-alert__trigger {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 0;
	color: #444;
	cursor: pointer;
	display: flex;
	font-size: 0.82rem;
	gap: 0.5rem;
	justify-content: space-between;
	line-height: 1.35;
	list-style: none;
	padding: 0.45rem 0.75rem;
	text-align: left;
	width: 100%;
}

.lh-vacancy-alert__trigger::-webkit-details-marker {
	display: none;
}

.lh-vacancy-alert__trigger::marker {
	content: "";
	font-size: 0;
}

.lh-vacancy-alert__trigger:focus-visible {
	outline: 2px solid #7a3e48;
	outline-offset: -2px;
}

.lh-vacancy-alert__trigger-main {
	align-items: baseline;
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	min-width: 0;
}

.lh-vacancy-alert__trigger-label {
	color: #444;
	font-weight: 600;
}

.lh-vacancy-alert__status {
	color: #2c6c42;
	font-size: 0.78rem;
	font-weight: 600;
}

.lh-vacancy-alert__chevron {
	color: #7a3e48;
	display: inline-flex;
	flex: 0 0 auto;
	line-height: 0;
	transition: transform 0.2s ease;
}

.lh-vacancy-alert__details[open] .lh-vacancy-alert__chevron {
	transform: rotate(180deg);
}

.lh-vacancy-alert__panel {
	border-top: 1px solid #eee7e0;
	display: grid;
	gap: 0.55rem;
	margin: 0;
	padding: 0.65rem 0.75rem 0.75rem;
	transition: border-color 0.25s ease;
}

.lh-vacancy-alert__note {
	color: #6b625c;
	font-size: 0.8rem;
	line-height: 1.4;
	margin: 0;
}

.lh-vacancy-alert__error {
	color: #8a2f2f;
	font-size: 0.8rem;
	line-height: 1.4;
	margin: 0;
}

.lh-vacancy-alert__form {
	display: grid;
	gap: 0.55rem;
	margin: 0;
}

.lh-vacancy-alert__modes {
	border: 0;
	display: grid;
	gap: 0.3rem;
	margin: 0;
	min-width: 0;
	padding: 0;
}

.lh-vacancy-alert__mode {
	align-items: flex-start;
	color: #444;
	cursor: pointer;
	display: flex;
	font-size: 0.84rem;
	gap: 0.45rem;
	line-height: 1.4;
}

.lh-vacancy-alert__mode input {
	margin: 0.2rem 0 0;
}

.lh-vacancy-alert__dates {
	display: none;
	gap: 0.45rem 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
}

.lh-vacancy-alert__form:has(input[data-lh-vacancy-mode][value="dated"]:checked) .lh-vacancy-alert__dates:not([hidden]) {
	display: grid;
}

.lh-vacancy-alert__dates[hidden] {
	display: none !important;
}

.lh-vacancy-alert__dates label {
	color: #444;
	display: grid;
	font-size: 0.8rem;
	gap: 0.25rem;
}

.lh-vacancy-alert__dates input {
	border: 1px solid #d4ccc2;
	border-radius: 8px;
	font: inherit;
	padding: 0.35rem 0.5rem;
}

.lh-vacancy-alert__footer {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 0.75rem;
	justify-content: flex-end;
	margin: 0.1rem 0 0;
}

.lh-vacancy-alert__off-form {
	margin: 0;
	margin-right: auto;
}

.lh-vacancy-alert__save.button {
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.2;
	padding: 0.38rem 0.85rem;
}

.lh-vacancy-alert__off {
	background: transparent;
	border: 0;
	color: #6b625c;
	cursor: pointer;
	font: inherit;
	font-size: 0.8rem;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.lh-vacancy-alert__off:hover,
.lh-vacancy-alert__off:focus-visible {
	color: #444;
	outline: none;
}

.lh-bookings__stage--book .lh-week-calendar__header--compact {
	align-items: center;
	display: flex;
	justify-content: center;
	margin-bottom: 0.35rem;
}

.lh-bookings__stage--book .lh-week-calendar__nav--arrows {
	align-items: center;
	display: grid;
	gap: 0;
	grid-template-columns: 1fr auto 1fr;
	justify-content: stretch;
	margin: 0;
	width: 100%;
}

.lh-week-calendar__nav--arrows .lh-week-calendar__nav-arrow {
	align-items: center;
	border: 1px solid #d4ccc2;
	border-radius: 999px;
	color: #444;
	display: inline-flex;
	font-size: 1.35rem;
	height: 2rem;
	justify-content: center;
	line-height: 1;
	text-decoration: none;
	width: 2rem;
}

.lh-week-calendar__nav--arrows .lh-week-calendar__nav-arrow:hover,
.lh-week-calendar__nav--arrows .lh-week-calendar__nav-arrow:focus-visible {
	background: #fff;
	border-color: #7a3e48;
	color: #7a3e48;
	outline: none;
}

.lh-week-calendar__nav--arrows .lh-week-calendar__nav-range {
	color: #222;
	cursor: default;
	font-size: 0.92rem;
	font-weight: 600;
	min-width: 9.5rem;
	pointer-events: none;
	text-align: center;
	text-decoration: none;
}

.lh-bookings__stage--book .lh-student-calendar {
	margin-top: 0.25rem;
}

.lh-bookings__stage--book .lh-student-calendar__views {
	margin: 0.25rem 0 0.45rem;
}

.lh-bookings__stage--book .lh-student-calendar__legend {
	display: none;
}

.lh-bookings__stage--book .lh-week-calendar {
	margin-top: 0.35rem;
}

.lh-bookings__stage--book .lh-week-calendar__header {
	margin-bottom: 0.45rem;
}

.lh-bookings__stage--book .lh-week-calendar__range {
	font-size: 0.84rem;
	margin-bottom: 0.15rem;
}

.lh-bookings__stage--book .lh-week-calendar__day-note {
	display: none !important;
}

.lh-bookings__stage--book .lh-week-calendar__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 0.85rem;
	justify-content: center;
	list-style: none;
	margin: 0.35rem 0 0.55rem;
	padding: 0;
}

.lh-bookings__stage--book .lh-week-calendar__legend li {
	align-items: center;
	color: #6b625c;
	display: flex;
	font-size: 0.76rem;
	gap: 0.35rem;
	line-height: 1.3;
}

.lh-bookings__stage--book .lh-week-calendar__legend-swatch {
	border: 1px solid #ddd6ce;
	border-radius: 3px;
	display: inline-block;
	flex-shrink: 0;
	height: 0.85rem;
	width: 0.85rem;
}

.lh-bookings__stage--book .lh-week-calendar__legend-swatch--off-hours {
	background-color: #ece8e2;
	background-image: repeating-linear-gradient(
		-45deg,
		transparent,
		transparent 11px,
		rgb(122 62 72 / 0.08) 11px,
		rgb(122 62 72 / 0.08) 12px
	);
}

.lh-bookings__stage--book .lh-week-calendar__legend-help {
	align-items: center;
	background: transparent;
	border: 1px solid #c8c0b8;
	border-radius: 50%;
	color: #6b625c;
	cursor: help;
	display: inline-flex;
	flex-shrink: 0;
	font-size: 0.62rem;
	font-weight: 700;
	height: 0.95rem;
	justify-content: center;
	line-height: 1;
	margin: 0;
	padding: 0;
	position: relative;
	width: 0.95rem;
}

.lh-bookings__stage--book .lh-week-calendar__legend-help:hover,
.lh-bookings__stage--book .lh-week-calendar__legend-help:focus-visible {
	border-color: #7a3e48;
	color: #7a3e48;
	outline: none;
}

.lh-bookings__stage--book .lh-week-calendar__legend-help-tip {
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 6px 18px rgb(36 38 36 / 0.12);
	color: #222;
	font-size: 0.72rem;
	font-weight: 500;
	left: 50%;
	line-height: 1.35;
	opacity: 0;
	padding: 0.4rem 0.55rem;
	pointer-events: none;
	position: absolute;
	text-align: center;
	top: calc(100% + 6px);
	transform: translateX(-50%);
	transition: opacity 0.15s ease;
	white-space: normal;
	width: max-content;
	max-width: 12rem;
	z-index: 20;
}

.lh-bookings__stage--book .lh-week-calendar__legend-help:hover .lh-week-calendar__legend-help-tip,
.lh-bookings__stage--book .lh-week-calendar__legend-help:focus-visible .lh-week-calendar__legend-help-tip {
	opacity: 1;
}

.lh-week-calendar--student .lh-week-calendar__day-column.is-no-teaching,
.lh-week-calendar--student .lh-week-calendar__day-header.is-no-teaching {
	cursor: default;
}

.lh-week-calendar--student .lh-week-calendar__off-hours {
	cursor: default;
	pointer-events: auto;
}

.lh-week-calendar--student .lh-week-calendar__scroll {
	overflow-y: visible;
	padding-bottom: 1.25rem;
}

.lh-week-calendar--student .lh-week-calendar__day-column.is-today .lh-week-calendar__now-marker {
	z-index: 20;
}

.lh-week-calendar--student .lh-week-calendar__day-header.is-past,
.lh-week-calendar--student .lh-week-calendar__day-column.is-past {
	background: #f3f0ec;
	border-color: #e4ddd4;
}

.lh-week-calendar--student .lh-week-calendar__day-header.is-past .lh-week-calendar__day-name,
.lh-week-calendar--student .lh-week-calendar__day-header.is-past .lh-week-calendar__day-date {
	color: #9a918a;
}

.lh-week-calendar--student .lh-week-calendar__day-column.is-past {
	opacity: 0.72;
}

.lh-week-calendar--student .lh-week-calendar__day-header.is-past.is-today,
.lh-week-calendar--student .lh-week-calendar__day-column.is-past.is-today {
	opacity: 1;
}

.lh-week-calendar__nav--arrows .lh-week-calendar__nav-arrow.is-disabled {
	color: #c8c0b8;
	cursor: default;
	opacity: 0.45;
	pointer-events: none;
}

.lh-week-calendar__nav .lh-week-calendar__nav-today.is-current {
	background: #faf8f5;
	color: #9a918a;
	cursor: default;
	opacity: 0.7;
	pointer-events: none;
}

.lh-week-calendar__nav .lh-week-calendar__nav-next.is-disabled {
	color: #c8c0b8;
	opacity: 0.45;
}

.lh-bookings__stage--book .lh-week-calendar__intro {
	display: none;
}

.lh-bookings__stage--book .lh-week-calendar__book-notice {
	color: #6b625c;
	font-size: 0.76rem;
	line-height: 1.35;
	margin: 0.35rem 0 0.15rem;
	text-align: center;
}

.lh-bookings__stage--book .lh-week-calendar__day-header {
	padding: 0.3rem 0.25rem;
}

.lh-bookings__stage--book .lh-week-calendar__day-date {
	font-size: 0.92rem;
}

.lh-bookings__stage--book .lh-week-calendar--student.lh-week-calendar--compact .lh-week-calendar__grid {
	grid-template-columns: 2.25rem repeat(7, minmax(6rem, 1fr));
}

.lh-bookings__stage--book .lh-week-calendar--student.lh-week-calendar--compact .lh-week-calendar__hour-label {
	font-size: 0.68rem;
	left: 0;
	padding-left: 0;
	padding-right: 0;
	right: auto;
	text-align: left;
}

.lh-bookings__stage .lh-student-calendar,
.lh-bookings__stage .lh-week-calendar {
	margin-top: 0.85rem;
}

@media (prefers-reduced-motion: reduce) {
	.lh-bookings__home,
	.lh-bookings__stage,
	.lh-bookings__choice,
	.lh-bookings__toggle-chevron,
	.lh-bookings-v2 .lh-bookings__lede,
	.lh-vacancy-alert__details::details-content,
	.lh-vacancy-alert__panel,
	.lh-vacancy-alert__chevron {
		transition: none;
	}

	.lh-bookings__choice:hover,
	.lh-bookings__choice:focus-visible {
		transform: none;
	}
}

.lh-lessons-regular-slot {
	align-items: baseline;
	color: #6b625c;
	display: flex;
	flex-wrap: wrap;
	font-size: 0.9rem;
	gap: 0.35rem 0.5rem;
	margin: 0 0 1rem;
}

.lh-lessons-regular-slot strong {
	color: #222;
	font-weight: 600;
}

.lh-lessons-regular-slot a {
	color: #7a3e48;
	font-size: 0.88rem;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.lh-lessons-rearrange-banner {
	align-items: center;
	background: #fff8eb;
	border: 1px solid #e8d4a8;
	border-left: 4px solid #c48b10;
	border-radius: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1rem;
	justify-content: space-between;
	margin: 0.75rem 0 0;
	padding: 0.65rem 0.85rem;
}

.lh-lessons-rearrange-banner p {
	color: #6d4c00;
	font-size: 0.86rem;
	margin: 0;
}

.lh-lessons-rearrange-banner__cta {
	background: #7a3e48;
	border-radius: 999px;
	color: #fff;
	font-size: 0.84rem;
	font-weight: 600;
	padding: 0.4rem 0.85rem;
	text-decoration: none;
	white-space: nowrap;
}

.lh-lessons-rearrange-banner__cta:hover,
.lh-lessons-rearrange-banner__cta:focus-visible {
	background: #62323a;
	color: #fff;
	outline: 2px solid rgb(122 62 72 / 0.25);
}

.lh-lessons-upcoming {
	margin: 0 0 1.5rem;
}

.lh-lessons-hero {
	background: #fff;
	border: 1px solid #e8e2da;
	border-left: 4px solid #7a3e48;
	border-radius: 14px;
	box-shadow: 0 10px 32px rgb(50 35 25 / 0.06);
	display: grid;
	gap: 1rem;
	padding: 1.1rem 1.15rem;
}

.lh-lessons-hero__label {
	color: #7a3e48;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin: 0 0 0.25rem;
	text-transform: uppercase;
}

.lh-lessons-hero__date {
	color: #222;
	display: block;
	font-size: 1.35rem;
	line-height: 1.2;
}

.lh-lessons-hero__time {
	color: #6b625c;
	display: block;
	font-size: 1rem;
	font-weight: 600;
	margin-top: 0.15rem;
}

.lh-lessons-hero__summary {
	color: #6b625c;
	font-size: 0.88rem;
	margin: 0.45rem 0 0;
}

.lh-lessons-hero__actions {
	border-top: 1px solid #f0ebe4;
	padding-top: 0.85rem;
}

.lh-lessons-hero__buttons {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.lh-lessons-hero__btn {
	border: 1px solid transparent;
	border-radius: 999px;
	cursor: pointer;
	display: inline-block;
	font: inherit;
	font-size: 0.88rem;
	font-weight: 600;
	padding: 0.5rem 1rem;
	text-align: center;
	text-decoration: none;
}

.lh-lessons-hero__btn--secondary {
	background: #faf8f5;
	border-color: #d4ccc2;
	color: #222;
}

.lh-lessons-hero__btn--secondary:hover,
.lh-lessons-hero__btn--secondary:focus-visible {
	background: #f3ecee;
	border-color: #7a3e48;
	color: #7a3e48;
	outline: none;
}

.lh-lessons-hero__btn--danger {
	background: transparent;
	border-color: #7a3e48;
	color: #7a3e48;
}

.lh-lessons-hero__btn--danger:hover,
.lh-lessons-hero__btn--danger:focus-visible {
	background: #f3ecee;
	outline: none;
}

.lh-lessons-hero__cancel {
	margin: 0;
}

.lh-lessons-upcoming__more {
	margin-top: 0.85rem;
}

.lh-lessons-upcoming__more > summary {
	color: #7a3e48;
	cursor: pointer;
	font-size: 0.9rem;
	font-weight: 600;
	list-style: none;
	padding: 0.35rem 0;
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.lh-lessons-upcoming__more > summary::-webkit-details-marker {
	display: none;
}

.lh-lessons-upcoming__more[open] > summary {
	margin-bottom: 0.65rem;
}

.lh-lessons-upcoming__more .lh-student-portal__next-cards {
	margin: 0;
}
