/* The surrounding page stays local; SimplyBook owns the calendar and checkout. */
.booking-grid { grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: clamp(40px, 5vw, 72px); }
.booking-copy { min-width: 0; }
.booking-scheduler { border-top: 1px solid var(--line); padding-top: 30px; }
.schedule-heading h2 { font-size: clamp(26px, 2.5vw, 33px); font-weight: 400; letter-spacing: -.04em; line-height: 1.3; margin: 12px 0 24px; }
.booking-steps { display: flex; flex-wrap: wrap; gap: 16px 26px; list-style: none; padding: 0 0 26px; margin: 0; font: 13px/1.6 var(--font-ui); color: var(--text); }
.booking-steps li { display: flex; align-items: baseline; gap: 9px; }
.booking-steps li span { font-size: 11px; color: var(--olive); }
.booking-notice { border: 1px solid var(--line); padding: clamp(22px, 3vw, 36px); background: #eeeee6; }
.booking-notice p:first-child { font-size: 22px; line-height: 1.4; margin: 0 0 12px; letter-spacing: -.025em; }
.booking-notice p + p { font: 14px/1.7 var(--font-ui); color: var(--muted); max-width: 47ch; }
.booking-widget { width: 100%; min-width: 0; }
.booking-widget iframe { display: block; width: 100%; min-height: 620px; border: 0; }
.booking-payment-note { color: var(--muted); font: 13px/1.7 var(--font-ui); margin: 22px 0 0; }
.booking-data-note { color: var(--muted); font: 12px/1.7 var(--font-ui); margin: 0 0 24px; max-width: 75ch; }
.booking-data-note a { text-underline-offset: 3px; }
.booking-tools { display: flex; align-items: baseline; flex-wrap: wrap; gap: 16px 24px; margin-top: 22px; font: 13px/1.7 var(--font-ui); }
.booking-tools a { color: var(--text); padding-block: 8px; }
.booking-tools a span { display: inline-block; margin-left: 5px; color: var(--olive); }
.booking-tools button { border: 1px solid var(--line); padding: 10px 16px; background: transparent; color: var(--text); cursor: pointer; font: inherit; }
.booking-tools button:hover { border-color: var(--olive); }
.booking-noscript { padding-block: 20px; font: 14px/1.6 var(--font-ui); }
@media (max-width: 1050px) {
  .booking-grid { grid-template-columns: minmax(0, .45fr) minmax(0, 1fr); gap: 35px; }
}
@media (max-width: 900px) {
  .booking-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .portrait-wrap { position: static; display: flex; align-items: center; gap: 25px; }
  .portrait { width: 125px; flex: 0 0 125px; }
  .signature { border: 0; margin: 0; padding: 0; font-size: 12px; }
}
@media (max-width: 430px) {
  .portrait { width: 100px; flex-basis: 100px; }
  .booking-steps { flex-direction: column; gap: 10px; }
  .booking-scheduler { padding-top: 24px; }
}
