.design-v14 dialog.booking-dialog{width:calc(100% - 64px);max-width:1280px;max-height:calc(100dvh - 48px);padding:44px 48px;overflow:auto;border-radius:28px;border:0}.booking-dialog .close{position:absolute;right:22px;top:18px;width:44px;height:44px;min-height:44px;padding:0;border:1px solid #b9c8b5;border-radius:50%;font-size:28px;z-index:2}.booking-dialog .close:hover{background:#e4eadc}.booking-header{padding-right:40px}.design-v14 .booking-dialog h2{font-size:clamp(28px,3vw,42px);line-height:1.15;margin-bottom:14px}.design-v14 .booking-dialog #contact-intro{max-width:650px;margin:0;font-size:17px}.booking-meta{display:flex;flex-wrap:wrap;gap:10px 24px;margin:22px 0 30px;font-size:14px;color:#52694c}.booking-meta span+span:before{content:'·';margin-right:24px;color:#8d9c7c}.booking-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:44px;border-top:1px solid #ced6c7;padding-top:30px}.booking-calendar,.booking-details{min-width:0}.booking-details{padding-left:40px;border-left:1px solid #ced6c7}.booking-dialog h3{font-size:21px;line-height:1.35;margin:0 0 24px;letter-spacing:-.02em}.booking-step{font-size:14px;color:#617b50;margin-right:10px;font-weight:400}.booking-month{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.booking-month h4{font-size:18px;text-transform:capitalize;margin:0}.booking-month button{width:42px;height:42px;min-height:42px;padding:0;border-radius:50%;background:transparent;border:1px solid #c5cfbd;font-size:20px}.booking-dialog button:disabled{opacity:.38;cursor:not-allowed}.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.booking-weekdays{text-align:center;font-size:13px;color:#607053;margin-bottom:8px}.booking-days button{padding:0;height:44px;min-width:0;border-radius:10px;font-size:16px;background:transparent;border:1px solid transparent;color:#173c34}.booking-days button:not(:disabled):hover{background:#e1e8d8;border-color:#a4b98e}.booking-days button[aria-pressed=true]{background:#093b30;color:#fff}.booking-days button.is-today{border-color:#b8c5aa}.booking-days button:disabled{opacity:.3}.booking-days button:focus-visible,.booking-times button:focus-visible{outline:2px solid #245b58;outline-offset:2px}.booking-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:180px;overflow:auto;padding:3px}.booking-times button{padding:10px 4px;border:1px solid #b6c7ac;background:transparent;border-radius:8px;font-size:15px}.booking-times button[aria-pressed=true]{background:#093b30;color:#fff;border-color:#093b30}.booking-times button:hover{background:#e1e8d8}.booking-dialog #booking-availability-status{font-size:14px;line-height:1.5;color:#536d43;margin:20px 0 12px}.booking-dialog .booking-hours{font-size:13px;line-height:1.5;color:#607053;margin:16px 0 0}.booking-selection{font-size:15px;line-height:1.5;min-height:48px;margin:0 0 12px;padding:12px 16px;background:#e7ebdf;border-radius:10px}.booking-name-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.booking-dialog label{font-size:14px;font-weight:600;line-height:1.4;margin:0 0 16px}.booking-dialog input{font-size:16px;min-height:48px;margin-top:7px;width:100%;border:1px solid #b5c3ac;background:#fffdf8;border-radius:8px;padding:11px 12px}.booking-dialog .booking-contact-note{font-size:13px;line-height:1.5;color:#536d43;margin:4px 0 16px}.design-v14 .booking-dialog .submit{width:100%;margin:0;display:flex;align-items:center;justify-content:space-between;gap:12px}.booking-dialog #booking-form-status{font-size:14px;line-height:1.5;margin:16px 0 0;color:#743c2b}.booking-trap{position:absolute;left:-10000px;overflow:hidden;width:1px;height:1px}.booking-text-button{font-size:14px;padding:6px 0;background:none;border:0;text-decoration:underline;color:#245b58}.booking-success{text-align:center;padding:36px 0 22px;max-width:620px;margin:auto}.booking-success-mark{display:inline-grid;place-items:center;width:64px;height:64px;background:#dce7d0;border-radius:50%;font-size:32px;margin-bottom:24px}.booking-success h3{font-size:32px;margin-bottom:16px}.booking-success p{font-size:17px;line-height:1.6}.booking-success a{display:block;text-decoration:underline;margin:24px 0}.booking-success button{font-size:17px;margin-top:20px}.booking-dialog-open{overflow:hidden}
@media(max-width:900px){.design-v14 dialog.booking-dialog{width:calc(100% - 32px);padding:32px 24px}.booking-layout{gap:24px}.booking-details{padding-left:24px}.booking-times{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-name-row{gap:10px}}
@media(max-width:650px){.design-v14 dialog.booking-dialog{width:100%;max-width:none;max-height:100dvh;height:100dvh;margin:0;border-radius:0;padding:32px 22px}.booking-header{padding-right:24px}.booking-dialog .close{right:12px;top:12px;width:38px;height:38px;min-height:38px}.booking-dialog .eyebrow,.booking-dialog h2,.booking-dialog #contact-intro{margin-left:0;margin-right:0}.design-v14 .booking-dialog h2{font-size:28px}.design-v14 .booking-dialog #contact-intro{font-size:16px}.booking-meta{gap:8px 14px;margin-bottom:24px;font-size:13px}.booking-meta span+span:before{margin-right:14px}.booking-meta span:last-child{width:100%}.booking-meta span:last-child:before{display:none}.booking-layout{grid-template-columns:1fr;padding-top:24px;gap:28px}.booking-details{border-left:0;border-top:1px solid #ced6c7;padding:26px 0 0}.booking-times{grid-template-columns:repeat(4,minmax(0,1fr));max-height:none}.booking-dialog h3{font-size:20px;margin-bottom:20px}.booking-days button{height:42px}.booking-name-row{gap:12px}}
.design-v14 dialog.booking-dialog#contact-dialog{max-width:760px}
.booking-dialog [hidden]{display:none!important}
.booking-dialog .booking-layout{display:block}
.booking-dialog .booking-details{padding:0;border:0}
.booking-progress{display:flex;gap:18px;padding:0;margin:0 0 28px;list-style:none;color:#607053;font-size:14px}
.booking-progress li{flex:1;padding:0 0 12px;border-bottom:3px solid #dce3d5}
.booking-progress li[aria-current=step]{color:#093b30;border-color:#093b30;font-weight:700}
.booking-dialog #booking-continue{margin-top:24px}
.booking-dialog #booking-back{margin:0 0 20px}

/* One question at a time, matching the rounded coaching design. */
.booking-dialog .booking-progress{gap:10px;font-size:13px}
.booking-dialog .booking-question{border:0;padding:0;margin:22px 0}
.booking-dialog .booking-question legend{font:600 clamp(22px,3vw,28px)/1.25 var(--jade-font);padding:0;margin-bottom:12px;width:100%}
.booking-dialog .booking-question p,.booking-dialog .question-intro{font-size:15px;line-height:1.5;color:#536d43;margin:0 0 18px}
.booking-dialog .question-counter{font-size:13px;color:#536d43;margin:0 0 8px}
.booking-dialog #question-progress{width:100%;height:6px;border:0;border-radius:8px;overflow:hidden;accent-color:#536d43;background:#dce3d5}
.booking-dialog #question-progress::-webkit-progress-bar{background:#dce3d5}.booking-dialog #question-progress::-webkit-progress-value{background:#536d43}
.booking-dialog .question-intro{margin-top:14px}
.booking-dialog label.question-choice{display:flex;gap:12px;align-items:center;border:1px solid #b5c3ac;border-radius:18px 10px 18px 10px;padding:14px 16px;margin:0 0 10px;cursor:pointer;font-size:16px;line-height:1.4;font-weight:400;min-height:52px}
.booking-dialog label.question-choice:has(input:checked){background:#dce7d0;border-color:#536d43}
.booking-dialog label.question-choice:hover{background:#e7ebdf}
.booking-dialog .question-choice input{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:0;accent-color:#093b30}
.booking-dialog textarea{display:block;width:100%;margin:8px 0 18px;padding:14px;border:1px solid #b5c3ac;border-radius:14px;background:#fffdf8;color:#093b30;font:400 16px/1.5 var(--jade-font);resize:vertical}
.booking-dialog .question-navigation{display:flex;gap:24px;align-items:center;margin:24px 0}
.booking-dialog .question-navigation .submit{width:auto;flex:1}
.booking-dialog #question-error{color:#743c2b;font-size:15px}
.booking-dialog :is(.question-choice input,textarea,button):focus-visible{outline:2px solid #245b58;outline-offset:3px}
.booking-dialog .question-choice span{font:inherit;color:inherit;letter-spacing:normal}
.booking-dialog .booking-question legend:focus{outline:none}
