.booking-page{background:var(--steam-white);min-height:70vh}.booking-intro{color:var(--steam-white);text-align:center;background:var(--band-magenta);padding:4rem 20px}.booking-intro .eyebrow{color:var(--steam-white)}.booking-intro h1{max-width:880px;color:var(--steam-white);margin:0 auto 1rem}.booking-intro p{max-width:657px;color:var(--steam-white);margin:1rem auto 0}.booking-layout{max-width:1200px;color:var(--amber-deep);grid-template-columns:300px minmax(0,1fr);align-items:start;margin:3rem auto;padding:0 10px;display:grid}.booking-layout.is-confirmed{grid-template-columns:1fr}.booking-content.is-confirmed>#main-content>:not(.booking-layout){display:none}.booking-progress{min-height:570px;color:var(--steam-white);background:var(--band-magenta);padding:3rem 2rem;position:sticky;top:20px}.booking-intro,.booking-progress{background-color:var(--magenta-bright)}.booking-progress__eyebrow{color:var(--steam-white);letter-spacing:3px;text-transform:uppercase;margin:0 0 1.5rem;font-size:14px;font-weight:600;line-height:24px}.booking-progress ol{margin:0;padding:0;list-style:none}.booking-progress li{min-height:50px;color:var(--steam-white);align-items:center;gap:13px;font-size:14px;font-weight:600;line-height:24px;display:flex;position:relative}.booking-progress li:not(:last-child):after{content:"";background:var(--white-veil);width:1px;height:20px;position:absolute;top:39px;left:14px}.booking-progress li span{border:1px dashed;border-radius:50%;flex:none;place-items:center;width:29px;height:29px;font-size:14px;display:grid}.booking-progress li.is-current span{color:var(--steam-white);background:var(--magenta-deep);box-shadow:0 0 0 2px var(--steam-white);border-style:solid}.booking-progress li.is-complete span{border-style:solid;font-size:0}.booking-progress li.is-complete span:before{content:"✓";font-size:14px}.booking-summary{border-top:1px solid var(--white-veil);margin:2rem 0 0;padding-top:1.5rem}.booking-summary div+div{margin-top:1rem}.booking-summary dt{color:var(--steam-white);letter-spacing:1px;text-transform:uppercase;font-size:14px;line-height:24px}.booking-summary dd{color:var(--steam-white);font-family:var(--font-display);letter-spacing:1px;margin:3px 0 0;font-size:16px;font-weight:300;line-height:24px}.booking-progress__help{color:var(--steam-white);margin:2rem 0 0;font-size:14px;line-height:24px}.booking-progress__help a{color:var(--steam-white);text-underline-offset:3px;text-decoration:underline}.booking-panel{background:var(--steam-white);min-height:650px;padding:3rem 2rem}.booking-status{border:1px solid var(--sand-hairline);color:var(--amber-readable);background:var(--sand-wash);margin:0 0 1.5rem;padding:1rem;font-size:14px;line-height:24px}.booking-status[data-kind=error]{color:var(--magenta-deep);background:var(--magenta-veil);border-color:var(--magenta-silk)}.booking-status:focus{outline:1px solid var(--gilded-amber);outline-offset:3px}.booking-step{border:0;margin:0;padding:0 0 3rem}.booking-step+.booking-step{border-top:1px solid var(--sand-hairline);padding-top:3rem}.booking-step:disabled{opacity:.5}.booking-step legend{width:100%;color:var(--magenta-silk);font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;margin:0;padding:0;font-size:21px;font-weight:300;line-height:25px}.booking-step legend span{color:var(--amber-deep);font-family:var(--font-body);letter-spacing:1px;vertical-align:3px;margin-right:9px;font-size:14px;font-weight:600}.booking-step__hint{color:var(--amber-deep);margin:10px 0 1.5rem;font-size:14px;line-height:24px}.service-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.service-option,.time-option{border:1px solid var(--mist-border);background:var(--steam-white);color:var(--ink);font:inherit;cursor:pointer;transition:var(--ease-standard);border-radius:0}.service-option{text-align:left;flex-direction:column;align-items:flex-start;min-width:0;min-height:83px;padding:1rem;display:flex}.service-option strong{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;max-width:100%;color:var(--magenta-silk);font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;font-size:16px;font-weight:300;line-height:24px}.service-option span{color:var(--amber-deep);margin-top:4px;font-size:14px;line-height:24px}.service-option:hover,.time-option:hover{border-color:var(--gilded-amber);background:var(--amber-veil)}.service-option.is-selected,.time-option.is-selected{border-color:var(--magenta-silk);background:var(--magenta-veil)}.service-option.is-selected span{color:var(--ink)}:is(.service-option:focus-visible,.time-option:focus-visible,.booking-submit:focus-visible,.booking-again:focus-visible){outline:1px solid var(--gilded-amber);outline-offset:2px}.booking-placeholder{background:var(--cloud);height:83px;overflow:hidden}.booking-empty{color:var(--amber-deep);background:var(--cloud);grid-column:1/-1;margin:0;padding:1rem}.field-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.field{color:var(--amber-deep);gap:6px;font-size:14px;font-weight:600;line-height:24px;display:grid}.field--wide{grid-column:1/-1}.field--date{max-width:310px}.field small{color:var(--amber-deep);font-size:14px;font-weight:400}.field--provider{max-width:340px}.booking-provider{border-top:1px solid var(--sand-hairline);margin-top:1.5rem;padding-top:1.5rem}.booking-provider[hidden]{display:none}.booking-provider__hint{color:var(--amber-deep);margin:9px 0 0;font-size:14px;line-height:24px}.field select,.field input,.field textarea{border:1px solid var(--quiet-gray);width:100%;min-height:44px;color:var(--ink);background:var(--steam-white);font:inherit;transition:var(--ease-standard);border-radius:0;padding:8px 12px;font-weight:400}.field select:hover,.field input:hover,.field textarea:hover,.field select:focus,.field input:focus,.field textarea:focus{border-color:var(--gilded-amber);box-shadow:none;outline:none}:is(.field :user-invalid,.field [aria-invalid=true]){border-color:var(--magenta-deep)}:is(.field :user-invalid:focus,.field [aria-invalid=true]:focus){outline:1px solid var(--gilded-amber);outline-offset:2px}.field textarea{resize:vertical}.time-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.time-option{min-width:0;min-height:44px;padding:8px 12px;font-size:14px;font-weight:600;line-height:24px}.privacy-check{color:var(--amber-deep);grid-template-columns:24px 1fr;align-items:start;gap:10px;margin:1.5rem 0;font-size:14px;line-height:24px;display:grid}.privacy-check input{width:24px;height:24px;accent-color:var(--magenta-silk);margin:0}.privacy-check input:focus-visible{outline:1px solid var(--gilded-amber);outline-offset:2px}.privacy-check a{color:var(--magenta-silk);text-underline-offset:2px;font-weight:600;text-decoration:underline}.booking-submit,.booking-again{border:1px solid var(--magenta-silk);min-width:219px;min-height:44px;color:var(--magenta-silk);font-family:var(--font-body);text-align:center;cursor:pointer;transition:var(--ease-standard);background:0 0;border-radius:0;padding:4px 8px;font-size:14px;font-weight:600;line-height:24px;display:inline-block}.booking-submit{justify-content:center;align-items:center;gap:12px;width:100%;display:flex}.booking-submit:disabled{cursor:not-allowed;opacity:.5}.booking-submit:not(:disabled):hover,.booking-again:hover{background:var(--magenta-veil)}.booking-submit-note{color:var(--amber-deep);text-align:center;margin:10px 0 0;font-size:14px;line-height:24px}.booking-confirmation{text-align:center;max-width:657px;margin:1rem auto}.booking-confirmation .eyebrow{color:var(--amber-deep)}.booking-confirmation__mark{border:1px solid var(--gilded-amber);width:62px;height:62px;color:var(--gilded-amber);border-radius:50%;place-items:center;margin:0 auto 1.5rem;font-size:21px;display:grid}.booking-confirmation h2{margin:0 0 1rem}.booking-confirmation>p:not(.eyebrow){color:var(--amber-deep)}.booking-confirmation dl{border:1px solid var(--sand-hairline);text-align:left;margin:2rem 0}.booking-confirmation dl div{grid-template-columns:minmax(10rem,max-content) 1fr;gap:1rem;padding:1rem;display:grid}.booking-confirmation dl div+div{border-top:1px solid var(--sand-hairline)}.booking-confirmation dt{color:var(--amber-deep);letter-spacing:1px;text-transform:uppercase;-webkit-hyphens:manual;hyphens:manual;font-size:14px;font-weight:600;line-height:24px}.booking-confirmation dd{min-width:0;color:var(--ink);margin:0}.booking-confirmation .booking-reference{background:var(--sand-wash)}.booking-confirmation .booking-reference dt{color:var(--amber-readable)}.booking-reference dd{color:var(--magenta-silk);letter-spacing:1px;white-space:nowrap;font-size:21px;font-weight:600;line-height:25px}.booking-confirmation__note{font-size:14px;line-height:24px}.booking-confirmation__next{color:var(--amber-deep);margin:0 0 1rem;font-size:14px;line-height:24px}.booking-confirmation__next a{color:var(--magenta-silk);text-underline-offset:2px;font-weight:600;text-decoration:underline}.booking-confirmation address{font-style:normal}.booking-again{margin-top:1rem}[hidden]{display:none!important}@media (max-width:767px){.booking-intro{padding:2rem 20px}.booking-layout{grid-template-columns:1fr;margin-top:1.2rem;padding:0 20px}.booking-progress{min-height:0;padding:1.5rem 20px;position:static}.booking-progress ol{grid-template-columns:repeat(4,1fr);display:grid}.booking-progress li{text-align:center;flex-direction:column;gap:5px;min-height:43px}.booking-progress li:not(:last-child):after{width:calc(100% - 30px);height:1px;top:14px;left:calc(50% + 15px)}.booking-summary{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.booking-summary div+div{margin-top:0}.booking-progress__help,.booking-progress__eyebrow{display:none}.booking-panel{padding:1.5rem 20px}}@media (max-width:500px){.booking-progress li span{width:25px;height:25px}.booking-summary{display:none}.service-options,.field-grid{grid-template-columns:1fr}.field--wide{grid-column:auto}.service-option{min-height:76px}.booking-confirmation dl div{grid-template-columns:1fr;gap:3px}}.booking-category{grid-column:1/-1;margin:1rem 0 .25rem;font-size:16px}.booking-field-error{color:var(--magenta-deep);font-weight:400}.booking-payment{border-top:1px solid var(--sand-hairline);margin-top:2rem;padding-top:1.5rem}.booking-code{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.booking-code .field{flex:180px;min-width:0}.booking-code .booking-again{margin:0}.booking-payment-options{border:0;border-top:1px solid var(--sand-hairline);margin:1.5rem 0 0;padding:1.5rem 0 0}.booking-payment-options legend{color:var(--magenta-silk);font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;padding:0;font-size:16px}.booking-payment-option{min-height:44px;color:var(--amber-deep);cursor:pointer;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;font-size:16px;line-height:24px;display:grid}.booking-payment-option input{width:24px;height:24px;accent-color:var(--magenta-silk);margin:0}.booking-payment-option input:focus-visible{outline:2px solid var(--amber-readable);outline-offset:2px}.booking-payment [data-voucher-fields]{margin:1rem 0}.booking-quote{border-top:1px solid var(--sand-hairline);font-variant-numeric:tabular-nums;margin:1.5rem 0;padding:0;font-size:16px;line-height:24px}.booking-quote>div{border-bottom:1px solid var(--sand-hairline);flex-wrap:wrap;justify-content:space-between;gap:6px 1rem;padding:12px 0;display:flex}.booking-quote dt{min-width:0;color:var(--amber-deep);overflow-wrap:anywhere}.booking-quote dd{color:var(--ink);overflow-wrap:anywhere;margin:0}.booking-quote__total{font-weight:600}.booking-quote__total dd{color:var(--magenta-silk)}.booking-checkout{overflow-wrap:anywhere;max-width:657px;margin:1rem auto}.booking-checkout h2{margin:0 0 1.5rem}.booking-checkout__actions{flex-direction:column;align-items:stretch;gap:12px;margin:1.5rem 0;display:flex}.booking-checkout__actions .booking-again{margin:0}.booking-checkout .booking-submit{box-sizing:border-box;text-decoration:none}.booking-checkout [data-checkout-reference]{color:var(--magenta-silk);font-weight:600}.booking-checkout [data-checkout-expiry]{color:var(--amber-deep);font-size:14px;line-height:24px}.booking-again:disabled{cursor:not-allowed;opacity:.5}@media (max-width:767px){.booking-payment .field input{font-size:16px}}@media (max-width:500px){.booking-code{flex-direction:column;align-items:stretch}.booking-code .field{flex-basis:auto}.booking-code .booking-again,.booking-checkout__actions>*{width:100%;min-width:0}}
