/* Booking continues the studio's blush / plum material system. */
.booking-suite{background:#f2e4eb;color:#30232d;position:relative;scroll-margin-top:84px}.anchor-alias{position:absolute;top:0}.booking-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:48px}.booking-heading h2{font-size:clamp(42px,5vw,76px);line-height:1.03;letter-spacing:-.04em;margin:20px 0 0}.booking-heading>p{font-size:17px;line-height:1.65;max-width:360px;margin:0 0 6px}.appointment-shell{background:#fcf9fa;border:1px solid #dfcbd6;border-radius:16px;box-shadow:0 24px 60px #623c4d12;overflow:hidden}.appointment-progress{list-style:none;display:flex;gap:36px;padding:24px 32px;margin:0;border-bottom:1px solid #e6d8df;font-size:13px;font-weight:600;color:#76606d}.appointment-progress li{display:flex;align-items:center;gap:10px}.appointment-progress span{font-size:11px;display:grid;place-items:center;width:28px;height:28px;border:1px solid #dac7d2;border-radius:50%}.appointment-progress [aria-current]{color:#743c56}.appointment-progress [aria-current] span{background:#743c56;color:#fcf9fa;border-color:#743c56}.appointment-grid{display:grid;grid-template-columns:1.05fr 1fr}.appointment-selection{background:#f5edf1;border-right:1px solid #e6d8df;min-width:0}.appointment-panel{padding:32px 40px;min-width:0}.appointment-panel-top{display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;padding-bottom:26px}.appointment-panel-top>span{font-size:11px;color:#755c6c}.appointment-panel .eyebrow{font-size:10px;margin:0}.appointment-panel h3{font-size:clamp(30px,3vw,44px);letter-spacing:-.035em;line-height:1.12;margin:12px 0 20px}.appointment-panel p{font-size:14px;line-height:1.65}.service-option{position:relative;display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:16px;padding:22px 28px;border-bottom:1px solid #e5d7df;cursor:pointer;transition:background .18s}.service-option:last-child{border-bottom:0}.service-option:has(input:checked){background:#ead2df;box-shadow:inset 4px 0 #82465f}.service-option:hover{background:#eedfe7}.service-option input{appearance:none;position:absolute;inset:0;width:100%;height:100%;margin:0;border-radius:0;cursor:pointer}.service-option input:focus-visible{outline:3px solid #82465f;outline-offset:-4px}.service-option img{width:56px;height:68px;object-fit:cover;border-radius:6px}.service-option strong{font-size:15px;font-weight:650;display:block;line-height:1.4}.service-option small{display:block;font-size:11px;margin-top:5px;color:#705768}.service-option .service-guide{font-size:13px;font-weight:650;text-align:right;max-width:90px;line-height:1.5}.service-guide span{font-size:10px;font-weight:500;display:block}.appointment-cost{margin:32px 0 24px}.appointment-cost>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid #e6d8df}.appointment-cost dt{font-size:12px;color:#705768}.appointment-cost dd{margin:0;font-size:18px;font-weight:600;text-align:right}.appointment-cost>div:first-child dd{font-size:30px;letter-spacing:-.03em}.appointment-panel .guide-note{font-size:12px;background:#f2e9ee;border:1px solid #e7d7e0;border-radius:8px;padding:16px;line-height:1.65}.appointment-panel .button{font-size:13px;min-height:48px}.appointment-panel #choose-visit{width:100%;margin-top:12px}.appointment-panel .appointment-small{font-size:11px;color:#705768;line-height:1.6;margin:12px 0 20px}.booking-help{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e6d8df;margin-top:28px;padding-top:20px;font-size:11px;color:#705768}.booking-help .button{min-height:40px;font-size:11px;padding:10px 14px}.appointment-panel label{display:block;font-size:12px;font-weight:600;margin:20px 0 8px}.appointment-panel label span{font-weight:400;color:#705768}.appointment-panel input:not([type=checkbox]),.appointment-panel select,.appointment-panel textarea{display:block;width:100%;max-width:100%;box-sizing:border-box;border:1px solid #d7becd;border-radius:8px;background:#fcf9fa;color:#30232d;font:inherit;font-size:14px;padding:13px 12px;min-height:48px;box-shadow:inset 0 2px 3px #5b304b05}.appointment-panel input:focus,.appointment-panel select:focus,.appointment-panel textarea:focus{outline:2px solid #82465f;outline-offset:3px}.appointment-panel textarea::placeholder,.appointment-panel input::placeholder{color:#78606f;opacity:1}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field-trap{display:none}.appointment-actions{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-top:28px;flex-wrap:wrap}.appointment-actions .button{flex:1}.appointment-review-list{margin:28px 0}.appointment-review-list div{border-bottom:1px solid #e6d8df;padding:14px 0;display:grid;grid-template-columns:100px 1fr;gap:12px;font-size:13px}.appointment-review-list dt{color:#705768}.appointment-review-list dd{margin:0;overflow-wrap:anywhere}.appointment-panel .consent-row{display:flex;gap:12px;align-items:flex-start;font-size:12px;font-weight:400;line-height:1.6}.consent-row input{accent-color:#82465f;width:20px;height:20px;flex-shrink:0;margin-top:2px}.inline-privacy{border:1px solid #cbb1c0;border-radius:5px;padding:3px 6px;background:#f2e4eb;font:inherit;color:#61374d;cursor:pointer;min-height:32px}.appointment-panel [hidden],.appointment-selection [hidden]{display:none!important}#selected-visual{height:100%;min-height:650px;position:relative;overflow:hidden}#selected-visual>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}#selected-visual:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#241b21d9)}#selected-visual>div{position:absolute;z-index:1;bottom:40px;left:36px;right:36px;color:#fcf9fa}#selected-visual h3{font-size:42px;line-height:1.1;letter-spacing:-.03em;margin:14px 0}#selected-visual p{font-size:14px;line-height:1.6;max-width:32ch}#appointment-feedback{color:#7d294b;min-height:24px;font-size:13px;margin:16px 0 0}.booking-loading{padding:32px}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.status-page{max-width:760px;margin:100px auto;padding:32px}.status-page h1{font-size:clamp(38px,6vw,64px);line-height:1.05;letter-spacing:-.04em}.status-page .appointment-panel{border:1px solid #dfcbd6;border-radius:16px;background:#fcf9fa;margin-top:36px}.status-page .status-reference{font-size:12px;overflow-wrap:anywhere;color:#705768}.status-pill{display:inline-block;padding:8px 12px;background:#ead2df;border-radius:6px;font-size:12px;font-weight:600}.status-page .button{margin:8px 8px 0 0}.status-page .status-important{font-size:14px;line-height:1.65}.status-page label{line-height:1.6}.status-policy{white-space:pre-wrap;font-size:13px;line-height:1.6;padding:16px;border-radius:8px;background:#f2e4eb}.status-error{color:#8b3050}.status-page input[type=checkbox]{accent-color:#82465f;width:18px;height:18px;margin-right:8px}
@media(max-width:999px){.appointment-panel{padding:28px}.service-option{padding:20px;gap:12px;grid-template-columns:44px 1fr auto}.service-option img{width:44px;height:60px}.service-option strong{font-size:13px}.field-pair{grid-template-columns:1fr;gap:0}.appointment-progress{gap:24px;padding:20px 24px}}
@media(max-width:650px){.booking-heading{display:block;margin-bottom:30px}.booking-heading>p{font-size:14px;margin-top:24px}.appointment-grid{grid-template-columns:1fr}.appointment-selection{border-right:0;border-bottom:1px solid #e6d8df}.appointment-progress{gap:16px;padding:20px 16px;justify-content:space-between;font-size:10px}.appointment-progress span{width:22px;height:22px;font-size:9px}.appointment-progress li{gap:6px}.appointment-panel{padding:24px 20px}.service-option{padding:16px 20px;grid-template-columns:42px 1fr auto}.service-option img{width:42px;height:52px}.service-option small{font-size:10px}.service-option .service-guide{font-size:12px}.appointment-panel-top{padding-bottom:18px}.appointment-cost{margin:24px 0}.appointment-panel h3{font-size:34px}.appointment-cost>div:first-child dd{font-size:26px}#selected-visual{min-height:220px;height:220px}#selected-visual>img{object-position:center 40%}#selected-visual>div{bottom:20px;left:22px;right:22px}#selected-visual h3{font-size:28px;margin:8px 0}#selected-visual p{display:none}.appointment-review-list div{grid-template-columns:82px 1fr;font-size:12px}.booking-help{font-size:10px}.status-page{padding:24px 18px;margin:48px auto}.status-page .appointment-panel{padding:24px 20px}.appointment-actions .button{padding:14px 12px;white-space:normal}.field-pair{grid-template-columns:1fr 1fr;gap:12px}.field-pair:has(#visitor-name){grid-template-columns:1fr;gap:0}}
@media(prefers-reduced-motion:reduce){.service-option{transition:none}}
/* Second pass: the radio is an invisible hit target, never a painted surface. */
.service-option input{opacity:0}.service-option:has(input:focus-visible){outline:3px solid #82465f;outline-offset:-4px}.appointment-panel{align-self:start;position:sticky;top:84px}.appointment-shell{scroll-margin-top:90px}
@media(max-width:650px){.appointment-panel{position:static}.service-option{min-height:80px}.appointment-grid:has(#appointment-details:not([hidden])) #selected-visual{height:180px;min-height:180px}.booking-heading h2{font-size:44px}.appointment-progress{position:relative}.appointment-shell{scroll-margin-top:76px}}

.appointment-shell{overflow:clip}

@media(max-width:359px){.field-pair{grid-template-columns:1fr;gap:0}.appointment-progress{gap:8px;padding:16px 12px}.appointment-progress li{gap:4px;font-size:9px}.service-option{padding:14px 16px;gap:10px}.service-option strong{font-size:12px}.service-option .service-guide{font-size:11px}}

@media(max-width:650px){.appointment-panel input:not([type=checkbox]),.appointment-panel select,.appointment-panel textarea{font-size:16px;min-width:0}.appointment-panel{scroll-margin-top:76px}}
/* The site already sets scroll-padding for its fixed header. */
.appointment-shell,.appointment-panel{scroll-margin-top:0}
