/* Scoped, high-specificity rules: legacy theme CSS must not restyle booking controls. */
#tb-booking.tb-booking { --tb-ink:#151515 !important; --tb-paper:#fff !important; --tb-soft:#f4f4f2 !important; --tb-line:#dededb !important; color:var(--tb-ink) !important; background:var(--tb-paper) !important; font:16px/1.5 Arial,Helvetica,sans-serif !important; text-align:left !important; color-scheme:light !important; width:min(1280px,calc(100vw - 48px)) !important; max-width:none !important; margin:24px 0 24px calc(50% - min(640px,calc(50vw - 24px))) !important; padding:0 0 24px !important; position:relative !important; isolation:isolate !important; }
#tb-booking.tb-booking *, #tb-booking.tb-booking *::before, #tb-booking.tb-booking *::after { box-sizing:border-box !important; }
#tb-booking.tb-booking :where(h2,h3,h4,p,ul,li,dl,dt,dd,form,section,aside,nav,header,footer,figure) { margin:0 !important; padding:0 !important; color:inherit !important; background:none !important; border:0 !important; text-align:inherit !important; max-width:none !important; text-transform:none !important; letter-spacing:normal !important; float:none !important; }
#tb-booking.tb-booking :where(h2,h3,h4) { font-family:Arial,Helvetica,sans-serif !important; font-weight:600 !important; line-height:1.2 !important; }
#tb-booking.tb-booking :where(p,li,span,div,label,dt,dd) { font-family:inherit !important; }
#tb-booking.tb-booking :where(button,input,textarea,a) { font:inherit !important; letter-spacing:normal !important; text-transform:none !important; box-shadow:none !important; text-decoration:none !important; }
#tb-booking.tb-booking :where(button,a) { cursor:pointer !important; touch-action:manipulation !important; }
#tb-booking.tb-booking a { color:inherit !important; }
#tb-booking.tb-booking button { appearance:none !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:8px !important; min-height:44px !important; width:auto !important; height:auto !important; padding:10px 16px !important; margin:0 !important; border:1px solid var(--tb-line) !important; border-radius:4px !important; color:var(--tb-ink) !important; background:var(--tb-paper) !important; font-weight:600 !important; position:static !important; transition:background .18s,color .18s,border-color .18s !important; }
#tb-booking.tb-booking button:hover { border-color:var(--tb-ink) !important; background:var(--tb-soft) !important; }
#tb-booking.tb-booking :where(button,a,input,textarea):focus-visible { outline:2px solid currentColor !important; outline-offset:4px !important; }
#tb-booking.tb-booking button:disabled { opacity:.4 !important; cursor:not-allowed !important; }
#tb-booking.tb-booking input, #tb-booking.tb-booking textarea { appearance:none !important; display:block !important; width:100% !important; max-width:100% !important; min-height:54px !important; margin:8px 0 0 !important; padding:14px 16px !important; color:var(--tb-ink) !important; background:#fff !important; border:1px solid #c7c7c4 !important; border-radius:4px !important; line-height:1.5 !important; font-size:16px !important; }
#tb-booking.tb-booking input:focus, #tb-booking.tb-booking textarea:focus { border-color:#151515 !important; }
#tb-booking.tb-booking input::placeholder, #tb-booking.tb-booking textarea::placeholder { color:#787874 !important; opacity:1 !important; }
#tb-booking.tb-booking textarea { resize:vertical !important; }
#tb-booking.tb-booking [hidden][hidden] { display:none !important; }
#tb-booking.tb-booking .tb-masthead { display:flex !important; justify-content:space-between !important; align-items:center !important; padding-bottom:20px !important; border-bottom:1px solid var(--tb-ink) !important; }
#tb-booking.tb-booking .tb-brand { display:flex !important; align-items:center !important; gap:16px !important; font-size:19px !important; letter-spacing:.06em !important; font-weight:700 !important; }
#tb-booking.tb-booking .tb-brand img { display:block !important; width:72px !important; height:72px !important; min-width:72px !important; object-fit:cover !important; border-radius:0 !important; }
#tb-booking.tb-booking .tb-brand-note { display:block !important; margin-top:5px !important; font-size:11px !important; letter-spacing:.24em !important; font-weight:400 !important; color:#666 !important; }
#tb-booking.tb-booking .tb-help { display:flex !important; align-items:center !important; gap:10px !important; min-height:44px !important; font-size:15px !important; }
#tb-booking.tb-booking .tb-help > span { font-size:25px !important; }
#tb-booking.tb-booking .tb-progress { display:flex !important; align-items:center !important; gap:0 !important; margin:26px 0 0 !important; width:100% !important; max-width:720px !important; }
#tb-booking.tb-booking .tb-step { display:flex !important; align-items:center !important; flex:1 !important; gap:9px !important; color:#73736e !important; font-size:14px !important; white-space:nowrap !important; }
#tb-booking.tb-booking .tb-step::after { content:'' !important; height:1px !important; background:var(--tb-line) !important; flex:1 !important; margin:0 16px 0 6px !important; }
#tb-booking.tb-booking .tb-step:last-child { flex:0 !important; }
#tb-booking.tb-booking .tb-step:last-child::after { display:none !important; }
#tb-booking.tb-booking .tb-step-number { display:inline-flex !important; align-items:center !important; justify-content:center !important; width:30px !important; height:30px !important; border:1px solid var(--tb-line) !important; border-radius:50% !important; font-size:11px !important; }
#tb-booking.tb-booking .tb-current { color:var(--tb-ink) !important; font-weight:700 !important; }
#tb-booking.tb-booking .tb-current .tb-step-number { background:var(--tb-ink) !important; color:#fff !important; border-color:var(--tb-ink) !important; }
#tb-booking.tb-booking .tb-done { color:var(--tb-ink) !important; }
#tb-booking.tb-booking .tb-hero { display:flex !important; justify-content:space-between !important; align-items:center !important; gap:24px !important; padding:42px 0 36px !important; }
#tb-booking.tb-booking .tb-eyebrow { font-size:11px !important; letter-spacing:.18em !important; font-weight:600 !important; line-height:1.6 !important; }
#tb-booking.tb-booking .tb-hero h2 { font-size:clamp(42px,5.8vw,76px) !important; letter-spacing:-.065em !important; font-weight:500 !important; margin:12px 0 16px !important; line-height:1.04 !important; }
#tb-booking.tb-booking .tb-hero h2 em { display:block !important; font-family:Georgia,'Times New Roman',serif !important; font-style:italic !important; font-weight:400 !important; letter-spacing:-.055em !important; }
#tb-booking.tb-booking .tb-intro { color:#63635f !important; font-size:16px !important; line-height:1.6 !important; }
#tb-booking.tb-booking .tb-hero-number { font-size:150px !important; font-weight:400 !important; line-height:1 !important; letter-spacing:-.08em !important; color:transparent !important; -webkit-text-stroke:1px #c4c4bf !important; padding-right:14px !important; }
#tb-booking.tb-booking .tb-layout { display:grid !important; grid-template-columns:minmax(0,1fr) 350px !important; gap:42px !important; align-items:start !important; }
#tb-booking.tb-booking .tb-main { min-width:0 !important; }
#tb-booking.tb-booking .tb-section-head { display:flex !important; justify-content:space-between !important; align-items:center !important; gap:14px !important; margin-bottom:20px !important; }
#tb-booking.tb-booking h3 { font-size:22px !important; letter-spacing:-.03em !important; }
#tb-booking.tb-booking .tb-muted { color:#686863 !important; font-size:14px !important; font-weight:400 !important; }
#tb-booking.tb-booking .tb-categories { display:flex !important; flex-wrap:wrap !important; gap:8px !important; margin-bottom:20px !important; }
#tb-booking.tb-booking .tb-categories button { border-radius:24px !important; font-size:14px !important; font-weight:500 !important; padding:10px 17px !important; }
#tb-booking.tb-booking .tb-categories button[aria-pressed=true], #tb-booking.tb-booking .tb-periods button[aria-pressed=true] { background:var(--tb-ink) !important; color:#fff !important; border-color:var(--tb-ink) !important; }
#tb-booking.tb-booking .tb-search { display:flex !important; align-items:center !important; border-bottom:1px solid var(--tb-line) !important; margin-bottom:28px !important; gap:10px !important; }
#tb-booking.tb-booking .tb-search > span { font:32px Georgia,serif !important; }
#tb-booking.tb-booking .tb-search input { margin:0 !important; border:0 !important; min-height:50px !important; padding:12px 4px !important; background:transparent !important; }
#tb-booking.tb-booking .tb-search input:focus-visible { outline-offset:0 !important; }
#tb-booking.tb-booking .tb-text-button { padding:4px 0 !important; border:0 !important; background:none !important; text-decoration:underline !important; text-underline-offset:4px !important; font-size:14px !important; font-weight:500 !important; }
#tb-booking.tb-booking .tb-list-caption { display:flex !important; justify-content:space-between !important; align-items:center !important; gap:16px !important; margin-bottom:12px !important; }
#tb-booking.tb-booking .tb-list-caption h3 { font-size:16px !important; font-weight:600 !important; }
#tb-booking.tb-booking .tb-service-list { display:grid !important; gap:12px !important; }
#tb-booking.tb-booking .tb-service { border:1px solid var(--tb-line) !important; background:#fff !important; padding:22px 24px !important; border-radius:6px !important; transition:border-color .18s,background .18s !important; }
#tb-booking.tb-booking .tb-service.tb-selected { border-color:var(--tb-ink) !important; background:var(--tb-soft) !important; box-shadow:inset 3px 0 var(--tb-ink) !important; }
#tb-booking.tb-booking .tb-service-top { display:flex !important; gap:24px !important; justify-content:space-between !important; align-items:flex-start !important; }
#tb-booking.tb-booking .tb-service h4 { font-size:19px !important; letter-spacing:-.025em !important; overflow-wrap:anywhere !important; }
#tb-booking.tb-booking .tb-service-price { font-size:20px !important; font-weight:600 !important; white-space:nowrap !important; }
#tb-booking.tb-booking .tb-service-bottom { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:16px !important; margin-top:16px !important; }
#tb-booking.tb-booking .tb-service-meta { display:flex !important; align-items:center !important; flex-wrap:wrap !important; gap:8px 14px !important; color:#666660 !important; font-size:14px !important; }
#tb-booking.tb-booking .tb-service-meta .tb-text-button { font-size:13px !important; color:#555 !important; min-height:32px !important; }
#tb-booking.tb-booking .tb-select-service { font-size:14px !important; min-width:126px !important; }
#tb-booking.tb-booking .tb-select-service[aria-pressed=true] { color:#fff !important; background:var(--tb-ink) !important; border-color:var(--tb-ink) !important; }
#tb-booking.tb-booking .tb-description { margin-top:16px !important; padding-top:16px !important; border-top:1px solid var(--tb-line) !important; font-size:15px !important; color:#595953 !important; white-space:pre-line !important; }
#tb-booking.tb-booking .tb-summary { position:sticky !important; top:24px !important; padding:28px !important; background:var(--tb-ink) !important; color:#fff !important; border-radius:6px !important; min-width:0 !important; }
#tb-booking.tb-booking .tb-summary :where(p,h3,span,div,dl,dt,dd,strong,a) { color:inherit !important; }
#tb-booking.tb-booking .tb-ticket-top { padding-bottom:24px !important; border-bottom:1px solid #42423f !important; }
#tb-booking.tb-booking .tb-ticket-top .tb-eyebrow { color:#b9b9b3 !important; }
#tb-booking.tb-booking .tb-ticket-top h3 { font-size:29px !important; font-weight:400 !important; letter-spacing:-.045em !important; margin-top:14px !important; }
#tb-booking.tb-booking .tb-selection { padding:20px 0 !important; }
#tb-booking.tb-booking .tb-selection-row { display:flex !important; align-items:flex-start !important; justify-content:space-between !important; gap:12px !important; padding:10px 0 !important; font-size:15px !important; }
#tb-booking.tb-booking .tb-selection-row > div { min-width:0 !important; overflow-wrap:anywhere !important; }
#tb-booking.tb-booking .tb-selection-row small { display:block !important; font-size:13px !important; color:#b9b9b3 !important; margin-top:4px !important; }
#tb-booking.tb-booking .tb-selection-row > span { white-space:nowrap !important; }
#tb-booking.tb-booking .tb-remove { min-width:36px !important; min-height:36px !important; color:#fff !important; background:transparent !important; border:1px solid #555 !important; padding:4px !important; border-radius:50% !important; }
#tb-booking.tb-booking .tb-remove:hover { background:#444 !important; border-color:#fff !important; }
#tb-booking.tb-booking .tb-summary .tb-summary-muted { color:#b9b9b3 !important; font-size:14px !important; line-height:1.6 !important; }
#tb-booking.tb-booking .tb-ticket-total { border-top:1px dashed #666 !important; margin:0 -28px 20px !important; padding:24px 28px 0 !important; position:relative !important; }
#tb-booking.tb-booking .tb-ticket-total::before, #tb-booking.tb-booking .tb-ticket-total::after { content:'' !important; position:absolute !important; top:-7px !important; width:14px !important; height:14px !important; border-radius:50% !important; background:#fff !important; }
#tb-booking.tb-booking .tb-ticket-total::before { left:-7px !important; }
#tb-booking.tb-booking .tb-ticket-total::after { right:-7px !important; }
#tb-booking.tb-booking .tb-ticket-total > div { display:flex !important; justify-content:space-between !important; align-items:baseline !important; gap:16px !important; margin-bottom:4px !important; }
#tb-booking.tb-booking .tb-ticket-total strong { font-size:30px !important; font-weight:500 !important; letter-spacing:-.04em !important; }
#tb-booking.tb-booking .tb-button { display:flex !important; justify-content:space-between !important; align-items:center !important; gap:12px !important; padding:16px 20px !important; min-height:54px !important; width:100% !important; background:var(--tb-ink) !important; color:#fff !important; border:1px solid var(--tb-ink) !important; border-radius:4px !important; font-weight:600 !important; font-size:15px !important; line-height:1.4 !important; }
#tb-booking.tb-booking .tb-button:hover { background:#333 !important; border-color:#333 !important; color:#fff !important; }
#tb-booking.tb-booking .tb-button-light { background:#fff !important; color:var(--tb-ink) !important; border-color:#fff !important; }
#tb-booking.tb-booking .tb-button-light:hover { background:#ddd !important; color:var(--tb-ink) !important; border-color:#ddd !important; }
#tb-booking.tb-booking .tb-summary-action { margin-top:20px !important; }
#tb-booking.tb-booking .tb-mobile-bar { display:none !important; }
#tb-booking.tb-booking .tb-back { display:inline-flex !important; align-items:center !important; min-height:44px !important; margin-bottom:18px !important; font-size:14px !important; text-decoration:underline !important; text-underline-offset:5px !important; }
#tb-booking.tb-booking .tb-panel { padding:26px !important; border:1px solid var(--tb-line) !important; border-radius:6px !important; margin-bottom:18px !important; }
#tb-booking.tb-booking .tb-small-number { font-size:12px !important; color:#73736d !important; display:inline-block !important; margin-right:10px !important; font-weight:400 !important; vertical-align:middle !important; }
#tb-booking.tb-booking .tb-team { display:flex !important; gap:10px !important; flex-wrap:wrap !important; }
#tb-booking.tb-booking .tb-team button { display:flex !important; flex-direction:column !important; min-width:100px !important; flex:1 !important; padding:16px 12px !important; font-size:14px !important; }
#tb-booking.tb-booking .tb-avatar { display:grid !important; place-items:center !important; width:38px !important; height:38px !important; border-radius:50% !important; color:#fff !important; background:#333 !important; font:italic 22px Georgia,serif !important; }
#tb-booking.tb-booking .tb-team button[aria-pressed=true] { border-color:var(--tb-ink) !important; background:var(--tb-soft) !important; box-shadow:inset 0 -3px var(--tb-ink) !important; }
#tb-booking.tb-booking .tb-calendar-head { display:flex !important; justify-content:space-between !important; align-items:center !important; margin-bottom:18px !important; }
#tb-booking.tb-booking .tb-calendar-head h4 { font-size:18px !important; font-weight:500 !important; text-transform:capitalize !important; }
#tb-booking.tb-booking .tb-calendar-nav { display:flex !important; gap:8px !important; }
#tb-booking.tb-booking .tb-calendar-nav button { padding:8px !important; width:44px !important; }
#tb-booking.tb-booking .tb-days { display:grid !important; grid-template-columns:repeat(7,minmax(0,1fr)) !important; gap:6px !important; }
#tb-booking.tb-booking .tb-weekday { text-align:center !important; padding:6px 0 10px !important; font-size:12px !important; color:#74746d !important; }
#tb-booking.tb-booking .tb-day { border:0 !important; background:var(--tb-soft) !important; min-height:46px !important; padding:6px !important; font-size:15px !important; font-weight:500 !important; border-radius:4px !important; }
#tb-booking.tb-booking .tb-day[aria-pressed=true] { background:var(--tb-ink) !important; color:#fff !important; }
#tb-booking.tb-booking .tb-day:disabled { background:transparent !important; color:#b8b8b3 !important; opacity:1 !important; }
#tb-booking.tb-booking .tb-day[aria-current=date] { box-shadow:inset 0 0 0 1px #777 !important; }
#tb-booking.tb-booking .tb-periods { display:flex !important; gap:8px !important; flex-wrap:wrap !important; margin:16px 0 !important; }
#tb-booking.tb-booking .tb-periods button { font-size:13px !important; border-radius:22px !important; padding:8px 14px !important; font-weight:400 !important; }
#tb-booking.tb-booking .tb-times { display:grid !important; grid-template-columns:repeat(auto-fill,minmax(76px,1fr)) !important; gap:8px !important; max-height:320px !important; overflow-y:auto !important; overscroll-behavior:contain !important; padding:4px !important; margin:-4px !important; scrollbar-width:thin !important; }
#tb-booking.tb-booking .tb-time { font-size:15px !important; font-weight:500 !important; padding:10px 6px !important; }
#tb-booking.tb-booking .tb-time[aria-pressed=true] { background:var(--tb-ink) !important; color:#fff !important; border-color:var(--tb-ink) !important; }
#tb-booking.tb-booking .tb-times > p { grid-column:1 / -1 !important; font-size:15px !important; padding:12px 0 !important; }
#tb-booking.tb-booking .tb-appointment { padding:4px 0 24px !important; }
#tb-booking.tb-booking .tb-appointment > div { display:flex !important; justify-content:space-between !important; gap:20px !important; font-size:14px !important; margin-top:12px !important; }
#tb-booking.tb-booking .tb-appointment dt { color:#b9b9b3 !important; }
#tb-booking.tb-booking .tb-appointment dd { text-align:right !important; font-weight:500 !important; }
#tb-booking.tb-booking .tb-form label { display:block !important; font-size:15px !important; font-weight:500 !important; margin-bottom:22px !important; color:var(--tb-ink) !important; }
#tb-booking.tb-booking .tb-fields { display:grid !important; grid-template-columns:1fr 1fr !important; gap:16px !important; }
#tb-booking.tb-booking .tb-field-hint { display:block !important; margin-top:7px !important; font-size:13px !important; font-weight:400 !important; color:#666660 !important; }
#tb-booking.tb-booking .tb-form .tb-consent { display:flex !important; align-items:flex-start !important; gap:12px !important; font-size:13px !important; font-weight:400 !important; line-height:1.6 !important; }
#tb-booking.tb-booking .tb-consent input { appearance:auto !important; accent-color:var(--tb-ink) !important; min-width:20px !important; width:20px !important; height:20px !important; min-height:20px !important; margin:2px 0 0 !important; padding:0 !important; }
#tb-booking.tb-booking .tb-consent a { text-decoration:underline !important; text-underline-offset:3px !important; }
#tb-booking.tb-booking .tb-submit { margin-top:8px !important; }
#tb-booking.tb-booking .tb-big-time { display:block !important; font-size:48px !important; font-weight:400 !important; margin-top:12px !important; letter-spacing:-.06em !important; }
#tb-booking.tb-booking .tb-summary-link { display:inline-flex !important; align-items:center !important; min-height:44px !important; font-size:14px !important; text-decoration:underline !important; text-underline-offset:5px !important; }
#tb-booking.tb-booking .tb-form-message, #tb-booking.tb-booking .tb-notice { padding:20px !important; background:var(--tb-soft) !important; border-left:3px solid var(--tb-ink) !important; margin-bottom:24px !important; font-size:16px !important; }
#tb-booking.tb-booking .tb-notice a, #tb-booking.tb-booking .tb-form-message a { display:inline-flex !important; min-height:44px !important; align-items:center !important; text-decoration:underline !important; margin-right:20px !important; }
#tb-booking.tb-booking .tb-notice button { margin-top:12px !important; }
#tb-booking.tb-booking .tb-foot { display:flex !important; justify-content:space-between !important; gap:16px !important; margin-top:56px !important; padding-top:24px !important; border-top:1px solid var(--tb-line) !important; font-size:12px !important; letter-spacing:.08em !important; color:#666 !important; }
#tb-booking.tb-booking .tb-sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
@media (max-width:1000px) {
 #tb-booking.tb-booking .tb-layout { grid-template-columns:minmax(0,1fr) 300px !important; gap:24px !important; }
 #tb-booking.tb-booking .tb-summary { padding:22px !important; }
 #tb-booking.tb-booking .tb-ticket-total { margin-left:-22px !important; margin-right:-22px !important; padding-left:22px !important; padding-right:22px !important; }
 #tb-booking.tb-booking .tb-panel { padding:20px !important; }
}
@media (max-width:760px) {
 #tb-booking.tb-booking { width:calc(100vw - 32px) !important; margin:16px 0 16px calc(50% - (50vw - 16px)) !important; padding-bottom:100px !important; }
 #tb-booking.tb-booking .tb-masthead { padding-bottom:16px !important; }
 #tb-booking.tb-booking .tb-brand { font-size:14px !important; gap:10px !important; }
 #tb-booking.tb-booking .tb-brand img { width:52px !important; height:52px !important; min-width:52px !important; }
 #tb-booking.tb-booking .tb-brand-note { font-size:9px !important; }
 #tb-booking.tb-booking .tb-help { font-size:13px !important; gap:5px !important; }
 #tb-booking.tb-booking .tb-help > span { font-size:20px !important; }
 #tb-booking.tb-booking .tb-progress { margin-top:20px !important; }
 #tb-booking.tb-booking .tb-step { font-size:12px !important; gap:6px !important; }
 #tb-booking.tb-booking .tb-step-number { width:25px !important; height:25px !important; font-size:10px !important; }
 #tb-booking.tb-booking .tb-step::after { margin:0 8px !important; }
 #tb-booking.tb-booking .tb-hero { padding:30px 0 !important; }
 #tb-booking.tb-booking .tb-hero h2 { font-size:48px !important; }
 #tb-booking.tb-booking .tb-hero-number { display:none !important; }
 #tb-booking.tb-booking .tb-intro { font-size:15px !important; }
 #tb-booking.tb-booking .tb-layout { grid-template-columns:1fr !important; gap:24px !important; }
 #tb-booking.tb-booking .tb-section-head h3 { font-size:20px !important; }
 #tb-booking.tb-booking .tb-categories { flex-wrap:nowrap !important; overflow-x:auto !important; padding:4px 2px 10px !important; margin-left:-2px !important; margin-right:-2px !important; scrollbar-width:thin !important; }
 #tb-booking.tb-booking .tb-categories button { white-space:nowrap !important; flex-shrink:0 !important; }
 #tb-booking.tb-booking .tb-service { padding:18px !important; }
 #tb-booking.tb-booking .tb-service h4 { font-size:18px !important; }
 #tb-booking.tb-booking .tb-service-price { font-size:18px !important; }
 #tb-booking.tb-booking .tb-service-top { gap:16px !important; }
 #tb-booking.tb-booking .tb-service-bottom { gap:8px !important; }
 #tb-booking.tb-booking .tb-select-service { min-width:114px !important; padding:8px 12px !important; }
 #tb-booking.tb-booking .tb-summary { position:static !important; }
 #tb-booking.tb-booking .tb-mobile-bar { position:fixed !important; z-index:10000 !important; bottom:0 !important; left:0 !important; right:0 !important; display:flex !important; align-items:center !important; justify-content:space-between !important; gap:16px !important; padding:14px 20px calc(14px + env(safe-area-inset-bottom)) !important; background:#fff !important; border-top:1px solid var(--tb-line) !important; box-shadow:0 -4px 24px #0000000a !important; }
 #tb-booking.tb-booking .tb-mobile-bar > div { display:flex !important; flex-direction:column !important; gap:2px !important; min-width:0 !important; }
 #tb-booking.tb-booking .tb-mobile-bar > div > span { font-size:12px !important; color:#666 !important; }
 #tb-booking.tb-booking .tb-mobile-bar strong { font-size:21px !important; letter-spacing:-.04em !important; }
 #tb-booking.tb-booking .tb-mobile-bar .tb-button { width:auto !important; min-width:140px !important; padding:14px 20px !important; flex-shrink:0 !important; }
 #tb-booking.tb-booking .tb-panel { padding:20px 16px !important; }
 #tb-booking.tb-booking .tb-team button { min-width:80px !important; padding:12px 8px !important; }
 #tb-booking.tb-booking .tb-days { gap:4px !important; }
 #tb-booking.tb-booking .tb-day { min-height:40px !important; }
 #tb-booking.tb-booking .tb-section-head { gap:8px !important; }
 #tb-booking.tb-booking .tb-section-head .tb-text-button { font-size:12px !important; }
 #tb-booking.tb-booking .tb-fields { grid-template-columns:1fr !important; gap:0 !important; }
 #tb-booking.tb-booking[data-step="3"] .tb-layout { display:flex !important; flex-direction:column !important; }
 #tb-booking.tb-booking[data-step="3"] .tb-summary { order:-1 !important; width:100% !important; }
 #tb-booking.tb-booking[data-step="3"] .tb-main { width:100% !important; }
 #tb-booking.tb-booking .tb-foot { font-size:10px !important; margin-top:32px !important; }
}
/* Small entrance motion stays inside the shortcode and never moves fixed controls. */
@keyframes tb-booking-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
#tb-booking.tb-booking .tb-hero > div, #tb-booking.tb-booking .tb-service, #tb-booking.tb-booking .tb-panel { animation:tb-booking-enter .3s ease both !important; }
@media (max-width:760px) {
 #tb-booking.tb-booking[data-step="3"] .tb-ticket-top { display:grid !important; grid-template-columns:minmax(0,1fr) auto !important; align-items:center !important; gap:8px 12px !important; padding-bottom:12px !important; }
 #tb-booking.tb-booking[data-step="3"] .tb-ticket-top .tb-eyebrow { grid-column:1 / -1 !important; }
 #tb-booking.tb-booking[data-step="3"] .tb-ticket-top h3 { font-size:23px !important; margin:0 !important; }
 #tb-booking.tb-booking[data-step="3"] .tb-big-time { font-size:32px !important; margin:0 !important; }
 #tb-booking.tb-booking[data-step="3"] .tb-appointment { padding:0 !important; }
 #tb-booking.tb-booking[data-step="3"] .tb-selection { padding:12px 0 !important; }
 #tb-booking.tb-booking[data-step="3"] .tb-ticket-total { padding-top:16px !important; margin-bottom:4px !important; }
}
@media (prefers-reduced-motion:reduce) {
 #tb-booking.tb-booking * { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}

/* Intro page and detachable ticket. */
#tb-booking.tb-booking .tb-types { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:20px !important; }
#tb-booking.tb-booking .tb-type-card { display:flex !important; flex-direction:column !important; min-width:0 !important; overflow:hidden !important; border:1px solid #d3d3ce !important; border-radius:6px !important; padding:26px !important; color:#171717 !important; background:#f2f2ef !important; transition:transform .25s,border-color .25s !important; }
#tb-booking.tb-booking .tb-type-card:hover { transform:translateY(-6px) !important; border-color:#171717 !important; }
#tb-booking.tb-booking .tb-type-donna { background:#171717 !important; color:#fff !important; border-color:#171717 !important; }
#tb-booking.tb-booking .tb-type-uomo { background:#fff !important; }
#tb-booking.tb-booking .tb-type-top { display:flex !important; justify-content:space-between !important; align-items:center !important; }
#tb-booking.tb-booking .tb-type-arrow { font-size:24px !important; }
#tb-booking.tb-booking .tb-type-letter { display:block !important; font:italic 150px/1.2 Georgia,serif !important; letter-spacing:-.07em !important; padding:10px 0 !important; }
#tb-booking.tb-booking .tb-type-bottom { flex:1 !important; }
#tb-booking.tb-booking .tb-type-bottom h3 { font-size:27px !important; margin-bottom:12px !important; }
#tb-booking.tb-booking .tb-type-bottom p { font-size:14px !important; line-height:1.7 !important; opacity:.75 !important; }
#tb-booking.tb-booking .tb-type-action { display:block !important; border-top:1px dashed currentColor !important; margin:26px -26px -26px !important; padding:22px 26px !important; font-size:14px !important; }
#tb-booking.tb-booking .tb-ticket-stub { position:relative !important; transform-origin:10% 0 !important; background:#151515 !important; border-radius:0 0 6px 6px !important; }
#tb-booking.tb-booking.tb-ticket-leaving .tb-ticket-stub { animation:tb-ticket-tear .48s cubic-bezier(.4,0,.2,1) forwards !important; pointer-events:none !important; }
#tb-booking.tb-booking.tb-ticket-arriving .tb-ticket-stub { animation:tb-ticket-attach .7s cubic-bezier(.2,.8,.25,1) both !important; }
#tb-booking.tb-booking.tb-ticket-leaving .tb-mobile-bar { animation:tb-ticket-mobile .48s ease forwards !important; }
@keyframes tb-ticket-tear { 0% {transform:translate(0,0) rotate(0);opacity:1} 35% {transform:translate(0,8px) rotate(2deg);opacity:1} 100% {transform:translate(28px,55px) rotate(5deg);opacity:0} }
@keyframes tb-ticket-attach { 0% {transform:translate(22px,45px) rotate(4deg);opacity:0} 45% {opacity:1} 80% {transform:translate(0,-3px) rotate(-.5deg)} 100% {transform:translate(0,0) rotate(0);opacity:1} }
@keyframes tb-ticket-mobile { to {transform:translateY(100%);opacity:0} }
@media (max-width:760px) {
 #tb-booking.tb-booking .tb-progress { display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:4px !important; }
 #tb-booking.tb-booking .tb-step { flex-direction:column !important; gap:6px !important; font-size:11px !important; align-items:flex-start !important; }
 #tb-booking.tb-booking .tb-step::after { display:none !important; }
 #tb-booking.tb-booking .tb-types { grid-template-columns:1fr !important; gap:14px !important; }
 #tb-booking.tb-booking .tb-type-card { display:grid !important; grid-template-columns:1fr 80px !important; padding:22px !important; }
 #tb-booking.tb-booking .tb-type-top { grid-column:1 / -1 !important; margin-bottom:6px !important; }
 #tb-booking.tb-booking .tb-type-letter { grid-column:2 !important; grid-row:2 !important; font-size:90px !important; padding:0 !important; text-align:center !important; }
 #tb-booking.tb-booking .tb-type-bottom { grid-column:1 !important; grid-row:2 !important; padding-top:14px !important; }
 #tb-booking.tb-booking .tb-type-bottom h3 { font-size:25px !important; }
 #tb-booking.tb-booking .tb-type-action { grid-column:1 / -1 !important; margin:20px -22px -22px !important; padding:16px 22px !important; }
 #tb-booking.tb-booking[data-step="0"] { padding-bottom:20px !important; }
}
@media (prefers-reduced-motion:reduce) {
 #tb-booking.tb-booking .tb-type-card:hover { transform:none !important; }
 #tb-booking.tb-booking.tb-ticket-leaving .tb-ticket-stub,#tb-booking.tb-booking.tb-ticket-arriving .tb-ticket-stub,#tb-booking.tb-booking.tb-ticket-leaving .tb-mobile-bar { animation:none !important; }
}

#tb-booking.tb-booking[data-step="0"] .tb-hero { padding:30px 0 26px !important; }
#tb-booking.tb-booking[data-step="0"] .tb-hero h2 { font-size:58px !important; }
#tb-booking.tb-booking[data-step="0"] .tb-hero h2 em { display:inline !important; }
#tb-booking.tb-booking[data-step="0"] .tb-hero-number { font-size:110px !important; }
#tb-booking.tb-booking .tb-type-top { order:0 !important; }
#tb-booking.tb-booking .tb-type-bottom { order:1 !important; margin-top:14px !important; }
#tb-booking.tb-booking .tb-type-letter { order:2 !important; font-size:120px !important; }
#tb-booking.tb-booking .tb-type-action { order:3 !important; margin-top:14px !important; }
#tb-booking.tb-booking .tb-summary { isolation:isolate !important; }
#tb-booking.tb-booking .tb-ticket-stub { margin:0 -28px -28px !important; padding:0 28px 28px !important; }
#tb-booking.tb-booking.tb-ticket-leaving .tb-summary,#tb-booking.tb-booking.tb-ticket-arriving .tb-summary { background:transparent !important; }
#tb-booking.tb-booking.tb-ticket-leaving .tb-summary::before,#tb-booking.tb-booking.tb-ticket-arriving .tb-summary::before { content:'' !important; position:absolute !important; top:0 !important; left:0 !important; right:0 !important; height:var(--tb-ticket-cut) !important; background:#151515 !important; border-radius:6px 6px 0 0 !important; z-index:-1 !important; }
@media(max-width:1000px){#tb-booking.tb-booking .tb-ticket-stub { margin:0 -22px -22px !important; padding:0 22px 22px !important; }}
@media(max-width:760px){
 #tb-booking.tb-booking[data-step="0"] .tb-hero h2 { font-size:44px !important; }
 #tb-booking.tb-booking[data-step="0"] .tb-hero h2 em { display:block !important; }
 #tb-booking.tb-booking .tb-type-letter { font-size:90px !important; }
 #tb-booking.tb-booking .tb-type-bottom { margin-top:0 !important; }
 #tb-booking.tb-booking .tb-summary { position:relative !important; top:auto !important; }
}

/* Completion page: a single ticket, using the site's own header and footer. */
#tb-booking.tb-booking.tb-success { padding:32px 0 !important; }
#tb-booking.tb-booking .tb-success-card { width:100% !important; max-width:820px !important; margin:0 auto !important; border:1px solid #dededb !important; border-radius:8px !important; overflow:hidden !important; animation:tb-success-in .55s ease both; }
#tb-booking.tb-booking .tb-success-main { padding:48px 56px 44px !important; text-align:center !important; }
#tb-booking.tb-booking .tb-success-check { display:flex !important; align-items:center !important; justify-content:center !important; width:64px !important; height:64px !important; margin:0 auto 26px !important; background:#151515 !important; color:#fff !important; border-radius:50% !important; font-size:32px !important; }
#tb-booking.tb-booking .tb-success-main h2 { margin:16px 0 24px !important; font-size:clamp(38px,5vw,64px) !important; font-weight:500 !important; line-height:1.08 !important; letter-spacing:-.055em !important; overflow-wrap:anywhere !important; }
#tb-booking.tb-booking .tb-success-main h2 em { display:block !important; font-family:Georgia,'Times New Roman',serif !important; font-weight:400 !important; font-style:italic !important; }
#tb-booking.tb-booking .tb-success-message { max-width:500px !important; margin:0 auto !important; color:#555 !important; font-size:18px !important; line-height:1.65 !important; }
#tb-booking.tb-booking .tb-success-stub { position:relative !important; display:flex !important; align-items:center !important; gap:32px !important; padding:32px 40px !important; border-top:1px dashed #868681 !important; background:#151515 !important; color:#fff !important; }
#tb-booking.tb-booking .tb-success-stub::before, #tb-booking.tb-booking .tb-success-stub::after { content:'' !important; position:absolute !important; width:20px !important; height:20px !important; border-radius:50% !important; top:-10px !important; background:#fff !important; }
#tb-booking.tb-booking .tb-success-stub::before { left:-10px !important; }
#tb-booking.tb-booking .tb-success-stub::after { right:-10px !important; }
#tb-booking.tb-booking .tb-success-stub p { flex:1 !important; font-size:15px !important; line-height:1.7 !important; color:#d7d7d4 !important; }
#tb-booking.tb-booking .tb-success-stub p a { color:#fff !important; text-decoration:underline !important; text-underline-offset:3px !important; }
#tb-booking.tb-booking a.tb-success-home { display:inline-flex !important; align-items:center !important; justify-content:space-between !important; gap:24px !important; flex-shrink:0 !important; padding:15px 20px !important; min-height:52px !important; color:#151515 !important; background:#fff !important; border:1px solid #fff !important; border-radius:4px !important; font-size:16px !important; font-weight:600 !important; transition:background .2s !important; }
#tb-booking.tb-booking a.tb-success-home:hover { background:#e9e9e6 !important; }
@keyframes tb-success-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:760px) {
 #tb-booking.tb-booking.tb-success { padding:16px 0 !important; }
 #tb-booking.tb-booking .tb-success-main { padding:32px 22px !important; }
 #tb-booking.tb-booking .tb-success-stub { flex-direction:column !important; align-items:stretch !important; padding:26px 22px !important; gap:22px !important; }
 #tb-booking.tb-booking .tb-success-message { font-size:17px !important; }
}
@media(prefers-reduced-motion:reduce) { #tb-booking.tb-booking .tb-success-card { animation:none !important; } }

/* Vector arrows cannot be substituted with iOS emoji glyphs. */
#tb-booking.tb-booking svg.tb-icon { display:inline-block !important; width:20px !important; height:20px !important; min-width:20px !important; max-width:20px !important; flex:0 0 20px !important; vertical-align:middle !important; color:inherit !important; fill:none !important; stroke:currentColor !important; stroke-width:1.8 !important; stroke-linecap:round !important; stroke-linejoin:round !important; overflow:visible !important; }
#tb-booking.tb-booking svg.tb-icon path { fill:none !important; stroke:currentColor !important; stroke-width:1.8 !important; }
#tb-booking.tb-booking .tb-back { gap:8px !important; }
