/* Dedicated booking: the calendar owns the scroll, never the sales page. */
html:has(.booking-page){height:100%;scroll-padding-top:0;scroll-behavior:auto;overflow:hidden}
.booking-page{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--paper)}
.booking-header{flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;min-height:76px;padding:8px max(24px,env(safe-area-inset-right)) 8px max(24px,env(safe-area-inset-left));background:var(--cream);border-bottom:1px solid var(--line)}
.booking-back{display:inline-flex;align-items:center;gap:5px;min-height:44px;width:fit-content;font-size:13px;font-weight:500;color:#654b76}
.booking-back svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.booking-brand b{font-size:32px}
.booking-session{text-align:right;font-size:13px;line-height:1.4}
.booking-session p{font-weight:600;font-variant-numeric:tabular-nums}
.booking-session a{display:inline-flex;align-items:center;justify-content:flex-end;min-height:30px;font-size:12px;color:#654b76;text-decoration:underline;text-underline-offset:3px}
.booking-help{justify-self:end;display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:#654b76;text-decoration:underline;text-underline-offset:4px}
.booking-main{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;outline:none}
.booking-page.is-booking .booking-main{overflow:hidden}
.booking-workspace,.booking-workspace #booking-frame-mount{height:100%;width:100%;min-height:0;position:relative}
.booking-workspace iframe{height:100%;width:100%;display:block;border:0;background:white}
.booking-loading{position:absolute;z-index:1;inset:0;display:grid;place-items:center;background:var(--paper);pointer-events:none;font-size:15px;color:var(--body)}
.booking-footer{flex:none;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0 30px;padding:0 max(20px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(20px,env(safe-area-inset-left));background:var(--cream);border-top:1px solid var(--line);font-size:11px;line-height:1.5}
.booking-footer a{display:inline-flex;align-items:center;min-height:40px;color:#654b76;text-decoration:underline;text-underline-offset:3px}
.booking-footer svg{width:13px;height:13px;margin-left:4px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.booking-policies{display:flex;gap:20px}
.booking-choice{max-width:1320px;margin:auto;min-height:100%;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr);gap:64px;padding:64px 40px;align-items:center}
.booking-choice h1{font-size:52px;margin-bottom:18px}
.booking-intro{font-size:15px;line-height:1.75;color:var(--body);max-width:55ch}
.booking-options{margin-top:24px}
.booking-options article{padding:26px 0;border-top:1px solid var(--line)}
.booking-option-title{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.booking-option-title h2{font-size:33px}
.booking-option-title>p{font-size:20px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.booking-option-title small{font-size:11px;font-weight:400}
.booking-duration{font-size:13px;color:#654b76;margin-top:6px;margin-bottom:12px}
.booking-options article>p:not(.booking-duration){font-size:14px;line-height:1.7;color:var(--body);max-width:55ch}
.booking-options .btn{margin-top:18px;min-width:215px}
.booking-choice-note{font-size:12px;line-height:1.8;color:var(--body)}
.booking-choice-note a{display:block;width:fit-content;min-height:44px;align-content:center;text-decoration:underline;text-underline-offset:4px;color:#654b76}
.booking-choice-art{align-self:center;position:relative;height:min(620px,72vh);min-height:450px;border-radius:120px 120px 8px 8px;overflow:hidden;background:var(--cream2)}
.booking-choice-art img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:94% center}
.booking-choice-art .script{position:absolute;left:20px;right:20px;bottom:34px;text-align:center;font-size:38px;color:var(--ink);background:var(--cream);padding:16px 8px;border-radius:6px}
.booking-noscript{margin-top:20px;padding:20px;background:var(--cream2)}
.booking-noscript a{display:block;text-decoration:underline;padding-block:10px}
.booking-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(hover:hover){.booking-header a:hover,.booking-footer a:hover{color:#8b5a93}.booking-options .btn:hover{transform:translateY(-1px)}}
@media(max-width:850px){.booking-choice{grid-template-columns:1fr;max-width:680px;padding:40px 24px;gap:0}.booking-choice-art{display:none}.booking-choice h1{font-size:44px}}
@media(max-width:600px){.booking-header{min-height:72px;gap:8px;padding:6px max(14px,env(safe-area-inset-right)) 6px max(14px,env(safe-area-inset-left));grid-template-columns:auto 1fr auto}.booking-brand{justify-self:center}.booking-brand b{font-size:25px}.booking-back{font-size:12px;gap:0;min-width:44px}.booking-back svg{width:17px}.booking-session{font-size:11px}.booking-session a{font-size:11px;min-height:36px}.booking-footer{padding-inline:12px;gap:0 20px;font-size:11px}.booking-page.is-booking .booking-policies{gap:12px}.booking-page.is-booking .booking-footer{gap:0 14px}.booking-choice{padding:32px 22px}.booking-choice h1{font-size:40px}.booking-intro{font-size:14px}.booking-option-title h2{font-size:30px}.booking-option-title>p{font-size:19px}.booking-options article{padding:23px 0}.booking-options .btn{width:100%}.booking-choice-note{font-size:11px}.booking-help{font-size:11px}.booking-footer a{min-height:40px}}
@media(max-width:360px){.booking-brand b{font-size:21px}.booking-session{font-size:11px}.booking-back span{display:none}.booking-header{grid-template-columns:32px 1fr auto;padding-inline:10px}.booking-back{min-width:32px}.booking-choice h1{font-size:36px}.booking-option-title h2{font-size:28px}}

.booking-options .btn{font-size:12px}
