.booking-page { background: var(--cream); color: var(--ink); }
.booking-intro { display: grid; grid-template-columns: 1.25fr .75fr; gap: 6rem; align-items: end; padding-top: 5rem; padding-bottom: 3.7rem; }
.booking-intro .display { font-size: clamp(5.5rem, 11vw, 10rem); line-height: .85; margin: 1.15rem 0 1.8rem; letter-spacing: -.035em; }
.booking-intro .display span { color: var(--red); }
.booking-intro-copy { max-width: 38rem; font-size: 1.12rem; line-height: 1.65; margin: 0; }
.booking-note { margin-bottom: .25rem; border-top: 2px solid var(--ink); padding-top: 1.3rem; font-size: .9rem; line-height: 1.65; }
.booking-note-mark { color: var(--red); font-family: 'Barlow Condensed', sans-serif; font-size: 3.5rem; line-height: 1; }
.booking-note p { margin: .65rem 0; }
.booking-note a, .booking-field-help a, .booking-email a, .booking-faq a, .booking-demo-notice a, .booking-email-action { text-underline-offset: .2em; font-weight: 700; }
.booking-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 4.5rem; align-items: start; padding-top: 2.3rem; padding-bottom: 6.5rem; border-top: 1px solid rgba(33,27,23,.22); }
.booking-sidebar { padding-top: 1.3rem; }
.booking-sidebar h2 { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: clamp(3rem,5vw,4.8rem); line-height: .92; letter-spacing: -.025em; margin: 1.35rem 0 1.6rem; }
.booking-sidebar > p:not(.eyebrow) { max-width: 20rem; color: var(--muted); font-size: .95rem; line-height: 1.65; }
.booking-side-detail { display: flex; gap: 1rem; border-top: 1px solid rgba(33,27,23,.2); padding: 1.2rem 0; max-width: 21rem; }
.booking-side-detail:first-of-type { margin-top: 2rem; }
.booking-side-detail > span { color: var(--red); font-family: 'Barlow Condensed', sans-serif; font-size: 1.5rem; font-weight: 700; }
.booking-side-detail p { margin: 0; font-size: .86rem; line-height: 1.55; }
.booking-side-detail strong { font-size: .95rem; }
.booking-side-link { display: inline-block; margin-top: 1.2rem; font-size: .85rem; font-weight: 700; text-underline-offset: .25em; }
.booking-form-shell { background: #fffcf5; border: 1px solid rgba(33,27,23,.25); padding: 2.4rem; box-shadow: 8px 8px 0 rgba(33,27,23,.06); }
.booking-form-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.booking-form-top p { margin: 0; }
.booking-step-count { font-size: .65rem; letter-spacing: .1em; font-weight: 700; color: var(--muted); white-space: nowrap; }
.booking-progress { padding: 0; margin: 0 0 1.8rem; display: grid; grid-template-columns: repeat(3,1fr); gap: .65rem; list-style: none; }
.booking-progress li { display: flex; gap: .45rem; align-items: center; padding: .8rem 0; border-bottom: 3px solid #ded9ce; color: var(--muted); font-size: .72rem; font-weight: 700; }
.booking-progress li > span:first-child { width: 1.3rem; height: 1.3rem; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: .65rem; flex: 0 0 auto; }
.booking-progress .is-current { color: var(--ink); border-color: var(--red); }
.booking-progress .is-current > span:first-child { color: var(--cream); border-color: var(--ink); background: var(--ink); }
.booking-progress .is-done { color: var(--ink); border-color: var(--orange); }
.booking-demo-notice { display: flex; gap: .8rem; align-items: flex-start; background: #f9edce; padding: 1rem; margin-bottom: 2rem; border-left: 3px solid var(--orange); }
.booking-demo-notice > span { font-size: 1.4rem; line-height: 1.1; }
.booking-demo-notice p { margin: 0; font-size: .8rem; line-height: 1.5; }
.booking-step h3, .booking-complete h3 { margin: 0 0 .7rem; font-family: 'Barlow Condensed',sans-serif; font-weight: 800; letter-spacing: -.015em; font-size: 2.6rem; line-height: .95; }
.booking-step h3:focus { outline: none; }
.booking-step-description { margin: 0 0 1.9rem; font-size: .88rem; color: var(--muted); line-height: 1.6; }
.booking-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem 1rem; }
.booking-fields .full { grid-column: 1 / -1; }
.booking-field label, .booking-choice-group legend, .booking-other label { display: block; margin-bottom: .55rem; font-size: .8rem; font-weight: 700; }
.booking-field label > span[aria-hidden] { color: var(--red); }
.booking-optional { color: var(--muted); font-size: .68rem; font-weight: 400; margin-left: .3rem; }
.booking-field input, .booking-field select, .booking-field textarea, .booking-other input { color: var(--ink); background: #fffdf9; width: 100%; min-height: 3.3rem; border: 1px solid #b0a89c; border-radius: 0; padding: .85rem; font: inherit; font-size: .9rem; box-sizing: border-box; }
.booking-field input::placeholder, .booking-field textarea::placeholder, .booking-other input::placeholder { color: #756d61; opacity: 1; }
.booking-field textarea { min-height: 8rem; resize: vertical; }
.booking-field input:focus, .booking-field select:focus, .booking-field textarea:focus, .booking-other input:focus { outline: 2px solid var(--ink); outline-offset: 2px; }
.booking-field input[aria-invalid=true] { border-color: var(--red); border-width: 2px; }
.booking-field-help { margin: .55rem 0 0; color: var(--muted); font-size: .73rem; line-height: 1.5; }
.booking-field-error { color: #9a271b; margin: .5rem 0 0; font-size: .75rem; line-height: 1.5; font-weight: 700; }
.booking-actions { margin-top: 2rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.4rem; border-top: 1px solid #d7d0c5; }
.booking-actions > p { font-size: .58rem; font-weight: 700; letter-spacing: .12em; color: var(--muted); margin: 0; }
.booking-actions .button { min-height: 3.25rem; font-size: .75rem; padding: .95rem 1.1rem; gap: .75rem; }
.booking-actions button:disabled { opacity: .5; cursor: not-allowed; }
.booking-back, .booking-edit { appearance: none; background: none; border: none; color: var(--ink); font: inherit; font-size: .78rem; font-weight: 700; cursor: pointer; padding: .7rem 0; min-height: 2.75rem; min-width: 2.75rem; text-decoration: underline; text-underline-offset: .3em; }
.booking-back:hover, .booking-edit:hover { color: var(--red); }
.booking-menu-callout { display: flex; justify-content: space-between; gap: 1rem; align-items: center; border-top: 1px solid #d7d0c5; border-bottom: 1px solid #d7d0c5; padding: 1rem 0; margin-bottom: 1.8rem; }
.booking-menu-callout p { font-size: .79rem; line-height: 1.6; margin: 0; }
.booking-menu-callout a { font-size: .72rem; font-weight: 700; white-space: nowrap; text-underline-offset: .25em; }
.booking-choice-group { border: none; min-width: 0; margin: .3rem 0; padding: 0; }
.booking-choice-group .booking-field-help { margin: 0 0 .7rem; }
.booking-choices { display: flex; flex-wrap: wrap; gap: .55rem; }
.booking-choice { display: flex; align-items: center; position: relative; cursor: pointer; padding: .75rem .85rem; border: 1px solid #b0a89c; gap: .5rem; font-size: .76rem; line-height: 1.35; }
.booking-choice:has(input:checked) { background: #f9edce; border-color: var(--ink); }
.booking-choice:has(input:focus-visible) { outline: 2px solid var(--ink); outline-offset: 2px; }
.booking-choice input { width: 1rem; height: 1rem; accent-color: var(--ink); margin: 0; flex: 0 0 auto; }
.booking-other { margin-top: 1rem; }
.booking-other label { font-weight: 400; }
.booking-review { margin-top: 2rem; background: var(--cream); padding: 1.4rem; border-top: 3px solid var(--orange); }
.booking-review-top { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; border-bottom: 1px solid #d7d0c5; padding-bottom: .7rem; }
.booking-review h4 { margin: 0 auto 0 0; font-family: 'Barlow Condensed',sans-serif; font-size: 1.65rem; font-weight: 800; }
.booking-edit { font-size: .75rem; }
.booking-review dl { margin: 1rem 0 0; }
.booking-review dl > div { display: grid; grid-template-columns: 7.5rem 1fr; gap: .65rem; padding: .45rem 0; font-size: .75rem; line-height: 1.5; }
.booking-review dt { color: var(--muted); }
.booking-review dd { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.booking-submit-note { font-size: .73rem; line-height: 1.6; color: var(--muted); margin: 1.2rem 0 0; }
.booking-email { padding-top: 1.5rem; margin: 1.6rem 0 0; border-top: 1px solid #d7d0c5; color: var(--muted); font-size: .73rem; line-height: 1.6; }
.booking-email a { color: var(--ink); display: inline-block; overflow-wrap: anywhere; }
.booking-errors { padding: 1rem; border: 2px solid var(--red); color: #9a271b; font-size: .8rem; margin-bottom: 1.5rem; }
.booking-errors p { margin: 0; font-weight: 700; }
.booking-errors ul { margin: .5rem 0 0; padding-left: 1.2rem; }
.booking-errors a { color: inherit; text-underline-offset: .15em; }
.booking-complete { padding: 1.2rem 0; }
.booking-complete:focus { outline: 2px solid var(--ink); outline-offset: .65rem; }
.booking-complete h3 { font-size: clamp(2.7rem,4vw,3.6rem); margin: 1rem 0 1.3rem; }
.booking-complete > p:not(.eyebrow):not(.booking-field-help) { font-size: .9rem; line-height: 1.65; max-width: 34rem; }
.booking-complete-actions { display: flex; gap: 1.2rem; align-items: center; margin: 1.5rem 0; flex-wrap: wrap; }
.booking-complete-actions .button { font-size: .78rem; }
.booking-email-action { display: inline-block; font-size: .8rem; margin-top: .5rem; }
.booking-no-script { padding: 1rem; background: #f9edce; font-size: .85rem; line-height: 1.6; }
.booking-faq { border-top: 1px solid rgba(33,27,23,.22); padding-top: 4rem; padding-bottom: 6rem; display: grid; grid-template-columns: .7fr 1.3fr; gap: 4.5rem; }
.booking-faq h2 { font-family: 'Barlow Condensed',sans-serif; font-weight: 800; font-size: 3.2rem; letter-spacing: -.02em; line-height: .95; margin: 1rem 0 0; }
.booking-faq details { border-bottom: 1px solid rgba(33,27,23,.25); }
.booking-faq details:first-child { border-top: 1px solid rgba(33,27,23,.25); }
.booking-faq summary { list-style: none; cursor: pointer; font-size: .92rem; font-weight: 700; padding: 1.3rem 2rem 1.3rem 0; position: relative; }
.booking-faq summary::-webkit-details-marker { display: none; }
.booking-faq summary::after { content: '+'; font-size: 1.4rem; font-weight: 400; position: absolute; right: 0; top: 1rem; }
.booking-faq details[open] summary::after { content: '−'; }
.booking-faq details p { margin: -.15rem 0 1.5rem; font-size: .86rem; line-height: 1.65; color: var(--muted); }
.booking-page [hidden] { display: none !important; }
.booking-page .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 1000px) {
  .booking-intro { gap: 3rem; }
  .booking-layout, .booking-faq { gap: 2.5rem; grid-template-columns: .6fr 1.4fr; }
  .booking-form-shell { padding: 1.75rem; }
}
@media (max-width: 760px) {
  .booking-intro { padding-top: 3.2rem; padding-bottom: 2.5rem; grid-template-columns: 1fr; gap: 1.8rem; }
  .booking-intro .display { font-size: clamp(5.5rem,20vw,8rem); }
  .booking-intro-copy { font-size: 1rem; max-width: 30rem; }
  .booking-note { display: grid; grid-template-columns: 2rem 1fr; gap: .4rem .8rem; font-size: .78rem; }
  .booking-note-mark { font-size: 2.5rem; grid-row: span 2; }
  .booking-note p { margin: 0; }
  .booking-note a { grid-column: 2; }
  .booking-layout { grid-template-columns: 1fr; gap: 0; padding-top: 0; padding-bottom: 3.5rem; border: none; }
  .booking-sidebar { display: none; }
  .booking-form-shell { padding: 1.5rem; box-shadow: 5px 5px 0 rgba(33,27,23,.06); }
  .booking-faq { grid-template-columns: 1fr; padding-top: 3rem; padding-bottom: 3.5rem; gap: 1.8rem; }
  .booking-faq h2 { font-size: 2.6rem; }
  .booking-field input, .booking-field select, .booking-field textarea, .booking-other input { font-size: 1rem; }
}
@media (max-width: 430px) {
  .booking-form-shell { padding: 1.1rem; }
  .booking-progress { gap: .35rem; }
  .booking-progress li { font-size: .62rem; gap: .3rem; }
  .booking-fields { grid-template-columns: 1fr; gap: 1.2rem; }
  .booking-menu-callout { display: block; }
  .booking-menu-callout a { display: inline-block; margin-top: .8rem; }
  .booking-actions { gap: .6rem; }
  .booking-actions > p { max-width: 4rem; font-size: .55rem; line-height: 1.5; }
  .booking-actions .button { font-size: .68rem; padding: .85rem .8rem; }
  .booking-step h3 { font-size: 2.25rem; }
  .booking-review { padding: 1rem; }
  .booking-review-top { gap: .25rem 1rem; }
  .booking-review h4 { flex-basis: 100%; }
  .booking-review dl > div { grid-template-columns: 5.5rem 1fr; font-size: .72rem; }
  .booking-form-top .eyebrow { font-size: .64rem; }
}
@media (prefers-reduced-motion: reduce) { .booking-page *, .booking-page *::before, .booking-page *::after { scroll-behavior: auto !important; } }
