/* The booking path occupies the same approved desktop composition as its
   opening section. Touch layouts never receive desktop-fitted. */
html.desktop-fitted.responsive-index body.section3-preview main#main-content.desktop-fitted.responsive-index > .panel.index-booking-enabled {
  --index-gap: 64px;
  --index-button-height: 57px;
  display: block; padding: 0;
  height: var(--deck-height, 100dvh); block-size: var(--deck-height, 100dvh);
  min-height: 0; min-block-size: 0; overflow: clip;

  & > .section-stage {
    position: absolute;
    top: calc(var(--desktop-fit-top) + var(--desktop-booking-fit-inset, 0px));
    bottom: auto; left: 50%;
    width: 1600px; height: var(--desktop-booking-fit-height, 960px);
    max-width: none; min-height: 0; max-height: none;
    margin: 0; padding: 0; display: block;
    transform: translateX(-50%) scale(var(--desktop-booking-fit-scale, var(--desktop-fit-scale)));
    transform-origin: 50% 0;
    overflow: visible; overscroll-behavior: auto;
  }
  & .index-booking {
    --workspace-gap: 36px;
    --booking-gap: 64px;
    box-sizing: border-box; width: 1600px;
    height: auto; min-height: 960px; padding: 24px 0;
    flex: none;
  }
  & .index-booking .booking-workspace {
    flex: 1 0 auto; min-height: 912px; overflow: visible;
  }
  & .index-booking .booking-view { overflow: visible; }
  & .index-booking :is(.step-heading, .calendar-heading) h2 { font-size: 64px; line-height: 1.12; }
  & .index-booking :is(.step-heading, .calendar-heading) p { font-size: 16px; }
  & .index-booking .calendar-grid { column-gap: 16px; }
  & .index-booking .calendar-selection { overflow: visible; }
  & .index-booking .calendar-heading { flex-direction: row; }
  & .index-booking :is(.details-layout, .checkout-pair) {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 100px;
  }
  & .index-booking .schedule-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
  & .index-booking .schedule-option { padding: 48px; }
  & .index-booking .schedule-option h3 { font-size: 44.8px; }
  & .index-booking .checkout-review-content { padding: 48px; }
  & .index-booking .booking-confirmation h2 { font-size: 46px; }
  & .index-booking #booking-status { overflow: visible; }
  & > .section-meta {
    position: absolute;
    bottom: calc(var(--desktop-fit-spare) + 32px * var(--desktop-fit-scale));
    left: 50%; width: 1600px; margin: 0;
    transform: translateX(-50%) scale(var(--desktop-fit-scale));
    transform-origin: 50% 100%;
  }
  & .section-next { font-size: 14px; min-height: 32px; }
}

/* Portal booking/rescheduling uses the identical desktop calendar geometry.
   The accessory fitter owns the outer position and proportional transform. */
html.desktop-page-fitted body.student-portal-page main#main-content.desktop-page-fitted.responsive-portal.portal-calendar-active {
  & > .desktop-page-stage {
    height: 960px; min-height: 960px;
    display: flex; flex-direction: column; gap: 0; padding: 24px 0;
  }
  & > .desktop-page-stage > .workspace-heading { display: none; }
  & .portal-workspace { flex: 1 0 auto; min-height: 912px; overflow: visible; }
  & .portal-view, & .portal-calendar { flex: 1 0 auto; overflow: visible; }
  & .portal-calendar .calendar-heading h2 { font-size: 64px; line-height: 1.12; }
  & .portal-calendar .calendar-heading p { font-size: 16px; }
  & .portal-calendar .calendar-grid { column-gap: 16px; }
  & .portal-calendar .calendar-selection { overflow: visible; }
}
