.tb-app {
  --tb-ink: #f3f5ee;
  --tb-muted: #a5afa0;
  --tb-green: #a6bc93;
  --tb-paper: #1b211b;
  --tb-soft: #1d241d;
  --tb-line: rgba(243,245,238,.10);
  --tb-base: #101310;
  width: 100%;
  min-width: 0;
  color: var(--tb-ink);
  color-scheme: dark;
  font-family: "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.55;
  box-sizing: border-box;
}
.tb-app *, .tb-app *::before, .tb-app *::after { box-sizing: border-box; }
.tb-app button, .tb-app input { font: inherit; }
.tb-app button, .tb-app a { -webkit-tap-highlight-color: transparent; }
.tb-app h2, .tb-app h3, .tb-app h4, .tb-app p { margin: 0; }
.tb-app h2, .tb-app h3, .tb-app h4 { color: var(--tb-ink); font-family: inherit; }
.tb-app h2, .tb-app h3 { letter-spacing: -.045em; line-height: 1.1; font-weight: 650; }
.tb-app h2 { font-size: clamp(30px, 3.5vw, 45px); }
.tb-app h3 { font-size: clamp(28px, 3.2vw, 38px); }
.tb-app a { color: inherit; text-underline-offset: 4px; }
.tb-app button { cursor: pointer; }
.tb-app button:disabled { cursor: not-allowed; opacity: .42; }
.tb-app :focus-visible { outline: 3px solid #c8e4ad; outline-offset: 4px; }
.tb-app input:focus-visible { outline-offset: 2px; }
.tb-app [tabindex="-1"]:focus { outline: 0; }
.tb-app h3[tabindex="-1"] { scroll-margin-top: 128px; }
.tb-app [hidden] { display: none !important; }
.tb-booking-shell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); gap: 24px; align-items: start; }
.tb-booking-main { order: 1; min-width: 0; padding: clamp(25px, 3.5vw, 42px); border: 1px solid var(--tb-line); border-radius: 8px; background: var(--tb-paper); }
.tb-booking-aside { order: 2; min-width: 0; padding: 32px 28px; background: var(--tb-paper); border: 1px solid #374231; border-radius: 8px; position: sticky; top: 112px; }
.tb-eyebrow { display: inline-block; color: var(--tb-green); font-size: 10px; line-height: 1.5; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.tb-app .tb-booking-aside h3 { margin-top: 24px; font-size: 35px; line-height: 1.07; }
.tb-booking-aside > p { color: var(--tb-muted); font-size: 13px; line-height: 1.8; margin-top: 17px; }
.tb-summary { display: flex; flex-direction: column; gap: 5px; margin-top: 30px; padding-top: 24px; border-top: 1px solid #364330; min-width: 0; }
.tb-summary > strong { font-size: 17px; line-height: 1.4; font-weight: 600; overflow-wrap: anywhere; }
.tb-summary > span:not(.tb-summary__label) { color: #b4c1aa; font-size: 12px; }
.tb-summary__label { margin-top: 19px; margin-bottom: 3px; color: var(--tb-muted); font-size: 11px; line-height: 1.5; }
.tb-summary__label:first-child { margin-top: 0; }
.tb-aside-footer { display: flex; align-items: center; gap: 8px; margin-top: 30px; padding-top: 22px; border-top: 1px solid #364330; color: #d2deca; font-size: 11px; }
.tb-aside-dot { width: 6px; height: 6px; flex-shrink: 0; border-radius: 50%; background: var(--tb-green); box-shadow: 0 0 0 4px #a6bc9310; }
.tb-booking-aside .tb-aside-note { margin-top: 12px; font-size: 11px; line-height: 1.8; }
.tb-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 5px; border: 1px solid var(--tb-line); border-radius: 100px; background: #111611; margin-bottom: 34px; }
.tb-step { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 45px; border: 0; border-radius: 100px; padding: 7px; background: transparent; color: #aab5a4; font-size: 11px !important; font-weight: 600; transition: background-color 180ms ease, color 180ms ease; }
.tb-step-number { display: grid; place-items: center; width: 23px; height: 23px; flex-shrink: 0; border: 1px solid #44503c; border-radius: 50%; font-size: 10px; }
.tb-step.is-current { background: #2c3826; color: #ecf5e4; }
.tb-step.is-current .tb-step-number { background: var(--tb-green); border-color: var(--tb-green); color: #172013; }
.tb-step.is-done { color: var(--tb-green); }
.tb-step.is-done .tb-step-number { border-color: #526b42; color: #b7d29f; }
.tb-step:disabled { opacity: .65 !important; }
.tb-stage { animation: tb-enter 400ms ease-out; min-width: 0; }
.tb-stage-heading { margin-bottom: 28px; }
.tb-stage-heading .tb-eyebrow { margin-bottom: 12px; }
.tb-app .tb-stage-heading h3 { margin-bottom: 13px; font-size: clamp(28px, 3.2vw, 38px); line-height: 1.1; letter-spacing: -.045em; }
.tb-muted { color: var(--tb-muted); font-size: 13px; line-height: 1.75; }
.tb-services { display: flex; flex-direction: column; gap: 11px; }
.tb-service { position: relative; display: flex; align-items: center; gap: 15px; min-height: 101px; padding: 20px; border: 1px solid #384432; border-radius: 8px; background: #1b231b; cursor: pointer; transition: border-color 180ms ease, background-color 180ms ease; }
.tb-service:hover { background: #222d21; border-color: #718961; }
.tb-service.is-selected { background: #2a3724; border-color: var(--tb-green); box-shadow: none; }
.tb-service input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tb-service:focus-within { outline: 3px solid #c8e4ad; outline-offset: 3px; }
.tb-service__check { display: grid; place-items: center; width: 22px; height: 22px; border: 1.5px solid #7c8c72; border-radius: 50%; flex-shrink: 0; transition: background-color 180ms ease, border-color 180ms ease; }
.tb-service.is-selected .tb-service__check { background: var(--tb-green); border-color: var(--tb-green); }
.tb-service.is-selected .tb-service__check::after { content: "✓"; color: #172012; font-weight: 750; font-size: 13px; }
.tb-service__body { display: flex; flex-direction: column; gap: 9px; flex: 1; min-width: 0; }
.tb-service__body > strong { font-size: 16px; line-height: 1.4; font-weight: 600; }
.tb-service__body > span { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: #b3c0aa; font-size: 11px; line-height: 1.6; }
.tb-service-time { display: inline-flex; padding: 2px 8px; border: 1px solid #46533e; border-radius: 100px; font-size: 10px; white-space: nowrap; }
.tb-service-description { font-size: 11px; }
.tb-service__price { align-self: flex-start; padding-top: 2px; font-size: 21px; line-height: 1.5; font-weight: 600; letter-spacing: -.035em; white-space: nowrap; }
.tb-addons { min-width: 0; border: 0; margin: 28px 0 0; padding: 0; }
.tb-addons legend { padding: 0; color: #edf2e8; font-size: 14px; font-weight: 600; }
.tb-addons .tb-note { margin-top: 7px !important; font-size: 11px; }
.tb-addon-options { display: grid; gap: 8px; margin-top: 16px; }
.tb-addon { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 12px 15px; border: 1px solid var(--tb-line); border-radius: 8px; background: #141a14; cursor: pointer; transition: border-color 180ms ease, background-color 180ms ease; }
.tb-addon:hover { border-color: #697e5b; }
.tb-addon:has(input:checked) { border-color: #7d986b; background: #253020; }
.tb-addon input { accent-color: var(--tb-green); width: 18px; height: 18px; flex-shrink: 0; margin: 0; }
.tb-addon > span { flex: 1; min-width: 0; font-size: 12px; line-height: 1.5; }
.tb-addon > strong { font-size: 12px; font-weight: 600; white-space: nowrap; color: #d9e7ce; }
.tb-app .tb-addon-lines { display: grid; gap: 7px; list-style: none; margin: 14px 0 4px; padding: 0; width: 100%; font-size: 12px; line-height: 1.6; color: #bccbb1; }
.tb-addon-lines li { display: flex; justify-content: space-between; gap: 15px; }
.tb-addon-lines li > span:last-child { white-space: nowrap; }
.tb-actions { display: flex; align-items: center; gap: 20px; margin-top: 29px; padding-top: 24px; border-top: 1px solid var(--tb-line); }
.tb-action-summary { display: grid; grid-template-columns: auto auto; align-items: baseline; column-gap: 10px; row-gap: 0; flex: 1; min-width: 0; }
.tb-action-summary > span { color: var(--tb-muted); font-size: 11px; }
.tb-action-summary strong { font-size: 24px; font-weight: 600; line-height: 1.3; letter-spacing: -.04em; justify-self: start; }
.tb-action-summary small { color: var(--tb-muted); font-size: 10px; grid-column: 1 / -1; }
.tb-action-back + .tb-action-summary { flex: 1; }
.tb-button { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 54px; padding: 15px 22px; border: 1px solid var(--tb-green); border-radius: 100px; background: var(--tb-green); color: #131c0f !important; font-size: 13px !important; line-height: 1.4; font-weight: 650 !important; text-decoration: none; white-space: nowrap; transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
.tb-button:not(:disabled):hover { background: #b9cfa7; border-color: #b9cfa7; box-shadow: none; }
.tb-button:not(:disabled):active { transform: scale(.98); }
.tb-button--outline { background: transparent; border-color: #586b4b; color: #e4ecdf !important; }
.tb-button--outline:not(:disabled):hover { color: #f3f7ee !important; background: #253020; border-color: #8da57a; }
.tb-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 11px 2px; border: 0; background: transparent; color: #d3e2c8; font-size: 12px !important; line-height: 1.5; font-weight: 550; text-decoration: underline; text-underline-offset: 4px; }
.tb-link:hover { color: #fff; }
.tb-mobile-back, .tb-mobile-recap { display: none; }
.tb-date-panel { padding: 20px; border: 1px solid var(--tb-line); border-radius: 8px; background: #121812; min-width: 0; }
.tb-date-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 15px; font-size: 12px; font-weight: 600; }
.tb-date-month { color: var(--tb-muted); font-size: 10px; font-weight: 400; text-align: right; }
.tb-date-shortcuts { display: grid; grid-auto-flow: column; grid-auto-columns: 64px; gap: 7px; max-width: 100%; min-width: 0; overflow-x: auto; padding: 4px 2px 12px; scrollbar-width: thin; scrollbar-color: #4b5e40 transparent; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.tb-date-shortcuts button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-width: 62px; min-height: 108px; padding: 12px 7px; border: 1px solid #3b4734; border-radius: 8px; color: #dce6d5; background: #1d261b; scroll-snap-align: start; transition: background-color 180ms ease, border-color 180ms ease; }
.tb-date-shortcuts button > span { font-size: 10px; text-transform: capitalize; }
.tb-date-shortcuts button > strong { font-size: 23px; font-weight: 600; line-height: 1.2; letter-spacing: -.04em; }
.tb-date-shortcuts button > small { font-size: 9px; color: #b8c5af; }
.tb-date-shortcuts button:hover { border-color: #90a87c; }
.tb-date-shortcuts button.is-selected { background: var(--tb-green); border-color: var(--tb-green); color: #16200f; }
.tb-date-shortcuts button.is-selected small { color: #34472b; }
.tb-calendar-field { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between; gap: 16px !important; margin-top: 13px !important; padding-top: 16px; border-top: 1px solid var(--tb-line); }
.tb-calendar-field > span { font-weight: 500; font-size: 11px; color: #c5d0bc; }
.tb-calendar-field input[type=date] { width: 168px; min-height: 44px; padding: 10px 12px; font-size: 16px; background: #1d261b; border-radius: 8px; }
.tb-slots-region { margin-top: 28px; min-height: 180px; }
.tb-slots-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; font-weight: 600; margin-bottom: 18px; }
.tb-availability-count { color: #c3d5b4; background: #263321; border: 1px solid #3e5134; padding: 4px 9px; border-radius: 100px; font-size: 10px; font-weight: 400; }
.tb-slot-group + .tb-slot-group { margin-top: 20px; }
.tb-slot-group h4 { color: #aab8a0; font-size: 10px; font-weight: 500; letter-spacing: .07em; text-transform: uppercase; margin-bottom: 10px; }
.tb-slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.tb-slot { min-height: 48px; padding: 11px 7px; border: 1px solid #45523c; border-radius: 8px; background: #1d261b; color: #e7efdf; font-size: 13px; font-weight: 550; font-variant-numeric: tabular-nums; transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease; }
.tb-slot:hover { border-color: #9bb787; background: #2a3723; }
.tb-slot.is-selected { background: var(--tb-green); border-color: var(--tb-green); color: #15200f; }
.tb-slot:active { transform: scale(.97); }
.tb-timezone-note { margin-top: 18px !important; color: #9ea994; font-size: 10px; }
.tb-fields { display: grid; gap: 21px; }
.tb-name-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.tb-field { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 9px; margin: 0; font-size: 12px; font-weight: 550; color: #d5dfcd; }
.tb-field input { width: 100%; max-width: 100%; min-width: 0; min-height: 54px; padding: 14px 16px; border: 1px solid #42503a; border-radius: 8px; background: #101710; color: var(--tb-ink); font-size: 16px; line-height: 1.4; box-shadow: none; transition: border-color 180ms ease, background-color 180ms ease; }
.tb-field input:hover { border-color: #728667; }
.tb-field input:focus { border-color: #a6bc93; background: #182117; }
.tb-field input[readonly] { background: #222b1f; color: #aab6a0; }
.tb-field input[type=date] { appearance: auto; }
.tb-optional { position: absolute; right: 0; top: 0; color: #96a38c; font-size: 10px; font-weight: 400; }
.tb-consent { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; margin-top: 26px; padding: 17px; border: 1px solid #42503a; border-radius: 8px; background: #1d281b; cursor: pointer; color: #e0e9d9; font-size: 13px; line-height: 1.65; }
.tb-consent input { accent-color: var(--tb-green); width: 20px; height: 20px; flex-shrink: 0; margin: 1px 0 0; }
.tb-consent span { min-width: 0; }
.tb-note { color: var(--tb-muted); font-size: 11px; line-height: 1.8; margin-top: 15px !important; overflow-wrap: anywhere; }
.tb-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip-path: inset(50%); white-space: nowrap; left: -10000px; }
.tb-message { padding: 16px 18px; margin: 18px 0; border: 1px solid #5e7a49; border-radius: 8px; background: #25341f; color: #dcebd0; font-size: 12px; line-height: 1.75; overflow-wrap: anywhere; }
.tb-message--error { background: #34221d; border-color: #986650; color: #f4c3ae; }
.tb-live:empty { display: none; }
.tb-live .tb-message { margin-top: 0; margin-bottom: 26px; }
.tb-loading { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 40px 15px; color: var(--tb-muted); font-size: 12px; line-height: 1.7; text-align: center; }
.tb-spinner { display: inline-block; width: 19px; height: 19px; flex-shrink: 0; border: 2px solid #3c5031; border-top-color: var(--tb-green); border-radius: 50%; animation: tb-spin 700ms linear infinite; }
.tb-empty { padding: clamp(26px, 5vw, 56px); border: 1px solid var(--tb-line); border-radius: 8px; background: var(--tb-paper); }
.tb-empty h2, .tb-empty h3 { margin-top: 13px; }
.tb-empty p { margin-top: 14px; color: var(--tb-muted); font-size: 13px; line-height: 1.8; }
.tb-empty > .tb-button { margin-top: 25px; }
.tb-empty--small { padding: 26px 23px; border-radius: 8px; background: #121912; text-align: center; font-size: 13px; }
.tb-empty--small strong { display: block; font-weight: 550; }
.tb-empty--small p { margin-top: 8px; font-size: 12px; }
.tb-empty-symbol { display: block; font-size: 32px; font-weight: 300; color: #8fa77b; margin-bottom: 12px; }
.tb-success { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.tb-app .tb-success > h3 { font-size: clamp(31px, 4vw, 43px); }
.tb-success > p { color: #becbb4; font-size: 13px; line-height: 1.8; }
.tb-success .tb-note { margin-top: 0 !important; }
.tb-success-mark { display: grid; place-items: center; width: 64px; height: 64px; border: 1px solid #8ca875; border-radius: 50%; background: #2e4023; color: #c5e4ac; font-size: 28px; box-shadow: none; margin: 9px 0 4px; }
.tb-success .tb-reservation { width: 100%; margin: 0; background: #111810; }
.tb-success .tb-button { width: 100%; }
.tb-reservation { padding: 28px; border: 1px solid #3c4b33; border-radius: 8px; background: var(--tb-paper); }
.tb-reservation__top { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 22px; }
.tb-reservation .tb-eyebrow { color: #afbea3; font-size: 9px; }
.tb-app .tb-reservation h3 { font-size: 23px; line-height: 1.3; letter-spacing: -.03em; margin-bottom: 13px; }
.tb-reservation__date { margin-top: 18px !important; margin-bottom: 6px !important; font-size: 13px; line-height: 1.8; color: #c7d3bd; }
.tb-reservation-total { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-top: 17px; margin-top: 20px !important; border-top: 1px solid var(--tb-line); color: #b6c4ab; font-size: 12px; }
.tb-reservation-total strong { color: #f0f5ea; font-size: 23px; font-weight: 600; letter-spacing: -.04em; }
.tb-reservation .tb-cancel { color: #e5b39b; margin-top: 17px; }
.tb-badge { display: inline-flex; padding: 6px 10px; border: 1px solid #435139; border-radius: 100px; background: #26301f; color: #c1ceb6; font-size: 9px; line-height: 1.5; font-weight: 600; white-space: nowrap; }
.tb-badge--confirmed { border-color: #5d7849; background: #2b3d20; color: #c6e4ad; }
.tb-badge--pending { border-color: #7d6934; background: #3c321c; color: #e9d59c; }
.tb-badge--cancelled, .tb-badge--no_show { border-color: #7e5947; background: #36251e; color: #e6b59b; }
.tb-account-head { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 32px; }
.tb-app .tb-account-head h2 { margin-top: 13px; }
.tb-account-head .tb-link { padding: 11px 18px; border: 1px solid var(--tb-line); border-radius: 100px; text-decoration: none; }
.tb-reservation-list { display: grid; gap: 18px; margin-bottom: 26px; }
.tb-account > .tb-button { margin-top: 25px; }
.tb-manage-entry { max-width: 620px; margin: 0 auto; padding: clamp(27px, 5vw, 50px); border: 1px solid #3b4733; border-radius: 8px; background: var(--tb-paper); }
.tb-app .tb-manage-entry h2 { margin: 20px 0; }
.tb-manage-entry > p { margin: 18px 0; color: #b3c1a9; font-size: 13px; line-height: 1.8; }
.tb-app[data-tb-booking], .tb-reservation-editor, .tb-account-head h2 { scroll-margin-top: 114px; }
.tb-included { margin-top: 26px; padding: 21px; background: #25321e; border: 1px solid #5d784a; border-radius: 8px; }
.tb-included h4 { font-size: 15px; line-height: 1.5; font-weight: 550; margin-top: 7px; }
.tb-included .tb-addon-lines { margin-top: 16px; color: #d1e1c5; }
.tb-included .tb-note { color: #b9cbb0; font-size: 10px; }
.tb-reservation-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 23px; }
.tb-reservation-actions .tb-button { flex: 1 1 185px; min-height: 48px; padding: 13px 16px; font-size: 11px !important; white-space: normal; }
.tb-calendar-view [data-calendar] { background: var(--tb-green); border-color: var(--tb-green); color: #15200f !important; }
.tb-calendar-intro, .tb-updated-link { margin: 0 0 23px !important; color: #c6d5ba; font-size: 12px; line-height: 1.8; }
.tb-updated-link a { display: inline-flex; align-items: center; min-height: 44px; }
.tb-reservation-editor { padding: 28px; border: 1px solid #526d41; border-radius: 8px; background: #171f15; }
.tb-editor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 24px; }
.tb-app .tb-editor-heading h3 { font-size: 28px; line-height: 1.2; margin-top: 10px; }
.tb-editor-heading .tb-link { flex-shrink: 0; }
.tb-edit-current { display: flex; flex-direction: column; gap: 7px; padding: 17px 19px; border: 1px solid #3d5132; border-radius: 8px; background: #222f1c; margin-bottom: 24px; }
.tb-edit-current > span { font-size: 10px; color: #acbd9f; }
.tb-edit-current > strong { font-size: 15px; font-weight: 550; }
.tb-edit-current > p { font-size: 11px; line-height: 1.75; color: #c4d3ba; }
.tb-field select { width: 100%; max-width: 100%; min-height: 54px; padding: 13px 15px; border: 1px solid #536747; border-radius: 8px; background: #101710; color: var(--tb-ink); font: inherit; font-size: 16px; line-height: 1.5; }
.tb-edit-date { margin-top: 26px; }
.tb-field-label { margin-bottom: 14px !important; color: #c4d4b8; font-size: 12px; font-weight: 500; }
.tb-editor-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--tb-line); padding-top: 23px; margin-top: 25px; }
.tb-editor-actions > div { display: flex; flex-direction: column; gap: 2px; }
.tb-editor-actions span, .tb-editor-actions small { color: #acbba1; font-size: 10px; }
.tb-editor-actions strong { font-size: 25px; letter-spacing: -.04em; font-weight: 550; }
.tb-account .tb-reservation-list:has(.tb-reservation-editor) { grid-template-columns: 1fr; }
@keyframes tb-spin { to { transform: rotate(360deg); } }
@keyframes tb-enter { from { opacity: .25; } to { opacity: 1; } }

@media (max-width: 1080px) and (min-width: 881px) {
  .tb-booking-shell { grid-template-columns: minmax(0, 1fr) 260px; gap: 18px; }
  .tb-booking-main { padding: 28px 24px; }
  .tb-booking-aside { padding: 27px 23px; }
  .tb-app .tb-booking-aside h3 { font-size: 30px; }
  .tb-actions { gap: 12px; }
  .tb-action-back { display: none; }
  .tb-service { gap: 12px; padding: 17px; }
}
@media (max-width: 880px) {
  .tb-app[data-tb-booking] { padding-bottom: calc(102px + env(safe-area-inset-bottom, 0px)); }
  .tb-app[data-stage="3"] { padding-bottom: 0; }
  .tb-booking-shell { display: block; }
  .tb-booking-aside { display: none; }
  .tb-booking-main { padding: 26px 22px; border-radius: 8px; }
  .tb-app h3[tabindex="-1"] { scroll-margin-top: 106px; }
  .tb-steps { margin-bottom: 28px; }
  .tb-stage-heading { margin-bottom: 24px; }
  .tb-app .tb-stage-heading h3 { font-size: 31px; }
  .tb-mobile-back { display: inline-flex; margin: -12px 0 13px; color: #b5c6a7; font-size: 11px !important; text-decoration: none; }
  .tb-actions { position: fixed; z-index: 65; left: 0; right: 0; bottom: 0; width: auto; max-width: none; margin: 0; padding: 14px max(18px, calc((100vw - 680px) / 2)) calc(14px + env(safe-area-inset-bottom, 0px)); gap: 18px; border: 1px solid #425239; border-bottom: 0; border-radius: 24px 24px 0 0; background: #192117f5; box-shadow: 0 -12px 35px #0003; backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
  .tb-action-back { display: none; }
  .tb-action-summary { display: flex; flex-direction: column; align-items: flex-start; flex: 0 0 auto; min-width: 78px; gap: 0; }
  .tb-actions { transition: opacity 180ms ease, transform 200ms ease, visibility 180ms ease; }
  .tb-app[data-tb-booking]:not(.tb-in-view) .tb-actions { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(12px); }
  .tb-action-summary > span { font-size: 9px; }
  .tb-action-summary > strong { font-size: 24px; line-height: 1.25; }
  .tb-action-summary > small { font-size: 9px; line-height: 1.5; }
  .tb-actions .tb-button { flex: 1; min-width: 0; min-height: 54px; padding: 14px 18px; gap: 16px; font-size: 12px !important; }
  .tb-mobile-recap { display: flex; flex-direction: column; gap: 4px; border: 1px solid #435437; background: #202b1b; padding: 19px 20px; margin-bottom: 24px; border-radius: 8px; font-size: 12px; }
  .tb-mobile-recap > strong { font-size: 15px; line-height: 1.5; font-weight: 600; }
  .tb-mobile-recap > span:not(.tb-summary__label) { color: #bbcdb0; font-size: 11px; }
  .tb-mobile-recap .tb-summary__label { font-size: 10px; margin-top: 12px; }
  .tb-mobile-recap .tb-summary__label:first-child { margin-top: 0; }
  .tb-mobile-recap .tb-addon-lines { font-size: 11px; margin-top: 9px; }
}
@media (max-width: 480px) {
  .tb-name-fields { grid-template-columns: 1fr; gap: 21px; }
  .tb-consent { padding: 15px; }
  .tb-booking-main { padding: 23px 17px; border-radius: 8px; }
  .tb-steps { gap: 2px; padding: 4px; margin-bottom: 27px; }
  .tb-step { min-height: 44px; padding: 6px 4px; gap: 5px; font-size: 10px !important; }
  .tb-step-number { width: 21px; height: 21px; font-size: 9px; }
  .tb-app .tb-stage-heading h3 { font-size: 29px; }
  .tb-stage-heading .tb-eyebrow { font-size: 9px; }
  .tb-muted { font-size: 12px; }
  .tb-service { padding: 18px 14px; gap: 11px; min-height: 102px; border-radius: 8px; }
  .tb-service__check { width: 20px; height: 20px; }
  .tb-service__body > strong { font-size: 14px; }
  .tb-service__price { font-size: 19px; }
  .tb-service__body > span { gap: 5px; }
  .tb-service-time { font-size: 9px; }
  .tb-addon { padding: 12px; gap: 10px; }
  .tb-addon > span { font-size: 11px; }
  .tb-addon > strong { font-size: 11px; }
  .tb-addons .tb-note { font-size: 10px; }
  .tb-date-panel { padding: 17px 13px; border-radius: 8px; }
  .tb-date-panel-heading { font-size: 11px; gap: 10px; }
  .tb-date-month { font-size: 9px; }
  .tb-date-shortcuts { grid-auto-columns: 62px; }
  .tb-calendar-field { gap: 9px !important; }
  .tb-calendar-field input[type=date] { width: 168px; font-size: 16px; }
  .tb-slots { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
  .tb-slot { min-height: 48px; font-size: 12px; }
  .tb-account-head { align-items: flex-start; gap: 12px; }
  .tb-app .tb-account-head h2 { font-size: 29px; }
  .tb-account-head .tb-link { font-size: 10px !important; padding: 10px 13px; }
  .tb-reservation { padding: 23px 20px; border-radius: 8px; }
  .tb-reservation__top { gap: 10px; flex-wrap: wrap; }
  .tb-app .tb-reservation h3 { font-size: 22px; }
  .tb-reservation__date { font-size: 12px; }
  .tb-manage-entry { padding: 28px 22px; border-radius: 8px; }
  .tb-app .tb-manage-entry h2 { font-size: 33px; }
  .tb-reservation-editor { padding: 23px 18px; border-radius: 8px; }
  .tb-app .tb-editor-heading h3 { font-size: 24px; }
  .tb-editor-heading { gap: 12px; }
  .tb-editor-actions { gap: 14px; }
  .tb-editor-actions .tb-button { min-width: 0; padding: 14px 17px; gap: 8px; font-size: 12px !important; }
  .tb-included { padding: 19px 17px; }
  .tb-app .tb-success > h3 { font-size: 33px; }
}
@media (prefers-reduced-motion: reduce) {
  .tb-app * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Mobile-first booking: crisp surfaces, swipe dates and a review before sending. */
.tb-app .tb-booking-aside h3,
.tb-app .tb-stage-heading h3,
.tb-app .tb-empty h2,
.tb-app .tb-manage-entry h2,
.tb-app .tb-success > h3 {
  font-family: "Anton", "Oswald", Impact, sans-serif;
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: 1.06;
}
.tb-app .tb-booking-aside h3 { font-size: clamp(40px,4vw,56px); }
.tb-app .tb-stage-heading h3 { font-size: clamp(36px,8vw,48px); }
.tb-date-paging { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.tb-date-paging .tb-link { min-width: 44px; min-height: 44px; text-decoration: none; font-size: 11px !important; }
.tb-date-shortcuts button:disabled { background: #151915; border-color: #343b32; color: #aab0a6; opacity: 1; }
.tb-date-shortcuts button:disabled small { color: #989f93; }
.tb-date-shortcuts button[aria-current="date"] { border-bottom-width: 3px; }
.tb-date-shortcuts button .tb-day-state { font-size: 9px; min-height: 13px; letter-spacing: .015em; }
.tb-date-shortcuts button.is-selected:not(:disabled) .tb-day-state { color: #24371c; }
.tb-date-shortcuts button.is-unavailable { opacity: .66; }
.tb-days-status { min-height: 36px; margin-top: 4px !important; }
.tb-offline-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.tb-offline-actions .tb-button { white-space: normal; }
.tb-confirm-summary { display: flex; flex-direction: column; gap: 5px; margin-top: 25px; padding: 22px; border: 1px solid #596c49; border-radius: 8px; background: #20291c; }
.tb-confirm-summary > strong { font-size: 19px; line-height: 1.4; overflow-wrap: anywhere; }
.tb-confirm-summary > span:not(.tb-summary__label) { font-size: 13px; color: #c5d0bc; }
.tb-actions--confirm { display: block; border-top: 0; margin-top: 18px; padding-top: 0; }
.tb-actions--confirm .tb-action-summary, .tb-actions--confirm .tb-action-back { display: none; }
.tb-actions--confirm .tb-button { width: 100%; min-height: 56px; font-size: 16px !important; }
@media (max-width: 880px) {
  .tb-app[data-stage="2"] { padding-bottom: 0; }
  .tb-actions--confirm { position: static; width: 100%; margin-top: 18px; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .tb-app[data-tb-booking]:not(.tb-in-view) .tb-actions--confirm { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .tb-actions:not(.tb-actions--confirm) { border-radius: 8px 8px 0 0; box-shadow: none; }
  .tb-slots { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .tb-slot { min-height: 48px; font-size: 15px; }
  .tb-confirm-summary { padding: 20px; }
}
@media (max-width: 375px) {
  .tb-calendar-field { align-items: flex-start !important; flex-direction: column !important; gap: 8px !important; }
  .tb-calendar-field input[type=date] { width: 100%; }
  .tb-offline-actions .tb-button { width: 100%; }
}

.tb-booking-intro { margin-bottom: clamp(28px,5vw,52px); max-width: 880px; }
.tb-booking-intro > .tb-eyebrow { margin-bottom: 18px; }
.tb-app .tb-booking-intro > h2 { font-family: "Anton", "Oswald", Impact, sans-serif; font-size: clamp(40px,11vw,96px); line-height: 1.04; font-weight: 400; letter-spacing: -.025em; }
.tb-booking-intro > p { margin-top: 21px; color: var(--tb-muted); font-size: clamp(15px,2vw,17px); line-height: 1.65; max-width: 560px; }
.tb-app .tb-booking-aside h3 { font-size: 36px; }

.tb-app[data-stage="2"] .tb-booking-shell { grid-template-columns: minmax(0,760px); justify-content: center; }
.tb-service__price { color: var(--tb-green); }
.tb-app .tb-empty > h2 { font-size: clamp(40px,8vw,64px); }
.tb-consent a { display: inline-flex; align-items: center; min-height: 44px; }

.tb-time-selection { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--tb-line); }
.tb-time-selection > div { display: flex; flex-direction: column; gap: 3px; }
.tb-time-selection span { color: var(--tb-muted); font-size: 12px; }
.tb-time-selection strong { color: var(--tb-green); font-size: 26px; line-height: 1.2; }
.tb-time-selection > p { max-width: 150px; color: var(--tb-muted); font-size: 13px; line-height: 1.6; text-align: right; }
@media (max-width: 880px) { .tb-app[data-stage="1"] { padding-bottom: 0; } }
