/* Presentation around FluentBooking; the plugin retains scheduling and form state. */
.booking-dialog { box-sizing: border-box; container: booking-shell / size; padding: 0; border: 0; width: min(1072px, calc(100vw - 40px)); max-width: none; height: min(588px, calc(100dvh - 70px)); max-height: none; overflow: hidden; background: var(--color-paper); color: var(--color-ink); border-radius: var(--radius-card); box-shadow: var(--shadow-dialog); }
.booking-dialog::backdrop { background: var(--dialog-backdrop); }
/* Give the native calendar its final layout during the short opening grace
   period without painting a shell or exposing its controls before reveal. */
.booking-dialog.booking-preparing { display: block; position: fixed; inset: 0; margin: auto; opacity: 0; pointer-events: none; }
/* The photo and title belong to the outer shell during startup, independent
   of the calendar document, scripts and availability request. */
.booking-startup { position: absolute; inset: 0; background: var(--color-paper); }
.booking-startup-photo { position: absolute; inset: 0 auto 0 0; width: 300px; }
.booking-startup-status { position: absolute; inset: 84px 16px 70px 316px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 28px; text-align: center; font: var(--type-ui)/var(--leading-ui) var(--font-ui); opacity: 0; visibility: hidden; transition: opacity 180ms ease, visibility 0s 180ms; }
.booking-startup-status p { margin: 0; max-width: 32ch; }
.booking-startup-loading .booking-startup-status, .booking-startup-error .booking-startup-status { opacity: 1; visibility: visible; transition-delay: 0s; }
.booking-startup-error .booking-startup-status { transition: none; }
.booking-content-ready .booking-startup { visibility: hidden; }
.booking-content-fade .booking-startup { transition: visibility 0s 180ms; }
.booking-content-ready .booking-startup-status { opacity: 0; visibility: hidden; transition: opacity 180ms ease, visibility 0s 180ms; }
/* Keep rounded clipping on the dialog to avoid a pale double edge. The
   rectangular clip contains moving iframe contents during step slides. */
.booking-frame { position: relative; width: 100%; height: 100%; display: block; border: 0; border-radius: 0; clip-path: inset(0); background: var(--color-paper); opacity: 0; pointer-events: none; }
.booking-content-fade .booking-frame { transition: opacity 180ms ease; }
.booking-content-ready .booking-frame { opacity: 1; pointer-events: auto; }
.booking-frame-staged { position: absolute; inset: 0; z-index: 1; }
.booking-content-ready .booking-frame-pending { opacity: 0; pointer-events: none; }
.booking-navigation-status { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 28px; background: color-mix(in srgb, var(--color-paper) 94%, transparent); text-align: center; opacity: 0; visibility: hidden; transition: opacity 180ms ease, visibility 0s 180ms; }
.booking-navigation-status.is-visible { opacity: 1; visibility: visible; transition-delay: 0s; }
.booking-navigation-status p { margin: 0; max-width: 32ch; }
.booking-navigation-status.has-error::before { display: none; }
body.booking-embedded h1[tabindex="-1"]:focus { outline: none; }
.booking-close { position: absolute; right: 12px; top: 12px; z-index: 2; border: 0; border-radius: 50%; width: 44px; height: 44px; background: var(--color-sand); color: var(--color-ink); font: 32px/1 Arial, sans-serif; cursor: pointer; }
.booking-close:focus-visible { outline: var(--focus-ring); outline-offset: 3px; }
/* Direct-page access remains available to keyboard users without a footer slab. */
.booking-fallback:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.booking-fallback:focus { position: absolute; bottom: 12px; right: 16px; z-index: 3; padding: 10px; background: var(--color-paper); }
html:has(body.booking-embedded) { height: 100%; overflow: hidden; }
body.booking-embedded { --booking-summary-width: 280px; margin: 0; height: 100dvh; overflow: hidden; background: var(--color-paper); font-family: var(--font-ui); }
body.booking-embedded main { position: relative; padding: 0; max-width: none; height: 100dvh; min-height: 0; overflow: hidden; }
/* The vendor sets visibility:visible on nested calendar regions. Suppress the
   whole composition until initialized so those children cannot paint early. */
body.booking-embedded:not(.booking-presentation-ready) main { opacity: 0; visibility: hidden; }
/* Keep moving controls from receiving pointer clicks during a step change.
   The outer shell and close button remain stationary and usable. */
body.booking-embedded main[data-booking-step] { pointer-events: none; }
/* Keep the photo flush with the shell; reserve the close button's space in
   heading content instead of shifting the entire booking frame downward. */
