/* Scoped to free-trial previews. Keep the existing full-width calendar layout. */
.trial-booking-shell { padding-top: 0; }
.trial-booking-page {
  --trial-ink: #0f172a;
  --trial-muted: #cbd5e1;
  --trial-border: #334155;
  --trial-accent: #f37249;
  --trial-available: #166534;
  --trial-available-soft: #f0fdf4;
  --trial-available-hover: #dcfce7;
}
.trial-booking-header { background: var(--trial-ink); color: #fff; }
.trial-booking-header__inner { padding-top: 2rem; padding-bottom: 2rem; }
.trial-booking-header .trial-booking-header__eyebrow { margin: 0 0 .5rem; color: var(--trial-muted); font-size: .8125rem; line-height: 1.5; }
.trial-booking-header__eyebrow strong { color: #fff; font-size: 1rem; }
.trial-booking-header h1 { margin: 0 0 .5rem; color: #fff; font-size: clamp(1.375rem, 2.4vw, 1.75rem); line-height: 1.3; }
.trial-booking-header .trial-booking-header__assurance { margin: 0; color: var(--trial-accent); font-size: 1rem; line-height: 1.5; }
.trial-booking-header__offer { min-width: 0; }
.trial-booking-page .trial-booking-layout { display: block; position: relative; left: 50%; width: min(80rem, 100vw); margin: 1.5rem 0 0; transform: translateX(-50%); }
.trial-booking-calendar { min-width: 0; scroll-margin-top: 1.5rem; }
.trial-booking-calendar > h2 { margin: 0 0 1rem; font-size: 1.125rem; line-height: 1.4; }
.trial-booking-page .calendar-panel, .trial-booking-page .time-panel { min-height: 0; }
.trial-booking-page .time-panel { align-self: start; }
.trial-booking-page .selected-date, .trial-booking-page .selected-time { flex-wrap: wrap; }
.trial-slot-date { margin-bottom: 1rem; color: var(--trial-ink); }
.trial-slot-date__heading { margin: 0 0 .75rem; font-size: 1rem; line-height: 1.5; font-weight: 600; }
.trial-slot-date__heading:focus-visible { outline: 2px solid var(--trial-available); outline-offset: 3px; border-radius: .25rem; }
.trial-booking-page .time-slots > div:not(.sr-only) { grid-column: 1 / -1; }
/* Override the scheduler's existing frame backgrounds only on this trial page. */
.trial-booking-page .english-trial-journey .booking-calendar .fc .fc-day-other.has-availability .fc-daygrid-day-top { opacity: 1; }
.trial-booking-page .english-trial-journey .booking-calendar .fc .fc-daygrid-day:not(.has-availability) .fc-daygrid-day-frame { background-color: #f1f5f9 !important; outline: none; }
.trial-booking-page .english-trial-journey .booking-calendar .fc .has-availability:not(.is-selected-day) .fc-daygrid-day-frame { background-color: var(--trial-available-soft) !important; }
.trial-booking-page .english-trial-journey .booking-calendar .fc .has-availability .fc-daygrid-day-number { color: var(--trial-available) !important; font-weight: 600; }
.trial-booking-page .english-trial-journey .booking-calendar .fc .has-availability:not(.is-selected-day):hover .fc-daygrid-day-frame { background-color: var(--trial-available-hover) !important; }
.trial-booking-page .english-trial-journey .booking-calendar .fc .has-availability.is-selected-day .fc-daygrid-day-frame { background-color: var(--trial-available) !important; outline: 2px solid var(--trial-available); outline-offset: -2px; }
.trial-booking-page .english-trial-journey .booking-calendar .fc .has-availability.is-selected-day .fc-daygrid-day-number { color: #fff !important; font-weight: 700; }
.trial-booking-page .english-trial-journey .time-slot-btn:enabled { background-color: #fff !important; border-color: var(--trial-available) !important; color: var(--trial-available) !important; }
.trial-booking-page .english-trial-journey .time-slot-btn:enabled:hover { background-color: var(--trial-available-hover) !important; }
.trial-booking-page .english-trial-journey .time-slot-btn:enabled[aria-pressed="true"] { background-color: var(--trial-available) !important; color: #fff !important; outline: 2px solid var(--trial-available); outline-offset: -2px; }
.trial-booking-page .english-trial-journey .time-slot-btn:focus-visible,
.trial-booking-page .english-trial-journey .booking-calendar .fc-daygrid-day-number:focus-visible { outline: 2px solid var(--trial-available); outline-offset: 3px; }
.trial-tutor { display: grid; gap: .75rem 2rem; min-width: 0; }
.trial-tutor p, .trial-tutor blockquote, .trial-tutor figure { margin: 0; }
.trial-tutor__overview { display: flex; align-items: flex-start; gap: 1rem; min-width: 0; }
.trial-tutor__identity { min-width: 0; }
.trial-tutor__photo { width: 4rem; height: 4.75rem; object-fit: cover; border-radius: .375rem; flex: 0 0 auto; }
.trial-tutor__name-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem 1rem; }
.trial-tutor h2 { margin: 0; color: #fff; font-size: 1.125rem; line-height: 1.5; overflow-wrap: anywhere; }
.trial-tutor__rating { color: var(--trial-muted); font-size: .8125rem; line-height: 1.5; }
.trial-tutor__rating > span:first-child, .trial-tutor-review__rating > span { color: var(--trial-accent); }
.trial-tutor .trial-tutor__quote { margin-top: .375rem; color: var(--trial-muted); font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; }
.trial-tutor h3 { margin: 0 0 .5rem; color: #fff; font-size: .875rem; line-height: 1.5; font-weight: 600; }
.trial-tutor__packages { margin: 0; padding: 0; list-style: none; }
.trial-tutor__packages > li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 .75rem; margin: 0; padding: .375rem 0; color: var(--trial-muted); font-size: .8125rem; line-height: 1.5; }
.trial-tutor__packages > li + li { border-top: 1px solid var(--trial-border); }
.trial-tutor__packages strong { color: var(--trial-muted); font-size: .875rem; font-weight: 400; white-space: nowrap; }
.trial-tutor__packages strong > span { color: var(--trial-muted); font-size: .75rem; font-weight: 400; }
.trial-tutor__packages small { grid-column: 1 / -1; font-size: .75rem; }
.trial-tutor .trial-tutor__hint { color: var(--trial-muted); font-size: .8125rem; line-height: 1.5; }
.trial-tutor__more-reviews { grid-column: 1 / -1; }
.trial-tutor__more-reviews > summary { display: list-item; width: fit-content; min-height: 2.75rem; padding: .625rem 0; color: var(--trial-accent); font-size: .8125rem; line-height: 1.5; cursor: pointer; }
.trial-tutor__expanded { display: grid; gap: 1.5rem; padding: 1rem 0; border-top: 1px solid var(--trial-border); }
.trial-tutor__about p, .trial-tutor__about blockquote, .trial-tutor-review blockquote { color: var(--trial-muted); font-size: .875rem; line-height: 1.6; overflow-wrap: anywhere; }
.trial-tutor-review + .trial-tutor-review { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--trial-border); }
.trial-tutor-review__rating { color: #fff; font-size: .8125rem; }
.trial-tutor-review figcaption { margin-top: .375rem; color: var(--trial-muted); font-size: .75rem; }
.trial-tutor a:focus-visible, .trial-tutor summary:focus-visible { outline: 2px solid var(--trial-accent); outline-offset: 3px; }
@media (min-width: 768px) {
  .trial-booking-header__inner { padding-top: 2.5rem; padding-bottom: 2.5rem; }
  .trial-tutor { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
  .trial-booking-header__offer { grid-column: 2; grid-row: 1; }
  .trial-tutor__overview { grid-column: 1; grid-row: 1; }
  .trial-tutor__expanded { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .trial-tutor__quote { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
}
@media (max-width: 374px) {
  .trial-tutor__overview { gap: .75rem; }
  .trial-tutor__photo { width: 3rem; height: 3.75rem; }
  .trial-tutor__duration { display: block; }
}
