/* Booking uses the same ink, sage and warm neutral palette as the site. */
.booking-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(28px,5vw,72px)}
.booking-panel{min-width:0;padding:clamp(20px,3vw,36px)}
.booking-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0;margin:22px 0 30px;border-bottom:1px solid #dce3e9}
.booking-steps li{font-size:12px;line-height:1.45;color:#667481;padding-bottom:15px;border-bottom:3px solid transparent;margin-bottom:-1px}
.booking-steps li>span{display:block;font-size:11px;letter-spacing:.12em;margin-bottom:6px}
.booking-steps [aria-current=step]{border-color:#2b4c7e;color:#172b45;font-weight:750}.booking-steps .is-complete{color:#42613e;border-color:#c3d99b}
.booking-step{border:0;padding:0;margin:0;min-width:0}.booking-step[hidden],[hidden]{display:none!important}.booking-step legend{font-size:22px;font-weight:750;line-height:1.3;margin-bottom:20px;max-width:100%}.booking-step legend:focus{outline:none}
.booking-step .button{white-space:normal;line-height:1.5;min-height:48px}.booking-step .form-row{gap:14px}.booking-step .price-summary{border-radius:8px;background:#edf3e7;color:#233d32}
.booking-steps~form label{font-size:13px}.booking-step .fine-print{line-height:1.65}
.booking-calendar{margin:22px 0 12px;border:1px solid #dce3e9;border-radius:14px;padding:14px;background:#fff}
.calendar-heading{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:10px;margin-bottom:16px}.calendar-heading h3{text-align:center;font-size:17px;line-height:1.3;margin:0;text-transform:capitalize}
.calendar-heading button{height:40px;width:40px;background:#f3f5f6;color:#172b45;border:1px solid #dce3e9;border-radius:50%;cursor:pointer;font-size:18px}.calendar-heading button:disabled{opacity:.3;cursor:default}
.calendar-days,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekdays{margin-bottom:8px;text-align:center;font-size:11px;color:#667481;font-weight:650}
.calendar-day{min-width:0;min-height:46px;border:1px solid transparent;border-radius:8px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#172b45;font:inherit;font-size:14px;cursor:pointer;padding:5px 0}.calendar-day.has-openings{background:#edf3e7}.calendar-day.is-unavailable{color:#6b757f;background:#f5f6f7}.calendar-day:disabled{background:transparent;opacity:.3;cursor:default}.calendar-day[aria-pressed=true]{background:#2b4c7e;color:white;border-color:#2b4c7e}.day-dot{width:4px;height:4px;border-radius:50%;background:transparent}.has-openings .day-dot{background:#537644}.calendar-day[aria-pressed=true] .day-dot{background:#c3d99b}
.calendar-key{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:#526374;margin-bottom:24px}.calendar-key span:before{content:'';display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#8faa6b}.calendar-key .key-closed:before{background:#d9dfe4}
#selected-day-label{font-size:16px;line-height:1.4;margin:0 0 14px;text-transform:capitalize}.appointment-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.appointment-time{margin:0!important;position:relative;cursor:pointer;min-width:0}.appointment-time input{position:absolute;width:1px;height:1px;opacity:0}.appointment-time>span{display:flex;min-height:68px;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px 5px;border:1px solid #c7d7b7;background:#f4f7ef;border-radius:8px;text-align:center}.appointment-time strong{font-size:14px;line-height:1.3;font-weight:700}.appointment-time small{font-size:10px;line-height:1.3}.appointment-time.is-unavailable{cursor:default}.appointment-time.is-unavailable>span{background:#f3f4f5;color:#727b83;border-color:#e5e8eb}.appointment-time input:checked+span{background:#2b4c7e;color:white;border-color:#2b4c7e}.appointment-time input:focus-visible+span{outline:3px solid #a7bd87;outline-offset:3px}
#calendar-feedback{font-size:13px;line-height:1.6;min-height:20px;color:#526374}.wizard-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.booking-back{border:0;background:transparent;padding:12px 2px;font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:4px;color:#2b4c7e;cursor:pointer;min-height:44px}.booking-back:hover{color:#172b45}.booking-step button:disabled{opacity:.45;cursor:default}.review-edit{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:12px}
.booking-summary{margin:0;border:1px solid #dce3e9;border-radius:12px;padding:0 18px;background:#fff}.booking-summary>div{padding:16px 0;border-bottom:1px solid #e8edf1}.booking-summary>div:last-child{border:0}.booking-summary dt{font-size:11px;color:#667481;margin-bottom:6px}.booking-summary dd{margin:0;font-size:15px;font-weight:650;line-height:1.55;overflow-wrap:anywhere}.booking-request-note{font-size:13px;line-height:1.7;padding:16px;background:#f1f4f8;border-radius:8px;color:#45566d}.booking-reference{font-family:monospace;font-size:24px;letter-spacing:.08em;color:#2b4c7e}.success-mark{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:#e6efdc;color:#35502c;border-radius:50%;font-size:27px;margin:25px 0 18px}#booking-success h3{font-size:25px;line-height:1.4}#booking-success p{line-height:1.7}#booking-success:focus{outline:none}
@media(max-width:850px){.booking-grid{grid-template-columns:1fr;gap:30px}.booking-panel{width:100%;max-width:680px;margin-inline:auto}.booking-grid>.contact-links{margin:0}}
@media(max-width:400px){.booking-panel{padding:18px 14px}.booking-steps{gap:5px}.booking-steps li{font-size:10px}.booking-step legend{font-size:20px}.calendar-heading h3{font-size:15px}.booking-calendar{padding:10px}.calendar-days{gap:2px}.calendar-day{font-size:13px;min-height:42px}.appointment-times{gap:6px}.appointment-time strong{font-size:12px}.appointment-time small{font-size:9px}.wizard-actions{flex-direction:column-reverse;align-items:stretch}.wizard-actions .booking-back{text-align:center}}

.support-rate-card .price span[data-rate]{font:inherit;letter-spacing:inherit;vertical-align:baseline;display:inline;margin:0}

.payment-overview{padding:56px clamp(20px,5vw,80px);display:grid;grid-template-columns:1fr 1fr;gap:40px;background:#f0f4ee;border-top:1px solid #dfe6dc;color:#172b45}.payment-overview h2{font-size:clamp(27px,3vw,39px);letter-spacing:-.04em;line-height:1.15;margin:10px 0 20px}.payment-overview p{max-width:580px;font-size:15px;line-height:1.7}.payment-options article{border-bottom:1px solid #d5ded2;padding:0 0 18px;margin-bottom:18px}.payment-options h3{font-size:17px;margin:0 0 8px}.payment-symbol{float:right;font-size:28px;color:#2b4c7e;margin-left:12px}.payment-options .fine-print{font-size:12px}.booking-payment{margin-top:20px}.booking-payment select{width:100%;min-width:0}.payment-overview [hidden],.booking-payment [hidden]{display:none!important}
@media(max-width:700px){.payment-overview{grid-template-columns:1fr;gap:12px;padding-block:36px}.booking-payment select{font-size:13px}}