.booking-title { position: absolute; z-index: 1; top: 22px; left: 300px; right: 0; margin: 0; padding-inline: 64px; text-align: center; }
.booking-title,
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_date_event_details_header h3 { font: 400 32px/1.4 var(--font-display); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_cal_wrap { --fcal_primary_color: var(--color-accent); --fcal_cal_bg: var(--color-paper); --fcal_slot_border: var(--color-sand); --fcal_enable_day_bg: transparent; --fcal_date_disabled_bg: transparent; --fcal_dark: #14272e; --fcal_date_radius: var(--radius-control); font-family: var(--font-ui); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner { display: grid; grid-template-columns: 27% minmax(0, 1fr); width: 100%; height: auto !important; min-height: 540px; border-radius: 0; overflow: visible; }
.booking-startup-photo,
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_side { background: url('../forest-road-900.webp') center / cover; background-image: image-set(url('../forest-road-900.webp') 1x, url('../forest-road-1800.webp') 2x); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_side { min-width: 0; width: auto; padding: 0; border: 0; transition: none; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_side .fcal_slot_wrapper { visibility: hidden; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_date_wrapper { display: block; width: 100% !important; min-width: 0; margin: 0; overflow: visible; transition: none; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_day_picker_wrap { width: 100%; margin: 0 !important; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_day_picker { display: block; }
/* These are the actual siblings: applying the grid to .fcal_day_picker
   instead squeezes both calendar and slots into a single half-width column. */
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_calendar_slot_wrap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; padding: 24px 16px !important; min-width: 0 !important; width: 100%; max-height: none; overflow: visible; transition: none; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .calendar-container { grid-column: 1; grid-row: 1; min-width: 0; max-width: none; width: 100%; padding: 0; margin: 0 !important; opacity: 1 !important; visibility: visible !important; border: 0; transition: none; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_slot_picker { grid-column: 2; grid-row: 1; position: static !important; width: 100% !important; min-width: 0 !important; padding: 0 !important; height: auto; max-height: none; overflow: visible; transition: none; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_slot_items { max-height: 360px; overflow-y: auto; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_date_event_details { display: none; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner.fcal_spot_selected { grid-template-columns: minmax(0, 1fr) var(--booking-summary-width, 280px); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_spot_selected .fcal_side { grid-column: 2; grid-row: 1; background: none; padding: 28px 24px; border-left: 1px solid var(--color-sand); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_spot_selected .fcal_date_wrapper { grid-column: 1; grid-row: 1; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_spot_selected .fcal_side .fcal_slot_wrapper { visibility: visible; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_date_wrapper.is_active .fcal_day_picker_wrap { display: none; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_date_event_details.is_active { display: block; position: static !important; width: 100%; height: auto; max-height: none; overflow: visible; padding: 24px; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_booking_form_wrap { height: auto; max-height: none; overflow: visible; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_booking_form form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content .fcal_help_text { color: var(--text-muted); font: var(--type-meta)/var(--leading-ui) var(--font-ui); margin: 8px 0 0; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form .fcal_validation_error { font: var(--type-meta)/var(--leading-ui) var(--font-ui); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form :is(.fcal_form_item .fcal_input_content .fcal_validation_error, .fcal_errors) { display: flex; align-items: start; gap: 6px; padding: 0; border: 0; background: transparent; color: var(--field-error); font: var(--type-meta)/var(--leading-ui) var(--font-ui); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form :is(.fcal_form_item .fcal_input_content .fcal_validation_error, .fcal_errors)[hidden] { display: none; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form .fcal_errors { margin: 12px 0 0; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form :is(.fcal_form_item .fcal_input_content .fcal_validation_error, .fcal_errors) svg { flex: 0 0 14px; width: 14px; height: 14px; margin: 4px 0 0; color: inherit; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form :is(.fcal_form_item .fcal_input_content .fcal_validation_error, .fcal_errors) :is(p, div) { margin: 0; color: inherit; font: inherit; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_form_item { grid-column: 1 / -1; margin: 0 !important; min-width: 0; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_form_item:has(#name-label) { grid-column: 1; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_form_item:has(#email-label) { grid-column: 2; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_form_item :is(input, textarea) { border-radius: var(--radius-control) !important; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content :is(input, textarea, select, .fcal_input_label) { font: var(--type-ui)/var(--leading-ui) var(--font-ui); }
/* Keep decorative separators light; strengthen only the actual field edges.
   The vendor also uses its slot-border variable as the country-code fill. */
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content :is(.fcal_input, .basic-tel-input, .checkbox_mark) { border-color: var(--control-border); }
/* The prefix fill sits inside the input's 1px border, so its inner curve
   follows the input radius instead of the vendor's larger 6px corners. */
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content .fcal_phone_wrapper .fcal_country_select { border-radius: calc(var(--radius-control) - 1px) 0 0 calc(var(--radius-control) - 1px); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) #newsletter-label .fcal_custom_checkbox { font-size: calc(var(--type-ui) - 1px); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) #newsletter-label .fcal_custom_checkbox > span:not(.checkbox_mark) { font-size: inherit; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content :is(.fcal_input, .basic-tel-input):focus-visible { outline: var(--focus-ring); outline-offset: 3px; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_booking_form_wrap .fcal_phone_wrapper .svelte-select:focus-within { outline: var(--focus-ring); outline-offset: 3px; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_booking_form_wrap .fcal_custom_checkbox input:focus-visible ~ .checkbox_mark { outline: var(--focus-ring); outline-offset: 3px; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content .fcal_custom_checkbox .checkbox_mark { display: inline-grid; place-items: center; width: var(--checkbox-size, 20px); height: var(--checkbox-size, 20px); border: 2px solid var(--checkbox-border, var(--control-border)); border-radius: var(--checkbox-radius, 4px); background: transparent; animation: none; transition: background-color var(--interaction-duration, 180ms) var(--interaction-ease, ease-out), border-color var(--interaction-duration, 180ms) var(--interaction-ease, ease-out); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content .fcal_custom_checkbox:hover .checkbox_mark { border-color: var(--checkbox-fill, var(--color-accent)); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content .fcal_custom_checkbox input:checked ~ .checkbox_mark { background: var(--checkbox-fill, var(--color-accent)); border-color: var(--checkbox-fill, var(--color-accent)); animation: none; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content .fcal_custom_checkbox .checkbox_mark::before { content: ''; display: block; position: static; width: 12px; height: 10px; border: 0; background: var(--checkbox-tick, var(--color-paper)); clip-path: polygon(14% 44%, 0 59%, 38% 97%, 100% 17%, 84% 0, 35% 70%); transform: scale(0); transform-origin: center; animation: none; transition: transform var(--interaction-duration, 180ms) var(--interaction-ease, ease-out); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content .fcal_custom_checkbox input:checked ~ .checkbox_mark::before { transform: scale(1); animation: none; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_form_item textarea { min-height: 95px; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_side .fcal_author_avatar img { width: 140px; height: 75px; object-fit: contain; border-radius: 0; }

/* Live calendar: 300px full-height photo, flexible content, compact toolbar,
   two columns and a persistent Next action (live.mkv 02:25–02:28). */
body.booking-embedded .fcal_wrap .fcal_calendar_inner { grid-template-columns: 300px minmax(0, 1fr); height: 100dvh !important; min-height: 0; border: 0; overflow: hidden; transition: none; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_side { min-height: 0; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_side { overflow: hidden; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_date_wrapper { min-height: 0; padding: 84px 16px 70px; overflow: hidden; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_day_picker_wrap { height: 100%; min-height: 0; overflow: clip; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_calendar_slot_wrap { height: 100%; min-height: 0; align-items: stretch; grid-template-rows: minmax(0, 1fr); padding: 48px 0 0 !important; }
.booking-calendar-heading { position: absolute; top: 0; left: 0; width: 100%; padding: 0 48% 8px 0 !important; margin: 0 !important; border-bottom: 1px solid var(--color-sand); font-size: 20px !important; line-height: 1.4; font-family: var(--font-ui); }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar-container { position: static; align-self: start; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar-header { display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px; align-items: center; margin-bottom: 8px; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar-month-year { grid-column: 2; grid-row: 1; text-align: center; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar-month-year :is(h2, h4) { font-size: 18px; font-weight: 400; font-family: var(--font-ui); }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar-header .calendar_nav { display: contents; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar_nav button { grid-row: 1; justify-self: center; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar_nav button:first-child { grid-column: 1; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar_nav button:last-child { grid-column: 3; }
/* Keep the plain month chevrons; hover gently leads in their direction. */
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .calendar_nav button:not(:disabled):not(.fcal_btn_disabled) svg { color: var(--color-accent); transition: color var(--interaction-duration) var(--interaction-ease), transform var(--interaction-duration) var(--interaction-ease); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .calendar_nav button:not(:disabled):not(.fcal_btn_disabled):hover svg { color: var(--link-hover); }
@media (prefers-reduced-motion: no-preference) {
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .calendar_nav button:not(:disabled):not(.fcal_btn_disabled):hover svg { transform: translateX(2px); }
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .calendar_nav button:not(:disabled):not(.fcal_btn_disabled):first-child:hover svg { transform: translateX(-2px); }
}
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px 12px; overflow: visible; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day { font-size: 16px; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day-name { text-transform: none; font-size: 16px; color: var(--color-muted); line-height: 2.8; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day-enabled > span::before { content: ''; position: absolute; left: 50%; bottom: 3px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: currentColor; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_timezone_select { position: absolute; top: -3px; right: 0; width: 46%; margin: 0; padding: 0; z-index: 20; }
body.booking-embedded .fcal_wrap .fcal_timezone_select > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
body.booking-embedded .fcal_wrap .fcal_slot_picker_header { padding: 0; min-height: 30px; margin-bottom: 22px; font-size: 16px; position: static; }
body.booking-embedded .fcal_wrap .fcal_slot_picker_header :is(.fcal_back, .fcal_slot_picker_header_action) { display: none !important; }
body.booking-embedded .fcal_wrap .fcal_slot_picker_header .fcal_slot_date_info { font-size: 16px; font-weight: 400; }
body.booking-embedded .fcal_wrap .fcal_slot_date_info::before { content: attr(data-label); }
.booking-slot-prompt { grid-column: 2; grid-row: 1; align-self: start; margin: 4px 0; font-size: 16px; color: var(--color-muted); }
body.booking-embedded .fcal_wrap .fcal_day_selected .booking-slot-prompt { display: none; }
/* Only the time list scrolls; its height follows the space above Next. */
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_slot_picker { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
body.booking-embedded .fcal_wrap .fcal_slot_picker_header { flex: none; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_slot_picker .fcal_slot_items { flex: 1; min-height: 0; max-height: none; scrollbar-width: thin; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_slot_items { position: relative; isolation: isolate; overscroll-behavior: contain; }
body.booking-embedded .fcal_slot_items::before, body.booking-embedded .fcal_slot_items::after { content: ''; display: block; position: sticky; z-index: 2; height: 0; opacity: 0; pointer-events: none; transition: opacity var(--interaction-duration, 180ms) var(--interaction-ease, ease-out); }
body.booking-embedded .fcal_slot_items::before { top: 0; box-shadow: 0 5px 12px 7px var(--scroll-cue-color); }
body.booking-embedded .fcal_slot_items::after { bottom: 0; box-shadow: 0 -5px 12px 7px var(--scroll-cue-color); }
body.booking-embedded .fcal_slot_items.booking-slots-above::before, body.booking-embedded .fcal_slot_items.booking-slots-below::after { opacity: 1; }
body.booking-embedded .fcal_wrap .fcal_spot_lists { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 2px !important; }
body.booking-embedded .fcal_wrap .fcal_slot_picker .fcal_spot_lists .fcal_spot { margin: 0; padding: 0; border-radius: var(--radius-control); background: transparent; border-color: var(--color-muted); }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_slot_picker .fcal_spot_lists .fcal_spot .fcal_spot_name { padding: 10px 4px; min-height: 42px; justify-content: center; font-size: 16px; }
body.booking-embedded .fcal_wrap .fcal_slot_picker .fcal_spot_lists .fcal_spot.fcal_spot_selected { background: var(--color-accent); border-color: var(--color-accent); }
body.booking-embedded .fcal_wrap .fcal_slot_picker .fcal_spot_lists .fcal_spot.fcal_spot_selected .fcal_spot_name { color: white; }
body.booking-embedded.booking-presentation-ready .fcal_wrap .fcal_spot_confirm { display: none; }
.booking-calendar-actions { position: absolute; bottom: 0; left: 300px; right: 0; padding: 10px 16px 16px; background: var(--color-paper); z-index: 25; }
.booking-next { display: block; width: 100%; min-height: var(--control-height); border: 1px solid var(--action-fill); border-radius: var(--radius-control); padding: 8px 16px; background: var(--action-fill); color: var(--action-text); font: var(--type-ui)/var(--leading-ui) var(--font-ui); cursor: pointer; transition: background-color var(--interaction-duration) var(--interaction-ease), border-color var(--interaction-duration) var(--interaction-ease); }
.booking-next:disabled { opacity: .55; cursor: not-allowed; }
.booking-next:not(:disabled):hover { background: var(--action-hover); border-color: var(--action-hover); }

/* Availability feedback belongs to the calendar region. Inert in booking.js
   blocks its native controls, including keyboard focus, while a read is pending. */
.booking-availability-ready { position: relative; }
.booking-availability-ready :is(.fcal_loading_dates, .fcal_no_availability, .fcal_error_text, .booking-slot-prompt) { display: none !important; }
.booking-availability-empty { grid-column: 2; grid-row: 1; align-self: start; color: var(--color-muted); font: var(--type-ui)/var(--leading-ui) var(--font-ui); }
.booking-availability-empty p { margin: 4px 0 18px; }
.booking-availability-busy .booking-availability-empty,
.booking-availability-failed .booking-availability-empty { visibility: hidden; }
.booking-selection-notice { margin: 0 0 12px; color: var(--color-ink); font: var(--type-meta)/var(--leading-ui) var(--font-ui); }
.booking-selection-notice[hidden], .fcal_spot.booking-slot-unavailable { display: none !important; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .booking-day-unavailable { color: var(--color-muted); cursor: default; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .booking-day-unavailable > span::before { display: none; }
.booking-availability-status { position: absolute; inset: 48px 0 0; z-index: 30; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 28px; text-align: center; color: var(--color-ink); background: var(--color-paper); background: color-mix(in srgb, var(--color-paper) 94%, transparent); font: var(--type-ui)/var(--leading-ui) var(--font-ui); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 180ms ease, visibility 0s 180ms; }
.booking-availability-visible { opacity: 1; visibility: visible; transition-delay: 0s; }
/* The parent owns initial loading feedback. Later reads use this native panel. */
body.booking-embedded:not(.booking-calendar-ready) .booking-availability-status { opacity: 0; visibility: hidden; }
/* Errors stay actionable immediately. A finishing loading layer cannot intercept
   ready controls; inert in booking.js also removes it from keyboard navigation. */
.booking-availability-error { transition: none; pointer-events: auto; }
.booking-startup-status::before,
.booking-navigation-status::before,
.booking-availability-status::before { content: ''; width: 26px; height: 26px; border: 2px solid var(--color-accent); border-right-color: transparent; border-radius: 50%; animation: booking-availability-turn 1.1s linear infinite; }
.booking-availability-status p { max-width: 32ch; margin: 0; }
.booking-startup-error .booking-startup-status::before, .booking-availability-error::before { display: none; }
.booking-availability-empty[hidden], .booking-availability-status[hidden], .booking-find-next[hidden], .booking-availability-retry[hidden] { display: none; }
.booking-find-next, .booking-availability-retry { display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: var(--control-height); max-width: 100%; border: 1px solid var(--action-secondary-fill); border-radius: var(--radius-control); padding: 10px 16px; background: var(--action-secondary-fill); color: var(--color-accent); font: inherit; cursor: pointer; transition: background-color var(--interaction-duration) var(--interaction-ease), border-color var(--interaction-duration) var(--interaction-ease); }
.booking-find-next::before, .booking-availability-retry::before { content: ''; flex: 0 0 1.1em; width: 1.1em; height: 1.1em; background: currentColor; mask: var(--action-icon-calendar) center / contain no-repeat; }
.booking-availability-retry::before { mask-image: var(--action-icon-next); }
.booking-find-next:hover, .booking-availability-retry:hover { background: var(--action-secondary-hover); border-color: var(--action-secondary-hover); }
.booking-find-next:focus-visible, .booking-availability-retry:focus-visible { outline: var(--focus-ring); outline-offset: 3px; }
@keyframes booking-availability-turn { to { transform: rotate(1turn); } }
@media (max-width: 800px) {
  .booking-availability-empty { grid-column: 1; grid-row: 2; }
  .booking-availability-status { inset-block-start: 90px; min-height: 180px; padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .booking-navigation-status { transition: none; }
  .booking-navigation-status::before { animation: none; }
  /* Keep the short opacity dissolve: an instant toggle recreates the flash.
     The spinner and all spatial motion remain disabled. */
  .booking-content-fade .booking-frame { transition: opacity 180ms ease !important; }
  .booking-content-fade .booking-startup { transition: visibility 0s 180ms !important; }
  .booking-startup-status, .booking-availability-status { transition: opacity 180ms ease, visibility 0s 180ms !important; }
  .booking-startup-loading .booking-startup-status, .booking-availability-visible { transition-delay: 0s !important; }
  .booking-content-ready .booking-startup-status { transition-delay: 0s, 180ms !important; }
  .booking-startup-error .booking-startup-status, .booking-availability-error { transition: none !important; }
  .booking-startup-status::before, .booking-availability-status::before { animation: none; }
  .booking-find-next, .booking-availability-retry { transition: none; }
}

/* Keep the real intake form and summary in the dialog, with space to scroll
   on short screens. No duplicate submit button or copied form state. */
body.booking-embedded.booking-details :is(.booking-title, .booking-calendar-actions) { display: none; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner.fcal_spot_selected { height: 100dvh !important; min-height: 0; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner.fcal_spot_selected .fcal_date_wrapper { padding: 12px 32px 16px; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner.fcal_spot_selected .fcal_date_event_details { display: flex; flex-direction: column; height: 100%; min-height: 0; overflow: hidden; padding: 0; }
body.booking-embedded .fcal_wrap .fcal_booking_form_wrap { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable both-edges; padding: 4px 6px 20px; }
/* Keep the original shadow flush with the scrollport, compensating for its
   internal padding independently of the surrounding panel spacing. */
body.booking-embedded .fcal_booking_form_wrap.scroll-cues::before { transform: translateY(-4px); }
body.booking-embedded .fcal_booking_form_wrap.scroll-cues::after { transform: translateY(20px); }
body.booking-embedded .fcal_booking_form_wrap.scroll-cues::before,
body.booking-embedded .fcal_booking_form_wrap.scroll-cues::after { margin-inline: -6px; }
/* Match the summary's 24px insets across the entire left column. Size the
   fields independently of the scrollbar gutter so both edges stay aligned
   with the title/divider, while the track remains 8px from the side divider.
   The scroll panel starts 6px earlier to contain the full focus outline. */
@media (min-width: 801px) {
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.fcal_spot_selected .fcal_date_wrapper { padding-left: 18px; padding-right: 8px; }
  body.booking-embedded .fcal_wrap .fcal_booking_form_wrap { padding-inline: 6px 0; scrollbar-gutter: stable; scrollbar-width: thin; }
  body.booking-embedded .fcal_wrap .fcal_booking_form { width: calc(100vw - var(--booking-summary-width) - 48px); }
  body.booking-embedded .fcal_wrap .fcal_date_event_details_header { margin-left: 6px; margin-right: 16px; min-height: 64px; }
  body.booking-embedded .fcal_booking_form_wrap.scroll-cues::before,
  body.booking-embedded .fcal_booking_form_wrap.scroll-cues::after { margin-inline: -6px 0; }
}
body.booking-embedded .fcal_wrap .fcal_spot_selected .fcal_side { padding-top: 24px; }
body.booking-embedded .fcal_wrap .fcal_spot_selected .fcal_author { display: none; }
.booking-summary-title { margin: 0 0 20px; padding: 0 40px 14px 0; border-bottom: 1px solid var(--color-sand); font-size: 20px; font-weight: 400; }
.booking-summary-toggle { display: none; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_side .fcal_slot_heading { font-size: 20px; line-height: 1.4; font-weight: 400; margin-bottom: 20px; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_date_event_details_header h3 { overflow-wrap: anywhere; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_date_event_details_header { flex: 0 0 auto; margin-bottom: 16px; padding-bottom: 12px; border-bottom: var(--border-surface); }
/* These remain native form descendants. The calendar provides their containing
   block so the left scrollport does not clip the right-column controls. */
body.booking-embedded .fcal_wrap .fcal_calendar_inner.booking-actions-aside { position: relative; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner.booking-actions-aside .fcal_date_wrapper { position: static; z-index: 10; }
body.booking-embedded .fcal_wrap .booking-actions-aside .fcal_slot_wrapper { padding-bottom: 14px; border-bottom: 1px solid var(--color-sand); }
body.booking-embedded .fcal_wrap .booking-actions-aside .fcal_slot_info > .fcal_icon_item:last-child { margin-bottom: 0; }
body.booking-embedded .fcal_wrap .booking-actions-aside .fcal_form_item:has(#newsletter-label),
body.booking-embedded .fcal_wrap .booking-actions-aside .fcal_form_item.fcal_submit,
body.booking-embedded .fcal_wrap .booking-actions-aside .fcal_booking_form > .fcal_errors { position: absolute; left: var(--booking-actions-left); width: var(--booking-actions-width); }
body.booking-embedded .fcal_wrap .booking-actions-aside .fcal_form_item:has(#newsletter-label) { top: var(--booking-opt-in-top); }
body.booking-embedded .fcal_wrap .booking-actions-aside #newsletter-label .fcal_input_label:empty { display: none; }
body.booking-embedded .fcal_wrap .booking-actions-aside #newsletter-label .fcal_custom_checkbox { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 8px; align-items: start; padding-left: 0; }
body.booking-embedded .fcal_wrap .booking-actions-aside #newsletter-label .fcal_custom_checkbox > span:not(.checkbox_mark) { grid-column: 2; grid-row: 1; }
body.booking-embedded .fcal_wrap .booking-actions-aside #newsletter-label .checkbox_mark { grid-column: 1; grid-row: 1; margin-top: 4px; }
body.booking-embedded .fcal_wrap .booking-actions-aside .fcal_form_item.fcal_submit { top: var(--booking-submit-top); }
body.booking-embedded .fcal_wrap .booking-actions-aside .fcal_booking_form > .fcal_errors { top: var(--booking-feedback-top); }
body.booking-embedded .fcal_wrap .booking-actions-aside .fcal_form_item .fcal_btn_submit { width: 100%; }
/* Inherit the button's animated color without a second vendor transition. */
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_date_wrapper .fcal_date_event_details .fcal_date_event_details_header .fcal_back button svg { fill: currentColor; transition: none; }
body.booking-embedded .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content .fcal_input_label { font: var(--type-ui)/var(--leading-ui) var(--font-ui); margin-bottom: 8px; }
body.booking-embedded .fcal_wrap .fcal_booking_form .fcal_form_item :is(input:not([type=checkbox]), textarea) { background: transparent; }
body.booking-embedded .fcal_wrap .fcal_booking_form .fcal_form_item .fcal_btn_submit { font-size: 16px; min-width: 200px; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form .fcal_form_item.fcal_submit { justify-content: flex-start; }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form .fcal_form_item .fcal_btn_submit { border-radius: var(--radius-control); background: var(--action-fill); color: var(--action-text); border-color: var(--action-fill); min-height: var(--control-height); transition: background-color var(--interaction-duration) var(--interaction-ease), border-color var(--interaction-duration) var(--interaction-ease); }
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form .fcal_form_item .fcal_btn_submit:hover { background: var(--action-hover); border-color: var(--action-hover); }
/* The two-column calendar needs room for the full nearest-day action.
   Startup queries the actual shell so it matches the iframe at every height. */
@media (min-width: 1025px) and (min-height: 481px) {
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day { padding: 0 !important; height: min(40px, calc((100dvh - 298px) / 6)); min-height: 28px; }
}
@media (max-width: 1064px) {
  .booking-dialog { height: min(680px, calc(100dvh - 40px)); }
}
@container booking-shell (max-width: 800px) {
  .booking-startup-photo { width: 100%; height: 88px; background-position: center 55%; }
  .booking-startup-photo::after { content: ''; position: absolute; inset: 0; background: #14272e66; }
  .booking-startup-status { inset: 104px 22px 70px; padding: 20px; }
  .booking-startup .booking-title { left: 0; right: 44px; top: 22px; padding-inline: 22px; text-align: left; font-size: 28px; color: var(--color-paper); }
}
@media (max-width: 1024px) {
  body.booking-embedded .booking-title { z-index: 11; left: 0; right: 44px; top: 22px; padding-inline: 22px; text-align: left; font-size: 28px; color: var(--color-paper); }
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) { display: flex; flex-direction: column; height: auto !important; min-height: 100dvh; }
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_side { display: none; }
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_calendar_slot_wrap { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_slot_picker { grid-column: 1; grid-row: 2; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) { height: 100dvh !important; min-height: 0; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_side { display: block; position: absolute; inset: 0 0 auto; width: 100%; height: 88px; overflow: hidden; background-position: center 55%; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_side::after { content: ''; position: absolute; inset: 0; background: #14272e66; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_date_wrapper { height: 100%; padding: 104px 22px 70px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_calendar_slot_wrap { display: flex; flex-direction: column; height: 100%; min-height: 0; gap: 12px; padding: 0 !important; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar-container { display: flex; flex-direction: column; flex: none; }
  .booking-calendar-heading { position: static; flex: none; padding: 0 0 8px !important; font-size: 18px !important; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_timezone_select { position: static; order: -1; width: 100%; margin-bottom: 8px; }
  body.booking-embedded .booking-timezone { font-size: 14px; text-align: left; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_day_selected) .fcal_slot_picker { display: none; }
  .booking-slot-prompt { grid-column: 1; grid-row: 2; }
  .booking-calendar-actions { left: 0; padding: 12px 22px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar { gap: 2px 4px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day { padding: 0 !important; height: 2.1em; min-height: 32px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day-name { line-height: 1.5; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day-enabled > span::before { bottom: 2px; width: 3px; height: 3px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_slot_picker { flex: 1; min-height: 0; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_slot_picker .fcal_slot_items { flex: 1; min-height: 0; max-height: none; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_slot_picker .fcal_spot_lists { gap: 8px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_slot_picker .fcal_spot_lists .fcal_spot .fcal_spot_name { padding: 6px 4px; min-height: 40px; }
  body.booking-embedded .fcal_wrap .fcal_slot_picker_header { flex: none; min-height: 24px; margin-bottom: 8px; }
  body.booking-embedded .booking-availability-status { inset: 44px 0 0; }
}
@container booking-shell (max-width: 800px) and (max-height: 600px) {
  .booking-startup-photo { height: 68px; }
  .booking-startup .booking-title { top: 16px; font-size: 24px; }
  .booking-startup-status { top: 80px; }
}
@media (max-width: 1024px) and (max-height: 600px) {
  body.booking-embedded .booking-title { top: 16px; font-size: 24px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_side { height: 68px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_date_wrapper { padding-top: 80px; }
  .booking-calendar-heading { display: none; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_timezone_select { margin-bottom: 4px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day { height: 28px; min-height: 28px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day-name { font-size: 14px; line-height: 1.4; }
  body.booking-embedded .booking-availability-status { inset: 0; }
}
/* Stack dates and times before retiring the sidebar photo. */
@media (min-width: 801px) and (max-width: 1024px) {
  body.booking-embedded .booking-title { left: 300px; right: 0; top: 22px; padding-inline: 64px; font-size: 32px; text-align: center; color: var(--color-ink); }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) { display: grid; grid-template-columns: 300px minmax(0, 1fr); }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_side { position: static; width: auto; height: 100%; background-position: center; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_side::after { display: none; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_date_wrapper { padding: 84px 16px 70px; }
  .booking-calendar-actions { left: 300px; padding: 10px 16px 16px; }
}
/* Very short windows trade the photo header for usable dates and times.
   The nearest-day action uses the full footer width in this landscape view. */
@media (min-width: 480px) and (max-height: 504px) {
  .booking-dialog { height: calc(100dvh - 24px); }
}
@container booking-shell (min-width: 440px) and (max-height: 480px) {
  .booking-startup-photo, .booking-startup .booking-title { display: none; }
  .booking-startup-status { inset: 16px 22px 70px; }
}
@media (min-width: 440px) and (max-height: 480px) {
  body.booking-embedded .booking-title { display: none; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) { display: block; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_side { display: none; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_date_wrapper { height: 100%; padding: 12px 22px 70px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_calendar_slot_wrap { display: grid; grid-template-columns: minmax(208px, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); gap: 16px; padding: 0 !important; }
  .booking-calendar-heading { display: none; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar-container { grid-column: 1; grid-row: 1; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar-header { margin-bottom: 0; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar-month-year :is(h2, h4) { font-size: 16px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar { gap: 1px 2px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day { padding: 0 !important; height: clamp(26px, calc((100dvh - 146px) / 6), 32px); min-height: 26px; font-size: 14px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day-name { font-size: 12px; line-height: 1.5; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_timezone_select { position: absolute; top: 0; right: 44px; width: calc((100% - 16px) / 2 - 44px); margin: 0; }
  body.booking-embedded .booking-timezone { font-size: 12px; line-height: 1.4; padding: 0; text-align: left; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_slot_picker { grid-column: 2; grid-row: 1; padding-top: 56px !important; }
  body.booking-embedded .fcal_wrap .fcal_slot_picker_header { min-height: 24px; margin-bottom: 4px; }
  body.booking-embedded .fcal_wrap .fcal_slot_picker_header .fcal_slot_date_info { font-size: 14px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_slot_picker .fcal_spot_lists .fcal_spot .fcal_spot_name { font-size: 14px; min-height: 32px; padding: 4px; }
  .booking-availability-empty { grid-column: 2; grid-row: 1; padding-top: 56px; font-size: 14px; }
  .booking-availability-empty .booking-find-next { position: fixed; left: 22px; right: 22px; bottom: 12px; width: calc(100% - 44px); font-size: 16px; padding-block: 8px; }
  body.booking-embedded:has(.booking-availability-empty:not([hidden])) .booking-calendar-actions { visibility: hidden; }
  .booking-calendar-actions { left: 0; padding: 12px 22px; }
  body.booking-embedded .booking-availability-status { inset: 0; }
}
@container booking-shell (max-width: 439px) and (max-height: 499px) {
  .booking-startup-photo, .booking-startup .booking-title { display: none; }
  .booking-startup-status { inset: 16px 22px 70px; }
}
@media (max-width: 439px) and (max-height: 499px) {
  body.booking-embedded .booking-title { display: none; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_side { display: none; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner:not(.fcal_spot_selected) .fcal_date_wrapper { padding-top: 12px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_timezone_select { padding-right: 44px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .calendar .day { height: 24px; min-height: 24px; font-size: 14px; }
}
@media (max-width: 800px) {
  .booking-dialog { width: calc(100% - 32px); max-width: revert; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_date_event_details_header h3 { font-size: 28px; }
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_spot_selected .fcal_side { order: 2; min-height: 0; padding: 20px; border-left: 0; border-top: 1px solid var(--color-sand); }
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_booking_form form { display: block; }
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_form_item { margin-bottom: 18px !important; }
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .fcal_date_event_details.is_active { padding: 20px 14px; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.fcal_spot_selected { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.fcal_spot_selected .fcal_date_wrapper { grid-column: 1; grid-row: 1; padding: 0; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.fcal_spot_selected .fcal_date_event_details { padding: 0; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.fcal_spot_selected .fcal_side { grid-column: 1; grid-row: 2; max-height: 35dvh; padding: 12px 22px; }
  body.booking-embedded .fcal_spot_selected .booking-summary-title { display: none; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.fcal_spot_selected .fcal_side .fcal_slot_heading { margin-bottom: 8px; font-size: 16px; }
  body.booking-embedded .fcal_spot_selected .fcal_icon_item { margin-bottom: 6px; }
  /* Keep the title beside Back, reserving the outer Close control's space. */
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_date_event_details_header { display: flex; align-items: center; gap: 10px; min-height: 69px; padding: 12px 68px 12px 22px; margin: 0; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_date_event_details_header .fcal_back { position: static; flex: none; margin: 0; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_date_event_details_header h3 { min-width: 0; font-size: clamp(20px, 6vw, 28px); overflow-wrap: normal; }
  body.booking-embedded .fcal_wrap .fcal_booking_form_wrap { padding: 16px 22px; scrollbar-gutter: stable; scrollbar-width: thin; }
  body.booking-embedded .fcal_booking_form_wrap.scroll-cues::before { margin-inline: -22px; transform: translateY(-16px); }
  body.booking-embedded .fcal_booking_form_wrap.scroll-cues::after { margin-inline: -22px; transform: translateY(16px); }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.booking-actions-bottom .fcal_side { max-height: none; padding: 12px 22px var(--booking-action-space, 120px); overflow: hidden; }
  body.booking-embedded .fcal_wrap .booking-actions-bottom .fcal_slot_wrapper { max-height: var(--booking-summary-max-height, 180px); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-bottom: 12px; }
  body.booking-embedded .fcal_wrap .booking-actions-bottom .fcal_form_item:has(#newsletter-label),
  body.booking-embedded .fcal_wrap .booking-actions-bottom .fcal_submit { margin: 0 !important; }
  body.booking-embedded .fcal_wrap .booking-actions-bottom #newsletter-label .fcal_custom_checkbox { line-height: 1.5; }
  body.booking-embedded .fcal_wrap .booking-actions-bottom #newsletter-label .fcal_custom_checkbox > span:not(.checkbox_mark) { line-height: inherit; }
  body.booking-embedded .fcal_wrap .booking-actions-bottom #newsletter-label .checkbox_mark { position: static; inset: auto; margin: max(0px, calc((1.5em - 20px) / 2)) 0 0; }
  .booking-actions-bottom .booking-summary-toggle { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 32px; margin: 0 0 4px; padding: 0; border: 0; background: transparent; color: var(--color-accent); font: 16px/1.5 var(--font-ui); text-align: left; cursor: pointer; transition: color var(--interaction-duration) var(--interaction-ease); }
  body.booking-embedded .booking-summary-toggle:hover { color: var(--action-hover); }
  .booking-summary-toggle::after { content: ''; flex: 0 0 16px; height: 16px; background: currentColor; mask: var(--disclosure-chevron) center / contain no-repeat; transition: transform 180ms ease; }
  .booking-summary-toggle[aria-expanded=true]::after { transform: rotate(180deg); }
  body.booking-embedded .booking-actions-bottom .fcal_slot_info { display: flex; flex-direction: column; }
  body.booking-embedded .booking-actions-bottom .fcal_slot_info > * { flex: none; }
  body.booking-embedded .booking-actions-bottom .fcal_slot_info > .slot_time_range:not(.slot_timezone) { order: -1; margin-bottom: 0; }
  body.booking-embedded .booking-actions-bottom .booking-info-open .fcal_slot_info > .slot_time_range:not(.slot_timezone) { margin-bottom: 8px; }
  body.booking-embedded .booking-actions-bottom .fcal_slot_wrapper:not(.booking-info-open) .fcal_slot_info > :not(.slot_time_range:not(.slot_timezone)) { display: none; }
}

/* A fixed heading can consume a short phone's whole form viewport, especially
   with enlarged text. Let that heading travel with the form at these sizes. */
@media (max-width: 800px) and (max-height: 600px) {
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.fcal_spot_selected .fcal_date_event_details { overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable both-edges; }
  body.booking-embedded .fcal_date_event_details.scroll-cues::before { transform: none; }
  body.booking-embedded .fcal_wrap .fcal_booking_form_wrap { flex: 0 0 auto; overflow: visible; scrollbar-gutter: auto; }
}

@media (max-width: 800px) {
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.booking-form-flow { display: flex; flex-direction: column; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.booking-form-flow .fcal_date_wrapper { flex: none; height: auto; overflow: visible; }
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.booking-form-flow .fcal_date_event_details { height: auto; overflow: visible; scrollbar-gutter: auto; }
  body.booking-embedded .fcal_wrap .booking-form-flow .fcal_booking_form_wrap { flex: none; overflow: visible; scrollbar-gutter: auto; }
  body.booking-embedded .fcal_wrap .booking-form-flow .fcal_side { flex: none; }
}

/* A landscape phone needs room to see a field as well as its label. Keep the
   bottom panel, but place its details beside the actions at these sizes. */
@media (min-width: 440px) and (max-width: 800px) and (max-height: 440px) {
  body.booking-embedded .fcal_wrap .fcal_calendar_inner.booking-actions-split .fcal_side { height: var(--booking-bottom-height); padding: 12px 22px; }
  body.booking-embedded .fcal_wrap .booking-actions-split .fcal_slot_wrapper { width: calc(50% - 12px); }
  body.booking-embedded .fcal_wrap .booking-actions-split .fcal_form_item .fcal_btn_submit { min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  body.booking-embedded .fcal_slot_items::before, body.booking-embedded .fcal_slot_items::after,
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content .fcal_custom_checkbox .checkbox_mark,
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_booking_form_wrap .fcal_booking_form .fcal_form_item .fcal_input_content .fcal_custom_checkbox .checkbox_mark::before { transition: none; }
}

@media (forced-colors: active) {
  :is(body.booking-embedded, .booking-page, .calendar_wrap) { --checkbox-border: ButtonText; --checkbox-fill: CanvasText; --checkbox-tick: Canvas; }
  :is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_custom_checkbox .checkbox_mark { forced-color-adjust: none; }
}

/* A plain native-zone readout, with no pointer or keyboard selector. */
:is(body.booking-embedded, .booking-page, .calendar_wrap) .fcal_wrap .fcal_calendar_inner .booking-timezone-ready .fcal_timezone_selector { display: none; }
.booking-timezone { display: block; padding-block: 4px; color: var(--color-muted); font: var(--type-meta)/var(--leading-ui) var(--font-ui); }
body.booking-embedded .booking-timezone { text-align: right; }
@media (max-width: 1024px) { body.booking-embedded .booking-timezone { text-align: left; } }

/* Base receipt and fallback for confirmations without structured date data. */
body.booking-embedded .fcal_wrap .fcal_calendar_inner:has(.fcal_booking_confirmed) { display: block; padding: 0; }
body.booking-embedded:has(.fcal_booking_confirmed) :is(.booking-title, .booking-calendar-actions) { display: none; }
body.booking-embedded .fcal_wrap .fcal_calendar_inner .fcal_booking_confirmed { width: 100%; min-width: 0; max-width: none; height: 100%; margin: 0; padding: 0; }
body.booking-embedded .fcal_wrap .fcal_booking_confirmed .fcal_confirmation { display: flex; flex-direction: column; height: 100%; min-height: 0; max-width: 840px; padding: 0; margin: 0 auto; color: var(--color-ink); }
body.booking-embedded .fcal_confirmation .fcal_confirm_header { flex: none; display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; column-gap: 16px; margin: 0 32px; padding: 28px 0 24px; border-bottom: var(--border-surface); text-align: left; }
body.booking-embedded .fcal_confirmation .fcal_check_holder { grid-column: 1; grid-row: 1 / 3; width: 44px; height: 44px; margin: 0; background: var(--action-secondary-fill); color: var(--color-accent); }
body.booking-embedded .fcal_confirmation .fcal_check_holder:has(img[src$="/check-mark.png"])::before { content: ''; width: 16px; height: 9px; margin-top: -5px; border: solid currentColor; border-width: 0 0 2px 2px; transform: rotate(-45deg); }
body.booking-embedded .fcal_confirmation .fcal_check_holder img[src$="/check-mark.png"] { display: none; }
body.booking-embedded .fcal_confirmation .fcal_confirm_header :is(h1, h2) { grid-column: 2; margin: 0; color: var(--color-accent); font: 400 32px/1.25 var(--font-display); }
body.booking-embedded .fcal_confirmation .fcal_confirm_header p { grid-column: 2; margin: 6px 0 0; color: var(--text-muted); font: var(--type-ui)/var(--leading-ui) var(--font-ui); }
body.booking-embedded .fcal_confirmation .fcal_confirm_header p:empty { display: none; }
body.booking-embedded .fcal_confirmation .fcal_confirm_header:has(p:empty) .fcal_check_holder { grid-row: 1; }
body.booking-embedded .fcal_confirmation .fcal_confirm_body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
body.booking-embedded .fcal_confirmation .fcal_confirm_body > :not(style) { margin-inline: 32px; }
body.booking-embedded .fcal_confirmation .fcal_confirm_body > :last-child { padding-bottom: 24px; }
body.booking-embedded .fcal_confirmation .fcal_confirm_section { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 4px 24px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--color-cream); }
body.booking-embedded .fcal_confirmation .fcal_confirm_section:has(+ :is(.fcal_booking_manage, .booking-receipt-details)) { border-bottom: 0; }
body.booking-embedded .fcal_confirmation .fcal_confirm_section_title { width: auto; min-width: 0; margin: 0; }
body.booking-embedded .fcal_confirmation .fcal_confirm_section_title :is(h2, h4) { margin: 0; color: var(--text-muted); font: 400 var(--type-meta)/var(--leading-ui) var(--font-ui); }
body.booking-embedded .fcal_confirmation .fcal_confirm_section_content { grid-column: 2; min-width: 0; overflow-wrap: anywhere; color: var(--color-ink); font: var(--type-ui)/var(--leading-ui) var(--font-ui); }
body.booking-embedded .fcal_confirmation .fcal_confirm_section_content :is(p, ul) { margin: 0; }
body.booking-embedded .fcal_confirmation .fcal_confirm_section_content li { margin: 0; }
body.booking-embedded .fcal_confirmation .fcal_host_badge { display: inline-block; padding: 1px 7px; border-radius: var(--radius-control); background: var(--surface-support); color: var(--text-muted); }
body.booking-embedded .fcal_confirmation .fcal_host_badge::before { content: none; }
body.booking-embedded .fcal_confirmation .fcal_booking_manage { padding: 20px 0 0; margin-top: 20px; border-top: var(--border-surface); color: var(--text-muted); font: var(--type-meta)/var(--leading-ui) var(--font-ui); }
body.booking-embedded .fcal_confirmation .fcal_normal_booking_footer a { color: var(--color-accent); text-decoration: underline; text-underline-offset: var(--link-underline-offset); }
body.booking-embedded .fcal_confirmation .fcal_normal_booking_footer a:is(:hover, :focus-visible) { color: var(--link-hover); text-decoration-thickness: 2px; }
body.booking-embedded .fcal_confirmation .fcal_to_calendars { flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 20px !important; }
body.booking-embedded .fcal_confirmation .fcal_cal_items { gap: 10px; }
body.booking-embedded .fcal_confirmation .fcal_cal_items a { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: var(--surface-support); color: var(--color-accent); cursor: pointer; user-select: none; transition: background-color var(--interaction-duration) var(--interaction-ease); }
body.booking-embedded .fcal_confirmation .fcal_cal_items a:is(:hover, :focus-visible) { background: #c8dcda; }
.fcal_confirmation .booking-receipt-timezone { display: block; margin-top: 4px; color: var(--text-muted); font-size: var(--type-meta); }
.fcal_confirmation .booking-receipt-details { padding: 0; border: 0; border-block: var(--border-surface); }
.fcal_confirmation .booking-receipt-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; padding: 14px 0; border-radius: var(--radius-control); list-style: none; cursor: pointer; color: var(--color-accent); font: var(--type-ui)/var(--leading-ui) var(--font-ui); transition: background-color var(--interaction-duration) var(--interaction-ease), color var(--interaction-duration) var(--interaction-ease); }
.fcal_confirmation .booking-receipt-details > summary::-webkit-details-marker { display: none; }
.fcal_confirmation .booking-receipt-details > summary::after { content: ''; flex: 0 0 18px; height: 18px; background: currentColor; mask: var(--disclosure-chevron) center / contain no-repeat; transition: transform 180ms ease-out; }
.fcal_confirmation .booking-receipt-details:not([data-disclosure-ready])[open] > summary::after,
.fcal_confirmation .booking-receipt-details > summary[aria-expanded=true]::after { transform: rotate(180deg); }
.fcal_confirmation .booking-receipt-details > summary:is(:hover, :focus-visible) { background: var(--surface-support); color: var(--link-hover); }
.fcal_confirmation .booking-receipt-fields > .fcal_confirm_section:first-child { border-top: 1px solid var(--color-cream); }
.fcal_confirmation .booking-receipt-fields > .fcal_confirm_section:last-child { border-bottom: 0; }
body.booking-embedded .fcal_confirmation .booking-receipt-details + .fcal_booking_manage { margin-top: 0; border-top: 0; }
@media (max-width: 540px) {
  body.booking-embedded .fcal_confirmation .fcal_confirm_header { grid-template-columns: 36px minmax(0, 1fr); column-gap: 12px; margin-inline: 22px; padding: 24px 40px 20px 0; }
  body.booking-embedded .fcal_confirmation .fcal_check_holder { width: 36px; height: 36px; }
  body.booking-embedded .fcal_confirmation .fcal_confirm_header :is(h1, h2) { font-size: 26px; }
  body.booking-embedded .fcal_confirmation .fcal_confirm_header p { grid-column: 1 / -1; margin-top: 12px; }
  body.booking-embedded .fcal_confirmation .fcal_check_holder { grid-row: 1; }
  body.booking-embedded .fcal_confirmation .fcal_confirm_body > :not(style) { margin-inline: 22px; }
  body.booking-embedded .fcal_confirmation .fcal_confirm_section { grid-template-columns: minmax(0, 1fr); gap: 6px; padding-block: 14px; }
  body.booking-embedded .fcal_confirmation .fcal_confirm_section_content { grid-column: 1; }
  body.booking-embedded .fcal_confirmation .fcal_confirm_body > :last-child { padding-bottom: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  body.booking-embedded .fcal_confirmation .fcal_cal_items a,
  .fcal_confirmation .booking-receipt-details > summary,
  .fcal_confirmation .booking-receipt-details > summary::after { transition: none; }
}

/* Appointment-card confirmation. Native links stay outside the reading area. */
body.booking-embedded .fcal_wrap .fcal_booking_confirmed .fcal_confirmation.booking-receipt-layout { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-width: none; }
.booking-receipt-layout, .booking-management-page {
  --receipt-icon-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
  --receipt-icon-video: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='13' height='14' rx='2'/%3E%3Cpath d='m16 10 5-3v10l-5-3'/%3E%3C/svg%3E");
  --receipt-icon-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18M8 15h3'/%3E%3C/svg%3E");
  --receipt-icon-cancel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='m6 6 12 12M18 6 6 18'/%3E%3C/svg%3E");
}
body.booking-embedded .booking-receipt-layout .fcal_confirm_header { padding-right: 30px; }
.booking-receipt-main { display: grid; grid-template-columns: 282px minmax(0, 1fr); gap: 34px; min-width: 0; min-height: 0; margin: 24px 32px; }
.booking-receipt-date { display: flex; flex-direction: column; justify-content: space-between; gap: 16px; min-height: 0; padding: 24px 26px; border-radius: var(--radius-card); background: var(--color-accent); color: var(--color-paper); }
.booking-receipt-date-start { display: flex; flex-direction: column; align-items: flex-start; }
.booking-receipt-weekday { color: var(--action-secondary-fill); font: 14px/1.5 var(--font-ui); text-transform: capitalize; }
.booking-receipt-day { margin: 6px 0 2px; font: 400 106px/.98 var(--font-display); }
.booking-receipt-month { font: 18px/1.5 var(--font-ui); text-transform: capitalize; }
.booking-receipt-time { border-top: 1px solid #ffffff32; padding-top: 15px; }
.booking-receipt-date .booking-receipt-hours { display: flex; align-items: center; gap: 9px; margin: 0 0 6px; font: 21px/1.5 var(--font-ui); }
.booking-receipt-hours::before { content: ''; flex: 0 0 18px; height: 18px; background: currentColor; mask: var(--receipt-icon-clock) center / contain no-repeat; }
.booking-receipt-date .booking-receipt-timezone { margin: 0; color: var(--action-secondary-fill); font: 12px/1.5 var(--font-ui); }
body.booking-embedded .booking-receipt-layout .fcal_confirm_body { min-width: 0; height: 100%; overflow: hidden; padding: 0 10px 2px 2px; }
body.booking-embedded .booking-receipt-layout .fcal_confirm_body > :not(style) { margin-inline: 0; }
body.booking-embedded .booking-receipt-layout .fcal_confirm_body > :last-child { padding-bottom: 0; }
body.booking-embedded .booking-receipt-layout .fcal_confirm_section:has([data-booking-field=what], [data-booking-field=where]) { display: block; padding: 0; border: 0; }
body.booking-embedded .booking-receipt-layout .fcal_confirm_section:has([data-booking-field=what], [data-booking-field=where]) .fcal_confirm_section_title { display: none; }
body.booking-embedded .booking-receipt-layout .booking-receipt-meeting { margin: 0 0 14px; color: var(--color-accent); font: 400 26px/1.25 var(--font-display); }
body.booking-embedded .booking-receipt-layout .fcal_confirm_section:has([data-booking-field=where]) { margin-bottom: 26px; }
body.booking-embedded .booking-receipt-layout [data-booking-field=where] { position: relative; padding-left: 28px; color: var(--text-muted); font-size: 15px; }
.booking-receipt-layout [data-booking-field=where]::before { content: ''; position: absolute; left: 0; top: .2em; width: 19px; height: 19px; background: currentColor; mask: var(--receipt-icon-video) center / contain no-repeat; }
body.booking-embedded .booking-receipt-layout [data-booking-field=where] :is(b, strong) { font-weight: inherit; }
body.booking-embedded .booking-receipt-layout [data-booking-field=where] ul { padding: 0; list-style: none; }
body.booking-embedded .booking-receipt-layout .booking-receipt-details { border-bottom: 0; }
body.booking-embedded .booking-receipt-layout .booking-receipt-fields { max-height: var(--booking-receipt-fields-height); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 8px; --scroll-cue-color: rgb(56 52 42 / 18%); }
.booking-receipt-layout .booking-receipt-fields.scroll-cues[data-scrollable=true]::before { box-shadow: 0 3px 8px 3px var(--scroll-cue-color); }
.booking-receipt-layout .booking-receipt-fields.scroll-cues[data-scrollable=true]::after { box-shadow: 0 -3px 8px 3px var(--scroll-cue-color); }
body.booking-embedded .booking-receipt-layout .booking-receipt-fields > .fcal_confirm_section:first-child { padding-top: 8px; border-top: 0; }
body.booking-embedded .booking-receipt-layout .booking-receipt-fields > .fcal_confirm_section:last-child { border-bottom: 0; }
.booking-receipt-actions { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; margin: 0 32px; padding: 19px 0 27px; border-top: var(--border-surface); }
.booking-receipt-actions:empty { display: none; }
body.booking-embedded .booking-receipt-actions .fcal_booking_manage { margin: 0 !important; padding: 0; border: 0; text-align: left; }
body.booking-embedded .booking-receipt-actions .fcal_normal_booking_footer { flex: 1; min-width: 0; max-width: none; }
body.booking-embedded .booking-receipt-actions .booking-receipt-manage-label { margin: 0 0 8px; font: 14px/1.5 var(--font-ui); }
.booking-receipt-manage-links { display: flex; flex-wrap: wrap; gap: 3px; margin-left: -9px; }
body.booking-embedded .booking-receipt-layout .booking-receipt-manage-links a { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; margin: 0; padding: 7px 9px; border-radius: var(--radius-control); color: var(--color-ink); font: 15px/1.55 var(--font-ui); text-decoration: none; white-space: nowrap; user-select: none; transition: background-color var(--interaction-duration) var(--interaction-ease), color var(--interaction-duration) var(--interaction-ease); }
body.booking-embedded .booking-receipt-layout .booking-receipt-manage-links a:is(:hover, :focus-visible) { background: var(--surface-support); color: var(--color-accent); }
.booking-receipt-manage-links a:is([data-booking-action=reschedule], [data-booking-action=cancel])::before { content: ''; flex: 0 0 17px; width: 17px; height: 17px; background: currentColor; mask: var(--receipt-icon-calendar) center / contain no-repeat; }
.booking-receipt-manage-links a[data-booking-action=cancel]::before { mask-image: var(--receipt-icon-cancel); }
body.booking-embedded .booking-receipt-actions .fcal_to_calendars { flex: none; flex-direction: column; align-items: flex-end; gap: 8px; }
body.booking-embedded .booking-receipt-actions .fcal_to_calendars > span { margin: 0; font: 14px/1.5 var(--font-ui); }
body.booking-embedded .booking-receipt-actions .fcal_cal_items { gap: 8px; }
body.booking-embedded .booking-receipt-actions .fcal_cal_items a { width: 40px; height: 40px; }
@media (max-width: 700px) {
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header { grid-template-columns: 34px minmax(0, 1fr); column-gap: 11px; margin-inline: 22px; padding: 23px 35px 19px 0; }
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header :is(h1, h2) { font-size: 26px; line-height: 1.12; }
  body.booking-embedded .booking-receipt-layout .fcal_check_holder { width: 34px; height: 34px; grid-row: 1; align-self: start; }
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header p { grid-column: 1 / -1; margin-top: 11px; font-size: 14px; }
  .booking-receipt-main { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 18px; margin: 18px 22px; }
  .booking-receipt-date { display: grid; grid-template-columns: 1fr 1.2fr; gap: 16px; padding: 16px 18px; }
  .booking-receipt-weekday { font-size: 11px; }
  .booking-receipt-day { font-size: 52px; margin: 2px 0 0; }
  .booking-receipt-month { font-size: 12px; }
  .booking-receipt-time { display: flex; flex-direction: column; justify-content: center; padding: 0 0 0 16px; border-top: 0; border-left: 1px solid #ffffff32; }
  .booking-receipt-date .booking-receipt-hours { gap: 5px; margin-bottom: 7px; font-size: 16px; }
  .booking-receipt-hours::before { flex-basis: 14px; height: 14px; }
  .booking-receipt-date .booking-receipt-timezone { font-size: 11px; }
  body.booking-embedded .booking-receipt-layout .fcal_confirm_body { padding: 0; }
  body.booking-embedded .booking-receipt-layout .booking-receipt-meeting { font-size: 22px; margin-bottom: 9px; }
  body.booking-embedded .booking-receipt-layout .fcal_confirm_section:has([data-booking-field=where]) { margin-bottom: 18px; }
  body.booking-embedded .booking-receipt-layout [data-booking-field=where] { font-size: 14px; }
  body.booking-embedded .booking-receipt-layout .booking-receipt-details > summary { min-height: 48px; padding-block: 10px; font-size: 15px; }
  body.booking-embedded .booking-receipt-layout .booking-receipt-fields .fcal_confirm_section { grid-template-columns: minmax(0, 1fr); gap: 4px; padding-block: 12px; }
  body.booking-embedded .booking-receipt-layout .booking-receipt-fields .fcal_confirm_section_content { grid-column: 1; font-size: 14px; }
  body.booking-embedded .booking-receipt-layout .booking-receipt-fields .fcal_confirm_section_title :is(h2, h4) { font-size: 13px; }
  .booking-receipt-actions { flex-direction: column; gap: 13px; margin-inline: 22px; padding: 17px 0 21px; }
  body.booking-embedded .booking-receipt-actions .booking-receipt-manage-label { margin-bottom: 3px; font-size: 13px; }
  body.booking-embedded .booking-receipt-actions .fcal_normal_booking_footer { width: 100%; }
  .booking-receipt-manage-links { gap: 8px; }
  body.booking-embedded .booking-receipt-layout .booking-receipt-manage-links a { min-height: 40px; font-size: 14px; }
  body.booking-embedded .booking-receipt-actions .fcal_to_calendars { width: 100%; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 12px; }
  body.booking-embedded .booking-receipt-actions .fcal_to_calendars > span { max-width: 100px; font-size: 13px; }
  body.booking-embedded .booking-receipt-actions .fcal_cal_items { gap: 6px; }
  body.booking-embedded .booking-receipt-actions .fcal_cal_items a { width: 36px; height: 36px; }
}
@media (max-width: 310px) {
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header { margin-inline: 18px; column-gap: 9px; }
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header :is(h1, h2) { font-size: 24px; }
  .booking-receipt-main, .booking-receipt-actions { margin-inline: 18px; }
  .booking-receipt-date { gap: 11px; padding: 14px; }
  .booking-receipt-time { padding-left: 11px; }
  .booking-receipt-date .booking-receipt-hours { font-size: 15px; }
  .booking-receipt-hours::before { display: none; }
  .booking-receipt-month { font-size: 11px; }
  body.booking-embedded .booking-receipt-actions .fcal_cal_items { gap: 4px; }
  body.booking-embedded .booking-receipt-actions .fcal_cal_items a { width: 32px; height: 32px; }
  body.booking-embedded .booking-receipt-actions .fcal_to_calendars > span { max-width: 88px; font-size: 12px; }
  body.booking-embedded .booking-receipt-layout .booking-receipt-manage-links a { font-size: 13px; }
  .booking-receipt-manage-links { gap: 2px; }
}
@media (max-height: 650px) and (max-width: 700px) {
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header { padding-block: 16px; }
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header p { margin-top: 8px; }
  .booking-receipt-main { margin-block: 14px; gap: 12px; }
  .booking-receipt-date { padding-block: 12px; }
  .booking-receipt-day { font-size: 44px; }
  .booking-receipt-actions { padding-block: 14px; gap: 8px; }
}
@media (max-height: 530px) and (min-width: 701px) {
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header { padding-block: 16px; }
  .booking-receipt-main { margin-block: 16px; }
  .booking-receipt-date { padding: 16px 24px; gap: 8px; }
  .booking-receipt-day { font-size: 68px; }
  .booking-receipt-time { padding-top: 8px; }
  .booking-receipt-actions { padding-block: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  body.booking-embedded .booking-receipt-layout .booking-receipt-manage-links a { transition: none; }
}

/* Receipt titles share the form's 40px leading control, 10px gap and first
   heading row. Subtitles occupy their own row without moving the title. */
body.booking-embedded .booking-receipt-layout .fcal_confirm_header { grid-template-columns: 40px minmax(0, 1fr); grid-template-rows: minmax(51px, auto) auto; column-gap: 10px; margin-inline: 24px; padding: 12px 44px 12px 0; }
body.booking-embedded .booking-receipt-layout .fcal_confirm_header :is(h1, h2) { font-size: 32px; line-height: 1.4; }
body.booking-embedded .booking-receipt-layout .fcal_check_holder { grid-row: 1; align-self: center; width: 40px; height: 40px; }
@media (max-width: 800px) {
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header { grid-template-rows: minmax(44px, auto) auto; margin-inline: 22px; padding-right: 46px; }
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header :is(h1, h2) { font-size: clamp(20px, 6vw, 28px); }
  body.booking-embedded .booking-receipt-layout .fcal_confirm_header p { grid-column: 1 / -1; margin-top: 11px; font-size: 14px; }
}

/* Native confirmation/cancellation and reschedule pages use the same palette. */
.booking-confirmation-page { background: var(--color-paper); color: var(--color-ink); font-family: var(--font-ui); }
.booking-confirmation-page .confirmation_page { --fcal_primary_color: var(--color-accent); --fcal_primary_bg: var(--color-paper); --fcal_dark: #14272e; background: var(--color-paper); min-height: 100dvh; padding: 32px 16px; }
.booking-confirmation-page .fcal_conf_wrap { background: var(--color-paper); border: var(--border-surface); border-radius: var(--radius-card); max-width: 760px; margin: auto; }
.booking-confirmation-page .fcal_confirmation { color: var(--color-ink); }
.booking-confirmation-page .fcal_confirm_header h1 { font-size: 1.1rem; line-height: 1.5; margin: 1rem 0 0; color: var(--color-ink); font-weight: 500; }
.booking-confirmation-page .fcal_confirm_section_title h2 { font-size: 1rem; line-height: 1.5; margin: 0; font-weight: 700; }
.booking-confirmation-page .fcal_confirm_section_content { overflow-wrap: anywhere; }
.booking-confirmation-page .fcal_btn { border-radius: var(--radius-control); min-height: var(--control-height); }
.booking-confirmation-page .fcal_btn_primary { background: var(--action-fill); color: var(--action-text); border-color: var(--action-fill); }
.calendar_wrap { padding: 28px 16px; background: var(--color-paper); min-height: 100dvh; }
.calendar_wrap .fcal_rescheduling_wrap { max-width: 1000px; margin: 0 auto 24px; }
