.booking-dialog{max-width:920px;width:calc(100% - 64px);padding:0;border-radius:12px;overflow:hidden;background:var(--paper);max-height:min(800px,calc(100dvh - 56px))}.booking-dialog[open]{animation:dialog-in .4s both}.booking-top{height:75px;display:flex;align-items:center;border-bottom:1px solid var(--line);padding:18px 30px;position:relative;background:var(--paper)}.booking-home{font-family:var(--serif);font-size:18px;line-height:1.3}.booking-home small{display:block;font-family:var(--sans);font-size:7px;letter-spacing:1.9px;margin-top:4px}.booking-top .dialog-close{top:16px;right:20px;width:44px;height:44px;font-size:30px}.booking-shell{display:grid;grid-template-columns:255px minmax(0,1fr);height:min(660px,calc(100dvh - 132px))}.booking-aside{background:#e9f0ef;padding:37px 28px;position:relative;overflow:auto}.booking-aside:after{content:'';position:absolute;width:170px;height:220px;border:1px solid #91a8b127;border-radius:50%;bottom:22px;left:-90px;transform:rotate(-30deg);pointer-events:none}.booking-aside .eyebrow{font-size:8px;letter-spacing:1.7px}.booking-aside h2{font-size:36px;letter-spacing:-1.2px}.booking-aside>p:not(.eyebrow){font-size:11px;line-height:1.8;margin-top:22px}.booking-recap{margin-top:32px;border-top:1px solid #cedcdb;padding-top:7px}.booking-recap>small{font-size:8px;letter-spacing:1.4px;color:#738d95;display:block;margin-top:19px}.booking-recap>strong{font-size:13px;line-height:1.5;display:block;margin-top:5px;font-weight:500}.booking-recap>p{font-size:10px;margin-top:3px}.booking-aside-bottom{font-size:9px;color:#83969c;margin-top:42px;line-height:1.8}.booking-aside-bottom>span{font-size:20px;display:block;margin-bottom:10px}.booking-main{display:flex;flex-direction:column;min-height:0;min-width:0}.booking-steps{display:flex;align-items:center;justify-content:space-between;padding:24px 30px;margin:0;list-style:none;gap:15px;border-bottom:1px solid var(--line)}.booking-steps li{font-size:9px;color:#94a2a5;display:flex;align-items:center;gap:7px;white-space:nowrap}.booking-steps li>span{width:23px;height:23px;display:grid;place-items:center;border:1px solid #d2dddf;border-radius:50%;font-size:9px}.booking-steps .current{color:var(--ink);font-weight:600}.booking-steps .current>span{border-color:var(--blue);background:var(--blue);color:white}.booking-steps .complete>span{background:#dfeae7;color:#5c7a73;border-color:transparent}.booking-scroll{padding:30px;overflow-y:auto;flex:1;scrollbar-width:thin;overscroll-behavior:contain}.booking-scroll h3{font-family:var(--serif);font-size:27px;letter-spacing:-.6px;outline:none;line-height:1.3}.step-description{font-size:11px;line-height:1.8;margin-top:10px;margin-bottom:24px}.booking-footer{border-top:1px solid var(--line);padding:18px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--paper)}.booking-footer .btn{font-size:11px;margin-left:auto;min-height:46px;gap:12px;padding:12px 20px}.booking-back{color:var(--muted);background:none;font-size:11px;min-height:44px;padding:0}.btn:disabled{cursor:default;opacity:.48;transform:none;box-shadow:none}.unit-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-block:22px 25px}.unit-choice{background:transparent;border:1px solid #cbd7d7;border-radius:6px;padding:16px;text-align:left;color:var(--ink);transition:border-color .2s,background .2s,transform .2s;position:relative}.unit-choice:hover{background:#edf3f2;transform:translateY(-2px)}.unit-choice.selected{border-color:#6e919a;background:#eaf1ef;box-shadow:inset 0 0 0 1px #6e919a}.unit-choice.selected:after{content:'✓';position:absolute;right:13px;top:13px;font-size:11px;color:var(--blue)}.choice-icon{display:block;font-size:21px;line-height:1;margin-bottom:10px;color:#83a0a6}.unit-choice strong{display:block;font-size:12px;font-weight:500}.unit-choice small{display:block;font-size:9px;line-height:1.7;color:var(--muted);margin-top:6px}.booking-input-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.booking-input-row>div{min-width:0}.booking-dialog input,.booking-dialog select{font-size:11px;margin-bottom:18px;padding:11px 12px;min-height:44px;background:var(--paper)}.booking-dialog label{font-size:10px}.session-detail{display:flex;justify-content:space-between;gap:15px;font-size:10px;border-top:1px solid var(--line);padding-block:17px}.session-detail strong{font-weight:500}.booking-data-note{font-size:9px;line-height:1.8;color:#829195;margin-top:12px}.booking-loading{border-radius:6px;height:250px;display:flex;align-items:center;justify-content:center;font-size:12px;background:linear-gradient(110deg,#edf2ef 20%,#f8faf7 50%,#edf2ef 80%);background-size:250% 100%;animation:shimmer 2s linear infinite}.booking-alert{border:1px solid #e1c8b4;background:#fbf2e8;color:#855e40;border-radius:6px;padding:13px 16px;font-size:11px;line-height:1.8;margin-bottom:22px}.booking-alert[hidden]{display:none}.booking-alert .text-link{margin-top:7px;font-size:11px}.date-strip{display:flex;gap:7px;overflow:auto;padding-block:2px 9px;scrollbar-width:thin}.date-tile{min-width:52px;min-height:79px;border:1px solid #d0dbdc;border-radius:6px;background:transparent;color:var(--ink);padding:9px 5px;display:flex;flex-direction:column;align-items:center;gap:3px;transition:background .2s,color .2s,border-color .2s}.date-tile small{font-size:9px;line-height:1.2;text-transform:capitalize}.date-tile strong{font-size:21px;font-family:var(--serif);font-weight:400;line-height:1.2}.date-tile.selected{background:var(--blue);border-color:var(--blue);color:white}.date-tile:hover:not(.selected){background:#e7efec}.other-date{display:flex;align-items:center;gap:15px;justify-content:flex-end;margin-top:13px;padding-bottom:15px;border-bottom:1px solid var(--line)}.other-date label{font-size:10px;margin:0}.other-date input{width:150px;margin:0;min-height:35px;padding:7px 10px}.period-label{font-family:var(--sans);font-size:10px;font-weight:500;color:#6c848c;margin:23px 0 10px;letter-spacing:.5px}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.time-choice{font-size:12px;min-height:43px;border:1px solid #c7d4d6;color:var(--ink);background:transparent;border-radius:5px;transition:background .2s,border-color .2s}.time-choice:hover{background:#edf2f0}.time-choice.selected{background:#e3eeeb;border-color:#6b8e96;box-shadow:inset 0 0 0 1px #6b8e96}.slots-empty{text-align:center;padding:35px 15px}.slots-empty>span{font-size:34px;color:#94acb4}.slots-empty h4{font-family:var(--serif);font-size:22px;font-weight:400;margin-block:10px}.slots-empty p{font-size:11px;max-width:280px;margin:auto}.appointment-review{padding:16px 18px;background:#eaf0ee;border-left:2px solid #94afb5;border-radius:0 5px 5px 0;margin:20px 0 25px}.appointment-review>strong{font-size:14px;font-weight:500;display:block}.appointment-review>p{font-size:11px;margin-top:4px}.appointment-review>small{font-size:9px;color:var(--muted);display:block;margin-top:6px}.reminder-check{display:flex;align-items:center;gap:9px;line-height:1.5;margin-bottom:15px}.reminder-check input{width:16px;height:16px;min-height:16px;padding:0;margin:0;accent-color:var(--blue)}.booking-instructions summary{font-size:10px;padding:12px 0}.booking-instructions p{font-size:10px;white-space:pre-line;padding-bottom:15px}.step-enter{animation:step-in .35s both}.success-mark{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#e0ece6;color:#698b7d;font-size:25px;margin:7px 0 25px;animation:mark-in .6s both}.success-details{margin-top:25px;border-block:1px solid var(--line);padding-block:22px;line-height:1.7}.success-details>strong{display:block;font-size:19px;font-family:var(--serif);font-weight:400;margin-bottom:10px}.success-details>p{font-size:12px}.success-details>small{font-size:10px;color:var(--muted);display:block;margin-top:8px}.calendar-button{margin-top:25px;width:100%;font-size:11px}.booking-dialog.submitting .dialog-close{pointer-events:none;opacity:.4}

@keyframes dialog-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes step-in{from{opacity:0;transform:translateX(5px)}to{opacity:1;transform:none}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes mark-in{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
.booking-aside:after{display:none}.booking-dialog{border-radius:6px}.booking-aside h2{font-size:29px;letter-spacing:-.5px}.booking-scroll h3{font-size:25px;font-weight:500}.booking-home{font-size:18px}.booking-home small{font-size:9px;letter-spacing:1px}.booking-aside .eyebrow{font-size:11px;letter-spacing:1px}.booking-aside>p:not(.eyebrow){font-size:13px}.booking-steps li{font-size:12px}.booking-steps li>span{font-size:11px}.booking-dialog label{font-size:13px}.booking-dialog input,.booking-dialog select{font-size:15px}.step-description{font-size:14px}.unit-choice strong{font-size:15px}.unit-choice small{font-size:12px}.booking-data-note{font-size:12px}.booking-footer .btn{font-size:13px}.booking-back{font-size:13px}.session-detail{font-size:13px}.booking-alert{font-size:13px}.booking-recap>strong{font-size:15px}.booking-recap>small{font-size:10px}.booking-recap>p{font-size:12px}.date-tile small{font-size:11px}.time-choice{font-size:14px}.period-label{font-size:12px}.other-date label{font-size:12px}.booking-dialog .reminder-check{display:flex;font-size:13px}.booking-instructions summary,.booking-instructions p{font-size:13px}.appointment-review>p{font-size:13px}.appointment-review>small{font-size:12px}.booking-dialog.is-busy .booking-scroll{cursor:progress}.booking-dialog.is-busy #booking-next:before{content:'';width:12px;height:12px;border:1px solid currentColor;border-right-color:transparent;border-radius:50%;animation:loading-turn .8s linear infinite;display:inline-block;margin-right:8px}
@media(max-width:900px){.booking-dialog{width:calc(100% - 40px);max-width:650px}.booking-shell{grid-template-columns:1fr}.booking-aside{display:none}.booking-scroll{padding:25px}.booking-steps{padding:20px 25px}.booking-footer{padding:16px 25px}}
@media(max-width:600px){.booking-dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:0;inset:0}.booking-top{height:72px;padding:15px 20px}.booking-top .dialog-close{top:14px;right:13px}.booking-shell{height:calc(100dvh - 72px)}.booking-steps{padding:17px 20px;gap:10px}.booking-steps li{font-size:11px;gap:6px}.booking-scroll{padding:23px 20px}.booking-scroll h3{font-size:25px}.booking-dialog input,.booking-dialog select{font-size:16px}.booking-input-row{grid-template-columns:1fr}.booking-footer{padding:12px 20px max(12px,env(safe-area-inset-bottom));gap:15px}.booking-footer .btn{padding-inline:14px;font-size:12px}.unit-choice{padding:14px 12px}.unit-choice strong{font-size:14px}.unit-choice small{font-size:11px}.time-grid{grid-template-columns:repeat(4,1fr)}.time-choice{min-height:44px}.other-date{justify-content:space-between}.other-date input{width:150px}}
