.booking-heading{padding:60px 7% 45px;background:var(--cream)}
.booking-heading h1{font-size:clamp(2.8rem,4.7vw,5rem);margin-bottom:22px}
.booking-heading>p:not(.eyebrow){max-width:740px}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:8%;padding-top:55px;align-items:start}
.booking-layout [hidden]{display:none!important}
.booking-step{padding:0 0 40px;margin-bottom:40px;border-bottom:1px solid var(--line)}
.booking-step .eyebrow{margin-bottom:14px}
.booking-step h2,.booking-summary h2,.booking-review h2{font-size:clamp(2rem,3vw,3rem);margin-bottom:26px}
.booking-layout fieldset{border:0;margin:0;padding:0;min-width:0}
.booking-layout legend,.booking-label{display:block;font-size:16px;margin:22px 0 10px}
.booking-layout select,.booking-layout input:not([type=radio]):not([type=checkbox]){width:100%;min-width:0;min-height:52px;padding:13px 14px;border:1px solid #a99d94;border-radius:6px;background:#fff;color:var(--ink);font:inherit}
.booking-layout input:focus-visible,.booking-layout select:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.booking-small{font-size:14px;color:var(--muted);margin:18px 0;line-height:1.65}
.booking-small a{text-decoration:underline;text-underline-offset:3px}
.booking-categories{display:flex;flex-wrap:wrap;gap:8px}
.booking-categories label,.booking-times label{position:relative;cursor:pointer}
.booking-categories input,.booking-times input{position:absolute;opacity:0;width:1px;height:1px}
.booking-categories span,.booking-times span{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);padding:11px 14px;min-height:46px;font-size:14px}
.booking-categories input:checked+span,.booking-times input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.booking-categories input:focus-visible+span,.booking-times input:focus-visible+span{outline:2px solid var(--ink);outline-offset:3px}
.booking-addons label{display:flex;align-items:flex-start;gap:12px;padding:10px 0;font-size:16px}
.booking-addons input{accent-color:var(--ink);width:18px;height:18px;margin-top:4px;flex-shrink:0}
.booking-calendar{max-width:500px;border:1px solid var(--line);padding:20px}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}
.calendar-heading h3{font-size:22px;letter-spacing:-.02em}
.calendar-heading button,.calendar-days button{border:0;background:none;color:var(--ink);font:inherit;cursor:pointer;min-height:44px}
.calendar-heading button{width:44px;font-size:23px}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.calendar-weekdays{font-size:12px;color:var(--muted);margin-bottom:10px}
.calendar-days button{padding:0;font-size:15px}
.calendar-days button:hover:not(:disabled){background:var(--cream)}
.calendar-days button[aria-current=date]{text-decoration:underline;text-underline-offset:5px}
.calendar-days button[aria-pressed=true],.calendar-days button[aria-pressed=true]:hover{background:var(--ink);color:#fff}
.calendar-days button:disabled,.calendar-heading button:disabled{color:#bdb4ad;cursor:default}
.booking-times #time-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.booking-summary{position:sticky;top:155px;background:var(--cream);padding:32px;min-width:0}
.booking-summary .eyebrow{margin-bottom:17px}
.booking-layout dl{margin:0}
.booking-layout dt{font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:23px}
.booking-layout dd{margin:7px 0 0;font-size:17px;overflow-wrap:anywhere}
.booking-summary .booking-small{margin-top:28px}
.booking-layout .button{border:0;cursor:pointer;min-height:48px}
.booking-layout .button:disabled{opacity:.5;cursor:default}
.field-error{color:#9c3026;font-size:14px;margin:8px 0 15px}
.booking-layout [aria-invalid=true]{border-color:#9c3026!important}
.booking-review{grid-column:1/-1;max-width:780px;border-top:1px solid var(--line);padding-top:35px}
.booking-review dl{margin-bottom:25px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px 22px}
.booking-review dt,.booking-review dd{margin:0;align-self:baseline}
.booking-review .actions{margin:26px 0}
.booking-edit{background:none;border:0;border-bottom:1px solid var(--gold);padding:12px 0;font:inherit;cursor:pointer;color:var(--ink)}
#booking-status{font-size:15px;color:var(--muted)}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0!important;margin:-1px!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0!important}
.shop-coming{min-height:65vh;max-width:none;background:var(--cream);text-align:center;padding-top:90px;padding-bottom:90px}
.shop-coming h1{font-size:clamp(3rem,5vw,5.5rem)}
.shop-coming>p:not(.eyebrow){max-width:500px;margin:24px auto;font-size:18px;color:var(--muted)}
.shop-coming .button{margin-top:10px}
@media(max-width:900px){.booking-layout{grid-template-columns:minmax(0,1fr);gap:0}.booking-summary{position:static;grid-row:2;margin-bottom:40px}.booking-review{grid-row:3}.booking-summary dl{display:grid;grid-template-columns:1fr 1.8fr;gap:12px 20px}.booking-summary dt,.booking-summary dd{margin:0}.booking-calendar{max-width:none}}
@media(max-width:560px){.booking-heading{padding:40px 7% 30px}.booking-layout{padding-top:35px}.booking-calendar{padding:12px}.calendar-weekdays,.calendar-days{gap:3px}.booking-times #time-options{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-summary{padding:26px}.booking-review dl{grid-template-columns:1fr;gap:5px}.booking-review dd{margin-bottom:12px}.booking-categories span{padding:11px 12px}.shop-coming{padding-top:60px;padding-bottom:60px}}

.booking-payment-note{font-size:15px;border-left:2px solid #ae846b;padding:10px 14px;background:#f6f3ef;color:#312c29;margin:20px 0}

.booking-categories span,.booking-times span,.booking-calendar,.booking-summary,.booking-payment-note,.booking-integration-notice,.calendar-heading button,.calendar-days button{border-radius:6px}

.booking-integration-notice{grid-column:1/-1;padding:14px 18px;background:#f6f3ef;border:1px solid #d4b49b;font-size:15px;margin-bottom:24px}
#stripe-checkout[aria-disabled=true]{opacity:.6;cursor:wait}

.booking-hero{display:grid;grid-template-columns:52% 48%;min-height:360px;background:var(--ink,#312c29);color:#fff}
.booking-hero-copy{padding:52px 12% 52px 13.46%;align-self:center}
.booking-hero-copy .eyebrow{color:#d4b49b;margin-bottom:26px}
.booking-hero-copy h1{font-size:clamp(2.8rem,4.7vw,4.6rem);line-height:1.06;letter-spacing:-.04em;margin:0 0 24px;max-width:580px}
.booking-hero-copy>p:last-child{max-width:420px;color:#e0d6cd;font-size:18px;line-height:1.6;margin:0}
.booking-hero-image{position:relative;overflow:hidden;min-height:360px}
.booking-hero-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%}
.booking-hero+.booking-heading{padding-top:36px;padding-bottom:36px}
@media(max-width:700px){.booking-hero{grid-template-columns:1fr}.booking-hero-copy{padding:36px 7%}.booking-hero-copy h1{font-size:2.8rem;max-width:440px}.booking-hero-copy>p:last-child{font-size:16px}.booking-hero-image{min-height:0;height:240px}.booking-hero-image img{object-position:center 45%}.booking-hero+.booking-heading{padding-top:28px;padding-bottom:28px}}

.booking-call-time{border:1px dashed #9b8271;background:#f6f3ef;color:#312c29;border-radius:6px;padding:12px 14px;min-height:44px;font:inherit;cursor:pointer}.booking-call-time:hover,.booking-call-time:focus-visible{background:#eeece5;outline:2px solid #a68550;outline-offset:2px}#minimum-notice-message a{color:inherit;text-decoration:underline}
