.booking [hidden] { display: none !important; }
.booking { min-width: 0; }
.booking__intro { margin-bottom: 24px; }
.booking__intro h3 { font-family: var(--f-display); font-size: 1.75rem; margin: 8px 0; }
.booking__intro p, .booking__help, .booking__status { color: #b8bacb; font-size: .875rem; }
.booking__step { color: #9daaff; font-size: .7rem; letter-spacing: .12em; font-weight: 700; }
.booking__status { margin: 16px 0; min-height: 24px; }
.booking-error { color: #ffb6b6; }
.booking__help { margin-top: 12px; }
.booking__help a { color: #b7c1ff; text-decoration: underline; }
.booking__honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.booking__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 20px 0 12px; }
.booking__bar button, .booking__back { min-height: 44px; padding: 8px 14px; color: #dddfff; border: 1px solid #3a3d55; border-radius: 10px; }
.booking__week, .booking__days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; text-align: center; }
.booking__week { color: #b8bacb; font-size: .75rem; margin-bottom: 8px; }
.booking__days button { min-height: 44px; border-radius: 10px; color: #edf0ff; background: #181b32; border: 1px solid transparent; }
.booking button:disabled { opacity: .4; cursor: not-allowed; }
.booking__days button[aria-pressed=true], .booking__times button[aria-pressed=true] { background: #2840e8; color: white; border-color: #8fa0ff; }
.booking button:focus-visible, .booking select:focus-visible { outline: 2px solid #b7c1ff; outline-offset: 3px; }
.booking__times { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; max-height: 272px; overflow-y: auto; padding: 4px; margin: 12px -4px; }
.booking__times button { min-height: 44px; padding: 8px 4px; color: #e3e7ff; border: 1px solid #3a426b; border-radius: 10px; font-size: .85rem; }
.booking__date { font-size: 1rem; margin-top: 24px; }
.booking__selection { margin: 18px 0; font-size: .9rem; color: #e3e7ff; }
.booking__success { padding: 28px; border: 1px solid #35705a; border-radius: 18px; background: #0c211a; }
.booking__success h3 { font-size: 1.5rem; }
.booking__success p { margin: 16px 0; color: #d1e8db; }
.booking__success a { display: inline-flex; margin-top: 12px; }
@media(max-width:420px) { .booking__times { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Dedicated booking page */
.booking-page__nav { max-width:1200px; margin:auto; padding:28px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.booking-page__nav a { color:var(--c-white); font-size:14px; }
.booking-page__main { padding-top:56px; min-height:75vh; }
.booking-page__footer { padding:32px 20px; text-align:center; color:rgba(255,255,255,.7); font-size:13px; }
.booking-page__footer a { color:inherit; }
@media(max-width:600px) { .booking-page__nav { padding:24px 20px; gap:16px; } .booking-page__nav img { width:141px; height:27px; } .booking-page__main { padding-top:28px; } .booking-page .cta-final__inner { gap:32px; } .booking-page .cta-final__title { font-size:42px; } }

/* Calendar and a focused, scrollable time list. */
.booking-page.is-scheduling .cta-final__inner { grid-template-columns:minmax(0,1fr); max-width:1080px; }
.booking-page.is-scheduling .cta-final__left { display:none; }
.booking-page.is-scheduling .booking__intro p { display:none; }
.booking__layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(220px,1fr); margin-top:24px; border:1px solid #30334a; border-radius:20px; background:#0c0d17; }
.booking__calendar { padding:28px; min-width:0; }
.booking__slots-panel { padding:28px; border-left:1px solid #30334a; min-width:0; }
.booking__slots-panel .booking__date { margin-top:0; }
.booking__layout .booking__times { grid-template-columns:1fr; max-height:292px; overscroll-behavior:contain; scrollbar-gutter:stable; scrollbar-width:thin; scrollbar-color:#6876c6 #15172a; }
.booking__layout .booking__times button { min-height:48px; font-size:1rem; font-weight:600; }
.booking__layout .booking__times button:hover:not(:disabled) { border-color:#9daaff; background:#1c244b; }
.booking__layout .booking__times button[aria-pressed=true] { background:#2840e8; border-color:#b7c1ff; }
.booking__calendar .booking__days button { border-radius:50%; aspect-ratio:1; }
.booking__calendar .booking__days button:not(:disabled):hover { outline:1px solid #9daaff; }
.booking__layout .booking__selection:empty { display:none; }
@media(max-width:640px) {
 .booking__layout { grid-template-columns:minmax(0,1fr); }
 .booking__calendar,.booking__slots-panel { padding:20px; }
 .booking__slots-panel { border-left:0; border-top:1px solid #30334a; }
 .booking__calendar .booking__days button { min-height:36px; }
 .booking__layout .booking__times { max-height:240px; }
}
