.lemon-schedule-page {
	padding-block: clamp(16px, 3vw, 36px) clamp(36px, 5vw, 62px);
}

.lemon-visit .lemon-visit-booking {
	padding-block-start: 0;
}

.lemon-visit-booking .lemon-schedule-page {
	width: 100%;
	padding-block: 0;
}

.lemon-schedule-page .lemon-schedule-intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 16px 32px;
	align-items: center;
	padding: clamp(20px, 4vw, 50px);
	border-radius: calc(var(--lemon-radius) + 4px);
	background: var(--lemon-yellow);
}

.lemon-schedule-intro .lemon-schedule-intro-copy :is(h1, h2) {
	font-size: clamp(35px, 5vw, 60px);
	line-height: 1.02;
}

.lemon-schedule-intro .lemon-schedule-intro-copy .lemon-schedule-facts {
	margin-top: 10px;
	font-weight: 750;
}

.lemon-schedule-intro .lemon-schedule-intro-actions {
	margin: 0;
}

.lemon-schedule-page :is(.lemon-schedule-upcoming, .lemon-schedule-visit) {
	margin-block-start: clamp(26px, 4vw, 46px);
}

.lemon-schedule-page .lemon-schedule-upcoming-head {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 20px;
	align-items: baseline;
	justify-content: space-between;
	margin-block-end: 14px;
}

.lemon-schedule-page :is(.lemon-schedule-upcoming-head, .lemon-schedule-visit) > :is(h2, h3) {
	font-size: clamp(27px, 3.4vw, 44px);
	line-height: 1.05;
	letter-spacing: -.05em;
}

.lemon-schedule-timezone,
.lemon-schedule-availability {
	color: var(--lemon-muted);
	font-size: 14px;
}

.lemon-schedule-upcoming .lemon-schedule-availability {
	margin-top: 12px;
}

.lemon-schedule-upcoming .booking-widget-weekly {
	margin: 0;
	border: 1px solid var(--lemon-line);
	border-radius: calc(var(--lemon-radius) - 6px);
	overflow: hidden;
	background: #fff;
}

.lemon-schedule-upcoming .booking-widget-weekly iframe {
	min-height: 340px;
}

:is(.lemon-schedule-page, .lemon-visit-schedule) .lemon-schedule-list {
	display: grid;
	gap: 9px;
	margin: 0;
	padding: 0;
	list-style: none;
}

:is(.lemon-schedule-page, .lemon-visit-schedule) :is(.lemon-schedule-session, .lemon-schedule-empty) {
	min-width: 0;
	padding: clamp(12px, 2.5vw, 22px);
	border: 1px solid var(--lemon-line);
	border-radius: calc(var(--lemon-radius) - 6px);
	background: #fffef7;
}

.lemon-schedule-session {
	display: grid;
	grid-template-columns: minmax(160px, .38fr) minmax(0, 1fr);
	gap: 10px 20px;
	align-items: center;
}

.lemon-schedule-date time {
	display: grid;
	grid-template-columns: minmax(0, max-content) auto;
	gap: 0 12px;
	align-items: center;
}

.lemon-schedule-day,
.lemon-schedule-weekday {
	grid-column: 1;
}

.lemon-schedule-day {
	font-size: 17px;
	font-weight: 800;
}

.lemon-schedule-weekday {
	color: var(--lemon-muted);
	font-size: 14px;
}

.lemon-schedule-time {
	grid-column: 2;
	grid-row: 1 / span 2;
	justify-self: start;
	padding: 4px 8px;
	border-radius: 8px;
	background: #f9efb7;
	font-size: 15px;
	font-variant-numeric: tabular-nums;
	font-weight: 800;
}

.lemon-schedule-page .lemon-schedule-session-copy h3 {
	font-size: clamp(17px, 2vw, 22px);
	letter-spacing: -.02em;
	overflow-wrap: anywhere;
}

.lemon-schedule-page .lemon-schedule-session-copy .lemon-schedule-session-title {
	margin: 0;
	color: var(--lemon-ink);
	font-size: clamp(17px, 2vw, 22px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.02em;
	overflow-wrap: anywhere;
}

:is(.lemon-schedule-page, .lemon-visit-schedule) .lemon-schedule-session-copy p {
	margin-top: 3px;
	color: var(--lemon-muted);
	font-size: 14px;
}

.lemon-schedule-empty p {
	max-width: 55ch;
	color: var(--lemon-muted);
}

.lemon-schedule-visit .lemon-schedule-visit-links {
	margin-block-start: 12px;
}

.lemon-visit-reservation-main .lemon-visit-schedule {
	margin-block-start: 16px;
}

.lemon-visit-schedule h2 {
	font-size: clamp(21px, 2.2vw, 28px);
	letter-spacing: -.035em;
}

.lemon-visit-schedule .lemon-schedule-timezone {
	margin-block: 3px 8px;
	font-size: 13px;
}

.lemon-visit-schedule .lemon-schedule-list {
	gap: 5px;
}

.lemon-visit-schedule :is(.lemon-schedule-session, .lemon-schedule-empty) {
	padding: 9px 11px;
	border: 0;
	border-radius: 12px;
}

.lemon-visit-schedule .lemon-schedule-session {
	grid-template-columns: minmax(65px, 1fr) minmax(0, 1fr);
	gap: 8px 12px;
}

.lemon-visit-schedule .lemon-schedule-date time {
	display: flex;
	flex-wrap: wrap;
	gap: 0 7px;
}

.lemon-visit-schedule .lemon-schedule-day {
	font-size: 14px;
}

.lemon-visit-schedule .lemon-schedule-time {
	padding: 0;
	margin: 0;
	background: transparent;
	font-size: 14px;
}

.lemon-visit-schedule .lemon-schedule-session-copy p {
	margin: 0;
	font-size: 13px;
}

.lemon-visit-schedule .lemon-schedule-availability {
	margin-block-start: 8px;
	font-size: 12px;
}

@media (max-width: 600px) {
	.lemon-schedule-page .lemon-schedule-intro {
		grid-template-columns: minmax(0, 1fr);
	}

	.lemon-schedule-intro .lemon-booking-primary,
	.lemon-schedule-intro .wp-block-button__link {
		width: 100%;
	}

	.lemon-schedule-session {
		grid-template-columns: minmax(102px, .55fr) minmax(0, 1fr);
		gap: 10px;
	}

	.lemon-schedule-date time {
		grid-template-columns: 1fr;
	}

	.lemon-schedule-time {
		grid-column: 1;
		grid-row: auto;
		margin-block-start: 4px;
	}
}
