.booking-page{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:10%;align-items:start;padding-block:70px 110px}
.booking-intro{position:sticky;top:125px}
.booking-intro h1{font-size:clamp(48px,5.1vw,76px);line-height:1.06;letter-spacing:-.05em;margin:25px 0}
.booking-intro>p:not(.eyebrow){font-size:20px;line-height:1.7;max-width:430px;color:#59615c}
.booking-note{max-width:410px;font-size:15px;line-height:1.75;color:#68716b;margin:28px 0}
.booking-panel{min-width:0;padding:32px;border:1px solid var(--card-border);border-radius:var(--card-radius);background:#fff}
.booking-progress{display:flex;list-style:none;gap:20px;margin:0 0 32px;padding:0 0 24px;border-bottom:1px solid var(--card-border)}
.booking-progress li{flex:1;font-size:12px;line-height:1.6;color:#838c85}.booking-progress li span{display:block;font-size:14px}
.booking-progress li[aria-current=step]{color:#171b18;font-weight:500}
.booking-page fieldset{min-width:0;border:0;padding:0;margin:0}.booking-step[hidden],.booking-success[hidden],.booking-error[hidden],.booking-actions [hidden],.booking-page label[hidden]{display:none!important}
.booking-page .sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#booking-form,.booking-success{scroll-margin-top:calc(var(--site-header-height,76px) + 20px)}
.booking-step-heading{margin-bottom:26px}.booking-step-heading .motion-doodle{width:52px;height:52px;margin-bottom:16px}
.booking-step-heading h2,.booking-success h2{font-size:32px;line-height:1.2;margin:0;letter-spacing:-.035em}
.booking-page label{display:block;font-size:14px;line-height:1.6;margin-bottom:22px;color:#242b26}
.booking-page label>span{color:#6b736e}
.booking-page input,.booking-page select,.booking-page textarea{display:block;width:100%;max-width:100%;min-width:0;min-height:48px;margin-top:8px;padding:12px 14px;border:1px solid #bfc7c1;border-radius:12px;background:#fff;color:#171b18;font:inherit;font-size:16px;line-height:1.5}
.booking-page input:focus-visible,.booking-page select:focus-visible,.booking-page textarea:focus-visible{outline:2px solid #171b18;outline-offset:3px}
.booking-page input:disabled,.booking-page select:disabled{background:#f6f7f6}
.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.booking-fine{font-size:13px;line-height:1.75;color:#68716b;margin:18px 0}
.booking-actions{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:30px}.booking-actions .button{margin-left:auto;min-height:48px;white-space:normal}
.booking-actions .button>[data-booking-submit-label]{font-size:inherit;line-height:inherit}
.booking-confirmation-note{margin-bottom:0}
.booking-review{display:flex;flex-direction:column;gap:5px;padding:20px;border:1px solid var(--card-border);border-radius:12px;background:var(--card-support-surface);font-size:14px;line-height:1.7;margin:0 0 28px}.booking-review .text-button{align-self:flex-start;margin-top:8px;text-decoration:underline;text-underline-offset:4px}
.booking-date-shortcuts{display:flex;gap:8px;margin:-8px 0 15px}.booking-date-shortcuts button{border:1px solid #cbd1cc;border-radius:9px;background:#f6f7f6;color:#242b26;font:inherit;font-size:14px;padding:9px 12px;min-height:40px;cursor:pointer}
.booking-extra{margin:0 0 22px}.booking-extra summary{display:flex;justify-content:space-between;gap:14px;cursor:pointer;font-size:14px;line-height:1.6;padding:14px 0;border-block:1px solid var(--card-border)}.booking-extra summary>span{color:#747d76}.booking-extra textarea{margin-top:18px}
.booking-page .booking-check{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.75;margin:22px 0}.booking-check input{width:18px;height:18px;min-height:18px;flex:none;margin:3px 0 0;padding:0}.booking-check a{text-decoration:underline;text-underline-offset:3px}
.booking-error{padding:15px;border:1px solid #b96451;border-radius:12px;background:#fff8f5;color:#8d3828;font-size:15px;line-height:1.6;margin:0 0 25px}
.booking-success .motion-doodle{width:76px;height:76px;margin-bottom:25px}.booking-success .eyebrow{margin-bottom:14px}.booking-success>p:not(.eyebrow){margin-top:22px;font-size:17px;line-height:1.75}.booking-success .button{margin-top:24px}
.booking-no-script{grid-column:1/-1;font-size:16px;padding:24px;background:#f5f6f4;border-radius:12px}
@media(max-width:1100px){.booking-page{gap:6%;grid-template-columns:.8fr 1.2fr}.booking-panel{padding:26px}.booking-intro h1{font-size:58px}}
@media(max-width:760px){.booking-page{display:block;padding-block:38px 65px}.booking-intro{position:static}.booking-intro h1{font-size:clamp(46px,10vw,64px);margin-block:20px}.booking-intro>p:not(.eyebrow){font-size:18px}.booking-note{font-size:14px;margin-block:20px}.booking-intro>.line-link{margin-top:0}.booking-panel{margin-top:35px;padding:24px 20px}.booking-step-heading h2,.booking-success h2{font-size:28px}.booking-progress{gap:12px}.booking-progress li span{font-size:13px}.booking-actions{gap:12px}.booking-actions .button{font-size:14px;padding-inline:16px}.booking-fields{gap:12px}.booking-success>p:not(.eyebrow){font-size:16px}}
@media(max-width:370px){.booking-panel{padding:20px 16px}.booking-progress{gap:7px}.booking-actions .button{padding-inline:12px}.booking-step-heading h2{font-size:26px}}
@media(max-width:760px){.booking-actions{flex-wrap:wrap;justify-content:flex-start;padding-right:44px}.booking-actions .button{margin-left:0}}

.booking-step:not([hidden]) .motion-doodle-reel,.booking-success:not([hidden]) .motion-doodle-reel{animation:fabiola-ink-reel 1120ms steps(7,end) both}
@media(prefers-reduced-motion:reduce){.booking-step:not([hidden]) .motion-doodle-reel,.booking-success:not([hidden]) .motion-doodle-reel{animation:none;transform:translateX(-448px)}}
.booking-page .honey{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
