/* Date/time selection: one month, one clear selection, one next action. */
#book { padding-top: 9rem !important; }
.bk-shell { max-width: 960px; scroll-margin-top: 112px; }
.bk-date-step .bk-card { padding: 2rem; }
.bk-dt { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
.bk-dt-cal { max-height: none; overflow: visible; padding: 0; min-width: 0; }
.bk-dt-side { min-width: 0; padding-left: 2rem; border-left: 1px solid rgba(255,255,255,.1); }
.bk-cal-heading { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: 1rem; }
.bk-cal-month-name { margin: 0; font-size: 1rem; }
.bk-cal-controls { display: flex; gap: .35rem; }
.bk-cal-controls button { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.15); border-radius: 12px; background: rgba(255,255,255,.04); color: #fff; font-size: 1.1rem; }
.bk-cal-controls button:disabled { opacity: .25; cursor: default !important; }
.bk-cal-controls button:hover:not(:disabled) { background: rgba(56,189,248,.15); border-color: #38bdf8; }
.bk-cal-grid { gap: .3rem .1rem; grid-template-rows: 20px; grid-auto-rows: minmax(44px, auto); }
.bk-cal-dow { align-self: center; padding: 0; color: #98a6b8; }
.bk-cal-day { min-height: 44px; }
.bk-cal-num { width: 36px; height: 36px; }
.bk-cal-legend { margin-top: .9rem; font-size: .7rem; }
.bk-slots-head { display: flex; flex-direction: column; gap: .4rem; margin: .1rem 0 1.2rem; }
.bk-slots-head > span { font-size: .75rem; font-weight: 500; color: #98a6b8; }
.bk-slots-head > strong { color: #fff; font-size: 1rem; line-height: 1.4; }
.bk-dt-times .bk-slots-wrap { max-height: none; overflow: visible; }
.bk-dt-times .bk-slots { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.bk-slot { min-height: 48px; }
.bk-slot.sel { box-shadow: 0 0 0 2px #111827, 0 0 0 3px #38bdf8; }
.bk-fastest { background: linear-gradient(110deg, rgba(125,76,141,.22), rgba(11,130,197,.16)); border: 1px solid rgba(56,189,248,.3); box-shadow: none; margin-bottom: 1.8rem; }
.bk-fastest:hover { box-shadow: none; border-color: #38bdf8; }
.bk-fastest-txt { gap: .3rem; }
.bk-fastest-txt strong { font-size: .85rem; }
.bk-fastest-txt > span { font-size: .9rem; }
.bk-fastest-go { color: #7dd3fc; }
/* Keep the waitlist visible before the calendar, with one explicit action. */
.bk-waitlist { display: grid; grid-template-columns: minmax(0,1fr) minmax(210px,.7fr); align-items: center; gap: 1.25rem; margin: 0 0 1.8rem; padding: 1.15rem 1.25rem; border: 1px solid rgba(74,222,128,.4); border-inline-start: 3px solid #4ade80; border-radius: 16px; background: linear-gradient(115deg,rgba(37,211,102,.11),rgba(18,140,126,.07)); text-align: start; }
.bk-waitlist-copy, .bk-waitlist-action { min-width: 0; }
.bk-waitlist h3 { margin: 0 0 .45rem; color: #fff; font-size: 1rem; font-weight: 700; line-height: 1.4; }
.bk-waitlist p { margin: 0; color: #c4d5cd; font-size: .82rem; line-height: 1.55; }
.bk-waitlist p.bk-waitlist-busy { color: #b7f7ce; margin-bottom: .35rem; font-weight: 600; }
.bk-waitlist-link { display: flex; align-items: center; justify-content: center; gap: .6rem; width: 100%; min-height: 48px; padding: .75rem .9rem; border-radius: 11px; background: #4ade80; color: #092b19; font-size: .85rem; font-weight: 700; line-height: 1.4; text-align: center; text-decoration: none; transition: background-color .15s ease; }
.bk-waitlist-link:hover { background: #86efac; }
.bk-waitlist-link:focus-visible { outline: 2px solid #bbf7d0; outline-offset: 4px; }
.bk-waitlist-link i { font-size: 1.25rem; flex-shrink: 0; }
.bk-waitlist-link i:last-child { font-size: 1rem; }
.bk-waitlist-action p { margin-top: .5rem; font-size: .75rem; color: #a8c1b3; line-height: 1.5; }
@media (max-width: 700px) {
  .bk-waitlist { grid-template-columns: minmax(0,1fr); gap: .85rem; margin-bottom: 1.2rem; padding: 1rem; }
  .bk-waitlist h3 { font-size: .95rem; }
}
.bk-dt-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.12); }
.bk-selection { flex: 1; display: flex; flex-direction: column; gap: .3rem; min-height: 44px; }
.bk-selection strong { color: #fff; font-size: .95rem; }
.bk-selection > span { color: #98a6b8; font-size: .75rem; line-height: 1.4; }
.bk-dt-actions .bk-nav { margin-top: 0; flex-shrink: 0; }
.bk-dt-actions .bk-btn:disabled { opacity: .45; box-shadow: none; cursor: not-allowed !important; transform: none; }
.bk-date-step button:focus-visible, .bk-date-step a:focus-visible { outline: 2px solid #7dd3fc; outline-offset: 4px; }
@media (max-width: 700px) {
  #book { padding-top: 7.5rem !important; }
  .bk-shell { scroll-margin-top: 124px; }
  .bk-date-step .bk-card { padding: 1.15rem; border-radius: 18px; }
  .bk-dt { grid-template-columns: minmax(0, 1fr); gap: 1.4rem; }
  .bk-dt-side { padding: 1.2rem 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.1); }
  .bk-cal-heading { margin-bottom: .3rem; }
  .bk-cal-grid { gap: .15rem .1rem; }
  .bk-fastest { display: grid; grid-template-columns: 32px 1fr; gap: .6rem; padding: .85rem; margin-bottom: 1.1rem; }
  .bk-fastest-ic { width: 32px; height: 32px; font-size: 1.1rem; }
  .bk-fastest-go { grid-column: 2; font-size: .8rem; margin: 0; }
  .bk-fastest-txt strong { font-size: .8rem; }
  .bk-fastest-txt > span { font-size: .8rem; }
  body.bk-booking-active { padding-bottom: calc(var(--bk-action-height, 136px) + 24px); }
  .bk-has-actions { padding-bottom: 0; }
  .bk-has-actions button, .bk-has-actions a, .bk-has-actions input, .bk-has-actions select, .bk-has-actions textarea { scroll-margin-bottom: calc(var(--bk-action-height, 136px) + 24px); }
  .bk-dt-actions { display: block; position: fixed; bottom: 0; left: 0; right: 0; z-index: 55; margin: 0; padding: .85rem 1rem max(.85rem, env(safe-area-inset-bottom)); background: #101a2a; box-shadow: 0 -8px 30px rgba(0,0,0,.3); }
  .bk-dt-actions .bk-selection { min-height: 0; max-width: 620px; margin: auto; }
  .bk-selection strong { font-size: .85rem; }
  .bk-selection > span { font-size: .68rem; }
  .bk-dt-actions .bk-nav { margin: .65rem auto 0; gap: .5rem; max-width: 620px; }
  .bk-dt-actions .bk-btn { padding: .75rem 1rem; font-size: .8rem; justify-content: center; min-height: 44px; }
  .bk-dt-actions .bk-btn-primary { flex: 1; }
  body.bk-booking-active #ff-chat-btn, body.bk-booking-active #a11y-toggle { bottom: calc(var(--bk-action-height, 136px) + 14px) !important; }
  html.embed .bk-dt-actions { position: sticky; margin: 1rem -1rem -1rem; border-radius: 0 0 18px 18px; }
  html.embed body.bk-booking-active, html.embed .bk-has-actions { padding-bottom: 0; }
}

.bk-lang-btn { display: inline-flex; align-items: center; gap: 5px; }
.bk-lang-btn img { flex-shrink: 0; border-radius: 2px; object-fit: cover; }
@media (min-width: 701px) { .bk-selection { max-width: 360px; } }
@media (max-width: 700px) { body.bk-booking-active .bk-toast { bottom: calc(var(--bk-action-height, 136px) + 24px); max-width: calc(100vw - 32px); } }

/* Shared page rhythm and readable, actionable progress. */
.bk-pagehead { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.bk-pagehead h1 { min-width: 0; margin: 0; }
.bk-lang { margin-bottom: 1rem; gap: .4rem; }
.bk-lang-btn { min-height: 36px; padding: 6px 10px; }
.bk-stepper { margin: 0 0 1.4rem; }
.bk-progress-caption { display: flex; gap: .6rem; align-items: baseline; color: #98a6b8; font-size: .75rem; margin-bottom: .8rem; }
.bk-progress-caption strong { color: #e2e8f0; font-weight: 600; }
.bk-progress { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .4rem; margin: 0; padding: .45rem; border-radius: 16px; border: 1px solid rgba(255,255,255,.09); background: #0f1724; }
.bk-progress::before, .bk-progress::after, .bk-step::before, .bk-step::after { display: none; }
.bk-step { min-width: 0; padding: 0; }
.bk-step-link { width: 100%; min-height: 64px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4rem; padding: .5rem .2rem; border-radius: 11px; background: transparent; color: #8f9caf; }
button.bk-step-link:hover { background: rgba(56,189,248,.08); color: #fff; }
.bk-step.active .bk-step-link { background: rgba(11,130,197,.15); color: #fff; }
.bk-step-label { display: block; font-size: .7rem; line-height: 1.3; color: inherit; }
.bk-step-dot { width: 26px; height: 26px; font-size: .75rem; margin: 0; flex-shrink: 0; }
.bk-step.active .bk-step-dot { box-shadow: none; }
.bk-step.done .bk-step-dot { color: #7dd3fc; background: rgba(56,189,248,.12); border-color: rgba(56,189,248,.3); }
.bk-card, .bk-date-step .bk-card { padding: 2rem; border-color: rgba(255,255,255,.1); background: #101a2a; }
.bk-head h2 { font-size: 1.65rem; letter-spacing: -.025em; line-height: 1.2; text-wrap: balance; }
.bk-head p { color: #a9b6c8; line-height: 1.6; margin: .65rem 0 1.5rem; text-wrap: pretty; }
.bk-option { background: #0d1521; border-color: rgba(255,255,255,.13); padding: 1.1rem; gap: .4rem; }
.bk-option:hover { transform: none; }
.bk-option-title { text-wrap: pretty; }
.bk-option-desc { color: #a5b2c3; line-height: 1.5; }
.bk-option.sel { border-color: #38bdf8; background: rgba(11,130,197,.12); box-shadow: 0 0 0 1px #38bdf8; }
.bk-type-options { gap: .8rem; }
.bk-type-options .bk-option { padding: 1.2rem; }
.bk-type-options .bk-option-desc { line-height: 1.5; }
.bk-option-person .bk-avatar { outline: 1px solid rgba(255,255,255,.14); outline-offset: -1px; }
.bk-note-busy { animation: none; border-color: rgba(56,189,248,.25); background: rgba(11,130,197,.08); }
.bk-note-busy i { color: #7dd3fc; }
.bk-form { gap: 1rem; }
.bk-form input:not([type="checkbox"]), .bk-form select { min-height: 48px; }
.bk-form input, .bk-form select, .bk-form textarea { scroll-margin-top: 120px; }
.bk-sum-row { gap: 1rem; }
.bk-sum-row strong { overflow-wrap: anywhere; }
.bk-slot, .bk-cal-num, .bk-selection { font-variant-numeric: tabular-nums; }
.bk-has-actions button:focus-visible, .bk-has-actions a:focus-visible { outline: 2px solid #7dd3fc; outline-offset: 4px; }
.bk-dt-actions .bk-btn { white-space: normal; text-align: center; }
@media (max-width: 700px) {
  .bk-pagehead { margin-bottom: .6rem; gap: .5rem; }
  .bk-pagehead h1 { font-size: 1.5rem; line-height: 1.2; }
  .bk-card, .bk-date-step .bk-card { padding: 1rem; border-radius: 18px; }
  .bk-head h2 { font-size: 1.3rem; }
  .bk-head p { font-size: .87rem; line-height: 1.45; margin: .45rem 0 .85rem; }
  .bk-stepper { margin-bottom: .75rem; }
  .bk-stepper .bk-progress-caption { display: none; }
  .bk-progress { gap: .1rem; padding: .2rem; border-radius: 12px; }
  .bk-step-link { min-height: 44px; gap: 2px; padding: 3px 1px; }
  .bk-step-dot { width: 20px; height: 20px; font-size: .65rem; }
  .bk-step-label { font-size: .6875rem; line-height: 1.2; min-height: 0; display: block; text-align: center; }
  .bk-choice2 { gap: .55rem; }
  .bk-choice2 .bk-option { padding: .85rem .75rem; gap: .3rem; }
  .bk-choice2 .bk-option-ic { width: 36px; height: 36px; font-size: 1.3rem; margin-bottom: .15rem; }
  .bk-type-options { grid-template-columns: 1fr; gap: .55rem; }
  .bk-type-options .bk-option { display: grid; grid-template-columns: 34px minmax(0,1fr); column-gap: .65rem; padding: .8rem; }
  .bk-type-options .bk-option-ic { grid-column: 1; grid-row: 1 / span 3; width: 34px; height: 34px; margin: 0; }
  .bk-type-options .bk-option-title, .bk-type-options .bk-option-desc, .bk-type-options .bk-option-meta { grid-column: 2; }
  .bk-option-person { padding: .9rem; }
  .bk-type-options .bk-option-desc { font-size: .78rem; }
  .bk-dt-actions .bk-selection strong { overflow-wrap: anywhere; }
  .bk-dt-actions .bk-selection > span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .bk-lang-btn { min-height: 40px; }
}
@media (max-width: 400px) {
  .bk-choice2 .bk-option { display: grid; grid-template-columns: 36px minmax(0,1fr); column-gap: .65rem; align-items: center; text-align: left; }
  .bk-choice2 .bk-option-ic { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
  .bk-choice2 .bk-option-title, .bk-choice2 .bk-option-desc { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) {
  .bk-option, .bk-btn, .bk-fastest, .bk-wa, .bk-waitlist-link { transition: none; }
}

.bk-tools { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.bk-tools .bk-lang { margin: 0 0 0 auto; }
#bk-accessibility-slot { flex-shrink: 0; }
#bk-accessibility-slot #a11y-widget { position: relative; }
#bk-accessibility-slot #a11y-toggle { position: static !important; inset: auto !important; width: 44px !important; height: 44px !important; font-size: 20px !important; border-radius: 12px !important; background: #142336; border: 1px solid rgba(56,189,248,.35); box-shadow: none !important; transform: none !important; }
#bk-accessibility-slot #a11y-panel { position: absolute !important; top: calc(100% + 8px) !important; right: 0 !important; left: auto !important; bottom: auto !important; max-height: min(440px, 60vh); overflow-y: auto; width: min(280px, calc(100vw - 48px)) !important; padding: 14px !important; }
#bk-accessibility-slot #a11y-toggle { opacity: 1 !important; pointer-events: auto !important; }
.bk-progress-caption { width: fit-content; padding: .35rem .6rem; border-radius: 8px; background: #0f1724; color: #a9b6c8; }

/* The mobile language bar stays visible above the shared navigation. */
@media (max-width: 1199px), (pointer: coarse) {
  html:not(.embed) #book { padding-top: 7.5rem !important; }
  html:not(.embed) .bk-shell,
  html:not(.embed) #booking-widget,
  html:not(.embed) .bk-form input,
  html:not(.embed) .bk-form select,
  html:not(.embed) .bk-form textarea { scroll-margin-top: 120px; }
}

/* One-shot interaction motion, never tied to the decorative scroll-pause policy. */
@keyframes bk-content-enter {
  from { opacity: .35; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
@keyframes bk-summary-enter {
  from { opacity: .55; }
  to { opacity: 1; }
}
.bk-enter { animation: bk-content-enter 220ms cubic-bezier(.2,.7,.2,1); }
.bk-enter-compact { animation-duration: 180ms; }
.bk-soft-fade { animation: bk-summary-enter 160ms ease-out; }
.bk-option, .bk-slot, .bk-btn {
  transition: transform 140ms ease-out, background-color 180ms ease, border-color 180ms ease;
}
.bk-option:active, .bk-slot:active, .bk-btn:active:not(:disabled) { transform: scale(.985); }
html.a11y-animations .bk-enter, html.a11y-animations .bk-soft-fade { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  .bk-enter, .bk-soft-fade { animation: none; }
  .bk-option, .bk-slot, .bk-btn { transition: none; }
  .bk-option:active, .bk-slot:active, .bk-btn:active:not(:disabled) { transform: none; }
}
