.booking-intro { padding-bottom: 48px; }
.booking-intro > p { max-width: 560px; }
.booking-essential { display: grid; grid-template-columns: 1fr 1.2fr; gap: 70px; padding-bottom: 60px; margin-bottom: 45px; border-bottom: 1px solid var(--line, #d9cec1); }
.booking-essential h2 { font-size: clamp(34px, 3.5vw, 46px); margin-top: 18px; }
.booking-essential p { font-size: 13px; line-height: 1.95; margin-top: 20px; }
.booking-essential .text-link { margin-top: 15px; }
.booking-hours { margin-top: 22px; }
.booking-hours table { width: 100%; border-collapse: collapse; text-align: left; table-layout: fixed; font-size: 11px; line-height: 1.7; }
.booking-hours caption { text-align: left; color: var(--burgundy, #733c3a); font-size: 13px; padding-bottom: 14px; }
.booking-hours th, .booking-hours td { padding: 11px 10px 11px 0; border-bottom: 1px solid var(--line, #d9cec1); vertical-align: top; overflow-wrap: anywhere; }
.booking-hours thead th { font-weight: 600; color: #65574f; }
.booking-hours th:first-child { width: 24%; }
.booking-hours th:nth-child(2) { width: 27%; }
.booking-hours tbody th { font-weight: 400; color: var(--burgundy, #733c3a); }
.booking-policy .booking-hours { margin-top: 28px; }
.booking-policy .button { margin-top: 28px; }
.footer-bottom { flex-wrap: wrap; }
.booking-calendar-placeholder[hidden] { display: none; }
.booking-layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 54px; align-items: start; padding-bottom: 100px; }
.booking-room { min-width: 0; padding: 35px; background: var(--paper, #fdfbf7); border: 1px solid var(--line, #d9cec1); }
.booking-brand-strip { height: 160px; margin-bottom: 32px; background: #431214 url('/assets/laque-drive-wordmark.png') center / cover no-repeat; }
.booking-room__heading { display: flex; justify-content: space-between; align-items: start; gap: 25px; padding-bottom: 28px; }
.booking-room__heading h2 { margin-top: 16px; font-size: clamp(36px, 4vw, 52px); }
.booking-provider { color: #65574f; font-size: 8px; letter-spacing: 1.5px; text-align: right; padding-top: 3px; }
.booking-calendar-shell { position: relative; min-height: 510px; border: 1px solid var(--line, #d9cec1); background: var(--cream, #f5f1e9); }
.booking-calendar-placeholder { min-height: 510px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 19px; padding: 45px 32px; text-align: center; }
.booking-calendar-mark { display: flex; width: 66px; height: 66px; padding: 17px; border: 1px solid #bea391; border-radius: 50%; color: var(--burgundy, #733c3a); }
.booking-calendar-mark svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.1; }
.booking-calendar-placeholder h3 { font-size: 32px; letter-spacing: -1px; }
.booking-calendar-placeholder > p, .booking-calendar-placeholder noscript p { color: #65574f; font-size: 13px; line-height: 1.9; max-width: 330px; }
.booking-load { margin-top: 8px; min-height: 52px; font-size: 12px; }
.booking-calendar-frame { display: block; width: 100%; height: clamp(650px, 80dvh, 900px); border: 0; background: white; }
.booking-status { color: #65574f; font-size: 11px; line-height: 1.8; margin-top: 18px; min-height: 0; }
.booking-status:empty { display: none; }
.booking-room__fallback { padding-top: 18px; }
.booking-fallback { font-size: 12px; }
.booking-before { padding-top: 5px; }
.booking-before h2 { margin-top: 18px; font-size: 38px; letter-spacing: -1px; }
.booking-before p { font-size: 12px; line-height: 1.95; color: #65574f; margin-top: 22px; }
.booking-before__privacy { margin-top: 30px; padding-top: 25px; border-top: 1px solid var(--line, #d9cec1); }
.booking-before__privacy p { margin-top: 16px; }
.booking-privacy-link { font-size: 11px; gap: 14px; margin-top: 12px; }
.booking-unavailable { padding-bottom: 100px; }
.booking-unavailable__card { padding: 46px; border: 1px solid var(--line, #d9cec1); background: var(--paper, #fdfbf7); }
.booking-unavailable h2 { margin-top: 20px; font-size: 46px; }
.booking-unavailable p { margin: 22px 0; font-size: 13px; max-width: 450px; }
.booking-privacy-note a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1050px) {
  .booking-layout { grid-template-columns: minmax(0, 1fr) 210px; gap: 28px; }
  .booking-room { padding: 26px; }
  .booking-provider { max-width: 90px; }
}
@media (max-width: 800px) {
  .booking-essential { grid-template-columns: 1fr; gap: 36px; padding-bottom: 38px; margin-bottom: 35px; }
  .booking-layout { display: block; padding-bottom: 65px; }
  .booking-before { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; margin-top: 38px; padding-top: 30px; border-top: 1px solid var(--line, #d9cec1); }
  .booking-before > .eyebrow, .booking-before > h2 { grid-column: 1 / -1; }
  .booking-before__privacy { grid-column: 1 / -1; }
}
@media (max-width: 540px) {
  .booking-intro { padding-bottom: 32px; }
  .booking-room { padding: 21px 17px; }
  .booking-brand-strip { height: 100px; margin-bottom: 25px; }
  .booking-room__heading { display: block; padding-bottom: 23px; }
  .booking-room__heading h2 { font-size: 39px; }
  .booking-provider { display: block; max-width: none; text-align: left; margin-top: 19px; }
  .booking-calendar-placeholder { padding: 36px 19px; min-height: 430px; }
  .booking-calendar-shell { min-height: 430px; }
  .booking-calendar-placeholder h3 { font-size: 29px; }
  .booking-load { width: 100%; gap: 15px; padding-inline: 16px; justify-content: center; font-size: 11px; }
  .booking-calendar-frame { height: 760px; }
  .booking-fallback { font-size: 11px; gap: 14px; }
  .booking-before { display: block; }
  .booking-before h2 { font-size: 37px; }
  .booking-unavailable { padding-bottom: 55px; }
  .booking-unavailable__card { padding: 30px 24px; }
  .booking-unavailable h2 { font-size: 37px; }
}

/* Appointment links open the external calendar directly. */
.booking-intro > .booking-direct-link { margin-top: 26px; }
.booking-intro > .small-note { margin-top: 12px; font-size: 12px; }
.booking-direct { padding: 36px 28px; border-top: 1px solid var(--line, #d9cec1); }
.booking-direct h3 { font-size: 32px; }
.booking-direct p { margin: 18px 0 24px; max-width: 410px; font-size: 13px; line-height: 1.9; color: #65574f; }
.footer-booking { display: inline-flex; align-items: center; gap: 10px; }
.footer-booking svg { width: 16px; height: 16px; fill: none; stroke: currentColor; }
@media (max-width: 540px) {
  .booking-direct { padding: 26px 0 4px; }
  .booking-direct-link { width: 100%; justify-content: space-between; }
}
